0.6.0 ===== This release marks the start of the new stable release-cycle. Changes since 0.5.2: - Localization: - Fix translation framework. - Mark all (possibly) user-visible string for translation. - Use more translator-friendly language. - Provide comments for translators. - Correctly case abbreviations. - Translations: - German (de) 100% - Slovenian (sl): 100% - Spanish (es): 57% - Fix time-seeking. - Fix a potential race-condition in aborted HTTP requests. - Don't stream if request is for subtitles. - Use bigger (64Ki) buffers when streaming from gstreamer source element. - Remux only if transcoding is not needed. - Configuration option for specifying plugin load path. - Add configuration from Environment. - Fix port specification through commandline. - Add and expose Rygel logo. - Pause streaming pipeline when/if client isn't reading fast enough. - Add more unit tests. - Use gnome-autogen.sh. - Add missing libuuid to build and linker flags for all plugins. - Plugins are now able to provide a model description. - MediaExport: - File size change suggests file change. - Move media DB and metadata harvesting code from core to module as this is the only module that is using it. - External plugin now sets model description. - Lots of non-functional improvements and fixes. Dependency-related changes: - Sqlite now only needed for media-export plugin. Bugs fixed in this release: 617762 Wrong file size exported to PS3 590649 LiveResponse does not rate limit the GStreamer pipeline 615834 Uses ALL_LINGUAS in configure.ac 616189 Translation issues 617750 Only re-encode audio and video when necessary All contributors to this release: Zeeshan Ali (Khattak) Jens Georg Mario Blättermann Jorge González Andrej Žnidaršič 0.5.2 ===== Another release in the unstable 0.5.x series. Changes since 0.5.0: - Add support for Xbox 360 and Window Media Player 11. - Add support for subtitles. Currently only useful for certain Samsung DLNA TVs. - Add Windows Media Video (WMV) transcoder. - Add unit tests for a few modules. - Fix some (potential) crashes. - Make database operations cancellable. - Throw error on database creation failure. - Simpler (hopefully) build rules. - Fix race-condition in streaming code so we don't terminate the connection before all the bytes are sent to the client. - Fix leaking of HTTP messages of live streams on termination. - Fix 'Content-Length' header values for partial requests. - Fix parsing of search expression containing characters not within the original latin1 range. - Use bigger (64Ki) buffers when streaming media to reduce cpu usage and therefore improve battery life. - Include spec version in description document. - Remove now unneeded work-around for vala bug#568972. - Advertize photos with their specific class, i-e 'photo' rather than 'image'. - MediaExport: - Implement search by URIs. - Implement search by album. - Error-out on invalid search expression. - Add support for virtual containers. This allows creation of metadata-based hierarchies in the user-config. - Fix deletion of containers. - URI-escape meta-data fields. - Catch previously uncaught exceptions. - Fix upgrade of database from older schemas. - Lots of code clean-ups and documentation fixes. Dependency-related changes: - Require gupnp >= 0.13.3. - Require gupnp-av >= 0.5.5. - Require gupnp-vala >= 0.6.5. - Require valac >= 0.8.0. Bugs fixed in this release: 608886 - media export plugin corrupts its database when you change directories 609944 - Files not harvested on update 606305 - Samsung subtitles All contributors to this release: Jens Georg Zeeshan Ali (Khattak) Cyrille Chepelov 0.5.0 ===== The first release in the unstable 0.5.x series. Changes since 0.4.6 that were not provided by any subsequent 0.4.x releases: - New URI generation scheme that avoids problematic characters which makes some crappy renderers choke. - Allow creation of new media items and tranfering data into existing ones ( upload). This is relavent to, and works for both MediaExport and Tracker. - Implement GetTransferProgress and StopTransferResource actions. - Advertise: - support for connection stalling. - live response to be sender-paced. - Rewrite SearchCriteria parser to make it more reliable. - Tracker: - Port to the Tracker 0.7 APIs. - Provide richer & more intuitive media hierarchy. - Signal container update on changes to subjects. - Act on config options allowing user to define which categories to share. - Support for search by URI. - Descriptive IDs for containers. - MediaExport - Implement custom search that translates to an SQLite query and therefore performs much faster than before. - Print message on console when harvesting is done. - Don't modify DB if harvester was cancelled. - Cancel harvester before starting new one. - Lots of non-functional improvements and fixes. All contributors to this release: Zeeshan Ali (Khattak) Jens Georg 0.4.6 ===== Brief summary of changes since 0.4.4: - Implement optional UPnP Search action. This is not only a must have feature for a commercial MediaServer but is also a big first step towards proper XBox 360 support. - Simplify Browse action handling. - Simplify MediaServer plugin implementation. - Make sure autostart dir exists before attempting to write to it. - Fix a potential crash that is trigered by MediaContainer reporting incorrect (higher) number of children. - External: - Work around (vala) bug#602003. - Optimizations and code clean-ups. - Tracker: - Provide an efficient Search implementation using Tracker's search API. - Minor code clean-ups. Dependency-related changes: - Require gupnp-av >= 0.5.2. - Require gupnp-vala >= 0.6.2. - Require valac >= 0.7.9. Bugs fixed in this release: 600256 - Segfault when trying to access a stream All contributors to this release: Zeeshan Ali (Khattak) 0.4.4 ===== Brief summary of changes since 0.4.2: - Provide a gstreamer-based MediaRenderer plugin. This is mostly code stolen ( and heavily adapted) from gupnp-media-renderer except that it doesn't depend on libowl-av and/or gtk+. - More ease for MediaServer implementors. - Better error handling. - Make sure no message is suppressed until we know what level of console output user wants. - Make use of vala's async support to simplify code quite a bit. - Plugins should load xml files from source tree when built with '--enable-uninstalled' configure flag. - Build with no optimizations in debug mode. - Use closure table to speed up object lookup and deletion. - Add build option for SQL debugging. - Workaround a crasher bug (#3774) in sqlite 3.6.12. - Use vala's static client D-Bus syntax. - Early ignorance of disabled plugins. This not only speeds-up startup a bit but also rids us of redundant debug messages. - MediaExport: - Nicely handle unavailability of gstreamer's playbin(2) element. - Fix a potential crasher. - Tracker: - Use multidimensional arrays to deal with search results. This combined with static client D-Bus syntax gives us quite a speed boost. - Handle item creation error. - External: - Allow applications to provide custom thumbnails for items. - Support pixel-aspect-ratio properties. - All D-Bus operations are now done asynchronously. - Make use of plugin icon if provided. - Move magic string substitution to core so other plugins can benefit from it. - Lots of other improvements and bug fixes. Dependency-related changes: - Require and adapt to libgee >= 0.5. - Require and adapt to valac >= 0.7.8. Bugs fixed in this release: 597276 - Rygel crash on startup 587649 - thumbnails not published for external media servers 589959 - External plugin should query media servers on demand 598005 - unable to load media-tracker plugin All contributors to this release: Zeeshan Ali (Khattak) Jens Georg Thijs Vermeir 0.4.2 ===== Brief summary of changes since 0.4.1: - Ability to specify verbosity of console messages by a number between 0 to 5. - Be able to survive unavailability of D-Bus session bus. This should make it easier to setup Rygel on headless NAS machines. - MediaExport: - Provide duration and date of media. - Improved guessing for type (UPnP class) of media. - Re-harvest metadata when a file/directory is modified. - Speed-up browsing (twice as before). - rygel-preferences: - Fix enabling/disabling of widgets. - Copy the desktop file from correct location. - Mediathek and GstLaunch disabled by default in the user configuration. - Add GstLaunch to maemo configuration (disabled by default though). - Put dbus-glib-1 to the list of vala API dependencies. - Fix seek headers. - Be more verbose at the end of configure. Bugs fixed in this release: 596500 - Mpeg TS video files are mistaken for audio files 596213 - Wrong state for checkboxes 596327 - Enables some weird plugins by default 596330 - Missing some metadata All contributors to this release: Zeeshan Ali (Khattak) Jens Georg 0.4.1 ===== A micro release that fixes some important issues found in the previous release: - Update the Rygel D-Bus service paths everywhere. - Ignore two ignorable errors. - Initialize sensitivity of trancoding checkboxes to the same value as that of "Transcoding Support" checkbox. - Fix seeking in transcoded streams. Without this fix, the success of seeking was based on pure luck. - Correct headers in some files to reflect the correct license: LGPL. - No need for DVB configuration anymore. Bugs fixed in this release: 596211 - Error exiting the prefs 596213 - Wrong state for checkboxes All contributors to this release: Zeeshan Ali (Khattak) Jens Georg René Stadler 0.4 === Brief summary of changes since 0.3: - Rygel is no more just a MediaServer but rather a collection of DLNA (UPnP AV) services (devices in UPnP speak). - Port to new GUPnP APIs. The biggest advantage of that is that we now have dynamic network support, i-e Rygel can attach/detach to/from a network interface as it goes up/down. - Support for time-based seeking in transcoded streams. - Random tweaks to transcoding pipelines. - Provide a DBus service providing two functionalities: * Ability to tell Rygel to shutdown. Starting of Rygel is automatically handled by D-Bus since a .service file is provided by Rygel. * Ability to tell Rygel (MediaExport plugin actually) to (un)export URIs on the fly. - Implement enabling/disabling of UPnP in the preferences. - Configuration through command-line options. - Use a .ini configuration file rather than gconf. - Special default configuration for Maemo. - Don't spam the user's config directory and instead keep the description files into a separate subdirectory. - `make clean` doesn't clean the generated C files anymore. - Remove "all rights reserved" part from all copyright headers. - Remove integrated DVB plugin as DVBDaemon now implements the external plugin interface and hence dynamically glues to Rygel, just like PulseAudio. - New classes to further ease the plugin implementation. - (Un)pause the SoupMessage at the right time. This was causing a lot of delays when playing media on Sony PS3. - Bitrate is supposed to be in bytes/second. Not really but tell that to writers of UPnP specification. - Expose transcode formats in the GetProtocolInfo's source argument. This should make Sony Bravia TVs happy. - Transcoder URIs are now sorted according to their distance from the original format. - Provide "contentFeatures.dlna.org" header in the HTTP responses. - Provide DLNA transferMode header in the HTTP responses. - Only advertise internal URIs on local loopback interface. - Replace 'ip' config by 'interface' so users can bind Rygel to interfaces rather than IP. - Allow plugins to provide thumbnails. - Add thumbnails (if available) for each item if none provided by plugins. This works both on the desktop and Maemo. - Suppress all C compiler warnings by default. These warnings are mostly useless for us since almost all C code is generated. - Preference dialog is now more like a GNOME preferences dialog. - Provide .desktop file for preferences dialog. - Shave the build output. - GstLaunch: New plugin that exposes gstreamer pipelines described using familiar gst-launch syntax in the user configuration. - Tracker plugin: - Nicer default title. - Better detection of Tracker availability. Apparently ubuntu folks think that providing a .service file is wrong. - Better titles for top-level folders. - More usable hierarchy: Browsing by artists, albums and tags. - Folder plugin: - Rename to MediaExport. - Nicer default title. - Use the new Rygel classes to extract, export and save media metadata. - notify about updates to containers. - Skip files/folders starting with '.'. - Avoid crash if unknown file is found. - Delete gone directories on new start. - React on deletion of files. - Add recursive file monitoring. - Provide simple and easy options to add and remove files and folders from the preferences UI. - External plugin: - actually use 'DLNAProfile' property. - Don't load the plugin more than once. - Utilise optional MediaItem properties. - Fetch items on demand. - Fix critical warnings. - Mediathek plugin: - Fix crash if no config is available. Dependency-related changes: - Require gupnp >= 0.13 - Require gupnp-av >= 0.5 - Require GStreamer >= 0.10.23 - Require libgee >= 0.3.0 Bugs fixed in this release: 584649 - Folder plugin should not export dot files and directories 586108 - ID3 information not exported on mp3 files 588034 - Bad durations for audio video files with media export plugin 585986 - Some copyright headers claim "all rights reserved" 585989 - Running "make clean" should leave generated C files in place. 586134 - Tracker plugin fails if org.freedesktop.Tracker can't be activated, even if tracker is already running 586243 - GStreamer 0.10.23 required for correct operation of transcoder 587651 - Support for some MediaItem properties missing 587855 - HTTP Error responses not sent 587866 - No way to notify about new sub-containers 588030 - rygel-preferences crashes if user's config file is missing 588162 - Support seeking in transcoded content 589955 - dc:creator never included in DIDL output 589956 - git ignore rules 589974 - Set the bitrate for transcoded resources correctly. 589977 - Rygel not recognised by Sony Bravia televisions 590643 - refactor HTTP request handling code 590702 - Rygel should provide thumbnails for items 591580 - not compatible with Samsung UE46B7070 593228 - [plugin] new gstlaunch plugin All contributors to this release: Zeeshan Ali (Khattak) Jens Georg James Henstridge Thijs Vermeir Ole André Vadla Ravnås 0.3 === Brief summary of changes since 0.2.2: - Transcoding from any format (that gstreamer's decodebin2 can handle) to mp3, linear PCM and mpeg transport stream containing mpeg 2 video and mp2 audio. - Plugin API to deal with user preferences. - User preferences UI: rygel-preferences. - New plugins: * Folder: Recursively exports folders specified in the user preferences. * ZDFMediathek: Exports online media from 2nd German TV station. * External: Exports media hierarchies provided by external applications through implementation of this spec: http://live.gnome.org/Rygel/MediaServer. The first application that utilizes this feature is PulseAudio. - Drop xbox support. It didn't work anyway and we better concentrate on implementing standard stuff that it at least worthy of being called "UPnP" ( at least for now). - Tracker and DVB plugins are only loaded if their corresponding services are available. - Export of duration for music and video items from Tracker. - Use HTTP EOF encoding rather the CHUNKED for live streams. - Ability to build rygel plugins outside it's source tree. - HTTP proxying only if needed. - Now that gupnp-av does DLNA profile guessing for us, no need to lie about DLNA profile anymore. - Add a summary after configure. - HTTServer is now internal API. - Use git-version-gen to generate package version. - Differentiate between modules and plugins - Passive, asynchronous plugin loading. A side-effect of which is that modules can now load more than one plugin. - Differentiate between name and title of the plugin. - Plugins can now dynamically change their availability. - Add API to get/list plugins. - Re-use existing description from user's home directory. This not only speeds the start-up but also obsoletes the necessity to keep immutable data (e.g UDN) in user preferences. - Provide gconf schemas. - Lots of other improvements and bug fixes. Dependency-related changes: - Explicitly require and link to libsoup-2.4 >= 2.26.0. - Don't require Vala (and bindings) in distribution tarball. - Require gupnp-av >= 0.4. - Require Vala >= 0.7.3. - Require Gtk+ >= 2.16 if preferences UI is not disabled. Bugs fixed in this release: 582173 - git-version-gen: generate versions with - instead of . 577000 - gupnp-av-cp does not like & in uris 576998 - Rygel wants to transcode audio files to video/mpeg 575935 - Add support for duration metadata field 574604 – bug connecting to PS3 All contributors to this release: Zeeshan Ali (Khattak) Jens Georg Henrique Ferreiro Lennart Poettering Marc-André Lureau Rob Taylor 0.2.2 ===== Changes since 0.2: - Use the new (0.6.9) Tracker API. - Priority of gio-based streams are based on requested DLNA transfer mode. - GIO-based/like asynchronous plugin API. - Adapt to latest changes in gupnp-vala API. - Serialization of media objects isn't done by media objects themselve anymore, but by a new separate class, Rygel.DIDLLiteWriter. - Internal API is marked 'internal' so it doesn't get to our (Vala) API. - MediaObject now derives from GLib.Object. - Generic AsyncResult implementation, SimpleAsyncResult. - StateMachine interface that all state machines classes implement. - Visible performance improvements in Tracker plugin by proper use of Tracker APIs. - Use Filename.to_string() and therefore make Bastien happy. - Require lastest version (0.1.5) of libgee to use List.slice(). - Don't limit the number of objects returned to a client, let it decide that on it's own. - Proper handling of update notification to the client by use of a very simple bubble-up mechanism for containers to signal updates. - Decrease needed gconf version to 2.16. - Set application name and therefore make Lennart happy. - Require latest version of vala (0.5.7) and gupnp-vala (0.5.3). - Allow multiple URIs for each media items. - Response for seekable media request is now sent buffer by buffer so the whole file is not put into memory. - Some improvements to build system. - Lots of other improvements and bugfixes. 0.2 === The major change after last release (as gupnp-media-server) is the introduction of a simple yet powerful plugin-based architecture/api: Every plugin: - is loaded into a separate MediaServer instance. - can implement any kind and number of resources (currently only services). - can export an icon file. - inherit it's ContentDirectory implementation from a base class that does most of the UPnP-related work. More improvements on this planned for next release. - use an intuitive API to easily export media from URIs and live GStreamer source elements over HTTP. Other changes: - Relicense under LGPL to allow proprietary plugins and ease of moving code from/to gupnp libraries. - DVB Daemon integration though a plugin. Now you can watch live channels from your PC on your PS3 for example. - Test plugin that exports one audio and video item, streaming contents from GStreamer's audiotestsrc and videotestsrc elements respectively. - Better interoperability with Sony playstation 3. - Announce unavailability to UPnP world on exit. - Loads of other improvements. 0.1 === - Initial release.