1 This is a list of things that need to be addressed yet.
6 * Encoding still needs quite a bit of testing.
8 * Speaking of testing, some automated tests would be nice. Right now, there are
9 a bunch of corner cases in tests/xml which can be run through the parser with
10 tests/dlna-profile-parser, and we make sure it doesn't crash.
12 * A set of (non-copyright-encombered) media for each profile would be aces. One
13 way of getting this would be to use encodebin once the issues above are
14 resolved, but these must go through some manual verification as well.
16 * We don't have a way of checking the system bitratem.
18 * We're not checking channel maps, or verifying that 6 channels is actually
21 * It would be nice to have the bitrate check to be intelligent enough to work
22 with either bitrate or maximum-bitrate, whichever is available. For example,
23 if the restriction specifies that bitrate = 1-128000, and the stream has no
24 bitrate tag, but does have maximum-bitrate = 112000, it should be matched
27 * And, of course, MOAR PROFILES!!111!
29 Outside gupnp-dlna (mostly GStreamer):
32 * Bitrate for AAC ADTS streams - there is no stream header, and guessing the
33 bitrate based on the first few frames (as is done in aacparse), can be wildly
36 * HE-AAC support. There isn't any code around for HE-AAC support at all. We
37 need to detect both implicitly and explicitly signaled HE-AAC before we can
38 support these streams. There's a detailed explanation of the problem at:
39 https://bugzilla.gnome.org/show_bug.cgi?id=612312#c7
41 * Encoding needs a way for properties such as bitrate to be passed to the
42 encoder from encodebin. Edward has a plan for this.
44 * Bitrate/profile/level are not exported by MPEG-TS streams.
50 Jotting down discussion on the encoding API. This is not necessarily final.
52 1. Rygel fetches list of DLNA profile names that it should offer to transcode
54 2. Rygel asks gupnp-dlna for list of all supported profiles
55 3. Rygel filters that list against the profiles that config has asked for
56 4. Rygel sorts the filtered list by "distance" from the streams
59 Here distance is a metric of transcoding "difficulty" (shorter distance =>
60 easier to transcode). Basically:
62 transmuxing < audio transcode < video transcode < audio+video transcode