=== release 1.16.1 === 2019-09-23 11:06:23 +0100 Tim-Philipp Müller * ChangeLog: * NEWS: * RELEASE: * configure.ac: * gst-plugins-base.doap: * meson.build: Release 1.16.1 2019-09-23 11:06:23 +0100 Tim-Philipp Müller * docs/plugins/inspect/plugin-adder.xml: * docs/plugins/inspect/plugin-alsa.xml: * docs/plugins/inspect/plugin-app.xml: * docs/plugins/inspect/plugin-audioconvert.xml: * docs/plugins/inspect/plugin-audiomixer.xml: * docs/plugins/inspect/plugin-audiorate.xml: * docs/plugins/inspect/plugin-audioresample.xml: * docs/plugins/inspect/plugin-audiotestsrc.xml: * docs/plugins/inspect/plugin-cdparanoia.xml: * docs/plugins/inspect/plugin-compositor.xml: * docs/plugins/inspect/plugin-encoding.xml: * docs/plugins/inspect/plugin-gio.xml: * docs/plugins/inspect/plugin-libvisual.xml: * docs/plugins/inspect/plugin-ogg.xml: * docs/plugins/inspect/plugin-opengl.xml: * docs/plugins/inspect/plugin-opus.xml: * docs/plugins/inspect/plugin-overlaycomposition.xml: * docs/plugins/inspect/plugin-pango.xml: * docs/plugins/inspect/plugin-pbtypes.xml: * docs/plugins/inspect/plugin-playback.xml: * docs/plugins/inspect/plugin-rawparse.xml: * docs/plugins/inspect/plugin-subparse.xml: * docs/plugins/inspect/plugin-tcp.xml: * docs/plugins/inspect/plugin-theora.xml: * docs/plugins/inspect/plugin-typefindfunctions.xml: * docs/plugins/inspect/plugin-videoconvert.xml: * docs/plugins/inspect/plugin-videorate.xml: * docs/plugins/inspect/plugin-videoscale.xml: * docs/plugins/inspect/plugin-videotestsrc.xml: * docs/plugins/inspect/plugin-volume.xml: * docs/plugins/inspect/plugin-vorbis.xml: * docs/plugins/inspect/plugin-ximagesink.xml: * docs/plugins/inspect/plugin-xvimagesink.xml: Update docs 2019-09-23 11:06:21 +0100 Tim-Philipp Müller * po/bg.po: * po/de.po: * po/fr.po: * po/hr.po: * po/it.po: * po/nb.po: * po/pl.po: * po/ru.po: * po/sv.po: * po/tr.po: * po/uk.po: * po/zh_CN.po: Update translations 2018-11-19 17:19:33 +0100 Marco Felsch * gst-libs/gst/video/video-info.c: video-info: parse field-order for all interleaved formats The "field-order" is related for all interlace_mode modes except the "progressive" mode. So instead of or'ing each mode we can use the already supported GST_VIDEO_INFO_IS_INTERLACED macro. 2019-09-02 16:20:07 -0400 Doug Nazar * meson.build: meson: Reenable NEON support 2019-09-02 23:25:39 -0400 Doug Nazar * gst-libs/gst/audio/audio-resampler-neon.h: audio-resampler: Update NEON to handle remainders not multiples of 4 If the remainder is not evenly divisable by 4, we'd miss the check for zero and continue the loop until crashing. Change the branch to take into account negatives as well. This more closely matches the SSE loop. 2019-08-28 11:24:01 -0700 Jonas Larsson * gst-libs/gst/gl/egl/gsteglimage.c: eglimage: Fix memory leak Also free the GstEGLImage struct allocated by g_new0. Fixes #661 2019-09-08 01:03:57 +0100 Tim-Philipp Müller * tests/check/gst-plugins-base.supp: tests: fix up valgrind suppressions for glibc getaddrinfo leaks Make more flexible. There is an extra gethostbyname2_r@@GLIBC_2.2.5 (getXXbyYY_r.c:217) in the trace on the build bots (F30). Fixes the -base and -good valgrind jobs on the 1.16 branch CI. 2019-08-21 19:04:56 +0800 Hou Qi * gst-libs/gst/audio/gstaudiodecoder.c: audiodecoder: fix ctitical info assertion 'GST_IS_CAPS (dec->priv->ctx.caps)' failed Matroskademux will send gap event when lag of video and audio is over 3 seconds. audiodecoder needs to handle gap event and set default output caps. Only audio info is set, while output caps is ignored. This cause the assertion failed. Need to fill output caps in gst_audio_decoder_negotiate_default_caps() with negotiated caps to avoid critical info printed when check it later. 2019-08-24 12:23:34 +0000 Mike Gorse * docs/libs/Makefile.am: Docs: add GL_CFLAGS to GTK_DOC_CFLAGS Otherwise introspection may fail because wayland-client.h cannot be found. 2019-08-16 11:58:28 +0300 Sebastian Dröge * gst-libs/gst/video/video-frame.c: video-frame: Take TFF flag from the video info if it was set in there The caps and thus the video info have preference. If the field order is set in there then it applies to all frames. This works around issues where the tff field order is only set in the caps but not additionally in the buffer flags. 2019-08-09 16:04:03 -0400 Xavier Claessens * gst-libs/gst/gl/gstglcolorconvert.c: glcolorconvert: Fix external-oes shader The #extention must come before 'precision highp float;'. Closes: #650 2019-08-11 14:16:51 +0100 Tim-Philipp Müller * gst-libs/gst/video/video-color.c: video-color: keep UNKNOWN colorimetry define automatically up-to-date Follow-up to !310 and helps with backport commits like !360 2019-05-24 15:22:58 +0200 Arun Raghavan * gst-libs/gst/video/video-color.c: video-color: Deal with NULL colorimetry while converting from string This came up in the case where v4l2 sets caps with colorimetry=NULL, and then tries to parse back the colorimetry, causing a crash in gst_video_get_colorimetry() because of g_str_equal(). We fix this by making sure the only caller of the function never calls it with a null colorimetry string. 2019-05-24 16:35:08 +0200 Arun Raghavan * gst-libs/gst/video/video-color.c: video-color: Fix unknown colorimetry checking Also drop some deadcode #defines. 2019-08-07 13:01:07 +0300 Sebastian Dröge * gst-libs/gst/video/video-anc.c: video-anc: Fix ADF detection when trying to extract data from vanc Previously we were checking offset 1 twice, but the second check should've been for offset 2. 2019-05-28 17:43:25 +0200 Lucas Stach * gst-libs/gst/gl/wayland/wayland_event_source.c: gl/wayland: fix wayland event source burning CPU Commit c71dd72b "gl/wayland: fix glib mainloop integration" was overeager in removing the poll result test from the check function. This caused dispatch to be called even if no new events are available on the Wayland connection, which in turn would wake up the glib mainloop, causing effectively a tight loop without ever blocking on the poll. Fixes #603 2019-07-24 10:12:17 +0200 Martin Liska * configure.ac: Add used attribute in order to make NEON detection working with -flto. 2019-07-18 08:46:42 +0300 Sebastian Dröge * gst-libs/gst/audio/gstaudioaggregator.c: audioaggregator: Split getcaps() function into two One for convert pads and one for normal sink pads. 2019-07-16 10:40:16 +0300 Sebastian Dröge * gst-libs/gst/video/gstvideoaggregator.c: videoaggregator: We can only convert the format if a GstVideoAggregatorConvertPad is used Otherwise assume that we can at least support any framerate. 2019-07-16 10:34:24 +0300 Sebastian Dröge * gst-libs/gst/audio/gstaudioaggregator.c: audioaggregator: Always take first configure pad's rate and downstream caps into account when calculating allow sink caps While we can convert between all formats apart from the rate, we actually need to make sure that we comply with a) the rate of the first configured pad and b) also all the allowed rates from downstream. 2019-07-16 10:02:08 +0300 Sebastian Dröge * gst-libs/gst/audio/gstaudioaggregator.c: audioaggregator: If we don't have a GstAudioAggregatorConvertPad, don't assume that we can actually convert 2019-07-15 16:08:34 +0200 Mathieu Duponchelle * gst-libs/gst/audio/gstaudioaggregator.c: audioaggregator: always use downstream's rate requirements We were previously only fixating the rate in the getcaps implementation when downstream was requiring a discrete value, causing negotiation to fail when upstream was capable of rate conversion, but not made aware that it had to occur. Instead of fixating the rate, we can simply update our sink template caps with whatever GValue the downstream caps are holding as their rate field. Allows negotiation to successfully complete with pipelines such as: audiotestsrc ! audio/x-raw, rate=48000 ! audioresample ! audiomixer name=m ! \ audio/x-raw, rate={800, 1000} ! autoaudiosink \ audiotestsrc ! audio/x-raw, rate=44100 ! audioresample ! m. 2019-06-28 07:22:17 +0200 Göran Jönsson * gst-libs/gst/rtsp/gstrtspconnection.c: rtspconnection: data-offset increase not set 2019-06-27 08:04:07 +0200 Göran Jönsson * gst-libs/gst/rtsp/gstrtspconnection.c: rtpsconnection: Fix number of n_vectors Body_offset mean that so much data have been written. Without this patch n_vectors somtimes becomes one more than it should and then there will be an vector that have a random size causing writev_bytes to cause a "Bad address" error. 2019-06-26 17:05:04 +0530 Nirbheek Chauhan * gst-libs/gst/video/video-color.c: video-color: Add compile-time assert for ColorimetryInfo enum A comment is not sufficient because this will break when cherry-picking or backporting commits. 2019-06-26 03:39:54 -0400 Doug Nazar * gst-libs/gst/audio/gstaudiodecoder.c: audiodecoder: Fix leak on failed audio gaps If we fail to process the gap event we need to unref the event or we end up with a leak. 2019-06-23 11:34:49 +0100 Philippe Normand * gst-libs/gst/gl/gstglupload.c: glupload: Keep track of cached EGLImage texture format This patch fixes the following critical warning: CRITICAL **: 11:33:32.843: Unknown GL format 0x0 provided It would happen during the setup of a second pipeline involving the DMABuf uploader, typically with a v4l2src element. The warning was raised because the uploader had a cached EGLImage already filled but the formats were not synchronized accordingly. 2019-06-17 16:46:21 -0700 Song Bing * gst/playback/gstplaysink.c: playsink: Set ts-offset to text sink. Find right text sink to set the ts-offset. 2017-10-10 15:45:14 +0200 Håvard Graff * pkgconfig/meson.build: meson.build: use join_paths() on prefix So that "/" are correct on Windows. 2019-06-14 02:32:50 +0530 Nirbheek Chauhan * gst/compositor/compositor.c: compositor: Copy frames as-is when possible The blend functions for alpha formats need to do more work than just doing a memcpy, so we can do a memcpy when we know that a blend is not actually needed. 1080p AYUV ! compositor background=transparent ! fakesink - 56% faster Specifically, when we don't draw the background and the first pad we draw completely covers the output frame, we can just copy it as-is. The rest of the pads (if any) will get composited on top normally. 2019-06-24 09:44:29 +0000 Tim-Philipp Müller * gst/compositor/compositor.c: compositor: fix compiler warning due to c99-ism 2019-06-13 20:30:03 +0530 Nirbheek Chauhan * gst/compositor/compositor.c: compositor: Sprinkle some const in prototypes These helper functions don't edit the rectangles passed in. 2019-05-26 17:47:20 +0200 Nirbheek Chauhan * gst/compositor/compositor.c: compositor: Skip background if transparent and obscured If the background is transparent and obscured by a pad that may or may not have alpha, we can still skip drawing it entirely AYUV 1080p ! compositor background=transparent ! fakesink - 75% faster 2019-05-26 17:30:12 +0200 Nirbheek Chauhan * gst/compositor/compositor.c: compositor: Skip the background when not visible We don't need to waste time drawing the background when one of the pads completely covers the output and there's no alpha on the pad or in the video format. Speedups: I420 1080p ! compositor ! fakesink - 72% faster I420 1080p ! compositor background=black ! fakesink - 45% faster 2019-05-26 18:28:18 +0200 Nirbheek Chauhan * gst/compositor/blend.c: compositor: Don't log per-frame under GST_INFO 2019-05-26 17:29:23 +0200 Nirbheek Chauhan * gst/compositor/compositor.c: compositor: Factor-out rectangle-obscuring check We're going to use this for checking if one of the pads obscures the background. 2019-05-26 15:23:25 +0200 Nirbheek Chauhan * gst/compositor/compositor.c: * gst/compositor/compositor.h: compositor: Add some comments, remove outdated ones 2019-05-26 15:23:06 +0200 Nirbheek Chauhan * gst/compositor/compositor.c: compositor: Remove unused function argument 2019-06-12 04:45:09 +0900 Eike Hein * gst-libs/gst/rtsp/gstrtspconnection.c: rtspconnection: Start CSeq at 1 RFC 7826 recommends (but does not require) starting at 0, but at least one known server implementation fails to copy request sequence numbers <1 into responses due to an incorrect null check. The server known to exhibit this behavior is the Parrot Streaming Server, serving video from their UAV devices. A fix has been submitted upstream as well: https://github.com/Parrot-Developers/librtsp/pull/2 The Parrot developers are known to have tested with LibVLC. In WireShark debugging, LibVLC appears to start with a CSeq of 2, which is likely why this bug went unnoticed. This reverts 487595a7d6e2d, which set this to 0 citing the RFC. The switch to 0 was thus a recent one; it's therefore possible server implementors relied on the previous GStreamer client behavior in their tests as well. Fixes #624. 2019-06-03 15:51:02 +0800 Haihua Hu * gst-libs/gst/gl/viv-fb/gstglwindow_viv_fb_egl.c: viv-fb: fix build break for GST_GL_API Need include config.h in gstglwindow_viv_fb_egl.c 2019-06-08 02:57:37 +1000 Matthew Waters * tests/check/libs/gstglheaders.c: gl/tests: fix shader creation tests part 2 Continuation of 4fd7a2c783e96e5ebec513f8fd178ba34b2a527f We check the availability of the high precision floats in GLSL shaders which involves an OpenGL call and thus is required to be executed on the OpenGL thread. The tests were not respecting that and could fail on more strict drivers. Tests update for 675415bf2ea9ddc75ea5e5b6eae9ae942c19d6dc Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/590 2019-06-07 20:51:39 +1000 Matthew Waters * tests/check/libs/gstglheaders.c: * tests/check/libs/gstglslstage.c: gl/tests: fix shader creation tests We check the availability of the high precision floats in GLSL shaders which involves an OpenGL call and thus is required to be executed on the OpenGL thread. The tests were not respecting that and could fail on more strict drivers. Tests update for 675415bf2ea9ddc75ea5e5b6eae9ae942c19d6dc Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/590 2019-06-05 13:25:34 +0100 Fernando Herrrera * gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c: wayland: set the event queue also for the xdg_wm_base object 2019-05-28 17:04:51 +0200 Daniel Klamt * gst-libs/gst/video/gstvideoaffinetransformationmeta.c: Added GI annotation for gstvideoaffinetransformationmeta apply_matrix The problem is that Gobject Introspections does not understand the const gfloat matrix[16] as an matrix but as an array of gfloasts but as just one gfloat. To fix this i added the annotation to the parameter descriptions. 2019-05-24 15:54:50 +0200 Sebastian Dröge * gst/compositor/compositororc.orc: compositor: Replace shift and conv opcodes by convh in BGRA SOURCE operator Potentially speeds up processing a bit. 2019-05-24 15:53:55 +0200 Sebastian Dröge * gst/compositor/compositororc.orc: compositor: Remove unneeded left shift for ARGB/AYUV SOURCE operator The alpha value is already in the lower 8 bits from the beginning in this case. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/610 2018-02-26 14:25:40 +0100 Georg Lippitsch * ext/alsa/gstalsasrc.c: alsasrc: Don't use driver timestamp if it's zero Some alsa interfaces don't provide timestamps and thus always set the timestamp to zero. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/453 2019-05-14 13:34:13 +0200 Guillaume Desmottes * gst-libs/gst/gl/gstgloverlaycompositor.c: gloverlaycompositor: fix crash if buffer doesn't have video meta Fix #501 2019-05-12 18:33:32 +0900 Seungha Yang * meson.build: meson: Don't try to find gio-unix on Windows 2019-05-07 18:36:01 +1000 Matthew Waters * gst-libs/gst/gl/gstglshaderstrings.c: glshader: fix default external-oes shaders In glsl, #extension directives need to before other non-preprocesser directives. We were placing the precision qualifier before that. Fix by moving the #extension to the first line in the shader. Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/601 2019-05-06 12:48:49 +0200 Antonio Ospite * gst/subparse/gstsubparse.c: * tests/check/elements/subparse.c: subparse: fix pushing WebVTT cue when last is not an empty line If the last WebVTT cue does not have an empty line after it, or if it does not end with a newline at all, it does not get pushed out and it won't be displayed. gst_sub_parse_sink_event() already handles the issue for other subtitle formats, enable handling it for GST_SUB_PARSE_FORMAT_VTT too. While at it also add a test for this case. 2019-05-06 13:23:22 +0200 Antonio Ospite * tests/check/elements/subparse.c: test: add subparse test for SRT subtitles with no newline at the end Add a test to verify that SRT subtitles work even if the last chunk does not have an empty line after it. 2019-05-03 14:31:03 -0400 Xavier Claessens * meson_options.txt: Missing "android" choice in gl_winsys 2019-05-01 11:25:31 -0500 A. Wilcox * tests/check/libs/video.c: video test: Keep BE test inline with LE test 2019-04-26 09:44:07 +0300 Sebastian Dröge * gst-libs/gst/tag/gstid3tag.c: id3tag: Correctly validate the year from v1 tags before passing to GstDateTime By using strtoul(), invalid values will get mapped to MAXULONG and we would have to check errno. They won't get mapped to 0. To solve this, use the signed g_ascii_strtoll(). This will map errors to 0 or G_MAXINT64 or G_MININT64, and the valid range for GstDateTime is > 0 and <= 9999 so we can directly check for this here. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/384 2019-04-24 10:41:24 +0200 Niels De Graef * gst-libs/gst/gl/wayland/gstgldisplay_wayland.c: * gst-libs/gst/gl/wayland/gstgldisplay_wayland.h: * gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c: gl/wayland: Don't prefix wl_shell struct field As part of commit 808e7127, we prefixed the `GstWlWindow`'s `shell` field with wl_, to differentiate it from the other types of shells a Wayland compositor might support. However, this is apparently a struct that we expose to our users, so changing it means we have an API break. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/592 2019-04-23 17:10:47 +0300 Sebastian Dröge * gst-libs/gst/gl/egl/gsteglimage.c: eglimage: Add compatibility define for DRM_FORMAT_NV24 2019-04-23 14:31:45 +0300 Sebastian Dröge * gst-libs/gst/gl/gstglformat.c: * gst-libs/gst/gl/gstglshaderstrings.c: * gst-libs/gst/gl/gstglsl.c: * gst-libs/gst/gl/gstglwindow.c: gl: Add various missing Since: 1.16 markers And add some missing function documentation. 2019-04-23 14:42:03 +0300 Sebastian Dröge * gst-libs/gst/video/gstvideoaggregator.h: videoaggregator: Add Since: 1.16 markers to all public structs 2019-04-23 14:42:17 +0300 Sebastian Dröge * gst-libs/gst/video/video-anc.h: video-anc: Add Since: 1.16 marker 2019-04-23 14:52:28 +0300 Sebastian Dröge * gst-libs/gst/audio/gstaudioaggregator.h: audioaggregator: Add Since: 1.14 markers to all public structs 2019-04-23 15:05:43 +0300 Sebastian Dröge * gst-libs/gst/audio/audio-channels.c: * gst-libs/gst/audio/gstaudiodecoder.h: * gst-libs/gst/audio/gstaudioencoder.h: * gst-libs/gst/audio/gstaudioringbuffer.h: * gst-libs/gst/pbutils/codec-utils.c: * gst-libs/gst/pbutils/encoding-profile.c: * gst-libs/gst/rtsp/gstrtspconnection.c: * gst-libs/gst/rtsp/gstrtspconnection.h: * gst-libs/gst/rtsp/gstrtspdefs.c: * gst-libs/gst/rtsp/gstrtspdefs.h: * gst-libs/gst/sdp/gstmikey.h: * gst-libs/gst/video/gstvideodecoder.h: * gst-libs/gst/video/gstvideoencoder.c: * gst-libs/gst/video/gstvideoencoder.h: * gst-libs/gst/video/navigation.h: * gst-libs/gst/video/video-format.h: * gst-libs/gst/video/video-info.h: * gst-libs/gst/video/video-resampler.h: * gst-libs/gst/video/videooverlay.c: libs: Fix various Since markers 2019-04-22 17:06:09 +0300 Sebastian Dröge * gst-libs/gst/video/video-anc.c: * tests/check/libs/videoanc.c: video-anc: Handle SD formats correctly VANC is stored linearly in SD formats instead of separating the Y and YV components from each other and having first all Y and then all UV values. 2019-04-22 18:33:20 +0300 Sebastian Dröge * gst-libs/gst/video/video-anc.h: video-anc: Add DID16 value for SMPTE 2016-3 AFD/Bar data 2019-05-02 12:35:19 +0100 Tim-Philipp Müller * .gitlab-ci.yml: ci: use template from 1.16 branch