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 Bad Plugins 1.3.3

The GStreamer team is pleased to announce the third release of the unstable 1.3 release series. The 1.3 release series is adding new features on top of the 1.0 and 1.2 series and is part of the API and ABI-stable 1.x release series of the GStreamer multimedia framework. The unstable 1.3 release series will lead to the stable 1.4 release series in the next weeks, and newly added API can still change until that point.

This is hopefully the last 1.3 development release and will be followed by the first 1.4.0 release candidate (1.3.90) in 1-2 weeks. Which then hopefully is followed by 1.4.0 soonish in early July.

Binaries for Android, iOS, Mac OS X and Windows will be provided separately during the unstable 1.3 release series.

"That an accusation?"

No perfectly groomed moustache or any amount of fine clothing is going to cover up the truth - these plugins 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 plugins 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 plugins 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 plugins are:

contains a basic set of well-supported plugins
contains a set of well-supported plugins under our preferred license
contains a set of well-supported plugins, but might pose problems for distributors
contains a set of codecs plugins based on libav (formerly gst-ffmpeg)

Bugs fixed in this release

  • 731918 : videoaggregator: Add a new base class that aggregates video streams
  • 731921 : gl: Port glmixer to the GstVideoAggregator baseclass
  • 723352 : codecparsers_h264: Framerate estimation enhancement
  • 675132 : tsdemux: implement proper seeking with binary search and keyframe detection
  • 674536 : tsdemux: Freeze on pts-wrap with streaming sources
  • 704507 : glimagesink: Replace pointer properties with signals
  • 705129 : androidmedia: add support for video encoding
  • 709414 : dvbsrc: Uses deprecated field frontend type and add DVB S2/T2 support
  • 721035 : tsdemux: fails to seek on the attached file (regression)
  • 721869 : dvbsrc needs to conditionally build for older dvb headers
  • 722397 : liveadder: handle gap buffer flag
  • 723529 : glimagesink: only draws on buffer push
  • 726193 : waylandsink: subsurface & scaling support, plus many other improvements
  • 726861 : srtp: add support for rollover counter
  • 728364 : mpegts: add service list, stuffing and bouquet name descriptors
  • 728429 : mpegts: add multilingual descriptors
  • 728514 : glimagesink fails with gst-sdk android tutorial-5 / tutorial-4
  • 728890 : GstGLUpload: wrong colors for YUY2 and UYVY on GLES
  • 729054 : schroenc: Does not handle variable framerate streams
  • 729245 : gl: rename platform cocoa to cgl to be more consistent with context type
  • 729257 : glvideomixer: segfault in gst_gl_video_mixer_callback when accessing frame info
  • 729278 : gl: avoid using an extra FBO pass in some basic cases
  • 729798 : glvideomixer: Does not support positioning of input streams
  • 729861 : glfilter: lose some caps informations like the framerate
  • 729882 : opusenc: use aux vars to minimize critical region
  • 730141 : motioncells improvements
  • 730231 : gl*: No libGLU with NVIDIA binary drivers
  • 730363 : h264parse: set field_pic_flag when parsing a slice header
  • 730435 : mpegts: add support for ATSC tables MGT / ETT / EIT / STT
  • 730523 : pnmdec: PBM (Bitmap) decoding support is not present
  • 730570 : dvbsrc: fix building with newer kernel headers
  • 730574 : hlsdemux: Saving IV from media sequence number is done out of file- > iv structure
  • 730635 : androidmedia: Add a new QCOM color format
  • 730641 : dvbbasebin: criticals/crash if tsparse is missing
  • 730642 : mpegts: atsc: rename TVCT to VCT as it is the same as CVCT
  • 730666 : gl: YUY2 conversion broken in GLES2
  • 730692 : dvbsrc: Add missing tone ioctl
  • 730703 : gl: Freshly allocated memory is twice the expected size
  • 730782 : glimagesink: cannot create window and stalls
  • 730802 : glimagesink: should honor " show-preroll-frame " property inherited from GstVideoSink
  • 730830 : hlsdemux: Remove \ " sign from decryption KEY url does not always work
  • 730847 : example: ts-parser: add terrestrial delivery system descriptor
  • 730854 : example: ts-parser: add component, content, stream id, ca id, parential rating descriptors
  • 730901 : example: ts-parser: add linkage descriptor
  • 730944 : glvideomixer: Got data flow before stream-start event
  • 731088 : tsdemux: missing audio after seeking in mpeg transport stream (regression)
  • 731107 : glimagesink: Failed to create window surface: EGL_BAD_ALLOC
  • 731164 : hlsdemux: Attempt to reload variant playlist if refreshing playlist or downloading fragments failed
  • 731250 : dvbsrc: tuning/locking logic improvements
  • 731400 : pnmdec: PNMDecoder gives sticky event warning
  • 731522 : codecparsers: add C++ guards for MPEG-4 and VP8 parsers
  • 731524 : codecparsers: h264: fix quantization matrix conversion routine names
  • 731555 : gst-plugins-bad requires glib > = 2.34.0
  • 731698 : tsdemux : latest patch for accurate seeking of h264 streams has been incorrectly merged.
  • 731707 : tsdemux: remove unused const variables
  • 731714 : gstsrtpenc: add allow-repeat-tx property
  • 731722 : OpenGL: Add an element for transforming video geometry
  • 731768 : gstsrtpenc: unref event when needed
  • 731899 : rawparser doesn't forward custom query
  • 731917 : aggregator: Add a new base class for mixers and muxers
  • 731919 : compositor: Add a new compositor based on the new GstVideoAggregator base class
  • 731968 : hlsdemux: Fix decrypting fragments
  • 641204 : dvbsrc: Faster tuning logic: Use poll instead of artificial usleep


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

  • Aleix Conchillo Flaqué
  • Arnaud Vrac
  • Aurélien Zanelli
  • Chen Jie
  • Christian Fredrik Kalager Schaller
  • Damian Ziobro
  • Edward Hervey
  • George Kiagiadakis
  • Gwenole Beauchesne
  • Jan Schmidt
  • Jorge Zapata
  • Julien Isorce
  • Justin Joy
  • Lubosz Sarnecki
  • Mathieu Duponchelle
  • Matthew Waters
  • Matthieu Bouron
  • Michael Olbrich
  • Miguel París Díaz
  • Nicola Murino
  • Nicolas Dufresne
  • Olivier Crête
  • Reynaldo H. Verdejo Pinochet
  • Sanjay NM
  • Sebastian Dröge
  • Stefan Ringel
  • Thiago Santos
  • Thibault Saunier
  • Thomas Bluemel
  • Tim-Philipp Müller
  • Vincent Penquerc'h
  • Wim Taymans

Report a problem on this page.