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
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.
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
- contains a set of codecs plugins based on libav (formerly gst-ffmpeg)
Bugs fixed in this release
: videoaggregator: Add a new base class that aggregates video streams
: gl: Port glmixer to the GstVideoAggregator baseclass
: codecparsers_h264: Framerate estimation enhancement
: tsdemux: implement proper seeking with binary search and keyframe detection
: tsdemux: Freeze on pts-wrap with streaming sources
: glimagesink: Replace pointer properties with signals
: androidmedia: add support for video encoding
: dvbsrc: Uses deprecated field frontend type and add DVB S2/T2 support
: tsdemux: fails to seek on the attached file (regression)
: dvbsrc needs to conditionally build for older dvb headers
: liveadder: handle gap buffer flag
: glimagesink: only draws on buffer push
: waylandsink: subsurface & scaling support, plus many other improvements
: srtp: add support for rollover counter
: mpegts: add service list, stuffing and bouquet name descriptors
: mpegts: add multilingual descriptors
: glimagesink fails with gst-sdk android tutorial-5 / tutorial-4
: GstGLUpload: wrong colors for YUY2 and UYVY on GLES
: schroenc: Does not handle variable framerate streams
: gl: rename platform cocoa to cgl to be more consistent with context type
: glvideomixer: segfault in gst_gl_video_mixer_callback when accessing frame info
: gl: avoid using an extra FBO pass in some basic cases
: gl: GL_FRAMEBUFFER_UNSUPPORTED with GST_VIDEO_GL_TEXTURE_TYPE_LUMINANCE_ALPHA
: glvideomixer: Does not support positioning of input streams
: glfilter: lose some caps informations like the framerate
: opusenc: use aux vars to minimize critical region
: motioncells improvements
: gl*: No libGLU with NVIDIA binary drivers
: h264parse: set field_pic_flag when parsing a slice header
: mpegts: add support for ATSC tables MGT / ETT / EIT / STT
: pnmdec: PBM (Bitmap) decoding support is not present
: dvbsrc: fix building with newer kernel headers
: hlsdemux: Saving IV from media sequence number is done out of file- > iv structure
: androidmedia: Add a new QCOM color format
: dvbbasebin: criticals/crash if tsparse is missing
: mpegts: atsc: rename TVCT to VCT as it is the same as CVCT
: gl: YUY2 conversion broken in GLES2
: dvbsrc: Add missing tone ioctl
: gl: Freshly allocated memory is twice the expected size
: glimagesink: cannot create window and stalls
: glimagesink: should honor " show-preroll-frame " property inherited from GstVideoSink
: hlsdemux: Remove \ " sign from decryption KEY url does not always work
: example: ts-parser: add terrestrial delivery system descriptor
: example: ts-parser: add component, content, stream id, ca id, parential rating descriptors
: example: ts-parser: add linkage descriptor
: glvideomixer: Got data flow before stream-start event
: tsdemux: missing audio after seeking in mpeg transport stream (regression)
: glimagesink: Failed to create window surface: EGL_BAD_ALLOC
: hlsdemux: Attempt to reload variant playlist if refreshing playlist or downloading fragments failed
: dvbsrc: tuning/locking logic improvements
: pnmdec: PNMDecoder gives sticky event warning
: codecparsers: add C++ guards for MPEG-4 and VP8 parsers
: codecparsers: h264: fix quantization matrix conversion routine names
: gst-plugins-bad requires glib > = 2.34.0
: tsdemux : latest patch for accurate seeking of h264 streams has been incorrectly merged.
: tsdemux: remove unused const variables
: gstsrtpenc: add allow-repeat-tx property
: OpenGL: Add an element for transforming video geometry
: gstsrtpenc: unref event when needed
: rawparser doesn't forward custom query
: aggregator: Add a new base class for mixers and muxers
: compositor: Add a new compositor based on the new GstVideoAggregator base class
: hlsdemux: Fix decrypting fragments
: 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 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).
There is also a #gstreamer IRC channel on the Freenode IRC network.
Git is hosted on git.freedesktop.org. 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