GStreamer
open source multimedia framework
Home
Features
News
Annual Conference
Planet (Blogs)
Download
Applications
Security Center
GitLab
Developers
Documentation
Mailing Lists
Forum
File a Bug
Artwork
@gstreamer on Twitter
@gstreamer on Mastodon
#gstreamer on Matrix

Release notes for GStreamer Good Plugins 1.5.1

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

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

"Such ingratitude. After all the times I've saved your life."

A collection of plugins you'd want to have right next to you on the battlefield. Shooting sharp and making no mistakes, these plugins 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 plugin 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 plugins that we consider to have good quality code, correct functionality, our preferred license (LGPL for the plugin code, LGPL or LGPL-compatible for the supporting library). We believe distributors can safely ship these plugins. People writing elements should base their code on these elements.

Other modules containing plugins are:

gst-plugins-base
contains a basic set of well-supported plugins
gst-plugins-ugly
contains a set of well-supported plugins, but might pose problems for distributors
gst-plugins-bad
contains a set of less supported plugins that haven't passed the rigorous quality testing we expect, or are still missing documentation and/or unit tests
gst-libav
contains a set of codecs plugins based on libav (formerly gst-ffmpeg)

Bugs fixed in this release

  • 740130 : matroskamux: wrong duration on some files
  • 699382 : v4l2: dmabuf handling is not complete
  • 746747 : rtpsession: Also report internal sources in on-new-ssrc and on-ssrc-active
  • 741783 : qtmux: crash when trying to mux ALAC
  • 601733 : rtspsrc: Use specific error message when authentication is required
  • 635701 : rtspsrc: seeking is broken
  • 678124 : multifilesink: add support for time based file switching
  • 682770 : v4l2src: should renegotiate
  • 690646 : ximagesrc: Cursor offset with ximagesrc and xid
  • 690719 : jackaudiosink: add new property (port-pattern) to specify which jack ports to autoconnect to
  • 692473 : qtmux: does not store stream specific tags
  • 708808 : qtmux: Error out when downstream is not seekable and no fast-start
  • 711764 : osxaudiosrc: Produces broken audio for any sample rate other than 44100Hz
  • 722567 : wavparse: loops on incorrect wav file
  • 725335 : rtspsrc: Extract the payload type from sdp framesize attribute
  • 726415 : rtpjpegpay/-depay: Remove incorrectly introduced framesize SDP attribute
  • 726416 : rtph263pay/-depay: add framesize SDP attribute
  • 730417 : rtspt: no timestamp from some rtsp source over tcp
  • 731038 : playbin downmixes 5.0 multichannel-audio to stereo
  • 732152 : multiudpsink: use sendmmsg() to send multiple packets to multiple recipients in one go
  • 732866 : udpsink: client add/remove from app blocked while render function is stuck in g_socket_send_message()
  • 732870 : jpegenc: add support for encoding from nv21
  • 733225 : Lockup while using Cheese on 1.3.91
  • 733444 : wavenc: does not support more than 2 channel
  • 733539 : rtph264pay: append profile-level-id parameter to SDP if available
  • 733556 : h264 payloader : append packetization-mode parameter for SDP
  • 733616 : v4l2object: code cleanup
  • 733750 : v4l2object: query minimum required buffers for output
  • 734322 : RTP Jitterbuffer shouldn't force clock-rate on the caps
  • 734443 : qtdemux: forward DISCONT from upstream to the output streams
  • 734542 : speexenc: Improve annotation of internal function
  • 734987 : udp: fix udpsrc documentation
  • 735085 : y4mencode : port y4m encoder to use GstVideoEncoder base class
  • 735378 : gstrtpjitterbuffer: requests retransmission periodically when no needed
  • 735564 : gdkpixbufdec: Error when using gdkpixbufdec with ImageFreeze element
  • 735581 : imagefreeze: Remove impossible error condition
  • 735626 : multipartdemux: caps are NULL in pad-added callback (regression)
  • 735627 : wavenc/wavparse: should support RF64 files
  • 735795 : imagefreeze: Don't call gst_caps_unref() on NULL caps
  • 735880 : imagefreeze: replace with gst_buffer_copy
  • 735950 : gdkpixbufdec: free query after use
  • 735971 : qtdemux: avdec_mjpeg does not get autoplugged for mjpeg in mov container
  • 736072 : v4l2: set min_latency for output device according to required minimum number of buffers
  • 736122 : ximagesrc: setting the screen-num property has no effect
  • 736133 : v4l2: query crop configuration after each call of S_CROP
  • 736252 : gdkpixbufdec: packetized mode logic
  • 736462 : multifile: don't bitwise OR the same flag twice
  • 736528 : udp: getting compilation error for implicit declaration of memcmp, memset
  • 736543 : matroska:OR and Bitwise OR of the same flag twice
  • 736872 : libpng: Removed redundant assignment
  • 736873 : alpha: Removed unreachable break statements
  • 736874 : audiofx: Removed unwanted variable
  • 736875 : audiofx: Removed unwanted buffer_length variable
  • 736876 : audiofx: Removed unreachable breaks, unwanted variable
  • 736878 : audioparsers: Added index check before using the index
  • 736879 : avi: Removed redundant assignment
  • 736880 : avi: Removed unwanted hdl variable
  • 736881 : deinterlace: Removed unwanted res variable
  • 736883 : dtmf: Removed unwanted structure member and assignment
  • 736884 : flv: Removed unreachable break statements
  • 736887 : goom: Clarified precedence between % and ?
  • 736888 : isomp4: Removed unreachable breaks
  • 736890 : matroska: Removed unwanted instruction
  • 736892 : rtpmanager: Removed unwanted variable and assignment
  • 736893 : rtpmanager: Removed unwanted assignment
  • 736894 : rtpmanager: Removed unwanted assignment in rtpsession
  • 736897 : videobox: duplicate assignment
  • 736903 : rtsp: Precedence in expression is not clear
  • 736986 : qtdemux: handle AAC audio without ESDS atom
  • 737095 : qtmux: subtitle muxing doesn't work
  • 737127 : interleave: interleaving does not respect the channel positions default order
  • 737359 : matroskademux: returns FLOW_FLUSHING when trying to reuse it
  • 737708 : pngdec: change parse logic
  • 737868 : rtspsrc: set stream caps on internal src TCP pads
  • 738013 : v4l2allocator: issue with import_userptr() in single-planar API when n_planes > 1
  • 738707 : gst-plugins-good fails to build on Mac OS X 10.10 Yosemite due to deprecated NSOpenGLPFAFullScreen
  • 738838 : videobox: critical error when element properties set as max/min
  • 739344 : rtpjitterbuffer: ensure rtx_retry_period > = 0
  • 739366 : imagefreeze: Handle seqnums
  • 739549 : v4l2bufferpool: fix typos in flags
  • 739566 : gdkpixbufoverlay: Fix relative-x/y and widen their range to support scolling images in/out of frame with GstController
  • 739930 : Port server-alsasrc-PCMA.py to version 1.x
  • 739975 : Seeking through some AAC file freezes my application
  • 740403 : v4l2object: reuse caps framerate if not overwritten by v4l2 device
  • 740505 : rtspsrc: segmentation fault when requesting srtp key
  • 740683 : rtspsrc: add retransmission handling for rtp
  • 740987 : Fixes to osxaudiosrc and osxaudiosink
  • 741115 : videomixer segfault when output height is smaller than input height and ypos is negative
  • 741134 : v4l2: CREATE_BUF support is broken
  • 741279 : qtmux: generating corrupted file when over 4GB
  • 741398 : rtpptdemux: errors out on invalid rtp packet, e.g. if the version check failed (0 != 2)
  • 741993 : souphttpsrc: leaking a buffer during flushing
  • 742098 : rtp: Fails rtpaux and rtpcollision tests
  • 742325 : ac3parse: requests minimum frame size that is too small
  • 742363 : v4l2object: recognize and distinguish all bayer arrangements
  • 742572 : qtdemux: EOS emitted after 10 seconds on a audio/mp4a file [REGRESSION]
  • 742661 : qtdemux: EOS in push mode when seeking in m4a
  • 743013 : v4l2bufferpool: set v4l2_buffer.field when queuing buffer in an output device
  • 743186 : v4l2object: set colorspace in caps for capture devices
  • 743407 : qtdemux: doesn't ignore data after last sample in mdat.
  • 743518 : qtdemux: dead code while calculating segment base ?
  • 743578 : qtdemux: Parse 'sidx' atom (for duration and indexing in fragmented files)
  • 743906 : quarktv: doesn't work with planes=0, fix property range accordingly
  • 744211 : interleave: assertion 'self- > func != NULL' failed
  • 744461 : pulsesink: Enhance code readability in pulsesink_query
  • 745192 : matroskademux: V_MS-VFW-FOURCC streams have DTS instead of PTS
  • 745226 : Vorbis RTP payloader metadata is slightly wrong
  • 745276 : avidemux: remove not needed code
  • 745339 : qtdemux: key_unit seek doesn't work
  • 745441 : v4l2: Detect lossed frame and warn
  • 745515 : level: infinite loop when interval is set to low values
  • 745587 : rtp: Add PLI and FIR counters to RTPSource statistics
  • 745599 : rtsp: tcp transport fails
  • 745973 : matroskademux: gst_tag_list_insert: assertion 'GST_IS_TAG_LIST (into)' failed
  • 746065 : level: outputs random values if channels==1
  • 746242 : matroskaparse: send global tags
  • 746274 : flvdemux: Less spam from no_more_pads warning
  • 746390 : qtdemux: crash while playing MPEG DASH stream
  • 746479 : rtsp: Only two second of playback with rtpsrc and test-mp4 (rtsp-server)
  • 746543 : rtpsession: Properly implement T_rr_interval and allow sending multiple early feedback packets in a row
  • 746810 : matroska: fix GValue leak when parsing tags
  • 746822 : qtdemux: segment query reports wrong values after key-unit seek
  • 746834 : v4l2sink: driver is not queried for minimum number of buffers when propose_allocation is not called
  • 747204 : audiofirfilter creates strange noise for smaller filter kernels and even default kernel
  • 747208 : rtpvp8depay: should have width/height in its caps so it can be fed to muxers
  • 747358 : rtp: RTPJitterBufferMode enum missing from gtk-doc
  • 747394 : rtpsession: Track RTX ssrc caps
  • 747554 : suppressions: silence possible valgrind false positive
  • 747595 : tests: Add test suite for alpha element
  • 747597 : smpte: Remove unused fields
  • 747863 : rtpsession: Use bandwidth calculation by default instead of some arbitrary hardcoded value
  • 747922 : rtpjitterbuffer/rtxreceive: Don't reset the jitterbuffer if too old RTX packets arrive
  • 748022 : audiofx: fix typos in example pipelines
  • 748024 : icydemux: Fix segfault for 0-value metainterval
  • 748041 : rtpjitterbuffer: Too early requested retransmission for future packets
  • 748353 : rtspsrc: Leak of RTCP caps
  • 748436 : rtpjitterbuffer: " stats " property docs
  • 748584 : matroskademux: fix seek event leak in push mode
  • 748617 : qtdemux: fix buffer leak on EOS with stop position in push mode
  • 748627 : rtspsrc: Don't send NACKs and early RTCP in non-feedback profiles
  • 748909 : jpegdec: fix frame leaks
  • 749054 : qtdemux: Fix gst-launch pipeline in the documentation
  • 749072 : flacparse: fix buffer leak
  • 749122 : vp8enc: vp9enc: target bitrate is not working as expected
  • 749129 : rtpg726depay: add block_align to output caps
  • 749163 : po: update POTFILES.in
  • 749543 : rtpg726depay: fix input buffer memleak
  • 749544 : rtpg726pay: fix caps leak
  • 749581 : rtpbasepayload: Try harder to reuse previously configured caps values and give more preference to anything set as properties
  • 749669 : rtp: fix collection of statistic
  • 749690 : splitfilesrc: Implement binary search in find_part_for_offset
  • 749909 : matroska: overwritten value assignment
  • 750327 : rtpssrcdemux: Add support for reduce size rtcp
  • 750332 : rtpsession: Add support for reduced size rtcp
  • 743925 : osxaudiosink won't reconfigure sink caps
  • 744922 : osxaudiosrc: iOS resampling is stuttering
  • 728353 : goom2k1: code does nothing, slowly
  • 748068 : equalizer: not changing settings dynamically
  • 731352 : flv: Container timestamp is DTS not PTS
  • 732910 : v4l2src: Dectect and workaround decreasing HW timestamp
  • 737810 : payloaders: VP8 and Opus payloader should probably suppport Google Chrome encoding-names
  • 740787 : videocrop: No longer apply the new crop if caps have not changed
  • 736396 : isomp4: duplicate if else branches in atoms.c
  • 610364 : udpsrc: allocates buffers with size a lot bigger than needed
  • 739305 : souphttpsrc: log connection events at info level
  • 744213 : spectrum: assertion 'len > 0' failed

Download

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 git.freedesktop.org .

Homepage

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.

Developers

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

  • Aleix Conchillo Flaqué
  • Alex O'Konski
  • Ananda
  • Andrei Sarakeev
  • Antonio Ospite
  • Anuj Jaiswal
  • Arun Raghavan
  • Aurélien Zanelli
  • Benjamin Gaignard
  • Brad Smith
  • Branislav Katreniak
  • David Sansome
  • David Schleef
  • Edward Hervey
  • George Kiagiadakis
  • Guillaume Desmottes
  • Gwenole Beauchesne
  • Göran Jönsson
  • Hans de Goede
  • Henning Heinold
  • Hyunjun Ko
  • Ilya Konstantinov
  • Jan Alexander Steffens (heftig)
  • Jan Schmidt
  • Jason Litzinger
  • Jesper Larsen
  • Jimmy Ohn
  • Jonas Holmberg
  • Jose Antonio Santos Cadenas
  • Josep Torra
  • Julien Isorce
  • Jurgen Slowack
  • Krzysztof Kotlenga
  • Linus Svensson
  • Luis de Bethencourt
  • Mark Nauwelaerts
  • Matej Knopp
  • Mathieu Duponchelle
  • Matthew Waters
  • Michael Smith
  • Miguel París Díaz
  • Nicola Murino
  • Nicolas Dufresne
  • Nicolas Huet
  • Nirbheek Chauhan
  • Ognyan Tonchev
  • Olivier Crête
  • Patrick Radizi
  • Paul Hyunil
  • Peter G. Baum
  • Peter Korsgaard
  • Peter Seiderer
  • Philippe De Muyter
  • Philippe Normand
  • Piotr Drąg
  • Ramiro Polla
  • Ravi Kiran K N
  • Reynaldo H. Verdejo Pinochet
  • Sanjay NM
  • Santiago Carot-Nemesio
  • Sebastian Dröge
  • Sebastian Rasmussen
  • Simon Farnsworth
  • Sjoerd Simons
  • Srimanta Panda
  • Stefan Sauer
  • Thiago Santos
  • Thibault Saunier
  • Tim-Philipp Müller
  • Tobias Modschiedler
  • Tom Greenwood
  • Vincent Penquerc'h
  • Vineeth T M
  • Vineeth TM
  • Víctor Manuel Jáquez Leal
  • Wim Taymans
  • Youness Alaoui
  • hark

Report a problem on this page.