
Release notes for GStreamer Good Plug-ins 0.10.15 "I've been up all night"
        


The GStreamer team is proud to announce a new release
in the 0.10.x stable series of the
GStreamer Good Plug-ins.


The 0.10.x series is a stable series targeted at 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.



"Such ingratitude.  After all the times I've saved your life."


A collection of plug-ins you'd want to have right next to you on the
battlefield.  Shooting sharp and making no mistakes, these plug-ins have it
all: good looks, good code, and good licensing.  Documented and dressed up
in tests.  If you're looking for a role model to base your own plug-in on,
here it is.


If you find a plot hole or a badly lip-synced line of code in them,
let us know - it is a matter of honour for us to ensure Blondie doesn't look
like he's been walking 100 miles through the desert without water.


This module contains a set of plug-ins that we consider to have good quality
  code, correct functionality, our preferred license (LGPL for the plug-in
  code, LGPL or LGPL-compatible for the supporting library).
We believe distributors can safely ship these plug-ins.
People writing elements should base their code on these elements.


Other modules containing plug-ins are:


gst-plugins-base
contains a basic set of well-supported plug-ins
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
    
      * Some fixes for seeking in wav and FLAC files
      * Faster seeking in Matroska and AVI files
      * RTSP and RTP improvements
      * directdrawsink moved to Bad
      * y4menc and flvmux/flvdemux moved from Bad
      * deinterlace2 moved from Bad, replacing deinterlace
      * Many bug fixes and improvements
      * Pulseaudio sink completely overhauled

Bugs fixed in this release
     
      * 572551 : mpeg4videoparse fails to extract codec_data from this net...
      * 577318 : rtspsrc appears to be leaking memory
      * 576286 : [videomixer] Should accept/output non-alpha streams
      * 581333 : rtspsrc: request_pt_map in gstrtspsrc.c fails to return c...
      * 478092 : gstid3v2mux.cc:deprecated conversion from string constant...
      * 486915 : [videomixer] segmentation fault on gst-inspect
      * 509311 : [rtph263pay] rtph263pay does not follow rfc2190
      * 516031 : flac within ogg container can't be played on Jokosher
      * 537537 : [pulse] Latency issues
      * 537609 : RTSP - rtspsrc module  support for Scale header
      * 552650 : [rtspsrc] (partially) fails SETUP with MS RTSP servers
      * 562168 : Good plugins' configury overloads --disable-debug
      * 563574 : v4l2src should capture in non-blocking mode
      * 567140 : G726 Packetizer issue for 24kbps & 40 kbps datarate
      * 567857 : [udpsrc] loop on gst_poll_wait when POLLERR because of icmp
      * 570781 : [alawdec] spews ERROR debug messages on shutdown/seek/not...
      * 571153 : [pulsemixer] compiler warnings (on ARM)
      * 571321 : gconfvideo{src,sink} don't disconnect gconf notifications
      * 572256 : gst/avi/gstavidemux.c: Alignment trap in gst_avi_demux_pa...
      * 572358 : law encoders _getcaps ignore rate/channel if not both are...
      * 572413 : [jpegenc] crashes if no input format has been set
      * 573173 : Added Quicktime HTTP tunneling to the RTSP src element
      * 573342 : Unconditioned EAFNOSUPPORT in gstudpnetutils.c
      * 573343 : Type mismatches in gstdirectdrawsink.c
      * 573721 : [PLUGIN-MOVE] move directdrawsink back to -bad
      * 573737 : [PLUGIN-MOVE] Move FLV to -good
      * 574270 : [rtspsrc] Range request is wrong (should say: npt=now-)
      * 574275 : flacdec ! appsink with a seek seems to drop the first buffer
      * 577468 : [id3demux] Frames not extracted if tag is unsynchronised
      * 577609 : [id3v2mux] write RVA2 frames for peak/gain volume data
      * 577671 : [rtspsrc] deadlock on shutdown (locking order problem?)
      * 578052 : gstavidemux: support seeking and duration query in defaul...
      * 578135 : [qtdemux] missing 3gpp Asset metadata handling
      * 578310 : [matroskamux] - Should suppport speex
      * 579070 : [sunaudio] fix compiler warnings
      * 579422 : flacdec can block allocating before it sent a new-segment
      * 579808 : [jpegdec] Doesn't support additional 0xff before end marker
      * 580746 : [qtdemux] 3GPP classification entity byte order reversed
      * 580783 : [PLUGIN-MOVE] Move y4menc to -good
      * 580851 : rtspsrc: various; sanity of ranges, setting of base_time ...
      * 580880 : gstrtpjpegpay is not functioning properly; rtp jpeg paylo...
      * 581329 : rtspsrc: NAT dummy packets not being sent
      * 581568 : ability for replaygain plugin to post level messages
      * 581806 : [souphttpsrc] Should allow overriding the referer
      * 581884 : [PLUGIN-MOVE] Move deinterlace2 to gst-plugins-good
      * 582252 : rganalysis test broken by recent commit
      * 582281 : [rtp] Forgets to link to $(LIBM)
      * 582387 : [avidemux] Seeking regression
      * 582420 : flacdec unit test broken on PPC
      * 582661 : [deinterlace] Fix latency query to return unbound max lat...
      * 582715 : gcc warnings about unitialized
      * 582753 : flacdec check fails
      * 582794 : rganalysis unit test fails with git core
      * 568278 : [qtdemux] add support for vob subtitle streams
      * 569611 : GStreamer videobox element draws thin green lines on edge...
      * 571294 : [matroskamux] Should ignore framerate of 0/1
      * 574169 : avidemux/theoradec don't work well together
      * 575234 : Network interface selection for multicasting with the udp...
      * 576729 : [rtspsrc] perform EOS handling earlier
      * 578257 : Image problems using rtpjpeg(de)pay
      * 579069 : rtp h263pay build fixes
      * 580554 : PATCH: qtdemux: fix demuxing of m4v streams with ac-3 audio
      * 581432 : [multipartdemux] source pads are leaked
      * 581444 : [multipartdemux] free memory read of buffer timestamp
      * 582218 : Uninitialized variable may be used in gstavidemux.c
      * 575937 : udp/gstudpnetutils.c: ip_mreqn unavailable on Solaris (an...

Download

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

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

GStreamer is stored in Git, hosted at git.freedesktop.org, and can be cloned 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
  
Contributors to this release
    
      * Alessandro Decina
      * Andy Wingo
      * Arnout Vandecappelle
      * Aurelien Grimaud
      * Benjamin Otte
      * Chris Winter
      * Christian Schaller
      * David Adam
      * David I. Lehn
      * David Schleef
      * Edgar E. Iglesias
      * Edward Hervey
      * Felipe Contreras
      * Gabriel Bouvigne
      * Hans de Goede
      * James Andrewartha
      * Jan Schmidt
      * Jan Smout
      * Jan Urbanski
      * Janin Kolenc
      * Johan Dahlin
      * Jonathan Matthew
      * Josep Torra
      * Julien Moutte
      * Laszlo Pandy
      * Leif Johnson
      * Levente Farkas
      * Marc-Andre Lureau
      * Marco Ballesio
      * Mark Nauwelaerts
      * Martin Eikermann
      * Michael Smith
      * Olivier Crete
      * Olivier Crête
      * Patrick Radizi
      * Peter Kjellerstedt
      * René Stadler
      * Ronald S. Bultje
      * Sebastian Dröge
      * Sjoerd Simons
      * Stefan Kost
      * Steve Lhomme
      * Stéphane Loeuillet
      * Thomas Vander Stichele
      * Tim-Philipp Müller
      * Tristan Matthews
      * Wai-Ming Ho
      * Wim Taymans
      * Wrobell
      * Youness Alaoui
      * Zaheer Merali
 