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