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

Release notes for GStreamer Bad Plug-ins 0.10.20 "For it is a Human Number"

The GStreamer team is proud to announce a new release in the 0.10.x stable series of the GStreamer Bad 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.

"That an accusation?"

No perfectly groomed moustache or any amount of fine clothing is going to cover up the truth - these plug-ins are Bad with a capital B. They look fine on the outside, and might even appear to get the job done, but at the end of the day they're a black sheep. Without a golden-haired angel to watch over them, they'll probably land in an unmarked grave at the final showdown.

Don't bug us about their quality - exercise your Free Software rights, patch up the offender and send us the patch on the fastest steed you can steal from the Confederates. Because you see, in this world, there's two kinds of people, my friend: those with loaded guns and those who dig. You dig.

This module contains a set of plug-ins that aren't up to par compared to the rest. They might be close to being good quality, but they're missing something - be it a good code review, some documentation, a set of tests, a real live maintainer, or some actual wide use. If the blanks are filled in they might be upgraded to become part of either gst-plugins-good or gst-plugins-ugly, depending on the other factors. If the plug-ins break, you can't complain - instead, you can fix the problem and send us a patch, or bribe someone into fixing them for you. New contributors can start here for things to work on.

Other modules containing plug-ins are:

contains a basic set of well-supported plug-ins
contains a set of well-supported plug-ins under our preferred license
contains a set of well-supported plug-ins, but might pose problems for distributors

Features of this release

  • asfmux streaming fixes and improvements
  • new video effects plugins: coloreffects, gaudieffects, geometrictransform
  • new gsettings plugin with gsettings{audio,video}{src,sink} elements
  • new ivfparse element
  • new rtmpsrc element
  • new shmsink and shmsrc elements for IPC using shared memory
  • new videomaxrate element
  • dshowvideosink improvements
  • vdpau: H.264 and MPEG-4 decoder (not enabled for autoplugging yet though)
  • vp8enc: support multipass encoding and keyframe-only mode
  • neonhttpsrc: timeout properties and cookie support
  • h264parse and mpegvideoparse: can periodically insert codec data into stream now
  • build: require GLib >= 2.20, automake >= 1.10, autoconf >= 2.60, want orc
  • asfmux: deprecate "is-live" property, replaced by new "streamable" property
  • asfmux: don't set the 'seekable' flag in headers if we are streaming
  • asfmux: put headers into "streamheader" field in output caps for streaming
  • asfmux: write preroll info in the header at initialization
  • bayer: support more formats in bayer2rgb, add rgb2bayer element
  • camerabin: make viewfinder-sink property work with bins
  • celt: add support for celt 0.8, remove support for celt < 0.5
  • celtenc: add "prediction" and "start band" properties
  • coloreffects: new element with heat, sepia, xray and cross-process effects
  • dshowvideosink: many fixes and improvements
  • fpsdisplaysink: add "fps-update-interval" and read-only "max-fps"/"min-fps" properties
  • frei0r: check for plugins in /usr/{local/,}lib{32,64}/frei0r-1 too
  • gaudieffects: new plugin with burn, chromium, dilate, dodge, exclusion, gaussianblur and solarize video effect elements
  • geometrictransform: new plugin with circle, diffuse, kaleidoscope, marble, pinch, sphere, twirl, and waterripple, fisheye, mirror, square, tunnel, bulge, stretch video effect elements
  • gsettings: new GSettings plugin with audio/video sources and sinks (to replace gconf plugin)
  • h264parse: add "config-interval" property to insert SPS/PPS at periodic intervals
  • h264parse: handle 3-byte bytestream sync codes; process incoming timestamps more correctly
  • id3mux: add support for beats-per-minute tag
  • invtelecine: support more video formats, more pulldown formats, add "verify-field-flags" property
  • ivfparse: add simple IVF parser element (simple framing for VP8 video data)
  • jpegformat: add exif writing to jifmux and exif parsing to jpegparse
  • jpegparse: skip extra 0xff markers, optimize jpeg image parsing
  • mimic: lots of fixes and clean-ups
  • mpeg4videoparse: add "config-interval" property to re-insert config in stream
  • mpegtsmux: start pmt at 0x020; take all the pmt in the streamheaders
  • mpegtsparse: actually work when we have small buffers coming in
  • mpegvideoparse: apply previous timestamp when there isn't any newer
  • neonhttpsrc: add "connect-timeout", "read-timeout" and "cookies" properties
  • qtmux: write audio/video stream bitrates into header, if available
  • qtmux: write track-number etc. tags even if count is not available
  • rtmpsrc: new RTMP source element based on librtmp
  • rtpdtmfmux: add priority sink pads and drop buffers on non-priority sink pads when something is incoming on the priority sink
  • rtpmux: add support for GstBufferLists; aggregate incoming segments; fix buffer leak
  • shm: add new shm-based shmsink and shmsrc elements for IPC using shared memory
  • vdpau: add H.264 decoder and MPEG-4 part 2 decoder; countless other fixes and improvements
  • videomaxrate: new plugin/element to limit videorate conditionally based on threshold
  • vp8dec: mark discont buffers, set decoder deadline from the QoS information
  • vp8enc: allow a maximum keyframe distance of 0, i.e. all frames are keyframes
  • vp8enc: fix handling of invisible/alt ref frames
  • vp8enc: add support for enabling automatic insertion of alt-ref frames by the encoder
  • vp8enc: implement multipass encoding
  • wildmidi: Add support for wildmidi 0.2.3

Bugs fixed in this release

  • 625908 : [geometrictransform] Some more configuration options for effects
  • 625076 : neonhttpsrc: add connect-timeout and read-timeout properties
  • 620746 : basevideodecoder: remove spurious warning
  • 566614 : bayer2rgb: Make first line configurable
  • 570428 : fails
  • 574290 : [dshowvideosink] make set_xwindow_id() in PLAYING state work
  • 579926 : [directshowvideosink] Doesn't update the last frame after a seek with the pipeline in PAUSED state.
  • 580967 : shared memory based sink and source
  • 591622 : [vdpau] needs better error/failure handling
  • 602551 : dshowvideosink window close doesn't cause gst-launch to exit
  • 602936 : [ mp4mux] Lipsync issue when converting mkv to mp4 using h264/aac
  • 613346 : [dshowvideosink] Add support for updating video caps
  • 616265 : Add a GSettings plugin that provides the same services as the GConf plugin
  • 618336 : [mpegvideoparse] mpegvideoparse makes some streams unplayable
  • 618522 : [asfmux][patch] Improve support for streaming
  • 618921 : [dshowvideosink] Replace CoIntialize with CoInitializeEx for bettrer integration with GStreamer threads
  • 618936 : [dshowvideosink] close the created window in ::stop()
  • 620324 : Format warning in ivfparse
  • 620717 : [geometrytransform] Incomplete template caps
  • 620825 : [geometrytransform] Make properties controllable and threadsafe
  • 620978 : insert NAL7/8 always when encountering I frame
  • 621205 : [mpeg4videoparse] add config-interval property to insert mpeg4video config data in regular intervals
  • 621348 : [vp8enc] Implement multipass encoding
  • 621523 : [id3mux] write beats-per-minute tag
  • 622369 : [rtmpsrc] crash if correct server but wrong video file name
  • 622484 : [qtmux] missing track number tag when transcoding to aac
  • 622690 : elements/jpegparse check fails
  • 622692 : pipelines/metadata check fails
  • 622725 : [mpgtsparse] Doesn't remove pids from pes_pids
  • 623272 : [dshowvideosink] setting force-aspect-ratio has no effect after the sink's renderer has been configured
  • 623365 : [qtmux and variant] Don't store codec tags
  • 623550 : doesn't compile with celt 0.8
  • 623678 : qtmux: Write AAC/H.264 bitrate if available
  • 623710 : [frei0r] Load frei0r plugins in /usr/lib64/frei0r-1 too
  • 623713 : [dshowaudiodec][patch] Fix compilation error
  • 623722 : gstwildmidi element update to newer library version
  • 623802 : camerabin: Bin based viewfinder sink support is broken
  • 623854 : jpegparse reads a wrong EXIF section size
  • 623881 : aiffmux.c divide by zero
  • 623883 : [winks] gstksvideosrc.c error on MSVC using gst_element_class_set_details()
  • 625003 : [examples] Don't use GdkDraw
  • 625138 : [dshowvideosrc] Don't use a range in the caps if min==max
  • 625174 : neonhttpsrc: adds cookies support
  • 625496 : qtmux - misc fix on btrt box
  • 625722 : [geometrictransform] Some new effect elements for cheese
  • 625817 : coloreffects: new plugin for lookup table color mapping
  • 625959 : geometrictransform: make CircleGeometricTransform " radius " property relative
  • 626049 : [vdpau] crashes in states.check unit test
  • 626603 : generic/states check fails with gsettings element installed
  • 626670 : gaudieffects: Fails to link inline functions properly
  • 626815 : vp8dec: infinite loop if EOS event before started
  • 627413 : jifmux causes broken jpeg images at least with some rgb pixel format
  • 627918 : Do not install gst-camera.ui
  • 627991 : rtpmux will freeze whenever a flush is sent
  • 624212 : mp4mux produces incorrect frame rates when h264 input uses bframes
  • 619158 : IVF parser plugin
  • 619484 : vp8dec: s/IMG_FMT_I420/VPX_IMG_FMT_I420/
  • 621404 : [dvbsrc] Set stats-reporting-interval on construction


You can find source releases of gst-plugins-bad in the gst-plugins-bad 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-bad 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
  • Andoni Morales
  • Andoni Morales Alastruey
  • Arun Raghavan
  • Austin Lund
  • Bastien Nocera
  • Benjamin Otte
  • Carl-Anton Ingmarsson
  • David Hoyt
  • David Schleef
  • Edward Hervey
  • Filippo Argiolas
  • Jan Schmidt
  • Jonathan Matthew
  • Julien Moutte
  • Luis de Bethencourt
  • Marc-André Lureau
  • Mark Nauwelaerts
  • Michael Smith
  • Olivier Crête
  • Philip Jägenstedt
  • Philippe Normand
  • Raimo Jarvi
  • Robert Swain
  • Sameer Naik
  • Sebastian Dröge
  • Sebastian Pölsterl
  • Stefan Kost
  • Thiago Santos
  • Thijs Vermeir
  • Tim-Philipp Müller
  • Víctor Manuel Jáquez Leal
  • Youness Alaoui
  • Zaheer Abbas Merali
  • Руслан Ижбулатов

Report a problem on this page.