open source multimedia framework
Annual Conference
Planet (Blogs)
Security Center
Mailing Lists
File a Bug
@gstreamer on Twitter
@gstreamer on Mastodon
#gstreamer on Matrix

Release notes for GStreamer Good Plug-ins 0.10.29 "Soft Cheese Enthusiast"

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.

"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:

contains a basic set of well-supported plug-ins
contains a set of well-supported plug-ins, but might pose problems for distributors
contains a set of less supported plug-ins that haven't passed the rigorous quality testing we expect

Features of this release

  • audioparser: new amrparse, aacparse, ac3parse, flacparse, mpegaudioparse, dcaparse elements
  • audiowsincband: Add new windowing functions: gaussian, cos and hann
  • audiowsincband: Fix range of kernel elements (lim -> lim-1)
  • audiowsinclimimt: Add new windows to high/low-pass filters: gaussian, cosine, hann
  • audiowsinclimit: Fix range of kernel elements (lim -> lim-1) in high/low-pass filters
  • avidemux: also add the frame-type for the stream index.
  • avidemux, flvdemux: mark delta-units in the index
  • avidemux: stream->current_total is accumulated byte size and not time
  • avimux: add stream-format field to h264 pad template caps
  • avimux: rework _request_new_pad to handle explict req-pad-names
  • avimux: use running time for synchronization
  • cairooverlay: Add generic Cairo overlay video element.
  • debugutils: remove bitrotten negotiation element
  • deinterlace: add support for NV12 and NV21 formats; fix greedyl method
  • dvdemux: first try if upstream handles TIME seeks before handling them here and other event handling fixes
  • flacdec: fix issues with large metadata blocks when streaming unframed flac
  • flacenc: Add support for writing METADATA_BLOCK_PICTURE blocks for GST_TAG_IMAGE and GST_TAG_PREVIEW_IMAGE
  • flacenc: Don't store image tags inside the vorbiscomments and the flac metadata
  • flvdemux: add width, height and framerate to caps when present on onMetaData
  • flvdemux: Do not build an index if upstream is not seekable
  • flvdemux: fix deadlock on setting index on flvdemux
  • flvmux: don't overwrite metadata tag with duration in streaming mode
  • flvmux: don't set duration for live stream
  • flvmux: use running time for synchronization
  • flv: specify stream-format for h264 in the pad template caps
  • icydemux: fix tag list handling issues that might have caused crashes
  • j2kpay: skip EPH packets
  • jitterbuffer: also estimate eos if very near eos
  • jitterbuffer: avoid trying to buffer more than is available
  • jitterbuffer: handle position query
  • matroskademux: better calculation of output framerate
  • matroskademux: properly resume cluster scanning
  • matroskademux: pull mode should always report seekable
  • matroskademux: set stream-format=byte-stream on h264 caps if there's no codec data
  • matroskademux: store cluster positions provided by SeekHead
  • matroskamux: add support for A-Law and µ-Law
  • matroskamux: avoid building index when streamable
  • matroskamux: use running time for stream synchronization
  • matroskamux: add stream-format field to h264 pad template caps
  • matroska: Use ARTIST Matroska tag instead of AUTHOR for GST_TAG_ARTIST
  • matroskaparse: new element
  • monoscope: stability (off-by-one) and memory leak fixes
  • pngdec: handle 16-bit-per-channel images
  • pulsesink: also uncork during EOS waiting (and after EOS is rendered)
  • pulsesink: fix deadlock if connecting to PA fails
  • pulsesink: release pa_shared_resource_mutex before pa_threaded_mainloop_wait
  • qtdemux: Adds more h264 fields to its caps
  • qtdemux: Add support for 2Vuy and r210
  • qtdemux: don't error out when there's a problem parsing non-vital headers
  • qtdemux: avoid skipping exposing a stream following a removed stream
  • qtdemux: Check for invalid (empty) classification info entity strings
  • qtdemux: extract MusicBrainz tags
  • qtdemux: mind rounding issues when converting from global time to mov time
  • qtdemux: propagate error during expose_streams
  • qtdemux: support some more mpeg-4 fourcc variants
  • qtdemux: take configured start time into account
  • isomp4: move mp4mux/3gppmux/qtmux from -bad to -good, rename qtdemux plugin to isomp4
  • rtpbin: Don't try to request the same request pad twice
  • rtpbin: fix setting the SDES property
  • rtpbin: Get and use the NTP time when receiving RTCP
  • rtpmanager: ignore a BYE if it is sent with our internal SSRC
  • rtpptdemux: Tag upstream custom events with payload type
  • rtpsession: add action signal to request early RTCP
  • rtpsession: add "rtcp-min-interval" property for minimum interval between Regular RTCP messages
  • rtpsession: Don't relay more than one PLI request per RTT
  • rtpsession: Emit "on-ssrc-validated" when validating by RTCP
  • rtpsession: Emit signal on incoming RTCP feedback packet
  • rtpsession: Emit signal when sending a compound RTCP packet
  • rtpsession: Implement sending PLI packets in response to GstForceKeyUnit
  • rtpsession: Number of active sources should be updated whenever the status of the source changes to active
  • rtpsession: Send GstForceKeyUnit event in response to received RTCP PLI
  • rtpsource: Retain RTCP Feedback packets for a specified amount of time
  • rtpssrcdemux: Tag upstream custom events with SSRC
  • rtpssrcdemux: Unknown SSRC is not fatal
  • rtpspeexpay: Do not transmit samples with GAP flag
  • rtptheoradepay: Request new keyframe on lost packets
  • rtpvrawpay: add support for interlaced video
  • rtspsrc: distribute new base_time to manager children following flush seek
  • rtspsrc: handle * control correctly
  • rtspsrc: improve recovery from failed seek
  • spectrum: miscellaneous optimisations, add multi-channel support
  • speexdec: Always process the number of frames per packet as specified in the header
  • speexdec: get and use streamheader from the caps if possible
  • speexenc: Use speex intern silence detection
  • theorapay: handle 0-sized packets (which are repeat frames)
  • udpsink: warn when packet is too large
  • v4l2: Add PJPG mapping
  • v4l2: fix interlaced set_format configuration
  • v4l2: new v4l2radio element to control analog radio devices
  • videobalance: fix handling of YUV images with 'odd' widths
  • videoflip: add support for YUY2, UVYV and YVYU
  • videoflip: fix invalid memory access for odd resolutions and Y422
  • videomixer2: Add transparent background option for alpha channel formats
  • videomixer: Add transparent background option for alpha channel formats
  • videomixer: Fix argb/rgba overlay orc code
  • wavparse: tune output max buffer size to material

Bugs fixed in this release

  • 564122 : Crash in monoscope_update
  • 432612 : [matroskamux] doesn't handle segments correctly
  • 593482 : Spectrum: Multi-Channel support and Stereo to Mono compat report(cross-correlation)
  • 595520 : Implement a generic cairo overlay
  • 622553 : rtpmanager: Implement RFC 4585 (AVPF / early feedback)
  • 636699 : [PLUGIN-MOVE] qtmux: move to -good
  • 639994 : videomixer2: added 'transparent' background option
  • 640118 : v4l2: add element to control radio devices
  • 640163 : rtspsrc: minor leak
  • 640249 : [taginject] Taginject does not allow to change tags after init
  • 640483 : flvdemux: Video's width, height and/or framerate src caps added when present on onMetaData
  • 640542 : matroskamux leaks memory after reset
  • 641330 : icydemux: crash while playing MP3 stream in amarok
  • 641332 : can't connect vorbisenc ! queue ! matroskamux
  • 641400 : [deinterlace] Handle image caps without asserting
  • 641827 : rtptheorapay: doesn't handle 0-size packets
  • 642205 : qtdemux: extract MusicBrainz tags
  • 642337 : [souphttpsrc] Add support for URI queries
  • 642412 : gstrtpbin with ignore-pt tries to use NULL stream- > demux during uninitialization
  • 642691 : deinterlace: Miscellaneous cleanup
  • 642879 : qtmux: add a 'variant' with the bare video/quicktime media type
  • 642961 : NV12 colorspace support for deinterlace plugin
  • 642963 : [dvdemux] time based upstream seek
  • 643087 : pulsesink: deadlock in gst_pulseringbuffer_open_device
  • 643981 : [cairooverlay] example uses gtk/gtk-x11 unnecessarily
  • 644288 : generic/states check fails
  • 644477 : [jack] doesn't build with jack > = 0.120.2
  • 644510 : pulsesink: deadlock when create/connect fails
  • 644669 : gstspeexdec causes 'Conditional jump depends on uninitialised value'
  • 644773 : Add support for Y422 colorspaces in videoflip element
  • 644849 : [speexdec] Remove warning message when it is inappropriate
  • 644875 : [matroskademux] can't read the ARTIST tag in a Matroska file
  • 645858 : [flvdemux] memory leak when demuxing infinite FLV files
  • 645961 : [pulsesink] hangs when going from paused to playing near EOS
  • 646397 : rtpjitterbuffer base_time broken by commit f84b8a69
  • 646474 : rtpspeexpay should drop empty samples
  • 646567 : [matroska] Add alaw/mulaw audio support
  • 646800 : rtspsrc: control attribute on the session and not on the media
  • 646954 : rtpgstpay: declare frag_offset to hold 32 bits
  • 646964 : rtpmanager: ignore a BYE if it is sent with our internal SSRC
  • 646965 : rtpmanager: Number of active sources should be updated whenever the status of the source changes to active
  • 646966 : rtpssrcdemux: Unknown SSRC is not fatal
  • 646967 : rtpsession: make iterate_internal_links MT-safe
  • 646999 : [regression] pulsesink: underruns while playing WMA
  • 647263 : REGRESSION: rtpsession: fix wrongly applied patch
  • 647510 : audiowsinclimit uses the wrong limits for the range of the kernel elements
  • 647511 : add other common windows to low/high-pass filters in audiowsinclimit.c
  • 647659 : mp3parse / mpegaudioparse fails to detect VBRI header in mpeg1 mono and mpeg2 files
  • 647833 : matroskademux: bad at guessing the framerate
  • 647848 : Failure to compile with GCC 4.6.x due to variable unused but set warnings being treated as errors
  • 647919 : qtmux: silently corrupts h264 streams with legacy caps
  • 648004 : [quicktime] Rename plugin library to quicktime too
  • 648160 : Remove half-complete bits of RTCP FIR support
  • 648589 : jpegdec: documentation typo " jpegddec "
  • 649060 : flvmux: overwrites metadata tags with duration in streamable=false mode
  • 649449 : [gppmux] Failure to write location
  • 566769 : [flacdec] crash in push mode with large header packet (image)
  • 644730 : [matroskamux] Should return TRUE in the event function when the event is handled


You can find source releases of gst-plugins-good in the gst-plugins-good download directory.

The git repository and details how to clone it can be found at .


The project's website is

Support and Bugs

We use GNOME's bugzilla for bug reports and feature requests.

Please submit patches via bugzilla as well.

For help and support, please subscribe to and send questions to the gstreamer-devel mailing list (see below for details).

Find us on IRC at #gstreamer.


Git is hosted on You can browse the gst-plugins-good repository.

All code is in Git and can be checked out from there.

Interested developers of the core library, plugins, and applications should subscribe to the gstreamer-devel list.


Contributors to this release

  • "Carsten Kroll
  • Alejandro Gonzalez
  • Alessandro Decina
  • Alexey Chernov
  • Alexey Fisher
  • Andoni Morales Alastruey
  • Arun Raghavan
  • Benjamin Otte
  • Christian Fredrik Kalager Schaller
  • Christian Schaller
  • David Hoyt
  • David Schleef
  • Edward Hervey
  • Felipe Contreras
  • Haakon Sporsheim
  • Havard Graff
  • Jan Schmidt
  • Jan Urbanski
  • Jan Urbański
  • Jon Nordby
  • Jordi Burguet-Castell
  • Josep Torra
  • Joshua M. Doe
  • Julien Moutte
  • LRN
  • Lane Brooks
  • Lasse Laukkanen
  • Leonardo Sandoval
  • Luis de Bethencourt
  • Marc-André Lureau
  • Mark Nauwelaerts
  • Michael Smith
  • Ole André Vadla Ravnås
  • Olivier Crête
  • Pascal Buhler
  • Philip Jägenstedt
  • Philippe Normand
  • René Stadler
  • Rob Clark
  • Robert Swain
  • Sebastian Dröge
  • Stefan Kost
  • Thiago Santos
  • Thiago Sousa Santos
  • Thibault Saunier
  • Tim-Philipp Müller
  • Tom Janiszewski
  • Vincent Penquerc'h
  • Wim Taymans
  • Youness Alaoui
  • Zaheer Abbas Merali

Report a problem on this page.