3 * Some of the new classes need to be 'internal'.
4 * persist update count for containers
5 * More errors needed in MediaDBError
6 * Remove generic save*() & get*()
7 * Fix coding-style/indentation everywhere.
8 * DB tables should directly correspond/map to class hierarchy & naming
12 * Find a way to handle images properly
13 * Will be done automagically by
14 * https://bugzilla.gnome.org/show_bug.cgi?id=626531
17 * '''Fix coding-style everywhere'''
18 * Filesystem-based cover art (Implement feeding-part of MediaArtStorageSpec)
19 * Preliminary patch exists, though ugly
20 * React to configuration changes
21 * Add configurable filter on "Genre" to decide between Audio and Music for
23 * check if g_file_enumerator_container can simplify harvester
25 * Add 'title' param to AddURI?
26 * Patch needs cleaning
28 * causes assertion failure followed by a crash if done during its
29 harvested at rygel-media-export-root-container.vala:393
31 * Unify ImportResource and HTTPPost.
33 * See if any of sunil mohan's changes are mergable.
35 * Check in HTTPSeek really needed?
37 * crash on trying to trancode ogg to wmv.
39 * Always build/run tests if configured with '--enable-tests'.
41 * autogen passes '--enable-tests' to configure by default.
43 * Use common.m4 in tests/Makefile.am.
45 * Cache response(s). If user fast forwards a stream, one request completes and
46 a second will be issued with a new time offset. It is important to keep the
47 latency of starting the new request small.
49 * Refactor ItemCreator class (especially run method).
52 * Get mime-type from gupnp-dlna when dlna pn is known.
54 * Make sure tracker uses mime from gupnp-dlna.
56 * Assign priorities to gstreamer threads
57 (See gstreamer/tests/examples/streams/stream-status.c)
60 * Make sure we restart rygel when configuration changes.
62 * Get interfaces directly from NM.
63 * Show available APs for Wifi interface.
65 * rygel copies config file to user's home dir if not already there.
68 * Start rygel as part of user session.
69 * Remove relavent code from UI code.
72 * Split in XBox hacks and ContentDirectory:1 hacks
73 * Config for device hacks user-agent.
76 * Make use of encodebin when it's ready (update README/wiki afterwards).
77 * Use h264 instead of mpeg2 video?
81 * Move UI components to gnome-user-share (bastien will do this, really?)
82 * Remove rygel-preferences (code and UI file).
83 * Remove unneeded API from UserConfig.
84 * Remove related stuff from this TODO file.
86 * MediaItem.add_resource() should take a res (and renamed) rather than
87 taking a didl_item and returning a res.
90 * More suitable name for SearchContainer (QueryContainer?)
91 * Async creation of containers.
92 * Fetch as much metadata from added item as possible.
93 * Use tracker:id for IDs.
94 * Complete search implementation.
95 * Deal with number search expressions.
96 * Deal with logical expressions too.
97 * Move dbus path constants to relavent interfaces.
99 * Document plugin API.
101 * Use methods (with errors) in Player's API to set props.
103 * Player's APIs should be async.
105 * Make all GIO calls async
107 * Replace magic keywords in model description as well.
109 * Get rid of 'handle_error' in most places.
111 * save_modified_desc is in two classes.
113 * Check nested Mainloop usage
117 * HTTPIdentityHandler
118 * HTTPTranscodeHandler
120 * config file not available
122 * MediaProviderSpec/External
123 * incrementally browse containers at startup.
124 * Fix search: complete prop translation.
125 * search: What about multvalued props?
126 * Make use of "*" filter.
128 * How to hide ContentDirectoryError?
131 * use icons for media objects.
135 * Handle GetMediaInfo_Ext
136 * Actually handle all advertized actions/variables.
139 * configuration options to set gst playbin props?
141 * Handle all provided metadata in CreateObject.
143 * Put common code in item and container into object (e.g upnp_class)
145 * Totem plugin that implements MediaRenderer spec.
147 * plugins should keep version of rygel they were compiled against.
149 * ScheduledRecording (ScheduledRecording spec, especially section 2.9.2.2.1)
150 * Add MediaItem.ChannelID prop.
151 * MediaItem.ChannelID prop gets serialized into DIDL.
152 * Skeleton ScheduledRecording service implementation
153 * RecordSchedule : MediaObject
154 * RecordTask : MediaObject
155 * Implement ScheduledRecording and RecordingBrowse classes (only allow
156 single RecordTask in each RecordSchedule)
157 * Make ScheduledRecording and ContentDir derive from a common class
158 (Browsable?). Same goes for RecordingBrowse and ContentDirBrowse.
160 * Move common code (construction and serializating) to MediaObject.
162 * Move the res field and it's manipulation to MediaObject.
165 * export EPG hierarchy
170 * Port to libtracker-sparql.
171 * Set the pixel-aspect-ratio props.
173 * Document delegate functions.
174 * Rid of choping tails.
175 * Do something about total_count param of search (using COUNT?)
177 * Video: resolution info, author, framerate, bitrate etc.
179 * Use ~/.face as icon if available.
180 * Request creation of thumbnails (http://live.gnome.org/ThumbnailerSpec).
181 * Remove redundant "Item" from item class names.
182 * share playlists and other categories?
187 * Provide APIs for D-Bus service-based plugins (external,mpris,tracker).
189 === Doubtful / issues ===
191 * Use cached props instead of Properties.get*() for cleaner code. issue: How
192 to deal with optional properties on MediaServer2?
194 * move contents of src dir a level up?
196 * Pass a function to HTTPServer and HTTPRequest for item search, rather than
199 * Implement DLNA's time seeking for non-transcoded contents as well.
201 * Turn Rygel into a library?
202 * most c files put into a lib: librygel.so
205 * remove project prefix from file names?
207 * use soup_buffer_new_with_owner() to save memory?
209 * UTF16 conversion to UTF8.
211 * mark the plugins using %h option.
213 * listen to hostname changes and re-create plugins that use %h magic.
215 * Port to Gio.Variant and GDBus.
216 * Asynchronous DBusService/Interface.shutdown.
217 * Remove FreeDesktop.Properties ?
221 * http://zee-nix.blogspot.com/2008/10/rygel-gnome-upnp-media-server.html