Updated Indonesian translation
[profile/ivi/rygel.git] / TODO
1   * MediaExport
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
6     * UPnP class
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
11
12   * Unify ImportResource and HTTPPost.
13
14   * Check in HTTPSeek really needed?
15
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
20      blueray player e.g.)
21
22   * Assign priorities to gstreamer threads
23     (See gstreamer/tests/examples/streams/stream-status.c)
24
25   * rygel copies config file to user's home dir if not already there.
26     * Copy code from UI.
27
28   * UI:
29     * Kill preferences UI
30       * Move UI components to gnome-user-share (bastien will do this, really?)
31       * Remove rygel-preferences (code and UI file).
32       * Remove unneeded API from UserConfig.
33       * Remove related stuff from this TODO file.
34
35   * MediaItem.add_resource() should take a res (and renamed) rather than
36     taking a didl_item and returning a res.
37
38   * Tracker
39     * More suitable name for SearchContainer (QueryContainer?)
40     * Async creation of containers.
41     * Fetch as much metadata from added item as possible.
42     * Use tracker:id for IDs.
43     * Complete search implementation.
44       * Deal with number search expressions.
45       * Deal with logical expressions too.
46
47   * Document plugin API.
48
49   * Use methods (with errors) in Player's API to set props.
50
51   * Player's APIs should be async.
52
53   * Make all GIO calls async
54
55   * Replace magic keywords in model description as well.
56
57   * Get rid of 'handle_error' in most places.
58
59   * Unit tests
60     * HTTPGetHandler
61       * HTTPIdentityHandler
62       * HTTPTranscodeHandler
63     * UserConfig
64       * config file not available
65
66   * MediaProviderSpec/External
67     * Fix search: complete prop translation.
68     * search: What about multvalued props?
69     * Make use of "*" filter.
70
71   * How to hide ContentDirectoryError?
72
73   * mpris
74     * use icons for media objects.
75
76   * Playbin
77     * configuration options to set gst playbin props?
78
79   * Handle all provided metadata in CreateObject.
80
81   * Put common code in item and container into object (e.g upnp_class)
82
83   * Totem plugin that implements MediaRenderer spec.
84
85   * ScheduledRecording (ScheduledRecording spec, especially section 2.9.2.2.1)
86     * Add MediaItem.ChannelID prop.
87     * MediaItem.ChannelID prop gets serialized into DIDL.
88     * Skeleton ScheduledRecording service implementation
89     * RecordSchedule : MediaObject
90     * RecordTask : MediaObject
91     * Implement ScheduledRecording and RecordingBrowse classes (only allow
92       single RecordTask in each RecordSchedule)
93     * Make ScheduledRecording and ContentDir derive from a common class
94     (Browsable?). Same goes for RecordingBrowse and ContentDirBrowse.
95
96   * Move common code (construction and serializating) to MediaObject.
97
98   * Move the res field and it's manipulation to MediaObject.
99
100   * ScheduledRecording
101     * export EPG hierarchy
102       * EPG container
103       * EPG item
104
105   * Tracker:
106     * MetadataValues:
107       * Document delegate functions.
108     * Do something about total_count param of search (using COUNT?)
109     * Missing metadata:
110       * Video: resolution info, author, framerate, bitrate etc.
111       * Image: album.
112     * Use ~/.face as icon if available.
113     * Remove redundant "Item" from item class names.
114     * share playlists and other categories?
115
116   * Internal res:
117     * Provide IP.
118
119   * Provide APIs for D-Bus service-based plugins (external,mpris,tracker).
120
121 === Doubtful / issues ===
122
123   * See if any of sunil mohan's changes are mergable.
124
125   * Generate default rygel.conf from rygel.conf.xml?
126
127   * Use cached props instead of Properties.get*() for cleaner code. issue: How
128     to deal with optional properties on MediaServer2?
129
130   * move contents of src dir a level up?
131
132   * Pass a function to HTTPServer and HTTPRequest for item search, rather than
133     ContentDir itself?
134
135   * Implement DLNA's time seeking for non-transcoded contents as well.
136       * Probably next to impossible since that would need a byte ←→ time
137         mapping
138
139   * remove project prefix from file names?
140
141   * use soup_buffer_new_with_owner() to save memory?
142
143   * UTF16 conversion to UTF8.
144
145   * mark the plugins using %h option.
146
147   * listen to hostname changes and re-create plugins that use %h magic.
148
149 === Wishes ===
150
151   * http://zee-nix.blogspot.com/2008/10/rygel-gnome-upnp-media-server.html