GUPnP DLNA 0.3.0 released!

Changes since 0.2.1:

- New API and tool (gupnp-dlna-ls-profiles) to list all supported profiles- Move API to get a profile to the DLNADiscoverer namespace- Make GUPnPDLNAProfile opaque, add to API documentation- Add support for several AVC_MP4_MP profiles- Print stream topology instead of a simple list in gupnp-dlna-info- Add debug output controlled by an environment variable for eaesier debugging- Beginnings of an automated testing infrastructure- Add relaxed/extended mode properties (more details in the next release)- Use 'bitrate' instead of 'maximum-bitrate' while matching streams- Various bug fixes

- Fix crashes in DIDLLiteContributor API.- Remove incomplete and broken DLNA guessing code. Applications should use gupnp-dlna now for all their DLNA needs.- Do set the 'dlna:profileID' property of 'albumArtURI' node and treat it as mandatory as per DLNA guidelines (7.3.61.3).- Prefer non-transcoded resources over transcoded ones when choosing compatible resources for a particular MediaRenderer.- Minor correction to DIDL filtering code.- Some other minor improvements/fixes.

A new release in the current unstable 0.7.x series for upcoming GNOME 2.31.4release.

- Implement DLNA's 'AnyContainer' upload extenstion. This allows clients to upload items without having to specify target container. Currently it only works for the Tracker backend.- Report types of items that could be created/uploaded in a container and allow clients to search containers by this property.- Port last bits of C code to Vala. Now Rygel is completely written in Vala.- Make Rygel build/work against both current stable and unstable Vala releases.- Offer SD transcoding in EU profile. Seems certain Sony Bravia TVs only support EU profiles. With this change, they should at least be able to use the SD transcoding.- Two more unit tests.- Provide default configuration for WMV transcoding.- Correctly handle boolean commandline option for disabling WMV transcoder.- External: - Port the external plugin to use the new D-Bus MediaServer specification: http://live.gnome.org/Rygel/MediaServer2Spec. The new specification is meant to be very generic and scale well to large media hierarchies. - Make use of search API when implemented by the external application. - Various other performance improvements.- Preferences UI: - Improve resize behavior. - Add missing bevel to URI tree view. - Replace GtkVBox by GtkVButtonBox where appropriate.- Localization: - Added Punjabi Translation. - Updated Norwegian bokmål translation. - Updated Galician translations. - Updated Spanish translation. - Updated Hebrew translation.- Various non-functional improvements.

As part of this years Google Summer of Code, Sunil Ghai (a student from India) has taken-up the task of securely bridging multiple UPnP networks across the internet. You can follow the progress of the project through Sunil's blog.

Before you say it, yes! I did get the idea from my "competitors" but unlike them, we are going to do it the (UPnP) standard and efficient (as usual) way.

- GUPnPService should remove all handlers installed on the shared SoupServer instance when it is disposed.- Fixate subscription timeout to be 300s as per DLNA requirement (7.2.22.1).- Correct type of action argument of GUPnPService::action-invoked.- Remove redundant copying of GValue content in a few places.- Handle multiple variables inside property node in event notifications to be compatible with server-side implementations using older GUPnP- Fix syntax of event notifications with multiple properties.- Add/fix gobject-introspection annotations for various functions.- Some non-functional improvements.

Bugs fixed in this release:

2084 - Add scope annotations to various functions2131 - GUPnPServiceAction is a boxed, not a pointer2086 - Fix gtk-doc format on all functions in public GUPnP API