2 * persist update count for containers
3 * Fix coding-style/indentation everywhere.
4 * '''Fix coding-style everywhere'''
5 * Filesystem-based cover art (Implement feeding-part of MediaArtStorageSpec)
6 * Preliminary patch exists, though ugly
7 * React to configuration changes
8 * Add configurable filter on "Genre" to decide between Audio and Music for
10 * check if g_file_enumerator_container can simplify harvester
12 * Add 'title' param to AddURI?
13 * Patch needs cleaning
15 * causes assertion failure followed by a crash if done during its
16 harvested at rygel-media-export-root-container.vala:393
17 * Find a way to handle images properly
18 * Will be done automagically by
19 * https://bugzilla.gnome.org/show_bug.cgi?id=626531
21 * Unify ImportResource and HTTPPost.
23 * Check in HTTPSeek really needed?
25 * Use common.m4 in tests/Makefile.am (Probably not possible).
27 * Cache response(s). If user fast forwards a stream, one request completes and
28 a second will be issued with a new time offset. It is important to keep the
29 latency of starting the new request small.
30 → How to handle devices that query a lot of byte ranges in parallel (LG
33 * Refactor ItemCreator class (especially run method).
36 * Once we can depend on a certain tracker version use dlna mime from
39 * Assign priorities to gstreamer threads
40 (See gstreamer/tests/examples/streams/stream-status.c)
43 * Make sure we restart rygel when configuration changes.
44 * Get interfaces directly from NM.
45 * Show available APs for Wifi interface.
47 * rygel copies config file to user's home dir if not already there.
50 * Start rygel as part of user session.
51 * Remove relavent code from UI code.
54 * Make use of encodebin when it's ready (update README/wiki afterwards).
55 * Use h264 instead of mpeg2 video?
59 * Move UI components to gnome-user-share (bastien will do this, really?)
60 * Remove rygel-preferences (code and UI file).
61 * Remove unneeded API from UserConfig.
62 * Remove related stuff from this TODO file.
64 * MediaItem.add_resource() should take a res (and renamed) rather than
65 taking a didl_item and returning a res.
68 * More suitable name for SearchContainer (QueryContainer?)
69 * Async creation of containers.
70 * Fetch as much metadata from added item as possible.
71 * Use tracker:id for IDs.
72 * Complete search implementation.
73 * Deal with number search expressions.
74 * Deal with logical expressions too.
75 * Move dbus path constants to relavent interfaces.
77 * Document plugin API.
79 * Use methods (with errors) in Player's API to set props.
81 * Player's APIs should be async.
83 * Make all GIO calls async
85 * Replace magic keywords in model description as well.
87 * Get rid of 'handle_error' in most places.
92 * HTTPTranscodeHandler
94 * config file not available
96 * MediaProviderSpec/External
97 * incrementally browse containers at startup.
98 * Fix search: complete prop translation.
99 * search: What about multvalued props?
100 * Make use of "*" filter.
102 * How to hide ContentDirectoryError?
105 * use icons for media objects.
109 * Handle GetMediaInfo_Ext
110 * Actually handle all advertized actions/variables.
113 * configuration options to set gst playbin props?
115 * Handle all provided metadata in CreateObject.
117 * Put common code in item and container into object (e.g upnp_class)
119 * Totem plugin that implements MediaRenderer spec.
121 * plugins should keep version of rygel they were compiled against.
123 * ScheduledRecording (ScheduledRecording spec, especially section 2.9.2.2.1)
124 * Add MediaItem.ChannelID prop.
125 * MediaItem.ChannelID prop gets serialized into DIDL.
126 * Skeleton ScheduledRecording service implementation
127 * RecordSchedule : MediaObject
128 * RecordTask : MediaObject
129 * Implement ScheduledRecording and RecordingBrowse classes (only allow
130 single RecordTask in each RecordSchedule)
131 * Make ScheduledRecording and ContentDir derive from a common class
132 (Browsable?). Same goes for RecordingBrowse and ContentDirBrowse.
134 * Move common code (construction and serializating) to MediaObject.
136 * Move the res field and it's manipulation to MediaObject.
139 * export EPG hierarchy
144 * Port to libtracker-sparql.
145 * Set the pixel-aspect-ratio props.
147 * Document delegate functions.
148 * Rid of choping tails.
149 * Do something about total_count param of search (using COUNT?)
151 * Video: resolution info, author, framerate, bitrate etc.
153 * Use ~/.face as icon if available.
154 * Remove redundant "Item" from item class names.
155 * share playlists and other categories?
160 * Provide APIs for D-Bus service-based plugins (external,mpris,tracker).
162 === Doubtful / issues ===
164 * See if any of sunil mohan's changes are mergable.
166 * Generate default rygel.conf from rygel.conf.xml?
168 * Use cached props instead of Properties.get*() for cleaner code. issue: How
169 to deal with optional properties on MediaServer2?
171 * move contents of src dir a level up?
173 * Pass a function to HTTPServer and HTTPRequest for item search, rather than
176 * Implement DLNA's time seeking for non-transcoded contents as well.
177 * Probably next to impossible since that would need a byte ←→ time
180 * Turn Rygel into a library?
181 * most c files put into a lib: librygel.so
184 * remove project prefix from file names?
186 * use soup_buffer_new_with_owner() to save memory?
188 * UTF16 conversion to UTF8.
190 * mark the plugins using %h option.
192 * listen to hostname changes and re-create plugins that use %h magic.
194 * Port to Gio.Variant and GDBus.
195 * Asynchronous DBusService/Interface.shutdown.
196 * Remove FreeDesktop.Properties ?
200 * http://zee-nix.blogspot.com/2008/10/rygel-gnome-upnp-media-server.html