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.24 "Taking Liberties"

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:

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

  • Use Orc (Optimized Inner Loops Runtime Compiler) for SIMD and other optimisations, and remove liboil dependency. The main goal for this release was to make the transition from liboil to liborc. Performance improvements should not be expected and will be the focus of future versions. liborc is an optional dependency for the time being, to make it possible to test and develop the very latest GStreamer versions on systems that don't have orc yet. However, without orc slow unoptimised backup code will be used for many performance critical code paths. Distributors are urged to package and ship the latest version of liborc and compile GStreamer modules with --enable-orc. Please do not distribute GStreamer packages that are not orc enabled. More information on the orc integration can be found in the docs/design/ directory.
  • alpha: add "prefer-passthrough" property to allow passthrough mode
  • avidemux: improve audio vbr detection
  • cmmlenc: Remove hack to let oggmux start a new page for every CMML buffer
  • deinterlace: add mmx implementations of greedyh for UYVY; orcify some deinterlacing methods
  • dv1394: fix the internal clock even more
  • flvmux: add "streamable" property
  • flvmux: write duration at the correct position
  • gdkpixbuf: Add a gdkpixbuf3 plugin that uses gdkpixbuf3
  • jpegdec: improved parsing, and better buffer handling that minimises memcpys
  • jpegdec, jpegenc: add grayscale support
  • matroskademux: QoS fixes and improvements; reverse playback improvements
  • matroskademux: handle zero-sized numbers correctly
  • matroskamux: add "streamable" property; set streamheaders on output caps
  • matroskamux: try harder to make sure clusters start with a key frame
  • matroskamux: mark output buffers properly as keyframe or delta unit
  • matroskamux: do some write caching to avoid newsegment events before each output buffer
  • matroskamux: fix some timestamp drift caused by rounding errors
  • pngenc: Support 8 bit grayscale
  • pulsesink: optimize communication with PulseAudio using pa_stream_begin_write
  • pulsesink: Post provide-clock message on the bus if the clock appears/disappears
  • rtph264depay: consider SPS, PPS and IDR as keyframe, all others as DELTA_UNIT
  • rtph264pay: handle short startcodes in the h264 bytestream
  • rtpjitterbuffer: stop buffering and emit EOS at the end of a stream
  • rtpmparobustdepay: add mpa-robust depayloader
  • rtpmp4gdepay: calculate the frame duration correctly
  • rtptheorapay: keep announcing the delivery-method in the capabilities, restores compatibility with older farsight versions again
  • rtspsrc: respect aggregate control attributes; try all ranges from the sdp
  • spectrum: support 24-bit width and arbitrary bit depth
  • udp: make url parsing compatible with VLC syntax
  • udpsrc: fix multicast support on windows
  • v4l2sink: destroy buffer pool when changing state to NULL
  • videobox: fix negotiation for I420/YV12
  • videomixer: don't mix input with different pixel aspect ratios; negotiation fixes
  • wavparse: proper closing segment construction when doing non-flushing seeks
  • wavparse: use typefind functions to check if PCM data contains dts stream

Bugs fixed in this release

  • 619045 : [spectrum] Add support for 24-bit width and all depth combinations
  • 555967 : [oss4] clarify some translation strings
  • 570761 : [goom] crash in plugin_info_init allocating 260kB struct on stack
  • 583047 : [jpegdec] optimise buffer handling when parsing frames
  • 589997 : [rtp] need mpa-robust depayloader for helix-style MP3-DRAFT-00
  • 595978 : [udpsrc] failed to play a multicast stream
  • 597695 : [udpsrc] support VLC-style udp:// uri with bind address
  • 611117 : [matroskademux] can't handle unknown cluster sizes
  • 613066 : [flvmux] re-enable renamed/fixed is-live property
  • 615461 : dv1394src clock continues to be broken
  • 617339 : pulsesink doesn't make use of pa_stream_begin_write
  • 618530 : [videomixer] Doesn't handle pixel-aspect-ratio correctly
  • 618871 : 1394: remove useless last_time
  • 618982 : [wavparse] wrong closing segment when doing non-flushing seek
  • 619198 : [matroskademux] GstEbmlRead cleanup
  • 619273 : [matroskamux] reduce downstream spam
  • 619293 : [avimux] clean up avi header creation code
  • 619531 : [rtspsrc] embedded asx streams' rtsp server doesn't like gstreamer request
  • 619717 : unit tests fail if older -good plugins are present in system plugin directory
  • 619824 : Use glib for checksumming
  • 619848 : [deinterlace] can't switch properties on running pipeline
  • 620148 : [videomixer] Doesn't negotiate format with downstream
  • 620154 : [rtph264depay] Seeking with RTP payloaders corrupts images sometimes
  • 620162 : [gdkpixbufdec] Bump rank to SECONDARY
  • 620277 : [pulsesink] custom clock is still used after NULL state change
  • 620358 : [matroskademux] Sorenson Squish WebM output seeking issues
  • 620390 : rtph264pay doesn't understand short startcodes
  • 620494 : [rtsp] stuttery audio with some h264/aac streams
  • 620540 : [pulsesink] pa_stream_write() failed: Invalid argument
  • 620591 : rtpceltpay doesn't handle stereo celt audio
  • 620743 : matroskademux: refactor delta unit handling
  • 620929 : Required libraw1394 version is not high enough
  • 621510 : GNOME Goal: Remove deprecated glib symbols
  • 621566 : [pulsesink] since upgrading plugins sound is garbled via Amarok
  • 621723 : v4l2src crashes on PLAYING- > READY- > PLAYING
  • 622498 : [avidemux] Doesn't reset all state when going back to READY
  • 622500 : [v4l2sink] destroy open buffers when changing to NULL
  • 622501 : [videobox] may negotiate input/output format combinations it can't actually handle
  • 622816 : Make demos -DSEAL safe
  • 623103 : matroskamux dispose error
  • 623172 : [jpegdec] leak in unit test
  • 623196 : rtpptdemux: don't send custom downstream event twice
  • 623366 : [qtdemux] strip out bogus tags from XMP
  • 623379 : [flvmux] Writing duration outside the allocated memory area in streaming mode
  • 623585 : jpegdec: fails to skip extra 0xff markers at start
  • 623654 : qtdemux: Fix order of bitrates in 'btrt' atom
  • 619817 : [matroskademux] Reverse playback doesn't work
  • 617512 : [alpha] should work in passthrough in all formats if alpha == 1.0
  • 619485 : matroskademux: skip buffers before a late keyframe (QoS)
  • 413942 : [wavparse] undetected dts-in-wav


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

  • Alessandro Decina
  • Alexander Kojevnikov
  • Andoni Morales Alastruey
  • Andrzej K. Haczewski
  • Arun Raghavan
  • Benjamin Otte
  • David Schleef
  • Edward Hervey
  • Guido Günther
  • Havoc Pennington
  • Julien Moutte
  • Keith Nicholson
  • Marc-André Lureau
  • Mark Nauwelaerts
  • Michael Grzeschik
  • Philip Jägenstedt
  • Pierre-Louis Bossart
  • Sebastian Dröge
  • Sjoerd Simons
  • Stefan Kost
  • Thiago Santos
  • Thijs Vermeir
  • Tim-Philipp Müller
  • Tristan Matthews
  • Wim Taymans
  • Xavier Queralt
  • Zaheer Abbas Merali

Report a problem on this page.