
GStreamer: Release notes for GStreamer 0.9.5 "Bike Lunch Day"
        

The GStreamer team is petrified to announce a new release
in the 0.9.x development series of the
core of the GStreamer streaming media framework.


The 0.9.x series is a development series and not recommended for end users.
It is not API or ABI compatible with the stable 0.8.x series.
It is, however, parallel installable with the 0.8.x series.


The main focus of the 0.9 series is to make GStreamer threadsafe.


This module, gstreamer, only contains core functionality.
For actual media playback, you will need other modules.

gst-plugins-base
contains a basic set of well-supported plug-ins
gst-plugins-good
contains a set of well-supported plug-ins under our preferred license
gst-plugins-ugly
contains a set of well-supported plug-ins, but might pose problems for
    distributors
gst-plugins-bad
contains a set of less supported plug-ins that haven't passed the
    rigorous quality testing we expect



  
Features of this release
    
      * Parallel installability with 0.8.x series
      * Threadsafe design and API
      * gst_bus_poll and signal watch now see the same messages
      * clock sync in BaseSrc class
      * API documentation updates
      * Bus reworked; signal API added

Bugs fixed in this release
    
      * 317341 : after linking ghost pads, one target pad does not have a ...
      * 320774 : basesrc commit broke typefinding

Download

You can find source releases of gstreamer in the download directory:
http://gstreamer.freedesktop.org/src/gstreamer/

GStreamer Homepage

More details can be found on the project's website:
http://gstreamer.freedesktop.org/

Support and Bugs

We use GNOME's bugzilla for bug reports and feature requests:
http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer

Developers

CVS is hosted on cvs.freedesktop.org.
All code is in CVS and can be checked out from there.
Interested developers of the core library, plug-ins, and applications should
subscribe to the gstreamer-devel list. If there is sufficient interest we
will create more lists as necessary.

        
Applications

At this point, ports of existing applications to 0.9 are still experimental.
A patch for Totem is maintained at

http://bugzilla.gnome.org/show_bug.cgi?id=313086.
A patch for Rhythmbox is maintained at

http://bugzilla.gnome.org/show_bug.cgi?id=309609.
Jamboree has a branch with the tag "jamboree-gst-0.9" that works against
GStreamer 0.9.
Flumotion has been mostly ported to 0.9 as well.

  
Contributors to this release
    
      * Andy Wingo
      * Edward Hervey
      * Johan Dahlin
      * Julien MOUTTE
      * Luca Ognibene
      * Michael Smith
      * Stefan Kost
      * Thomas Vander Stichele
      * Tim-Philipp Müller
      * Wim Taymans
 