Release notes for
GStreamer Good Plug-ins 0.10.24
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
- 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
: [spectrum] Add support for 24-bit width and all depth combinations
: [oss4] clarify some translation strings
: [goom] crash in plugin_info_init allocating 260kB struct on stack
: [jpegdec] optimise buffer handling when parsing frames
: [rtp] need mpa-robust depayloader for helix-style MP3-DRAFT-00
: [udpsrc] failed to play a multicast stream
: [udpsrc] support VLC-style udp://188.8.131.52:1234 uri with bind address
: [matroskademux] can't handle unknown cluster sizes
: [flvmux] re-enable renamed/fixed is-live property
: dv1394src clock continues to be broken
: pulsesink doesn't make use of pa_stream_begin_write
: [videomixer] Doesn't handle pixel-aspect-ratio correctly
: 1394: remove useless last_time
: [wavparse] wrong closing segment when doing non-flushing seek
: [matroskademux] GstEbmlRead cleanup
: [matroskamux] reduce downstream spam
: [avimux] clean up avi header creation code
: [rtspsrc] embedded asx streams' rtsp server doesn't like gstreamer request
: unit tests fail if older -good plugins are present in system plugin directory
: Use glib for checksumming
: [deinterlace] can't switch properties on running pipeline
: [videomixer] Doesn't negotiate format with downstream
: [rtph264depay] Seeking with RTP payloaders corrupts images sometimes
: [gdkpixbufdec] Bump rank to SECONDARY
: [pulsesink] custom clock is still used after NULL state change
: [matroskademux] Sorenson Squish WebM output seeking issues
: rtph264pay doesn't understand short startcodes
: [rtsp] stuttery audio with some h264/aac streams
: [pulsesink] pa_stream_write() failed: Invalid argument
: rtpceltpay doesn't handle stereo celt audio
: matroskademux: refactor delta unit handling
: Required libraw1394 version is not high enough
: GNOME Goal: Remove deprecated glib symbols
: [pulsesink] since upgrading plugins sound is garbled via Amarok
: v4l2src crashes on PLAYING- > READY- > PLAYING
: [avidemux] Doesn't reset all state when going back to READY
: [v4l2sink] destroy open buffers when changing to NULL
: [videobox] may negotiate input/output format combinations it can't actually handle
: Make demos -DSEAL safe
: matroskamux dispose error
: [jpegdec] leak in unit test
: rtpptdemux: don't send custom downstream event twice
: [qtdemux] strip out bogus tags from XMP
: [flvmux] Writing duration outside the allocated memory area in streaming mode
: jpegdec: fails to skip extra 0xff markers at start
: qtdemux: Fix order of bitrates in 'btrt' atom
: [matroskademux] Reverse playback doesn't work
: [alpha] should work in passthrough in all formats if alpha == 1.0
: matroskademux: skip buffers before a late keyframe (QoS)
: [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 https://gstreamer.freedesktop.org.
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 git.freedesktop.org. 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