The second 1.16 bug-fix release (1.16.2) was released on 3 December 2019.
This release only contains bugfixes and it should be safe to update from 1.16.1.
Highlighted bugfixes in 1.16.2
Interlaced video scaling fixes
CineForm video support in AVI
audiorate: avoid glitches due to rounding errors after changing rate
Command line tool output printing improvements on Windows
various performance improvements, memory leak fixes and security fixes
VP9 decoding fixes
avfvideosrc: Explicitly request video permission on macOS 10.14+
wasapi: bug fixes and stability improvements
webrtc-audio-processing: fix segmentation fault on 32-bit windows
tsdemux: improved handling of certain discontinuities
vaapi h265 decoder: wait for I-frame before trying to decode
gstreamer
gst-launch: Fix ugly stdout on Windows
tee: Make sure to actually deactivate pads that are released
bin: Drop need-context messages without source instead of crashing
gst: Don't pass miniobjects to GST_DEBUG_OBJECT() and similar macros
tracers: Don't leak temporary GstStructure
gst-plugins-base
xvimagepool: Update size, stride, and offset with allocated XvImage
video-converter: Fix RGB-XYZ-RGB conversion
audiorate: Update next_offset on rate change
audioringbuffer: Reset reorder flag before check
audio-buffer: Don't fail to map buffers with zero samples
videorate: Fix max-duplication-time handling
gl/gbm: ensure we call the resize callback before attempting to draw
video-converter: Various fixes for interlaced scaling
gstrtspconnection: messages_bytes not decreased
check: Don't use real audio devices for tests
riff: add CineForm mapping
glfilters: Don't use static variables for storing per-element state
glupload: Add VideoMetas and GLSyncMeta to the raw uploaded buffers
streamsynchronizer: avoid pad release race during logging.
gst-play: Use gst_print* to avoid broken stdout string on Windows
gst-plugins-good
vp9dec: Fix broken 4:4:4 8bits decoding
rtpsession: add locking for clear-pt-map
rtpL16depay: don't crash if data is not modulo channels*width
wavparse: Fix push mode ignoring audio with a size smaller than segment buffer
wavparse: Fix push mode ignoring last audio payload chunk
aacparse: fix wrong offset of the channel number in adts header
jpegdec: Fix incorrect logic in EOI tag detection
videocrop: Also update the coordinate when in-place
jpegdec: don't overwrite the last valid line
vpx: Error out if enabled and no features found
v4l2videodec: ensure pool exists before orphaning it
v4l2videoenc: fix type conversion errors
v4l2bufferpool: Queue number of allocated buffers to capture
v4l2object: fix mpegversion number typo
v4l2object: Work around bad TRY_FMT colorimetry implementations
gst-plugins-bad
avfvideosrc: Explicitly request video permission on macOS 10.14+
wasapi: Various fixes and a workaround for a specific driver bug
wasapi: Move to CoInitializeEx for COM initialization
wasapi: Fix runtime/build warnings
waylandsink: Commit the parent after creating subsurface
msdkdec: fix surface leak in msdkdec_handle_frame
tsmux: Fix copying of buffer region
tsdemux: Handle continuity mismatch in more cases
tsdemux: Always issue a DTS even when it's equal to PTS
openexr: Fix build with OpenEXR 2.4 (and also OpenEXR 2.2 on Ubuntu 18.04)
ccextractor: Always forward all sticky events to the caption pad
pnmdec: Return early on ::finish() if we have no actual data to parse
ass: avoid infinite unref loop with bad data
fluidsynth: add sf3 to soundfont search path
webrtcdsp/webrtcechoprobe segmentation fault on windows (1.16.0 x86)
gst-libav
avvidenc: Fix error propagation
avdemux: Fix segmentation fault if long_name is NULL
avviddec: Fix huge leak caused by circular reference
avviddec: Enforce allocate new AVFrame per input frame
avdec_mpeg2video (and probably more): Huge memory leak in git master
gst-rtsp-server
rtsp-media: Use lock in gst_rtsp_media_is_receive_only
rtsp-client: RTP Info when completed_sender
rtsp-client: fix location uri-format by getting uri directly from context instead
gstreamer-vaapi
meson build: halt configuration if no renderer API
libs: decoder: h265: skip all pictures prior the first I-frame
libs: window: x11: Avoid usage of deprecated API
gst-editing-services
Initialize debug categories before usage
gst-build
gst-env: Use locally built GStreamer utility programs
1.16.1
The first 1.16 bug-fix release (1.16.1) was released on 23 September 2019.
This release only contains bugfixes and it should be safe to update from 1.16.0.
Highlighted bugfixes in 1.16.1
GStreamer-vaapi: fix green frames and decoding artefacts in some cases
OpenGL: fix wayland event source burning CPU in certain circumstances
Memory leak fixes and memory footprint improvements
Performance improvements
Stability and security fixes
Fix enum for GST_MESSAGE_DEVICE_CHANGED which is technically an API break, but this is only used internally in GStreamer and duplicated another message enum
hls: Make crypto dependency optional when hls-crypto is auto
player: fix switching back and forth between forward and reverse playback
decklinkaudiosink: Drop late buffers
openh264enc: Fix compilation with openh264 v2.0
wasapisrc: fix segtotal value being always 2
android: Fix gnutls issue causing a FORTIFY crash on Android Q
windows: Fix two crashes due to cross-CRT free when using MSVC
gstreamer core
device: gst_device_create_element() is transfer floating, not transfer full
filesink, fdsink: respect IOV_MAX for the writev iovec array (Solaris)
miniobject: free qdata array when the last qdata is removed (reduces memory footprint)
bin: Fix minor race when adding to a bin
aggregator: Actually handle NEED_DATA return from update_src_caps()
aggregator: Ensure that the source pad is created as a GstAggregatorPad if no type is given in the pad template
latency: fix custom event leaks
registry: Use plugin directory from the build system for relocateable Windows builds
message: fix up enum value for GST_MESSAGE_DEVICE_CHANGED
info: Fix deadlock in gst_ring_buffer_logger_log()
downloadbuffer: Check for flush after seek
identity: Non-live upstream have no max latency
identity: Fix the ts-offset property getter
aggregator: Make parsing of explicit sink pad names more robust
bufferpool: Fix the buffer size reset code
fakesink, fakesrc, identity: sync gst_buffer_get_flags_string() with new flags
multiqueue: never unref queries we do not own
concat: Reset last_stop on FLUSH_STOP too
aggregator: fix flow-return boolean return type mismatch
gstpad: Handle probes that reset the data field
gst: Add support for g_autoptr(GstPromise)
gst-inspect: fix unused-const-variable error in windows
base: Include gstbitwriter.h in the single-include header
Add various Since: 1.16 markers
GST_MESSAGE_DEVICE_CHANGED duplicates GST_MESSAGE_REDIRECT
Targetting wrong meson version
meson: Make get_flex_version.py script executable
meson: Link to objects instead of static helper library
meson: set correct install path for gdb helper
meson: fix warning about configure_file() install kwarg
gst-plugins-base
video-info: parse field-order for all interleaved formats
tests: fix up valgrind suppressions for glibc getaddrinfo leaks
meson: Reenable NEON support (in audio resampler)
audio-resampler: Update NEON to handle remainders not multiples of 4
eglimage: Fix memory leak
audiodecoder: Set output caps with negotiated caps to avoid critical info printed
video-frame: Take TFF flag from the video info if it was set in there
glcolorconvert: Fix external-oes shader
video-anc: Fix ADF detection when trying to extract data from vanc
gl/wayland: fix wayland event source burning CPU
configure: add used attribute in order to make NEON detection working with -flto.
audioaggregator: Return a valid rate range from caps query if downstream supports a whole range
rtspconnection: data-offset increase not set
rtpsconnection: Fix number of n_vectors
video-color: Add compile-time assert for ColorimetryInfo enum
audiodecoder: Fix leak on failed audio gaps
glupload: Keep track of cached EGLImage texture format
playsink: Set ts-offset to text sink.
meson.build: use join_paths() on prefix
compositor: copy frames as-is when possible
compositor: Skip background when a pad obscures it completely
rtspconnection: Start CSeq at 1 (some servers don't cope well with seqnum 0)
viv-fb: fix build break for GST_GL_API
gl/tests: fix shader creation tests part 2
gl/tests: fix shader creation tests
wayland: set the event queue also for the xdg_wm_base object
video: Added GI annotation for gstvideoaffinetransformationmeta apply_matrix
compositor: Remove unneeded left shift for ARGB/AYUV SOURCE operator
Colorimetry fixes
alsasrc: Don't use driver timestamp if it's zero
gloverlaycompositor: fix crash if buffer doesn't have video meta
meson: Don't try to find gio-unix on Windows
glshader: fix default external-oes shaders
subparse: fix pushing WebVTT cue with no newline at the end
meson: Missing "android" choice in gl_winsys
video test: Keep BE test inline with LE test
id3tag: Correctly validate the year from v1 tags before passing to GstDateTime
gl/wayland: Don't prefix wl_shell struct field
eglimage: Add compatibility define for DRM_FORMAT_NV24
Add various Since: 1.16 markers
video-anc: Handle SD formats correctly
Docs: add GL_CFLAGS to GTK_DOC_CFLAGS
GL: using vaapi and showing on glimagesink on wayland loads one core for 100% on 1.16
GL: external-oes shader places precision qualifier before #extension (was: androidmedia amcviddec fail after 1.15.90 1.16.0 update)
gst-plugins-good
alpha: Fix one_over_kc calculation on arm/aarch64
souphttpsrc: Fix incompatible type build warning
rtpjitterbuffer: limit max-dropout-time to maxint32
rtpjitterbuffer: Clear clock master before unreffing
qtdemux: Use empty-array safe way to cleanup GPtrArray
v4l2: Fix type compatibility issue with glibc 2.30
valgrind: suppress Cond error coming from gnutls and Ignore leaks caused by shout/sethostent
rtpfunnel: forward correct segment when switching pad
gtkglsink: fix crash when widget is resized after element destruction
jpegdec: Don't dereference NULL input state if we have no caps in TIME segments
rtp: opuspay: fix memory leak in gst_rtp_opus_pay_setcaps
v4l2videodec: return right type for drain.
rtpssrcdemux: Avoid taking streamlock out-of-band
Support v4l2src buffer orphaning
splitmuxsink: Only set running time on finalizing sink element when in async-finalize mode
rtpsession: Always keep at least one NACK on early RTCP
rtspsrc: do not try to send EOS with invalid seqnum
rtpsession: Call on-new-ssrc earlier
rtprawdepay: Don't get rid of the buffer pool on FLUSH_STOP
rtpbin: Free storage when freeing session
scaletempo: Advertise interleaved layout in caps templates
Support v4l2src buffer orphaning
gst-plugins-bad
hls: Make crypto dependency optional when hls-crypto is auto
player: fix switching back and forth between forward and reverse playback
decklinkaudiosink: Drop late buffers
srt: Add stats property, include sender-side statistics and fix a crash
dshowsrcwrapper: fix regression on device selection
tsdemux: Limit the maximum PES payload size
wayland: Define libdrm_dep in meson.build to fix meson configure error when kms is disabled
sctp: Fix crash on free() when using the MSVC binaries
webrtc: Fix signals documentation
h264parse: don't critical on VUI parameters > 2^31
rtmp: Fix crash inside free() with MSVC on Windows
iqa: fix leak of map_meta.data
d3dvideosink: Fix crash on WinProc handler
amc: Fix crash when a sync_meta survives its sink
pitch: Fix race between putSamples() and setting soundtouch parameters
webrtc: fix type of max-retransmits, make it work
mxfdemux: Also allow picture essence element type 0x05 for VC-3
wasapi: fix symbol redefinition build error
decklinkvideosrc: Retrieve mode of the ancillary data from the frame
decklinkaudiosrc/decklinkvideosrc: Do nothing in BaseSrc::negotiate() and...
adaptivedemux: do not retry downloads during shutdown.
webrtcbin: fix GInetAddress leak
dtls: fix dtls connection object leak
siren: fix a global buffer overflow spotted by asan
kmssink: Fix implicit declaration build error
Fix -Werror=return-type error in configure.
aiff: Fix infinite loop in header parsing.
nvdec: Fix possible frame drop on EOS
srtserversrc: yields malformed rtp payloads
srtsink: Fix crash in case no URI
dtlsagent: Fix leaked dtlscertificate
meson: bluez: Early terminate configure on Windows
decklink: Correctly ensure >=16 byte alignment for the buffers we allocate
webrtcbin: fix DTLS when receivebin is set to DROP
zbar: Include running-time, stream-time and duration in the messages
uvch264src: Make sure we set our segment
avwait: Allow start and end timecode to be set back to NULL
avwait: Don't print warnings for every buffer passed
hls/meson: fix dependency logic
Waylandsink gnome shell workaround
avwait: Allow setting start timecode after end timecode; protect propeties with mutex
wayland/wlbuffer: just return if used_by_compositor is true when attach
proxy: Set SOURCE flag on the source and SINK flag on the sink
ivfparse: Check the data size against IVF_FRAME_HEADER_SIZE
webrtc: Add various Since markers to new types after 1.14.0
msdk: fix the typo in debug category
dtlsagent: Do not overwrite openssl locking callbacks
meson: Fix typo in gsm header file name
srt: handle races in state change
webrtc: Add g_autoptr() support for public types
openh264enc: Fix compilation with openh264 v2.0
meson: Allow CUDA_PATH fallback on linux
meson: fix build with opencv=enabled and opencv4. Fixes#964
meson: Add support for the colormanagement plugin
autotools: gstsctp: set LDFLAGS
nvenc/nvdec: Add NVIDIA SDK headers to noinst_HEADERS
h264parse: Fix typo when setting multiview mode and flags
Add various Since: 1.16 markers
opencv: allow compilation against 4.1.x
Backport of some minor srt commits without MR into 1.16
meson: fix build with opencv=enabled and opencv4
wasapisrc: fix segtotal value being always 2 due to an unused variable
meson: colormanagement missing
androidmedia amcviddec fail after 1.15.90 1.16.0 update
gst-plugins-ugly
meson: Always require the gmodule dependency
gst-libav
docs: don't include the type hierarchy, fixing build with gtk-doc 1.30
avvidenc: Correctly signal interlaced input to ffmpeg when the input caps are interlaced
autotools: add bcrypt to win32 libs
gstav: Use libavcodec util function for version check
API documentation fails to build with gtk-doc 1.30
gst-rtsp-server
rtsp-client: RTP Info must exist in PLAY response
onvif-media: fix "void function returning a value" compiler warning
Add various Since: 1.16 markers
gstreamer-vaapi
fix egl context leak and display creation race
pluginutil: Remove Mesa from drivers white list
Classify vaapidecodebin as a hardware decoder
Fix two leak
vaapivideomemory: demote error message to info
encoder: vp8,vp9: reset frame_counter when input frame's format changes
encoder: mpeg2: No packed header for SPS and PPS
decoder: vp9: clear parser pointer after release
encoder: Fixes deadlock in change state function
encoder: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
encoder: not call ensure_num_slices inside g_assert()
encoder: continue if roi meta is NULL
decoder: vp9: Set chroma_ ype by VP9 bit_depth
vaapipostproc: don't do any color conversion when GL_TEXTURE_UPLOAD
libs: surface: fix double free when dmabuf export fails
h264 colors and artifacts upon upgrade to GStreamer Core Library version 1.15.90
gst-editing-services
element: Properly handle the fact that pasting can return NULL
Add various missing Since markers
launch: Fix caps restriction short names
python: Avoid warning about using deprecated methods
video-transition: When using non crossfade effect use 'over' operations
meson: Generate a pkgconfig file for the GES plugin
gst-devtools
launcher: testsuites: skip systemclock stress tests
validate: fix build on macOS
gst-build
Update win flex bison binaries
Update the flexmeson windows binary version
Don't allow people to run meson inside the uninstalled env
Contributors to 1.16.1
Aaron Boxer, Adam Duskett, Alicia Boya García, Andoni Morales Alastruey, Antonio Ospite, Arun Raghavan, Askar Safin, A. Wilcox, Charlie Turner, Christoph Reiter, Damian Hobson-Garcia, Daniel Klamt, Danny Smith, David Gunzinger, David Ing, David Svensson Fors, Doug Nazar, Edward Hervey, Eike Hein, Fabrice Bellet, Fernando Herrrera, Georg Lippitsch, Göran Jönsson, Guillaume Desmottes, Haihao Xiang, Haihua Hu, Håvard Graff, Hou Qi, Ignacio Casal Quinteiro, Ilya Smelykh, Jan Schmidt, Javier Celaya, Jim Mason, Jonas Larsson, Jordan Petridis, Jose Antonio Santos Cadenas, Juan Navarro, Knut Andre Tidemann, Kristofer Björkström, Lucas Stach, Marco Felsch, Marcos Kintschner, Mark Nauwelaerts, Martin Liska, Martin Theriault, Mathieu Duponchelle, Matthew Waters, Michael Olbrich, Mike Gorse, Nicola Murino, Nicolas Dufresne, Niels De Graef, Niklas Hambüchen, Nirbheek Chauhan, Olivier Crête, Philippe Normand, Ross Burton, Sebastian Dröge, Seungha Yang, Song Bing, Thiago Santos, Thibault Saunier, Thomas Coldrick, Tim-Philipp Müller, Víctor Manuel Jáquez Leal, Vivia Nikolaidou, Xavier Claessens, Yeongjin Jeong,
... and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
List of merge requests and issues fixed in 1.16.1
List of Merge Requests applied in 1.16
List of Issues fixed in 1.16.1
Known Issues
possibly breaking/incompatible changes to properties of wrapped FFmpeg decoders and encoders (see above).
The way that GIO modules are named has changed due to upstream GLib natively adding support for loading static GIO modules. This means that any GStreamer application using gnutls for SSL/TLS on the Android or iOS platforms (or any other setup using static libraries) will fail to link looking for the g_io_module_gnutls_load_static() function. The new function name is now g_io_gnutls_load(gpointer data). See Android/iOS sections above for further details.
(needs one that has gst-check enabled)
Remove gi file from PLIST that's not installed with current dependencies
(perhaps one is missing?).
Bump PKGREVISION.
The motivation is to consider meson as an application, so there is only
one copy on the system, and as a python 3 program, it can build python 2
packages.