core: Release announcement for 0.6.0
[profile/ivi/rygel.git] / NEWS
1 0.6.0
2 =====
3
4 This release marks the start of the new stable release-cycle. Changes since
5 0.5.2:
6
7 - Localization:
8   - Fix translation framework.
9   - Mark all (possibly) user-visible string for translation.
10   - Use more translator-friendly language.
11   - Provide comments for translators.
12   - Correctly case abbreviations.
13   - Translations:
14     - German (de) 100%
15     - Slovenian (sl): 100%
16     - Spanish (es): 57%
17 - Fix time-seeking.
18 - Fix a potential race-condition in aborted HTTP requests.
19 - Don't stream if request is for subtitles.
20 - Use bigger (64Ki) buffers when streaming from gstreamer source element.
21 - Remux only if transcoding is not needed.
22 - Configuration option for specifying plugin load path.
23 - Add configuration from Environment.
24 - Fix port specification through commandline.
25 - Add and expose Rygel logo.
26 - Pause streaming pipeline when/if client isn't reading fast enough.
27 - Add more unit tests.
28 - Use gnome-autogen.sh.
29 - Add missing libuuid to build and linker flags for all plugins.
30 - Plugins are now able to provide a model description.
31 - MediaExport:
32   - File size change suggests file change.
33   - Move media DB and metadata harvesting code from core to module as this is
34     the only module that is using it.
35 - External plugin now sets model description.
36 - Lots of non-functional improvements and fixes.
37
38 Dependency-related changes:
39
40 - Sqlite now only needed for media-export plugin.
41
42 Bugs fixed in this release:
43
44 617762 Wrong file size exported to PS3
45 590649 LiveResponse does not rate limit the GStreamer pipeline
46 615834 Uses ALL_LINGUAS in configure.ac
47 616189 Translation issues
48 617750 Only re-encode audio and video when necessary
49
50 All contributors to this release:
51
52 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
53 Jens Georg <mail@jensge.org>
54 Mario Blättermann <mariobl@gnome.org>
55 Jorge González <jorgegonz@svn.gnome.org>
56 Andrej Žnidaršič <andrej.znidarsic@gmail.com>
57
58 0.5.2
59 =====
60
61 Another release in the unstable 0.5.x series. Changes since 0.5.0:
62
63 - Add support for Xbox 360 and Window Media Player 11.
64 - Add support for subtitles. Currently only useful for certain Samsung DLNA TVs.
65 - Add Windows Media Video (WMV) transcoder.
66 - Add unit tests for a few modules.
67 - Fix some (potential) crashes.
68 - Make database operations cancellable.
69 - Throw error on database creation failure.
70 - Simpler (hopefully) build rules.
71 - Fix race-condition in streaming code so we don't terminate the connection
72   before all the bytes are sent to the client.
73 - Fix leaking of HTTP messages of live streams on termination.
74 - Fix 'Content-Length' header values for partial requests.
75 - Fix parsing of search expression containing characters not within the original
76   latin1 range.
77 - Use bigger (64Ki) buffers when streaming media to reduce cpu usage and
78   therefore improve battery life.
79 - Include spec version in description document.
80 - Remove now unneeded work-around for vala bug#568972.
81 - Advertize photos with their specific class, i-e 'photo' rather than 'image'.
82 - MediaExport:
83   - Implement search by URIs.
84   - Implement search by album.
85   - Error-out on invalid search expression.
86   - Add support for virtual containers. This allows creation of metadata-based
87     hierarchies in the user-config.
88   - Fix deletion of containers.
89   - URI-escape meta-data fields.
90   - Catch previously uncaught exceptions.
91   - Fix upgrade of database from older schemas.
92 - Lots of code clean-ups and documentation fixes.
93
94 Dependency-related changes:
95
96 - Require gupnp >= 0.13.3.
97 - Require gupnp-av >= 0.5.5.
98 - Require gupnp-vala >= 0.6.5.
99 - Require valac >= 0.8.0.
100
101 Bugs fixed in this release:
102
103 608886 - media export plugin corrupts its database when you change directories
104 609944 - Files not harvested on update
105 606305 - Samsung subtitles
106
107 All contributors to this release:
108
109 Jens Georg <mail@jensge.org>
110 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
111 Cyrille Chepelov <cyrille.chepelov@keyconsulting.fr>
112
113 0.5.0
114 =====
115
116 The first release in the unstable 0.5.x series. Changes since 0.4.6 that were
117 not provided by any subsequent 0.4.x releases:
118
119 - New URI generation scheme that avoids problematic characters which makes some
120   crappy renderers choke.
121 - Allow creation of new media items and tranfering data into existing ones (
122   upload). This is relavent to, and works for both MediaExport and Tracker.
123 - Implement GetTransferProgress and StopTransferResource actions.
124 - Advertise:
125   - support for connection stalling.
126   - live response to be sender-paced.
127 - Rewrite SearchCriteria parser to make it more reliable.
128 - Tracker:
129   - Port to the Tracker 0.7 APIs.
130   - Provide richer & more intuitive media hierarchy.
131   - Signal container update on changes to subjects.
132   - Act on config options allowing user to define which categories to share.
133   - Support for search by URI.
134   - Descriptive IDs for containers.
135 - MediaExport
136   - Implement custom search that translates to an SQLite query and therefore
137     performs much faster than before.
138   - Print message on console when harvesting is done.
139   - Don't modify DB if harvester was cancelled.
140   - Cancel harvester before starting new one.
141 - Lots of non-functional improvements and fixes.
142
143 All contributors to this release:
144
145 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
146 Jens Georg <mail@jensge.org>
147
148 0.4.6
149 =====
150
151 Brief summary of changes since 0.4.4:
152
153 - Implement optional UPnP Search action. This is not only a must have feature
154   for a commercial MediaServer but is also a big first step towards proper
155   XBox 360 support.
156 - Simplify Browse action handling.
157 - Simplify MediaServer plugin implementation.
158 - Make sure autostart dir exists before attempting to write to it.
159 - Fix a potential crash that is trigered by MediaContainer reporting incorrect
160   (higher) number of children.
161 - External:
162   - Work around (vala) bug#602003.
163   - Optimizations and code clean-ups.
164 - Tracker:
165   - Provide an efficient Search implementation using Tracker's search API.
166   - Minor code clean-ups.
167
168 Dependency-related changes:
169
170 - Require gupnp-av >= 0.5.2.
171 - Require gupnp-vala >= 0.6.2.
172 - Require valac >= 0.7.9.
173
174 Bugs fixed in this release:
175
176 600256 - Segfault when trying to access a stream
177
178 All contributors to this release:
179
180 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
181
182 0.4.4
183 =====
184
185 Brief summary of changes since 0.4.2:
186
187 - Provide a gstreamer-based MediaRenderer plugin. This is mostly code stolen (
188   and heavily adapted) from gupnp-media-renderer except that it doesn't depend
189   on libowl-av and/or gtk+.
190 - More ease for MediaServer implementors.
191 - Better error handling.
192 - Make sure no message is suppressed until we know what level of console output
193   user wants.
194 - Make use of vala's async support to simplify code quite a bit.
195 - Plugins should load xml files from source tree when built with
196   '--enable-uninstalled' configure flag.
197 - Build with no optimizations in debug mode.
198 - Use closure table to speed up object lookup and deletion.
199 - Add build option for SQL debugging.
200 - Workaround a crasher bug (#3774) in sqlite 3.6.12.
201 - Use vala's static client D-Bus syntax.
202 - Early ignorance of disabled plugins. This not only speeds-up startup a bit but
203   also rids us of redundant debug messages.
204 - MediaExport:
205   - Nicely handle unavailability of gstreamer's playbin(2) element.
206   - Fix a potential crasher.
207 - Tracker:
208   - Use multidimensional arrays to deal with search results. This combined with
209     static client D-Bus syntax gives us quite a speed boost.
210   - Handle item creation error.
211 - External:
212   - Allow applications to provide custom thumbnails for items.
213   - Support pixel-aspect-ratio properties.
214   - All D-Bus operations are now done asynchronously.
215   - Make use of plugin icon if provided.
216   - Move magic string substitution to core so other plugins can benefit from it.
217 - Lots of other improvements and bug fixes.
218
219 Dependency-related changes:
220
221 - Require and adapt to libgee >= 0.5.
222 - Require and adapt to valac >= 0.7.8.
223
224 Bugs fixed in this release:
225
226 597276 - Rygel crash on startup
227 587649 - thumbnails not published for external media servers
228 589959 - External plugin should query media servers on demand
229 598005 - unable to load media-tracker plugin
230
231 All contributors to this release:
232
233 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
234 Jens Georg <mail@jensge.org>
235 Thijs Vermeir <thijsvermeir@gmail.com>
236
237 0.4.2
238 =====
239
240 Brief summary of changes since 0.4.1:
241
242 - Ability to specify verbosity of console messages by a number between 0 to 5.
243 - Be able to survive unavailability of D-Bus session bus. This should make it
244   easier to setup Rygel on headless NAS machines.
245 - MediaExport:
246   - Provide duration and date of media.
247   - Improved guessing for type (UPnP class) of media.
248   - Re-harvest metadata when a file/directory is modified.
249   - Speed-up browsing (twice as before).
250 - rygel-preferences:
251   - Fix enabling/disabling of widgets.
252   - Copy the desktop file from correct location.
253 - Mediathek and GstLaunch disabled by default in the user configuration.
254 - Add GstLaunch to maemo configuration (disabled by default though).
255 - Put dbus-glib-1 to the list of vala API dependencies.
256 - Fix seek headers.
257 - Be more verbose at the end of configure.
258
259 Bugs fixed in this release:
260
261 596500 - Mpeg TS video files are mistaken for audio files
262 596213 - Wrong state for checkboxes
263 596327 - Enables some weird plugins by default
264 596330 - Missing some metadata
265
266 All contributors to this release:
267
268 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
269 Jens Georg <mail@jensge.org>
270
271 0.4.1
272 =====
273
274 A micro release that fixes some important issues found in the previous release:
275
276 - Update the Rygel D-Bus service paths everywhere.
277 - Ignore two ignorable errors.
278 - Initialize sensitivity of trancoding checkboxes to the same value as that of
279   "Transcoding Support" checkbox.
280 - Fix seeking in transcoded streams. Without this fix, the success of seeking
281   was based on pure luck.
282 - Correct headers in some files to reflect the correct license: LGPL.
283 - No need for DVB configuration anymore.
284
285 Bugs fixed in this release:
286
287 596211 - Error exiting the prefs
288 596213 - Wrong state for checkboxes
289
290 All contributors to this release:
291
292 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
293 Jens Georg <mail@jensge.org>
294 René Stadler <mail@renestadler.de>
295
296 0.4
297 ===
298
299 Brief summary of changes since 0.3:
300
301 - Rygel is no more just a MediaServer but rather a collection of DLNA (UPnP AV)
302   services (devices in UPnP speak).
303 - Port to new GUPnP APIs. The biggest advantage of that is that we now have
304   dynamic network support, i-e Rygel can attach/detach to/from a network
305   interface as it goes up/down.
306 - Support for time-based seeking in transcoded streams.
307 - Random tweaks to transcoding pipelines.
308 - Provide a DBus service providing two functionalities:
309    * Ability to tell Rygel to shutdown. Starting of Rygel is automatically
310      handled by D-Bus since a .service file is provided by Rygel.
311    * Ability to tell Rygel (MediaExport plugin actually) to (un)export URIs on
312      the fly.
313 - Implement enabling/disabling of UPnP in the preferences.
314 - Configuration through command-line options.
315 - Use a .ini configuration file rather than gconf.
316 - Special default configuration for Maemo.
317 - Don't spam the user's config directory and instead keep the description files
318   into a separate subdirectory.
319 - `make clean` doesn't clean the generated C files anymore.
320 - Remove "all rights reserved" part from all copyright headers.
321 - Remove integrated DVB plugin as DVBDaemon now implements the external plugin
322   interface and hence dynamically glues to Rygel, just like PulseAudio.
323 - New classes to further ease the plugin implementation.
324 - (Un)pause the SoupMessage at the right time. This was causing a lot of delays
325   when playing media on Sony PS3.
326 - Bitrate is supposed to be in bytes/second. Not really but tell that to writers
327   of UPnP specification.
328 - Expose transcode formats in the GetProtocolInfo's source argument. This should
329   make Sony Bravia TVs happy.
330 - Transcoder URIs are now sorted according to their distance from the original
331   format.
332 - Provide "contentFeatures.dlna.org" header in the HTTP responses.
333 - Provide DLNA transferMode header in the HTTP responses.
334 - Only advertise internal URIs on local loopback interface.
335 - Replace 'ip' config by 'interface' so users can bind Rygel to interfaces
336   rather than IP.
337 - Allow plugins to provide thumbnails.
338 - Add thumbnails (if available) for each item if none provided by plugins. This
339   works both on the desktop and Maemo.
340 - Suppress all C compiler warnings by default. These warnings are mostly useless
341   for us since almost all C code is generated.
342 - Preference dialog is now more like a GNOME preferences dialog.
343 - Provide .desktop file for preferences dialog.
344 - Shave the build output.
345 - GstLaunch: New plugin that exposes gstreamer pipelines described using
346   familiar gst-launch syntax in the user configuration.
347 - Tracker plugin:
348   - Nicer default title.
349   - Better detection of Tracker availability. Apparently ubuntu folks think that
350     providing a .service file is wrong.
351   - Better titles for top-level folders.
352   - More usable hierarchy: Browsing by artists, albums and tags.
353 - Folder plugin:
354   - Rename to MediaExport.
355   - Nicer default title.
356   - Use the new Rygel classes to extract, export and save media metadata.
357   - notify about updates to containers.
358   - Skip files/folders starting with '.'.
359   - Avoid crash if unknown file is found.
360   - Delete gone directories on new start.
361   - React on deletion of files.
362   - Add recursive file monitoring.
363   - Provide simple and easy options to add and remove files and folders from the
364     preferences UI.
365 - External plugin:
366   - actually use 'DLNAProfile' property.
367   - Don't load the plugin more than once.
368   - Utilise optional MediaItem properties.
369   - Fetch items on demand.
370   - Fix critical warnings.
371 - Mediathek plugin:
372   - Fix crash if no config is available.
373
374 Dependency-related changes:
375
376 - Require gupnp >= 0.13
377 - Require gupnp-av >= 0.5
378 - Require GStreamer >= 0.10.23
379 - Require libgee >= 0.3.0
380
381 Bugs fixed in this release:
382
383 584649 - Folder plugin should not export dot files and directories
384 586108 - ID3 information not exported on mp3 files
385 588034 - Bad durations for audio video files with media export plugin
386 585986 - Some copyright headers claim "all rights reserved"
387 585989 - Running "make clean" should leave generated C files in place.
388 586134 - Tracker plugin fails if org.freedesktop.Tracker can't be activated,
389          even if tracker is already running
390 586243 - GStreamer 0.10.23 required for correct operation of transcoder
391 587651 - Support for some MediaItem properties missing
392 587855 - HTTP Error responses not sent
393 587866 - No way to notify about new sub-containers
394 588030 - rygel-preferences crashes if user's config file is missing
395 588162 - Support seeking in transcoded content
396 589955 - dc:creator never included in DIDL output
397 589956 - git ignore rules
398 589974 - Set the bitrate for transcoded resources correctly.
399 589977 - Rygel not recognised by Sony Bravia televisions
400 590643 - refactor HTTP request handling code
401 590702 - Rygel should provide thumbnails for items
402 591580 - not compatible with Samsung UE46B7070
403 593228 - [plugin] new gstlaunch plugin
404
405 All contributors to this release:
406
407 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
408 Jens Georg <mail@jensge.org>
409 James Henstridge <james@jamesh.id.au>
410 Thijs Vermeir <thijsvermeir@gmail.com>
411 Ole André Vadla Ravnås <oleavr@gmail.com>
412
413 0.3
414 ===
415
416 Brief summary of changes since 0.2.2:
417
418 - Transcoding from any format (that gstreamer's decodebin2 can handle) to mp3,
419   linear PCM and mpeg transport stream containing mpeg 2 video and mp2 audio.
420 - Plugin API to deal with user preferences.
421 - User preferences UI: rygel-preferences.
422 - New plugins:
423    * Folder: Recursively exports folders specified in the user preferences.
424    * ZDFMediathek: Exports online media from 2nd German TV station.
425    * External: Exports media hierarchies provided by external applications
426      through implementation of this spec:
427      http://live.gnome.org/Rygel/MediaServer. The first application
428      that utilizes this feature is PulseAudio.
429 - Drop xbox support. It didn't work anyway and we better concentrate on
430   implementing standard stuff that it at least worthy of being called "UPnP" (
431   at least for now).
432 - Tracker and DVB plugins are only loaded if their corresponding services are
433   available.
434 - Export of duration for music and video items from Tracker.
435 - Use HTTP EOF encoding rather the CHUNKED for live streams.
436 - Ability to build rygel plugins outside it's source tree.
437 - HTTP proxying only if needed.
438 - Now that gupnp-av does DLNA profile guessing for us, no need to lie about
439   DLNA profile anymore.
440 - Add a summary after configure.
441 - HTTServer is now internal API.
442 - Use git-version-gen to generate package version.
443 - Differentiate between modules and plugins
444 - Passive, asynchronous plugin loading. A side-effect of which is that modules
445   can now load more than one plugin.
446 - Differentiate between name and title of the plugin.
447 - Plugins can now dynamically change their availability.
448 - Add API to get/list plugins.
449 - Re-use existing description from user's home directory. This not only speeds
450   the start-up but also obsoletes the necessity to keep immutable data (e.g UDN)
451   in user preferences.
452 - Provide gconf schemas.
453 - Lots of other improvements and bug fixes.
454
455 Dependency-related changes:
456
457 - Explicitly require and link to libsoup-2.4 >= 2.26.0.
458 - Don't require Vala (and bindings) in distribution tarball.
459 - Require gupnp-av >= 0.4.
460 - Require Vala >= 0.7.3.
461 - Require Gtk+ >= 2.16 if preferences UI is not disabled.
462
463 Bugs fixed in this release:
464
465 582173 - git-version-gen: generate versions with - instead of .
466 577000 - gupnp-av-cp does not like & in uris
467 576998 - Rygel wants to transcode audio files to video/mpeg
468 575935 - Add support for duration metadata field
469 574604 – bug connecting to PS3
470
471 All contributors to this release:
472
473 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
474 Jens Georg <mail@jensge.org>
475 Henrique Ferreiro <henrique.ferreiro@gmail.com>
476 Lennart Poettering <lennart@poettering.net>
477 Marc-André Lureau <marcandre.lureau@gmail.com>
478 Rob Taylor <rob.taylor@codethink.co.uk>
479
480 0.2.2
481 =====
482
483 Changes since 0.2:
484
485 - Use the new (0.6.9) Tracker API.
486 - Priority of gio-based streams are based on requested DLNA transfer mode.
487 - GIO-based/like asynchronous plugin API.
488 - Adapt to latest changes in gupnp-vala API.
489 - Serialization of media objects isn't done by media objects themselve
490   anymore, but by a new separate class, Rygel.DIDLLiteWriter.
491 - Internal API is marked 'internal' so it doesn't get to our (Vala) API.
492 - MediaObject now derives from GLib.Object.
493 - Generic AsyncResult implementation, SimpleAsyncResult.
494 - StateMachine interface that all state machines classes implement.
495 - Visible performance improvements in Tracker plugin by proper use of Tracker
496   APIs.
497 - Use Filename.to_string() and therefore make Bastien happy.
498 - Require lastest version (0.1.5) of libgee to use List.slice().
499 - Don't limit the number of objects returned to a client, let it decide
500   that on it's own.
501 - Proper handling of update notification to the client by use of a very simple
502   bubble-up mechanism for containers to signal updates.
503 - Decrease needed gconf version to 2.16.
504 - Set application name and therefore make Lennart happy.
505 - Require latest version of vala (0.5.7) and gupnp-vala (0.5.3).
506 - Allow multiple URIs for each media items.
507 - Response for seekable media request is now sent buffer by buffer so the whole
508   file is not put into memory.
509 - Some improvements to build system.
510 - Lots of other improvements and bugfixes.
511
512 0.2
513 ===
514
515 The major change after last release (as gupnp-media-server) is the introduction
516 of a simple yet powerful plugin-based architecture/api: Every plugin:
517 - is loaded into a separate MediaServer instance.
518 - can implement any kind and number of resources (currently only services).
519 - can export an icon file.
520 - inherit it's ContentDirectory implementation from a base class that does most
521   of the UPnP-related work. More improvements on this planned for next release.
522 - use an intuitive API to easily export media from URIs and live GStreamer
523   source elements over HTTP.
524
525 Other changes:
526
527 - Relicense under LGPL to allow proprietary plugins and ease of moving code
528   from/to gupnp libraries.
529 - DVB Daemon integration though a plugin. Now you can watch live channels from
530   your PC on your PS3 for example.
531 - Test plugin that exports one audio and video item, streaming contents from
532   GStreamer's audiotestsrc and videotestsrc elements respectively.
533 - Better interoperability with Sony playstation 3.
534 - Announce unavailability to UPnP world on exit.
535 - Loads of other improvements.
536
537 0.1
538 ===
539
540 - Initial release.