2 * Fix coding-style/indentation everywhere.
3 * Filesystem-based cover art (Implement feeding-part of MediaArtStorageSpec)
4 * Preliminary patch exists, though ugly
5 * Add configurable filter on "Genre" to decide between Audio and Music for
7 * check if g_file_enumerator_container can simplify harvester
8 * Find a way to handle images properly
9 * Will be done automagically by
10 * https://bugzilla.gnome.org/show_bug.cgi?id=626531
12 * Unify ImportResource and HTTPPost.
14 * Check in HTTPSeek really needed?
16 * Cache response(s). If user fast forwards a stream, one request completes and
17 a second will be issued with a new time offset. It is important to keep the
18 latency of starting the new request small.
19 → How to handle devices that query a lot of byte ranges in parallel (LG
22 * Assign priorities to gstreamer threads
23 (See gstreamer/tests/examples/streams/stream-status.c)
25 * rygel copies config file to user's home dir if not already there.
29 * Use h264 instead of mpeg2 video?
33 * Move UI components to gnome-user-share (bastien will do this, really?)
34 * Remove rygel-preferences (code and UI file).
35 * Remove unneeded API from UserConfig.
36 * Remove related stuff from this TODO file.
38 * MediaItem.add_resource() should take a res (and renamed) rather than
39 taking a didl_item and returning a res.
42 * More suitable name for SearchContainer (QueryContainer?)
43 * Async creation of containers.
44 * Fetch as much metadata from added item as possible.
45 * Use tracker:id for IDs.
46 * Complete search implementation.
47 * Deal with number search expressions.
48 * Deal with logical expressions too.
50 * Document plugin API.
52 * Use methods (with errors) in Player's API to set props.
54 * Player's APIs should be async.
56 * Make all GIO calls async
58 * Replace magic keywords in model description as well.
60 * Get rid of 'handle_error' in most places.
65 * HTTPTranscodeHandler
67 * config file not available
69 * MediaProviderSpec/External
70 * Fix search: complete prop translation.
71 * search: What about multvalued props?
72 * Make use of "*" filter.
74 * How to hide ContentDirectoryError?
77 * use icons for media objects.
80 * configuration options to set gst playbin props?
82 * Handle all provided metadata in CreateObject.
84 * Put common code in item and container into object (e.g upnp_class)
86 * Totem plugin that implements MediaRenderer spec.
88 * ScheduledRecording (ScheduledRecording spec, especially section 2.9.2.2.1)
89 * Add MediaItem.ChannelID prop.
90 * MediaItem.ChannelID prop gets serialized into DIDL.
91 * Skeleton ScheduledRecording service implementation
92 * RecordSchedule : MediaObject
93 * RecordTask : MediaObject
94 * Implement ScheduledRecording and RecordingBrowse classes (only allow
95 single RecordTask in each RecordSchedule)
96 * Make ScheduledRecording and ContentDir derive from a common class
97 (Browsable?). Same goes for RecordingBrowse and ContentDirBrowse.
99 * Move common code (construction and serializating) to MediaObject.
101 * Move the res field and it's manipulation to MediaObject.
104 * export EPG hierarchy
110 * Document delegate functions.
111 * Do something about total_count param of search (using COUNT?)
113 * Video: resolution info, author, framerate, bitrate etc.
115 * Use ~/.face as icon if available.
116 * Remove redundant "Item" from item class names.
117 * share playlists and other categories?
122 * Provide APIs for D-Bus service-based plugins (external,mpris,tracker).
124 === Doubtful / issues ===
126 * See if any of sunil mohan's changes are mergable.
128 * Generate default rygel.conf from rygel.conf.xml?
130 * Use cached props instead of Properties.get*() for cleaner code. issue: How
131 to deal with optional properties on MediaServer2?
133 * move contents of src dir a level up?
135 * Pass a function to HTTPServer and HTTPRequest for item search, rather than
138 * Implement DLNA's time seeking for non-transcoded contents as well.
139 * Probably next to impossible since that would need a byte ←→ time
142 * remove project prefix from file names?
144 * use soup_buffer_new_with_owner() to save memory?
146 * UTF16 conversion to UTF8.
148 * mark the plugins using %h option.
150 * listen to hostname changes and re-create plugins that use %h magic.
154 * http://zee-nix.blogspot.com/2008/10/rygel-gnome-upnp-media-server.html