Posts

Showing posts with the label GUPnP

Future Perfect

Ever since I blogged about me looking for opportunities outside Nokia , I was contacted by quite some companies. Some of them ended-up giving me nice offers but in the end the offer that stood out amongst all was from Red Hat . So last evening, I accepted their offer to join the awesome Spice team. The reasons I chose Red Hat over others were: Red Hat being undoubtedly the leader in Open Source technologies for more than a decade has always been on my 'awesome places to work at some day' list. The Spice project that I'm being hired to work on is simply awesome. They offer good working conditions. I'll be staying in Finland and most likely working from home (unless I'm asked to work at the Espoo office). I will be officially joining Red Hat on May 2 and my last day at Nokia will be on April 21. Before you ask, nothing disastrous is going to happen to GUPnP and Rygel . Of course I won't be spending as many hours on these projects as now but keeping in m

GUPnP DLNA 0.3.0 & GUPnP Vala 0.6.11

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 All contributors to this release: Arun Raghavan Parthasarathi Susarla Zeeshan Ali (Khattak) GUPnP Vala 0.6.11 released! Changes since 0.6.10: - Require and adapt to gupnp-av 0.3.0. All contributors: Arun Raghavan Parthasarathi Susarla Zeeshan Ali (Khattak) Download source tarballs from here

GUPnP A/V 0.5.8 released!

Changes since 0.5.7: - 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. Bug fixed in this release: 2187 - GUPnPDIDLLiteContributor class doesn't work All contributors to this release: Zeeshan Ali (Khattak) Download source tarball from here

GUPnP 0.13.4 & GUPnP AV 0.5.6 released!

GUPnP 0.13.4 released! Changes since 0.13.3: - 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 functions 2131 - GUPnPServiceAction is a boxed, not a pointer 2086 - Fix gtk-doc format on all functions in public GUPnP API All contributors: Sven Neumann Zeeshan Ali (Khattak) Zach Goldberg Download source tarball from here ----------- GUPnP AV 0.5.6

GSSDP 0.7.2, GUPnP 0.13.3, GUPnP AV 0.5.5 & GUPnP Vala 0.6.5

GSSDP 0.7.2 released! Changes since 0.7.1: - Provide gobject-introspection GIR and typelib. - Use silent build rules. - Fix issues with version-independence magic in SSDP code. - Fix build issues in jhbuild environment. Bugs fixed in this release: 2025 - autogen.sh fails to find autoconf macros when they're installed in a non-standard location 1927 - gssdp fails to answer M-SEARCH sometimes 1921 - GObject Introspection Makefile for GSSDP All Contributors: Zeeshan Ali (Khattak) Zach Goldberg Jens Georg Neil Roberts Ross Burton Download source tarball from here GUPnP 0.13.3 released! Changes since 0.13.2: - Include the Content-Type header in the HTTP messages. This satisfies DLNA CTT test cases 7.2.5.9 and 7.2.29.1. - Use g_message instead of g_warning if we can't connect to DBus. - Make the HTTP server listen on the context's interface only. - Fix some potential crashes in GUPnPServiceProxy and GUPnPContextManager code. - Fix build issues in jhbuil

GUPnP AV & GUPnP Vala releases

GUPnP AV 0.5.4 released Changes since 0.5.2: - Gracefully handle empty or no 'res' node. - Function to get the list of descriptors from DIDL-Lite objects. - More complete comparison for LPCM mime types. - Fix incorrect type conversion of DLNA flags. - DLNA flags should not default to a specific DLNA version. - New APIs to deal with contributor-related properties in DIDL-Lite objects. - Remove redundant construction methods. - Add forgotten header to the meta-header file. - Add and fix gobject-introspection annotations. - Lots of documentation fixes. - Many minor non-functional fixes/improvements. Bug fixes in this release: 1935 - Incorrect conversion while parsing primary DLNA Flags 1934 - DLNA Flags should not default to a specific DLNA version. 1933 - Content type matching fails when additional parameters exist in LPCM mime-type 1814 - Add "artists" property to GUPnPDIDLLiteObject All contributors to this release: Zeeshan Ali (Khattak) Yakup Akbay Za

GSSDP 0.7.1 and GUPnP 0.13.2 released!

GSSDP 0.7.1 released! - Don't leak target regex. - Make GSSDPClient ignore Point to Point interfaces. - Use SO_REUSEPORT if present. Darwin and some BSDs don't have SO_REUSEADDR, but SO_REUSEPORT. - If we can't create a request socket don't try to create a multicast socket. - Have specific GError code for interfaces without an IP address. - Actually remove gssdp_client_new_full(). Bugs fixed: 1898 - GSSDPClient keeps autoselecting my VPN 1810 - Not possible to run multiple ssdp clients on darwin 1800 - leak of a gregex in gssdp-resource-browser 1796 - gssdp_client_new_full is declared in header but not implemented All contributors: Olivier Crête Ross Burton Iain Holmes Mattias Wadman Zeeshan Ali (Khattak) Download release tarballs from here GUPnP 0.13.2 released! Changes since 0.13.1: - Utilize libconic (Maemo5) if available. - Unix context manager must signal the unavailibility of all contexts when disposed. - Enable silent build rules if they are

We can has Python too

Zachary Goldberg reports : As I've been mentioning lately I have been working on using PyGObject + GObject Introspection (recently forked, now called PyGI + PyGObject + Gobject Introspection) and have some exciting news! I have been working on fleshing out a whole bunch of unit tests which exercise the entire GUPnP API. I hate a major roadblock in that PyGI did not support native callbacks! So, after a week or two detour I have implemented PyGI callbacks (which now work rather nicely, but need a bunch of stylistic cleanups and error checking before its pushed back upstream.. priorities!) as well as some working GUPnP demos. My best demo so far is about 25 lines of python which: 1) Gets all devices on one network interface 2) Scans for all the services each device provides 3) If the device is GMediaRenderer and it provides an AVTransport Service (it does...) then it 3a) Stops whatever is currently playing 3b) Loads a new URI (hardcoded from my mediatomb server for now, h

Rygel 0.4 (Fascinating!) is out!

Rygel 0.4 (Fascinating!) is out! As usual, the release announcement: 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

GSSDP 0.7, GUPnP 0.13, GUPnP AV 0.5, GUPnP Tools 0.8 & GUPnP Vala 0.6

GSSDP 0.7 released! Changes in this release: - Join the multicast group on the specified interface. - Put the message src timeout in the specified GMainContext. - "host-ip" property moved from GUPnPContext to parent GSSDPClient. - Use inet_aton instead of inet_addr and handle the error from it. - gssdp-device-sniffer ported to GtkBuilder. - Version-independent target match. This makes client forward and backward compatible with resources that implement different version of the specs than the client. - Version-independent M-SEARCH response. This has the same effect as above but only the other way around. - GSSDPClient now binds to interface rather than IP. - No need to find the default route. - Add "active" property to GSSDPClient. - Fix pkg-config paths. - Add basic .gitignore. - Other minor/internal changes. Bugs fixed: 1621 - new gssdp timeout not added to the specific maincontext 1570 - gupnp doesn't set the pkgconfig lib dir correctly in 64 bit env Dependenc

GUPnP 0.12.8 released

Changes since 0.12.7 - Don't crash if device descriptions don't contain a root element. - Fix pkg-config paths. - Avoid using asserts. - Use the closest match instead of using the icon that was last checked. - Expect xmlRecoverMemory to fail. - Reject action messages with zero content length. - Change version in action answer. Bug fixes in this release: - bug#1570: gupnp doesn't set the pkgconfig lib dir correctly in 64 bit env. - bug#1574: Avoid using asserts. - bug#1592: gupnp_device_info_get_icon_url() does not return the closest match. - bug#1604: Crash on action without any content. All contributors to this release: Ross Burton Zeeshan Ali (Khattak) Steven Dorigotti Sven Neumann Jens Georg Download at: http://gupnp.org/sources/gupnp/gupnp-0.12.8.tar.gz

GUPnP Tools 0.7.1 released

Changes in this release: - Use g_printerr() instead of g_critical() in case of problems. - Initialize the GError to NULL at declaration. - Declare variables as const to setisfy the compiler. - Add missing casts. - Use g_content_type_is_a() to compare mimetypes. - Correct the order of mimetype check. - Iterate over item resources rather than renderer protocols. - Port all UIs to use GtkBuilder. - Bump-up Gtk+ requirement to 2.16. Removed dependency in this release: libglade. Contributors to this release: Sven Neumann < s.neumann@phase-zero.de > Zeeshan Ali (Khattak) < zeeshanak@gnome.org > Download tarball here: http://gupnp.org/sources/ gupnp-tools/gupnp-tools-0.7.1. tar.gz

GUPnP 0.12.7 released

GUPnP 0.12.7 released. Changes in this release: - Chain up dispose and finalize in GUPnPDeviceInfo - Use a dedicated SoupSession for event handling - Fix device icon fallback logic - Fix user agent string - Sanity check UDN while parsing Download source tarball from: http://gupnp.org/sources/gupnp/gupnp-0.12.7.tar.gz Contributors to this release: Sven Neumann Ross Burton Zeeshan Ali

GUPnP on windows

I have been asked several times in the past if gupnp is portable enough. I always told them that I don't know for sure but the only problem i see is the low-level networking bits. Nobody really showed interest in actually trying it out on windows but then came Jens Georg. He managed to make gupnp stack and network-light working on windows within a weekend, despite the fact that some of his hours were wasted due to firewalls being enabled after a reboot and him forgetting about it. He has a small video of network-light running nicely on win32 on his blog .

My first Javascript app

Last night I tried to make a small app/script in javascript (gjs) and it actually worked. :) Here is the code: const GLib = imports.gi.GLib; const GUPnP = imports.gi.GUPnP; const Mainloop = imports.mainloop; // This doesn't start any threads GLib.thread_init (null); let context = new GUPnP.Context ({ main_context: null, host_ip: null, port: 0 }); let cp = new GUPnP.ControlPoint ({ client: context, target: "ssdp:all" }); function onDeviceProxyAvailable (cp, proxy) { log (proxy.get_friendly_name ()); } // Tell us when there is a new device available cp.connect ("device-proxy-available", onDeviceProxyAvailable); // Search and listen for UPnP resources on the network cp.set_active (true); Mainloop.run ("0");

GUPnP AV 0.4 and GUPnP Vala 0.5.4 released

GUPnP AV 0.4 released. New in this release: - Watch for empty DIDL-Lite nodes. - Escape the URIs before putting them into DIDL-Lite XML. - The '.' must be omitted from duration if fraction part is not included. - Be more lenient when parsing DIDL-Lite XML fragments. - Don't require the DLNA profile string. - Try to guess the DLNA Profile if not provided and put "*" in the whole 4th field of protocolInfo if our guess work fails. - Make sure 4th field of protocolInfo is completely in compliance with DLNA guidelines. This only implies one change in the API: enum dlna_play_speed is replaced by play_speeds, a GList of allowed play speeds as strings. - Use '1' and '0' to express boolean properties in DIDL-Lite XML. - Other minor fixes. All contributors to this release: Henrique Ferreiro García Peter Christensen Sven Neumann Zeeshan Ali (Khattak) Download from here: http://gupnp.org/sources/ gupnp-av/gupnp-av-0.4.tar.gz -----------------------------

Multiple networks and GUPnP

When GUPnP was first used at Maemo software, one of the first questions I was asked was: Can't GUPnP handle multiple network interfaces just like ClinkC (the now deprecated UPnP framework in Maemo)? The answer to that question was "yes but you have to take care of creating GUPnPContext objects for each network interface yourself" and that wasn't very convenient. This issue, accompanied by the fact that applications had to know when the interfaces go up and down to create and destroy the associated GUPnPContext object themselves, made the lives of application developers not so easy. Recently when this issue was raised on the mailing-list and bugzilla by two different people, I started to think about how to solve this issue. Keeping in view Ross ' advice I came-up with the following solution A GUPnPContextManager class that basically just have two signals: "context-available" and "context-unavailable", that it uses to create/destroy and report

GSSDP 0.6.4, GUPnP 0.12.6 and GUPnP Vala 0.5.3

GSSDP 0.6.4 released New in this release: - Send ssdp:byebye before sending the first ssdp:alive. [Jussi Kukkonen] - Moderate the outbound SSDP messages. [Jussi Kukkonen] - Documentation fixes. [Jussi Kukkonen] - Send byebyes in dispose without sleep. [Jussi Kukkonen] - Use g_set_error_literal(). [Jorn Baayen] - Depend on glib 2.18. [Jorn Baayen] - Do not byebye unavailable resources. [Jorn Baayen] - All resources must respond to "ssdp:all" messages. [Hugo Calleja, Jorn Baayen] Download from here: http://gupnp.org/sources/ gssdp/gssdp-0.6.4.tar.gz --------------------------------- GUPnP 0.12.6 released: New in this release: - Port to FreeBSD. [Romain Tartière] - Ship the XML files needed for example app. [Romain Tartière] - Keep a reference on the control-point during signal emission. [Sven Neumann] - Allow passing NULL to ControlPoint constructor, for default resource factory. [Sven Neumann] - Remove debug output that accidentally went in with the last commit. [Sven Neumann]

Rygel 0.2 is out

Rygel 0.2 is out. Here is the release announcement: The major change after last release (as gupnp-media-server) is the introduction of a simple yet powerful plugin-based architecture/api: Everyone 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 respect

GUPnP migrates to Git

Thanks to Ross and Richard Purdie, GUPnP moved to Git today. I already updated the jhbuild modulesets to reflect the new repos.