+=== release 1.19.2 ===
+
+2021-09-23 01:34:47 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
+ * gst-plugins-bad.doap:
+ * meson.build:
+ Release 1.19.2
+
+2021-09-22 14:17:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/audiobuffersplit/gstaudiobuffersplit.c:
+ audiobuffersplit: Remove unneeded buffer_clip wrapper
+ This is just a small cleanup noticed while reading.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2544>
+
+2020-07-10 19:31:13 +0530 Vivek R <123vivekr@gmail.com>
+
+ * ext/opencv/gstcvtracker.cpp:
+ * ext/opencv/gstcvtracker.h:
+ opencv: cvtracker: add draw property
+ This property controls the drawing of rectangle around the tracked object.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2454>
+
+2020-05-24 23:37:25 +0530 Vivek R <123vivekr@gmail.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/opencv/gstcvtracker.cpp:
+ * ext/opencv/gstcvtracker.h:
+ * ext/opencv/gstopencv.cpp:
+ * ext/opencv/meson.build:
+ * tests/meson.build:
+ * tests/validate/meson.build:
+ * tests/validate/opencv/cvtracker.validatetest:
+ * tests/validate/opencv/cvtracker/flow-expectations/log-tracker-src-expected:
+ opencv: add cvtracker plugin
+ This adds an object tracker plugin.
+ Tracker implementations from https://docs.opencv.org/3.4/d0/d0a/classcv_1_1Tracker.html
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2454>
+
+2020-05-25 10:35:30 +0530 Vivek R <123vivekr@gmail.com>
+
+ * ext/opencv/meson.build:
+ opencv: patch to ensure headers are detected
+ This patch is used to ensure opencv headers are detected.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2454>
+
+2021-09-19 01:18:00 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/mpegpsmux/mpegpsmux_aac.c:
+ * gst/mpegpsmux/mpegpsmux_aac.h:
+ * gst/mpegpsmux/mpegpsmux_h264.c:
+ * gst/mpegpsmux/mpegpsmux_h264.h:
+ * gst/mpegtsmux/gstatscmux.c:
+ * gst/mpegtsmux/gstatscmux.h:
+ * gst/mpegtsmux/gstbasetsmux.c:
+ * gst/mpegtsmux/gstbasetsmux.h:
+ * gst/mpegtsmux/gstbasetsmuxaac.c:
+ * gst/mpegtsmux/gstbasetsmuxaac.h:
+ * gst/mpegtsmux/gstbasetsmuxjpeg2000.c:
+ * gst/mpegtsmux/gstbasetsmuxjpeg2000.h:
+ * gst/mpegtsmux/gstbasetsmuxopus.c:
+ * gst/mpegtsmux/gstbasetsmuxopus.h:
+ * gst/mpegtsmux/gstbasetsmuxttxt.c:
+ * gst/mpegtsmux/gstbasetsmuxttxt.h:
+ * gst/mpegtsmux/gstmpegtsmux.c:
+ * gst/mpegtsmux/gstmpegtsmux.h:
+ * gst/mpegtsmux/gstmpegtsmuxplugin.c:
+ * gst/mpegtsmux/tsmux/tsmux.c:
+ * gst/mpegtsmux/tsmux/tsmux.h:
+ * gst/mpegtsmux/tsmux/tsmuxcommon.h:
+ * gst/mpegtsmux/tsmux/tsmuxstream.c:
+ * gst/mpegtsmux/tsmux/tsmuxstream.h:
+ mpegtsmux, mpegpsmux: remove GPL from choice of licenses and add SPDX license identifiers
+ Some people need to avoid inclusion of GPL code for their use cases and thus
+ get easily spooked by GPL license headers. This code is actually licensed
+ under different licenses, only one of which is GPL, and it's already possible
+ to just upgrade from LGPL to GPL anyway so having the GPL listed explicitly
+ as one of the choices doesn't really add anything. So remove GPL from the list
+ and also add SPDX license identifiers while we're at it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2539>
+
+2021-08-24 03:54:27 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi/gstmmdeviceenumerator.cpp:
+ * sys/wasapi/gstmmdeviceenumerator.h:
+ * sys/wasapi/gstwasapidevice.c:
+ * sys/wasapi/gstwasapidevice.h:
+ * sys/wasapi/gstwasapisink.c:
+ * sys/wasapi/gstwasapisink.h:
+ * sys/wasapi/gstwasapisrc.c:
+ * sys/wasapi/gstwasapisrc.h:
+ * sys/wasapi/gstwasapiutil.c:
+ * sys/wasapi/gstwasapiutil.h:
+ * sys/wasapi/meson.build:
+ * tests/check/elements/wasapi.c:
+ wasapideviceprovider: Add support for dynamic device add/remove
+ Adding IMMDeviceEnumerator::RegisterEndpointNotificationCallback
+ in order to support device monitoring.
+ On OnDeviceAdded(), OnDeviceRemoved(), and OnDefaultDeviceChanged()
+ callback, wasapi device provider implementation will enumerate
+ devices again and will notify newly added and removed device
+ via GstDeviceProvider API.
+ As a bonus point, this IMMDeviceEnumerator abstraction object
+ will spawn a dedicated internal COM thread, so various COM thread
+ related issues of WASAPI plugin can be resolved by this commit.
+ Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1649
+ Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1110
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2484>
+
+2021-02-01 16:21:59 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * tests/check/elements/openjpeg.c:
+ * tests/check/meson.build:
+ openjpeg: add unit test
+ Test various format supported with subframes.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
+
+2021-01-22 10:39:56 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/openjpeg/gstopenjpegdec.c:
+ * ext/openjpeg/gstopenjpegenc.c:
+ * gst/videoparsers/gstjpeg2000parse.c:
+ jpeg2000parse + openjpeg: Switch striped mode to its own caps
+ It's not compatible with any other element that use the non-striped
+ mode. In addition, in this mode, we require that every frame have the
+ same number of stripes or that the MARKER bit be present, which is
+ different from the other
+ formats too.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
+
+2020-12-23 11:03:34 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/openjpeg/gstopenjpegdec.c:
+ openjpegdec: Fix crash with AYUV64 in subframe mode
+ Remove useless generic fill_frame methods to use
+ the packed one for AYUV and AYUV64.
+ Fix gst-launch-1.0 -v videotestsrc !
+ video/x-raw,width=640,height=480,format=AYUV64 ! openjpegenc
+ num-stripes=8 ! openjpegdec max-threads=8 ! videoconvert !
+ autovideosink sync=false
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
+
+2020-04-24 16:15:42 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/openjpeg/gstopenjpeg.h:
+ * ext/openjpeg/gstopenjpegdec.c:
+ * ext/openjpeg/gstopenjpegdec.h:
+ openjpegdec: support for a multithreaded decoding.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
+
+2020-01-13 14:02:39 -0500 Aaron Boxer <aaron.boxer@collabora.com>
+
+ * ext/openjpeg/gstopenjpegdec.c:
+ * ext/openjpeg/gstopenjpegdec.h:
+ openjpegdec: enable sub frame mode
+ Rebuild output frame from multiple stripes input.
+ Keep the first frame and fill it with the following stripes to finish
+ a complete frame only once.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
+
+2020-12-22 18:19:40 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/mpegtsmux/gstmpegtsmux.c:
+ mpegtsmux: Require frame alignment for JPEG 2000
+ We have yet to implement stripe alignment with the required descriptor.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
+
+2020-12-22 18:15:52 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/openjpeg/gstopenjpegdec.c:
+ openjpegdec: Reject stripes for now
+ They're not implemented.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
+
+2020-12-22 18:20:35 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/openjpeg/gstopenjpegenc.c:
+ openjpegenc: Only allow stripe with image/x-jpc format
+ It's the only format that our MPEG-TS muxer allows and the carriage of
+ JPEG 2000 stripes is only defined for MPEG-TS as far as I know.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
+
+2020-04-21 20:56:03 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/openjpeg/gstopenjpeg.h:
+ * ext/openjpeg/gstopenjpegenc.c:
+ * ext/openjpeg/gstopenjpegenc.h:
+ openjpegenc: support for a multithreaded encoding.
+ This commit introduces a multithreaded encoder allowing
+ to encode mulitple stripes or subframes in separated threads.
+ This feature aims to enhance the overall latency of a codec
+ pipeline.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
+
+2021-09-18 12:02:15 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ wpe: context thread dispatch fixes
+ Use dedicated mutex/cond/flag for jobs being dispatched in the context thread.
+ The previous code was signalling the thread startup condition, which is wrong.
+ When WPEContextThread::dispatch() is invoked it means the thread has already
+ correctly been started up.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2533>
+
+2021-09-18 12:01:39 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ * ext/wpe/WPEThreadedView.h:
+ wpe: Properly wait on context thread startup condition
+ Fixes #1661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2533>
+
+2021-09-20 09:41:32 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ doc: Update kmssink caps cache
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2530>
+
+2021-09-17 16:21:39 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/kms/gstkmsutils.c:
+ kmssink: Add RGB16/BGR16 support
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2530>
+
+2021-09-17 16:14:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/kms/gstkmsutils.c:
+ kmssink: Sort format according to GST_VIDEO_FORMATS_ALL
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2530>
+
+2021-09-17 15:42:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/kms/gstkmsutils.c:
+ kmssink: Remove big endian format inversion
+ This has been a bad interpretation of the DRM docuemntation. The formats are
+ fixed regardless the CPU, but for some formats, they expressed in the opposite
+ order as GStreamer. Same change was done in waylandsink 2 years ago.
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/commit/b393b650ab9bfb9654fc116163ab331907216d74
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2530>
+
+2021-09-17 15:41:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/kms/gstkmsutils.c:
+ kmssink: Add NV61 support
+ This identically handled to NV16, so no reason not to inclue it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2530>
+
+2021-09-17 15:39:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/kms/gstkmsutils.c:
+ kmssink: Add NV24 support
+ This was tested on RK3566 platform, using vendor DRM driver.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2530>
+
+2021-09-18 00:33:12 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gstav1decoder.c:
+ * gst-libs/gst/codecs/gstav1decoder.h:
+ * sys/d3d11/gstd3d11av1dec.cpp:
+ * sys/va/gstvaav1dec.c:
+ codecs: av1decoder: Use GstFlowReturn everywhere
+ The same modification as that of VP8 decoder
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2528>
+
+2021-09-18 00:09:24 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gstvp9decoder.c:
+ * gst-libs/gst/codecs/gstvp9decoder.h:
+ * sys/d3d11/gstd3d11vp9dec.cpp:
+ * sys/nvcodec/gstnvvp9dec.c:
+ * sys/va/gstvavp9dec.c:
+ codecs: vp9decoder: Use GstFlowReturn everywhere
+ The same modification as that of VP8 decoder
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2528>
+
+2021-09-17 23:23:06 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gstvp8decoder.c:
+ * gst-libs/gst/codecs/gstvp8decoder.h:
+ * sys/d3d11/gstd3d11vp8dec.cpp:
+ * sys/nvcodec/gstnvvp8dec.c:
+ * sys/v4l2codecs/gstv4l2codecvp8dec.c:
+ * sys/va/gstvavp8dec.c:
+ codecs: vp8decoder: Use GstFlowReturn everywhere
+ boolean return value is not sufficient for representing the reason
+ of error in most cases. For instance, any errors around new_sequence()
+ would mean negotiation error, not just *ERROR*.
+ And some subclasses will allocate buffer/memory/surface on new_picture()
+ but it could be failed because of expected error, likely flushing
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2528>
+
+2021-08-16 18:15:42 +0300 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/mpegtsdemux/mpegtspacketizer.c:
+ mpegtspacketizer: memcmp potentially seen_before data
+ Theoretically the version number is incremented every time there's a new
+ section, but in a world of streaming we can't easily make that
+ assumption.
+ An example of a broken use case is when we're cat-ing two mpeg-ts files
+ together, which is equivalent of capturing a DVB stream while switching
+ channels. A set-top box would know that we switched the channels and
+ reset the demuxer, but in practice this might not happen.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2468>
+
+2021-09-20 11:35:51 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst-libs/gst/play/gstplay-media-info.c:
+ * gst-libs/gst/play/gstplay.c:
+ * gst-libs/gst/player/gstplayer-media-info.c:
+ * gst-libs/gst/player/gstplayer.c:
+ player: Fix/add various annotations
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2538>
+
+2021-09-18 18:07:43 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/va/meson.build:
+ meson: va: Make AV1 support always optional
+ Otherwise meson configure with -Dva=enabled will be failed
+ when installed libva version is < 1.8
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2532>
+
+2021-09-18 11:03:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvacaps.c:
+ va: caps: Don't use image formats for decoded frames.
+ Initially we tried to use the internal color conversion used in i965
+ and Gallium drivers when decoding. But this approach has showed
+ limitations and problems.
+ This patch removes completely the possible color conversion at
+ decoding, since it show problems with deinterlacing, for example:
+ gst-launch-1.0 filesrc location=interlaced.mpg2 ! parsebin ! vampeg2dec ! vadeinterlace ! xvimagesink
+ Allowing only the surface formats when decoding is more stable.
+ For color conversion is better to do it explicitly with vapostproc.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2531>
+
+2021-04-27 11:59:15 +0200 Marijn Suijten <marijns95@gmail.com>
+
+ * gst-libs/gst/player/gstplayer-media-info.c:
+ * gst-libs/gst/player/gstplayer.c:
+ player: Add missing nullable annotations
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2197>
+
+2021-04-27 11:58:58 +0200 Marijn Suijten <marijns95@gmail.com>
+
+ * gst-libs/gst/play/gstplay-media-info.c:
+ * gst-libs/gst/play/gstplay.c:
+ play: Add missing nullable annotations
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2197>
+
+2021-09-18 14:29:25 +0200 Fabian Orccon <cfoch.fabian@gmail.com>
+
+ * sys/shm/meson.build:
+ sys: shm: Define shm_enable and shm_deps before escape meson subdir
+ Fixes meson configure in tests if the shm plugin is disabled
+ Fixes #1664
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2534>
+
+2021-09-18 02:27:51 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videosink.cpp:
+ * sys/d3d11/gstd3d11window.cpp:
+ * sys/d3d11/gstd3d11window.h:
+ * sys/d3d11/gstd3d11window_win32.cpp:
+ d3d11videosink: Display title of content if possible
+ Update title text of window (currently it's always "Direct3D11 renderer")
+ when we are rendering on internal HWND, not external HWND.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2529>
+
+2021-09-18 01:32:11 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videosink.cpp:
+ d3d11videosink: Remove unused enum value
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2529>
+
+2021-09-15 13:59:17 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
+
+ * sys/msdk/gstmsdkenc.c:
+ msdkenc: Pass color properties to MediaSDK for encoding
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2523>
+
+2021-09-15 16:32:02 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
+
+ * sys/msdk/gstmsdkh265enc.c:
+ * sys/msdk/gstmsdkh265enc.h:
+ msdkh265enc: Add profile main10 still picture for hevc
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2524>
+
+2021-09-16 17:12:58 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * ext/wayland/gstwaylandsink.c:
+ * ext/wayland/wlbuffer.c:
+ waylandsink: Fix double render check
+ Our code does not support rendering twice the same wl_buffer in a row, so it
+ tries to skip that case, but for this it relied on the GstBuffer pointer,
+ while the cache actually works at the GstMemory level now. To avoid this
+ compare the GstWlBuffer instead.
+ This fixes crash when use in zero-copy with videorate element.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2526>
+
+2021-09-07 09:45:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/codecs/gstmpeg2decoder.c:
+ codecs: mpeg2decoder: Use tsg framerate for latency.
+ Latency setting relies on src pad caps, but they aren't set when the
+ function is called, and latency is never updated.
+ In order to fix it, this patch uses TSG framerate first, and if it's
+ not set yet, sinkpad caps are used to get the framerate.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2514>
+
+2021-09-16 00:59:37 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11av1dec.cpp:
+ * sys/d3d11/gstd3d11av1dec.h:
+ * sys/d3d11/gstd3d11decoder.cpp:
+ * sys/d3d11/gstd3d11decoder.h:
+ * sys/d3d11/gstd3d11h264dec.cpp:
+ * sys/d3d11/gstd3d11h264dec.h:
+ * sys/d3d11/gstd3d11h265dec.cpp:
+ * sys/d3d11/gstd3d11h265dec.h:
+ * sys/d3d11/gstd3d11mpeg2dec.cpp:
+ * sys/d3d11/gstd3d11mpeg2dec.h:
+ * sys/d3d11/gstd3d11vp8dec.cpp:
+ * sys/d3d11/gstd3d11vp8dec.h:
+ * sys/d3d11/gstd3d11vp9dec.cpp:
+ * sys/d3d11/gstd3d11vp9dec.h:
+ * sys/d3d11/plugin.cpp:
+ d3d11decoder: Refactor for more unified decoding flow
+ ... and various code cleanup.
+ * Move spreaded decoding API calls into one method
+ Previously, decoding flow of most codecs are
+ - Call DecoderBeginFrame() on start_picture()
+ - Call {Get,Release}DecoderBuffer() on decode_slice()
+ - Call SubmitDecoderBuffers() and DecoderEndFrame() on end_picture()
+ Such spreaded API calls make it hard to keep track of status
+ of decoding. Now it will be done at once in a new method.
+ * Drop a code for non-zero wBadSliceChopping
+ When bitstream buffer provided by driver is not sufficient
+ to write compressed bitstream data, host decoder needs to make use
+ of wBadSliceChopping so that driver can understand there are
+ multiple bitstream buffer. But it's a bit unrealistic and
+ not tested. Since FFMpeg's DXVA implemetaion doesn't support it,
+ we might be able to ignore the case for now.
+ * Make code more portable
+ Consider common logic of GstCodecs -> DXVA translation for all D3D APIs
+ (i,e., D3D9, D3D11, and D3D12).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2525>
+
+2021-09-15 23:41:39 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11av1dec.cpp:
+ * sys/d3d11/gstd3d11decoder.cpp:
+ * sys/d3d11/gstd3d11decoder.h:
+ * sys/d3d11/gstd3d11h264dec.cpp:
+ * sys/d3d11/gstd3d11h265dec.cpp:
+ * sys/d3d11/gstd3d11mpeg2dec.cpp:
+ * sys/d3d11/gstd3d11vp8dec.cpp:
+ * sys/d3d11/gstd3d11vp9dec.cpp:
+ d3d11decoder: Remove duplicated class_init and property related code
+ Move them into the decoder helper code to remove duplication
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2525>
+
+2021-09-11 00:43:26 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11av1dec.cpp:
+ * sys/d3d11/gstd3d11compositor.cpp:
+ * sys/d3d11/gstd3d11compositorbin.cpp:
+ * sys/d3d11/gstd3d11converter.cpp:
+ * sys/d3d11/gstd3d11deinterlace.cpp:
+ * sys/d3d11/gstd3d11desktopdup.cpp:
+ * sys/d3d11/gstd3d11desktopdupsrc.cpp:
+ * sys/d3d11/gstd3d11h264dec.cpp:
+ * sys/d3d11/gstd3d11h265dec.cpp:
+ * sys/d3d11/gstd3d11mpeg2dec.cpp:
+ * sys/d3d11/gstd3d11overlaycompositor.cpp:
+ * sys/d3d11/gstd3d11pluginutils.cpp:
+ * sys/d3d11/gstd3d11shader.cpp:
+ * sys/d3d11/gstd3d11videoprocessor.cpp:
+ * sys/d3d11/gstd3d11vp8dec.cpp:
+ * sys/d3d11/gstd3d11vp9dec.cpp:
+ * sys/d3d11/gstd3d11window.cpp:
+ * sys/d3d11/gstd3d11window_corewindow.cpp:
+ * sys/d3d11/gstd3d11window_dummy.cpp:
+ * sys/d3d11/gstd3d11window_swapchainpanel.cpp:
+ * sys/d3d11/gstd3d11window_win32.cpp:
+ * sys/d3d11/meson.build:
+ * sys/d3d11/plugin.cpp:
+ d3d11: Get rid of "extern "C"" wrapping for GST_DEBUG_CATEGORY_EXTERN
+ Instead, change the file defining debug category to cpp
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2525>
+
+2020-06-30 11:15:43 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * ext/closedcaption/meson.build:
+ * tests/check/meson.build:
+ tests: skip cc tests if plugin is disabled
+ Skip the closedcaption element tests if the
+ closedcaption option is disabled at compile
+ time (i.e. -Dclosedcaption=disabled).
+ v2: rename pangocairo_dep to avoid conflict
+ with later definition in ext/ttml/meson.build
+ as suggested by @tpm.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1388>
+
+2021-08-31 17:16:05 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264dec: Check bumping again after inserting current picture.
+ In order to get the lowest latency, we can add another bumping check after
+ inserting the current picture into the DPB immediately. That can avoid
+ waiting for another decoding circle of the next frame and so the latency
+ is lower.
+ Fix: #1628
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2501>
+
+2021-08-31 17:37:11 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264picture.c:
+ codecs: h264: Add protection to to_insert picture in bump check.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2501>
+
+2021-08-31 16:39:06 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264dec: Improve the policy to infer max_num_reorder_frames.
+ The max_num_reorder_frames number can change the way we bumping the
+ pictures in the DPB. The smaller it is, the lower latency we will
+ get. So it is important for live mode streams, but it is not given
+ in VUI parameters sometimes. We now improve the policy to infer it:
+ 1. Never guess it in the "strict" compliance.
+ 2. For baseline and constrained baseline profiles, which do not have
+ B frames, set it to 0.
+ 3. For -intra only profiles, set it to 0.
+ 4. Otherwise, not guess it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2501>
+
+2021-09-14 20:57:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * ext/aes/meson.build:
+ * tests/check/meson.build:
+ tests: skip aes test if elements not built
+ In ext/aes/meson.build, the aes_dep will return
+ not-found if -Daes=disabled, regardless of whether
+ openssl is found or not. Thus, we don't need a
+ separate check for the option. This will also
+ ensure that aes_dep is always defined and we can
+ use it in the tests/check/meson.build unit.
+ Fixes #1660
+ v2: handle -Daes=disabled, too.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2522>
+
+2021-08-31 17:33:02 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/wpe/gstwpesrcbin.cpp:
+ wpe: Add support for web:// URIs
+ The CEF source already supports this. No good reason for wpesrc not too ;)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2503>
+
+2021-07-23 23:38:22 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvah264dec.c:
+ va: h264dec: Try to use ConstrainedBaseline or Main to decode BaseLine.
+ In the h264, the Baseline profile is widely misused. A lot of streams declare
+ that they are the Baseline, but in fact they just conform to ConstrainedBaseline.
+ The features such as FMO and ASO are not used at all.
+ If the decoder does not strictly conforms to the SPEC, we can just use Baseline
+ or Main profile to decode it to avoid lots of streams failure.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2428>
+
+2021-07-28 23:19:15 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264dec: Improve the fast bump for the live mode.
+ We control the policy of fast bump by the profile and the compliance
+ property. For baseline and constrained baseline profiles, we can use
+ more radical bump policy. User can also change the bump policy by
+ setting the compliance property in run time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2432>
+
+2021-07-28 22:48:21 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264picture.c:
+ * gst-libs/gst/codecs/gsth264picture.h:
+ codecs: h264: Change the low_latency to an enum for dpb_needs_bump().
+ The bool parameter of low_latency is not enough. We have multi policies for
+ low latency bumping, from the safest to something radical. So we need an enum
+ to represent the proper latency requirement.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2432>
+
+2021-07-26 16:09:19 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264decoder.h:
+ codecs: h264dec: Add a compliance property to control behavior.
+ Some features such as the low-latency DPB bumping and mapping the
+ baseline profile as the constrained-baseline profile do not conform
+ to the H264 offical spec. But in practice, they are very useful and
+ are widely needed. We add this compliance property to control the
+ behavior of the decoder, make it fit more requirement.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2432>
+
+2021-09-12 12:23:36 +0100 Philippe Normand <philn@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ docs: Update cache
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2521>
+
+2021-09-07 10:55:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * sys/va/gstvafilter.c:
+ va: Update vapostproc documentation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495>
+
+2021-09-07 10:16:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvah264dec.c:
+ * sys/va/gstvavpp.c:
+ va: Update todo lists, removing deinterlacing.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495>
+
+2021-08-23 11:24:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * sys/va/gstvadeinterlace.c:
+ * sys/va/gstvadeinterlace.h:
+ * sys/va/meson.build:
+ * sys/va/plugin.c:
+ Add vadeinterlace element.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495>
+
+2021-08-24 13:53:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ * sys/va/gstvafilter.h:
+ va: filter: Add past and future frames in GstVaSample.
+ And add them in the pipeline structure if they are provided.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495>
+
+2021-08-24 13:33:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ * sys/va/gstvafilter.h:
+ va: filter: Add gst_va_filter_add_deinterlace_buffer()
+ This function decorates gst_va_filter_add_filter_buffer() to get the
+ number of past and future frames to hold, given the method.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495>
+
+2020-12-21 18:17:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ * sys/va/gstvafilter.h:
+ va: filter: Add deinterlacing method parameter.
+ For exposing that gobject parameter a new helper function is added:
+ gst_va_filter_install_deinterlace_properties()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495>
+
+2021-08-23 16:29:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ va: filter: Protect filters array of overwrite.
+ It's possible to modify the filters array from another GStremer
+ thread, and the post-processing operation is not atomic, so the filter
+ array is reffed while the VA pipeline is processed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495>
+
+2021-08-23 15:24:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ va: filter: Add helper function to query pipeline caps.
+ This function is going to be shared for future deinterlace filter
+ processing.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495>
+
+2021-08-23 15:16:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ va: filter: Shuffle _destroy_filters_unlocked().
+ In order to put it near to its caller.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495>
+
+2021-08-10 17:55:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ * sys/va/gstvavpp.h:
+ * sys/va/plugin.c:
+ vapostproc: Move up color balance detection to plugin.
+ In order to install the color balance interface, a GstVaFilter is
+ instantiated and queried to know if it supports color balance
+ filter. It was done just after the GObject was registered. Now, it's
+ done before.
+ The reason of this change is that deinterlace element has to be
+ registered only if deinterlace filter is available, using only one
+ instantiate of GstVaFilter.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495>
+
+2021-09-07 11:35:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * sys/va/gstvabasetransform.c:
+ va: basetransform: Update documentation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495>
+
+2021-09-09 18:26:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvabasetransform.h:
+ va: basetransform: Add autoptr clean up function.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495>
+
+2021-08-23 18:44:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvabasetransform.c:
+ va: basetransform: Use copy_metadata() at buffer import.
+ Instead of using only gst_buffer_copy_into() use copy_metadata()
+ vmethod to copy what's needed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495>
+
+2021-08-23 10:40:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ vapostproc: don't chain up transform_meta()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2495>
+
+2021-07-29 12:20:30 -0300 Daniel Almeida <daniel.almeida@collabora.com>
+
+ * gst-libs/gst/codecs/gstvp9statefulparser.c:
+ codecs: gstvp9statefulparser: feature_data should be 0 if feature_enable is 0
+ The spec says in 6.2.11 that feature_data[i][j] should be zero if
+ feature_enabled[i][j] is zero. Instead we retained the old value in the parser.
+ Fix it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2449>
+
+2021-09-08 05:28:22 +0200 Marek Vasut <marex@denx.de>
+
+ * gst-libs/gst/codecparsers/gsth264parser.c:
+ gsth264parser: Fix handling of NALs with emulation byte set
+ In case a set of NALs with emulation_prevention_three_byte is decoded using
+ hardware decoder like Hantro G1, wrong struct v4l2_ctrl_h264_decode_params
+ .dec_ref_pic_marking_bit_size is passed into the kernel, which results in
+ decoding artifacts. Subtract the number of emulation three bytes from the
+ .dec_ref_pic_m->bit_size to get the correct bit size and avoid having these
+ artifacts. Apply the exact same fix to slice->pic_order_cnt_bit_size as well.
+ The following NALs (7, 8, 6, 5) decode with artifacts,
+ .dec_ref_pic_marking_bit_size is set to 10 without this patch.
+ 00000000 00 00 00 01 27 4d 00 20 89 8b 60 3c 04 bf 2e 02 |....'M. ..`<....|
+ 00000010 d4 18 04 18 c0 c0 01 77 00 00 5d c1 7b df 05 00 |.......w..].{...|
+ 00000020 00 00 01 28 ee 1f 20 00 00 01 06 05 10 b9 ed b9 |...(.. .........|
+ 00000030 30 5d 21 4b 71 83 71 2c 10 a3 14 bb 29 80 00 00 |0]!Kq.q,....)...|
+ 00000040 01 25 b8 00 05 00 00 03 03 7f fa 78 1e e7 fd fe |.%.........x....|
+ ^^^^^^^^^^^^--- emulation 3 byte
+ 00000050 b4 62 7a 31 ff 7d 81 fd 26 d8 62 b6 d6 25 46 ae |.bz1.}..&.b..%F.|
+ The following NALs (7, 8, 6, 5) decode fine,
+ .dec_ref_pic_marking_bit_size is set to 2 without this patch.
+ 00000000 00 00 00 01 27 4d 00 20 89 8b 60 3c 04 bf 2e 02 |....'M. ..`<....|
+ 00000010 d4 18 04 18 c0 c0 01 77 00 00 5d c1 7b df 05 00 |.......w..].{...|
+ 00000020 00 00 01 28 ee 1f 20 00 00 01 06 05 10 b9 ed b9 |...(.. .........|
+ 00000030 30 5d 21 4b 71 83 71 2c 10 a3 14 bb 29 80 00 00 |0]!Kq.q,....)...|
+ 00000040 01 25 b8 00 04 c0 00 03 7f fa 78 1e e7 fd fe b4 |.%........x.....|
+ 00000050 62 7a 31 ff 7d 81 fd 26 d8 62 b6 d6 25 46 ae ce |bz1.}..&.b..%F..|
+ Fixes: d0d65fa875 ("codecparsers: h264: record dec_ref_pic_marking() size")
+ Fixes: 0cc7d6f093 ("codecparsers: h264: record pic_order_cnt elements size")
+ Signed-off-by: Marek Vasut <marex@denx.de>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2517>
+
+2021-09-03 14:57:09 -0400 Aaron Boxer <aaron.boxer@collabora.com>
+
+ * gst-libs/gst/codecparsers/gsth264parser.c:
+ gsth264parser: reject memory management control op greater than 6
+ This prevents assertion from being thrown in
+ gst_h264_dpb_perform_memory_management_control_operation
+ if corrupt NAL has a control op greater than 6
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2508>
+
+2021-08-24 09:59:59 +0000 Ung, Teng En <teng.en.ung@intel.com>
+
+ * sys/msdk/gstmsdk.c:
+ * sys/msdk/gstmsdkav1dec.c:
+ * sys/msdk/gstmsdkdec.c:
+ * sys/msdk/gstmsdkenc.c:
+ * sys/msdk/gstmsdkh264dec.c:
+ * sys/msdk/gstmsdkh264enc.c:
+ * sys/msdk/gstmsdkh265dec.c:
+ * sys/msdk/gstmsdkh265enc.c:
+ * sys/msdk/gstmsdkmjpegdec.c:
+ * sys/msdk/gstmsdkmjpegenc.c:
+ * sys/msdk/gstmsdkmpeg2dec.c:
+ * sys/msdk/gstmsdkmpeg2enc.c:
+ * sys/msdk/gstmsdkvc1dec.c:
+ * sys/msdk/gstmsdkvp8dec.c:
+ * sys/msdk/gstmsdkvp9dec.c:
+ * sys/msdk/gstmsdkvp9enc.c:
+ * sys/msdk/gstmsdkvpp.c:
+ * sys/msdk/msdk.c:
+ * sys/msdk/msdk.h:
+ msdk: Adjust the plugin and factories description based on MFX_VERSION.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2485>
+
+2021-09-08 17:32:30 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst-libs/gst/vulkan/xcb/gstvkdisplay_xcb.c:
+ vulkan: don't link to XOpenDisplay in documentation
+ hotdoc doesn't know about that symbol
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2518>
+
+2021-08-30 23:26:39 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/mpeg2enc/gstmpeg2enc.cc:
+ * ext/mpeg2enc/gstmpeg2enc.hh:
+ * ext/mpeg2enc/gstmpeg2encpicturereader.cc:
+ mpeg2enc: Only allow 1 pending frame for encoding
+ Having an unlimited input queue is very bad if the
+ encoder can't run at real-time. Eventually it will
+ consume all RAM. I don't really see any reason to
+ have more than 1 outstanding encoded frame, so
+ remove the queue and limit things to 1 pending frame.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2499>
+
+2021-09-01 17:35:45 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/wpe-extension/gstwpeaudiosink.c:
+ wpe: Fix race condition on teardown
+ There was a race when going to PAUSED while pushing a buffer to the
+ pipeline process (where we weren't even cancelling anything).
+ This rework base all the cancellation around the GCancellable
+ "cancelled" signal trying to ensure that the streaming thread will not
+ block once a cancel operation happens.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2504>
+
+2021-09-01 17:26:04 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/gstwpesrcbin.cpp:
+ wpe: Use the new element.get_current_running_time API
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2504>
+
+2021-09-01 17:24:45 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/gstwpesrcbin.cpp:
+ wpe: Mark first buffer as starting at 0
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2504>
+
+2021-09-02 22:06:52 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/videoparsers/gstvideoparseutils.c:
+ videoparseutils: Fix for wrong CEA708 minimum size check
+ The minimum possible size of valid CEA708 data is 3 bytes, not 7 bytes
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2505>
+
+2021-08-29 11:04:17 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/wpe/gstwpevideosrc.cpp:
+ wpevideosrc: Uniformise default value for draw-background property
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2498>
+
+2021-08-29 10:30:53 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/wpe/gstwpevideosrc.cpp:
+ wpevideosrc: Implement basic heuristic for raw caps negotiation
+ Before this patch raw caps could be negotiated already with a capsfilter, but in
+ cases where wpesrc is being auto-plugged this approach can't be used.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2498>
+
+2021-08-29 10:28:57 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/wpe/gstwpevideosrc.cpp:
+ wpevideosrc: Ensure debug category is set
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2498>
+
+2021-07-15 21:10:14 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * ext/closedcaption/gstcccombiner.c:
+ cccombiner: fix scheduling with interlaced video buffers
+ The initial code was written with the misunderstanding that
+ IS_TOP_FIELD indicated that an interlaced buffer contained
+ a top field, not that it contained only a top field
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2413>
+
+2021-08-27 15:41:32 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/kms/gstkmssink.c:
+ Revert "kmssink: Fix fallback path for driver not able to scale scenario"
+ This reverts commit d2a7b763bef3ca51f0c84cdac52eeed85b0db8fb.
+ After this change, non-scaled rendered were not centred as expected.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2496>
+
+2021-08-20 13:28:51 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
+
+ * gst-libs/gst/codecs/gstav1decoder.c:
+ codecs: av1dec: Fix to output frame with highest spatial layer
+ During the output process, if there are multiple frames in a TU (i.e. multi-spatial
+ layers case), only one frame with the highest spatial layer id should be selected
+ according to av1 spec. The highest spatial layer id is obtained from idc value of
+ the operating point.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2475>
+
+2021-08-24 14:33:42 +0100 Alex Ashley <bugzilla@ashley-family.net>
+
+ * ext/dash/gstxmlhelper.c:
+ * tests/check/elements/dash_mpd.c:
+ dashdemux: copy ContentProtection element including xml namespaces
+ Commit bc09d8cc changed gstmpdparser to put the entire
+ <ContentProtection> element in the "value" field, so that DRMs
+ other than PlayReady could make use of the data inside this
+ element.
+ However, the data in the "value" field does not include any
+ XML namespace declarations that are used within the element. This
+ causes problems for a namespace aware XML parser that wants to
+ make use of this data.
+ This commit modifies the way the XML is converted to a string
+ so that XML namespaces are preserved in the output.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2487>
+
+2021-08-26 21:26:01 +0300 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/debugutils/gsterrorignore.c:
+ * gst/debugutils/gsterrorignore.h:
+ errorignore: Add ignore-eos mode
+ It's otherwise very complicated to ignore GST_FLOW_EOS without a
+ ghostpad's chain function to rewrite.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2492>
+
+2021-08-27 17:25:04 +1000 Brad Hards <bradh@frogmouth.net>
+
+ * gst-libs/gst/codecparsers/gsth264parser.c:
+ gsth264parser: fix typo in debug message
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2493>
+
+2021-08-26 04:12:07 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/timecode/gsttimecodestamper.c:
+ * gst/timecode/gsttimecodestamper.h:
+ timecodestamper: add support for closedcaption input
+ Some closedcaption elements like sccenc except input buffers
+ to have timecode metas. The original use case is to serialize
+ closed captions extracted from a video stream, in that case
+ ccextractor copies the video time code metas to the closed
+ caption buffers, but no such mechanism exists when creating
+ a CC stream ex nihilo.
+ Remedy that by having timecodestamper accept closedcaption
+ input caps, as long as they have a framerate.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2490>
+
+2021-07-06 12:31:42 -0400 Aaron Boxer <aaron.boxer@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/aes/gstaes.c:
+ * ext/aes/gstaesdec.c:
+ * ext/aes/gstaesdec.h:
+ * ext/aes/gstaesenc.c:
+ * ext/aes/gstaesenc.h:
+ * ext/aes/gstaeshelper.c:
+ * ext/aes/gstaeshelper.h:
+ * ext/aes/meson.build:
+ * ext/meson.build:
+ * meson_options.txt:
+ * tests/check/elements/aesdec.c:
+ * tests/check/elements/aesenc.c:
+ * tests/check/meson.build:
+ aes: add aes encryption and decryption elements
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1505>
+
+2021-05-10 12:02:20 +0200 Johan Sternerup <johast@axis.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Return typed "sctp-transport"
+ With GstWebRTCSCTPTransport type exposed we can now define
+ "sctp-transport" property as being of this type.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2214>
+
+2021-05-07 08:12:25 +0200 Johan Sternerup <johast@axis.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/gstwebrtcbin.h:
+ * ext/webrtc/meson.build:
+ * ext/webrtc/webrtcdatachannel.c:
+ * ext/webrtc/webrtcdatachannel.h:
+ * ext/webrtc/webrtcsctptransport.c:
+ * ext/webrtc/webrtcsctptransport.h:
+ * gst-libs/gst/webrtc/meson.build:
+ * gst-libs/gst/webrtc/sctptransport.c:
+ * gst-libs/gst/webrtc/sctptransport.h:
+ * gst-libs/gst/webrtc/webrtc-priv.h:
+ * gst-libs/gst/webrtc/webrtc_fwd.h:
+ webrtc: Split sctptransport into lib and implementation parts
+ GstWebRTCSCTPTransport is now made into into an abstract base class
+ that only contains property specifications matching the
+ RTCSctpTransport interface of the W3C WebRTC specification, see
+ https://w3c.github.io/webrtc-pc/#rtcsctptransport-interface. This
+ class is put into the WebRTC library to expose it for applications and
+ to allow for generation of bindings for non-dynamic languages using
+ GObject introspection.
+ The actual implementation is moved to the subclass WebRTCSCTPTransport
+ located in the WebRTC plugin.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2214>
+
+2021-05-03 10:45:42 +0200 Johan Sternerup <johast@axis.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Expose SCTP Transport
+ Being able to access the SCTP Transport object from the application
+ means the application can access the associated DTLS Transport object
+ and its ICE Transport object. This means we can observe the ICE state
+ also for a data-channel-only session. The collated
+ ice-connection-state on webrtcbin only includes the ICE Transport
+ objects that resides on the RTP transceivers (which is exactly how it
+ is specified in
+ https://w3c.github.io/webrtc-pc/#rtciceconnectionstate-enum).
+ For the consent freshness functionality (RFC 7675) to work the ICE
+ state must be accessible and consequently the SCTP transport must be
+ accessible for enabling consent freshness checking for a
+ data-channel-only session.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2214>
+
+2021-04-20 20:04:33 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/openh264/gstopenh264enc.cpp:
+ openh264enc: fix broken header AU emission by base class
+ This encoder advertises alignment=au as output format, which means
+ each output frame should contain a full decodable access unit.
+ The video encoder base class is not aware of our output alignment
+ and will output spurious buffers with just the SPS/PPS inside when
+ we call gst_video_encoder_set_headers(), which is broken because
+ each buffer is supposed to contain a full decodable access unit
+ in our case.
+ Just don't tell the base class about our headers, they will be
+ sent at the beginning of each IDR frame anyway.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2178>
+
+2021-04-20 19:43:53 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/openh264/gstopenh264enc.cpp:
+ openh264enc: fix caps and header buffer leak
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2178>
+
+2021-04-20 19:11:12 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/openh264/gstopenh264enc.cpp:
+ openh264enc: fix broken sps/pps header generation
+ This was putting a truncated SPS into the initial header instead
+ of the PPS because it was always reading from the beginning of the
+ bitstream buffer (pBsBuf) and not from the offset where the current
+ NAL is at in the bitstream buffer (psBsBuf + nal_offset).
+ This was broken in commit 17113695.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1576
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2178>
+
+2021-08-22 00:33:58 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11bufferpool.cpp:
+ * gst-libs/gst/d3d11/gstd3d11bufferpool.h:
+ * sys/d3d11/gstd3d11compositor.cpp:
+ * sys/d3d11/gstd3d11convert.cpp:
+ * sys/d3d11/gstd3d11decoder.cpp:
+ * sys/d3d11/gstd3d11deinterlace.cpp:
+ * sys/d3d11/gstd3d11desktopdupsrc.cpp:
+ * sys/d3d11/gstd3d11download.cpp:
+ * sys/d3d11/gstd3d11upload.cpp:
+ * sys/d3d11/gstd3d11videosink.cpp:
+ * sys/mediafoundation/gstmfvideoenc.cpp:
+ d3d11bufferpool: Hide buffer_size field from header
+ User can get the required buffer size by using buffer pool config.
+ Since d3d11 implementation is a candidate for public library in the future,
+ we need to hide everything from header as much as possible.
+ Note that the total size of allocated d3d11 texture memory by GPU is not
+ controllable factor. It depends on hardware specific alignment/padding
+ requirement. So, GstD3D11 implementation updates actual buffer size
+ by allocating D3D11 texture, since there's no way to get CPU accessible
+ memory size without allocating real D3D11 texture.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2482>
+
+2021-08-21 02:20:11 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/nvcodec/cuda-converter.c:
+ * sys/nvcodec/gstcudaconvert.c:
+ * sys/nvcodec/gstnvbaseenc.c:
+ * sys/nvcodec/gstnvdec.c:
+ * sys/nvcodec/gstnvdecoder.c:
+ * sys/nvcodec/gstnvenc.c:
+ * sys/nvcodec/gstnvenc.h:
+ nvcodec: Fix various typos
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2481>
+
+2021-08-21 02:10:37 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/nvcodec/cuda-converter.h:
+ * sys/nvcodec/gstcudacontext.h:
+ * sys/nvcodec/gstcudafilter.h:
+ * sys/nvcodec/gstcudaloader.h:
+ * sys/nvcodec/gstcudanvrtc.h:
+ * sys/nvcodec/gstcudautils.h:
+ * sys/nvcodec/gstcuvidloader.h:
+ * sys/nvcodec/gstnvbaseenc.h:
+ * sys/nvcodec/gstnvenc.h:
+ * sys/nvcodec/gstnvh264dec.h:
+ * sys/nvcodec/gstnvh264enc.h:
+ * sys/nvcodec/gstnvh265dec.h:
+ * sys/nvcodec/gstnvh265enc.h:
+ * sys/nvcodec/gstnvrtcloader.h:
+ nvcodec: Get rid of G_GNUC_INTERNAL
+ Our default symbol visibility is hidden, so G_GNUC_INTERNAL
+ is pointless
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2481>
+
+2021-08-19 16:45:18 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ v4l2codecs: h264: Fix split field handling
+ Split fields ends up on multiple picture and requires accessing the
+ other_field to complete the information (POC).
+ This also cleanup the DPB from non-reference (was not useful) and skips
+ properly merge field instead of keeping them duplicated. This fixes most
+ of interlace decoding seen in fluster.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2474>
+
+2021-08-19 11:40:22 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ v4l2codec: h264: Implement support for split fields
+ When a frame is composed of two fields, the base class now split the
+ picture in two. In order to support this, we need to ensure that picture
+ buffer is held in VB2 queue so that the second field get decoded into
+ it. This also implements the new_field_picture() virtual and sets the
+ previous request on the new picture.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2474>
+
+2021-08-20 11:23:57 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ v4l2codecs: h264: Fix filling weight factors
+ This was a typo, the wrong index was used to set l1 weight (b-frames).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2480>
+
+2021-08-20 14:34:53 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/dash/gstdashdemux.c:
+ dashdemux: Properly initalize GError
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2476>
+
+2021-08-19 21:56:05 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfsourcereader.cpp:
+ * sys/mediafoundation/gstmfutils.cpp:
+ * sys/mediafoundation/gstmfutils.h:
+ mfvideosrc: Fix for negative MF stride
+ Negative stride value can be used in MediaFoundation to inform
+ whether memory layout is top-down or bottom-up manner. Note that
+ negative stride is allowed only for RGB, system memory.
+ See also
+ https://docs.microsoft.com/en-us/windows/win32/medfound/image-stride
+ Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1646
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2473>
+
+2021-08-18 11:14:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ v4l2slh264dec: Fix slice header bit size calculation
+ The emulation bytes need to be removed as bytes, not bit. This fixes
+ decoding issues with files that have emulation bytes with the Cedrus
+ driver.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2471>
+
+2021-08-12 14:08:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * tests/examples/va/multiple-vpp.c:
+ example: va: Add skin tone enhancement.
+ If camera is used as input stream and skin tone parameter is available
+ in vapostproc, and no random changes are enabled, the skin tone will
+ be enabled.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2470>
+
+2021-08-17 14:04:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ vapostproc: Use vapostproc as debug category name.
+ Otherwise is difficult to remember the different name.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2470>
+
+2021-08-12 13:54:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * tests/examples/va/multiple-vpp.c:
+ examples: va: Add random cropping.
+ And remove unused caps filter.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2443>
+
+2021-07-28 13:04:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ vapostproc: Disable cropping in pass-through mode.
+ Originally, if a buffer arrives with crop meta but downstream doesn't
+ handle crop allocation meta, vapostproc tried to reconfigure itself to
+ non pass-through mode automatically. Sadly, this behavior was based on
+ the wrong assumption that propose_allocation() vmethod would bring
+ downstream allocation query, but it is not.
+ Now, if vapostproc is in pass-through mode, the cropping is passed to
+ downstream. Pass-through mode can be disabled via a parameter.
+ Finally, if pass-through mode isn't enabled, it's assumed the buffer
+ is going to be processed and, if cropping, downstream already
+ negotiated the cropped frame size, thus it's required to do the
+ cropping inside vapostproc to avoid artifacts because of the size of
+ downstream allocated buffers.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2443>
+
+2021-08-17 14:54:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ vapostproc: Update filters update_properties().
+ Right after instantiating the VA filter and changing the element
+ state, rebuild the image filters.
+ This will fix a regression from f20b3b815, where properties in a
+ gst-launch pipeline are not applied.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2443>
+
+2021-08-18 09:13:45 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * sys/decklink/gstdecklinkvideosrc.cpp:
+ decklinkvideosrc: Fix PAL/NTSC widescreen autodetection when switching back to non-widescreen
+ Previously it would only switch to widescreen but never back.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2469>
+
+2021-07-20 18:15:11 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
+
+ * sys/msdk/gstmsdkvpp.c:
+ msdkvpp: Fix frc from lower fps to higher fps
+ There are three framerate conversion algorithms described in
+ <https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md>,
+ interpolation is not implemented so far and thus distributed timestamp algorihtm
+ is considered to be more practical which evenly distributes output timestamps
+ according to output framerate. In this case, newly generated frames are inserted
+ between current frame and previous one, timestamp is calculated by msdk API.
+ This implementation first pushes newly generated buffers(outbuf_new) forward and
+ the current buffer(outbuf) is handled at last round by base transform automatically.
+ A flag "create_new_surface" is used to indicate if new surfaces have been generated
+ and then push new outbuf forward accordingly.
+ Considering the upstream element may not be the msdk element, it is necessary to
+ always set the input surface timestamp as same as input buffer's timestamp and
+ convert it to msdk timestamp.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2418>
+
+2021-05-06 22:22:12 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtc: improve matching on the correct jitterbuffer
+ The mapping between an RTP session and the SDP m= line is not always the
+ same, especially when BUNDLEing is used.
+ This causes a failure in a specific case where if when bundling,
+ if mline 0 is a data channel, and mline 1 an audio/video section,
+ then retrieving the transceiver at mline 0 (rtp session used) will fail
+ and cause an assertion.
+ This fix is actually potentially a regression for cases where the remote
+ part does not provide the a=ssrc: media level SDP attributes as is now
+ becoming common, especially when simulcast is involved.
+ The correct fix actually requires reading out header extensions as used
+ with bundle for signalling in the actual data, what media and therefore
+ transceiver is being used.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2467>
+
+2021-08-16 13:45:39 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/va/gstvadisplay.h:
+ * sys/va/gstvaav1dec.c:
+ * sys/va/gstvabasedec.c:
+ * sys/va/gstvacaps.c:
+ * sys/va/gstvafilter.c:
+ * sys/va/gstvah264dec.c:
+ * sys/va/gstvah265dec.c:
+ * sys/va/gstvampeg2dec.c:
+ * sys/va/gstvavp8dec.c:
+ * sys/va/gstvavp9dec.c:
+ * sys/va/gstvavpp.c:
+ va: Use GST_CAPS_FEATURE_MEMORY_VA to replace "memory:VAMemory".
+ "memory:VAMemory" is a commonly used string which notates our VA-kind
+ memory type. We now used a definition in va lib to replace the simply
+ string usage.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2466>
+
+2021-08-16 13:32:51 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvacaps.c:
+ * sys/va/gstvafilter.c:
+ va: Use MEMORY_DMABUF definition to replace "memory:DMABuf" strings.
+ GST_CAPS_FEATURE_MEMORY_DMABUF is already a common definition, we should
+ just use it rather than use the "memory:DMABuf" strings by ourselves.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2466>
+
+2021-08-09 19:02:56 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/fdkaac/gstfdkaacenc.c:
+ fdkaacdec: Add Converter class to hint gst-validate
+ fdkaacdec have minimal conversion capability, adding the Converter class allow
+ gst-validate to behave properly and not spit an error when it notice that the
+ number of channels or rate miss-match in and out.
+ Same logic as with opusdec, see: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1142>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2462>
+
+2021-06-09 23:29:43 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/plugin.c:
+ wasapi2: Increase rank to primary + 1
+ wasapi2 plugin should be preferred than old wasapi plugin if available because:
+ * wasapi2 supports automatic stream routing, and it's highly recommended
+ feature for application by MS. See also
+ https://docs.microsoft.com/en-us/windows/win32/coreaudio/automatic-stream-routing
+ * This implementation must be various COM threading issue free by design
+ since wasapi2 plugin spawns a new dedicated COM thread and all COM objects'
+ life-cycles are managed correctly.
+ There are unsolved COM issues around old wasapi plugin. Such issues are
+ very tricky to be solved unless old wasapi plugin's threading model
+ is re-designed.
+ Note that, in case of UWP, wasapi2 plugin's rank is primary + 1 already
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2314>
+
+2021-08-12 20:39:24 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * ext/closedcaption/gstccconverter.c:
+ ccconverter: fix overflow when not doing framerate conversion
+ When converting from one framerate to another, counters are
+ reset periodically, however when not converting they never are
+ and can_genearte_output ends up making overflow-prone calculations
+ with large values for input_frames and output_frames.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2465>
+
+2021-08-12 15:26:27 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Don't assume that non-audio medias are video medias when creating transceivers
+ And print the unknown media kind in the logs.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2464>
+
+2021-08-12 15:25:50 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Use the correct media for deciding the media kind when creating the transceiver from the SDP
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2464>
+
+2021-07-29 21:30:32 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264dec: Output the picture directly if already a frame.
+ We forget one case that is the frame and field pictures may be mixed
+ together. For this case, the dpb is interlaced while the last picture
+ may be a complete frame. We do not need to cache that complete picture
+ and should output it directly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2448>
+
+2021-08-06 17:11:55 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvacaps.c:
+ va: caps: Make the template raw video caps classified by features.
+ The current output of raw video caps is not good. When we have multi
+ profiles and each profile support different formats, the output of
+ gst-inspect may like:
+ SRC template: 'src'
+ Availability: Always
+ Capabilities:
+ video/x-raw(memory:VAMemory)
+ width: [ 1, 16384 ]
+ height: [ 1, 16384 ]
+ format: NV12
+ video/x-raw
+ width: [ 1, 16384 ]
+ height: [ 1, 16384 ]
+ format: NV12
+ video/x-raw(memory:VAMemory)
+ width: [ 1, 16384 ]
+ height: [ 1, 16384 ]
+ format: P010_10LE
+ video/x-raw
+ width: [ 1, 16384 ]
+ height: [ 1, 16384 ]
+ format: P010_10LE
+ video/x-raw(memory:VAMemory)
+ width: [ 1, 16384 ]
+ height: [ 1, 16384 ]
+ format: P012_LE
+ video/x-raw
+ width: [ 1, 16384 ]
+ height: [ 1, 16384 ]
+ format: P012_LE
+ The gst_caps_simplify does not classify the caps by same features, but
+ just leave them interweaved. We need to handle them manually here, the
+ result should be:
+ SRC template: 'src'
+ Availability: Always
+ Capabilities:
+ video/x-raw
+ width: [ 1, 16384 ]
+ height: [ 1, 16384 ]
+ format: { (string)P010_10LE, (string)P012_LE, (string)NV12 }
+ video/x-raw(memory:VAMemory)
+ width: [ 1, 16384 ]
+ height: [ 1, 16384 ]
+ format: { (string)P010_10LE, (string)P012_LE, (string)NV12 }
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2456>
+
+2021-07-27 13:22:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ vapostproc: Inherit from GstVaBaseTransform.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2442>
+
+2021-02-17 17:15:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvabasetransform.c:
+ * sys/va/gstvabasetransform.h:
+ * sys/va/meson.build:
+ va: Add base transform class.
+ This base transform class is a derivable class for VA-based filters,
+ for example vapostproc right now, but it will be used also for
+ future elements such as vadeinterlace.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2442>
+
+2021-07-27 13:03:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvapool.c:
+ * sys/va/gstvapool.h:
+ va: pool: Add gst_va_pool_new_with_config().
+ It is a function helper.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2442>
+
+2021-08-10 02:48:01 +0900 Seungha Yang <seungha@centricular.com>
+
+ d3d11window: Misc code cleanup
+ * Remove unnecessary upcasting. We are now dealing with C++ class objects
+ and don't need explicit C-style casting in C++ world
+ * Use helper macro IID_PPV_ARGS() everywhere. It will make code
+ a little short.
+ * Use ComPtr smart pointer instead of calling manual IUnknown::Release()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2461>
+
+2021-08-10 02:48:45 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11compositor.cpp:
+ d3d11compositor: Fix indent
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2461>
+
+2021-05-28 17:36:15 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/openh264/gstopenh264enc.cpp:
+ * ext/openh264/meson.build:
+ openh264: Respect level set downstream
+ We were not specifying the requested level to openh264 meaning that
+ it was choosing anything and was not respecting what was specified\
+ downstream
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2289>
+
+2021-08-04 15:02:01 +0800 He Junyan <junyan.he@intel.com>
+
+ * ext/x265/gstx265enc.c:
+ x265: Fix a deadlock when failing to create the x265enc.
+ The GST_ELEMENT_ERROR will call the gst_object_get_path_string and
+ use gst_object_get_parent to get the full object path name, which
+ needs to lock the object. But we are already in a locked context and
+ so this will cause a deadlock, the pipeline can not exit normally.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2451>
+
+2021-07-22 20:58:02 +0000 R S Nikhil Krishna <rsnk96@gmail.com>
+
+ * ext/rtmp/gstrtmpsrc.c:
+ rtmpsrc: mention setting librtmp flags in docs
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2424>
+
+2021-08-05 23:11:26 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * ext/mpeg2enc/gstmpeg2encpicturereader.cc:
+ mpeg2enc: fix interlace-mode detection
+ Previously, the code was always assuming progressive input,
+ fix this by looking at the caps.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2455>
+
+2021-05-23 19:15:25 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/curl/gstcurlbasesink.c:
+ * ext/curl/gstcurlhttpsrc.c:
+ * ext/faad/gstfaad.c:
+ * ext/hls/gsthlsdemux.c:
+ * ext/teletextdec/gstteletextdec.c:
+ * gst-libs/gst/codecparsers/gsth264parser.c:
+ * gst-libs/gst/mpegts/gst-dvb-descriptor.c:
+ * gst-libs/gst/mpegts/gstmpegtsdescriptor.c:
+ * gst-libs/gst/mpegts/gstmpegtssection.c:
+ * gst/audiovisualizers/gstspectrascope.c:
+ * gst/mpegpsmux/mpegpsmux.c:
+ * gst/mpegtsdemux/mpegtspacketizer.c:
+ * gst/mpegtsdemux/tsdemux.c:
+ * gst/mxf/mxfaes-bwf.c:
+ * gst/mxf/mxfdms1.c:
+ * gst/mxf/mxfmetadata.c:
+ * gst/mxf/mxfmpeg.c:
+ * gst/mxf/mxftypes.c:
+ * gst/rtmp2/rtmp/amf.c:
+ * meson.build:
+ * sys/androidmedia/gstamcaudiodec.c:
+ * sys/androidmedia/gstamcvideodec.c:
+ * sys/androidmedia/jni/gstamc-codeclist-jni.c:
+ * sys/androidmedia/jni/gstamc-format-jni.c:
+ * sys/androidmedia/magicleap/gstamc-format-ml.c:
+ * tests/check/libs/mpegts.c:
+ Use g_memdup2() where available and add fallback for older GLib versions
+ g_memdup() is deprecated since GLib 2.68 and we want to avoid
+ deprecation warnings with recent versions of GLib.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2280>
+
+2021-08-05 13:02:00 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/timecode/gsttimecodestamper.c:
+ timecodestamper: Fix latency calculation
+ The LTC extra latency is in ms already and not in frames, so multiplying
+ with the framerate will end up with a wrong number.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2453>
+
+2021-07-18 00:51:04 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkcontext.c:
+ msdk: make sure child context is destroyed first
+ The parent context shares some resources with child context, so the
+ child context should be destroyed first, otherwise the command below
+ will trigger a segmentation fault
+ $> gst-launch-1.0 videotestsrc num-buffers=100 ! msdkh264enc ! \
+ msdkh264dec ! fakesink videotestsrc num-buffers=50 ! \
+ msdkh264enc ! msdkh264dec ! fakesink
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2435>
+
+2021-08-02 16:22:06 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videosink.cpp:
+ * sys/d3d11/gstd3d11window.cpp:
+ * sys/d3d11/gstd3d11window.h:
+ d3d11videosink: Fix warning around GstVideoOverlay::expose()
+ When expose() is called, d3d11videosink needs to redraw using
+ cached buffer, so gst_d3d11_window_render() should allow null buffer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2450>
+
+2021-07-31 01:05:47 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videosink.cpp:
+ d3d11videosink: Forward navigation event without modification
+ Current implementation for translating native coordinate and
+ video coordinate is very wrong because d3d11videosink doesn't
+ understand native HWND's coordinate. That should be handled
+ by GstD3D11Window implementation as an enhancement.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2450>
+
+2021-07-31 00:59:14 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videosink.cpp:
+ * sys/d3d11/gstd3d11window.cpp:
+ * sys/d3d11/gstd3d11window.h:
+ * sys/d3d11/gstd3d11window_win32.cpp:
+ d3d11videosink: Add support for GstVideoOverlay::set_render_rectangle
+ Inspired by an MR https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2382
+ The idea is that we can make use of MoveWindow() in WIN32 d3d11window
+ implementation safely because WIN32 d3d11window implementation creates
+ internal HWND even when external HWND is set and then subclassing is used to
+ draw on internal HWND in any case. So the coordinates passed to MoveWindow()
+ will be relative to parent HWND, and it meets well to the concept of
+ set_render_rectangle().
+ On MoveWindow() event, WM_SIZE event will be generated by OS and then
+ GstD3D11WindowWin32 implementation will update render area including swapchain
+ correspondingly, as if it's normal window move/resize case.
+ But in case of UWP (CoreWindow or SwapChainPanel), we need more research to
+ meet expected behavior of set_render_rectangle()
+ Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1416
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2450>
+
+2021-07-29 18:05:35 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvavp8dec.c:
+ va: vp8: fix the overflow in _fill_quant_matrix().
+ The gint8 of qi and qi_base may overflow when calculation the matrix
+ parameters and change the decoding result.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2447>
+
+2021-06-21 00:19:17 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11device.cpp:
+ * gst-libs/gst/d3d11/gstd3d11format.h:
+ * tests/check/elements/d3d11colorconvert.c:
+ d3d11: Disable packed and subsampled YUV formats
+ Direct3D11 sampler doesn't support them very well, and conversion
+ outputs usually result in poor visual quality with our shader code.
+ Should disable support for such formats for now
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2344>
+
+2021-07-26 16:43:47 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/mpegtsdemux/tsdemux.c:
+ tsdemux: Notify when ignore_pcr is set
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2437>
+
+2021-07-27 23:53:06 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * ext/closedcaption/gstcccombiner.c:
+ cccombiner: fix CDP padding detection
+ While a cc_data_pkt with cc_valid 0 should be considered padding,
+ it might be followed up by valid DTVCC packets, and should not
+ cause the whole CDP packet to get discarded.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2440>
+
+2021-07-27 12:51:08 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264dec: Improve the find_first_field_picture().
+ We need to consider the first field of the last picture when the
+ last picture can not enter the DPB.
+ Another change is, when prev field's frame_num is not equal to the
+ current field's frame_num, we should also return FASLE because it
+ is also a case of losing some field.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2430>
+
+2021-07-27 12:16:13 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264dec: consider the last field when add picture to DPB.
+ There are cases that the first field of the last picture is not a
+ ref but the second field is a ref. We need to add both of them
+ because the bumping always needs a complete frame in the DPB.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2430>
+
+2021-07-27 10:51:03 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264dec: Consider the field case when directly output.
+ For interlaced streams, it is also possible that the last frame is
+ not able to be inserted into DPB when the DPB is full and the last
+ frame is a non ref. For this case, we need to hold a extra ref for
+ the first field of the last frame and wait for the complete frame
+ with both top and bottom fields. For the progressive stream, the
+ behaviour is unchanged.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2430>
+
+2021-07-26 01:16:34 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264picture.c:
+ codecs: h264dec: Fix a error print of dpb_add.
+ When the dpb is interlaced, the max size should be 2*dpb->max_num_frames,
+ correcting the error print info for that.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2430>
+
+2021-07-28 16:11:36 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/decklink/linux/DeckLinkAPIDispatch.cpp:
+ decklink: Don't print error for dlopen failure
+ This is not a fatal error on systems without decklink
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2441>
+
+2021-07-27 12:21:41 +0200 Imanol Fernandez <ifernandez@igalia.com>
+
+ * gst-libs/gst/play/gstplay.c:
+ * gst-libs/gst/player/gstplayer.c:
+ player: Add static keyword to _config_quark_table
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2439>
+
+2021-07-27 14:52:38 +1000 Matthew Waters <matthew@centricular.com>
+
+ * sys/applemedia/meson.build:
+ * sys/applemedia/videotexturecache-vulkan.mm:
+ applemedia: silence a couple of MoltenVK warnings
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2433>
+
+2021-07-27 11:49:47 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/debugutils/gstfakeaudiosink.c:
+ * gst/debugutils/gstfakevideosink.c:
+ debugutils: Only proxy the properties once
+ The needed once call was removed accidently during porting. This was catch by
+ the CI as memory leaks.
+ Related to !2426
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2438>
+
+2021-07-27 12:13:43 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mxf/mxfd10.c:
+ mxf: Handle D10 "picture only" variant
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/80
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2436>
+
+2021-07-24 13:19:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ * sys/va/gstvafilter.h:
+ * sys/va/gstvavpp.c:
+ va: filter: refactor convert_surface() to process()
+ The idea of this change is to add, in the future,
+ process_with_generator(), when multiple input surfaces are processed,
+ for blending.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2431>
+
+2021-07-18 12:46:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ * sys/va/gstvafilter.h:
+ * sys/va/gstvavpp.c:
+ va: filter: Refactor set_formats() to set_video_info().
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2431>
+
+2021-07-18 17:13:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ vapostproc: Don't add video alignment option in buffer pool.
+ vapostproc will not call gst_buffer_pool_config_set_video_alignment(),
+ thus this option is not required.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2431>
+
+2021-07-27 09:37:49 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mxf/mxfvc3.c:
+ mxfvc3: Also accept clip-wrapped vc-3
+ We can now handle this fine
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2434>
+
+2021-07-27 07:59:52 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mxf/mxfdemux.c:
+ mxfdemux: Handle EOS with non-frame wrapping
+ When reaching the end of non-frame wrapping track in pull mode, we want to force
+ the switch to the next non-eos pad. This is similar to when we exceed the
+ maximum drift.
+ Fixes issues on EOS where not everything would be drained out and stray errors
+ would pop out.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2434>
+
+2021-07-25 07:52:06 +0200 Edward Hervey <edward@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/mxf/mxfdemux.c:
+ mxfdemux: More granular interleaved content handling
+ An interleave of 500ms can be way too big for some downstream queueing
+ elements. Instead use a smaller 100ms interleave and silence the various
+ warnings about resyncing (it's normal)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2434>
+
+2021-07-23 09:36:10 +0100 Philippe Normand <philn@igalia.com>
+
+ * gst/debugutils/gstfakeaudiosink.c:
+ * gst/debugutils/gstfakesinkutils.c:
+ * gst/debugutils/gstfakesinkutils.h:
+ * gst/debugutils/gstfakevideosink.c:
+ * gst/debugutils/meson.build:
+ debugutils: De-duplicate proxy_properties function to a new utils module
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2426>
+
+2021-06-08 01:40:34 +0900 Seungha Yang <seungha@centricular.com>
+
+ * meson_options.txt:
+ * sys/asio/gstasiodeviceprovider.cpp:
+ * sys/asio/gstasiodeviceprovider.h:
+ * sys/asio/gstasioobject.cpp:
+ * sys/asio/gstasioobject.h:
+ * sys/asio/gstasioringbuffer.cpp:
+ * sys/asio/gstasioringbuffer.h:
+ * sys/asio/gstasiosink.cpp:
+ * sys/asio/gstasiosink.h:
+ * sys/asio/gstasiosrc.cpp:
+ * sys/asio/gstasiosrc.h:
+ * sys/asio/gstasioutils.cpp:
+ * sys/asio/gstasioutils.h:
+ * sys/asio/meson.build:
+ * sys/asio/plugin.c:
+ * sys/meson.build:
+ Introduce Steinberg ASIO (Audio Streaming Input/Output) plugin
+ Adds a new plugin for ASIO devices.
+ Although there is a standard low-level audio API, WASAPI, on Windows,
+ ASIO is still being broadly used for audio devices which are aiming to
+ professional use case. In case of such devices, ASIO API might be able
+ to show better quality and latency performance depending on manufacturer's
+ driver implementation.
+ In order to build this plugin, user should provide path to
+ ASIO SDK as a build option, "asio-sdk-path".
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2309>
+
+2021-06-06 22:32:08 +0900 Seungha Yang <seungha@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/audiolatency/gstaudiolatency.c:
+ * gst/audiolatency/gstaudiolatency.h:
+ audiolatency: Expose samplesperbuffer property
+ ... for user to be able to set the number of required samples.
+ For instance, our default value is 240 samples
+ (about 5ms latency in case that sample rate is 48000), which might
+ be larger than actual buffer size of audio capture device.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2307>
+
+2021-07-23 22:02:05 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264decoder: let print_ref_pic_list_b print the correct list name.
+ The print_ref_pic_list_b now not only needs to trace the ref_pic_list_b0/1,
+ but also need to trace the ref_frame_list_0_short_term. We need to pass the
+ name directly to it rather than an index to refer to ref_pic_list_b0/1.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2425>
+
+2021-07-23 12:31:17 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264dec: Fix a typo in construct_ref_field_pic_lists_b.
+ The array sort of ref_frame_list_0_short_term has some typo. The
+ typo makes this list not in the POC ascend order and generate wrong
+ decoding result for interlaced streams.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2425>
+
+2021-07-15 05:12:37 -0700 Devarsh Thakkar <devarsh.thakkar@xilinx.com>
+
+ * sys/kms/gstkmssink.c:
+ kmssink: Fix fallback path for driver not able to scale scenario
+ When driver return error on update plane request, kmssink
+ disables the scaling and retries plane update.
+ While doing so kmssink was matching the source rectangle dimensions
+ to the target rectangle dimensions which were calculated
+ as per scaling but this is incorrect, instead what we want here is
+ that target rectangle dimensions should match the source rectangle
+ dimensions as scaling is disabled now and so we match result
+ rectangle dimensions with source rectangle dimensions.
+ While at it, also match the result rectangle coordinates for
+ horizontal and vertical offsets with source rectange coordinates,
+ as since there is no scaling being done so no recentering is
+ required.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2415>
+
+2021-07-23 16:49:49 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst/videoparsers/gstvp9parse.c:
+ videoparsers: vp9: Need to process the first frame even not key.
+ Some cut VP9 streams begin with a non key frame. The current code
+ just bail out the parse_process_frame() if not a key frame. Because
+ of this, we do not set the valid caps before we push the data of the
+ first frame(even this first frame will be discarded by the downstream
+ decoder because it is not a key frame).
+ The pipeline such as:
+ gst-launch-1.0 filesrc location=some.ivf ! ivfparse ! vp9parse !
+ vavp9dec ! fakesink
+ will get a negotiation error and the pipeline can not continue. The
+ correct behaviour should be: the decoder discard the first frame and
+ continue to decode later frames successfully.
+ So, when the parse does not have valid stream info(should be the first
+ frame case), we should continue and report caps.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2427>
+
+2021-07-21 19:40:17 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/audiolatency/gstaudiolatency.c:
+ audiolatency: Handle audio buffers with invalid duration
+ pipewiresrc outputs audio buffers without a valid duration, so we need
+ to calculate it manually in that case.
+ Upstream issue: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1438
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2419>
+
+2021-07-22 22:00:38 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvah265dec.c:
+ va: h265dec: Do not assign the frame->output_buffer until output_picture.
+ We may need to drop the slices such as RASL pictures with the NoRaslOutputFlag, so
+ the current picture of h265decoder may be freed. We should not assign the frame->
+ output_buffer too early until we really output it. Or, the later coming slices will
+ allocate another picture and trigger the assert of:
+ gst_video_decoder_allocate_output_frame_with_params:
+ assertion 'frame->output_buffer == NULL' failed
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2421>
+
+2021-07-22 15:14:26 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mpegtsdemux/tsdemux.c:
+ tsdemux: Handle PCR-less streams
+ Some programs specify a PCR PID but don't actually store any PCR values, or are
+ way too far apart.
+ In order to gracefully handle those situations, we will queue up to a certain
+ amount of pending buffers before deciding to give up on that PCR PID and not use
+ any (i.e. using DTS/PTS values as-is)
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1629
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2422>
+
+2021-07-22 10:44:27 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvah265dec.c:
+ va: H265: Add odd bit depth and chroma depth in get_rtformat.
+ In H265, the stream may have odd bit depth such as 9 or 11. And
+ the bit depth of luma and chroma may differ. For example, the
+ stream with luma depth of 8 and chroma depth of 9 should use the
+ 10 bit rtformat as the decoded picture format.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2420>
+
+2021-07-21 00:04:18 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264picture.c:
+ * gst-libs/gst/codecs/gsth264picture.h:
+ codecs: h264dec: Improve the algorithm for low latency mode.
+ In low_latency mode, try to bump the picture as soon as possible
+ without the frames disorder:
+ 1. We can directly output the continuous non-reference frame.
+ 2. Consider max_num_reorder_frames, which is special useful for
+ I-P mode.
+ 3. Consider the leading pictures with negative POC.
+ 4 Output small POC pictures when non-reference frame comes.
+ 4. Output the POC increment<=2 pictures. This is not 100% safe,
+ but in practice this condition can be used.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2373>
+
+2021-07-20 23:49:12 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264picture.c:
+ * gst-libs/gst/codecs/gsth264picture.h:
+ codecs: h264dec: Add help function of dpb_set_max_num_reorder_frames.
+ The max_num_reorder_frames can be useful for bump check. We store it
+ in the DPB and no need for the decoder now.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2373>
+
+2021-07-20 23:36:38 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264picture.c:
+ * gst-libs/gst/codecs/gsth264picture.h:
+ codecs: h264dec: Add a flag to record whether picture is reference.
+ The picture->ref field will change from time to time according to decoder's
+ state and reference sliding window. We need another flag to record whether
+ the picture is a reference picture when it is created, and this can help
+ the bumping check.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2373>
+
+2021-07-12 00:31:54 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264dec: Change the order of dpb_add and dpb_bump.
+ The current behavior is different from the SPEC. We should check
+ and bump the DPB or drain the DPB before we insert the current
+ picture into it. This may cause the output picture disorder.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2373>
+
+2021-07-12 00:06:49 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264picture.c:
+ * gst-libs/gst/codecs/gsth264picture.h:
+ codecs: h264dec: Modify the DPB need bump check.
+ Accord to spec, we should not add the current picture into the DPB
+ when we check whether it needs to bump, so the checks of the IDR and
+ the "memory_management_control_operation equal to 5" are no needed.
+ And the spec also says that the DPB only needs to bump when there is
+ no empty frame buffer left(We handle the IDR cases in other places).
+ We need to follow that and the max_num_reorder_frames is useless.
+ We also minus 1 in has_empty_frame_buffer because the current frame
+ has not been added yet.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2373>
+
+2021-07-12 00:01:58 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264picture.c:
+ * gst-libs/gst/codecs/gsth264picture.h:
+ codecs: h264dec: Make dpb_has_empty_frame_buffer a codecs API.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2373>
+
+2021-07-05 23:53:25 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264picture.c:
+ codecs: h264dec: Set picture to a small poc when mem_mgmt_5.
+ When current frame memory_management_control_operation equal to 5, that
+ means we need to drain the dpb and the current picture act as an IDR frame.
+ So it should have smaller poc than the later pictures to ensure the output
+ order.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2373>
+
+2021-07-15 11:12:01 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mxf/mxfdemux.c:
+ mxfdemux: Make gst-indent on the CI happy
+ grmbl
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371>
+
+2021-07-15 10:59:39 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mxf/mxfdemux.c:
+ * gst/mxf/mxfdemux.h:
+ mxfdemux: Handle non-frame wrapping
+ * If we have an index table for non-framed essence, we can handle it
+ * The demuxer has a state which indicates whether it will next fetch a KLV or
+ data contained *within* a KLV.
+ * The position on Essence Tracks always correspond to the next entry to fetch,
+ demuxer offset will be skipped accordingly whenever we switch between
+ partitions (in case of resyncs). A copy of the main clip/custom KLV for that
+ partition is kept to track the position within the essence of that partition.
+ * For clip/custom-wrapped raw audio, if the edit rate is too small (and would
+ cause plenty of tiny buffers to be outputted), specify a minimum number of edit
+ units per buffer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371>
+
+2021-07-15 10:45:46 +0200 Edward Hervey <edward@centricular.com>
+
+ mxfdemux: Use KLV for position/content tracking
+ * For pull-based, this avoids pulling content if it's not needed (ex: skipping filler
+ packet, not downloading the content if we only need to know if/where an essence
+ packet is, etc...). Allows reducing i/o usage to the minimum.
+ * This also allows doing sub-klv position tracking, and opens the way for
+ non-frame-wrapping handling
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371>
+
+2021-07-15 10:28:31 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mxf/mxfdemux.c:
+ mxfdemux: Output the topology of the file in debug logs
+ This provides a summary of the number/type of tracks in the Material and File
+ Packages
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371>
+
+2021-07-15 10:16:34 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mxf/mxfdemux.c:
+ mxfdemux: Refactor pull seek
+ In order to figure out the exact start position (backed by a keyframe) accross
+ all tracks, we first figure out the backing keyframe position, and *then* seek
+ to that position.
+ Avoids ending up in situations where we would properly seek to the backing
+ keyframe on video ... but not on the audio streams (they would have been set to
+ the original non-keyframe position). Fixes key-unit seeking.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371>
+
+2021-07-14 07:58:01 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mxf/mxfaes-bwf.c:
+ * gst/mxf/mxfessence.h:
+ mxfaes-bwf: Handle new custom-constant-sized variant
+ Defined by Amendment 2:2013 to SMPTE ST 382:2007
+ Also define a new "UNKNOWN" wrapping type to make the difference with known
+ wrapping types
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371>
+
+2021-07-14 07:54:38 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mxf/mxfmpeg.c:
+ mxfmpeg: Fix essence coding detection
+ The picture essence coding matching was wrong. Use the proper "base" MXFUL for
+ video mpeg compression for matching.
+ Also handle the case where some old files would put the essence container label
+ in the essence coding field
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371>
+
+2021-07-01 08:35:01 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mxf/mxfdemux.c:
+ * gst/mxf/mxfdemux.h:
+ * gst/mxf/mxftypes.c:
+ * gst/mxf/mxftypes.h:
+ mxfdemux: Refactor index table and offset handling
+ * Streamline offset <=> entry handling. Historically the demuxer didn't support
+ information from index tables and stored the discovered information in an array
+ per track. When index table support was added, a parallel system was setup for
+ that relationship. This commit unifies this into one system with the
+ `find_edit_entry()` and `find_entry_for_offset()` functions.
+ * By extension, per-track offset entry tables are only created/used if no index
+ table is present for those tracks.
+ * Use index table information as-is. The index table system from MXF is quite
+ complex and there are various ways to use the information contained
+ within. Instead of converting that information we store the data from the tables
+ as-is and extract the needed information when needed.
+ * Handle index tables without entries (i.e. all content package units are of the
+ same size).
+ * Allow collecting index table segments as we go instead of only once if a
+ random-index-pack is present. This also improves support of some files in
+ push-mode.
+ * When searching for keyframe entries, use the keyframe_offset if
+ present (speeds up searching).
+ * For interleaved content (i.e. several tracks in the sample essence container),
+ we use a system to be able to identify the position of each track in the delta
+ entries of index tables.
+ * Handle temporal offset only on tracks which *do* need it (as specified in the
+ delta entries of the index tables). If present, those offsets are stored in a
+ pre-processed table which allows computing PTS from DTS with a simple offset.
+ * Add a quirk for files which are known to be have wrongly stored temporal
+ offsets.
+ * Overall opens the way to handle more types of MXF files, especially those with
+ non-frame-wrapping.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371>
+
+2021-06-29 15:29:36 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mxf/mxfdemux.c:
+ mxfdemux: Drop duplicate seek events
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371>
+
+2021-06-24 09:53:08 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mxf/mxftypes.c:
+ mxf: Improve index entry debug log
+ By printing out the various known flag values
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371>
+
+2021-06-23 09:08:33 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mxf/mxfmetadata.c:
+ mxf: Demote error message when resolving valid empty reference
+ A Source Clip can have zero'd SourcePackageID and SourceTrackID, this indicates
+ it terminates the source reference chain
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371>
+
+2021-06-17 16:38:54 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mxf/mxfdemux.c:
+ * gst/mxf/mxfdemux.h:
+ mxfdemux: Handle temporal reordering shift
+ This is similar to how the same issue was handled in qtdemux.
+ In order for the "DTS <= PTS" constraint to be respected, we calculate the
+ maximum temporal reordering that can happen (via index tables).
+ If there is a non-0 temporal reordering, we:
+ * Shift all outgoing PTS by that amount
+ * Shift segment for that stream by that amount
+ * Don't modify DTS (i.e. they might end up having negative running-time, before
+ the start of the segment)
+ Also ensure all entries have a valid PTS set, previously this wouldn't be set
+ for entries with a temporal offset of 0.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/584
+ (and maybe a lot of other issues)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371>
+
+2021-07-17 20:49:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavp9dec.c:
+ va: vp9dec: Minor cleanups.
+ Added a comment with a future to-do, enhanced another comment and
+ fixed a typo in an error log message.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2417>
+
+2021-07-17 20:48:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvadecoder.c:
+ * sys/va/gstvadecoder.h:
+ va: decoder: Group decoder methods.
+ Move up gst_va_decoder_get_config() to group decoders function in the
+ same file area.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2417>
+
+2021-07-17 20:45:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaav1dec.c:
+ * sys/va/gstvadecoder.c:
+ * sys/va/gstvadecoder.h:
+ * sys/va/gstvah264dec.c:
+ * sys/va/gstvah265dec.c:
+ * sys/va/gstvampeg2dec.c:
+ * sys/va/gstvavp8dec.c:
+ * sys/va/gstvavp9dec.c:
+ va: Refactor _format_changed() to _config_is_equal().
+ Change gst_va_decoder_format_changed() to
+ gst_va_decoder_config_is_equal(), which is more similar with other
+ GStreamer API.
+ The function call is replaced but it has to be negated because the
+ return value is the opposite.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2417>
+
+2021-07-17 20:37:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvadecoder.c:
+ * sys/va/gstvadecoder.h:
+ * sys/va/gstvavp9dec.c:
+ va: Refactor _change_resolution() to _update_frame_size().
+ Rename gst_va_decoder_change_resolution() to
+ gst_va_decoder_update_frame_size() which resembles
+ gst_va_decoder_set_frame_size().
+ Also added a comment to clarify the function use and makes more
+ specific the error message.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2417>
+
+2021-07-17 20:29:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaav1dec.c:
+ * sys/va/gstvadecoder.c:
+ * sys/va/gstvadecoder.h:
+ * sys/va/gstvah264dec.c:
+ * sys/va/gstvah265dec.c:
+ * sys/va/gstvampeg2dec.c:
+ * sys/va/gstvavp8dec.c:
+ * sys/va/gstvavp9dec.c:
+ va: Refactor _set_format() to _set_frame_size().
+ Renamed gst_va_decoder_set_format() to
+ gst_va_decoder_set_frame_size_with_surfaces() which resembles better
+ the passed parameters. Internally it creates the vaContext.
+ Added gst_va_decoder_set_frame_size() which is an alias of
+ gst_va_decoder_set_frame_size_with_surfaces() without surfaces. This
+ is the function which replaces gst_va_decoder_set_format() where
+ used.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2417>
+
+2021-07-16 15:24:11 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ * gst-libs/gst/codecs/gsth265decoder.h:
+ * sys/nvcodec/gstnvh265dec.c:
+ codecs: h265decoder: Fix a typo of NumPocTotalCurr when process ref pic list.
+ We should use the NumPocTotalCurr value stored in decoder, which is a calculated
+ valid value, rather than use the invalid value in the slice header. Most of the
+ time, the NumPocTotalCurr is 0 and make the tmp_refs a very short length, and
+ causes the decoder's wrong result.
+ By the way, the NumPocTotalCurr is not the correct name specified in H265 spec,
+ its name should be NumPicTotalCurr. We change it to the correct name.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2414>
+
+2021-07-16 13:21:11 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvah265dec.c:
+ va: h265dec: Do not add non reference frames into ref list.
+ The VA's ReferenceFrames should only contain the reference frame, we
+ should not add the non reference frames into this list.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2414>
+
+2021-07-15 19:44:21 +0900 Seungha Yang <seungha@centricular.com>
+
+ * tests/check/meson.build:
+ tests: Enable closedcaption test on Windows
+ ... if closedcaption plugin is available
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2411>
+
+2021-07-15 16:44:18 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfvideoenc.cpp:
+ mfvideoenc: Disable RGB format support
+ Some GPUs support BGRA format and it will be converted to subsampled
+ YUV format by GPU internally. Disable this implicit conversion
+ since the conversion parameters such as input/output colorimetry
+ are not exposed nor it's written in bitstream (e.g., VUI).
+ We prefer explicit conversion via our conversion elements.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2410>
+
+2021-07-15 21:32:54 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvah265dec.c:
+ va: h265dec: Fix a temp var overflow bug when write pred weight table.
+ The temp guint8 var of delta_chroma_offset_l0 and delta_chroma_offset_l1
+ can not cover the full range of delta_chroma_weight_l0/1 in the slice
+ header. When overflow happens, the decoder result is wrong.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2412>
+
+2021-07-12 12:08:20 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/dash/gstmpdparser.c:
+ * tests/check/elements/dash_mpd.c:
+ dash: Store entire ContentProtection node in protection event data
+ Some manifests use the ContentProtection node to store additional information
+ such as the license server url. Our MPD parser used to process the
+ ContentProtection node, extracting Playready PSSH boxes. However for other DRM
+ systems, only the `value` attribute was passed down to the protection event, so
+ for example, Widevine data was not parsed at all and "Widevine" was passed to
+ the event, which is not very useful for decryptors that require a PSSH init
+ data.
+ Parsing should now be done by decryptors which will receive the entire
+ ContentProtection XML node as a string. This gives more "freedom" to the
+ decryptor which can then detect and parse custom nodes as well.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2400>
+
+2021-07-14 22:36:52 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvavp9dec.c:
+ va: vp9dec: We need to check the resolution changes for every frame.
+ The VP9 streams have the ability to change the resolution dynamically
+ at any time point. It does not send ad KEY frame before change the
+ resolution, even the INTER frame can change the resolution immediately.
+ So we need to check the resolution change for each frame and do the
+ re-negiotiation if needed.
+ Some insaned stream may play in resolution A first and then dynamically
+ changes to B, and after 1 or 2 frames, it use a show_existing_frame to
+ repeat the old frame of resolution A before. So, not only new_picture(),
+ but also duplicate_picture() need to check this.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2407>
+
+2021-07-14 14:43:51 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvavp9dec.c:
+ va: vp9dec: Do not re-create context for dynamical resolution change.
+ The driver for VP9 should have the ability to handle the dynamical resolution
+ changes. So if only the resolution changes, we should not re-create the config
+ and context in negotiation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2407>
+
+2021-07-14 14:27:34 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvadecoder.c:
+ * sys/va/gstvadecoder.h:
+ va: decoder: Add helper functions to get and change the resolution.
+ Some codecs such as VP9, its config and context have the ability to
+ dynamically. When we only change the width and height, no need to
+ re-create the config and context. The helper function can just change
+ the resolution without re-creating config and context.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2407>
+
+2021-05-29 06:03:26 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/mpegtsmux/tsmux/tsmux.c:
+ mpegtsmux: Quieten "missed PCR" warnings in VBR mode.
+ When the muxer is operating in VBR mode, it's kind of expected
+ for now that we might not put the PCR in exactly the right place,
+ because the muxer doesn't schedule packets that way. In that case
+ don't warn constantly about the PCR ending up a few ms off target.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2295>
+
+2021-07-13 21:38:10 +1000 Matthew Waters <matthew@centricular.com>
+
+ * gst/rtmp2/gstrtmp2src.c:
+ rtmp2src: workaround a GLib race when destroying a GMainContext/GSource
+ https://gitlab.gnome.org/GNOME/glib/-/issues/803
+ Basically, if destruction of a GSource and its associated GMainContext are
+ not synchronised, Then the GSource destruction can access freed
+ GMainContext resources and cause a crash. This is not super common but
+ can happen.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2405>
+
+2021-07-08 14:25:23 +0200 Mads Buvik Sandvei <madssandvei@protonmail.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ codecs: h265decoder: Always free messages while parsing SEI
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2390>
+
+2021-07-14 19:39:11 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/videoparsers/gstvp9parse.c:
+ vp9parse: Skip parsing decode-only frame
+ Decode-only frame (i.e., show_existing_frame == 1) doesn't hold
+ any valid information apart from the index of frame to be duplicated.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2408>
+
+2021-07-13 16:55:30 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/wpe/gstwpesrcbin.cpp:
+ wpesrcbin: Use gst_buffer_new_memdup()
+ g_memdup() is deprecated.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2406>
+
+2021-07-12 23:25:02 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gstvp9statefulparser.c:
+ codecs: vp9statefulparser: not init segmentation_abs_or_delta_update.
+ The segmentation_abs_or_delta_update is a stateful var, it should not
+ be inited every time when parsing the segmentation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2403>
+
+2021-07-12 23:21:29 +0900 Seungha Yang <seungha@centricular.com>
+
+ * tests/check/elements/wasapi2.c:
+ tests: wasapi2: Add more device reuse cases
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2402>
+
+2021-07-12 22:17:22 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/gstwasapi2ringbuffer.cpp:
+ wasapi2ringbuffer: Close IAudioClient on GstAudioRingBuffer::release
+ IAudioClient interface is not reusable once it's initialized.
+ So we should close the handle and reopen it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2402>
+
+2021-07-13 03:35:22 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/gstwasapi2ringbuffer.cpp:
+ wasapi2ringbuffer: Run gst-indent
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2402>
+
+2021-07-12 09:01:06 -0300 Daniel Almeida <daniel.almeida@collabora.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.h:
+ codecparsers: av1: fix underflow in last_frame_idx
+ The spec mandates this field be parsed using unsigned arithmetic. Nevertheless,
+ av1parser will use -1 apparently as an uninitialized value in
+ gst_av1_parse_frame_header. This immediately underflows last_frame_idx
+ though, since its type was defined as guint8. Fix this by converting to gint8.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2401>
+
+2021-03-18 10:55:58 +0100 Jakub Janků <jjanku@redhat.com>
+
+ * sys/wasapi/gstwasapisink.c:
+ wasapi: fix reinit of audioclient in prepare()
+ When the sink goes from PLAYING to READY and then back to PLAYING,
+ the initialization of the audioclient in prepare() fails with the
+ error AUDCLNT_E_ALREADY_INITIALIZED. As a result, the playback
+ stops.
+ To fix this, we need to drop the AudioClient in unprepare() and
+ grab a new one in prepare() to be able to initialize it again
+ with the new buffer spec.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2096>
+
+2021-03-17 22:45:57 +0100 Jakub Janků <jjanku@redhat.com>
+
+ * sys/wasapi/gstwasapisink.c:
+ * sys/wasapi/gstwasapisrc.c:
+ * sys/wasapi/gstwasapiutil.c:
+ * sys/wasapi/gstwasapiutil.h:
+ wasapi: split gst_wasapi_util_get_device_client()
+ The functionality now resides in
+ gst_wasapi_util_get_device() and
+ gst_wasapi_util_get_audio_client().
+ This is a preparatory patch. It will be used in the following
+ patch to init/deinit the AudioClient separately from the device.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2096>
+
+2021-07-11 18:14:46 +0200 Jakub Janků <janku.jakub.jj@gmail.com>
+
+ * tests/check/elements/wasapi.c:
+ * tests/check/meson.build:
+ tests: wasapi: check PLAYING -> READY -> PLAYING
+ Such sequence of state changes is valid and no error should happen.
+ At the moment, the test fails. Following patches aim to fix it.
+ Partially based on the code in tests/check/elements/wasapi2.c
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2096>
+
+2021-07-09 14:55:43 +0200 Guido Günther <agx@sigxcpu.org>
+
+ * gst-libs/gst/play/gstplay-signal-adapter.c:
+ play: Emit correct signal
+ SIGNAL_MEDIA_INFO_UPDATED should be emitted on media info changes,
+ not SIGNAL_VIDEO_DIMENSIONS_CHANGED.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2398>
+
+2021-03-05 09:18:15 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vulkan/gstvkcommandpool.h:
+ * gst-libs/gst/vulkan/gstvkdescriptorcache.h:
+ * gst-libs/gst/vulkan/gstvkdevice.h:
+ * gst-libs/gst/vulkan/gstvkdisplay.h:
+ * gst-libs/gst/vulkan/gstvkfullscreenquad.h:
+ * gst-libs/gst/vulkan/gstvkhandlepool.h:
+ * gst-libs/gst/vulkan/gstvkinstance.h:
+ * gst-libs/gst/vulkan/gstvkphysicaldevice.h:
+ * gst-libs/gst/vulkan/gstvkqueue.h:
+ * gst-libs/gst/vulkan/gstvkswapper.h:
+ * gst-libs/gst/vulkan/gstvktrash.h:
+ * gst-libs/gst/vulkan/gstvkwindow.h:
+ vulkan: Declare missing auto-pointer cleanup functions.
+ Also removed a couple guards since, given the glib dependency, they
+ are set.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2396>
+
+2021-03-03 12:54:20 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/vulkan/gstvkvideofilter.c:
+ vulkan: filter: Use filter variable name for choosing queue.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2396>
+
+2021-03-03 08:50:13 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/vulkan/vksink.c:
+ vulkansink: Fix element metadata.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2396>
+
+2021-06-25 09:19:25 +0800 Yinhang Liu <yinhang.liu@intel.com>
+
+ * sys/msdk/gstmsdkvpp.c:
+ msdkvpp: use NV12 as default format on srcpad
+ By default, sinkpad is NV12 format and srcpad is BGRA format, the
+ different format will trigger an implicit format conversion in
+ msdkvpp, which will cause performance drop.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2394>
+
+2021-06-01 08:40:17 +0900 Dominique Martinet <dominique.martinet@atmark-techno.com>
+
+ * gst-libs/gst/wayland/wayland.c:
+ gst-libs/gst/wayland: handle display passing better
+ failure to pass a display in 'handle' would result in uninitialized value
+ being returned, which would often segfault later down the road when trying
+ to initialize gstreamer context with it.
+ Check the return value of gst_structure_get() to make sure we return valid
+ data.
+ Furthermore, the gstglimagesink in gst-plugins-base also has a similar
+ mechanism but uses 'display' as field name to pass the value; instead of
+ requiring the application to behave differently depending on what sink
+ was automatically detected just try to read both values here, with display
+ being the new default.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2292>
+
+2021-07-08 14:46:11 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/dash/gstdashdemux.c:
+ dashdemux: Log protection events on corresponding pad
+ GstDashDemuxStream is not a GstObject, so use its pad as associated object when
+ emitting log messages.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2389>
+
+2021-07-08 16:49:27 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvafilter.c:
+ va: vpp: Improve the color properties setting.
+ The current setting of color properties are not very correct and
+ we will get some kind of "unknown Color Standard for YUV format"
+ warnings printed out by drivers. The video-color already provides
+ some standard APIs for us, and we can use them directly.
+ We also change the logic to: Finding the exactly match or explicit
+ standard first. If not found, we continue to find the most similar
+ one.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2385>
+
+2021-07-08 19:03:06 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfcapturewinrt.cpp:
+ * sys/mediafoundation/gstmfsourcereader.cpp:
+ mfvideosrc: Fix negotiation when interlace-mode is specified
+ Given caps does not need to be strictly subset of device caps.
+ Allow accept it if device caps and requested caps can intersect
+ Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1619
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2384>
+
+2021-07-08 02:24:18 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * ext/closedcaption/gstcccombiner.c:
+ cccombiner: mark field 0 as valid when generating padding CDP
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2383>
+
+2021-07-06 17:14:21 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfvideobuffer.cpp:
+ * sys/mediafoundation/gstmfvideobuffer.h:
+ mfvideobuffer: Don't error for unexpected Unlock/Unlock2D call
+ Some GPU vendor's MFT implementation calls IMFMediaBuffer::Unlock()
+ without previous IMFMediaBuffer::Lock() call. Which is obviously
+ driver bug but we can ignore the Unlock call.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2381>
+
+2021-06-30 10:30:43 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/dash/gstdashsink.c:
+ dashsink: fix crash with no pad name for representation
+ if there is no pad name, the representation id
+ was NULL, causing a crash when writing the mpd file.
+ gst-launch-1.0 videotestsrc num-buffers=900 ! video/x-raw, width=800,
+ height=600, framerate=30/1 ! x264enc ! video/x-h264, profile=high !
+ dashsink
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2064>
+
+2021-03-09 11:40:43 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/dash/gstdashsink.c:
+ dashsink: Add signals for allowing custom playlist/fragment
+ Instead of always going through the file system API we allow the
+ application to modify the behaviour. For the playlist itself and
+ fragments, the application can provide a GOutputStream. In addition the
+ sink notifies the application whenever a fragment can be deleted.
+ Following the HLS change:
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/918
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2064>
+
+2021-07-06 14:06:24 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ codecs: h265dec: Disable the POC order warning for negative POC.
+ There may be leading frames after the IRAP frames, which has negative
+ POC. This kind of frames are allowed and they will be displayed before
+ the IRAP frame. So the warning should not be triggered for them. Init
+ the last_output_poc to G_MININT32 can avoid this.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2380>
+
+2021-07-06 13:38:16 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264dec: Disable the POC order warning for negative POC.
+ There may be leading frames after the IDR frame, which has negative
+ POC. This kind of frames are allowed and they will be displayed before
+ the IDR frame. So the warning should not be triggered for them. Init
+ the last_output_poc to G_MININT32 can avoid this.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2380>
+
+2021-06-25 15:57:03 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/interlace/gstinterlace.c:
+ interlace: Push the reconfigure event in the right direction
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2361>
+
+2021-07-05 15:44:34 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvabasedec.c:
+ va: basedec: Fix some artifact when do the crop copy.
+ The default video converter setting will add some artifact into
+ the picture for 10/12 bits conversion. This make the MD5 checksum
+ change from the original picture.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2379>
+
+2021-07-05 02:05:03 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.cpp:
+ d3d11decoder: Enable zero-copy for Qualcomm
+ Qualcomm GPU works fine with current implementation now.
+ Noticeable difference between when it was disabled and current
+ d3d11 implementation is that we now support GstD3D11Memory
+ pool, so there will be no more frequent re-binding decoder surface anymore.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2377>
+
+2021-07-05 07:42:39 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mxf/mxfdemux.c:
+ * gst/mxf/mxfmetadata.c:
+ * gst/mxf/mxfmetadata.h:
+ mxfdemux: Check validity of interleaved File Package
+ As specified by the S377 MXF core specification, if a file package has
+ interleaved content, then all tracks must be using the same Edit Rate
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2378>
+
+2021-07-05 01:54:02 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11vp9dec.cpp:
+ d3d11vp9dec: Fix for incorrect use_prev_in_find_mv_refs setting
+ Set use_prev_in_find_mv_refs depending on context. The value seems
+ to be used by AMD and Qualcomm (Intel and NVIDIA doesn't make difference
+ as per test)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2376>
+
+2021-05-11 14:07:14 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkallocator_libva.c:
+ * sys/msdk/gstmsdksystemmemory.c:
+ * sys/msdk/gstmsdkvideomemory.c:
+ * sys/msdk/gstmsdkvpp.c:
+ * sys/msdk/msdk.c:
+ * sys/msdk/msdk_libva.c:
+ gstmsdkvpp: add RGBP and BGRP in src pad
+ It requires MFX version 2.4+
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2234>
+
+2021-07-04 00:36:27 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfsourcereader.cpp:
+ * sys/mediafoundation/gstmftransform.cpp:
+ mediafoundation: Port to IID_PPV_ARGS
+ Make code short where possible
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2375>
+
+2021-07-04 00:24:09 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfaacenc.cpp:
+ * sys/mediafoundation/gstmfmp3enc.cpp:
+ mfaudioenc: Remove pointless enumerating for hardware audio encoder
+ Hardware audio encoder can exist in theory, but it's untested
+ and we are not sure whether it can be preferred over software
+ implementation which is implemented by MS
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2375>
+
+2021-07-03 23:12:08 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfaacenc.cpp:
+ * sys/mediafoundation/gstmfh264enc.cpp:
+ * sys/mediafoundation/gstmfh265enc.cpp:
+ * sys/mediafoundation/gstmfmp3enc.cpp:
+ * sys/mediafoundation/gstmfvp9enc.cpp:
+ mediafoundation: Fix typos
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2375>
+
+2021-07-03 22:56:48 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfaacenc.cpp:
+ * sys/mediafoundation/gstmfaudioenc.cpp:
+ * sys/mediafoundation/gstmfcapturewinrt.cpp:
+ * sys/mediafoundation/gstmfh264enc.cpp:
+ * sys/mediafoundation/gstmfh265enc.cpp:
+ * sys/mediafoundation/gstmfmp3enc.cpp:
+ * sys/mediafoundation/gstmfsourcereader.cpp:
+ * sys/mediafoundation/gstmftransform.cpp:
+ * sys/mediafoundation/gstmfutils.cpp:
+ * sys/mediafoundation/gstmfvideobuffer.cpp:
+ * sys/mediafoundation/gstmfvideoenc.cpp:
+ * sys/mediafoundation/gstmfvp9enc.cpp:
+ * sys/mediafoundation/mediacapturewrapper.cpp:
+ mediafoundation: Run gst-indent
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2375>
+
+2021-06-26 21:42:37 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvah265dec.c:
+ va: Consider the compatibility when we get_profile() for H265 decoder.
+ Adding the compatile profiles when we decide the final profile used for decoding.
+ The final profile candidates include:
+ 1. The profile directly specified by SPS, which is the exact one.
+ 2. The compatile profiles decided by the upstream element such as the h265parse.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2322>
+
+2021-06-27 15:34:28 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst/videoparsers/gsth265parse.c:
+ h265parse: Add special profile case for profile_idc 0.
+ This is a work-around to identify some main profile streams having
+ wrong profile_idc. There are some wrongly encoded main profile streams
+ which doesn't have any of the profile_idc values mentioned in Annex-A,
+ instead, general_profile_idc has been set as zero and the
+ general_profile_compatibility_flag[general_profile_idc] is TRUE.
+ Assuming them as MAIN profile for now.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2322>
+
+2021-06-26 15:11:47 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst/videoparsers/gsth265parse.c:
+ h265parse: Map -intra profiles to non-intra compatible profiles.
+ All the -intra profiles can map to non-intra profiles as compatible
+ profiles, except the monochrome case for main and main-10.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2322>
+
+2021-07-01 19:27:28 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvavp9dec.c:
+ va: vp9dec: update segmentation and store the result.
+ The segmentation is stateful, its information may depend on the previous
+ segmentation setting. For example, if loop_filter_delta_enabled is TRUE,
+ the filter_level[GST_VP9_REF_FRAME_INTRA][1] should inherit the previous
+ frame's value and can not be calculated by the current frame's segmentation
+ data only. So we need to maintain the segmentation state inside the vp9
+ decoder and update it when the new frame header comes.
+ We also fix the CLAMP issue of lvl_seg and intra_lvl because of their wrong
+ uint type here.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2369>
+
+2021-06-30 15:23:15 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gstvp9statefulparser.c:
+ codecparsers: vp9statefulparser: Fix the gst_vp9_get_qindex clamp issue.
+ The alternate quantizer is a delta value and should be int type.
+ We mark it wrongly as uint, that will make CLAMP (data, 0, 255)
+ always choose 255 rather than 0 if the data < 0.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2369>
+
+2021-06-30 15:32:42 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstvp9parser.h:
+ codecparsers: vp9parser: Use macro to define the size of filter_level in Segmentation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2369>
+
+2021-06-30 12:15:42 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstvp9parser.h:
+ codecparsers: vp9parser: Delete the verbose redefine of MAX_LOOP_FILTER.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2369>
+
+2021-06-29 23:21:24 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: dma: Fail when mapping the non-linear buffer.
+ The current way of DMA buffer mapping is simply forwarding the job
+ to parent's map function, which is a mmap(). That can not handle the
+ non-linear buffers, such as tiling, compressed, etc. The incorrect
+ mapping of such buffers causes broken images, which are recognized
+ as bugs. We should directly block this kind of mapping to avoid the
+ misunderstanding.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2353>
+
+2021-07-02 13:10:25 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/closedcaption/gstccconverter.c:
+ * tests/check/elements/ccconverter.c:
+ ccconverter: fix framerate caps negotiation from non-cdp to cdp
+ We can only convert from non-cdp to cdp within the confines of valid cdp
+ framerates. The existing caps negotiation code was allowing any
+ framerate to convert to a cdp output which is incorrect and would hit an
+ assertion later.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2372>
+
+2021-06-09 15:16:39 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ codecs: h265decoder: Consider the conformance window changes when new_sequence().
+ The change of conformance_window_flag and crop windows size also has impact on the
+ output resolution and caps. So it deserves a trigger of new_sequence() to notify
+ the sub class to update caps and pool.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2312>
+
+2021-06-16 01:07:09 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ h265decoder: Don't hold reference to GstVideoCodecFrame for dropped picture
+ We are dropping RASL (Random Access Skipped Leading picture) which
+ is associated with an IRAP (Intra Random Access Picture) that has
+ NoRaslOutputFlag equal to 1, since the RASL picture will not be
+ outputted and also it should not be used for reference picture.
+ So, corresponding GstVideoCodecFrame should be released immediately.
+ Otherwise GstVideoDecoder baseclass will hold the unused frame.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2330>
+
+2021-06-21 13:23:13 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mxf/mxfdemux.c:
+ * gst/mxf/mxfvanc.c:
+ mxfvanc: Handle empty ANC essence
+ Not having any *actual* ANC is totally fine and common usage with several MXF
+ variants.
+ In order to properly advance the streams, the essence handler returns an empty
+ GAP buffer which gets converted to a GST_EVENT_GAP.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2345>
+
+2021-06-30 18:11:46 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfvideoenc.cpp:
+ mfvideoenc: Don't ignore previous flow return value
+ In case of ASYNC MFT (hardware encoder), we were ignoring previous
+ finish_frame or pad_push return value. so, error wasn't propagated.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2370>
+
+2021-05-20 00:49:15 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11compositor.cpp:
+ * sys/d3d11/gstd3d11compositor.h:
+ * sys/d3d11/gstd3d11compositorbin.cpp:
+ d3d11compositor: Add scaling policy to support PAR-aware scaling
+ Identical to https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1156
+ but for D3D11.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2263>
+
+2021-06-30 13:56:49 +0900 youngsoo.lee <youngsoo15.lee@gmail.com>
+
+ * gst-libs/gst/opencv/meson.build:
+ opencv: Fix build error on macOS
+ The build fails on macos with the following error:
+ /usr/local/Cellar/opencv/4.5.0_5/include/opencv4/opencv2/core/mat.hpp:2226:15: error: no template named 'initializer_list' in namespace 'std'
+ Mat_(std::initializer_list<_Tp> values);
+ fatal error: too many errors emitted, stopping now [-ferror-limit=]
+ 35 warnings and 20 errors generated.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2368>
+
+2021-03-03 15:38:45 -0300 Ezequiel Garcia <ezequiel@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codecvp8dec.c:
+ v4l2codecs: vp8: Check kernel version
+ Print a warning if the kernel version is too old.
+ Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2075>
+
+2021-03-02 18:13:27 -0300 Ezequiel Garcia <ezequiel@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codecvp8dec.c:
+ * sys/v4l2codecs/linux/v4l2-controls.h:
+ * sys/v4l2codecs/linux/videodev2.h:
+ * sys/v4l2codecs/linux/vp8-ctrls.h:
+ * sys/v4l2codecs/plugin.c:
+ v4l2codecs: vp8: Update to the new uAPI
+ Starting from Linux v5.13, the V4L2 stateless VP8 uAPI
+ is updated and stable.
+ Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2075>
+
+2021-06-27 01:15:49 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/nvcodec/gstnvrtcloader.c:
+ nvcodec: Enhance CUDA runtime compiler library loading on Windows
+ The name of installed CUDA runtime compiler library is formed like
+ nvrtc64_{major-version}{minor-version}_0.dll on Windows
+ (which is differnt from documented in https://docs.nvidia.com/cuda/nvrtc/index.html)
+ And minor version might not be exactly same as that of CUDA.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2362>
+
+2021-06-14 18:49:20 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11av1dec.cpp:
+ * sys/d3d11/gstd3d11av1dec.h:
+ * sys/d3d11/gstd3d11decoder.cpp:
+ * sys/d3d11/gstd3d11decoder.h:
+ * sys/d3d11/meson.build:
+ * sys/d3d11/plugin.c:
+ d3d11: Add AV1 decoder
+ Introduce Direct3D11/DXVA AV1 decoder element
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2365>
+
+2021-06-27 23:09:30 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gstav1decoder.c:
+ av1decoder: Store display resolution for duplicated picture
+ Target display resolution might be required by subclass implementation
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2365>
+
+2021-06-27 20:35:49 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gstav1decoder.c:
+ av1decoder: Fix debug typo
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2365>
+
+2021-06-27 20:19:39 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ av1parser: Fix tile size calculation
+ Remaining size should exclude already read "tile size bits".
+ And see also "5.11.1. General tile group OBU syntax"
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2365>
+
+2021-06-28 21:13:56 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/transportreceivebin.c:
+ webrtc receivebin: Drop serialized queries before receive queue
+ If they're not dropped, they can be blocked in the queue even if it is
+ leaky in the case where there is a buffer being pushed downstream. Since
+ in webrtc, it's unlikely that there will be a special allocator to
+ receive RTP packets, there is almost no downside to just ignoring the
+ queries.
+ Also drop queries if they get caught in the pad probe after the queue.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2363>
+
+2021-06-26 14:31:01 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/transportreceivebin.c:
+ * ext/webrtc/transportreceivebin.h:
+ webrtc receivebin: Only set queue to leaky when the pad is blocked
+ When the pad is no longer blocked, remove the leakyness to make sure
+ everything gets into the jitterbuffer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2363>
+
+2021-06-26 14:25:39 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/transportreceivebin.c:
+ webrtc receivebin: Don't unblock pad until sender is unblocked
+ As ther OpenSSL session is created when the receiver goes into
+ playing, we have to wait for the ICE session to be connected before we
+ can start delivering packets to the DTLS element.
+ Fixes #1599
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2363>
+
+2021-06-24 13:17:09 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * gst-libs/gst/webrtc/dtlstransport.c:
+ webrtcbin: Sync to the clock per stream and not per bundle
+ By using the clocksync inside the dtlssrtpenc, all streams inside a
+ bundled are synchronized together. This will cause problems if their
+ buffers are not already arriving synchronized: clocksync would wait for
+ a buffer on one stream and then buffers from the other stream(s) with
+ lower timestamps would all be sent out too late.
+ Placing the clocksync before the rtpbin and rtpfunnel synchronizes each
+ stream individually and they will be send out more smoothly as a result.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2355>
+
+2021-06-24 14:58:12 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/transportreceivebin.c:
+ * ext/webrtc/transportsendbin.c:
+ * ext/webrtc/transportstream.c:
+ * gst-libs/gst/webrtc/rtpreceiver.c:
+ * gst-libs/gst/webrtc/rtpreceiver.h:
+ webrtc: Remove the webrtc-priv.h header from public headers
+ And this time for real, also import it in a couple more places
+ inside the webrtc element to make it build.
+ Fixes #1607
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2359>
+
+2021-06-09 17:29:19 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvaav1dec.c:
+ va: change AV1 GstVideoAlignment setting to left-top corner.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2298>
+
+2021-06-18 10:37:06 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvah264dec.c:
+ va: h264dec: Set the GstVideoAlignment correctly.
+ We should set GstVideoAlignment based on the sequence's crop information.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2298>
+
+2021-06-09 17:21:18 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvah265dec.c:
+ va: h265dec: Set the GstVideoAlignment correctly.
+ We should set GstVideoAlignment based on the conformance window info.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2298>
+
+2021-06-09 17:19:04 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvapool.c:
+ va: pool: Add VideoCropMeta to the buffer if crop_top/left > 0.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2298>
+
+2021-06-09 17:14:42 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvabasedec.c:
+ * sys/va/gstvabasedec.h:
+ va: basedec: Copy the frames into other_pool if needed.
+ If decoder's crop_top/left value > 0 and the downstream does not
+ support the VideoCropMeta, we need to manually copy the frames
+ into the other_pool and output it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2298>
+
+2021-06-09 15:44:33 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvabasedec.c:
+ * sys/va/gstvabasedec.h:
+ va: basedec: Setup the other_pool to copy output if crop_left/top.
+ If the decoder has crop_top/left value > 0(e.g. the conformance
+ window in the H265). Which means that the real output picture
+ locates in the middle of the decoded buffer. If the downstream can
+ support VideoCropMeta, a VideoCropMeta is added to notify the
+ real picture's coordinate and size. But if not, we need to copy
+ it manually and the other_pool is needed. We always assume that
+ decoded picture starts from top-left corner, and so there is no
+ need to do this if crop_bottom/right value > 0.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2298>
+
+2021-06-07 00:49:49 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvapool.c:
+ va: No need to set the alignment for VideoMeta
+ The base va decoder's video_align is just used for calculation the
+ real decoded buffer's width and height. It does not have meaning
+ for the VideoMeta, because it does not align to the real picture
+ in the output buffer. We will use VideoCropMeta to replace it later.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2298>
+
+2021-06-03 00:07:05 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvapool.c:
+ va: Delete the useless align expand in va_pool_set_config().
+ The base va decoder's video_align is just used for calculation the
+ real decoded buffer's width and height. While the gst_video_info_align
+ just calculate the offset and stride based on the video_align. But
+ all the offsets and strides are overwritten in gst_va_dmabuf_allocator_try
+ or gst_va_allocator_try, which make that calculation useless.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2298>
+
+2021-06-28 17:41:38 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst-libs/gst/webrtc/webrtc-priv.h:
+ * gst-libs/gst/webrtc/webrtc_fwd.h:
+ webrtc: Re-add WebRTC object docs to the public headers
+ So they end up in the generated documentation and the Since markers
+ appear in the .gir files too.
+ Also remove wrong "Since: 1.16" markers for some objects that were
+ available since 1.14.0 already.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1609
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2366>
+
+2021-06-25 10:20:06 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/utils.c:
+ webrtcbin: Set transceiver kind and codec preferences immediately when creating it
+ Otherwise the on-new-transceiver signal will always be emitted with kind
+ set to UNKNOWN and no codec preferences although both are often known at
+ this point already.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2360>
+
+2021-06-25 12:14:03 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * tests/check/elements/webrtcbin.c:
+ webrtcbin: Add a test for setting codec preferences as part of "on-new-transceiver" when setting the remote offer
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2310>
+
+2021-06-25 12:13:42 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * tests/check/elements/webrtcbin.c:
+ webrtc: Use fail_unless_equals_string() for string assertions
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2310>
+
+2021-06-08 11:40:14 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Store newly created transceivers when creating an answer also in the seen transceivers list
+ Otherwise it might be used a second time for another media afterwards.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2310>
+
+2021-06-08 11:39:27 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: When creating a new transceiver as part of creating the answer also take its codec preferences into account
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2310>
+
+2021-06-08 11:38:11 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Fix a couple of caps leaks of the offer caps
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2310>
+
+2021-06-24 12:28:11 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Stop transceivers update after first SDP error on data channel
+ When invalid SDP is supplied, _update_data_channel_from_sdp_media() sets the
+ GError, so it is invalid to continue any further SDP processing, we have to exit
+ early when the first error is raised.
+ This change is similar to the one applied in
+ 064428cb34572fa1a018ebbaba6925967ba99dc0.
+ See also #1595
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2356>
+
+2021-06-21 16:50:46 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * tests/check/elements/webrtcbin.c:
+ webrtcbin test: Fix race in new test
+ Pull a buffer from a sink to make sure that the caps are already
+ set before trying to update them.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2348>
+
+2021-06-22 16:12:57 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
+
+ * sys/msdk/gstmsdkenc.c:
+ * sys/msdk/gstmsdkenc.h:
+ * sys/msdk/gstmsdkvp9enc.c:
+ msdk: fix qp range for vp9enc
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2349>
+
+2021-06-10 11:46:35 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/timecode/gstavwait.c:
+ avwait: Don't consider it a segment change if the segment is the same except for the position
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2319>
+
+2021-06-21 17:13:33 +0900 Seungha Yang <seungha@centricular.com>
+
+ d3d11: Add support for GRAY and more YUV formats
+ By this commit, following formats will be newly supported by d3d11 elements
+ * Y444_{8, 12, 16}LE formats:
+ Similar to other planar formats. Such Y444 variants are not supported
+ by Direct3D11 natively, but we can simply map each plane by
+ using R8 and/or R16 texture.
+ * P012_LE:
+ It is not different from P016_LE, but defining P012 and P016 separately
+ for more explicit signalling. Note that DXVA uses P016 texture
+ for 12bits encoded bitstreams.
+ * GRAY:
+ This format is required for some codecs (e.g., AV1) if monochrome
+ is supported
+ * 4:2:0 planar 12bits (I420_12LE) and 4:2:2 planar 8, 10, 12bits
+ formats (Y42B, I422_10LE, and I422_12LE)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2346>
+
+2021-06-10 11:42:24 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/mpegtsmux/gstbasetsmux.c:
+ tsmux: When selecting random PIDs, name the pads according to those PIDs
+ Some elements will make use of the automatically generated names to
+ create new pads in future muxer instances, for example splitmuxsink.
+ Previously we would've created a pad with a random pid that would become
+ "sink_0", and then on a new muxer instance a pad "sink_0" and tsmux
+ would've then failed because 0 is not a valid PID.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2318>
+
+2021-06-23 01:43:08 +0900 Seungha Yang <seungha@centricular.com>
+
+ mfvideoenc: Enhance B-frame timestamp handling
+ When B-frame is enabled, encoder seems to adjust PTS of encoded sample
+ by using frame duration.
+ For instance, one observed timestamp pattern by using B-frame enabled
+ and 30fps stream is:
+ * Frame-1: MF pts 0:00.033333300 MF dts 0:00.000000000
+ * Frame-2: MF pts 0:00.133333300 MF dts 0:00.033333300
+ * Frame-3: MF pts 0:00.066666600 MF dts 0:00.066666600
+ * Frame-4: MF pts 0:00.099999900 MF dts 0:00.100000000
+ We can notice that the amount of PTS shift is frame duration and
+ Frame-4 exhibits PTS < DTS.
+ To compensate shifted timestamp, we should
+ calculate the timestamp offset and re-calculate DTS correspondingly.
+ Otherwise, total timeline of output stream will be shifted, and that
+ can cause time sync issue.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2354>
+
+2021-06-10 11:36:43 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/mpegtsmux/gstbasetsmux.c:
+ tsmux: Recheck existing pad PIDs when requesting a new pad with a random pid
+ Previously pads might have been requested already (e.g. in NULL state),
+ then reset was called (e.g. because changing state) and then a new pad
+ was requested. Resetting is re-creating the internal muxer object and as
+ such resetting the pid counter, so the next requested pad would get the
+ same pid as the first requested pad which then leads to collisions.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2317>
+
+2021-06-22 02:34:18 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfh264enc.cpp:
+ * sys/mediafoundation/gstmfh265enc.cpp:
+ * sys/mediafoundation/gstmfvideoenc.cpp:
+ mfh264enc, mfh265enc: Set profile string to src caps
+ Set configured profile to src caps so that downstream can figure
+ out selected profile.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2347>
+
+2021-04-21 16:24:00 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/webrtcdatachannel.h:
+ * gst-libs/gst/webrtc/datachannel.c:
+ * gst-libs/gst/webrtc/datachannel.h:
+ * gst-libs/gst/webrtc/webrtc-priv.h:
+ webrtc lib: Make the datachannel struct private
+ This will prevent any unsafe access.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2241>
+
+2021-04-21 16:19:41 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst-libs/gst/webrtc/dtlstransport.c:
+ * gst-libs/gst/webrtc/dtlstransport.h:
+ * gst-libs/gst/webrtc/webrtc-priv.h:
+ webrtc lib: Make the DTLSTransport struct private
+ This will prevent any unsafe access.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2241>
+
+2021-04-21 16:17:23 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/nicetransport.h:
+ * gst-libs/gst/webrtc/icetransport.c:
+ * gst-libs/gst/webrtc/icetransport.h:
+ * gst-libs/gst/webrtc/webrtc-priv.h:
+ webrtc lib: Make the icetransport struct private
+ This will prevent any unsafe access.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2241>
+
+2021-04-21 16:04:26 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst-libs/gst/webrtc/rtpreceiver.h:
+ * gst-libs/gst/webrtc/webrtc-priv.h:
+ webrtc lib: Make the rtpreceiver struct private
+ This will prevent any unsafe access.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2241>
+
+2021-04-21 16:00:57 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * gst-libs/gst/webrtc/rtpsender.c:
+ * gst-libs/gst/webrtc/rtpsender.h:
+ * gst-libs/gst/webrtc/webrtc-priv.h:
+ webrtc lib: Make the rtpsender struct private
+ This will prevent any unsafe access.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2241>
+
+2021-04-21 16:00:34 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/webrtctransceiver.h:
+ * gst-libs/gst/webrtc/rtptransceiver.c:
+ * gst-libs/gst/webrtc/rtptransceiver.h:
+ * gst-libs/gst/webrtc/webrtc-priv.h:
+ webrtc lib: Make the transceiver struct private
+ This will prevent any unsafe access.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2241>
+
+2021-06-18 19:26:35 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * ext/x265/gstx265enc.c:
+ x265enc: add negative DTS support
+ Use the same set_min_pts approach as x264enc.
+ Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/304
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2340>
+
+2021-06-17 20:10:35 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/decklink/gstdecklinkaudiosrc.cpp:
+ decklinkaudiosrc: Don't assume that stream time is always valid
+ As per SDK doc, IDeckLinkInputCallback::VideoInputFrameArrived
+ method might not provide video frame and it can be null.
+ In that case, given stream_time can be invalid.
+ So, we should not try to convert GST_CLOCK_TIME_NONE
+ by using gst_clock_adjust_with_calibration()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2337>
+
+2021-06-14 13:16:30 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst-libs/gst/transcoder/gsttranscoder.c:
+ transcoder: Fix usage of g_error_propagate
+ In the error callback we were propagating an error we were not owning
+ which is incorrect use of the API.
+ Also we were clearing a GError we already propagated which is wrong
+ as propagating gives ownership away.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2325>
+
+2021-06-14 13:13:24 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst-libs/gst/transcoder/gsttranscoder.c:
+ transcoder: Add a missing object unlocking
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2325>
+
+2021-06-14 15:07:05 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/faad/gstfaad.c:
+ faad: fix typo in element documentation
+ seealso is now see_also
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2323>
+
+2021-06-17 20:17:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * tests/check/elements/msdkh264enc.c:
+ tests: msdkh264dec: Run test only if factory is available.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2336>
+
+2021-06-17 11:25:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/msdk/gstmsdkcontext.c:
+ msdk: Demote error log message to warning.
+ It is not an error that the available hardware doesn't support VA-API/MSDK. Just
+ none plugin features will be registered.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2336>
+
+2021-06-20 18:48:21 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11_private.h:
+ * gst-libs/gst/d3d11/gstd3d11bufferpool.cpp:
+ * gst-libs/gst/d3d11/gstd3d11device.cpp:
+ * gst-libs/gst/d3d11/gstd3d11format.cpp:
+ * gst-libs/gst/d3d11/gstd3d11memory.cpp:
+ * gst-libs/gst/d3d11/gstd3d11utils.cpp:
+ * gst-libs/gst/d3d11/meson.build:
+ libs: d3d11: Port to C++
+ In general, C++ COM APIs are slightly less verbose and more readable
+ than C APIs. And C++ supports some helper methods
+ (smart pointer and C++ only macros for example) which are not allowed for C.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2343>
+
+2021-06-16 10:23:37 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+ * sys/msdk/gstmsdk.c:
+ * sys/msdk/meson.build:
+ msdk: declare external dependencies
+ Track kernel and VA driver dependencies so gstreamer
+ will re-inspect the plugin if any of them change.
+ Also, do not blacklist the plugin if !msdk_is_available
+ since it could be a transient issue caused by one or
+ more external dependency issues (e.g. wrong/missing
+ driver specified, but corrected by user later on).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2335>
+
+2021-06-17 01:00:33 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/videoparsers/gsth264parse.c:
+ * gst/videoparsers/gsth265parse.c:
+ h264parse,h265parse: Push parameter set NAL units again per segment-done
+ Some decoder implementations might drain out internal buffers and
+ reset its status on segment-done event. So, in case that
+ upstream stream-format is packetized but downstream supports only
+ byte-format, required codec-data might not be forwarded toward
+ downstream if such parameter set NAL units don't exist in inband
+ bitstream. Therefore, parse elements should re-send parameter set NAL
+ units like the case of flush event.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2334>
+
+2021-06-16 10:31:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst-libs/gst/codecs/gstvp8decoder.c:
+ vp8decoder: Drain the output queue on EOS/finish
+ The finish() virtual method was flushing the queue, instead push the
+ remaining buffers. It is not required to reset in finish() unlike
+ drain(). This a regression causing last frame to always be lost.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2333>
+
+2021-06-16 10:30:18 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst-libs/gst/codecs/gstvp8decoder.c:
+ v4l2slvp8dec: Only ask for output delay once per negotiation
+ While it's technically possible to change it per frame, asking for
+ that every frame is not very useful. This mimic H264 decoder better.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2333>
+
+2021-06-16 16:56:14 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvabasedec.c:
+ va: Improve the default mapping between rt_format and video format.
+ We add 12 bits entries into this default mapping. And the old mapping
+ is not precise. For example, the NV12 should not be used as the default
+ mapping for VA_RT_FORMAT_YUV422 and VA_RT_FORMAT_YUV444, it is even not
+ a 422 or 444 format.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2332>
+
+2021-06-16 16:43:40 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvah265dec.c:
+ va: Add 12 bits rt_format setting in H265.
+ In order to support 12 bits format decoding, we need to add the
+ support for 12 bits rt_format in H265.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2332>
+
+2021-06-16 16:32:30 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvavideoformat.c:
+ va: Fix a typo in video format mapping.
+ GST_VIDEO_FORMAT_Y412_LE is a 4:4:4 format and so should be mapped
+ to VA_RT_YUV444_12 rt format.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2332>
+
+2021-06-15 21:36:43 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst/videoparsers/gsth265parse.c:
+ h265parse: Fix a typo in get_compatible_profile_caps().
+ The GST_H265_PROFILE_MAIN_444_10 profile should be compatible with
+ GST_H265_PROFILE_SCREEN_EXTENDED_MAIN_444_10, not the current
+ GST_H265_PROFILE_SCREEN_EXTENDED_MAIN_10.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2328>
+
+2020-12-15 18:11:08 +0800 Randy Li (ayaka) <ayaka@soulik.info>
+
+ * ext/wayland/gstwaylandsink.c:
+ * ext/wayland/gstwaylandsink.h:
+ * ext/wayland/wlwindow.c:
+ * ext/wayland/wlwindow.h:
+ waylandsink: prevent frame callback being released twice
+ For those using context from the application which
+ would be the embedded video case, if the frame callback
+ is entering at the same time as window is finalizing,
+ a wayland proxy object would be destroyed twice, leading
+ the refcout less than zero in the second time, it can
+ throw an abort() in wayland.
+ For those top window case, which as a directly connection
+ to the compositor, they can stop the message queue then
+ the frame callback won't happen at the same time as the
+ window is finalizing. It doesn't think it would bother
+ them about this.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1883>
+
+2021-06-14 16:04:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/codecalpha/gstalphadecodebin.c:
+ * sys/v4l2codecs/gstv4l2codecalphadecodebin.c:
+ alphadecodebin: Fix stall due to QoS
+ alphacombine element is a simple element that assumes buffers are always
+ paired, or at least that missing buffers are signalled with a GAP. The QoS
+ implementation in the GstVideoDecoder base class allow decoders dropping
+ frames independently and that could lead to stall in alphacombine.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2326>
+
+2021-02-02 11:02:02 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/openjpeg/gstopenjpegenc.c:
+ * gst-libs/gst/codecparsers/gstjpeg2000sampling.c:
+ * gst-libs/gst/codecparsers/gstjpeg2000sampling.h:
+ * gst/videoparsers/gstjpeg2000parse.c:
+ jpeg2000parse, openjpeg: add support for YCrCb 4:1:1 sampling
+ Add YCrCb 4:1:1 support in openjpeg elements
+ and fix in jpeg2000parse the YCrCb 4:1:0 support
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2321>
+
+2021-06-10 23:35:38 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.cpp:
+ * sys/d3d11/gstd3d11h264dec.cpp:
+ * sys/d3d11/gstd3d11h265dec.cpp:
+ * sys/d3d11/gstd3d11mpeg2dec.cpp:
+ * sys/d3d11/gstd3d11vp8dec.cpp:
+ * sys/d3d11/gstd3d11vp9dec.cpp:
+ d3d11decoder: Don't print error log when no DPB texture is available
+ ... but we are flushing. The condition is quite expected situation
+ when pipeline is in the middle of seeking operation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2320>
+
+2021-05-23 18:17:38 +0800 Yinhang Liu <yinhang.liu@intel.com>
+
+ * sys/msdk/gstmsdkenc.c:
+ msdkenc: add extbrc support in ext-coding-props property
+ The SDK can support external bitrate control [1], so add extbrc
+ to enable this feature.
+ [1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#mfxextcodingoption2
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2139>
+
+2021-05-23 18:13:25 +0800 Yinhang Liu <yinhang.liu@intel.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * sys/msdk/gstmsdkenc.c:
+ * sys/msdk/gstmsdkenc.h:
+ msdkenc: add ext-coding-props for external coding options
+ This property supports passing multiple parameters using GstStructure.
+ Example usage:
+ ext-coding-props="props,key0=value0,key1=value1,..."
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2139>
+
+2021-06-05 21:59:50 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ codecs: Fix the H265 poc out of order warning.
+ We always get a warning such as:
+ h265decoder gsth265decoder.c:1432:gst_h265_decoder_do_output_picture: \
+ <vah265dec0> Outputting out of order 255 -> 0, likely a broken stream
+ in H265 decoder.
+ The problem is caused because we fail to reset the last_output_poc when
+ we get IDR and BLA. The incoming IDR and BLA frame already bump all the
+ frames in the DPB, but we forget to reset the last_output_poc, which
+ make the POC out of order and generate the warning all the time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2294>
+
+2021-06-10 01:09:44 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/gstwasapi2sink.c:
+ wasapi2sink: Fix ringbuffer object leak
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2315>
+
+2021-06-10 00:24:24 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/gstwasapi2ringbuffer.cpp:
+ wasapi2ringbuffer: Implement GstAudioRingBuffer::pause()
+ WASAPI doesn't support PAUSE so it's not different from Stop().
+ When pipeline is in paused state, we don't need to waste CPU resource
+ for feeding silent buffers.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2315>
+
+2021-06-07 01:49:26 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11_fwd.h:
+ * gst-libs/gst/d3d11/gstd3d11memory.c:
+ * gst-libs/gst/d3d11/gstd3d11memory.h:
+ d3d11memory: Implement GstAllocator::mem_copy method
+ There are a few places which require deep copy
+ (basesink on drain for example). Also this implementation can be
+ useful for future use case.
+ One probable future use case is that copying DPB texture to
+ another texture for in-place transform since our DPB texture is never
+ writable, and therefore copying is unavoidable.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2308>
+
+2021-06-08 21:35:20 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/gstwasapi2client.cpp:
+ * sys/wasapi2/gstwasapi2client.h:
+ * sys/wasapi2/gstwasapi2device.c:
+ * sys/wasapi2/gstwasapi2ringbuffer.cpp:
+ * sys/wasapi2/gstwasapi2src.c:
+ * sys/wasapi2/gstwasapi2util.c:
+ * sys/wasapi2/gstwasapi2util.h:
+ wasapi2src: Add support for loopback recording
+ ... and add various device error handling.
+ This loopback implementation is functionally identical to that of wasapisrc.
+ When it's enabled, wasapi2src will read data from render device instead of
+ capture device.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2311>
+
+2021-05-10 20:45:28 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/gstwasapi2client.cpp:
+ * sys/wasapi2/gstwasapi2client.h:
+ * sys/wasapi2/gstwasapi2device.c:
+ * sys/wasapi2/gstwasapi2ringbuffer.cpp:
+ * sys/wasapi2/gstwasapi2ringbuffer.h:
+ * sys/wasapi2/gstwasapi2sink.c:
+ * sys/wasapi2/gstwasapi2sink.h:
+ * sys/wasapi2/gstwasapi2src.c:
+ * sys/wasapi2/gstwasapi2src.h:
+ * sys/wasapi2/gstwasapi2util.c:
+ * sys/wasapi2/gstwasapi2util.h:
+ * sys/wasapi2/meson.build:
+ * sys/wasapi2/plugin.c:
+ wasapi2: Rewrite plugin and implement audioringbuffer subclass
+ ... based on MediaFoundation work queue API.
+ By this commit, wasapi2 plugin will make use of pull mode scheduling
+ with audioringbuffer subclass.
+ There are several drawbacks of audiosrc/audiosink subclassing
+ (not audiobasesrc/audiobasesink) for WASAPI API, which are:
+ * audiosrc/audiosink classes try to set high priority to
+ read/write thread via MMCSS (Multimedia Class Scheduler Service)
+ but it's not allowed in case of UWP application.
+ In order to use MMCSS in UWP, application should use MediaFoundation
+ work queue indirectly.
+ Since audiosrc/audiosink scheduling model is not compatible with
+ MediaFoundation's work queue model, audioringbuffer subclassing
+ is required.
+ * WASAPI capture device might report larger packet size than expected
+ (i.e., larger frames we can read than expected frame size per period).
+ Meanwhile, in any case, application should drain all packets at that moment.
+ In order to handle the case, wasapi/wasapi2 plugins were making use of
+ GstAdapter which is obviously sub-optimal because it requires additional
+ memory allocation and copy.
+ By implementing audioringbuffer subclassing, we can avoid such inefficiency.
+ In this commit, all the device read/write operations will be moved
+ to newly implemented wasapi2ringbuffer class and
+ existing wasapi2client class will take care of device enumeration
+ and activation parts only.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2306>
+
+2021-06-06 17:32:59 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/gstwasapi2client.cpp:
+ wasapi2: Use AUDCLNT_STREAMFLAGS_NOPERSIST flag
+ ... so that we can disable persistence of our mute/volume status
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2306>
+
+2021-06-06 17:28:56 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/gstwasapi2src.c:
+ wasapi2src: Fix doc typo
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2306>
+
+2021-05-26 00:12:59 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/wpe-extension/gstwpebusmsgforwarder.c:
+ wpe: Rename `undeserializable_type` to `not_deserializable_type`
+ Making it more readable.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273>
+
+2021-05-25 23:58:27 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ * ext/wpe/gstwpesrcbin.cpp:
+ * ext/wpe/wpe-extension/gstwpebusmsgforwarder.c:
+ wpe: Make forwarded messages layout more like GstBinForwaded messages
+ Making it look more like how we do this kind of things in other places.
+ See: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252#note_927653
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273>
+
+2021-05-21 10:52:01 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/wpe/gstwpesrcbin.cpp:
+ * tests/examples/wpe/wpe.c:
+ wpe: Make wpesrc!video pad an always pad
+ There should always be a `video` pad no matter what.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273>
+
+2021-05-21 10:31:53 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/wpe-extension/gstwpeextension.c:
+ wpe: Remove unused env var
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273>
+
+2021-05-21 10:31:37 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/wpe-extension/gstwpeaudiosink.c:
+ wpe: Fix atomic usage
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273>
+
+2021-05-21 10:29:11 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/gstwpesrcbin.cpp:
+ wpe: Add a note able requiring tracing subsystem for message forwarding
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273>
+
+2021-05-21 10:18:21 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/wpe-extension/gstwpeaudiosink.c:
+ wpe: Fix check on whether MEMFD_CREATE is available
+ The ordering of the ifdef was wrong
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273>
+
+2021-05-21 10:13:01 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/gstwpesrcbin.cpp:
+ * ext/wpe/wpe-extension/gstwpebusmsgforwarder.c:
+ wpe: Plug a leak
+ We were freeing after returning
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273>
+
+2021-05-21 09:54:33 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ Revert "wpe: Properly respect LIBGL_ALWAYS_SOFTWARE"
+ This causes issues I didn't see:
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252#note_927633
+ Let's just tell people to use capsfilter to force software rendering in
+ `wpesrc` for now.
+ The intent was to allow forcing it easily in playbin2 for the CI, but
+ we will do it some other way and see when time comes.
+ This reverts commit 9415106b029e5469ca28d882dc46ecc38786d4c9.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273>
+
+2021-05-28 15:18:53 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/debugutils/debugutilsbad.c:
+ * gst/debugutils/gstdebugutilsbadelements.h:
+ * gst/debugutils/gstvideocodectestsink.c:
+ * gst/debugutils/gstvideocodectestsink.h:
+ * gst/debugutils/meson.build:
+ debugutils: Introduce videocodectestsink
+ This is a video specific sink used to test video CODEC conformance. This is similar
+ to a combination of filesink and testsink, but will skip over any type of
+ padding that GStreamer Video library introduces. This is needed in order to obtain the
+ correct checksum or raw yuv data.
+ This element currently support writing back non-padded raw I420 through the
+ location property and will calculate an MD5 and post it as an element message
+ of type conformance/checksum. More output format or checksum type could be
+ added in the future as needed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2287>
+
+2021-06-04 01:44:47 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/vulkan/gstvkinstance.c:
+ vkinstance: Don't abort in case that system has no available vulkan device
+ Specification doesn't have restriction that returned
+ pPhysicalDeviceCount value must be non-zero
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2304>
+
+2021-06-03 11:24:53 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mpegtsdemux/tsdemux.c:
+ tsdemux: Clear all streams when rewinding
+ This avoids sending out partial invalid data downstream which could cause
+ decoders (ex: `dvdlpmdec`) to error out.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2301>
+
+2021-05-29 01:48:15 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11device.c:
+ * gst-libs/gst/d3d11/gstd3d11format.h:
+ * sys/d3d11/gstd3d11converter.cpp:
+ * tests/check/elements/d3d11colorconvert.c:
+ d3d11: Add support for YV12 and NV21 formats
+ Handle UV swapped 4:2:0 8bits formats
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2290>
+
+2021-06-03 18:28:26 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11window_win32.cpp:
+ d3d11window_win32: Ensure closing internal HWND from window thread
+ Window handle must be closed from its own message thread
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2302>
+
+2021-06-03 10:31:39 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ doc: Update cache after pixel format reorder
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2303>
+
+2021-06-03 10:03:19 +0800 Yinhang Liu <yinhang.liu@intel.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * sys/msdk/gstmsdk.c:
+ * sys/msdk/gstmsdkav1dec.c:
+ * sys/msdk/gstmsdkh264dec.c:
+ * sys/msdk/gstmsdkh264enc.c:
+ * sys/msdk/gstmsdkh265dec.c:
+ * sys/msdk/gstmsdkh265enc.c:
+ * sys/msdk/gstmsdkmjpegdec.c:
+ * sys/msdk/gstmsdkmjpegenc.c:
+ * sys/msdk/gstmsdkmpeg2dec.c:
+ * sys/msdk/gstmsdkmpeg2enc.c:
+ * sys/msdk/gstmsdkvc1dec.c:
+ * sys/msdk/gstmsdkvp8dec.c:
+ * sys/msdk/gstmsdkvp9dec.c:
+ * sys/msdk/gstmsdkvp9enc.c:
+ * sys/msdk/gstmsdkvpp.c:
+ doc: add the msdk elements
+ Supported elements:
+ msdkav1dec, msdkh264dec, msdkh264enc, msdkh265dec, msdkh265enc,
+ msdkmjpegdec, msdkmjpegenc, msdkmpeg2dec, msdkmpeg2enc, msdkvc1dec,
+ msdkvp8dec, msdkvp9dec, msdkvp9enc, msdkvpp.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2296>
+
+2021-06-02 14:17:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * ext/wayland/wlwindow.c:
+ waylandsink: Fix for missing initial configure
+ We were doing our initial "empty" commit on the subsurface instead of the
+ toplevel surface. As an incidence, we should not have received a configure
+ event ever, not just on mutter. This fixes the following warning when using
+ mutter compositor (aka gnome-shell):
+ waylandsink wlwindow.c:304:gst_wl_window_new_toplevel: The compositor did not send configure event.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2299>
+
+2021-06-02 11:26:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * tests/check/elements/camerabin.c:
+ test: camerabin: Fix buffer size calculation
+ We were assunming that GStreamer size for RGB (24bit packed) data was width x
+ height x 3, but GStreamer defaults to specific alignment. Use GstVideoInfo API
+ in order to obtain the buffer size.
+ This fixes failure seen when trying to merge: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/998
+ which make us negoaite 1x1 instead of 16x16 in this test.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2297>
+
+2021-05-31 17:51:58 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ * gst-libs/gst/codecs/gsth265picture.c:
+ * gst-libs/gst/codecs/gsth265picture.h:
+ codecs: Integrate H265 DPB full check into need_bump().
+ The current DPB check of H265 is not very correct. The current frame
+ is already in the DPB when we check whether the DPB is full.
+ For example, the DPB max size is 16 and we have 15 ref frames in the
+ DPB, so the gst_h265_dpb_delete_unused() cleans no one, and then plus
+ the current frame, the DPB is 16. This causes an error return, but in
+ fact, the stream is correct.
+ We now integrate the DPB full check into the need_bump() function.
+ We add the correct frame into to DPB and then check whether the picture
+ num is bigger than max_num_pics of DPB(which means there is no room for
+ the current picture). If true, we bump the DPB immediately.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2291>
+
+2021-06-01 15:28:57 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson.build:
+ Back to development
+
=== release 1.19.1 ===
2021-06-01 00:14:22 +0100 Tim-Philipp Müller <tim@centricular.com>