summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2021-06-01 00:14:22 +0100
committerTim-Philipp Müller <tim@centricular.com>2021-06-01 00:14:24 +0100
commit6d9125f01c115b13f3e525f9508ee98c4307499c (patch)
tree6f705d727c16d5810ba8c89b2fb7e604c55edde9
parent89bc4643606486a6b9038a71063cdc2c6d24e821 (diff)
Release 1.19.11.19.1
-rw-r--r--ChangeLog12165
-rw-r--r--NEWS2056
-rw-r--r--README2
-rw-r--r--RELEASE15
-rw-r--r--gst-plugins-bad.doap10
-rw-r--r--meson.build2
6 files changed, 12257 insertions, 1993 deletions
diff --git a/ChangeLog b/ChangeLog
index 86cb24720..acb734309 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,12172 @@
+=== release 1.19.1 ===
+
+2021-06-01 00:14:22 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ * NEWS:
+ * README:
+ * RELEASE:
+ * gst-plugins-bad.doap:
+ * meson.build:
+ Release 1.19.1
+
+2021-04-08 10:11:52 -0300 Daniel Almeida <daniel.almeida@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codecvp8dec.c:
+ v4l2codecs: gstv4l2codecsvp8dec: implement a render delay
+ The v4l2 backend support delayed output for performance reasons.
+ It is then possible to use render delays to queue multiple requests
+ simultaneously, thus increasing performance.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2150>
+
+2021-04-07 18:24:27 -0300 Daniel Almeida <daniel.almeida@collabora.com>
+
+ * gst-libs/gst/codecs/gstvp8decoder.c:
+ * gst-libs/gst/codecs/gstvp8decoder.h:
+ codecs: gstvp8decoder: add support for render delay
+ Some decoding APIs support delayed output for performance reasons.
+ One example would be to request decoding for multiple frames and
+ then query for the oldest frame in the output queue.
+ This also increases throughput for transcoding and improves seek
+ performance when supported by the underlying backend.
+ Introduce support in the vp8 base class, so that backends that
+ support render delays can actually implement it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2150>
+
+2021-05-17 10:49:41 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Stop transceivers update after first SDP error
+ When invalid SDP is supplied, _update_transceiver_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.
+ Fixes #1595
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2254>
+
+2021-05-28 23:21:19 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11device.c:
+ * sys/d3d11/gstd3d11decoder.cpp:
+ d3d11: Suppress some warning logs
+ We uses gst_d3d11_device_new() for enumerating device which can
+ fail for some reason. Don't print warning log for the case.
+ And decoding capability check is the same case as well.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2286>
+
+2021-05-28 17:05:02 -0400 Roman Sivriver <roman@rsiv.net>
+
+ * ext/hls/gsthlssink2.c:
+ hlssink2: Initialize debug category to prevent an assert with `fatal-warnings`
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2288>
+
+2021-05-21 20:02:53 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11compositor.cpp:
+ d3d11compositor: Reuse converter on alpha update
+ ... instead of creating converter object
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2276>
+
+2021-05-18 01:24:29 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11compositor.cpp:
+ * sys/d3d11/gstd3d11convert.cpp:
+ * sys/d3d11/gstd3d11converter.cpp:
+ * sys/d3d11/gstd3d11converter.h:
+ * sys/d3d11/gstd3d11overlaycompositor.cpp:
+ * sys/d3d11/gstd3d11shader.cpp:
+ * sys/d3d11/gstd3d11shader.h:
+ * sys/d3d11/gstd3d11window.cpp:
+ * sys/d3d11/gstd3d11window_dummy.cpp:
+ d3d11converter: Introduce config to be extensible
+ Add a config argument like that of GstVideoConverter so that
+ we can add more options without modifying existing methods
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2276>
+
+2021-05-21 21:30:42 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11compositor.cpp:
+ * sys/d3d11/gstd3d11converter.cpp:
+ * sys/d3d11/gstd3d11overlaycompositor.cpp:
+ * sys/d3d11/gstd3d11shader.cpp:
+ * sys/d3d11/gstd3d11shader.h:
+ d3d11shader: Don't hold state object in GstD3D11Quad
+ We might want to update state object
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2276>
+
+2021-05-27 16:22:42 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ * sys/v4l2codecs/gstv4l2codech264dec.h:
+ * sys/v4l2codecs/gstv4l2codecvp8dec.c:
+ * sys/v4l2codecs/gstv4l2codecvp8dec.h:
+ * sys/v4l2codecs/plugin.c:
+ v4lcodecs: Validate src formats
+ This add src format validation, this avoid registering element for
+ drivers we don't support any of their src formats. This also special
+ case the AlphaDecodeBin wrapper, as we know that alphacombine element
+ only support I420 and NV12 for now.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2272>
+
+2021-05-22 16:29:09 -0300 Daniel Almeida <daniel.almeida@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codecalphadecodebin.c:
+ * sys/v4l2codecs/gstv4l2codecalphadecodebin.h:
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ * sys/v4l2codecs/gstv4l2codecvp8dec.c:
+ * sys/v4l2codecs/gstv4l2decoder.c:
+ * sys/v4l2codecs/gstv4l2decoder.h:
+ * sys/v4l2codecs/meson.build:
+ v4l2codecs: add wrappers for alpha decode
+ codecalpha is a new plugin introduced to support VP8/VP9 alpha as
+ defined in the WebM and Matroska specifications. It splits the stream
+ into two streams, one for the alpha and one for the actual content,
+ then it decodes them separately with vpxdec and finally combine the
+ results as A420 or AV12 (i.e. YUV + an extra alpha plane).
+ The workflow above is setup by means of a bin, gstcodecalphabin.
+ This patch simulates the same workflow into the v4l2codecs namespace,
+ thus using the new v4l2 stateless decoders for hardware acceleration.
+ This is so we can register the new alpha decode elements only if the
+ hardware produces formats we support, i.e. I420 or NV12 for now.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2272>
+
+2021-05-19 18:45:19 -0300 Daniel Almeida <daniel.almeida@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/codecalpha/gstalphacombine.c:
+ codecalpha: alphacombine: add support for NV12/AV12
+ Alpha combine works by appending the GstMemory for the alpha channel
+ to the GstBuffer containing I420, thereby pushing A420 on its src pad.
+ Add support for the same workflow for NV12, thereby producing the
+ recently introduced AV12 format (NV12 + Alpha).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2277>
+
+2021-05-25 20:21:34 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/interlace/gstinterlace.c:
+ interlace: Don't set field-order field for progressive caps
+ That would cause negotiation issue
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2282>
+
+2021-05-25 19:47:28 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/interlace/gstinterlace.c:
+ interlace: Drop framerate from query caps of sinkpad
+ Query caps should return caps which represent the element can accept,
+ not resulting format.
+ Fixing negotiation error with
+ gst-launch-1.0 videotestsrc ! video/x-raw,framerate=25/1 ! interlace field-pattern=0 ! fakesink
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2282>
+
+2021-05-26 16:37:06 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11compositor.cpp:
+ d3d11compositor: Fix caps update handling
+ New caps is applied only when previous buffer is consumed if any.
+ So, the lastest given caps might not be corresponding to the current buffer
+ to be handled.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2284>
+
+2021-05-20 13:47:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/va/gstvadisplay.h:
+ * gst-libs/gst/va/gstvadisplay_drm.h:
+ * gst-libs/gst/va/gstvadisplay_wrapped.h:
+ libs: va: display: Handle auto clean up macros.
+ Add G_DEFINE_AUTOPTR_CLEANUP_FUNC macro for display classes, so auto
+ pointers are possible to users.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2269>
+
+2021-05-17 19:06:34 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvah265dec.c:
+ va: h265dec: Add current picture into reference list for SCC.
+ The current picture is not in the DPB, so we need to add it manually
+ to the reference list when SCC is enabled.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2255>
+
+2021-05-21 23:47:14 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvah265dec.c:
+ va: h265dec: Set Screen Content extension (SCC) for picture parameters.
+ We already declare the support of HEVC screen content extension profiles
+ in the profile mapping list, but we fail to generate the correct VA picture
+ parameters buffers. This may cause the GPU hang.
+ We need to fill the buffer of VAPictureParameterBufferHEVCExtension correctly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2255>
+
+2021-05-17 17:47:07 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvah265dec.c:
+ va: h265dec: Use get_profile_from_sps() to recognize the profile.
+ The function of gst_h265_get_profile_from_sps() is better than the
+ function gst_h265_profile_tier_level_get_profile() when we recognize
+ the profile of the stream, becaue it considers the compatibility.
+ It is also used by h265parse to recognize the profile. So it is
+ better to keep the same behaviour with the parse and other decoders.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2255>
+
+2021-05-21 23:21:12 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvah265dec.c:
+ va: h265dec: Set range extension for picture and slice parameters.
+ We already declare the support of HEVC range extension profiles in
+ the profile mapping list, but we fail to generate the correct VA
+ picture and slice parameters buffers. This may cause the GPU hang.
+ We need to fill the buffer of VAPictureParameterBufferHEVCExtension
+ and VASliceParameterBufferHEVCExtension correctly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2255>
+
+2021-05-24 18:18:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvah265dec.c:
+ va: h265dec: Use picture and slide extension parameters.
+ This is transitional commit to later implement extended and screen
+ profiles.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2255>
+
+2021-05-24 18:34:25 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/aom/gstav1enc.c:
+ * ext/dash/gstdashdemux.c:
+ * ext/dtls/gstdtlsdec.c:
+ * ext/dtls/gstdtlsenc.c:
+ * ext/fdkaac/gstfdkaacenc.c:
+ * ext/sctp/gstsctpenc.c:
+ * ext/sndfile/gstsfdec.c:
+ * gst/videoparsers/gstav1parse.c:
+ * gst/videoparsers/gstmpeg4videoparse.c:
+ * tests/check/elements/kate.c:
+ * tests/check/elements/pcapparse.c:
+ Use gst_buffer_new_memdup()
+ Update for function rename in core.
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/827
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2281>
+
+2021-05-22 18:05:18 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ * ext/wpe/WPEThreadedView.h:
+ * ext/wpe/gstwpesrcbin.cpp:
+ * ext/wpe/gstwpevideosrc.cpp:
+ * ext/wpe/meson.build:
+ wpe: Bump wpebackend-fdo version requirement to 1.8
+ Debian bullseye has this version already, and this allows us to get rid of many
+ ifdefs. The mouse scroll handling is actually functional now as well.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2278>
+
+2021-05-23 16:10:53 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/aom/gstav1enc.c:
+ * ext/dash/gstdashdemux.c:
+ * ext/dtls/gstdtlsdec.c:
+ * ext/dtls/gstdtlsenc.c:
+ * ext/fdkaac/gstfdkaacenc.c:
+ * ext/sctp/gstsctpenc.c:
+ * ext/sndfile/gstsfdec.c:
+ * gst/videoparsers/gstav1parse.c:
+ * gst/videoparsers/gstmpeg4videoparse.c:
+ * tests/check/elements/kate.c:
+ * tests/check/elements/pcapparse.c:
+ Use new gst_buffer_new_copy()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2279>
+
+2021-05-21 15:18:21 -0300 Daniel Almeida <daniel.almeida@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ doc: update gst_plugins_cache.json
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1152>
+
+2021-05-14 20:22:26 +0200 Jakub Adam <jakub.adam@collabora.com>
+
+ * sys/winscreencap/dxgicapture.c:
+ * sys/winscreencap/dxgicapture.h:
+ * sys/winscreencap/gstdxgiscreencapsrc.c:
+ dxgiscreencapsrc: renegotiate caps on resolution change
+ When desktop gets resized, recreate the textures and renegotiate the
+ source caps with the updated video dimensions.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2249>
+
+2021-05-18 14:09:01 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvah265dec.c:
+ va: h265dec: Set LastSliceOfPic for multi sliced frames.
+ VA-API HEVC decoding needs to known which is the last slice of a
+ picture, but slices are processed sequencially, so we know the
+ last slice until all the slices are already pushed into the
+ VABuffer array.
+ In order to mark the last slice, they are pushed into the
+ VABuffer array with a delay of one slice: the first slice is
+ hold, and when the second slice come, the first one is pushed
+ while holding the second, and so on. Finally, at end_picture(),
+ the last slice is marked and pushed into the array.
+ Co-author: Victor Jaquez <vjaquez@igalia.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2246>
+
+2021-05-20 17:03:15 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11desktopdup.cpp:
+ * sys/d3d11/gstd3d11desktopdup.h:
+ * sys/d3d11/gstd3d11desktopdupsrc.cpp:
+ * sys/d3d11/gstd3d11desktopdupsrc.h:
+ d3d11desktopdupsrc: Add support for desktop size/rotation mode change
+ Re-negotiates with updated size on desktop size
+ (i.e., resolution, scaling factor), and rotation mode change
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2268>
+
+2021-05-20 10:09:57 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/mpegtsmux/tsmux/tsmux.c:
+ mpegtsmux: Fixup program array indices after stream removal
+ Each stream stores the `program_array_index` of its position in its
+ program's `streams` array. When we remove a stream from this array, we
+ need to correct the `program_array_index` of all streams that were
+ backshifted by the removal.
+ Also extract the removal into a new function and add some more safety
+ checks.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2266>
+
+2021-05-20 18:49:01 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11memory.c:
+ d3d11memory: Protect map and unmap with device lock
+ We should lock memory object with gst_d3d11_device_lock() first
+ then GST_D3D11_MEMORY_LOCK() need to be used.
+ One observed deadlock case is that:
+ - Thread A takes d3d11 device lock
+ - At the same time, Thread B tries CPU map to d3d11memory which requires
+ d3d11 device lock as well, but it's already taken by Thread A.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2267>
+
+2021-05-20 18:38:17 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11memory.c:
+ d3d11memory: Add trace log for debugging locking thread
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2267>
+
+2021-05-20 15:39:39 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/audiolatency/gstaudiolatency.c:
+ audiolatency: Drop incoming downstream stick events
+ stream-start, caps, and segment events will be pushed by internal
+ audiotestsrc element.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2265>
+
+2021-05-20 15:28:13 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/audiolatency/gstaudiolatency.c:
+ audiolatency: Use live mode audiotestsrc
+ Expected use case of audiolatency element is that mimic audio capture
+ device which is most likely live source. So audiolatency element
+ should use live mode as well.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2265>
+
+2021-05-19 18:48:29 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/gstwpesrcbin.cpp:
+ * ext/wpe/meson.build:
+ wpe: Bump WPE dependency to 2.28
+ The new audio feature depends on WPE 2.28 so we should just bump our
+ requirement to that.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2264>
+
+2021-05-20 00:51:08 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11compositor.cpp:
+ * sys/d3d11/gstd3d11compositor.h:
+ * sys/d3d11/gstd3d11compositorbin.cpp:
+ d3d11compositor: Fix missing D3D11 prefix
+ Fix typo, no functional change
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2262>
+
+2021-05-18 17:49:23 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/wpe/gstwpe.cpp:
+ * ext/wpe/gstwpesrcbin.cpp:
+ wpe: Update doc cache
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252>
+
+2021-04-21 23:14:13 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ wpe: Properly respect LIBGL_ALWAYS_SOFTWARE
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252>
+
+2021-05-01 21:48:23 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ * ext/wpe/gstwpesrcbin.cpp:
+ * ext/wpe/wpe-extension/gstwpebusmsgforwarder.c:
+ * ext/wpe/wpe-extension/gstwpeextension.c:
+ * ext/wpe/wpe-extension/gstwpeextension.h:
+ * ext/wpe/wpe-extension/meson.build:
+ wpe: Relay messages from WPE internal pipelines
+ It is based on a tracer as it allows us to very easily get
+ every message that are posted on any bus inside the process.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252>
+
+2021-04-19 20:46:46 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ * ext/wpe/WPEThreadedView.h:
+ * ext/wpe/gstwpe.cpp:
+ * ext/wpe/gstwpe.h:
+ * ext/wpe/gstwpesrcbin.cpp:
+ * ext/wpe/gstwpesrcbin.h:
+ * ext/wpe/gstwpevideosrc.cpp:
+ * ext/wpe/meson.build:
+ * ext/wpe/wpe-extension/gstwpeaudiosink.c:
+ * ext/wpe/wpe-extension/gstwpeextension.c:
+ * ext/wpe/wpe-extension/gstwpeextension.h:
+ * ext/wpe/wpe-extension/meson.build:
+ wpe: Base wpe audio implementation on a web extension
+ This makes the implementation simpler and enable us to map
+ webviews and audio stream much more easily
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252>
+
+2019-12-08 13:16:38 +0000 Philippe Normand <philn@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ wpe: Enable WebAudio
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252>
+
+2019-12-08 11:49:20 +0000 Philippe Normand <philn@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ * ext/wpe/WPEThreadedView.h:
+ * ext/wpe/gstwpe-private.h:
+ * ext/wpe/gstwpe.cpp:
+ * ext/wpe/gstwpesrcbin.cpp:
+ * ext/wpe/gstwpesrcbin.h:
+ * ext/wpe/gstwpevideosrc.cpp:
+ * ext/wpe/meson.build:
+ * tests/examples/meson.build:
+ * tests/examples/wpe/meson.build:
+ * tests/examples/wpe/wpe.c:
+ wpe: Implement audio support
+ The wpesrc bin now exposes "sometimes" audio src pads, one for every PCM audio
+ stream created by WPEWebKit.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252>
+
+2021-03-10 17:27:52 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ * ext/wpe/WPEThreadedView.h:
+ * ext/wpe/gstwpe.cpp:
+ * ext/wpe/gstwpesrcbin.cpp:
+ * ext/wpe/gstwpesrcbin.h:
+ * ext/wpe/gstwpevideosrc.cpp:
+ * ext/wpe/gstwpevideosrc.h:
+ * ext/wpe/meson.build:
+ wpe: Move wpesrc to wpevideosrc and add a wrapper bin `wpesrc`
+ Currently the bin contains a single element but we are going
+ to implement audio support and expose extra pads for audio
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252>
+
+2021-05-18 00:43:23 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * ext/sctp/gstsctpenc.c:
+ sctp: Ensure pad is still a child of element before removal
+ During pipeline shutdown there are several competing paths to remove
+ pads. Avoids tests failing due to:
+ Unexpected critical/warning: Padname '':sink_1 does not belong to element sctpenc1 when removing
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2256>
+
+2021-05-17 09:13:28 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * ext/sctp/gstsctpdec.c:
+ sctp: Fix race of pad removal during reset/stop
+ Both reset & stop remove existing pads. Can result in warning from
+ gst_element_remove_pad().
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2256>
+
+2021-05-17 09:11:54 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * ext/webrtc/webrtcdatachannel.c:
+ webrtcbin: Fix race bringing up sctp data channel
+ Notifying before pads are linked can cause the stream to fail to start.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2256>
+
+2021-05-13 21:11:30 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/gstwebrtcice.c:
+ webrtcbin: advertise harder the rtcp-mux-only requirement
+ And ignore rtcp ICE candidates
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2239>
+
+2021-05-14 10:47:05 -0500 Sid Sethupathi <sid.sethupathi@gmail.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: update default jb latency docs
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2242>
+
+2021-05-18 16:38:04 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * ext/dtls/gstdtlsenc.c:
+ dtls: Let sender know when we are flushing
+ Prevents endless loop during shutdown where we end up sending 0 bytes.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2229>
+
+2021-05-18 16:31:47 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * ext/dtls/gstdtlsconnection.c:
+ * ext/dtls/gstdtlsconnection.h:
+ dtls: Add ability to set custom GstFlowReturn on callback error
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2229>
+
+2021-05-18 20:26:38 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/transportsendbin.c:
+ * ext/webrtc/transportsendbin.h:
+ webrtc: Remove reundundant context object in transportsendbin
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2260>
+
+2021-05-18 20:18:28 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/transportsendbin.c:
+ * ext/webrtc/transportsendbin.h:
+ webrtc: Wait until ICE is connected to start DTLS handshake process
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2260>
+
+2021-05-18 18:29:16 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/transportsendbin.c:
+ * ext/webrtc/transportsendbin.h:
+ webrtcbin: Remove pad probe on nicesink
+ This pad probe is no longer necessary, libnice now drops
+ all buffers before the stream is connected. This pad problem
+ also caused deadlocks in some situations.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2260>
+
+2021-05-17 20:59:19 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/kate/gstkatedec.c:
+ * ext/kate/gstkateenc.c:
+ * ext/kate/gstkateparse.c:
+ * ext/kate/gstkatetag.c:
+ * ext/kate/gstkatetiger.c:
+ kate: Initialize debug categories
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2258>
+
+2021-05-13 10:27:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/va/gstvadisplay.c:
+ * gst-libs/gst/va/gstvadisplay.h:
+ * gst-libs/gst/va/gstvadisplay_drm.c:
+ * gst-libs/gst/va/gstvadisplay_wrapped.c:
+ libs: va: Documentation and annotations.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2196>
+
+2021-05-07 17:05:38 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/va/meson.build:
+ * tests/examples/va/main.c:
+ * tests/examples/va/meson.build:
+ * tests/examples/va/multiple-vpp.c:
+ examples: va: Update the VA examples because of the new va lib.
+ Because we introduce the new va lib, the va examples need to include
+ new header files and add more library linkage.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2196>
+
+2021-05-13 18:46:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/va/gstvadisplay_wrapped.c:
+ * gst-libs/gst/va/gstvadisplay_wrapped.h:
+ * sys/va/gstvautils.c:
+ libs: va: display_wrapper: Use gpointer for VADisplay.
+ In order to be coherent along all the implementation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2196>
+
+2021-05-06 18:23:23 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/meson.build:
+ * gst-libs/gst/va/gstvadisplay.c:
+ * gst-libs/gst/va/gstvadisplay.h:
+ * gst-libs/gst/va/gstvadisplay_drm.c:
+ * gst-libs/gst/va/gstvadisplay_drm.h:
+ * gst-libs/gst/va/gstvadisplay_wrapped.c:
+ * gst-libs/gst/va/gstvadisplay_wrapped.h:
+ * gst-libs/gst/va/meson.build:
+ * gst-libs/gst/va/va-prelude.h:
+ * gst-libs/gst/va/va_fwd.h:
+ * sys/va/gstvaallocator.h:
+ * sys/va/gstvacaps.c:
+ * sys/va/gstvacaps.h:
+ * sys/va/gstvadecoder.c:
+ * sys/va/gstvadecoder.h:
+ * sys/va/gstvadevice.c:
+ * sys/va/gstvadevice.h:
+ * sys/va/gstvadisplay.h:
+ * sys/va/gstvadisplay_priv.c:
+ * sys/va/gstvadisplay_priv.h:
+ * sys/va/gstvafilter.c:
+ * sys/va/gstvafilter.h:
+ * sys/va/gstvautils.c:
+ * sys/va/gstvautils.h:
+ * sys/va/gstvavpp.c:
+ * sys/va/meson.build:
+ libs: va: Move the VA common logic as a lib.
+ The VA acceleration now has more usages in linux-like platforms,
+ such as the MSDK. The different plugins based on the VA acceleration
+ need to share some common logic and types. We now move the display
+ related functions and types into a common va lib.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2196>
+
+2021-05-17 11:42:07 +0800 mkba <mengker1031@outlook.com>
+
+ * sys/msdk/gstmsdkh265enc.c:
+ msdk: add profile main-still-picture for hevc encoder
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2253>
+
+2021-05-15 00:39:57 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/interlace/gstinterlace.c:
+ interlace: Fix too small buffer size error
+ Even though input/output resolutions are identical there, default
+ buffer size of progressive and interleaved formats could be different
+ because we are rounding up height of all plane of interlaced frame
+ to be multiple of two.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2244>
+
+2021-03-01 12:09:43 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkcontext.c:
+ msdk: use MFXJoinSession() to join the parent and child sessions
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1503>
+
+2021-02-04 15:27:13 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkcontext.c:
+ * sys/msdk/msdk.c:
+ * sys/msdk/msdk.h:
+ msdk: use a new method to create mfx session when using oneVPL dispatcher
+ In oneVPL, MFXLoad() and MFXCreateSession() are required to create a
+ workable mfx session[1]
+ [1] https://spec.oneapi.com/versions/latest/elements/oneVPL/source/programming_guide/VPL_prg_session.html#onevpl-dispatcher
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1503>
+
+2021-02-18 13:38:25 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * meson_options.txt:
+ * sys/msdk/meson.build:
+ msdk: allow user build this plugin against MFX version 2.2+ (oneVPL)
+ Intel oneVPL SDK (oneVPL) is a successor to Intel Media SDK (MSDK)[1].
+ User may use -Dmfx_api=MSDK or -Dmfx_api=oneVPL to specify the required
+ SDK when building this plugin. If the SDK is not specified, meson will
+ try MSDK firstly, then oneVPL if MSDK is not available
+ Version 2.2+ is required in this patch because pkg-config file was not
+ provided officially before version 2.2
+ [1]https://spec.oneapi.com/versions/latest/elements/oneVPL/source/appendix/VPL_intel_media_sdk.html
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1503>
+
+2021-05-14 11:56:49 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkvp9dec.c:
+ msdkvp9dec: do not include mfxvp9.h
+ The VP9 related definitions in mfxvp9.h are available under the
+ condition of 'MFX_VERSION >= MFX_VERSION_NEXT', which implies that these
+ definitions are never used in a public release.
+ This is in preparation for oneVPL support because mfxvp9.h was
+ removed from oneVPL
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1503>
+
+2020-08-04 12:53:35 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/msdk.c:
+ * sys/msdk/msdk.h:
+ msdk: don't load user plugins for MFX version 2.0+
+ MFX version 2.0+ no longer supports user plugins, please refer to the
+ links for details
+ https://spec.oneapi.com/versions/latest/elements/oneVPL/source/appendix/VPL_intel_media_sdk.html#msdk-full-name-feature-removals
+ https://github.com/oneapi-src/oneVPL
+ This is in preparation for oneVPL support
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1503>
+
+2020-08-04 12:55:35 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/msdk.c:
+ msdk: exclude the audio code for MFX version 2.0+
+ MFX version 2.0+ no longer supports audio functions, please refer to the
+ links below for details
+ https://spec.oneapi.com/versions/latest/elements/oneVPL/source/appendix/VPL_intel_media_sdk.html#msdk-full-name-feature-removals
+ https://github.com/oneapi-src/oneVPL
+ This is in preparation for oneVPL support
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1503>
+
+2021-05-14 14:08:17 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/codecalpha/gstalphacombine.c:
+ alphacombine: Ignore all events coming from the alpha_pad
+ As per usage of this element, everything from this pad is a
+ duplicate. Instead of implemented needless aggregation, simply
+ drop all events from this pad and let the one from the main stream
+ passthrough. Also stop proxying some queries from the alpha pad_too.
+ This fixes racy test failure:
+ - validate.file.playback.scrub_forward_seeking.opus_vp9-alpha_webm
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2247>
+
+2021-05-14 14:05:59 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/codecalpha/gstcodecalphademux.c:
+ codecalphademux: Do not set a GstFlowReturn from a boolean
+ This was a small overlook, gst_pad_send_event() returns a boolean,
+ so setting it into ret could confuse the flow combiner. Though,
+ it didn't bug, since both 0 and 1 are success (though 1 being
+ undefined).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2247>
+
+2021-05-14 14:04:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/codecalpha/gstcodecalphademux.c:
+ codecalphademux: Remove eos flow return workaround
+ It turns out that downstream returning OK after EOS is a bug in
+ multiqueue. As we moved to queue, we no longer have this issue.
+ Let's keep the code clean and just assuming that downstream will
+ keep returning EOS and allow convergence of flow.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2247>
+
+2021-05-13 15:18:34 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/openh264/gstopenh264element.c:
+ openh264: Don't use GOnce for ABI check
+ It turns out the value used for g_once_* APIs can't be
+ zero. And this is a very cheap check, so let's just do it every time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2240>
+
+2021-05-13 15:25:57 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * tests/check/elements/webrtcbin.c:
+ webrtc test: Print content of error GstMessage
+ Makes it easier to interpret the result of the CI!
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-05-06 13:52:32 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * tests/check/elements/webrtcbin.c:
+ webrtcbin tests: Add test for intersection src pad caps
+ This checks that the codec preferences are intersected also with what
+ the src pad can handle.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-04-14 19:46:56 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * tests/check/elements/webrtcbin.c:
+ webrtc test: Add explicit test clock
+ This way the test clock is not linked to the multiple harnesses
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-05-06 17:58:15 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Intersect answer with codec prefs & capabilities
+ In case the local capabilities changed since the last negotiaton,
+ we need to re-intersect and see if the result would be different.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-05-06 17:50:38 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Ignore current caps for codec negotiation
+ On the sink pad, we want the caps of the current stream, those
+ are the "received_caps" field. If we haven't received caps yet, then
+ we only care about the caps that the next element can accept, that is
+ the caps from the peer pad (and the preferences). Otherwise, we prevent
+ re-negotiation to a better codec when possible.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-05-05 19:21:18 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Remove dead code
+ The function is only called to create an offer, so no
+ need to pass the offer parameter and then check it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-05-05 19:18:02 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * tests/check/elements/webrtcbin.c:
+ webrtc test: Add test for codec preferences negotiation
+ Validate that it does the intersection with the caps from
+ the sink pad and rejects the offer creation otherwise.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-05-05 19:00:11 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/utils.h:
+ webrtcbin: Refactor codec preference retrieval
+ Now intersect against pads on both sides if they are available.
+ If the intersection fails, we now just reject the creation of the offer
+ or answer as it means that the codec_preferences are too restrictive or
+ that the caps on both sides the webrtcbin are not compatible.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-04-30 17:04:12 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Intersect codec preferences with caps from pads
+ When creating an offer or an answer, also take into account
+ the caps on the pads as well as the codec preferences when both are set.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-04-30 16:21:14 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * tests/check/elements/webrtcbin.c:
+ webrtcbin: Implement caps queries on sinkpad based on codec preferences
+ Also includes a unit test.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-04-30 15:04:33 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Hold transceiver lock when accessing codec_preferences
+ This is required to allow the applications to modify the preferences.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-04-30 14:55:41 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst-libs/gst/webrtc/rtptransceiver.c:
+ webrtcbin: Hold lock while accessing the codec preferences
+ They could be changed at runtime by the application, so take the lock
+ when modifying them.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-04-21 15:55:00 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * tests/check/elements/webrtcbin.c:
+ webrtcbin tests: Use properties to access the inside of the transceiver object
+ This will allow hiding the insides from unsafe application access.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-04-21 15:54:14 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst-libs/gst/webrtc/rtptransceiver.c:
+ webrtc rtptransceiver: Implement "codec-preferences" property
+ This allows safer access to the internals of the codec-preferences
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-04-21 15:38:00 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst-libs/gst/webrtc/rtptransceiver.c:
+ webrtc rtptransceiver: Implement "kind" property
+ Implement the property as read-only to follow the WebRTC spec
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-04-21 15:34:07 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst-libs/gst/webrtc/rtptransceiver.c:
+ webrtc rtptransceiver: Implement "current-direction" property
+ Implement the property as read-only to follow the WebRTC spec
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-04-21 15:29:18 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst-libs/gst/webrtc/rtptransceiver.c:
+ webrtc rtptransceiver: Implement "mid" property
+ Implement the property as read-only to follow the WebRTC spec
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183>
+
+2021-05-12 17:32:20 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/codecalpha/gstalphadecodebin.c:
+ alphadecodebin: Use normal queues instead of multiqueue
+ The multiqueue was too flexible for our need, allowing to queue passed
+ the configured threshold. It also didn't work well when trying to
+ propagate EOS flow return.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2238>
+
+2021-05-12 17:29:02 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/codecalpha/gstalphacombine.c:
+ alphacombine: Implement flow return propagation
+ The EOS handling was not the problem way. Instead of this, implement
+ proper prorogation of the flow return for the alpha chain function.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2238>
+
+2021-05-12 15:13:11 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/codecalpha/gstcodecalphademux.c:
+ codecalphademux: Fix handling of flow combine
+ As the alphacombine is simplified to received matching pair of buffers,
+ we can't just stop streaming when we receive EOS from downstream. Due
+ to usage of queue, the moment we get this return value may differ.
+ Though, by continuing pushing, we override the last_flowret on the pad
+ which can make us miss that we effectively can combine all flow into
+ EOS.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2238>
+
+2021-04-29 17:14:43 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/debugutils/gsttestsrcbin.c:
+ testbinsrc: Handle setting URI on the fly
+ Reusing existing streams when possible
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2210>
+
+2021-01-20 14:55:09 +0800 Bing Song <bing.song@nxp.com>
+
+ * data/meson.build:
+ * data/targets/file-extension/ts.gep:
+ transcoding: add encoding target for TS.
+ Add encoding target for streamming.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1965>
+
+2021-04-29 16:51:27 +0200 Johan Sternerup <johast@axis.com>
+
+ * tests/check/elements/webrtcbin.c:
+ webrtcbin: Add unit test for closing of data channels
+ Add test for verifying that the data channel "close" action signal
+ triggers an SCTP_RESET_STREAMS request that is propagated to the other
+ side and eventually leads to both sides closing properly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2186>
+
+2021-04-22 10:43:55 +0200 Johan Sternerup <johast@axis.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/gstwebrtcbin.h:
+ webrtcbin: Fix deadlock when receiving new sctp stream
+ When receiving an sctp message for a stream that not yet has an
+ sctpdec pad associated with it means we end up in
+ _on_sctpdec_pad_added. At this point we're holding the sctpassocation
+ lock. Then it's not possible to take the pc_lock because then code
+ executing under the pc_lock (which means anything in the webrtc
+ thread) may not take the sctpassociation lock. For example, running
+ the data channel close procedure from the webrtc thread means we
+ eventually end up sending a SCTP_RESET_STREAMS packet which needs to
+ grab the sctpassociation lock.
+ This means _on_sctpdec_pad_added simply cannot take the pc_lock and
+ also it is not possible to postpone the channel creation as we need to
+ link the pads right there. The solution is to introduce a more
+ granular dc_lock that protects only the things that needs to be done
+ to create the datachannel.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2186>
+
+2021-04-20 10:45:46 +0200 Johan Sternerup <johast@axis.com>
+
+ * ext/sctp/sctpassociation.c:
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/sctptransport.c:
+ * ext/webrtc/webrtcdatachannel.c:
+ * ext/webrtc/webrtcdatachannel.h:
+ webrtcbin: Support closing of data channels
+ Support for closing WebRTC data channels as described in RFC
+ 8831 (section 6.7) now fully supported. This means that we can now
+ reuse data channels that have been closed properly. Previously, an
+ application that created a lot of short-lived on-demand data channels
+ would quickly exhaust resources held by lingering non-closed data
+ channels.
+ We now use a one-to-one style socket interface to SCTP just like the
+ Google implementation (i.e. SOCK_STREAM instead of SOCK_SEQPACKET, see
+ RFC 6458). For some reason the socket interface to use was made
+ optional through a property "use-sock-stream" even though code wasn't
+ written to handle the SOCK_SEQPACKET style. Specifically the
+ SCTP_RESET_STREAMS command wouldn't work without passing the correct
+ assocation id. Changing the default interface to use from
+ SOCK_SEQPACKET to SOCK_STREAM now means we don't have to bother about
+ the association id as there is only one association per socket. For
+ the SCTP_RESET_STREAMS command we set it to SCTP_ALL_ASSOC just to
+ match the Google implementation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2186>
+
+2021-05-07 16:30:49 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/videoparsers/gstvp9parse.c:
+ vp9parse: Manually fixate codec-alpha field
+ This is a newly introduced field, and we interpret it as false when missing in
+ the caps. Otherwise, a simple capsfilter will just add the missing field and
+ keep going, despite the upstream caps being a superset.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2199>
+
+2021-05-07 11:28:21 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/codecalpha/gstplugin.c:
+ doc: codecalpha: Add plugin documentation
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2199>
+
+2021-05-06 09:12:34 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ doc: Add codecalpha plugin to the plugins cache
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2199>
+
+2021-04-22 16:50:17 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/codecalpha/gstalphadecodebin.c:
+ * gst/codecalpha/gstalphadecodebin.h:
+ * gst/codecalpha/gstplugin.c:
+ * gst/codecalpha/gstvp8alphadecodebin.c:
+ * gst/codecalpha/gstvp8alphadecodebin.h:
+ * gst/codecalpha/gstvp9alphadecodebin.c:
+ * gst/codecalpha/gstvp9alphadecodebin.h:
+ * gst/codecalpha/meson.build:
+ alphadecodebin: Add wrappers to decode VP8/VP9 alpha
+ This includes base class with wrappers bin that will create a static
+ pipeline capable of handling the VP8/VP9 alpha channel decoding
+ using two instances of vp8/vp9dec element each.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2199>
+
+2021-04-02 15:07:22 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/codecalpha/gstalphacombine.c:
+ * gst/codecalpha/gstalphacombine.h:
+ * gst/codecalpha/gstplugin.c:
+ * gst/codecalpha/meson.build:
+ codecalpha: Implement alphacombine element
+ This element will merge video buffers in order to use the alpha stream
+ luma plane as the alpha of the video stream. The implementation is zero-copy
+ and currently only support merging I420 stream with an I420, NV12 or GRAY8
+ alpha stream.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2199>
+
+2021-03-30 15:34:11 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/codecalpha/gstcodecalphademux.c:
+ alphacodecdemux: Implement meta demuxing
+ Produce two streams from a buffer that has GstVideoCodecAlphaMeta
+ attached.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2199>
+
+2021-03-24 16:48:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/codecalpha/gstcodecalphademux.c:
+ * gst/codecalpha/gstcodecalphademux.h:
+ * gst/codecalpha/gstplugin.c:
+ * gst/codecalpha/meson.build:
+ * gst/meson.build:
+ * meson_options.txt:
+ Introduce CODEC Alpha plugin
+ This plugin contains a set of utility elements allowing to extract,
+ decode and combine CODEC (typically VP8/VP9) alpha stream.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2199>
+
+2021-05-11 13:57:59 +0100 Daniel Stone <daniel@fooishbar.org>
+
+ * ext/openaptx/meson.build:
+ openaptx: Fix to v0.2.0 due to license change
+ openaptx has recently changed its license to explicitly exclude
+ 'Freedesktop projects' from using it, which would include GStreamer, as
+ well as shifting to base terms of GPLv3:
+ https://github.com/pali/libopenaptx/commit/811bc18586d634042618d633727ac0281d4170b8
+ This unilateral license change is legally dubious in many ways.
+ The original work came from ffmpeg under the LGPL v2.1, to which third
+ parties may not add additional restrictions (per sections 2 and 7 of the
+ LGPL v2.1), so LGPLv2.1 + may-not-use restrictions are not permissible
+ without the explicit consent of the original copyright holder.
+ The upgrade to LGPL v3.0 without explicit consent from the original
+ copyright holder is in itself permissible through the upgrade terms of
+ the LGPL, however the additional restrictions imposed again conflict
+ with sections 7 and 10 of the GPLv3 (as the base of the LGPLv3, with
+ those sections not being invalidated by the additional LGPLv3 text).
+ Though it does not impact the legal validity of the redeclaration of
+ licensing, the claims that freedesktop.org has violated the terms of the
+ openaptx license in the past are false; the work was contributed to the
+ PulseAudio project with an explicit open license, with the original
+ contributor later attempting to revoke permission for its use, despite
+ the explicit terms of the license giving no ability to do so as they
+ lack a change-of-heart provision.
+ The claims that Collabora violated the license are even more baseless;
+ they are based on an assertion that when I (acting on behalf of
+ freedesktop.org rather than Collabora, in my own unpaid time) banned
+ users from freedesktop.org's GitLab instance due to sustained violations
+ of the Code of Conduct users agree to when creating an account on that
+ platform, this somehow constituted a violation of the license. Even if
+ Collabora were somehow involved in this - which they were not at all -
+ there is no requirement under open licenses that users be given
+ unlimited access under all terms to any platform on the internet. Such
+ terms would mean that open development could only be conducted on
+ completely unmoderated platforms, which does not stand up to any
+ scrutiny.
+ Regardless of the declared license having no legal validity, the LGPL's
+ explicit provision in both v2.1 and v3.0 for such additional
+ restrictions to be stripped, and the low likelihood of it ever being
+ used together with GStreamer as its licensing terms would not be
+ acceptable to any distribution, enforcing a version check seems like the
+ safest way to ensure complete legal clarity, not put users or
+ downstreams in any jeopardy, and comply with the author's stated wishes
+ for v0.2.1 and above to not be used by GStreamer.
+ Signed-off-by: Daniel Stone <daniel@fooishbar.org>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2235>
+
+2021-05-11 10:21:27 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ doc: Update cache after RGBP pixel format addition
+ Related to https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1141
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2236>
+
+2021-05-09 23:42:46 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvaav1dec.c:
+ * sys/va/gstvabasedec.c:
+ * sys/va/gstvabasedec.h:
+ * sys/va/gstvah264dec.c:
+ * sys/va/gstvah265dec.c:
+ * sys/va/gstvampeg2dec.c:
+ * sys/va/gstvavp8dec.c:
+ * sys/va/gstvavp9dec.c:
+ va: Do not use a common parent_class in vabasedec.
+ We have only one copy of gst_va_base_dec_parent_class inside the
+ vabasedec, so it can not handle the case when there are multi va
+ decoders inside one pipeline. The pipeline:
+ gst-launch-1.0 filesrc location=xxx.h264 ! h264parse \
+ ! vah264dec ! msdkh265enc ! vah265dec ! fakesink
+ generates a assertion of
+ "invalid cast from 'GstVaH264Dec' to 'GstH265Decoder"
+ and gets a crash.
+ We should keep the parent_class for each decoder type.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2231>
+
+2021-05-07 16:02:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ libs: codecs: h264decoder: Assert output_picture virtual method.
+ For new code it's nice to assert if the derived class implemented the
+ output_picture virtual method. Otherwise a segmentation fault
+ occurs. All other decoders assert this method.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2228>
+
+2021-05-06 18:37:45 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ * ext/wpe/gstwpesrc.cpp:
+ wpe: Properly free property fields
+ The set location (in two places) and loaded bytes were not freed when
+ the element is destroyed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2222>
+
+2021-05-06 19:17:29 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * ext/wpe/gstwpesrc.cpp:
+ wpe: Properly lock property fields
+ Use the object lock for the following fields:
+ - `bytes`: Written by the `load-bytes` signal unless running; consumed
+ on start.
+ - `draw_background`: Read and written by the `draw-background`
+ property.
+ - `location`: Read and written by the `location` property and the URI
+ handler.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2222>
+
+2021-05-07 11:13:06 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/rtp/gstrtpsrc.c:
+ rtpsrc: Plug leak of rtcp_send_addr
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2226>
+
+2021-05-07 11:13:46 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/rtp/gstrtpsink.c:
+ rtpsink: Return proper pad from _request_new_pad
+ Bizarrely, it returned a pad from the child rtpbin. I noticed because
+ our application leaked the implicitly created ghost pad. Make an
+ explicit ghost pad so this works properly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2227>
+
+2021-05-07 11:12:39 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/rist/gstristsrc.c:
+ rist: Plug leak of rtcp_send_addr
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2225>
+
+2021-05-07 11:10:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaav1dec.c:
+ va: av1dec: Avoid structure overwrite.
+ VADecPictureParameterBufferAV1.mode_control_fields.bits were filled
+ twice, overwriting to zeros the first assignation. This patch unifies
+ both assignations.
+ Also it makes explicit an enum casting between libva and gstreamer; it
+ removes the assignation to zero a deprecated parameter; and use an
+ appropriate assertion.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2223>
+
+2021-05-06 17:07:51 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/utils.c:
+ webrtc: only add nack pli by default if kind is video
+ Sending/receiving PLI's (Picture Loss Indication) for non-video doesn't
+ really make sense. This also matches what the browsers do.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2220>
+
+2021-05-06 17:06:44 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/utils.c:
+ * ext/webrtc/utils.h:
+ webrtc: move webrtc_kind_from_caps() to utils
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2220>
+
+2021-04-21 17:34:26 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/gstwasapi2client.cpp:
+ * sys/wasapi2/gstwasapi2client.h:
+ * sys/wasapi2/gstwasapi2sink.c:
+ * sys/wasapi2/gstwasapi2src.c:
+ * sys/wasapi2/gstwasapi2util.h:
+ wasapi2: Propagate HRESULT error code everywhere
+ ... instead of boolean value which cannot notify the reason
+ of the operation failure.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2219>
+
+2021-05-06 10:46:15 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/hls/gsthlssink.c:
+ * ext/hls/gsthlssink2.c:
+ * ext/hls/gstm3u8playlist.c:
+ * ext/hls/gstm3u8playlist.h:
+ hlssink(2): Don't write deprecated EXT-X-ALLOW-CACHE metadata
+ It's deprecated since quite a few versions and various validators
+ complain about it. Instead of the in-manifest metadata this should be
+ handled by the normal HTTP caching headers.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2221>
+
+2021-05-06 01:35:04 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/decklink/gstdecklink.cpp:
+ decklinkvideosrc: Fix crash when mode is not specified
+ In that case, we will get "VideoInputFrameArrived" callback
+ without "VideoInputFormatChanged"
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2218>
+
+2021-05-05 12:34:38 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/videoparsers/gsth265parse.c:
+ h265parse: don't invalidate the last PPS when parsing a new SPS
+ This is a port of https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2019
+ to h265parse.
+ When a SPS is received then any previous PPS remains valid. So don't clear
+ the PPS flag from the parser state.
+ This is important because there are encoders that don't generated a PPS after
+ every SPS.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2217>
+
+2021-04-20 22:18:09 +0200 François Laignel <fengalin@free.fr>
+
+ * ext/dash/gstdashsink.c:
+ * ext/dtls/gstdtlssrtpdec.c:
+ * ext/dtls/gstdtlssrtpenc.c:
+ * ext/hls/gsthlssink2.c:
+ * ext/resindvd/resindvdbin.c:
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/transportreceivebin.c:
+ * gst/camerabin2/gstwrappercamerabinsrc.c:
+ * gst/rist/gstristsink.c:
+ * gst/rtp/gstrtpsink.c:
+ * gst/sdp/gstsdpdemux.c:
+ * gst/transcode/gsttranscodebin.c:
+ * gst/transcode/gsturitranscodebin.c:
+ * sys/dvb/dvbbasebin.c:
+ * sys/uvch264/gstuvch264_src.c:
+ * tests/check/elements/asfmux.c:
+ * tests/check/elements/cccombiner.c:
+ * tests/check/elements/dtls.c:
+ * tests/check/elements/mpegtsmux.c:
+ * tests/check/elements/mplex.c:
+ * tests/check/elements/webrtcbin.c:
+ * tests/examples/playout.c:
+ Use gst_element_request_pad_simple...
+ Instead of the deprecated gst_element_get_request_pad.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2180>
+
+2021-05-04 12:29:14 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/mxf/mxfdemux.c:
+ mxf: check EOS cond with any segment's flag
+ The previous test was preventing the pad to be in EOS
+ when the segment position was greater than segment stop.
+ It ended up consuming all the data before getting in EOS.
+ Regarding GST_SEEK_FLAG_SEGMENT it seems to be
+ correctly handled later in the method.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2173>
+
+2021-04-19 18:25:06 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/mxf/mxfdemux.c:
+ mxfdemux: fix keyframe detection in index
+ An index entry should be considered as a keyframe
+ if the flags allow a random access only.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2173>
+
+2021-04-24 10:43:47 +0000 Antonio Rojas <arojas@archlinux.org>
+
+ * ext/openexr/gstopenexrdec.cpp:
+ Fix build with OpenEXR 3
+ Add a header that is no longer transitively included
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2195>
+
+2021-04-22 19:21:01 -0300 Daniel Almeida <daniel.almeida@collabora.com>
+
+ * gst-libs/gst/codecs/gstvp9statefulparser.c:
+ codecs: gstvp9statefulparser: do not carry over segmentation flags
+ Do not carry over segmentation flags from previous frames. The spec
+ says in 7.2.10 that the feature data carry over from previous frames
+ if not updated, but the flags do not.
+ Consider what would happen if a flag B is to depend on a flag A, and
+ B carries over as set from another frame. Further consider that A is
+ now not set in this particular frame. This leads to the invalid state
+ in which flag B is set but flag A isn't.
+ This might cause the bitstream to be rejected by accelerators down
+ the line.
+ Fix it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2203>
+
+2021-04-29 21:44:07 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11desktopdup.cpp:
+ * sys/d3d11/gstd3d11desktopdup.h:
+ * sys/d3d11/gstd3d11desktopdupsrc.cpp:
+ d3d11desktopdup: Don't ignore error DXGI_ERROR_UNSUPPORTED
+ Although Microsoft's DXGIDesktopDuplication example is considering
+ the DXGI_ERROR_UNSUPPORTED as an expected error
+ (See https://github.com/microsoft/Windows-classic-samples/tree/master/Samples/DXGIDesktopDuplication)
+ it might not be recoverable error if application is
+ run against a discrete GPU
+ (See https://docs.microsoft.com/en-US/troubleshoot/windows-client/shell-experience/error-when-dda-capable-app-is-against-gpu)
+ Do early error out if the error happens while opening device,
+ instead of retrying it forever.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2208>
+
+2021-04-29 22:10:15 +0200 Jakub Adam <jakub.adam@collabora.com>
+
+ * sys/d3d11/gstd3d11desktopdup.cpp:
+ d3d11desktopdup: Support desktop switches
+ Before creating output duplication interface, call SetThreadDesktop()
+ with HDESK of the current input desktop in case a desktop switch has
+ occurred.
+ This allows d3d11desktopdupsrc to capture Windows User Account Control
+ (UAC) prompts, which appear on a separate secure desktop. Otherwise
+ IDXGIOutput1::DuplicateOutput() will return E_ACCESSDENIED and the
+ element won't produce any frames as long as the UAC screen is active.
+ Note that in order to access secure desktop the application still has to
+ run at LOCAL_SYSTEM privileges. For GStreamer applications running with
+ regular user privileges this change has no effect.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2209>
+
+2021-04-27 18:08:30 +0000 Jakub Adam <jakub.adam@collabora.com>
+
+ * sys/winscreencap/dxgicapture.c:
+ dxgicapture: reinitialize duplication interface on ERROR_ACCESS_LOST
+ IDXGIOutputDuplication can become invalid for example when there's
+ desktop switch, resolution change or Windows User Account Control prompt
+ appears on screen.
+ When that happens, try to re-create the duplication interface for the
+ changed output. Note that in the case of UAC prompt this operation will
+ fail if the GStreamer process doesn't run at LOCAL_SYSTEM privileges. In
+ such situation the source element won't create any frames as long as the
+ output is occupied by UAC screen.
+ In order to enable UAC access to sufficiently privileged GStreamer
+ processes, call SetThreadDesktop() with the desktop handle that
+ currently receives user input before creating our output duplication.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2204>
+
+2021-04-29 09:35:51 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdksystemmemory.c:
+ * sys/msdk/gstmsdkvideomemory.c:
+ msdk: set correct parameters for BGRx frame
+ Otherwise when mapping BGRx frame onto CPU's memory, CPU will get wrong
+ data for B, G, R components
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2205>
+
+2021-04-29 21:12:42 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtc: advertise support for transport-cc rtcp-fb by default
+ Still requires explicit enabling by the application through the header
+ extension on all the relevant payloaders.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2207>
+
+2021-04-29 21:11:25 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/webrtc/gstwebrtcstats.c:
+ webrtc/stats: provide the twcc stats when available
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2207>
+
+2021-04-28 10:52:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: Disable derived for Gallium if RGB and reading.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2127>
+
+2021-04-22 17:08:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: Disable derived for i965 if YUV and writing.
+ The problem is for uploading YUV frames using derived images, is that
+ derived images imply tiling, so frames are wrongly uploaded.
+ Though derived for reading might work we cannot know the Intel graphics
+ generation to validate the caching. Overall, it's safer to disable derived
+ images for i965.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2127>
+
+2021-04-22 17:07:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvadisplay.c:
+ * sys/va/gstvadisplay.h:
+ va: display: Fix typo.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2127>
+
+2021-04-22 12:42:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: Hack for i965 to get linear RGB DMABufs.
+ i965 driver has a hack to provide linear dmabufs, which is required for RGB
+ formats, since they are directly uploaded by glupload, ignoring tiled modifiers.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2127>
+
+2021-04-22 15:51:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: postproc: Remove unused parameter.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2127>
+
+2021-03-31 11:04:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: postproc: Set usage hint generic if DMABuf.
+ iHD driver sets a tiled DRM modifier if surface's usage hint is set to
+ VPP_WRITE. This result in a garbled rendering when using glimagesink.
+ This patch changes the usage hint to generic if the caps feature is
+ DMABuf. Either way only iHD driver, so far, uses the usage hint flag.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2127>
+
+2021-04-20 12:52:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: postproc: Get info from caps in decide_allocation()
+ decide_allocation() occurs before set_caps(), where out_info is set,
+ thus setting srcpad_info with zeros or old values. Instead of it, the
+ caps, from the allocation query, are converted and used.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2127>
+
+2021-04-23 13:56:43 +0200 Timo Wischer <timo.wischer@de.bosch.com>
+
+ * ext/avtp/gstavtpcrfbase.h:
+ avtp: crf: Remove superfluous sink_event variable
+ This variable was introduced by commit 12ad2a4bcd6c ("avtp: Introduce
+ the CRF Sync Element") but it was never used:
+ $ git log -G "sink_event" -- ext/avtp
+ Signed-off-by: Timo Wischer <timo.wischer@de.bosch.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2201>
+
+2020-02-17 14:11:15 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkh265dec.c:
+ msdkh265dec: Add support for error report too
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/909>
+
+2019-12-06 12:48:37 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkdec.c:
+ * sys/msdk/gstmsdkdec.h:
+ * sys/msdk/gstmsdkdecproputil.c:
+ * sys/msdk/gstmsdkdecproputil.h:
+ * sys/msdk/gstmsdkh264dec.c:
+ msdkh264dec: report error to user
+ Sometimes user want to know what the error is when decoding a stream,
+ This commit adds a property of report-error to msdkh264dec. When
+ report-error is TRUE, msdkh264dec may catch bitstream error and frame
+ corruption, then report the error to application by using GST_ELEMENT_ERROR
+ Refer to the code in
+ https://github.com/Intel-Media-SDK/MediaSDK/tree/master/samples
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/909>
+
+2019-12-06 12:02:50 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkdec.c:
+ * sys/msdk/gstmsdkdec.h:
+ msdkdec: allow sub class to add extra parameters for additional configuration
+ MSDK allows user add extended buffers to a bitstream for additional
+ configuration. This commit is to support this feature in this plugin
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/909>
+
+2021-04-27 21:52:31 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11basefilter.cpp:
+ * sys/d3d11/gstd3d11compositor.cpp:
+ * sys/d3d11/gstd3d11deinterlace.cpp:
+ * sys/d3d11/gstd3d11videosink.cpp:
+ d3d11: Handle device change
+ If incoming buffer holds other d3d11 device, and user wants any device
+ (i.e., adapter index wasn't specified explicitly) update our device
+ with that of buffer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2191>
+
+2021-04-23 19:29:55 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videosink.cpp:
+ d3d11videosink: Delay window setup as much as possible
+ ... so that videosink can handle device update with
+ d3d11 device of the first buffer
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2191>
+
+2021-04-23 18:44:41 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11compositor.cpp:
+ * sys/d3d11/gstd3d11convert.cpp:
+ * sys/d3d11/gstd3d11deinterlace.cpp:
+ * sys/d3d11/gstd3d11desktopdupsrc.cpp:
+ * sys/d3d11/gstd3d11upload.cpp:
+ d3d11: Don't accept buffer pool which holds different device
+ At the moment, d3d11 plugin doesn't support texture sharing between
+ different device
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2191>
+
+2021-04-23 18:45:48 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.cpp:
+ d3d11decoder: Run gst-indent
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2191>
+
+2021-02-23 11:56:53 -0500 Aaron Boxer <boxerab@gmail.com>
+
+ * ext/meson.build:
+ * ext/onnx/gstonnx.c:
+ * ext/onnx/gstonnxclient.cpp:
+ * ext/onnx/gstonnxclient.h:
+ * ext/onnx/gstonnxelement.c:
+ * ext/onnx/gstonnxelement.h:
+ * ext/onnx/gstonnxobjectdetector.cpp:
+ * ext/onnx/gstonnxobjectdetector.h:
+ * ext/onnx/meson.build:
+ * meson_options.txt:
+ onnx: add plugin to apply ONNX neural network models to video
+ This MR provides a transform element that leverage ONNX runtime
+ to run AI inference on a broad range of neural network toolkits, running
+ on either CPU or GPU. ONNX supports 16 different providers at the
+ moment, so with ONNX we immediately get support for Nvidia, AMD, Xilinx
+ and many others.
+ For the first release, this plugin adds a gstonnxobjectdetector element to
+ detect objects in video frames. Meta data generated by the model is
+ attached to the video buffer as a custom GstObjectDetectorMeta meta.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1997>
+
+2021-04-26 18:00:27 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * sys/decklink/gstdecklinkvideosrc.cpp:
+ decklinkvideosrc: Fix AFD/Bar VANC size check
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2193>
+
+2021-04-23 18:05:06 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * sys/decklink/gstdecklinkvideosrc.cpp:
+ * sys/decklink/gstdecklinkvideosrc.h:
+ decklinkvideosrc: Automatically detect widescreen vs. normal NTSC/PAL
+ Based on the AFD aspect ratio flag the source can detect (in mode=auto)
+ whether this NTSC/PAL mode is actually a normal or a widescreen one and
+ select the caps according to that.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2193>
+
+2021-03-30 12:39:21 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/jpegformat/gstjpegparse.c:
+ jpegparse: Don't generate timestamp for 0/1 framerates
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2194>
+
+2021-04-23 23:20:54 +0900 Seungha Yang <seungha@centricular.com>
+
+ * 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: Set flushing to internal pool on flush event
+ d3d11 decoders use internal pool for DPB texture and
+ Gst*Decoder::new_picture() will be blocked if internal pool is full.
+ We should be able to unblock in on flush-start event as expected.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2192>
+
+2021-04-23 16:53:16 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11compositor.cpp:
+ * sys/d3d11/gstd3d11decoder.cpp:
+ d3d11: Fix wrong GstD3D11BufferPool type check
+ Fix typos
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2190>
+
+2021-03-31 18:07:40 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/rtp/gstrtpsrc.c:
+ rtpsrc: Fix wrong/NULL URI handling
+ We can reset the URI to NULL and this fix a deadlock in that case or
+ when the URI was invalid.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2132>
+
+2021-04-22 16:45:27 +0000 Nazar Mokrynskyi <nazar@mokrynskyi.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: downgrade "dropping ICE candidates from SDP" from warning to debug level
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2187>
+
+2021-04-16 20:39:35 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Attach rtpbin even for data channels
+ This is required because the same transport may later be used for RTP.
+ In which case the RTCP needs to flow bi-directionnally already.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2172>
+
+2021-03-04 00:41:09 -0800 Frederich Munch <colsebas@hotmail.com>
+
+ * ext/webrtc/nicetransport.c:
+ Fix missing unref of nice-agent causing sockets to never close.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1960>
+
+2021-04-22 16:09:40 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * ext/webrtc/sctptransport.c:
+ webrtc: Fix sctp task's return type.
+ GstWebRTCBinFunc expects a GstStructure* return type.
+ Fixes segfault on PowerPC.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2188>
+
+2021-04-22 15:50:15 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfvideoenc.cpp:
+ mfvideoenc: Fix UWP build
+ Add missing GST_MF_HAVE_D3D11 define guard
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2185>
+
+2021-04-22 15:42:23 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/gstwasapi2client.cpp:
+ wasapi2: Fix UWP build
+ KSAUDIO_SPEAKER_* defines are WINAPI_PARTITION_DESKTOP only
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2185>
+
+2021-04-21 21:43:59 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/mpegtsdemux/tsdemux.c:
+ tsdemux: fix truncated output segment when seeking with a stop
+ In disabling the stop adjustment for negative rates in
+ 03031037fafd2d535bbefb1fdf6024b5d1159043 , two instructions
+ were inverted resulting in the stop always being adjusted by
+ 0
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2182>
+
+2021-04-20 23:51:49 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * tests/check/elements/netsim.c:
+ tests/netsim: Set src caps before creating buffers
+ GstHarness requires the source pad caps to be set before
+ buffer allocations.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2179>
+
+2021-04-20 02:00:18 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11device.c:
+ * gst-libs/gst/d3d11/gstd3d11format.h:
+ * tests/check/elements/d3d11colorconvert.c:
+ d3d11: Add support for BGRx and RGBx formats
+ For such formats, we can re-use existing BGRA/RGBA implementations
+ but ignoring alpha channel
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2174>
+
+2021-04-20 18:37:15 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/gstwasapi2client.cpp:
+ wasapi2: Implement default audio channel mask
+ Some capture devices might not provide channel mask value which will
+ result in capturing failure because of unknown channel mask in case
+ that device generates more than 2 channels. Although it might not
+ be correct, we can assume channel mask with the given number of channels.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2177>
+
+2021-04-20 18:40:40 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/gstwasapi2client.cpp:
+ wasapi2clinet: Simplify set caps
+ Don't need to iterate all structure to set identical values
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2177>
+
+2021-04-20 18:48:18 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/gstwasapi2client.cpp:
+ wasapi2client: Run gst-indent
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2177>
+
+2021-04-13 17:35:58 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * tests/check/elements/webrtcbin.c:
+ webrtcbin test: Don't fail if data channel is created
+ In tests that voluntarily create a data channel.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2168>
+
+2021-04-19 19:06:50 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Filter caps isn't fixed
+ Fix an assertion because the filter paramter passed to
+ gst_caps_is_equal_fixed() wasn't fixed. So use the regular
+ gst_caps_is_equal() instead.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2175>
+
+2021-04-20 02:04:03 +0900 Seungha Yang <seungha@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ d3d11: Update plugin doc cache
+ Updating for removed d3d11videosink wrapper bin and the change of
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2113
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2169>
+
+2021-04-17 20:37:13 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videosink.cpp:
+ * sys/d3d11/gstd3d11videosink.h:
+ * sys/d3d11/gstd3d11videosinkbin.cpp:
+ * sys/d3d11/gstd3d11videosinkbin.h:
+ * sys/d3d11/meson.build:
+ * sys/d3d11/plugin.c:
+ d3d11: Remove d3d11videosink wrapper bin
+ Drop d3d11videosink wrapper bin and handle texture upload
+ in d3d11videosink.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2169>
+
+2021-04-18 13:49:59 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/webrtcdsp/gstwebrtcdsp.cpp:
+ webrtcdsp: Propagate VAD to audio level meta
+ Whenever the voice activity changed on the stream, update or create an
+ AudioLevelMeta and associate it to the corresponding buffer.
+ Fixes #1073
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2170>
+
+2021-04-19 13:06:23 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/closedcaption/gstcccombiner.c:
+ cccombiner: Use correct enum when registering the max-scheduled property
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2171>
+
+2021-04-15 14:06:59 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ wpe: Remove code targeting WebKit < 2.24
+ We already depend on wk >= 2.24
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2165>
+
+2021-04-15 13:28:42 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ wpe: Make threaded view singleton creation thread safe
+ It was leading to interesting failures.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2165>
+
+2021-04-15 00:02:55 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11pluginutils.cpp:
+ d3d11: pluginutils: Fix wrong gst_memory_unmap() on _map() failure
+ It was obvious typo
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2164>
+
+2021-04-13 17:15:22 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * tests/check/elements/avtpcvfdepay.c:
+ tests/avtp: increase timeout of test_depayloader_fragmented_big
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2160>
+
+2021-04-14 01:59:23 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * tests/check/elements/dash_mpd.c:
+ check: fix dash_mpdparser_check_mpd_client_set_methods test.
+ Setting guint64 valist properties without type specifier fails
+ on 32bit archs.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2161>
+
+2021-04-13 16:34:15 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * tests/check/elements/line21.c:
+ line21enc: fix remove-caption-meta property test
+ It's possible for the same address to be allocated to the decoded
+ metadata. Switch test to actual detect if it was removed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2159>
+
+2021-04-13 06:40:43 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * tests/check/elements/shm.c:
+ tests: fix shm test deadlock
+ Stopping the consumer first would occasionally allow the producer
+ to fill the shm segment causing it to block in send() and unable
+ to be stopped.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2158>
+
+2021-04-13 05:54:37 -0400 Doug Nazar <nazard@nazar.ca>
+
+ check: Fix test dash_mpdparser_xlink_period
+ Test used http://404/ERROR/XML.period as an invalid url. Curl now
+ interprets that as an 32bit int and tries an actual connect which
+ timesout. Use .invalid as an IANA reserved domain for invalid DNS.
+ curl -v http://404/ERROR/XML.period
+ * Trying 0.0.1.148:80...
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2157>
+
+2021-04-13 15:42:09 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: Fix an unmap typo in _va_copy.
+ No need to unmap the the src memory when failing to allocate the
+ dst mem. It has not been mapped yet.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2156>
+
+2021-04-06 12:03:32 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkcontext.c:
+ msdk: don't fall back to the default device
+ Ohterwise when user set a wrong device, the warning message doesn't get
+ printed if user doesn't set a right debug level in the environment, this
+ behavior might mislead user that the wrong device is being used.
+ This fixed https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1567
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2138>
+
+2021-04-12 17:54:31 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Simplify answer_caps intersection code a little
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-04-12 15:35:41 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * tests/check/elements/webrtcbin.c:
+ webrtcbin test: Wait for set-local-desc & set-remote-desc to continue
+ To avoid racing betwen the SDPs being set and the next step of the
+ test, let's wait for setting the SDP both locally and remotely to succeed.
+ of the test
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-04-01 14:51:30 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/gstwebrtcbin.h:
+ * ext/webrtc/webrtcdatachannel.c:
+ webrtcbin: Move GstPromise reply to operation framework
+ This makes it possible to reply to all promises in a consistent way
+ without having to do a unlock/relock that is always risky.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-04-01 14:41:11 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Make sure PC_LOCK is release when replying to promise
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-31 11:56:10 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Take PC lock around all entry points
+ All of those action signals change the internal state, so
+ protect it by using the PC_LOCK
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-31 11:49:36 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Take PC_LOCK when requesting new pad
+ This is needed to avoid having the state change under us.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-31 11:41:45 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * tests/check/elements/webrtcbin.c:
+ webrtcbin test: Add for the case where a second m-line is renegotiated
+ This is for the case where there answerer forces a specific media type
+ for a m-line, but he origin offer only has the other media type. In this
+ case, we will create a second transceiver on receiving the offer and add
+ the desired media type using renegotiation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-31 11:40:28 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Ensure that query caps method returns valid caps
+ This means rejecting any caps that aren't fixed. Also, use a filter
+ that will create unfixed caps if the other side just returns ANY.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-31 11:33:21 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Associate the stream with a new transceiver
+ Otherwise, this newly created transceiver has no stream and it
+ aborts later when it tries to connect the input pad.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-31 11:30:16 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Match unassociated transceiver by kind too
+ When a new m-line comes in that doesn't have a transceiver, only match
+ existing transceivers of the same kind.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-30 18:01:56 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Fix typoe in name of error GstStructure
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-30 16:16:50 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * tests/check/elements/webrtcbin.c:
+ webrtc test: Verify that forcing different kinds on peers fails
+ If the offer contains an audio kind and a video kind, forcing them both
+ at m-line zero will fail.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-30 16:04:33 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * tests/check/elements/webrtcbin.c:
+ webrtc tests: Verify that create-offer is rejected when needed
+ Verify that it gets rejected if a m-line at index 1 is requested but
+ there is no m-line 0.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-29 19:47:21 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * tests/check/elements/webrtcbin.c:
+ webrtcbin test: Add test for various cases where get_request_pad is meant to fail
+ This should ensure that the recently added code works.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-26 21:09:04 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Enforce direction on request sink pad with a specific name
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-26 20:55:36 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * tests/check/elements/webrtcbin.c:
+ webrtcbin: Try to match an existing transceiver on pad request
+ This should avoid creating extra transceivers that are duplicated.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-26 20:02:13 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Validate locked m-lines in set*Description
+ Verify that the remote description match the locked m-lines, otherwise
+ just reject the SDP.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-26 19:38:57 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/gstwebrtcbin.h:
+ webrtcbin: Remove unused session_mid_map
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-26 18:15:50 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/utils.h:
+ webrtcbin: Enforce m-line restrictions when creating offer
+ First fail the offer creation if the mid of an existing offer doesn't
+ match a forced m-mline.
+ Then, for all newly added mlines, first look for a transceiver that
+ forces this m-line, then add a "floating" one, then the data channel.
+ And repeat this until we're out of transceivers.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-26 15:57:15 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/webrtctransceiver.h:
+ webrtcbin: Remember if a transceiver had a forced m-line
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-26 15:54:35 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Enforce same-kind on request sink pad with a specific name
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-26 15:23:34 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Enforce compatible caps on pad request
+ If a pad is requested with certain caps and there is already a
+ transceiver, reject the pad request if the caps don't match.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-26 15:19:09 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Reject pad request for a specific m-line if it already exists
+ This way, the app developer is in control.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-26 15:02:50 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Make request-pad validation an early return
+ This reduces the indendation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-26 14:48:58 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Add document for webrtcbin itself to generated doc
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-23 20:18:24 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * tests/check/elements/webrtcbin.c:
+ webrtcbin test: Test adding a stream to a stream+datachannel
+ This use-case was previously broken by the expectation of having
+ a 1-1 match between the pad id and the m-line index
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-23 19:51:00 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtc: Reset received_caps when releasing pad
+ This is to work around a race where the pad is accessed in the
+ webrtc main thread while being released.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-03-23 17:51:16 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/gstwebrtcbin.h:
+ webrtcbin: Split pad name from mline
+ The simple case where this breaks is if you add a
+ datachannel and want to add a new pad (a new media) after). Another
+ case where this is broken is if the order of the media is forced to
+ something different by the peer.
+ It's more simple to just split both things completely. In practice, the
+ pads will be named in the order in which they are allocated, so it
+ shouldn't change the current behaviour, just enable new ones.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
+
+2021-02-25 05:04:00 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/switchbin/gstswitchbin.c:
+ switchbin: When collecting srcpad caps, don't intersect with path caps.
+ The path caps describe the input caps that will select each path, don't
+ intersect those with the srcpad caps, which could be completely
+ different. Instead, when querying allowed caps for the srcpad, just
+ construct the union of all possible output caps from all path srcpads.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2018>
+
+2021-02-16 15:00:07 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/switchbin/gstswitchbin.c:
+ switchbin: Don't report sink pad caps for src pad queries.
+ When handling a caps query on the src pad, don't return the union
+ of input caps. Even when not active, a path element can be queried
+ for srcpad template caps, or for dropping paths the allowed downstream
+ caps is anything - as data will be dropped anyway.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2018>
+
+2021-02-25 15:22:15 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/accurip/gstaccurip.c:
+ * gst/accurip/gstaccurip.h:
+ * gst/adpcmdec/adpcmdec.c:
+ * gst/adpcmenc/adpcmenc.c:
+ * gst/aiff/aiff.c:
+ * gst/aiff/aiffelements.h:
+ * gst/aiff/aiffmux.c:
+ * gst/aiff/aiffparse.c:
+ * gst/aiff/gstaiffelement.c:
+ * gst/aiff/meson.build:
+ * gst/asfmux/gstasf.c:
+ * gst/asfmux/gstasfmux.c:
+ * gst/asfmux/gstasfmux.h:
+ * gst/asfmux/gstasfparse.c:
+ * gst/asfmux/gstasfparse.h:
+ * gst/asfmux/gstrtpasfpay.c:
+ * gst/asfmux/gstrtpasfpay.h:
+ * gst/audiobuffersplit/gstaudiobuffersplit.c:
+ * gst/audiobuffersplit/gstaudiobuffersplit.h:
+ * gst/audiofxbad/gstaudiochannelmix.c:
+ * gst/audiofxbad/gstaudiochannelmix.h:
+ * gst/audiofxbad/gstaudiofxbad.c:
+ * gst/audiolatency/gstaudiolatency.c:
+ * gst/audiolatency/gstaudiolatency.h:
+ * gst/audiomixmatrix/gstaudiomixmatrix.c:
+ * gst/audiomixmatrix/gstaudiomixmatrix.h:
+ * gst/audiovisualizers/gstspacescope.c:
+ * gst/audiovisualizers/gstspacescope.h:
+ * gst/audiovisualizers/gstspectrascope.c:
+ * gst/audiovisualizers/gstspectrascope.h:
+ * gst/audiovisualizers/gstsynaescope.c:
+ * gst/audiovisualizers/gstsynaescope.h:
+ * gst/audiovisualizers/gstwavescope.c:
+ * gst/audiovisualizers/gstwavescope.h:
+ * gst/audiovisualizers/plugin.c:
+ * gst/autoconvert/gstautoconvert.c:
+ * gst/autoconvert/gstautoconvert.h:
+ * gst/autoconvert/gstautovideoconvert.c:
+ * gst/autoconvert/gstautovideoconvert.h:
+ * gst/autoconvert/plugin.c:
+ * gst/bayer/gstbayer.c:
+ * gst/bayer/gstbayer2rgb.c:
+ * gst/bayer/gstbayerelements.h:
+ * gst/bayer/gstrgb2bayer.c:
+ * gst/camerabin2/gstcamerabin2.c:
+ * gst/camerabin2/gstcamerabin2.h:
+ * gst/camerabin2/gstplugin.c:
+ * gst/camerabin2/gstviewfinderbin.c:
+ * gst/camerabin2/gstviewfinderbin.h:
+ * gst/camerabin2/gstwrappercamerabinsrc.c:
+ * gst/camerabin2/gstwrappercamerabinsrc.h:
+ * gst/coloreffects/gstchromahold.c:
+ * gst/coloreffects/gstchromahold.h:
+ * gst/coloreffects/gstcoloreffects.c:
+ * gst/coloreffects/gstcoloreffects.h:
+ * gst/coloreffects/gstplugin.c:
+ * gst/debugutils/debugutilsbad.c:
+ * gst/debugutils/fpsdisplaysink.c:
+ * gst/debugutils/gstchecksumsink.c:
+ * gst/debugutils/gstchopmydata.c:
+ * gst/debugutils/gstclockselect.c:
+ * gst/debugutils/gstcompare.c:
+ * gst/debugutils/gstdebugspy.c:
+ * gst/debugutils/gstdebugutilsbadelements.h:
+ * gst/debugutils/gsterrorignore.c:
+ * gst/debugutils/gstfakeaudiosink.c:
+ * gst/debugutils/gstfakevideosink.c:
+ * gst/debugutils/gsttestsrcbin.c:
+ * gst/debugutils/gstwatchdog.c:
+ * gst/dvbsubenc/gstdvbsubenc.c:
+ * gst/dvbsubenc/gstdvbsubenc.h:
+ * gst/dvbsuboverlay/gstdvbsuboverlay.c:
+ * gst/dvbsuboverlay/gstdvbsuboverlay.h:
+ * gst/dvdspu/gstdvdspu.c:
+ * gst/dvdspu/gstdvdspu.h:
+ * gst/faceoverlay/gstfaceoverlay.c:
+ * gst/faceoverlay/gstfaceoverlay.h:
+ * gst/festival/gstfestival.c:
+ * gst/festival/gstfestival.h:
+ * gst/fieldanalysis/gstfieldanalysis.c:
+ * gst/fieldanalysis/gstfieldanalysis.h:
+ * gst/freeverb/gstfreeverb.c:
+ * gst/freeverb/gstfreeverb.h:
+ * gst/gaudieffects/gstburn.c:
+ * gst/gaudieffects/gstburn.h:
+ * gst/gaudieffects/gstchromium.c:
+ * gst/gaudieffects/gstchromium.h:
+ * gst/gaudieffects/gstdilate.c:
+ * gst/gaudieffects/gstdilate.h:
+ * gst/gaudieffects/gstdodge.c:
+ * gst/gaudieffects/gstdodge.h:
+ * gst/gaudieffects/gstexclusion.c:
+ * gst/gaudieffects/gstexclusion.h:
+ * gst/gaudieffects/gstgaussblur.c:
+ * gst/gaudieffects/gstgaussblur.h:
+ * gst/gaudieffects/gstplugin.c:
+ * gst/gaudieffects/gstplugin.h:
+ * gst/gaudieffects/gstsolarize.c:
+ * gst/gaudieffects/gstsolarize.h:
+ * gst/gdp/gstgdp.c:
+ * gst/gdp/gstgdpdepay.c:
+ * gst/gdp/gstgdpdepay.h:
+ * gst/gdp/gstgdpelement.c:
+ * gst/gdp/gstgdpelements.h:
+ * gst/gdp/gstgdppay.c:
+ * gst/gdp/gstgdppay.h:
+ * gst/gdp/meson.build:
+ * gst/geometrictransform/gstbulge.c:
+ * gst/geometrictransform/gstbulge.h:
+ * gst/geometrictransform/gstcircle.c:
+ * gst/geometrictransform/gstcircle.h:
+ * gst/geometrictransform/gstdiffuse.c:
+ * gst/geometrictransform/gstdiffuse.h:
+ * gst/geometrictransform/gstfisheye.c:
+ * gst/geometrictransform/gstfisheye.h:
+ * gst/geometrictransform/gstkaleidoscope.c:
+ * gst/geometrictransform/gstkaleidoscope.h:
+ * gst/geometrictransform/gstmarble.c:
+ * gst/geometrictransform/gstmarble.h:
+ * gst/geometrictransform/gstmirror.c:
+ * gst/geometrictransform/gstmirror.h:
+ * gst/geometrictransform/gstperspective.c:
+ * gst/geometrictransform/gstperspective.h:
+ * gst/geometrictransform/gstpinch.c:
+ * gst/geometrictransform/gstpinch.h:
+ * gst/geometrictransform/gstrotate.c:
+ * gst/geometrictransform/gstrotate.h:
+ * gst/geometrictransform/gstsphere.c:
+ * gst/geometrictransform/gstsphere.h:
+ * gst/geometrictransform/gstsquare.c:
+ * gst/geometrictransform/gstsquare.h:
+ * gst/geometrictransform/gststretch.c:
+ * gst/geometrictransform/gststretch.h:
+ * gst/geometrictransform/gsttunnel.c:
+ * gst/geometrictransform/gsttunnel.h:
+ * gst/geometrictransform/gsttwirl.c:
+ * gst/geometrictransform/gsttwirl.h:
+ * gst/geometrictransform/gstwaterripple.c:
+ * gst/geometrictransform/gstwaterripple.h:
+ * gst/geometrictransform/plugin.c:
+ * gst/id3tag/gstid3mux.c:
+ * gst/id3tag/gstid3mux.h:
+ * gst/inter/gstinter.c:
+ * gst/inter/gstinteraudiosink.c:
+ * gst/inter/gstinteraudiosink.h:
+ * gst/inter/gstinteraudiosrc.c:
+ * gst/inter/gstinteraudiosrc.h:
+ * gst/inter/gstintersubsink.c:
+ * gst/inter/gstintersubsink.h:
+ * gst/inter/gstintersubsrc.c:
+ * gst/inter/gstintersubsrc.h:
+ * gst/inter/gstintervideosink.c:
+ * gst/inter/gstintervideosink.h:
+ * gst/inter/gstintervideosrc.c:
+ * gst/inter/gstintervideosrc.h:
+ * gst/interlace/gstinterlace.c:
+ * gst/ivfparse/gstivfparse.c:
+ * gst/ivfparse/gstivfparse.h:
+ * gst/ivtc/gstcombdetect.c:
+ * gst/ivtc/gstcombdetect.h:
+ * gst/ivtc/gstivtc.c:
+ * gst/ivtc/gstivtc.h:
+ * gst/jp2kdecimator/gstjp2kdecimator.c:
+ * gst/jp2kdecimator/gstjp2kdecimator.h:
+ * gst/jpegformat/gstjifmux.c:
+ * gst/jpegformat/gstjifmux.h:
+ * gst/jpegformat/gstjpegformat.c:
+ * gst/jpegformat/gstjpegparse.c:
+ * gst/jpegformat/gstjpegparse.h:
+ * gst/librfb/gstrfbsrc.c:
+ * gst/librfb/gstrfbsrc.h:
+ * gst/midi/midi.c:
+ * gst/midi/midiparse.c:
+ * gst/midi/midiparse.h:
+ * gst/mpegdemux/gstmpegdemux.c:
+ * gst/mpegdemux/gstmpegdemux.h:
+ * gst/mpegdemux/plugin.c:
+ * gst/mpegpsmux/mpegpsmux.c:
+ * gst/mpegpsmux/mpegpsmux.h:
+ * gst/mpegtsdemux/gsttsdemux.c:
+ * gst/mpegtsdemux/mpegtsbase.c:
+ * gst/mpegtsdemux/mpegtsparse.c:
+ * gst/mpegtsdemux/mpegtsparse.h:
+ * gst/mpegtsdemux/tsdemux.c:
+ * gst/mpegtsdemux/tsdemux.h:
+ * gst/mpegtsmux/gstatscmux.c:
+ * gst/mpegtsmux/gstatscmux.h:
+ * gst/mpegtsmux/gstbasetsmux.c:
+ * gst/mpegtsmux/gstmpegtsmux.c:
+ * gst/mpegtsmux/gstmpegtsmux.h:
+ * gst/mpegtsmux/gstmpegtsmuxplugin.c:
+ * gst/mxf/gstmxfelement.c:
+ * gst/mxf/gstmxfelements.h:
+ * gst/mxf/meson.build:
+ * gst/mxf/mxf.c:
+ * gst/mxf/mxfdemux.c:
+ * gst/mxf/mxfmux.c:
+ * gst/netsim/gstnetsim.c:
+ * gst/netsim/gstnetsim.h:
+ * gst/onvif/gstrtponvif.c:
+ * gst/onvif/gstrtponvifparse.c:
+ * gst/onvif/gstrtponvifparse.h:
+ * gst/onvif/gstrtponviftimestamp.c:
+ * gst/onvif/gstrtponviftimestamp.h:
+ * gst/pcapparse/gstirtspparse.c:
+ * gst/pcapparse/gstirtspparse.h:
+ * gst/pcapparse/gstpcapparse.c:
+ * gst/pcapparse/gstpcapparse.h:
+ * gst/pcapparse/plugin.c:
+ * gst/pnm/gstpnm.c:
+ * gst/pnm/gstpnmdec.c:
+ * gst/pnm/gstpnmdec.h:
+ * gst/pnm/gstpnmenc.c:
+ * gst/pnm/gstpnmenc.h:
+ * gst/proxy/gstproxy.c:
+ * gst/proxy/gstproxysink.c:
+ * gst/proxy/gstproxysink.h:
+ * gst/proxy/gstproxysrc.c:
+ * gst/proxy/gstproxysrc.h:
+ * gst/rawparse/gstaudioparse.c:
+ * gst/rawparse/gstaudioparse.h:
+ * gst/rawparse/gstvideoparse.c:
+ * gst/rawparse/gstvideoparse.h:
+ * gst/rawparse/plugin.c:
+ * gst/removesilence/gstremovesilence.c:
+ * gst/removesilence/gstremovesilence.h:
+ * gst/rist/gstrist.c:
+ * gst/rist/gstrist.h:
+ * gst/rist/gstristplugin.c:
+ * gst/rist/gstristrtpdeext.c:
+ * gst/rist/gstristrtpext.c:
+ * gst/rist/gstristrtxreceive.c:
+ * gst/rist/gstristrtxsend.c:
+ * gst/rist/gstristsink.c:
+ * gst/rist/gstristsrc.c:
+ * gst/rist/gstroundrobin.c:
+ * gst/rist/gstroundrobin.h:
+ * gst/rist/meson.build:
+ * gst/rtmp2/gstrtmp2.c:
+ * gst/rtmp2/gstrtmp2element.c:
+ * gst/rtmp2/gstrtmp2elements.h:
+ * gst/rtmp2/gstrtmp2sink.c:
+ * gst/rtmp2/gstrtmp2src.c:
+ * gst/rtmp2/meson.build:
+ * gst/rtp/gstrtpsink.c:
+ * gst/rtp/gstrtpsink.h:
+ * gst/rtp/gstrtpsrc.c:
+ * gst/rtp/gstrtpsrc.h:
+ * gst/rtp/plugin.c:
+ * gst/sdp/gstsdpdemux.c:
+ * gst/sdp/gstsdpdemux.h:
+ * gst/sdp/gstsdpelem.c:
+ * gst/sdp/gstsdpsrc.c:
+ * gst/sdp/gstsdpsrc.h:
+ * gst/segmentclip/gstaudiosegmentclip.c:
+ * gst/segmentclip/gstaudiosegmentclip.h:
+ * gst/segmentclip/gstvideosegmentclip.c:
+ * gst/segmentclip/gstvideosegmentclip.h:
+ * gst/segmentclip/plugin.c:
+ * gst/siren/gstsiren.c:
+ * gst/siren/gstsirendec.c:
+ * gst/siren/gstsirendec.h:
+ * gst/siren/gstsirenenc.c:
+ * gst/siren/gstsirenenc.h:
+ * gst/smooth/gstsmooth.c:
+ * gst/smooth/gstsmooth.h:
+ * gst/speed/gstspeed.c:
+ * gst/speed/gstspeed.h:
+ * gst/subenc/gstsrtenc.c:
+ * gst/subenc/gstsrtenc.h:
+ * gst/subenc/gstsubenc.c:
+ * gst/subenc/gstwebvttenc.c:
+ * gst/subenc/gstwebvttenc.h:
+ * gst/switchbin/gstswitchbin.c:
+ * gst/switchbin/gstswitchbin.h:
+ * gst/switchbin/plugin.c:
+ * gst/timecode/gstavwait.c:
+ * gst/timecode/gstavwait.h:
+ * gst/timecode/gsttimecodestamper.c:
+ * gst/timecode/gsttimecodestamper.h:
+ * gst/timecode/plugin.c:
+ * gst/transcode/gsttranscodebin.c:
+ * gst/transcode/gsttranscodeelement.c:
+ * gst/transcode/gsttranscodeelements.h:
+ * gst/transcode/gsttranscodeplugin.c:
+ * gst/transcode/gsturitranscodebin.c:
+ * gst/transcode/meson.build:
+ * gst/videofilters/gstscenechange.c:
+ * gst/videofilters/gstscenechange.h:
+ * gst/videofilters/gstvideodiff.c:
+ * gst/videofilters/gstvideodiff.h:
+ * gst/videofilters/gstvideofiltersbad.c:
+ * gst/videofilters/gstzebrastripe.c:
+ * gst/videofilters/gstzebrastripe.h:
+ * gst/videoframe_audiolevel/gstvideoframe-audiolevel.c:
+ * gst/videoframe_audiolevel/gstvideoframe-audiolevel.h:
+ * gst/videoparsers/gstav1parse.c:
+ * gst/videoparsers/gstdiracparse.c:
+ * gst/videoparsers/gsth263parse.c:
+ * gst/videoparsers/gsth264parse.c:
+ * gst/videoparsers/gsth265parse.c:
+ * gst/videoparsers/gstjpeg2000parse.c:
+ * gst/videoparsers/gstmpeg4videoparse.c:
+ * gst/videoparsers/gstmpegvideoparse.c:
+ * gst/videoparsers/gstpngparse.c:
+ * gst/videoparsers/gstvc1parse.c:
+ * gst/videoparsers/gstvideoparserselement.c:
+ * gst/videoparsers/gstvideoparserselements.h:
+ * gst/videoparsers/gstvp9parse.c:
+ * gst/videoparsers/meson.build:
+ * gst/videoparsers/plugin.c:
+ * gst/videosignal/gstsimplevideomark.c:
+ * gst/videosignal/gstsimplevideomark.h:
+ * gst/videosignal/gstsimplevideomarkdetect.c:
+ * gst/videosignal/gstsimplevideomarkdetect.h:
+ * gst/videosignal/gstvideoanalyse.c:
+ * gst/videosignal/gstvideoanalyse.h:
+ * gst/videosignal/gstvideosignal.c:
+ * gst/vmnc/vmncdec.c:
+ * gst/vmnc/vmncdec.h:
+ * gst/y4m/gsty4mdec.c:
+ * gst/y4m/gsty4mdec.h:
+ gst-plugins: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2110>
+
+2021-04-10 20:34:26 +0200 Helmut Januschka <helmut@januschka.com>
+
+ * gst/rtmp2/rtmp/rtmpclient.c:
+ allow NetStream.Play.PublishNotify Message
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2154>
+
+2021-03-26 11:00:50 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * sys/bluez/bluez-plugin.c:
+ * sys/bluez/gsta2dpsink.c:
+ * sys/bluez/gsta2dpsink.h:
+ * sys/bluez/gstavdtpsink.c:
+ * sys/bluez/gstavdtpsink.h:
+ * sys/bluez/gstavdtpsrc.c:
+ * sys/bluez/gstavdtpsrc.h:
+ * sys/bluez/gstbluezelement.c:
+ * sys/bluez/gstbluezelements.h:
+ * sys/bluez/meson.build:
+ * sys/decklink/gstdecklink.cpp:
+ * sys/decklink/gstdecklink.h:
+ * sys/decklink/gstdecklinkaudiosink.cpp:
+ * sys/decklink/gstdecklinkaudiosink.h:
+ * sys/decklink/gstdecklinkaudiosrc.cpp:
+ * sys/decklink/gstdecklinkaudiosrc.h:
+ * sys/decklink/gstdecklinkdeviceprovider.cpp:
+ * sys/decklink/gstdecklinkdeviceprovider.h:
+ * sys/decklink/gstdecklinkplugin.cpp:
+ * sys/decklink/gstdecklinkvideosink.cpp:
+ * sys/decklink/gstdecklinkvideosink.h:
+ * sys/decklink/gstdecklinkvideosrc.cpp:
+ * sys/decklink/gstdecklinkvideosrc.h:
+ * sys/decklink/meson.build:
+ * sys/dvb/dvbbasebin.c:
+ * sys/dvb/dvbbasebin.h:
+ * sys/dvb/gstdvb.c:
+ * sys/dvb/gstdvbelement.c:
+ * sys/dvb/gstdvbelements.h:
+ * sys/dvb/gstdvbsrc.c:
+ * sys/dvb/gstdvbsrc.h:
+ * sys/dvb/meson.build:
+ * sys/fbdev/gstfbdevsink.c:
+ * sys/fbdev/gstfbdevsink.h:
+ * sys/ipcpipeline/gstipcpipeline.c:
+ * sys/ipcpipeline/gstipcpipelineelement.c:
+ * sys/ipcpipeline/gstipcpipelineelements.h:
+ * sys/ipcpipeline/gstipcpipelinesink.c:
+ * sys/ipcpipeline/gstipcpipelinesrc.c:
+ * sys/ipcpipeline/gstipcslavepipeline.c:
+ * sys/ipcpipeline/meson.build:
+ * sys/kms/gstkmssink.c:
+ * sys/kms/gstkmssink.h:
+ * sys/magicleap/mlaudiosink.c:
+ * sys/magicleap/mlaudiosink.h:
+ * sys/magicleap/plugin.c:
+ * sys/opensles/meson.build:
+ * sys/opensles/opensles.c:
+ * sys/opensles/opensles.h:
+ * sys/opensles/openslesplugin.c:
+ * sys/opensles/openslessink.c:
+ * sys/opensles/openslessink.h:
+ * sys/opensles/openslessrc.c:
+ * sys/opensles/openslessrc.h:
+ * sys/shm/gstshm.c:
+ * sys/shm/gstshmsink.c:
+ * sys/shm/gstshmsink.h:
+ * sys/shm/gstshmsrc.c:
+ * sys/shm/gstshmsrc.h:
+ * sys/uvch264/gstuvch264.c:
+ * sys/uvch264/gstuvch264_mjpgdemux.c:
+ * sys/uvch264/gstuvch264_mjpgdemux.h:
+ * sys/uvch264/gstuvch264_src.c:
+ * sys/uvch264/gstuvch264_src.h:
+ * sys/uvch264/gstuvch264deviceprovider.c:
+ * sys/uvch264/gstuvch264deviceprovider.h:
+ plugins-sys: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2116>
+
+2021-04-09 01:54:50 +0900 Seungha Yang <seungha@centricular.com>
+
+ codecs: vp9decoder: Update docs
+ * Remove "FIXME 1.20": All the bits are addressed already by using
+ vp9parse element
+ * Fix copy & paste errors: Some comments were copied from h264decoder
+ blindly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2151>
+
+2021-04-09 12:45:46 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gstvp9decoder.c:
+ codecs: vp9decoder: Make duplicate_picture() vfunc optional
+ The default implementation was required when superframe parsing
+ was handled by vp9decoder. For instance, if a superframe consists
+ of multiple frames with show_existing_frame header, it was vague
+ that which GstVp9Picture should consume GstVideoCodecFrame.
+ After 1.18 release, we introduced vp9parse element and
+ superframe should be handled by upstream vp9parse elemenet now.
+ So, we don't need to care about the superframe at vp9decoder class
+ level anymore. Simply, a frame corresponding to show_existing_frame
+ can be dropped if subclass doesn't implement duplicate_picture().
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2151>
+
+2021-03-30 14:40:53 +0100 Philippe Normand <philn@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/debugutils/debugutilsbad.c:
+ * gst/debugutils/gstfakeaudiosink.c:
+ * gst/debugutils/gstfakeaudiosink.h:
+ * gst/debugutils/meson.build:
+ debugutils: Add fakeaudiosink element
+ This element can be useful for CI purposes on machines not running any system
+ audio daemon. The element implements the GstStreamVolume interface.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2125>
+
+2021-04-08 14:53:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codecallocator.c:
+ v4l2codecs: allocator: Keep dmabuf mapped
+ DMABuf allocator already implements DMABuf Sync, meaning that doing
+ mmap/munmap (unless the mode have changed) is not required. In fact, on
+ systems with IOMMU it makes the kernel redo the mmu table which is visible
+ in the CPU usage.
+ This change reduces CPU usage when decoding
+ bbb_sunflower_2160p_60fps_normal.mp4 on RK3399 SoC from over 30% to
+ around 15%.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2152>
+
+2021-04-03 14:16:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: Implement mem_copy for VA memory.
+ Implementation of mem_copy() virtual method for GstVaAllocator.
+ It's a deep copy where a new VA memory is popped out from the pool or,
+ if pool is empty, a new memory is allocated. The original memory is
+ mapped to read, and if its VAImage is not derived and size to copy is
+ the whole surface, the mapped VAImage of the original memory is put in
+ the new memory. Otherwise a slow memcpy is done between both memories.
+ Fixes: #1568
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2136>
+
+2021-04-08 20:29:29 +0800 Zhao Zhili <zhilizhao@tencent.com>
+
+ * ext/srt/gstsrtobject.c:
+ srtobject: fix optlen of srt_getsockflag
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2149>
+
+2021-01-14 14:24:06 +0800 Haihua Hu <jared.hu@nxp.com>
+
+ * gst/videoparsers/gstjpeg2000parse.c:
+ jpeg2000parse: fix critical log when play one gray colorspace video
+ Need guess color space based on number of components when cannot
+ got it from sink caps
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1955>
+
+2020-12-11 16:33:39 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/ldac/gstldacenc.c:
+ ldacenc: Emit message on errors
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1875>
+
+2020-12-11 16:26:00 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/sbc/gstsbcenc.c:
+ sbc: Return hard error on allocation or mapping error
+ Also post a message on the bus in these cases.wpe: Emit load-progress messages
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1875>
+
+2020-10-25 16:39:48 +0000 Matthieu De Beule <matthieu.de@beule.be>
+
+ * gst-libs/gst/player/gstplayer.c:
+ Tell programmers that set_volume uses linear scale (fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1439)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1722>
+
+2020-12-11 14:52:20 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/ldac/gstldacenc.c:
+ * ext/sbc/gstsbcenc.c:
+ sbc/ldac: Don't use GST_CAPS_NONE to mean NULL
+ The GST_CAPS_NONE macro actually returns a instance of
+ a empty caps.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1874>
+
+2021-03-30 17:24:38 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gstvp9decoder.c:
+ codecs: vp9decoder: Allow decoding start with intra-only frame
+ As per spec "7.2 Uncompressed header semantics" and
+ "8.2 Frame order constraints", decoding can start with intra-only
+ frame. This commit is for fixing vp90-2-16-intra-only.webm
+ bitstream test failure.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2112>
+
+2021-03-29 02:11:22 +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: Pass GstVideoCodecFrame to duplicate_picture()
+ ... and fix picture duplication logic for vavp9dec
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2112>
+
+2021-03-30 11:49:43 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gstvp9decoder.c:
+ * gst-libs/gst/codecs/gstvp9decoder.h:
+ * gst-libs/gst/codecs/gstvp9picture.h:
+ * sys/d3d11/gstd3d11vp9dec.cpp:
+ * sys/nvcodec/gstnvvp9dec.c:
+ * sys/va/gstvavp9dec.c:
+ codecs: vp9decoder: Port to GstVp9StatefulParser
+ Use newly implemented VP9 parser. Since new GstVp9FrameHeader
+ struct holds all the information of the stream, baseclass will not
+ pass parser object to new_sequence() method anymore.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2112>
+
+2021-03-27 15:32:59 +0900 Seungha Yang <seungha@centricular.com>
+
+ codecparsers: Reimplement VP9 parser
+ Existing VP9 parser implementation doesn't provide information
+ required by other stateless decoding APIs (i.e., DXVA and NVDEC),
+ specifically loop filter and segmentation parameters might not exist
+ current frame. So parser needs to fill the information by using previously
+ parsed information.
+ We can update the gstvp9parser implementation so that it can provide
+ all information required by stateless decoding APIs with a huge API break,
+ or adding more ugly struct in it.
+ Instead doing as such, this commit introduce a new VP9 parser implementation.
+ What is different from existing one?
+ * All variables will follow the specification as much as possible:
+ VP9 Bitstream & Decoding Process Specification - v0.6 31st March 2016
+ * Parser will fill all the required information for decoding frame
+ to GstVp9FrameHeader struct. In case of old VP9 parser,
+ user needs to read additional data from parser's member variables.
+ * GstVp9StatefulParser object struct is completely completely opaque
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2112>
+
+2021-03-28 16:11:23 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gstvp9decoder.c:
+ codecs: vp9decoder: Don't check codec change with show_existing_frame
+ Show existing frame will zero frame_type value but it doesn't mean
+ it's keyframe.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2112>
+
+2021-04-06 16:24:39 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2decoder.c:
+ v4l2codecs: Fix holding of reference picture buffer
+ The picture buffer (V4L2 CAPTURE buffer) was being released immediatly
+ when the request was done. This was problematic since even after the
+ request is done, the picture buffer might still be used as a reference
+ and should not be reused for further decoding yet.
+ This change effectively bind the picture buffer lifetime to the request.
+ So that if the picture is never showned (decode only frame) or the request
+ queue is full before the buffer is displayed, the picture buffer will
+ remain alive.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2142>
+
+2021-04-07 07:48:57 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * gst/rtmp2/rtmp/rtmpmessage.c:
+ rtmp2: Use correct size of write macro for param2.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2146>
+
+2021-04-01 07:59:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ va: filter: remove unsupported formats because driver's bugs
+ Add a way to filter out video formats from caps because of unresolved
+ bugs in drivers. In this case for media-driver (iHD) where some RGB32
+ formats are not handled correctly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2129>
+
+2021-03-31 09:59:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavideoformat.c:
+ va: videoformats: Map more color formats.
+ Added Y212_LE, Y412_LE, P012_LE, Y444, RGB16, RGB and BGR10A2_LE in
+ the static map betwen VA and GStreamer color formats. This synchronize
+ the map used in gstremaer-vaapi and this plugin.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2129>
+
+2021-03-31 09:50:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvadisplay.c:
+ * sys/va/gstvavideoformat.c:
+ * sys/va/gstvavideoformat.h:
+ va: videoformats: Fix RGB32 mapping between VA and GStreamer.
+ Different VA drives might have different definitions for RGB32 color
+ formats because different bit interpretation. Sadly the specification
+ doesn't clarify these interpretations. So VA users have to figure out
+ what's the correct mapping with it's rendering color format
+ definition.
+ This patch aims to fix the static map structure after the
+ VAImageFormats are queried. There is another static map with the
+ different interpretations of the RGB32 formats, and compare them with
+ the given VAImageFormat, then with the GStreamer color format, update
+ the mapping table.
+ Finally, some RGB32 color formats were added.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2129>
+
+2021-04-07 01:03:15 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * ext/avtp/gstavtpcvfdepay.c:
+ * ext/avtp/gstavtpcvfpay.c:
+ * ext/avtp/gstavtpsrc.c:
+ avtp: Fix log format macros
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2145>
+
+2021-04-06 13:07:52 -0300 Daniel Almeida <daniel.almeida@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2decoder.c:
+ v4l2codecs: gstv4l2decoder.c: Add missing include
+ Add missing include for sys/ioctl.h so that these warnings dissapear
+ when compiling:
+ ../subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2decoder.c:179:9:
+ warning: implicit declaration of function ‘ioctl’
+ [-Wimplicit-function-declaration]
+ Signed-off-by: Daniel Almeida <daniel.almeida@collabora.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2140>
+
+2021-04-06 19:18:45 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/curl/gstcurlsftpsink.c:
+ curlsftpsink: Don't run GST_DEBUG_OBJECT() on a class struct
+ It's supposed to be a GObject.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2141>
+
+2021-03-29 15:29:30 +0800 Yinhang Liu <yinhang.liu@intel.com>
+
+ * sys/msdk/gstmsdkenc.c:
+ * sys/msdk/gstmsdkh265enc.c:
+ msdkh265enc: add support for RGB 10bit format
+ The SDK can support A2RGB10 format [1], A2RGB10 format corresponds
+ to BGR10A2_LE format in gstreamer. A2RGB10 format only supports
+ low-power mode.
+ Example:
+ gst-launch-1.0 videotestsrc ! video/x-raw,format=BGR10A2_LE \
+ ! msdkh265enc low-power=1 ! fakesink
+ [1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#mfxframedata
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2126>
+
+2021-03-31 16:18:04 +0200 Wim Taymans <wtaymans@redhat.com>
+
+ * gst-libs/gst/vulkan/android/gstvkwindow_android.c:
+ * gst-libs/gst/vulkan/cocoa/gstvkwindow_cocoa.m:
+ * gst-libs/gst/vulkan/gstvkapi.h:
+ * gst-libs/gst/vulkan/gstvkhandle.h:
+ * gst-libs/gst/vulkan/ios/gstvkwindow_ios.m:
+ * gst-libs/gst/vulkan/wayland/gstvkwindow_wayland.c:
+ * gst-libs/gst/vulkan/win32/gstvkwindow_win32.c:
+ * gst-libs/gst/vulkan/xcb/gstvkwindow_xcb.c:
+ * sys/applemedia/videotexturecache-vulkan.mm:
+ vulkan: provide a custom VK_DEFINE_NON_DISPATCHABLE_HANDLE
+ If the application did not define one yet, define our own
+ VK_DEFINE_NON_DISPATCHABLE_HANDLE that is independent of the
+ architecture.
+ Vulkan, by default, provides a define that depends on the architecture,
+ which causes the symbol type to be different. This causes an
+ architecture dependent .gir file, which then causes multilib
+ installation problems because the .gir files can't be shared.
+ Make it possible to override the format specifier and provide
+ a default one that is compatible with the default non dispatchable
+ handle.
+ Return VK_NULL_HANDLE from functions that return a non-dispatchable
+ handle.
+ Fixes #1566
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2130>
+
+2021-03-26 17:48:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ * sys/va/gstvafilter.h:
+ * sys/va/gstvavpp.c:
+ va: postproc, filter: add disable-passthrough property
+ vapostproc tries to be in passthrough mode as much as possible. But
+ they might be situations where the user might force to process the
+ frames. For example, when upstream sets the crop meta and the user
+ wants VA do that cropping, rather than downstream.
+ For those situations this property will disable the passthrough mode,
+ if it's enabled.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2058>
+
+2021-02-23 09:01:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: postproc: enable cropping by crop meta
+ If incoming buffers have crop meta it's done by vapostproc, iif
+ vapostproc is not in passthrough mode and downstream doesn't handle
+ it.
+ This patch announces the crop meta API in proposed bufferpool, while
+ it stops filtering meta APIs, since it was only filter crop api.
+ Also if downstream supports crop and video metas, vapostporoc
+ announces both meta APIs in upstream bufferpool.
+ Finally, the meta is removed from the buffer if the crop is enabled.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2058>
+
+2021-03-04 15:19:25 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ * sys/va/gstvafilter.h:
+ va: filter: add gst_va_filter_enable_cropping ()
+ This will toggle the cropping operation in the filter
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2058>
+
+2021-01-23 12:53:25 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ * sys/va/gstvafilter.h:
+ * sys/va/gstvavpp.c:
+ va: filter, vpp: add and use GstVaSample struct
+ This new struct describes the input and output GstBuffers to
+ post-process, including VA flags. It also contains the VASurfaceID and
+ VARectangle, but those are private, completed inside GstVaFilter.
+ It is used for pass arguments to gst_va_filter_convert_surface() function.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2058>
+
+2021-02-28 08:38:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: postproc: Use allocation caps when creating sink pool.
+ When an input buffer needs to be copied into a VA memory, it's
+ required to create a buffer pool. This patch uses the
+ propose_allocation() caps to instantiate the allocator and pool,
+ instead of the negotiated caps, which rather represents the resolution
+ to display.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2058>
+
+2021-01-22 23:54:50 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/closedcaption/gstline21dec.c:
+ line21dec: relax caps requirements
+ Instead of requiring interlaced video, simply skip CC detection
+ when the input is progressive.
+ This allows placing line21decoder unconditionally in pipelines,
+ without having to worry about whether the input stream will be
+ interlaced, or even worse interlacing just in case!
+ + update doc cache
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1885>
+
+2020-12-16 01:02:53 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * ext/closedcaption/gstline21dec.c:
+ * ext/closedcaption/gstline21dec.h:
+ line21dec: expose mode property
+ That new property can be used to control whether and how
+ detected CC meta should be inserted in the list of existing
+ CC meta on the input frame (if there was any).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1885>
+
+2020-12-15 22:01:33 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * ext/closedcaption/gstline21dec.c:
+ * ext/closedcaption/gstline21dec.h:
+ line21dec: expose ntsc-only property
+ When this is set, the element only tries to detect CC when the
+ height is 525 or 486 (NTSC resolutions). The height is already
+ checked.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1885>
+
+2021-03-31 11:52:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: Use derived images only if not mapped for reading.
+ Derived images are direct maps to surfaces bits, but in Intel Gen7 to
+ Gen9, that memory is not cachable, thus reading can be very slow (it
+ might produce timeout is tests such as fluster).
+ This patch tries first to define if derived images are possible, and
+ later use them only if mapping is not for reading.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2128>
+
+2021-03-31 11:13:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvacaps.c:
+ va: caps: Add image formats in raw caps only for non-iHD.
+ This plugin, for decoders more concretely, assumes that a VA config
+ can do certain color conversions when mapping frames onto CPU's
+ memory.
+ This assumption was valid for i965 and Gallium drivers which generates
+ valid outputs in bitstreams testers (v.gr. fluster). Nonetheless, iHD,
+ even when it generates acceptable rendered frames, output's MD5 of
+ tests weren't valid.
+ This patch append the image formats, for color conversion when mapping
+ to memory, for non-iHD drivers.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2128>
+
+2021-04-01 15:09:45 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11convert.cpp:
+ * sys/d3d11/gstd3d11upload.cpp:
+ d3d11: Fix for UYVY/VYUY format rendering
+ Don't assume that non-native DXGI formats support RTV and/or SRV.
+ We are mapping UYVY and VYUY formats to DXGI_FORMAT_R8G8_B8G8_UNORM
+ which doesn't support render target view
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2133>
+
+2021-03-25 03:16:05 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/mpegtsmux/gstbasetsmux.c:
+ * gst/mpegtsmux/gstbasetsmux.h:
+ mpegtsmux: Respect the start-time-selection property.
+ Use the start time provided by the aggregator base class for output
+ times.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2105>
+
+2021-03-29 15:24:38 +0800 Yinhang Liu <yinhang.liu@intel.com>
+
+ * sys/msdk/gstmsdkh265enc.c:
+ * sys/msdk/gstmsdkh265enc.h:
+ msdkh265enc: add dblk-idc property
+ The SDK can support deblocking reference structure [1], so add a new
+ property 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/2122>
+
+2021-03-29 15:18:13 +0800 Yinhang Liu <yinhang.liu@intel.com>
+
+ * sys/msdk/gstmsdkh264enc.c:
+ * sys/msdk/gstmsdkh264enc.h:
+ msdkh264enc: add dblk-idc property
+ The SDK can support deblocking reference structure [1], so add a new
+ property 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/2122>
+
+2021-03-30 11:34:54 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/flite/gstflite.c:
+ * ext/flite/gstflitetestsrc.c:
+ flite: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2123>
+
+2021-03-30 11:27:11 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/dtls/plugin.c:
+ dtls: hotfix: allow per feature registration
+ Use of GST_ELEMENT_REGISTER in plugin.c
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2123>
+
+2021-03-26 19:47:06 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/gs/meson.build:
+ gs: remove clang formatting
+ remove clang formatting during
+ the build.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2115>
+
+2021-03-26 11:41:50 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/gs/gstgs.cpp:
+ * ext/gs/gstgssink.cpp:
+ * ext/gs/gstgssink.h:
+ * ext/gs/gstgssrc.cpp:
+ * ext/gs/gstgssrc.h:
+ gs: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2115>
+
+2021-03-29 12:15:18 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/timecode/gstavwait.c:
+ avwait: Don't reset time tracking when receiving the same segment again
+ This causes avwait to go back into "dropping" mode until audio and video
+ are synced again, which is unnecessary when the segment didn't actually
+ change.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2121>
+
+2021-03-17 14:30:09 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/nvcodec/gstnvdecoder.c:
+ * sys/nvcodec/gstnvdecoder.h:
+ * sys/nvcodec/gstnvh264dec.c:
+ * sys/nvcodec/gstnvh265dec.c:
+ * sys/nvcodec/gstnvvp8dec.c:
+ * sys/nvcodec/gstnvvp9dec.c:
+ nvcodec: nvsldec: Refactor graphics api resource handling
+ * Move GL context object to GstNVDecoder object, and remove
+ duplicated handling of each codec decoder element
+ * Don't create GL context too early. We can create it only if
+ we need to negotiate with downstream gl element.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2089>
+
+2021-03-17 14:38:40 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkh264enc.c:
+ * sys/msdk/gstmsdkh264enc.h:
+ * sys/msdk/gstmsdkh265enc.c:
+ * sys/msdk/gstmsdkh265enc.h:
+ * sys/msdk/msdk-enums.c:
+ * sys/msdk/msdk-enums.h:
+ msdkenc{h264,h265}: add intra-refresh-type property
+ The SDK allows user to specify the intra refresh type which can improve
+ error resilience without significant impact on encoded bitstream size
+ caused by I frames [1]
+ [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/2090>
+
+2021-03-28 12:03:09 +0200 Marijn Suijten <marijns95@gmail.com>
+
+ * gst-libs/gst/d3d11/gstd3d11memory.h:
+ * gst-libs/gst/webrtc/webrtc_fwd.h:
+ Add @ prefix to enum-variant references in documentation
+ Found while working on GStreamer-rs documentation, some enums had this
+ bit of text pasted verbatim in the enum documentation rather than
+ attached to the enum-variant. Fortunately it seems these in WebRTC and
+ D3D11 are the only ones matching the non-@-prefixed pattern:
+ ^ \* GST_\w+:\s*\w+
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2118>
+
+2021-03-26 12:20:07 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/rtmp2/rtmp/rtmpconnection.c:
+ rtmp2/connection: Separate inner from outer cancelling
+ The connection cancels itself when it is closed. To avoid the
+ cancellable passed to `gst_rtmp_connection_new` from being unexpectedly
+ cancelled, separate inner from outer cancellation by holding two
+ cancellables.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1558
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2111>
+
+2021-03-28 12:06:24 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11vp9dec.cpp:
+ d3d11vp9dec: Remove debug dump functions
+ Existing debug messages are not quite useful
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2117>
+
+2021-03-28 16:06:55 +0900 Seungha Yang <seungha@centricular.com>
+
+ * 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: Move zero-copy decision logic into decoder object
+ Get rid of all duplicated code for zero-copy decision and output buffer
+ allocation
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2117>
+
+2021-03-26 22:40:34 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11vp9dec.cpp:
+ d3d11vp9dec: Ignore show_frame flag in output_picture()
+ baseclass will not call output_picture() if it shouldn't be ouputted.
+ Note that the show_frame flag can be zero when show_existing_frame is set
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2114>
+
+2021-03-26 22:27:38 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gstvp9decoder.c:
+ codecs: vp9decoder: Fix to output frame when show_existing_frame flag is set
+ When show_existing_frame flag is set, show_frame flag is zero
+ but we should output previously decoded frame as specified in frame header.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2114>
+
+2021-03-26 21:06:59 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11h264dec.cpp:
+ * sys/d3d11/gstd3d11h265dec.cpp:
+ * sys/d3d11/gstd3d11mpeg2dec.cpp:
+ * sys/d3d11/gstd3d11vp8dec.cpp:
+ * sys/d3d11/gstd3d11vp9dec.cpp:
+ d3d11decoder: Do not hardcode the limit minimum resolution to 64
+ Decoder should be able to support lower resolution than 64x64
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2113>
+
+2021-03-25 21:17:07 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videosink.cpp:
+ * sys/d3d11/gstd3d11videosinkbin.cpp:
+ * sys/d3d11/gstd3d11window.cpp:
+ * sys/d3d11/gstd3d11window.h:
+ d3d11videosink: Remove DirectWrite related dead code
+ It's now not enabled since we moved core part to gst-libs
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2108>
+
+2021-03-25 03:24:11 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfvideoenc.cpp:
+ mfvideoenc: Don't pass 0/1 framerate to MFT
+ Some MFT implementations do not accept 0/1 framerate and it will
+ result in encoder open failure. If framerate is unknown,
+ we will use arbitrary 25/1 framerate value.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2106>
+
+2021-03-23 13:48:09 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11memory.c:
+ * gst-libs/gst/d3d11/gstd3d11memory.h:
+ * sys/d3d11/gstd3d11decoder.cpp:
+ d3d11decoder: Resurrect zero-copy for fixed-size DPB pool
+ Enable zero-copy if downstream proposed pool and therefore decoder
+ can know the amount of buffer required by downstream.
+ Otherwise decoder will copy when our DPB pool has no sufficient
+ buffers for later decoding operation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2097>
+
+2021-03-20 19:52:16 +0900 Seungha Yang <seungha@centricular.com>
+
+ * 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: Implement array-of-texture DPB again
+ Re-implementation of array-of-texture based on d3d11 memory pool.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2097>
+
+2021-03-18 22:31:55 +0900 Seungha Yang <seungha@centricular.com>
+
+ d3d11: Implement memory pool
+ Major changes:
+ * GstD3D11Allocator: This allocator is now device-independent object
+ which can allocate GstD3D11Memory object for any GstD3D11Device.
+ User can get this object via gst_allocator_find(GST_D3D11_MEMORY_NAME)
+ * GstD3D11PoolAllocator: A new allocator implementation for texture pool.
+ From now on GstD3D11BufferPool will make use of this memory pool allocator
+ to avoid frequent texture reallocation. That usually happens because
+ of buffer copy (gst_buffer_make_writable for example)
+ In addition to that, GstD3D11BufferPool will provide GstBuffer with
+ GstVideoMeta, because CPU access to a GstD3D11Memory without GstVideoMeta
+ is almost impossible since GPU drivers needs padding for stride alignment.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2097>
+
+2021-03-20 22:11:49 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11memory.c:
+ * gst-libs/gst/d3d11/gstd3d11memory.h:
+ * sys/d3d11/gstd3d11decoder.cpp:
+ d3d11decoder: Temporarily remove zero-copy related code
+ We will re-implement it based on memory pool
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2097>
+
+2021-03-23 09:33:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: postproc: Set one buffer in pools as minimum.
+ Because some elements, such as videorate check that minimum are
+ different of maximum number of buffers in the proposed pool, since
+ they might hold one or more buffers.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2102>
+
+2021-03-23 19:19:14 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst-libs/gst/codecparsers/gsth264parser.c:
+ * gst-libs/gst/codecparsers/gsth265parser.c:
+ * tests/check/libs/h264parser.c:
+ * tests/check/libs/h265parser.c:
+ h2645parser: Catch overflows in AVC/HEVC NAL unit length calculations
+ Offset and size are stored as 32 bit guint and might overflow when
+ adding the nal_length_size, so let's avoid that.
+ For the size this would happen if the AVC/HEVC NAL unit size happens to
+ be stored in 4 bytes and is 4294967292 or higher, which is likely
+ corrupted data anyway.
+ For the offset this is something for the caller of these functions to
+ take care of but is unlikely to happen as it would require parsing on a
+ >4GB buffer.
+ Allowing these overflows causes all kinds of follow-up bugs in the
+ h2645parse elements, ranging from infinite loops and memory leaks to
+ potential memory corruptions.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2103>
+
+2021-02-25 09:59:50 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/zxing/gstzxing.cpp:
+ * ext/zxing/gstzxing.h:
+ * ext/zxing/gstzxingplugin.c:
+ zxing: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-25 09:57:00 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/zbar/gstzbar.c:
+ * ext/zbar/gstzbar.h:
+ zbar: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-25 09:51:52 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/x265/gstx265enc.c:
+ * ext/x265/gstx265enc.h:
+ x265: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-25 09:45:10 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/wpe/gstwpesrc.cpp:
+ * ext/wpe/gstwpesrc.h:
+ wpe: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-25 09:27:19 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/wildmidi/gstwildmididec.c:
+ * ext/wildmidi/gstwildmididec.h:
+ wildmidi: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-25 08:18:54 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/webrtcdsp/gstwebrtcdsp.cpp:
+ * ext/webrtcdsp/gstwebrtcdsp.h:
+ * ext/webrtcdsp/gstwebrtcdspplugin.cpp:
+ * ext/webrtcdsp/gstwebrtcechoprobe.cpp:
+ * ext/webrtcdsp/gstwebrtcechoprobe.h:
+ * ext/webrtcdsp/meson.build:
+ webrtcdsp: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-25 08:04:42 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/webp/gstwebp.c:
+ * ext/webp/gstwebpdec.c:
+ * ext/webp/gstwebpdec.h:
+ * ext/webp/gstwebpenc.c:
+ * ext/webp/gstwebpenc.h:
+ webp: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-24 18:56:55 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/wayland/gstwaylandsink.c:
+ * ext/wayland/gstwaylandsink.h:
+ wayland: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-24 18:45:15 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/vulkan/gstvulkan.c:
+ * ext/vulkan/gstvulkanelement.c:
+ * ext/vulkan/gstvulkanelements.h:
+ * ext/vulkan/meson.build:
+ * ext/vulkan/vkcolorconvert.c:
+ * ext/vulkan/vkdeviceprovider.c:
+ * ext/vulkan/vkdownload.c:
+ * ext/vulkan/vkimageidentity.c:
+ * ext/vulkan/vksink.c:
+ * ext/vulkan/vkupload.c:
+ * ext/vulkan/vkviewconvert.c:
+ vulkan: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-24 17:34:50 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/voamrwbenc/gstvoamrwb.c:
+ * ext/voamrwbenc/gstvoamrwbenc.c:
+ * ext/voamrwbenc/gstvoamrwbenc.h:
+ voamrwbenc: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-24 17:32:34 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/voaacenc/gstvoaac.c:
+ * ext/voaacenc/gstvoaacenc.c:
+ * ext/voaacenc/gstvoaacenc.h:
+ voaacenc: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-24 13:07:30 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/ttml/gstttmlelement.c:
+ * ext/ttml/gstttmlelements.h:
+ * ext/ttml/gstttmlparse.c:
+ * ext/ttml/gstttmlplugin.c:
+ * ext/ttml/gstttmlrender.c:
+ * ext/ttml/meson.build:
+ ttml: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-24 12:52:08 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/srtp/gstsrtp.c:
+ * ext/srtp/gstsrtpdec.c:
+ * ext/srtp/gstsrtpdec.h:
+ * ext/srtp/gstsrtpelement.c:
+ * ext/srtp/gstsrtpelements.h:
+ * ext/srtp/gstsrtpenc.c:
+ * ext/srtp/gstsrtpenc.h:
+ * ext/srtp/gstsrtpplugin.c:
+ * ext/srtp/meson.build:
+ srtp: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-24 12:39:22 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/srt/gstsrt.c:
+ * ext/srt/gstsrtelement.c:
+ * ext/srt/gstsrtelements.h:
+ * ext/srt/gstsrtplugin.c:
+ * ext/srt/gstsrtsink.c:
+ * ext/srt/gstsrtsrc.c:
+ * ext/srt/meson.build:
+ srt: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-19 12:54:56 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/spandsp/gstdtmfdetect.c:
+ * ext/spandsp/gstdtmfdetect.h:
+ * ext/spandsp/gstspandsp.c:
+ * ext/spandsp/gstspanplc.c:
+ * ext/spandsp/gstspanplc.h:
+ * ext/spandsp/gsttonegeneratesrc.c:
+ * ext/spandsp/gsttonegeneratesrc.h:
+ spandsp: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-19 12:41:41 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/soundtouch/gstbpmdetect.cc:
+ * ext/soundtouch/gstbpmdetect.hh:
+ * ext/soundtouch/gstpitch.cc:
+ * ext/soundtouch/gstpitch.hh:
+ * ext/soundtouch/plugin.c:
+ soundtouch: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-19 12:30:50 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/sndfile/gstsf.c:
+ * ext/sndfile/gstsfdec.c:
+ * ext/sndfile/gstsfdec.h:
+ * ext/sndfile/gstsfelement.c:
+ * ext/sndfile/gstsfelements.h:
+ * ext/sndfile/gstsfsink.h:
+ * ext/sndfile/meson.build:
+ sndfile: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-19 12:18:39 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/smoothstreaming/gstmssdemux.c:
+ * ext/smoothstreaming/gstmssdemux.h:
+ * ext/smoothstreaming/gstsmoothstreaming-plugin.c:
+ smoothstreaming: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-19 12:14:53 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/sctp/gstsctpdec.c:
+ * ext/sctp/gstsctpdec.h:
+ * ext/sctp/gstsctpenc.c:
+ * ext/sctp/gstsctpenc.h:
+ * ext/sctp/gstsctpplugin.c:
+ sctp: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-19 12:09:18 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/sbc/gstsbcdec.c:
+ * ext/sbc/gstsbcdec.h:
+ * ext/sbc/gstsbcenc.c:
+ * ext/sbc/gstsbcenc.h:
+ * ext/sbc/sbc-plugin.c:
+ sbc: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-19 12:00:13 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/rtmp/gstrtmp.c:
+ * ext/rtmp/gstrtmpelement.c:
+ * ext/rtmp/gstrtmpelements.h:
+ * ext/rtmp/gstrtmpsink.c:
+ * ext/rtmp/gstrtmpsink.h:
+ * ext/rtmp/gstrtmpsrc.c:
+ * ext/rtmp/meson.build:
+ rtmp: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-19 11:53:12 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/rsvg/gstrsvg.c:
+ * ext/rsvg/gstrsvgdec.c:
+ * ext/rsvg/gstrsvgdec.h:
+ * ext/rsvg/gstrsvgoverlay.c:
+ * ext/rsvg/gstrsvgoverlay.h:
+ rsvg: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-19 11:40:40 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/resindvd/plugin.c:
+ * ext/resindvd/resindvdbin.c:
+ * ext/resindvd/resindvdbin.h:
+ resindvd: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 16:23:42 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/qroverlay/gstdebugqroverlay.c:
+ * ext/qroverlay/gstqroverlay.c:
+ * ext/qroverlay/gstqroverlayelement.c:
+ * ext/qroverlay/gstqroverlayelements.h:
+ * ext/qroverlay/gstqroverlayplugin.c:
+ * ext/qroverlay/meson.build:
+ qroverlay: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 15:56:44 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/opus/gstopus.c:
+ * ext/opus/gstopusparse.c:
+ * ext/opus/gstopusparse.h:
+ opus: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 15:48:12 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/openni2/gstopenni2.cpp:
+ * ext/openni2/gstopenni2src.cpp:
+ * ext/openni2/gstopenni2src.h:
+ openni2: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 15:42:44 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/openmpt/gstopenmptdec.c:
+ * ext/openmpt/gstopenmptdec.h:
+ * ext/openmpt/plugin.c:
+ openmpt: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 15:30:06 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/openjpeg/gstopenjpeg.c:
+ * ext/openjpeg/gstopenjpegdec.c:
+ * ext/openjpeg/gstopenjpegdec.h:
+ * ext/openjpeg/gstopenjpegenc.c:
+ * ext/openjpeg/gstopenjpegenc.h:
+ openjpeg: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 15:21:40 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/openh264/gstopenh264dec.cpp:
+ * ext/openh264/gstopenh264element.c:
+ * ext/openh264/gstopenh264elements.h:
+ * ext/openh264/gstopenh264enc.cpp:
+ * ext/openh264/gstopenh264plugin.c:
+ * ext/openh264/meson.build:
+ openh264: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 14:08:34 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/openexr/gstopenexr.c:
+ * ext/openexr/gstopenexrdec.cpp:
+ * ext/openexr/gstopenexrdec.h:
+ openexr: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 13:34:54 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/opencv/gstcameracalibrate.cpp:
+ * ext/opencv/gstcameracalibrate.h:
+ * ext/opencv/gstcameraundistort.cpp:
+ * ext/opencv/gstcameraundistort.h:
+ * ext/opencv/gstcvdilate.cpp:
+ * ext/opencv/gstcvdilate.h:
+ * ext/opencv/gstcvequalizehist.cpp:
+ * ext/opencv/gstcvequalizehist.h:
+ * ext/opencv/gstcverode.cpp:
+ * ext/opencv/gstcverode.h:
+ * ext/opencv/gstcvlaplace.cpp:
+ * ext/opencv/gstcvlaplace.h:
+ * ext/opencv/gstcvsmooth.cpp:
+ * ext/opencv/gstcvsmooth.h:
+ * ext/opencv/gstcvsobel.cpp:
+ * ext/opencv/gstcvsobel.h:
+ * ext/opencv/gstdewarp.cpp:
+ * ext/opencv/gstdewarp.h:
+ * ext/opencv/gstdisparity.cpp:
+ * ext/opencv/gstdisparity.h:
+ * ext/opencv/gstedgedetect.cpp:
+ * ext/opencv/gstedgedetect.h:
+ * ext/opencv/gstfaceblur.cpp:
+ * ext/opencv/gstfaceblur.h:
+ * ext/opencv/gstfacedetect.cpp:
+ * ext/opencv/gstfacedetect.h:
+ * ext/opencv/gstgrabcut.cpp:
+ * ext/opencv/gstgrabcut.h:
+ * ext/opencv/gsthanddetect.cpp:
+ * ext/opencv/gsthanddetect.h:
+ * ext/opencv/gstmotioncells.cpp:
+ * ext/opencv/gstmotioncells.h:
+ * ext/opencv/gstopencv.cpp:
+ * ext/opencv/gstretinex.cpp:
+ * ext/opencv/gstretinex.h:
+ * ext/opencv/gstsegmentation.cpp:
+ * ext/opencv/gstsegmentation.h:
+ * ext/opencv/gstskindetect.cpp:
+ * ext/opencv/gstskindetect.h:
+ * ext/opencv/gsttemplatematch.cpp:
+ * ext/opencv/gsttemplatematch.h:
+ * ext/opencv/gsttextoverlay.cpp:
+ * ext/opencv/gsttextoverlay.h:
+ opencv: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 10:58:28 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/openaptx/gstopenaptxdec.c:
+ * ext/openaptx/gstopenaptxdec.h:
+ * ext/openaptx/gstopenaptxenc.c:
+ * ext/openaptx/gstopenaptxenc.h:
+ * ext/openaptx/openaptx-plugin.c:
+ openaptx: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 10:52:51 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/openal/gstopenal.c:
+ * ext/openal/gstopenalelement.c:
+ * ext/openal/gstopenalelements.h:
+ * ext/openal/gstopenalsink.c:
+ * ext/openal/gstopenalsrc.c:
+ * ext/openal/meson.build:
+ openal: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 10:41:53 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/ofa/gstofa.c:
+ * ext/ofa/gstofa.h:
+ ofa: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 10:35:34 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/neon/gstneonhttpsrc.c:
+ * ext/neon/gstneonhttpsrc.h:
+ neon: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 10:24:18 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/musepack/gstmusepackdec.c:
+ * ext/musepack/gstmusepackdec.h:
+ musepack: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 10:17:20 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/mplex/gstmplex.cc:
+ * ext/mplex/gstmplex.hh:
+ mplex: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 10:14:38 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/mpeg2enc/gstmpeg2enc.cc:
+ * ext/mpeg2enc/gstmpeg2enc.hh:
+ mpeg2enc: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 10:10:16 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/modplug/gstmodplug.cc:
+ * ext/modplug/gstmodplug.h:
+ modplug: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 09:56:08 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/mdns/gstmicrodns.c:
+ mdns: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 09:52:08 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/libmms/gstmms.c:
+ * ext/libmms/gstmms.h:
+ libmms: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 09:50:21 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/libde265/gstlibde265.c:
+ * ext/libde265/libde265-dec.c:
+ * ext/libde265/libde265-dec.h:
+ libde265: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-18 09:48:04 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/ldac/gstldacenc.c:
+ * ext/ldac/gstldacenc.h:
+ * ext/ldac/ldac-plugin.c:
+ ldac: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 18:38:16 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/kate/gstkate.c:
+ * ext/kate/gstkatedec.c:
+ * ext/kate/gstkateelement.c:
+ * ext/kate/gstkateelements.h:
+ * ext/kate/gstkateenc.c:
+ * ext/kate/gstkateparse.c:
+ * ext/kate/gstkatetag.c:
+ * ext/kate/gstkatetiger.c:
+ * ext/kate/gstkateutil.c:
+ * ext/kate/meson.build:
+ kate: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 18:26:42 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/isac/gstisac.c:
+ * ext/isac/gstisacdec.c:
+ * ext/isac/gstisacdec.h:
+ * ext/isac/gstisacenc.c:
+ * ext/isac/gstisacenc.h:
+ isac: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 18:23:21 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/iqa/iqa.c:
+ * ext/iqa/iqa.h:
+ iqa: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 18:17:08 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/hls/gsthls.h:
+ * ext/hls/gsthlsdemux.c:
+ * ext/hls/gsthlsdemux.h:
+ * ext/hls/gsthlselement.c:
+ * ext/hls/gsthlselements.h:
+ * ext/hls/gsthlsplugin.c:
+ * ext/hls/gsthlssink.c:
+ * ext/hls/gsthlssink2.c:
+ * ext/hls/gstm3u8playlist.c:
+ * ext/hls/m3u8.c:
+ * ext/hls/m3u8.h:
+ * ext/hls/meson.build:
+ hls: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 18:07:42 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/gsm/gstgsm.c:
+ * ext/gsm/gstgsmdec.c:
+ * ext/gsm/gstgsmdec.h:
+ * ext/gsm/gstgsmenc.c:
+ * ext/gsm/gstgsmenc.h:
+ gsm: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 18:04:20 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/gme/gstgme.c:
+ * ext/gme/gstgme.h:
+ gme: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 18:01:05 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/fluidsynth/gstfluiddec.c:
+ * ext/fluidsynth/gstfluiddec.h:
+ fluidsynth: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 16:05:02 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/fdkaac/gstfdkaac.c:
+ * ext/fdkaac/gstfdkaacdec.c:
+ * ext/fdkaac/gstfdkaacdec.h:
+ * ext/fdkaac/gstfdkaacenc.c:
+ * ext/fdkaac/gstfdkaacenc.h:
+ * ext/fdkaac/gstfdkaacplugin.c:
+ * ext/fdkaac/meson.build:
+ fdkaac: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 15:59:49 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/faad/gstfaad.c:
+ * ext/faad/gstfaad.h:
+ faad: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 15:59:36 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/faac/gstfaac.c:
+ * ext/faac/gstfaac.h:
+ faac: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 15:35:10 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/dts/gstdtsdec.c:
+ * ext/dts/gstdtsdec.h:
+ dts: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 12:22:07 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/dtls/gstdtlsdec.c:
+ * ext/dtls/gstdtlselement.c:
+ * ext/dtls/gstdtlselements.h:
+ * ext/dtls/gstdtlsenc.c:
+ * ext/dtls/gstdtlssrtpdec.c:
+ * ext/dtls/gstdtlssrtpdemux.c:
+ * ext/dtls/gstdtlssrtpenc.c:
+ * ext/dtls/meson.build:
+ dtls: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 12:10:31 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/directfb/dfbvideosink.c:
+ * ext/directfb/dfbvideosink.h:
+ directfb: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 12:07:48 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/dc1394/gstdc1394src.c:
+ * ext/dc1394/gstdc1394src.h:
+ dc1394: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 12:03:05 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/dash/gstdashdemux.c:
+ * ext/dash/gstdashdemux.h:
+ * ext/dash/gstdashsink.c:
+ * ext/dash/gstdashsink.h:
+ * ext/dash/gstplugin.c:
+ dash: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 11:55:14 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/curl/gstcurl.c:
+ * ext/curl/gstcurlelement.c:
+ * ext/curl/gstcurlelements.h:
+ * ext/curl/gstcurlfilesink.c:
+ * ext/curl/gstcurlftpsink.c:
+ * ext/curl/gstcurlhttpsink.c:
+ * ext/curl/gstcurlhttpsrc.c:
+ * ext/curl/gstcurlsftpsink.c:
+ * ext/curl/gstcurlsmtpsink.c:
+ * ext/curl/meson.build:
+ curl: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 11:43:33 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/colormanagement/gstcolormanagement.c:
+ * ext/colormanagement/gstlcms.c:
+ * ext/colormanagement/gstlcms.h:
+ colormanagement: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 11:31:35 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/closedcaption/gstcccombiner.c:
+ * ext/closedcaption/gstcccombiner.h:
+ * ext/closedcaption/gstccconverter.c:
+ * ext/closedcaption/gstccconverter.h:
+ * ext/closedcaption/gstccextractor.c:
+ * ext/closedcaption/gstccextractor.h:
+ * ext/closedcaption/gstceaccoverlay.c:
+ * ext/closedcaption/gstceaccoverlay.h:
+ * ext/closedcaption/gstclosedcaption.c:
+ * ext/closedcaption/gstline21dec.c:
+ * ext/closedcaption/gstline21dec.h:
+ * ext/closedcaption/gstline21enc.c:
+ * ext/closedcaption/gstline21enc.h:
+ closedcaption: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 10:23:15 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/chromaprint/gstchromaprint.c:
+ * ext/chromaprint/gstchromaprint.h:
+ chromaprint: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 10:13:45 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/bz2/gstbz2.c:
+ * ext/bz2/gstbz2dec.c:
+ * ext/bz2/gstbz2dec.h:
+ * ext/bz2/gstbz2enc.c:
+ * ext/bz2/gstbz2enc.h:
+ bz2: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 10:10:39 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/bs2b/gstbs2b.c:
+ * ext/bs2b/gstbs2b.h:
+ bs2b: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 10:05:20 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/avtp/gstavtp.c:
+ * ext/avtp/gstavtpaafdepay.c:
+ * ext/avtp/gstavtpaafdepay.h:
+ * ext/avtp/gstavtpaafpay.c:
+ * ext/avtp/gstavtpaafpay.h:
+ * ext/avtp/gstavtpcrfcheck.c:
+ * ext/avtp/gstavtpcrfcheck.h:
+ * ext/avtp/gstavtpcrfsync.c:
+ * ext/avtp/gstavtpcrfsync.h:
+ * ext/avtp/gstavtpcvfdepay.c:
+ * ext/avtp/gstavtpcvfdepay.h:
+ * ext/avtp/gstavtpcvfpay.c:
+ * ext/avtp/gstavtpcvfpay.h:
+ * ext/avtp/gstavtpsink.c:
+ * ext/avtp/gstavtpsink.h:
+ * ext/avtp/gstavtpsrc.c:
+ * ext/avtp/gstavtpsrc.h:
+ avtp: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-02-17 09:45:04 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/assrender/gstassrender.c:
+ * ext/assrender/gstassrender.h:
+ assrender: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2020-08-17 09:52:11 -0400 Julian Bouzas <julian.bouzas@collabora.com>
+
+ * ext/aom/gstaom.c:
+ * ext/aom/gstav1dec.c:
+ * ext/aom/gstav1dec.h:
+ * ext/aom/gstav1enc.c:
+ * ext/aom/gstav1enc.h:
+ aom: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>
+
+2021-03-23 16:26:13 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.cpp:
+ * sys/d3d11/meson.build:
+ d3d11decoder: Enable high precision clock if needed
+ We've been doing retry with 1ms sleep if DecoderBeginFrame()
+ returned E_PENDING which means application should call
+ DecoderBeginFrame() again because GPU is busy.
+ The 1ms sleep() during retry would result in usually about 15ms delay
+ in reality because of bad clock precision on Windows.
+ To improve throughput performance, this commit will enable
+ high precision clock only for NVIDIA platform since
+ DecoderBeginFrame() call on the other GPU vendors seems to
+ succeed without retry.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2099>
+
+2021-03-03 16:03:07 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/mpegdemux/gstmpegdemux.c:
+ * gst/mpegdemux/gstmpegdemux.h:
+ mpegpsdemux: fix accurate seek
+ In an accurate seek, the segment start should be
+ the same as the one requested in the seek.
+ The start should be kept as the one from the
+ segment if its inferior.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2048>
+
+2021-03-03 14:11:21 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/mpegdemux/gstmpegdemux.c:
+ * gst/mpegdemux/gstmpegdemux.h:
+ mpegpsdemux: Keep seqnum events
+ Keep the same seqnum of the new segment events for each
+ of the streams.
+ Keep the segment to send the EOS event.
+ Keep the seek seqnum for segment and flush event.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2048>
+
+2021-03-01 16:23:09 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/mpegdemux/gstmpegdemux.c:
+ mpegpsdemux: avoid early EOS
+ In a case of a scr different from 0, after a seek,
+ the src_segment.stop has been updated with the duration
+ not including the base_time (scr). The segment position
+ needs to be tested upon segment.stop + base_time (scr)
+ to check for an EOS.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2048>
+
+2021-03-19 16:17:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: postproc: disable passthrough as soon as possible
+ After the VA filter creation, when changing the element's state from NULL
+ to READY, immediatly checks for any filter operation requested by the user.
+ If any, the passthrough mode is disabled early, so there's no need for a
+ future renegotiation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2094>
+
+2021-03-19 16:14:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: postproc: rename function to gst_va_vpp_update_passthrough
+ Since it's widely used, a proper name will reflect its importance.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2094>
+
+2021-03-22 14:34:36 +1100 Matthew Waters <matthew@centricular.com>
+
+ * ext/closedcaption/gstccconverter.c:
+ * ext/colormanagement/gstlcms.c:
+ * ext/curl/gstcurlqueue.h:
+ * ext/iqa/iqa.c:
+ * ext/opencv/gstcvdilateerode.cpp:
+ * ext/openjpeg/gstopenjpegenc.c:
+ * ext/resindvd/rsndec.c:
+ * ext/sctp/sctpassociation.c:
+ * ext/ttml/subtitlemeta.c:
+ * ext/wildmidi/gstwildmididec.c:
+ * gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
+ * gst-libs/gst/audio/gstnonstreamaudiodecoder.c:
+ * gst-libs/gst/codecparsers/gstmpegvideometa.c:
+ * gst-libs/gst/d3d11/gstd3d11device.c:
+ * gst-libs/gst/d3d11/gstd3d11utils.c:
+ * gst-libs/gst/sctp/sctpreceivemeta.c:
+ * gst-libs/gst/sctp/sctpsendmeta.c:
+ * gst-libs/gst/vulkan/android/gstvkwindow_android.c:
+ * gst-libs/gst/vulkan/cocoa/gstvkwindow_cocoa.m:
+ * gst-libs/gst/vulkan/gstvkbuffermemory.c:
+ * gst-libs/gst/vulkan/gstvkcommandbuffer.c:
+ * gst-libs/gst/vulkan/gstvkdescriptorset.c:
+ * gst-libs/gst/vulkan/gstvkdevice.c:
+ * gst-libs/gst/vulkan/gstvkdisplay.c:
+ * gst-libs/gst/vulkan/gstvkfence.c:
+ * gst-libs/gst/vulkan/gstvkhandle.c:
+ * gst-libs/gst/vulkan/gstvkimagememory.c:
+ * gst-libs/gst/vulkan/gstvkimageview.c:
+ * gst-libs/gst/vulkan/gstvkinstance.c:
+ * gst-libs/gst/vulkan/gstvkmemory.c:
+ * gst-libs/gst/vulkan/gstvkphysicaldevice.c:
+ * gst-libs/gst/vulkan/gstvkqueue.c:
+ * gst-libs/gst/vulkan/gstvktrash.c:
+ * gst-libs/gst/vulkan/gstvkutils.c:
+ * gst-libs/gst/vulkan/gstvkwindow.c:
+ * gst-libs/gst/vulkan/ios/gstvkwindow_ios.m:
+ * gst-libs/gst/vulkan/vulkan_mkenum.py:
+ * gst-libs/gst/vulkan/wayland/gstvkwindow_wayland.c:
+ * gst-libs/gst/vulkan/xcb/gstvkwindow_xcb.c:
+ * gst/camerabin2/gstcamerabin2.c:
+ * gst/debugutils/gstfakevideosink.c:
+ * gst/mxf/mxfmetadata.c:
+ * gst/netsim/gstnetsim.c:
+ * gst/rtmp2/rtmp/amf.c:
+ * gst/rtmp2/rtmp/rtmpchunkstream.c:
+ * gst/rtmp2/rtmp/rtmpclient.c:
+ * gst/rtmp2/rtmp/rtmphandshake.c:
+ * gst/rtmp2/rtmp/rtmpmessage.c:
+ * gst/segmentclip/gstsegmentclip.c:
+ * sys/androidmedia/gstamcaudiodec.c:
+ * sys/androidmedia/gstamcvideodec.c:
+ * sys/androidmedia/gstamcvideoenc.c:
+ * sys/applemedia/coremediabuffer.c:
+ * sys/applemedia/corevideobuffer.c:
+ * sys/applemedia/corevideomemory.c:
+ * sys/applemedia/iosglmemory.c:
+ * sys/applemedia/iosurfaceglmemory.c:
+ * sys/applemedia/iosurfacevulkanmemory.c:
+ * sys/bluez/gstavdtpsrc.h:
+ * sys/d3d11/gstd3d11deinterlace.cpp:
+ * sys/d3d11/gstd3d11shader.cpp:
+ * sys/d3d11/gstd3d11window.cpp:
+ * sys/d3d11/gstd3d11window_win32.cpp:
+ * sys/ipcpipeline/gstipcpipelinecomm.c:
+ * sys/mediafoundation/gstmftransform.cpp:
+ * sys/mediafoundation/gstmfvideobuffer.h:
+ * sys/msdk/gstmsdkcontextutil.c:
+ * sys/nvcodec/gstcudacontext.c:
+ * sys/nvcodec/gstcudanvrtc.c:
+ * sys/nvcodec/gstcudautils.c:
+ * sys/nvcodec/gstnvbaseenc.h:
+ * sys/opensles/openslescommon.c:
+ * sys/va/gstvaallocator.c:
+ * sys/va/gstvautils.c:
+ * sys/wasapi/gstwasapiutil.c:
+ * sys/wasapi2/gstwasapi2client.cpp:
+ * sys/winscreencap/dxgicapture.c:
+ * tests/check/libs/vkimage.c:
+ gst: don't use volatile to mean atomic
+ volatile is not sufficient to provide atomic guarantees and real atomics
+ should be used instead. GCC 11 has started warning about using volatile
+ with atomic operations.
+ https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
+ Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2098>
+
+2021-03-20 16:26:21 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfvideoenc.cpp:
+ * sys/mediafoundation/meson.build:
+ mfvideoenc: Enable Direct3D multi-thread protection
+ As documented by MS. See also
+ https://docs.microsoft.com/en-us/windows/win32/medfound/supporting-direct3d-11-video-decoding-in-media-foundation#open-a-device-handle
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2095>
+
+2021-03-20 16:15:35 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11device.c:
+ * gst-libs/gst/d3d11/gstd3d11memory.c:
+ * gst-libs/gst/d3d11/meson.build:
+ * sys/d3d11/gstd3d11compositor.cpp:
+ * sys/d3d11/gstd3d11convert.cpp:
+ * sys/d3d11/gstd3d11converter.cpp:
+ * sys/d3d11/gstd3d11decoder.cpp:
+ * sys/d3d11/gstd3d11deinterlace.cpp:
+ * sys/d3d11/gstd3d11desktopdup.cpp:
+ * sys/d3d11/gstd3d11overlaycompositor.cpp:
+ * sys/d3d11/gstd3d11pluginutils.cpp:
+ * sys/d3d11/gstd3d11videoprocessor.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/mediafoundation/gstmfvideoenc.cpp:
+ Revert "d3d11: Enable native multi-thread protection layer and make use of it"
+ This reverts commit 872b7f503c49442e559f6a381416c6a84b76a3c6.
+ Native multi-thread protection layer seems to be consuming more CPU
+ resource than application side protection approach in some cases
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2095>
+
+2021-03-19 16:36:41 +1100 Matthew Waters <matthew@centricular.com>
+
+ * tests/check/elements/webrtcbin.c:
+ tests/webrtc: check for more sdp things across the board
+ e.g.
+ - test for a=setup:$val and direction attributes in all tests
+ - test number of media sections
+ - test number of formats in each m= section (for audio/video)
+ - test no duplicate formats
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2093>
+
+2020-06-23 12:41:27 -0700 Julien <jisorce@oblong.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/gs/.clang-format:
+ * ext/gs/README.md:
+ * ext/gs/gstgs.cpp:
+ * ext/gs/gstgscommon.cpp:
+ * ext/gs/gstgscommon.h:
+ * ext/gs/gstgssink.cpp:
+ * ext/gs/gstgssink.h:
+ * ext/gs/gstgssrc.cpp:
+ * ext/gs/gstgssrc.h:
+ * ext/gs/meson.build:
+ * ext/meson.build:
+ * meson_options.txt:
+ gs: add source and sink for Google Cloud Storage
+ Useful when having a service that runs a GStreamer pipeline
+ or application in Google Cloud to avoid storing the inputs
+ and outputs in the running container or service. For example
+ when analyzing a video from a Google Cloud Storage bucket
+ and extracting images or converting the video and then uploading
+ the results into another Google Cloud Storage bucket.
+ - gssrc allows to read from a file located in Google Cloud
+ Storage and it supports seeking.
+ - gssink allows to write to a file located in Google Cloud
+ Storage. There are 2 modes, one similar to multifilesink and
+ the other similar to filesink.
+ Example:
+ gst-launch-1.0 gssrc location=gs://mybucket/videos/sample.mp4 ! decodebin ! glimagesink
+ gst-launch-1.0 playbin uri=gs://mybucket/videos/sample.mp4
+ gst-launch-1.0 videotestsrc num-buffers=5 ! pngenc ! gssink object-name="img/img%05d.png" bucket-name="mybucket" next-file=buffer
+ gst-launch-1.0 filesrc location=sample.mp4 ! gssink object-name="videos/video.mp4" bucket-name="mybucket" next-file=none
+ When running locally simply set GOOGLE_APPLICATION_CREDENTIALS. But
+ when running in Google Cloud Run or Google Cloud Engine, just set the
+ "service-account-email" property on each element.
+ Closes #1264
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1369>
+
+2021-03-17 23:53:04 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11device.c:
+ * gst-libs/gst/d3d11/gstd3d11memory.c:
+ * gst-libs/gst/d3d11/meson.build:
+ * sys/d3d11/gstd3d11compositor.cpp:
+ * sys/d3d11/gstd3d11convert.cpp:
+ * sys/d3d11/gstd3d11converter.cpp:
+ * sys/d3d11/gstd3d11decoder.cpp:
+ * sys/d3d11/gstd3d11deinterlace.cpp:
+ * sys/d3d11/gstd3d11desktopdup.cpp:
+ * sys/d3d11/gstd3d11overlaycompositor.cpp:
+ * sys/d3d11/gstd3d11pluginutils.cpp:
+ * sys/d3d11/gstd3d11videoprocessor.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/mediafoundation/gstmfvideoenc.cpp:
+ d3d11: Enable native multi-thread protection layer and make use of it
+ ... instead of our own GRecMutex locking. In this way, any other
+ Direct3D11 client (MediaFoundation for example) can safely call
+ any Direct3D11 API even when we are sharing our Direct3D11 device
+ with others.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2092>
+
+2021-02-26 03:28:29 +1100 Jan Schmidt <jan@centricular.com>
+
+ * tests/examples/mpegts/meson.build:
+ * tests/examples/mpegts/tsmux-prog-map.c:
+ examples: Add an mpegtsmux example of prog-map usage.
+ Add an example of how to construct the prog-map structure for
+ the MPEG-TS muxers and assign streams to programs, and set PCR
+ and PMT PIDs.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2039>
+
+2021-02-26 02:53:33 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/mpegtsmux/gstbasetsmux.c:
+ * gst/mpegtsmux/tsmux/tsmux.c:
+ * gst/mpegtsmux/tsmux/tsmux.h:
+ mpegtsmux: Add PMT_%d support to prog-map.
+ Support a PMT_%d field in the prog-map, that's optionally used
+ to set the PMT for each program in the mux.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2039>
+
+2021-03-12 18:10:18 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/mpegtsmux/tsmux/tsmux.c:
+ * gst/mpegtsmux/tsmux/tsmux.h:
+ mpegtsmux: Don't write PCR until PAT/PMT are output.
+ Make sure streams start cleanly with a PAT/PMT and defer the first PCR
+ output until after that.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2073>
+
+2021-03-11 18:21:11 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/mpegtsmux/tsmux/tsmux.c:
+ tsmux: finalize PCR timing for complete accuracy
+ In order to always insert a PCR packet right on time, we need to
+ check whether one is needed when outputting any packet, not only
+ a packet for the PCR stream. Most of the PCR packets will remain
+ data-carrying packets, but as a last resort we may insert stuffing
+ packets on the PCR stream.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2073>
+
+2021-03-11 18:05:25 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/mpegtsmux/tsmux/tsmux.c:
+ mpegtsmux: Improve PCR/SI scheduling.
+ Change PCR / SI scheduling so that instead of checking if
+ the current PCR is larger than the next target time, instead
+ check if the PCR of the next packet would be too late, so PCR
+ and SI are always scheduled earlier than the target, not later.
+ There are still cases where PCR can be written too late though,
+ because we don't check before each output packet.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2073>
+
+2021-03-11 18:05:10 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/mpegtsmux/tsmux/tsmuxstream.c:
+ tsmuxstream: Fix comment typo
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2073>
+
+2021-03-09 13:22:10 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/closedcaption/gstcccombiner.c:
+ * ext/closedcaption/gstcccombiner.h:
+ * tests/check/elements/cccombiner.c:
+ cccombiner: implement scheduling
+ Prior to that, cccombiner's behaviour was essentially that of
+ a funnel: it strictly looked at input timestamps to associate
+ together video and caption buffers.
+ This patch instead exposes a "schedule" property, with a default
+ of TRUE, to control whether caption buffers should be smoothly
+ scheduled, in order to have exactly one per output video buffer.
+ This can involve rewriting input captions, for example when the
+ input is CDP sequence counters are rewritten, time codes are dropped
+ and potentially re-injected if the input video frame had a time code
+ meta.
+ Caption buffers may also get split up in order to assign captions to
+ the correct field when the input is interlaced.
+ This can also imply that the input will drift from synchronization,
+ when there isn't enough padding in the input stream to catch up. In
+ that case the element will start dropping old caption buffers once
+ the number of buffers in its internal queue reaches a certain limit
+ (configurable).
+ The property is exposed so that existing users of cccombiner can
+ revert back to the original behaviour, but should eventually be
+ removed, as that behaviour was simply inadequate.
+ This commit also disallows changing the input caption type, as
+ this would needlessly complicate implementation, and removes
+ the corresponding test.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2076>
+
+2021-03-17 19:26:12 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11convert.cpp:
+ * sys/d3d11/gstd3d11upload.cpp:
+ d3d11: Use render-target and shader-resource bind flags by default
+ Even if bind flags is not needed by an element, other element
+ might need such bind flags.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2091>
+
+2021-03-15 00:04:21 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvavpp.c:
+ va: vpp: Fix features lost in transform_caps().
+ When we transform the caps from the sink to src, or vice versa, the
+ "caps" passed to us may only contain parts of the features. Which
+ makes our vpp lose some feature in caps and get a negotiation error.
+ The correct way should be:
+ Cleaning the format and resolution of that caps, but adding all VA,
+ DMA features to it, making it a full feature caps. Then, clipping it
+ with the pad template.
+ fixes: #1551
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2081>
+
+2021-03-15 16:25:36 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ wpe: Ignore 'error-cancelled' 'failures'
+ This happens when the user use the 'load-bytes' signal and nothing is wrong there
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2085>
+
+2021-03-16 19:09:59 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.cpp:
+ d3d11decoder: WARNING if ID3D11VideoDevice is unavailable, not ERROR
+ gst_d3d11_decoder_new() method is also used for device capability
+ checking during plugin init. Although we are checking hardware
+ flag prior to that, it doesn't guarantee ID3D11VideoDevice interface.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2088>
+
+2021-03-16 17:56:51 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfsourcereader.cpp:
+ * sys/mediafoundation/gstmftransform.cpp:
+ mediafoundation: Fix resource leak
+ IMFActivate would hold its internal objects unless user call ShutdownObject(),
+ even if we release the IMFActivate. Here internal objects may
+ include Direct3D objects, such as texture, device handle for example.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2087>
+
+2021-03-16 15:58:57 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11convert.cpp:
+ d3d11colorconvert: Fix caps leak
+ GstBaseTransform::fixate_caps() takes ownership of passed
+ othercaps argument.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2086>
+
+2021-03-13 19:00:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * tests/examples/va/meson.build:
+ * tests/examples/va/multiple-vpp.c:
+ va: example: multiple-vpp: test sharpen with dynamic controller
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2082>
+
+2021-03-13 18:57:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: postproc: synchronize segment with stream time
+ This is required to use dynamic controllable parameters.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2082>
+
+2021-03-15 18:26:03 +0900 Seungha Yang <seungha@centricular.com>
+
+ * 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: Do negotiation again per forward/reverse playback mode change
+ For reverse playback, we are always copying decoded
+ frame to downstream buffer. So the pool size can be
+ and need to be large enough.
+ In case that forward playback, however, we need to restrict
+ the max pool size for performance reason. Otherwise decoder
+ will keep copying decoded texture to downstream buffer pool
+ if decoding is faster than downstream throughput
+ performance and also there are queue element between them.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2083>
+
+2021-03-15 19:48:56 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videosink.cpp:
+ * sys/d3d11/gstd3d11window.cpp:
+ * sys/d3d11/gstd3d11window.h:
+ d3d11videosink: Avoid switching conversion tool during playback
+ Decoder might be able to copy decoded texture to the other buffer pool
+ during playback depending on context. In that case, copied one
+ has no D3D11_BIND_DECODER bind flag.
+ If we used ID3D11VideoProcessor previously for decoder texture,
+ and incoming texture supports ID3D11VideoProcessor as well even if it has no
+ D3D11_BIND_DECODER flag (having D3D11_BIND_RENDER_TARGET for example),
+ allow zero-copying instead of using our fallback texture.
+ Frequent conversion tool change (between ID3D11VideoProcessor and generic shader)
+ might result in inconsistent image quality.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2084>
+
+2021-03-12 13:50:59 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ * sys/va/gstvafilter.h:
+ * sys/va/gstvavpp.c:
+ va: postproc: only drop filters if they change
+ Currently, at every frame the filters array is recreated. This is not
+ optimal, since it should be only rebuilt if the VA filter's related
+ properties change. This patches does that by using a flag.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2078>
+
+2021-03-14 16:11:12 +0900 Seungha Yang <seungha@centricular.com>
+
+ * 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: Refactor device open step and negotiation
+ * Remove redundant method arguments
+ * Don't allocate staging texture if downstream supports d3d11 memory
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2079>
+
+2021-03-14 15:08:01 +0900 Seungha Yang <seungha@centricular.com>
+
+ * 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: Move profile GUID handling into decoder object
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2079>
+
+2021-03-14 14:26:17 +0900 Seungha Yang <seungha@centricular.com>
+
+ * 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: Get rid of private struct
+ Completely hide member variables
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2079>
+
+2021-03-14 12:50:21 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.cpp:
+ * sys/d3d11/gstd3d11vp9dec.cpp:
+ Revert "d3d11vp9dec: Add support for internal frame resizing"
+ This reverts commit 58a4c33a0e4f4e5415d8578166716e0d65c0c27e
+ We should use ID3D11VideoProcessor instead of shader
+ to avoid copy. We need to revisit this topic later
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2079>
+
+2021-03-13 22:47:55 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11device.c:
+ * gst-libs/gst/d3d11/gstd3d11device.h:
+ * sys/d3d11/gstd3d11decoder.cpp:
+ * sys/d3d11/gstd3d11deinterlace.cpp:
+ * sys/d3d11/gstd3d11videoprocessor.cpp:
+ d3d11device: Hold ID3D11VideoDevice and ID3D11VideoContext object
+ ... instead of QueryInterface-ing per elements. Note that
+ ID3D11VideoDevice and ID3D11VideoContext objects might not be available
+ if device doesn't support video interface.
+ So GstD3D11Device object will create those objects only when requested.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2079>
+
+2021-03-14 13:01:37 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11desktopdup.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:
+ d3d11: Run gst-indent for all C++ code
+ Since all d3d11 plugin implementation code are C++, we need to
+ run gst-indent manually. This is preparation for later
+ "gst-indent sys/d3d11/*.cpp" run.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2077>
+
+2021-03-13 17:40:57 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11basefilter.cpp:
+ * sys/d3d11/gstd3d11colorconverter.h:
+ * sys/d3d11/gstd3d11compositor.cpp:
+ * sys/d3d11/gstd3d11compositorbin.cpp:
+ * sys/d3d11/gstd3d11convert.cpp:
+ * sys/d3d11/gstd3d11convert.h:
+ * sys/d3d11/gstd3d11converter.cpp:
+ * sys/d3d11/gstd3d11converter.h:
+ * sys/d3d11/gstd3d11decoder.cpp:
+ * sys/d3d11/gstd3d11decoder.h:
+ * sys/d3d11/gstd3d11deinterlace.cpp:
+ * sys/d3d11/gstd3d11desktopdup.cpp:
+ * sys/d3d11/gstd3d11desktopdupsrc.cpp:
+ * sys/d3d11/gstd3d11download.cpp:
+ * sys/d3d11/gstd3d11h264dec.cpp:
+ * sys/d3d11/gstd3d11h265dec.cpp:
+ * sys/d3d11/gstd3d11mpeg2dec.cpp:
+ * sys/d3d11/gstd3d11overlaycompositor.cpp:
+ * sys/d3d11/gstd3d11pluginutils.cpp:
+ * sys/d3d11/gstd3d11pluginutils.h:
+ * sys/d3d11/gstd3d11shader.cpp:
+ * sys/d3d11/gstd3d11upload.cpp:
+ * sys/d3d11/gstd3d11videoprocessor.cpp:
+ * sys/d3d11/gstd3d11videoprocessor.h:
+ * sys/d3d11/gstd3d11videosink.cpp:
+ * sys/d3d11/gstd3d11videosinkbin.cpp:
+ * sys/d3d11/gstd3d11vp8dec.cpp:
+ * sys/d3d11/gstd3d11vp9dec.cpp:
+ * sys/d3d11/gstd3d11window.cpp:
+ * sys/d3d11/gstd3d11window.h:
+ * sys/d3d11/gstd3d11window_dummy.cpp:
+ * sys/d3d11/meson.build:
+ * sys/d3d11/plugin.c:
+ d3d11: Port to C++
+ Direct3D11 objects are COM, and most COM C APIs are verbose
+ (C++ is a little better). So, by using C++ APIs, we can make code
+ shorter and more readable.
+ Moreover, "ComPtr" helper class (which is C++ only) can be
+ utilized, that is very helpful for avoiding error-prone COM refcounting
+ issue/leak.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2077>
+
+2021-03-12 12:36:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * tests/examples/va/multiple-vpp.c:
+ va: example: multiple-vpp: test direction change
+ If the driver supports it (iHD, so far) and the parameter -d is set,
+ the direction of the video will be changed randomly.
+ In the code you can select, at compilation time, if the direction
+ change is done by element's property or by pipeline events.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2074>
+
+2021-03-11 18:53:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: postproc: update passthrough and reconfigure pads
+ Added helper function _update_passthrough() which will define and set
+ the pass-through mode of the filter, and it'll either reconfigure both
+ pads or it will just mark the src pad for renegotiation or nothing at
+ all.
+ There are cases where both pads have to be reconfigured (direction
+ changed, for example), other when just src pad has to (filters
+ updated) or none (changing to ready state).
+ The requirement of renegotiation depends on the need to enable/disable
+ its VA buffer pools.
+ This patch sets pass-through mode by default, so the buffer pools
+ aren't allocated if no filtering/direction operations are defined,
+ which is the correct behavior.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2074>
+
+2021-02-25 14:09:50 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/zxing/gstzxing.cpp:
+ * ext/zxing/meson.build:
+ * tests/check/elements/zxing.c:
+ zxing: update to support version 1.1.1
+ Support new API in 1.1.1
+ Update the supported input video format.
+ Update tests to use parse_launch
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2037>
+
+2021-03-10 13:10:28 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/videoparsers/gstmpegvideoparse.c:
+ mpegvideoparse: do not clip the frame
+ If the current buffer is delta unit such as P or B
+ frame, the buffer should not be clipped and need to
+ let the decoder handle the segment boundary situation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2070>
+
+2021-03-11 02:36:28 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11device.c:
+ d3d11device: Fix wrong printf formatting
+ Add missing '%' there
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2069>
+
+2021-02-20 11:36:42 +0000 Philippe Normand <philn@igalia.com>
+
+ * gst-libs/gst/transcoder/gsttranscoder-private.h:
+ * gst-libs/gst/transcoder/gsttranscoder-signal-adapter.c:
+ * gst-libs/gst/transcoder/gsttranscoder.c:
+ * gst-libs/gst/transcoder/gsttranscoder.h:
+ transcoder: Add state-changed signal
+ Similar to GstPlayer, a new signal for state tracking is now emitted at runtime,
+ as a commodity for applications which then don't need to monitor the pipeline
+ GstBus for state changes anymore.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2028>
+
+2020-12-07 10:47:30 +0000 Philippe Normand <philn@igalia.com>
+
+ * gst-libs/gst/play/gstplay-signal-adapter.c:
+ * gst-libs/gst/player/gstplayer-media-info-private.h:
+ * gst-libs/gst/player/gstplayer-media-info.c:
+ * gst-libs/gst/player/gstplayer-wrapped-video-renderer-private.h:
+ * gst-libs/gst/player/gstplayer-wrapped-video-renderer.c:
+ * gst-libs/gst/player/gstplayer.c:
+ * gst-libs/gst/player/meson.build:
+ player: Rewrite as GstPlay wrapper
+ For the time being the GstPlayer library remains as a wrapper for GstPlay, in
+ order to keep existing applications working and give them time to port to
+ GstPlay. GstPlayer will remain in -bad for a couple cycles and the plan for
+ GstPlay is to move it to -base before 1.20.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2061>
+
+2020-12-07 09:56:26 +0000 Philippe Normand <philn@igalia.com>
+
+ * gst-libs/gst/play/gstplay.c:
+ play: Flush API bus before exiting main loop
+ Otherwise the bus might attempt to dispatch queued messages after the thread
+ ended, causing runtime warnings.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2061>
+
+2020-11-29 18:55:48 +0000 Philippe Normand <philn@igalia.com>
+
+ * tests/check/libs/play.c:
+ * tests/check/meson.build:
+ play: tests: Switch user-agent test to a real HTTP server
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2061>
+
+2020-11-14 10:56:51 +0000 Philippe Normand <philn@igalia.com>
+
+ * meson_options.txt:
+ * tests/check/libs/play.c:
+ * tests/check/meson.build:
+ play: tests: Refactor to use new Message bus API
+ Instead of relying on an extra GMainLoop, the messages are poped from the player
+ bus and handled synchronously. This should avoid flaky behaviors.
+ Fixes #608
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2061>
+
+2020-11-14 10:47:53 +0000 Philippe Normand <philn@igalia.com>
+
+ * gst-libs/gst/play/gstplay.c:
+ play: Plug media_info leak
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2061>
+
+2020-04-28 21:09:40 +0200 Stephan Hesse <stephan@emliri.com>
+
+ * gst-libs/gst/play/gstplay.c:
+ play: Rename internal buffering field to buffering_percent
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2061>
+
+2019-11-02 16:14:13 +0100 Stephan Hesse <stephan@emliri.com>
+
+ * docs/libs/play/index.md:
+ * docs/libs/play/sitemap.txt:
+ * docs/meson.build:
+ * gst-libs/gst/meson.build:
+ * gst-libs/gst/play/gstplay-media-info-private.h:
+ * gst-libs/gst/play/gstplay-media-info.c:
+ * gst-libs/gst/play/gstplay-media-info.h:
+ * gst-libs/gst/play/gstplay-message-private.h:
+ * gst-libs/gst/play/gstplay-signal-adapter.c:
+ * gst-libs/gst/play/gstplay-signal-adapter.h:
+ * gst-libs/gst/play/gstplay-types.h:
+ * gst-libs/gst/play/gstplay-video-overlay-video-renderer.c:
+ * gst-libs/gst/play/gstplay-video-overlay-video-renderer.h:
+ * gst-libs/gst/play/gstplay-video-renderer-private.h:
+ * gst-libs/gst/play/gstplay-video-renderer.c:
+ * gst-libs/gst/play/gstplay-video-renderer.h:
+ * gst-libs/gst/play/gstplay-visualization.c:
+ * gst-libs/gst/play/gstplay-visualization.h:
+ * gst-libs/gst/play/gstplay.c:
+ * gst-libs/gst/play/gstplay.h:
+ * gst-libs/gst/play/meson.build:
+ * gst-libs/gst/play/play-prelude.h:
+ * gst-libs/gst/play/play.h:
+ play: Introducing the new playback library
+ This aims to be a replacement for the GstPlayer library. In GstPlay, notifications are
+ sent as application messages through a dedicated GstBus. The GMainContext-based
+ signal dispatcher was replaced by a GObject signal adapter, now relying on the
+ bus to emit its signals. The signal dispatcher is now optional and fully
+ decoupled from the GstPlay object.
+ Co-authored with: Philippe Normand <philn@igalia.com>
+ Fixes #394
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2061>
+
+2021-03-09 13:00:10 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/timecode/gstavwait.c:
+ avwait: Don't post messages with the mutex locked
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2063>
+
+2021-03-01 20:53:53 +1100 Matthew Waters <matthew@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * tests/check/elements/webrtcbin.c:
+ webrtc: don't generate duplicate rtx payloads when bundle-policy is set
+ It was possible to generate a SDP that had an RTX payload type
+ that matched one of the media payload types when providing caps via
+ codec_preferences without any sink pads.
+ Fixes
+ m=video 9 UDP/TLS/RTP/SAVPF 96
+ ...
+ a=rtpmap:96 VP8/90000
+ a=rtcp-fb:96 nack pli
+ a=fmtp:96 apt=96
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2046>
+
+2021-03-08 14:30:52 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * tests/check/elements/interlace.c:
+ * tests/check/meson.build:
+ tests: Add negotiation tests for the interlace elements
+ Many complicated cases exist. Would be good to have some checks.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2062>
+
+2021-03-08 20:59:14 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/interlace/gstinterlace.c:
+ interlace: Discard stored_frame on EOS and PAUSED_TO_READY
+ Would otherwise leak it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2062>
+
+2021-03-08 16:16:25 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/interlace/gstinterlace.c:
+ interlace: Specify interlace-modes in the sink pad template
+ Especially specify the field-order in the interleaved mode. Otherwise it
+ might cause the negotiation to fail, because
+ GST_PAD_SET_ACCEPT_INTERSECT is not set on the sinkpad, and the
+ field-order is missing in the sink template but can be present in the
+ outside caps.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2062>
+
+2021-03-07 16:47:07 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/nvcodec/gstnvh264dec.c:
+ nvh264sldec: Reopen decoder object if larger DPB size is required
+ Equivalent to the d3d11h264dec fix
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1839
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2059>
+
+2021-03-03 01:23:20 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconverter.c:
+ d3d11: Fix an HLSL compiler warning
+ warning X3578: Output value 'main' is not completely initialized
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2052>
+
+2021-01-27 10:55:13 +0800 Bing Song <bing.song@nxp.com>
+
+ * tools/gst-transcoder.c:
+ transcoder: handle SIGINT and SIGHUP
+ Handle SIGINT and SIGHUP in transcoder. Or the output file maybe corrupt.
+ Fixes #1507
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1987>
+
+2021-03-04 17:42:28 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11h264dec.c:
+ d3d11h264dec: Keep track of actually configured DPB size
+ ... instead of the largest we ever seen.
+ Note that d3d11h264dec element holds previously configured DPB size
+ for later decoder object re-open decision.
+ This is to fix below case:
+ 1) Initial SPS, required DPB size is 6
+ - decoder object is opened with DPB size 6
+ - max_dpb_size is now 6
+ 2) SPS update with resolution change, required DPB size is 1
+ - decoder object is re-opened with DPB size 1
+ - max_dpb_size should be updated to 1, but it didn't happen (BUG)
+ 3) SPS update without resolution change, only required DPB size is updated to 6
+ - decoder object should be re-opened but didn't happen
+ because we didn't update max_dpb_size at 2).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2056>
+
+2021-03-03 16:19:39 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/interlace/gstinterlace.c:
+ interlace: add more formats, esp 10-bit, 12-bit and 16-bit ones
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2054>
+
+2021-02-16 11:23:17 +0100 Benjamin Gaignard <benjamin.gaignard@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ v4l2codecs: h264: retrieve interlaced information
+ Lets the decoder knows if the frames are interlaced or not.
+ Provide this information to the driver while filling reference
+ pictures fields in slice params structure
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1624>
+
+2020-11-27 16:00:03 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ v4l2codecs: h264: Reduce controls for subsequent slices
+ Only the SLICE_PARAMS and PRED_WEIGHTS are needed for the second and
+ following slices.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1624>
+
+2020-08-14 10:13:09 -0300 Ezequiel Garcia <ezequiel@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ v4l2codecs: h264: Implement optional scaling matrix
+ The new H.264 uAPI requires that all drivers support
+ scaling matrix only as an option, when a non-flat
+ scaling matrix is provided in the bitstream headers.
+ Take advantage of this and avoid passing the scaling
+ matrix if not needed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1624>
+
+2020-09-30 14:34:15 -0300 Ezequiel Garcia <ezequiel@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ v4l2codecs: h264: Only set SPS control if needed
+ Given V4L2 controls are cached in V4L2, there is no need
+ to set them if they don't change. Set the SPS control
+ only if a new sequence was received by the parser.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1624>
+
+2020-09-30 14:22:14 -0300 Ezequiel Garcia <ezequiel@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ v4l2codecs: h264: Only slice-based need SLICE_PARAMS and PRED_WEIGHTS
+ Frame-based decoding mode doesn't require SLICE_PARAMS and
+ PRED_WEIGHTS controls.
+ Moreover, if the driver doesn't support these two controls, trying
+ to set them will fail. Fix this by only setting these on
+ slice-based decoding mode.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1624>
+
+2020-09-30 14:14:41 -0300 Ezequiel Garcia <ezequiel@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ * sys/v4l2codecs/gstv4l2decoder.c:
+ * sys/v4l2codecs/gstv4l2decoder.h:
+ v4l2codecs: h264: Add API checks
+ Check that the V4L2 H264 controls' sizes match
+ our expectation. If not, then probably there's an API
+ mismatch which will cause errors or decoding corruption.
+ Also, print a warning if the kernel version is too old.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1624>
+
+2020-09-30 10:40:51 -0300 Ezequiel Garcia <ezequiel@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ * sys/v4l2codecs/linux/h264-ctrls.h:
+ * sys/v4l2codecs/linux/media.h:
+ * sys/v4l2codecs/linux/types-compat.h:
+ * sys/v4l2codecs/linux/v4l2-common.h:
+ * sys/v4l2codecs/linux/v4l2-controls.h:
+ * sys/v4l2codecs/linux/videodev2.h:
+ * sys/v4l2codecs/plugin.c:
+ v4l2codecs: h264: Update to the new uAPI
+ Starting from Linux v5.11, the V4L2 stateless H.264 uAPI
+ is updated and stable.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1624>
+
+2020-09-30 10:33:59 -0300 Ezequiel Garcia <ezequiel@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ v4l2codecs: h264: Set the scaling matrix present flag unconditionally
+ We are currently always setting and passing a scaling matrix,
+ so need to set this flag accordingly. Passing a scaling matrix
+ optionally will be implemented in follow-up commit.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1624>
+
+2021-03-02 12:46:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: postproc: mention the possibility of color balance
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2050>
+
+2021-03-02 12:46:06 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ docs: plugins update VA elements
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2050>
+
+2021-03-02 12:44:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavp8dec.c:
+ * sys/va/gstvavp9dec.c:
+ va: vp8dec, vp9dec: only set NV12 color format for documentation
+ Mention in documentation only the most used output format in VA-API.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2050>
+
+2021-03-02 22:01:26 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconvert.c:
+ d3d11convert: Forward colorimetry and chroma-site from upstream
+ Adopt the improvement of https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1033
+ into d3d11.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2051>
+
+2021-03-02 17:47:03 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconvert.c:
+ d3d11convert: Add support for border drawing
+ ... and fix wrong resizing when downstream requested PAR value
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2051>
+
+2021-03-02 21:35:00 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconvert.c:
+ d3d11convert: Prefer video processor over shader
+ ... if video processor was used previously. Otherwise, switching
+ between video processor and shader would result in inconsistent
+ output image quality.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2051>
+
+2021-03-02 18:07:36 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videoprocessor.c:
+ d3d11videoprocessor: Disable auto processing mode explicitly
+ Don't allow auto processing (e.g., denoising), as it might result
+ in unexpected output.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2051>
+
+2021-03-02 21:10:24 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11memory.c:
+ d3d11memory: Fix for wrong texture_array_size returns
+ Fix mismatched return values
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2051>
+
+2021-03-02 21:13:18 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.c:
+ d3d11decoder: Add trace log for DPB pool size debugging
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2051>
+
+2021-03-02 20:45:22 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.c:
+ d3d11decoder: Always use render-target bind flag for downstream pool
+ To convert decoded texture into other format, downstream would use
+ video processor instead of shader. In order for downstream to
+ be able to use video processor even if we copied decoded texture
+ into downstream pool, we should set this bind flag. Otherwise,
+ downstream would keep switching video processor and shader
+ to convert format which would result in inconsistent image quality.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2051>
+
+2021-03-02 20:37:04 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11_fwd.h:
+ * sys/d3d11/gstd3d11colorconvert.c:
+ * sys/d3d11/gstd3d11videoprocessor.c:
+ * sys/d3d11/gstd3d11videoprocessor.h:
+ * sys/d3d11/gstd3d11window.cpp:
+ * sys/d3d11/gstd3d11window_dummy.cpp:
+ * sys/d3d11/gstd3d11window_win32.cpp:
+ d3d11: Fix wrong preprocessing blocks
+ Missed in https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/464
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2051>
+
+2021-03-01 13:44:09 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvavpp.c:
+ va: vpp: fix a wrong caps logic in vpp_transform_caps().
+ The current gst_va_vpp_transform_caps return such as:
+ video/x-raw(memory:VAMemory), width=(int)[ 16, 16384 ], height=(int)[ 16, 16384 ],
+ interlace-mode=(string)progressive, format=(string){ NV12, I420, YV12, YUY2, RGBA,
+ BGRA, P010_10LE, ARGB, ABGR, VUYA }; video/x-raw(memory:DMABuf), width=(int)[ 16,
+ 16384 ], height=(int)[ 16, 16384 ], interlace-mode=(string)progressive, format=(string)
+ { NV12, I420, YV12, YUY2, RGBA, BGRA, P010_10LE, ARGB, ABGR, VUYA }; video/x-raw,
+ width=(int)[ 16, 16384 ], height=(int)[ 16, 16384 ], interlace-mode=(string)progressive,
+ format=(string){ VUYA, GRAY8, NV12, NV21, YUY2, UYVY, YV12, I420, P010_10LE };
+ video/x-raw(memory:VAMemory), width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ],
+ interlace-mode=(string)progressive; video/x-raw(memory:DMABuf), width=(int)[ 1, 2147483647 ],
+ height=(int)[ 1, 2147483647 ], interlace-mode=(string)progressive; video/x-raw, width=(int)
+ [ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], interlace-mode=(string)progressive
+ Which is not correct. It mixes the template caps and the input query caps together.
+ The correct way should be: clip the template caps with the input caps(remove format
+ and rangify size). The correct answer should be:
+ video/x-raw(memory:VAMemory), width=(int)[ 16, 16384 ], height=(int)[ 16, 16384 ], interlace
+ -mode=(string)progressive, format=(string){ NV12, I420, YV12, YUY2, RGBA, BGRA, P010_10LE,
+ ARGB, ABGR, VUYA }; video/x-raw(memory:DMABuf), width=(int)[ 16, 16384 ], height=(int)[ 16,
+ 16384 ], interlace-mode=(string)progressive, format=(string){ NV12, I420, YV12, YUY2, RGBA,
+ BGRA, P010_10LE, ARGB, ABGR, VUYA }; video/x-raw, width=(int)[ 16, 16384 ], height=(int)[ 16,
+ 16384 ], interlace-mode=(string)progressive, format=(string){ VUYA, GRAY8, NV12, NV21, YUY2,
+ UYVY, YV12, I420, P010_10LE }
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2045>
+
+2021-03-01 16:23:37 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/mpegtsdemux/mpegtsparse.c:
+ mpegtsparse: Fix switched DTS/PTS when set-timestamps=false
+ Fixes 30ee21eae36e7279f63b77167ba1dcf5f70b8e83.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2047>
+
+2019-08-15 08:25:26 -0700 Ilya Kreymer <ikreymer@gmail.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/webrtc/gstwebrtcice.c:
+ * ext/webrtc/gstwebrtcice.h:
+ * ext/webrtc/icestream.c:
+ * tests/check/elements/webrtcbin.c:
+ webrtc ice: Add 'min/max-rtp-port' props for setting RTP port range
+ default min port == 0, max port == 65535 -- if min port == 0, uses existing random port selection (range ignored)
+ add 'gathering_started' flag to avoid changing ports after gathering has started
+ validity checks: min port <= max port enforced, error thrown otherwise
+ include tests to ensure port range is being utilized (by @hhardy)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/119>
+
+2021-02-25 11:58:57 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcice.c:
+ webrtc ice: Only ever request one component, it's always rtcpmux
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/119>
+
+2021-02-26 15:40:01 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst-libs/gst/transcoder/gsttranscoder.c:
+ transcoder: Add some missing API guards
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2044>
+
+2021-02-26 15:36:48 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst-libs/gst/transcoder/gsttranscoder-signal-adapter.c:
+ transcoder: Fix potential use of uninitialized variables
+ gst_structure_get won't touch variables if the field is not present
+ leading to potential use of initialized vars
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2044>
+
+2021-02-26 15:31:29 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst-libs/gst/transcoder/gsttranscoder-private.h:
+ * gst-libs/gst/transcoder/gsttranscoder-signal-adapter.c:
+ * gst-libs/gst/transcoder/gsttranscoder-signal-adapter.h:
+ * gst-libs/gst/transcoder/gsttranscoder.c:
+ * gst-libs/gst/transcoder/gsttranscoder.h:
+ * tools/gst-transcoder.c:
+ transcoder: Rework the API to create/get SignalAdapter
+ We can only have 1 single GstTranscoderSignalAdapter object for a
+ given GstTranscoder object, this enforces that by avoiding to expose
+ a constructor and instead add a method to GstTranscoder to get the
+ signal adapter (internally creating it when needed). We can still
+ cleanly ensure that the signal adapter is running for the requested
+ GMainContext and return NULL if it is not the case.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2044>
+
+2021-02-22 16:59:25 +1100 Matthew Waters <matthew@centricular.com>
+
+ * ext/webrtc/gstwebrtcice.c:
+ webrtcbin: use regular ice nomination by default
+ 1. We don't currently deal with an a=ice-options in the SDP which means
+ we currently violate https://tools.ietf.org/html/rfc5245#section-8.1.1
+ which states: "If its peer is using ICE options (present in
+ an ice-options attribute from the peer) that the agent does not
+ understand, the agent MUST use a regular nomination algorithm."
+ 2. The recommendation is default to regular nomination in both RFC5245
+ and RFC8445. libnice change for this is
+ https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/125
+ which requires an API break in libnice.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2031>
+
+2021-02-24 18:43:07 +0000 Philippe Normand <philn@igalia.com>
+
+ * docs/meson.build:
+ * gst-libs/gst/transcoder/gsttranscoder.c:
+ transcoder: Remove un-needed gst_init call
+ We can safely assume GStreamer is already initialized from here.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1840>
+
+2020-11-25 22:25:28 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst-libs/gst/transcoder/gsttranscoder-message-private.h:
+ * gst-libs/gst/transcoder/gsttranscoder-signal-adapter.c:
+ * gst-libs/gst/transcoder/gsttranscoder-signal-adapter.h:
+ * gst-libs/gst/transcoder/gsttranscoder.c:
+ * gst-libs/gst/transcoder/gsttranscoder.h:
+ * gst-libs/gst/transcoder/meson.build:
+ * tools/gst-transcoder.c:
+ transcoder: Port to a GstBus API instead
+ Following the move made by GstPlayer in:
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/35
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1840>
+
+2020-11-25 22:21:35 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst-libs/gst/transcoder/gsttranscoder.c:
+ * gst-libs/gst/transcoder/gsttranscoder.h:
+ * gst-libs/gst/transcoder/meson.build:
+ * gst-libs/gst/transcoder/transcoder-prelude.h:
+ transcoder: Automatically generate enums GTypes
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1840>
+
+2020-11-25 22:01:30 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst-libs/gst/transcoder/gsttranscoder.h:
+ transcoder: Port to G_DECLARE
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1840>
+
+2021-02-26 16:36:58 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * sys/decklink/gstdecklinkvideosink.cpp:
+ decklinkvideosink: Use correct numerator for 29.97fps
+ It's not 0.2997fps.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2042>
+
+2021-02-26 11:39:10 +0100 Edward Hervey <edward@centricular.com>
+
+ * sys/decklink/gstdecklink.cpp:
+ decklinksrc: Use a more accurate capture time
+ Use the hardware reference clock time when the frame was finished being captured
+ instead of a time much further down the road.
+ This improves the stability/accuracy of buffer times.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2040>
+
+2021-02-24 19:14:42 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: No need of fourcc to create surface.
+ In commits 430aa327 and a119a940 there are a regression since it is
+ possible to create surfaces without fourcc, only chroma (rtformat) is
+ required.
+ This regression is shown on radeonsi driver with certain color
+ formats.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2035>
+
+2021-02-24 13:06:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ * sys/va/gstvafilter.h:
+ * sys/va/gstvavpp.c:
+ * tests/examples/va/meson.build:
+ * tests/examples/va/multiple-vpp.c:
+ va: vpp: implement GstColorBalance interface
+ And modify multiple-vpp example to use it with -r parameter.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2033>
+
+2021-02-23 17:22:40 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ va: filter: add controllable and mutable playing to GParamFlags
+ Add controllable and mutable playgin to common GParamFlags.
+ Also use this common flags to video-direction
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2033>
+
+2021-02-24 16:57:06 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/vulkan/vkcolorconvert.c:
+ * ext/vulkan/vkviewconvert.c:
+ vulkan: Fix elements long name.
+ Fix vkcoloconvert and vkviewconvert long names.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2034>
+
+2021-01-12 15:33:49 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkcontext.c:
+ * sys/msdk/meson.build:
+ msdk: allow user specify a drm device via an env variable
+ User may specify the required device via GST_MSDK_DRM_DEVICE
+ Example:
+ GST_MSDK_DRM_DEVICE=/dev/dri/card0 gst-launch-1.0 videotestsrc ! msdkh264enc
+ ! fakesink
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1953>
+
+2021-01-19 15:36:29 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvaav1dec.c:
+ * sys/va/gstvaav1dec.h:
+ * sys/va/gstvabasedec.h:
+ * sys/va/gstvaprofile.c:
+ * sys/va/meson.build:
+ * sys/va/plugin.c:
+ VA: Add the vaav1dec element as the av1 decoder.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1636>
+
+2021-01-19 15:17:58 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvaallocator.c:
+ * sys/va/gstvaallocator.h:
+ * sys/va/gstvadecoder.c:
+ * sys/va/gstvadecoder.h:
+ VA: Add the aux surface for gst buffer used by decoder.
+ The AV1 codec needs to support the film grain feature. When the film
+ grain feature is enabled, we need two surfaces as the output of the
+ decoded picture, one without film grain effect and the other one with
+ it. The first one acts as the reference and is needed for later pictures'
+ reconstruction, and the second one is the real display output.
+ So we need to attach another aux surface to the gst buffer/mem and make
+ that aux surface as the target of vaBeginPicture.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1636>
+
+2021-01-19 15:07:38 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvadecoder.c:
+ * sys/va/gstvadecoder.h:
+ VA: Add a helper function of decoder_add_slice_buffer_with_n_params.
+ Some codecs such as AV1 needs several parameters associated with one
+ slice. It may have multi tiles within one slice and each tile needs
+ its description parameter.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1636>
+
+2021-01-19 14:59:45 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gstav1decoder.c:
+ * gst-libs/gst/codecs/gstav1decoder.h:
+ * gst-libs/gst/codecs/gstav1picture.c:
+ * gst-libs/gst/codecs/gstav1picture.h:
+ * gst-libs/gst/codecs/meson.build:
+ codecs: AV1decoder: Add the AV1 decoder base class.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1636>
+
+2021-02-23 13:47:29 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: replace assert with error log in va alloc.
+ We should print error log rather than assert when the forcc or
+ the rt_format of va allocator is unrecognized.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1636>
+
+2021-02-21 17:38:38 +0900 Seungha Yang <seungha@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * sys/d3d11/gstd3d11compositor.c:
+ * sys/d3d11/gstd3d11compositorbin.c:
+ * sys/d3d11/gstd3d11deinterlace.cpp:
+ * sys/d3d11/gstd3d11desktopdupsrc.c:
+ * sys/d3d11/gstd3d11download.c:
+ * sys/d3d11/gstd3d11h264dec.c:
+ * sys/d3d11/gstd3d11h265dec.c:
+ * sys/d3d11/gstd3d11mpeg2dec.c:
+ * sys/d3d11/gstd3d11upload.c:
+ * sys/d3d11/gstd3d11videosink.c:
+ * sys/d3d11/gstd3d11videosinkbin.c:
+ * sys/d3d11/gstd3d11vp8dec.c:
+ * sys/d3d11/gstd3d11vp9dec.c:
+ * sys/d3d11/plugin.c:
+ d3d11: Documentation update
+ * Update class metadata
+ * for wrapper bin elements to be distinguishable from internal element.
+ * D3D11 -> Direct3D11 for consistency
+ * Add missing Since mark everywhere
+ * Update plugin cache
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2029>
+
+2021-02-21 20:38:37 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconvert.c:
+ * sys/d3d11/gstd3d11colorconvert.h:
+ d3d11: Reorganize class hierarchy of convert elements
+ AS-IS:
+ D3D11Convert class is baseclass of D3D11ColorConvert and D3D11Scale
+ * GstD3D11Convert
+ |_ GstD3D11ColorConvert
+ |_ GstD3D11Scale
+ TO-BE:
+ Introducing a new base class for color conversion and/or rescale elements
+ * GstD3D11BaseConvert
+ |_ GstD3D11Convert
+ |_ GstD3D11ColorConvert
+ |_ GstD3D11Scale
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2029>
+
+2021-02-21 17:35:40 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11deinterlace.cpp:
+ d3d11deinterlace: Add missing system memory caps features on templates
+ This element can support system memory
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2029>
+
+2021-02-18 09:53:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ * sys/va/gstvafilter.h:
+ * sys/va/gstvavpp.c:
+ va: filter, vpp: process colorimetry
+ A new filter method were added: gst_va_filter_set_formats(). In this
+ way the input & output GstVideoInfo are processed only once per stream
+ negotiation, and not per frame.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2023>
+
+2021-02-18 05:58:25 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ va: filter: check if filter is open on set_orientation()
+ Because the method requires pipeline_caps is filled.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2023>
+
+2021-02-17 18:56:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ va: filter: human readable background color
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2023>
+
+2021-02-17 18:55:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ va: filter: fail immediately if vaBeginPicture() fails
+ There's no need to try vaRenderPicture() if vaBeginPicture() failed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2023>
+
+2021-02-17 18:30:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ va: filter: destroy pipeline buffer after destroying filters
+ In 6ae24948 the pipeline buffer destroy were removing assuming it
+ wasn't required. Nonetheless, debugging the code it looks like a
+ buffer leak in iHD driver since the ID of the buffer kept increasing.
+ The difference now is that first the filter buffers are destroy first
+ and later the pipeline buffer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2023>
+
+2021-02-19 14:27:39 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvavpp.c:
+ va: vpp: Add raw buffer copy when needed.
+ Just like the decoder, the vapostproc also needs to copy the output
+ buffer to raw buffer if downstream elements only supports raw caps
+ and does not support the video meta.
+ The pipeline like:
+ gst-launch-1.0 filesrc location=xxxx ! h264parse ! vah264dec ! \
+ vapostproc ! capsfilter caps=video/x-raw,width=55,height=128 ! \
+ filesink location=xxx
+ needs this logic to dump the data correctly.
+ fixes: #1523
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2026>
+
+2021-02-19 00:03:00 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/sdp/gstsdpsrc.c:
+ sdpsrc: fix double free if sdp is provided as string via the property
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1532
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2025>
+
+2021-02-18 21:38:37 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/gstwasapi2device.c:
+ wasapi2device: Make wasapi2 device distinguishable from wasapi device
+ Both wasapi2 and wasapi plugins use WASAPI API. So "device.api=wasapi"
+ would make sense for the wasapi2 plugin as well. But people would be
+ confused by the identical "device.api=wasapi" property if intended
+ plugin is wasapi, not wasapi2. This change will make them distinguishable
+ by using "device.api" device property.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2024>
+
+2021-01-13 00:27:40 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/meson.build:
+ wasapi2: Always build if Windows 10 SDK is available
+ Add support for building wasapi2 plugin if Windows 10 SDK is
+ available on system
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1951>
+
+2021-02-08 12:24:58 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/dtls/gstdtlssrtpbin.c:
+ * ext/dtls/gstdtlssrtpdec.c:
+ * ext/dtls/gstdtlssrtpenc.c:
+ dtls: use GST_WARNING instead of g_warning
+ No need a g_warning which is failing always
+ with gst-inspect -a
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2010>
+
+2021-01-28 12:28:03 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
+
+ * gst/videoparsers/gsth264parse.c:
+ * tests/check/elements/h264parse.c:
+ h264parse: don't invalidate the last PPS when parsing a new SPS
+ When a SPS is received then any previous PPS remains valid. So don't clear
+ the PPS flag from the parser state.
+ This is important because there are encoders that don't generated a PPS after
+ every SPS.
+ Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/571
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2019>
+
+2021-02-17 15:15:09 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/videoparsers/gsth265parse.c:
+ h265parse: Detect height change on field-based interlaced files
+ The first time update_src_caps is called, there's no frame parsed yet,
+ therefore we don't know whether the file has alternate-field interlacing
+ mode. If we run it again after we have a frame, it might be that now we
+ have the SEI pic_struct parsed, and therefore we know that it's
+ field-based interlaced, and therefore the height must be multiplied by
+ two. Earlier on this was not detected as a change.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2022>
+
+2020-09-19 21:39:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * tests/examples/va/meson.build:
+ * tests/examples/va/multiple-vpp.c:
+ va: add multiple-vpp example
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2015>
+
+2021-02-15 15:54:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: set workaround only for i965 driver
+ In commit 117453b9 a i965 driver workaround was added for all drivers, because
+ at that time we didn't have a driver implementation API.
+ Now there's one. This patch set the workaround only for the i965 driver.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2021>
+
+2021-02-17 13:46:03 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/videoparsers/gsth265parse.c:
+ h265parse: Fix FPS/duration for interlaced files
+ There can be h265 files with frame-based, not field-based, interlacing.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2020>
+
+2021-02-12 18:43:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: MT-safe queue & dequeue dmabuf-based memories
+ One problem that va dmabuf allocator had is when preparing a buffer from
+ dmabuf memories in the allocator pool, specially when a buffer is composed by
+ several memories. This memories have to be by certain number and in certain
+ order.
+ This patch stores the number of memories and their address in order when a
+ dmabuf-based buffer is created and when preparing a buffer, it is reconstructed
+ with this info.
+ Finally, instead of pushing the memories as soon as they are unrefed, they are
+ hold until GstVaBufferSurface's ref_mems_count reaches zero (all the memories
+ related with that buffer/surface are unrefed). Until that happen, all the
+ memories are pushed back into the queue, locked, assuring that all the memories
+ related with a single buffer (with the same surface) remain contiguous, so the
+ buffer reconstruction is assured.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2013>
+
+2021-02-15 15:34:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvapool.c:
+ va: pool, allocator: free memories at bufferpool's stop()
+ This patch frees the memories in the allocator's pool after the bufferpool frees
+ all its buffers, sync'ing them at stop() vmethod.
+ By doing it, the current logic in flush_start() is not valid, so the vmethod is removed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2013>
+
+2021-02-12 15:40:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ * sys/va/gstvaallocator.h:
+ va: allocator: remove unused public functions
+ Deleted the public functions:
+ gst_va_dmabuf_allocator_wait_for_memory()
+ gst_va_allocator_wait_for_memory()
+ And all the support for wait, cond in allocator's pool.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2013>
+
+2021-02-12 13:26:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvapool.c:
+ va: pool: simplify the logic
+ Instead of removing memories from buffers at reset_buffer()/release_buffer() the
+ bufferpool operation is kept as originally designed, still the allocator pool is
+ used too. Thus, this patch restores the buffer size configuration while removing
+ release_buffer(), reset_buffer() and acquire_buffer() vmethods overloads.
+ Then, when the bufferpool base class decides to discard a buffer, the VA
+ surface-based memory is returned to the allocator pool when its last reference
+ is freed, and later reused if a new buffer is allocated again.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2013>
+
+2021-02-07 16:12:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ * sys/va/gstvaallocator.h:
+ * sys/va/gstvapool.c:
+ va: pool: use allocator pool at alloc()
+ Check if the allocator pool has memories available before creating a
+ new one, but only iif pool is not starting.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2013>
+
+2021-02-08 12:25:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: log buffer at dmabuf setup and prepare
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2013>
+
+2021-01-22 00:10:28 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11deinterlace.cpp:
+ * sys/d3d11/gstd3d11deinterlace.h:
+ * sys/d3d11/meson.build:
+ * sys/d3d11/plugin.c:
+ d3d11: Add support for deinterlacing by using ID3D11VideoProcessor interface
+ Add a new element d3d11deinterlace to support deinterlacing.
+ Similar to d3d11videosink and d3d11compositor, this element is
+ a wrapper bin of set of child elements including helpful
+ conversion elements (upload/download and color convert)
+ to make this element configurable between non-d3d11 elements.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2016>
+
+2021-02-14 06:23:55 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11format.c:
+ * gst-libs/gst/d3d11/gstd3d11format.h:
+ d3d11: Add a method for conversion from DXGI format to GstVideoFormat
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2016>
+
+2021-01-22 03:26:29 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/videoparsers/gsth264parse.c:
+ h264parse: fix timestamping of interlaced fields in output
+ Instead of relying on GstBaseParse default behaviour of computing
+ the duration of a parsed buffer based on the framerate passed
+ to gst_base_parse_set_framerate(), we instead compute the duration
+ ourselves, as we have more information available.
+ In particular, this means we now output buffers with a duration
+ that matches that of raw interlaced buffers when each field is
+ output in a separate buffer.
+ This fixes DTS interpolation performed by GstBaseParse, as the
+ previous behaviour of outputting each field with the duration of
+ a full frame was messing up the base class calculations.
+ When not enough information is available, h264parse simply falls
+ back to calculating the duration based on the framerate and hope
+ for the best as was the case previously.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1973>
+
+2021-02-14 21:01:32 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.c:
+ * sys/d3d11/gstd3d11decoder.h:
+ * sys/d3d11/gstd3d11h264dec.c:
+ * sys/d3d11/gstd3d11h265dec.c:
+ * sys/d3d11/gstd3d11mpeg2dec.c:
+ * sys/d3d11/gstd3d11vp8dec.c:
+ * sys/d3d11/gstd3d11vp9dec.c:
+ d3d11decoder: Take account of min buffers of downstream buffer pool
+ Since our decoder DPB texture pool cannot be grown once it's
+ configured, we should pre-allocate sufficient number of textures
+ for zero-copy playback (but not too many).
+ The "min buffers" allocation query parameter can be a hint for
+ the number of required textures in addition to DPB size.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2017>
+
+2020-10-29 10:54:45 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/openh264/gstopenh264enc.cpp:
+ openh264enc: Add support for main and high profiles
+ Those are supported (to a certain extent) so we should not limit
+ ourself to baseline
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1789>
+
+2021-02-11 16:04:12 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gstmpeg2decoder.c:
+ codecs: mpeg2decoder: Move frame_unref to handle_frame.
+ In the current code, we call frame_unref only when the frame is
+ outputted. This is OK for normal playback, but when seek happens,
+ the frames stored in DPB is not outputted and causes some memory
+ leak.
+ The correct way is that we should call frame_unref every time we
+ finish the handle_frame(), which is also the behaviour of H264/H265
+ decoder.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2014>
+
+2021-02-07 02:26:02 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.c:
+ * sys/d3d11/gstd3d11h265dec.c:
+ d3d11h265dec: Add support for interlaced stream
+ Note that we have no D3D11 deinterlace element yet.
+ If downstream is not support format:Interlaced caps feature including all
+ D3D11 the other elements, aspect-ratio will be adjusted as an
+ alternative approach.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2008>
+
+2021-02-07 00:21:06 +0900 Seungha Yang <seungha@centricular.com>
+
+ codecs: h265decoder: Add support for interlaced stream
+ * Invoke GstH265DecoderClass::new_sequence() method per interlaced
+ stream status update so that subclass can update caps.
+ * Parse picture timing SEI and set buffer flags on GstH265Picture
+ object. Subclass can refer to it like that of our h264decoder
+ implementation.
+ * Remove pointless GstH265PictureField enum
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2008>
+
+2021-02-10 00:59:05 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/va/gstvah265dec.c:
+ vah265dec: Don't need to pass picture structure to VA
+ This code came from gstvaapidecoder_h265 implementation
+ but picture structure is always GST_VAAPI_PICTURE_STRUCTURE_FRAME.
+ Moreover, in theory, VA doesn't need to know picture structure for
+ decoding HEVC stream.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2008>
+
+2021-02-06 22:02:59 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/nvcodec/gstnvh265dec.c:
+ nvh265sldec: Remove pointless field picture parameter setup
+ HEVC has no decoding flow for interlaced, field picture referencing.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2008>
+
+2021-02-08 00:07:26 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvavpp.c:
+ va: vpp: Make the global lock only to DMA buffer's import.
+ The normal gst_va_buffer_get_surface does not need a global lock.
+ Too big lock may make the performance lower.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2009>
+
+2021-02-05 14:05:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: log dmabuf and surface at pool push or pop
+ In order to keep track of the dmabuf fds and surfaces numbers log messages are
+ added at memory_release() (queue push) and prepare_buffer() (queue pop).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1999>
+
+2021-02-02 06:43:27 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvah265dec.c:
+ va: h265dec: fix HVC1 stream format name
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1999>
+
+2021-02-01 23:19:27 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvabasedec.c:
+ va: basedec: refactor context query
+ Context query is handled either by source and sink queries. This patch
+ factors-out its handling in a common utility function.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1999>
+
+2020-12-21 18:10:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ va: filter: use a common GParamFlags definition
+ Instead of repeating the same code along gst_va_filter_install_properties()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1999>
+
+2021-01-22 16:54:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvah264dec.c:
+ va: h264dec: remove spurious if validation
+ The first if checks for caps, thus else doesn't need to recheck for the
+ opposite.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1999>
+
+2021-02-05 18:13:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: vpp: fix frame copy
+ There were two problems with frame copy:
+ 1. The input video info are from the format color, not form the allocated VA
+ surface, it's needed to update the sink video info according with the
+ allocator's data.
+ 2. The parameters of `gst_video_frame_copy()` were backwards.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2007>
+
+2021-02-02 18:05:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: vpp: request video and alignment metas for src pool
+ This is for the pool used when importing raw video frames to surfaces.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2007>
+
+2021-02-04 16:43:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: vpp: transform_size() must return FALSE
+ transform_size() basetransform vmethod is used when there's no output buffer
+ pool and allocates a system memory buffer. With VA this cannot be allowed, since
+ it needs VASurfaces to process.
+ Thus transform_size() is not required, but to play safe let's return FALSE.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2007>
+
+2021-02-02 16:22:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: vpp: copy input buffer flags and timestamps
+ Strictly speaking right now it's not required do this copy, but let's play safe
+ and assume in the future this metadata might be required while doing the
+ postprocessing.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2007>
+
+2021-02-01 23:55:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: vpp: handle context query
+ Previously vapostproc didn't communicate its context through query mechanism,
+ which is required for context sharing. This patch completes this missing bits.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2007>
+
+2021-02-01 23:50:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: vpp: don't copy color, size or orientation video metas
+ If they are processed by the element.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2007>
+
+2021-02-05 16:46:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: vpp: don't break passthrough if no color balance required
+ The function `_add_filter_cb_buffer()` returned TRUE if no color balance filter
+ are required, but that's is wrong, since it will break the passthrough. This
+ patch return FALSE which is the correct value for the situation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2007>
+
+2021-01-15 14:07:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: vpp: use gst_clear_caps()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2007>
+
+2021-02-02 16:23:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ va: filter: don't destroy pipeline buffer
+ This was only required by i915 driver before libva-2.0 because it didn't
+ conform.
+ Also changes the way _destroy_filters() is called, now inside a locked block, so
+ it must not lock in it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2006>
+
+2021-02-01 16:57:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ va: filter: lock member variables access
+ While gst_va_filter_open() and gst_va_filter_close() remain non-thread-safe, the
+ other API calls that modify member variables are locked.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2005>
+
+2021-02-03 23:39:00 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * ext/srt/gstsrtobject.c:
+ * ext/srt/gstsrtsink.c:
+ * ext/srt/gstsrtsrc.c:
+ srt: preserve ABI compatibility
+ Reintroduce socket descriptor parameter removed in 327ad84e to
+ "caller-added" and "caller-removed" signals, just set it always to zero.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2004>
+
+2021-02-04 03:42:05 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.c:
+ * sys/d3d11/gstd3d11decoder.h:
+ * sys/d3d11/gstd3d11h264dec.c:
+ * sys/d3d11/gstd3d11h265dec.c:
+ * sys/d3d11/gstd3d11mpeg2dec.c:
+ * sys/d3d11/gstd3d11vp8dec.c:
+ * sys/d3d11/gstd3d11vp9dec.c:
+ d3d11decoder: Fix deadlock when DPB texture pool is full
+ Unlike other stateless decoder implementations (e.g., VA),
+ our DPB pool cannot be grown since we are using
+ texture array (pre-allocated, fixed-size d3d11 texture pool).
+ So, if there's no more available texture to use,
+ there's no way other than copying it to downstream's
+ d3d11 buffer pool. Otherwise deadlock will happen.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2003>
+
+2021-02-02 19:10:13 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11memory.c:
+ * gst-libs/gst/d3d11/gstd3d11memory.h:
+ d3d11memory: Add a method for querying texture array size
+ ... and the number of textures in use.
+ Direct3D11 texture array is usually used for decoder DPB pool,
+ and d3d11 decoder elements might want to know
+ whether there's available texture resource or not.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2003>
+
+2020-12-14 20:34:15 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * ext/srt/gstsrtobject.c:
+ * ext/srt/gstsrtsink.c:
+ * ext/srt/gstsrtsrc.c:
+ srt: don't pass SRT socket ID to "caller-added,removed" signals
+ The caller's IP and port is enough for unique identification. Don't leak
+ the socket handle since using it in unadvised libsrt calls from the
+ application could break the SRT element.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1772>
+
+2020-11-04 17:14:03 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * ext/srt/gstsrtobject.c:
+ srtobject: add caller address to stats structure
+ In listener mode, gst_stats() returns an independent set of
+ statistics for every connected caller. Having the caller's IP and port
+ present in each structure allows to correlate the statistics with a
+ particular caller that has been announced by "caller-added" signal.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1772>
+
+2021-02-03 14:27:14 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/videoparsers/gsth265parse.c:
+ * gst/videoparsers/gsth265parse.h:
+ h265parse: Support for alternate-field interlacing
+ Also don't set interlacing information on the caps, see #1313
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1996>
+
+2021-02-02 18:25:31 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/videoparsers/gsth264parse.c:
+ * gst/videoparsers/gsth265parse.c:
+ h264/h265parse: Add VideoTimeCodeMeta to the outgoing buffer
+ The parsers attempted to add the meta to the incoming buffer, which
+ might not be the outgoing buffer or may not have been writable yet.
+ To fix this, call `gst_buffer_make_writable` earlier and make sure to
+ use the `parse_buffer` to add the meta.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1521
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2002>
+
+2021-01-27 15:32:26 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/va/gstvadevice.c:
+ va: sort the device queue
+ If so, the elements will be registered per drm node in order of
+ renderD128, renderD129, ... etc, an element with constant name will be
+ registered on renderD128 on a hardware with multiple drm nodes.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1988>
+
+2021-02-02 04:33:09 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/v4l2codecs/gstv4l2decoder.c:
+ v4l2decoder: Small documentation fix
+ Fixing documentation even though those methods are v4l2codecs plugin internals
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2000>
+
+2021-01-29 09:43:07 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ * sys/v4l2codecs/gstv4l2decoder.c:
+ v4l2codecs: h264: Enable 1 frame delay on non-live
+ When doing non-live decoding, enable 1 frame of delay. This will ensure
+ that we queue the next decoding job before we actually wait for the previous
+ to complete. This improves throughput notably on RK3399.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1881>
+
+2021-01-29 09:41:22 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2decoder.c:
+ * sys/v4l2codecs/gstv4l2decoder.h:
+ v4l2codecs: Add support for render delay
+ This add support for render delay in the decoder helper.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1881>
+
+2021-01-27 15:55:43 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2decoder.c:
+ v4l2codecs: Coding style fix
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1881>
+
+2021-01-27 15:53:49 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ * sys/v4l2codecs/gstv4l2codecvp8dec.c:
+ * sys/v4l2codecs/gstv4l2decoder.c:
+ * sys/v4l2codecs/gstv4l2decoder.h:
+ v4l2codecs: Poll inside set_done()
+ This removes the need for the gst_v4l2_decoder_is_done() helper and
+ simplify slightly the subclass code.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1881>
+
+2020-12-18 16:36:16 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ * sys/v4l2codecs/gstv4l2codecvp8dec.c:
+ * sys/v4l2codecs/gstv4l2decoder.c:
+ * sys/v4l2codecs/gstv4l2decoder.h:
+ v4l2codecs: Make request structure ref-counted
+ This adds a non-thread safe refcount to the GstV4l2Request. This will
+ allow holding on more then one request in order to implement render
+ delay. This is made non-thread safe for speed as we know this will all
+ happen on the same streaming thread.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1881>
+
+2020-12-14 17:07:01 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ * sys/v4l2codecs/gstv4l2codecvp8dec.c:
+ * sys/v4l2codecs/gstv4l2decoder.c:
+ * sys/v4l2codecs/gstv4l2decoder.h:
+ v4l2codecs: Rework handling of queues and pending requests
+ Starting from this patch, all queue and dequeue operation happening
+ on V4L2 is now abstracted with the request. Buffers are dequeued
+ automatically when pending requests are marked done and only 1 in-flight
+ request is now used.
+ Along with fixing issues with request not being reused with slice
+ decoders, this change reduces the memory footprint by allocating only
+ two bitstream buffers.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1881>
+
+2021-01-29 02:09:05 -0500 Staz M <staz@staz.io>
+
+ * sys/decklink/gstdecklink.cpp:
+ decklink: Fixed decklinkvideosink auto format detection
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1994>
+
+2021-01-28 04:03:37 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/nvcodec/gstnvh264dec.c:
+ nvh264sldec: Add support for output-delay to improve throughput performance
+ NVDEC API support delaying getting decoded output, and recommended
+ delay by API document is 4 frames. In case that throughput is
+ more critical factor than latency, we can prefer delayed output
+ as recommended by NVIDIA.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1925>
+
+2020-12-29 19:54:35 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264decoder.h:
+ codecs: h264decoder: Add support for output delay
+ Some decoding APIs support delayed output or a command for decoding
+ a frame doesn't need to be sequential to corresponding command for
+ getting decoded frame. For instance, subclass might be able to
+ request decoding for multiple frames and then get for one (oldest)
+ decoded frame or so.
+ If aforementioned case is supported by specific decoding API,
+ delayed output might show better throughput performance.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1925>
+
+2021-01-27 17:09:07 -0500 Arun Raghavan <arun@asymptotic.io>
+
+ * ext/ldac/gstldacenc.h:
+ * ext/ldac/meson.build:
+ ldac: Use pkg-config instead of raw lib/header search
+ The ldacBT library includes pkg-config files for the standard and ABR
+ libraries, so let's just use that instead of doing a header/library
+ search.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1990>
+
+2021-01-28 02:02:28 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videosink.c:
+ d3d11videosink: Don't limit max buffers of buffer pool
+ In some case, especially reverse playback, we would need more than
+ two buffers.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1989>
+
+2021-01-27 04:34:13 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11device.c:
+ * sys/d3d11/gstd3d11shader.c:
+ d3d11: Suppress some warning debug messages
+ * Don't warn for live object, since ID3D11Debug itself seems to be
+ holding refcount of ID3D11Device at the moment we called
+ ID3D11Debug::ReportLiveDeviceObjects(). It would report live object
+ always
+ * Device might not be able to support some formats (e.g., P010)
+ especially in case of WARP device. We don't need to warn about that.
+ * gst_d3d11_device_new() can be used for device enumeration. Don't warn
+ even if we cannot create D3D11 device with given adapter index therefore.
+ * Don't warn for HLSL compiler warning. It's just noise and
+ should not be critical thing at all
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1986>
+
+2020-12-11 05:23:20 +0900 Seungha Yang <seungha@centricular.com>
+
+ * tests/examples/d3d11videosink/d3d11device.cpp:
+ * tests/examples/d3d11videosink/d3d11device.h:
+ * tests/examples/d3d11videosink/d3d11videosink-shared-texture-d3d9ex.cpp:
+ * tests/examples/d3d11videosink/d3d11videosink-shared-texture.cpp:
+ * tests/examples/d3d11videosink/meson.build:
+ examples: Add d3d11videosink examples for shared-texture use cases
+ Add two examples to demonstrate "draw-on-shared-texture" use cases.
+ d3d11videosink will draw application's own texture without copy
+ by using:
+ - Enable "draw-on-shared-texture" property
+ - make use of "begin-draw" and "draw" signals
+ And then, application will render the shared application's texture
+ to swapchain's backbuffer by using
+ 1) Direct3D11 APIs
+ 2) Or, Direct3D9Ex + interop APIs
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1873>
+
+2020-12-23 23:49:12 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videosink.c:
+ * sys/d3d11/gstd3d11videosink.h:
+ * sys/d3d11/gstd3d11videosinkbin.c:
+ * sys/d3d11/gstd3d11videosinkbin.h:
+ * sys/d3d11/gstd3d11window.cpp:
+ * sys/d3d11/gstd3d11window.h:
+ * sys/d3d11/gstd3d11window_dummy.cpp:
+ * sys/d3d11/gstd3d11window_dummy.h:
+ * sys/d3d11/meson.build:
+ d3d11videosink: Add support for drawing on application's own texture
+ Add a way to support drawing on application's texture instead of
+ usual window handle.
+ To make use of this new feature, application should follow below step.
+ 1) Enable this feature by using "draw-on-shared-texture" property
+ 2) Watch "begin-draw" signal
+ 3) On "begin-draw" signal handler, application can request drawing
+ by using "draw" signal action. Note that "draw" signal action
+ should be happen before "begin-draw" signal handler is returned
+ NOTE 1) For texture sharing, creating a texture with
+ D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX flag is strongly recommend
+ if possible because we cannot ensure sync a texture
+ which was created with D3D11_RESOURCE_MISC_SHARED
+ and it would cause glitch with ID3D11VideoProcessor use case.
+ NOTE 2) Direct9Ex doesn't support texture sharing which was
+ created with D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX. In other words,
+ D3D11_RESOURCE_MISC_SHARED is the only option for Direct3D11/Direct9Ex interop.
+ NOTE 3) Because of missing synchronization around ID3D11VideoProcessor,
+ If shared texture was created with D3D11_RESOURCE_MISC_SHARED,
+ d3d11videosink might use fallback texture to convert DXVA texture
+ to normal Direct3D texture. Then converted texture will be
+ copied to user-provided shared texture.
+ * Why not use generic appsink approach?
+ In order for application to be able to store video data
+ which was produced by GStreamer in application's own texture,
+ there would be two possible approaches,
+ one is copying our texture into application's own texture,
+ and the other is drawing on application's own texture directly.
+ The former (appsink way) cannot be a zero-copy by nature.
+ In order to support zero-copy processing, we need to draw on
+ application's own texture directly.
+ For example, assume that application wants RGBA texture.
+ Then we can imagine following case.
+ "d3d11h264dec ! d3d11convert ! video/x-raw(memory:D3D11Memory),format=RGBA ! appsink"
+ ^
+ |_ allocate new Direct3D texture for RGBA format
+ In above case, d3d11convert will allocate new texture(s) for RGBA format
+ and then application will copy again the our RGBA texutre into
+ application's own texture. One texture allocation plus per frame GPU copy will hanppen
+ in that case therefore.
+ Moreover, in order for application to be able to access
+ our texture, we need to allocate texture with additional flags for
+ application's Direct3D11 device to be able to read texture data.
+ That would be another implementation burden on our side
+ But with this MR, we can configure pipeline in this way
+ "d3d11h264dec ! d3d11videosink".
+ In that way, we can save at least one texture allocation and
+ per frame texutre copy since d3d11videosink will convert incoming texture
+ into application's texture format directly without copy.
+ * What if we expose texture without conversion and application does
+ conversion by itself?
+ As mentioned above, for application to be able to access our texture
+ from application's Direct3D11 device, we need to allocate texture
+ in a special form. But in some case, that might not be possible.
+ Also, if a texture belongs to decoder DPB, exposing such texture
+ to application is unsafe and usual Direct3D11 shader cannot handle
+ such texture. To convert format, ID3D11VideoProcessor API needs to
+ be used but that would be a implementation burden for application.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1873>
+
+2021-01-20 20:04:20 +0800 Haihua Hu <jared.hu@nxp.com>
+
+ * ext/dash/gstmpdhelper.c:
+ dashsink: add h265 codec support
+ Return hvc1 for video/x-h265 mime type in mpd helper function
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1966>
+
+2021-01-23 23:25:30 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst/videoparsers/gstav1parse.c:
+ av1parse: set the default alignment for input and output.
+ 1. Set the default output alignment to frame, rather than current
+ alignment of obu. This make it the same behaviour as h264/h265
+ parse, which default align to AU.
+ 2. Set the default input alignment to byte. It can handle the "not
+ enough data" error while the OBU alignment can not. Also make it
+ conform to the comments.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1979>
+
+2021-01-23 19:26:59 +0800 He Junyan <junyan.he@intel.com>
+
+ * tests/check/elements/av1parse.c:
+ * tests/check/elements/av1parse.h:
+ test: Add more test cases for the av1parse obu aligned output.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1979>
+
+2021-01-23 19:21:21 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst/videoparsers/gstav1parse.c:
+ av1parse: Reset the annex_b when meet TU inside a buffer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1979>
+
+2021-01-23 19:05:57 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst/videoparsers/gstav1parse.c:
+ av1parse: Output each OBU when output is aligned to obu.
+ The current behaviour for obu aligned output is not very precise.
+ Several OBUs will be output together within one gst buffer. We
+ should output each gst buffer just containing one OBU. This is
+ the same way as the h264/h265 parse do when NAL aligned.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1979>
+
+2021-01-23 17:38:12 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst/videoparsers/gstav1parse.c:
+ av1parse: Always copy the OBU to cache.
+ The current optimization when input align and out out align are
+ the same is not very correct. We simply copy the data from input
+ buffer to output buffer, but we failed to consider the dropping of
+ OBUs. When we need to drop some OBUs(such as filter out the OBUs
+ of some temporal ID), we can not do simple copy. So we need to
+ always copy the input OBUs into a cache.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1979>
+
+2021-01-23 17:26:25 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst/videoparsers/gstav1parse.c:
+ av1parse: Improve the logic when to drop the OBU.
+ When drop some OBU, we need to go on. The current manner will make
+ the data access out range of the buffer mapping.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1979>
+
+2021-01-26 11:12:28 +0100 Marijn Suijten <marijns95@gmail.com>
+
+ * ext/ldac/gstldacenc.c:
+ ext/ldac: Move duplicate sampling rates into #define
+ Because there was a typo in one of the duplicates already (see previous
+ commit) it is much safer to specify these once and only once.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1985>
+
+2021-01-26 11:02:21 +0100 Marijn Suijten <marijns95@gmail.com>
+
+ * ext/ldac/gstldacenc.c:
+ ext/ldac: Fix typo in 88200(0) stereo encoder sampling rate
+ Fixes: a57681455 ("ext: Add LDAC encoder")
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1985>
+
+2021-01-11 01:06:24 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.c:
+ * sys/d3d11/gstd3d11decoder.h:
+ * sys/d3d11/gstd3d11mpeg2dec.c:
+ * sys/d3d11/gstd3d11mpeg2dec.h:
+ * sys/d3d11/meson.build:
+ * sys/d3d11/plugin.c:
+ d3d11: Add support for MPEG-2 video decoding
+ Add DXVA/Direct3D11 API based MPEG-2 decoder element
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1969>
+
+2020-11-27 16:18:29 +1100 Matthew Waters <matthew@centricular.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ wpesrc: fix possible small deadlock on shutdown
+ Problem is that unreffing the EGLImage/SHM Buffer while holding the
+ images_mutex lock may deadlock when a new buffer is advertised and
+ an attempt is made to lock the images_mutex there.
+ The advertisement of the new image/buffer is performed in the
+ WPEContextThread and the blocking dispatch when unreffing wants to run
+ something on the WPEContextThread however images_mutex has already been
+ locked by the destructor.
+ Delay unreffing images/buffers outside of images_mutex and instead just
+ clear the relevant fields within the lock.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1843>
+
+2021-01-20 18:16:17 +0800 Haihua Hu <jared.hu@nxp.com>
+
+ * ext/dash/gstmpdhelper.c:
+ dashsink: fix double unref of sinkpad caps
+ no need to unref caps in gst_mpd_helper_get_XXX_codec_from_mime
+ it will be unref in caller gst_dash_sink_get_stream_metadata()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1981>
+
+2021-01-22 16:56:24 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ codecparsers: av1: Fix a typo in frame_restoration_type setting.
+ Fixes: #1500
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1974>
+
+2021-01-22 14:01:01 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst/videoparsers/gstav1parse.c:
+ av1parse: Fix some issues in the src caps.
+ 1. Add the mono_chrome to identify 4:0:0 chroma-format.
+ 2. Correct the mapping between subsampling_x/y and chroma-format.
+ There is no 4:4:0 format definition in AV1. And 4:4:4 should
+ let both subsampling_x/y be equal to 0.
+ 3. Send the chroma-format when the color space is not RGB.
+ Fixes: #1502
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1974>
+
+2021-01-22 13:25:50 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst/videoparsers/gstvp9parse.c:
+ vp9parse: Fix the subsampling_x/y to chroma format mapping.
+ The chroma format 4:4:4 needs both subsampling_x and subsampling_y
+ equal to 0.
+ Fixes: #1502
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1974>
+
+2021-01-22 21:10:59 +1100 Matthew Waters <matthew@centricular.com>
+
+ * gst-libs/gst/vulkan/gstvkutils.c:
+ vulkan: remove duplicated check
+ Checking the same value twice is pointless
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1504
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1977>
+
+2021-01-22 19:26:18 +1100 Matthew Waters <matthew@centricular.com>
+
+ * ext/ldac/meson.build:
+ ldac: also look for the ldac/ldacBT.h header.
+ Otherwise there will be a scenario where the library can be found but
+ not the header and a compilation build error will result
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1975>
+
+2021-01-22 09:35:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ va: filter: fix assignation to proper variable
+ Fix the result of a wrong copy&paste
+ Fixes: #1501
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1976>
+
+2021-01-21 04:41:44 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfvideoenc.cpp:
+ mfvideoenc: Add support for P010 d3d11 texture
+ Add P010 Direct3D11 texture format support
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1970>
+
+2021-01-20 02:29:43 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconvert.c:
+ * sys/d3d11/gstd3d11compositor.c:
+ * sys/d3d11/gstd3d11compositorbin.c:
+ * sys/d3d11/gstd3d11desktopdupsrc.c:
+ * sys/d3d11/gstd3d11download.c:
+ * sys/d3d11/gstd3d11pluginutils.c:
+ * sys/d3d11/gstd3d11pluginutils.h:
+ * sys/d3d11/gstd3d11upload.c:
+ * sys/d3d11/gstd3d11videosink.c:
+ * sys/d3d11/gstd3d11videosinkbin.c:
+ * sys/d3d11/plugin.c:
+ d3d11: Don't use hardcoded maximum resolution value
+ Maximum supported texture dimension is pre-defined based on
+ feature level and it couldn't be INT_MAX in any case.
+ See also https://docs.microsoft.com/en-us/windows/win32/direct3d11/overviews-direct3d-11-devices-downlevel-intro
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1964>
+
+2021-01-16 19:14:06 +0800 He Junyan <junyan.he@intel.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ doc: Add the av1 parse element.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1614>
+
+2021-01-16 16:48:38 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ codecparsers: Exclude the size of obu_size when identify OBU.
+ obu->obu_size does not contain the bytes of obu_size itself, we need
+ to exclude it when doing the saint check.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1614>
+
+2021-01-06 23:33:24 +0800 He Junyan <junyan.he@intel.com>
+
+ * tests/check/elements/av1parse.c:
+ * tests/check/elements/av1parse.h:
+ * tests/check/meson.build:
+ test: Add test cases for av1parse element.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1614>
+
+2020-09-22 14:54:19 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst/videoparsers/gstav1parse.c:
+ * gst/videoparsers/gstav1parse.h:
+ * gst/videoparsers/meson.build:
+ * gst/videoparsers/plugin.c:
+ videoparsers: av1: Add the AV1 parse.
+ This AV1 parse implements the conversion between alignment of obu,
+ tu and frame, and the conversion between stream-format of obu-stream
+ and annexb.
+ TODO:
+ 1. May need a property of operating_point to filter the OBUs
+ 2. May add a property to disable deep parse.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1614>
+
+2021-01-20 00:57:05 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gstmpeg2decoder.h:
+ codecs: mpeg2decoder: Fix a typo in header file's comment.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1963>
+
+2021-01-18 20:30:44 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11window_win32.cpp:
+ d3d11videosink: Fix ugly thread name for Win32 window impl.
+ Don't need to put Win32 twice
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1962>
+
+2021-01-18 20:28:14 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11window_corewindow.cpp:
+ * sys/d3d11/gstd3d11window_swapchainpanel.cpp:
+ d3d11videosink: Fix MSVC build warnings around UWP code
+ gstd3d11window_corewindow.cpp(408): warning C4189:
+ 'storage': local variable is initialized but not referenced
+ gstd3d11window_corewindow.cpp(490): warning C4189:
+ 'self': local variable is initialized but not referenced
+ gstd3d11window_swapchainpanel.cpp(481): warning C4189:
+ 'self': local variable is initialized but not referenced
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1962>
+
+2021-01-18 19:17:14 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/gstd3d11config.h.meson:
+ * gst-libs/gst/d3d11/meson.build:
+ * sys/d3d11/gstd3d11videosink.c:
+ * sys/d3d11/gstd3d11window.cpp:
+ * sys/d3d11/meson.build:
+ d3d11: Allow building UWP features with Desktop features if possible
+ WINAPI_PARTITION_DESKTOP and WINAPI_PARTITION_APP can coexist.
+ Although UWP only binaries should be used for production stage,
+ this change will be useful for development stage
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1962>
+
+2020-12-28 02:35:38 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.c:
+ d3d11decoder: Do more retry for ID3D11VideoContext::DecoderBeginFrame failure
+ Some GPUs (especially NVIDIA) are complaining that GPU is still busy
+ even we did 50 times of retry with 1ms sleep per failure.
+ Because DXVA/D3D11 doesn't provide API for "GPU-IS-READY-TO-DECODE"
+ like signal, there seems to be still no better solution other than sleep.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1913>
+
+2021-01-18 19:23:30 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videosink.c:
+ d3d11videosink: Fix build error on UWP
+ gstd3d11videosink.c(662): error C2065: 'sink': undeclared identifier
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1961>
+
+2021-01-17 01:16:17 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvabasedec.c:
+ * sys/va/gstvautils.c:
+ va: Fix some gst_object_unref error because the pointer is NULL.
+ !1957 introduces some error of gst_object_unref for NULL pointer.
+ Fixes all of them.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1959>
+
+2021-01-15 16:05:06 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvadecoder.c:
+ va: Make the caps pointer operation atomic in vadecoder.
+ The vadecoder's srcpad_caps and sinkpad_caps pointers are outside of the
+ mutex protection. Just make all operation for them atomic.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1957>
+
+2021-01-15 15:22:07 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvabasedec.c:
+ * sys/va/gstvautils.c:
+ va: Fix a latent race condition in vabasedec.
+ The vabasedec's display and decoder are created/destroyed between
+ the gst_va_base_dec_open/close pair. All the data and event handling
+ functions are between this pair and so the accessing to these pointers
+ are safe. But the query function can be called anytime. So we need to:
+ 1. Make these pointers operation in open/close and query atomic.
+ 2. Hold an extra ref during query function to avoid it destroyed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1957>
+
+2021-01-14 14:37:32 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * sys/decklink/gstdecklinkaudiosrc.cpp:
+ decklinkaudiosrc: Allow disabling audio sample alignment code by setting the alignment-threshold to 0
+ And handle setting it to GST_CLOCK_TIME_NONE as always aligning without
+ ever detecting a discont.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1956>
+
+2020-12-21 05:11:03 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfh264enc.cpp:
+ * sys/mediafoundation/gstmfh264enc.h:
+ * sys/mediafoundation/gstmfh265enc.cpp:
+ * sys/mediafoundation/gstmfh265enc.h:
+ * sys/mediafoundation/gstmftransform.cpp:
+ * sys/mediafoundation/gstmftransform.h:
+ * sys/mediafoundation/gstmfvideoenc.cpp:
+ * sys/mediafoundation/gstmfvideoenc.h:
+ * sys/mediafoundation/gstmfvp9enc.cpp:
+ * sys/mediafoundation/gstmfvp9enc.h:
+ * sys/mediafoundation/meson.build:
+ * sys/mediafoundation/plugin.c:
+ mfvideoenc: Add support for Direct3D11 texture
+ Initial support for d3d11 texture so that encoder can copy
+ upstream d3d11 texture into encoder's own texture pool without
+ downloading memory.
+ This implementation requires MFTEnum2() API for creating
+ MFT (Media Foundation Transform) object for specific GPU but
+ the API is Windows 10 desktop only. So UWP is not target
+ of this change.
+ See also https://docs.microsoft.com/en-us/windows/win32/api/mfapi/nf-mfapi-mftenum2
+ Note that, for MF plugin to be able to support old OS versions
+ without breakage, this commit will load MFTEnum2() symbol
+ by using g_module_open()
+ Summary of required system environment:
+ - Needs Windows 10 (probably at least RS 1 update)
+ - GPU should support ExtendedNV12SharedTextureSupported feature
+ - Desktop application only (UWP is not supported yet)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1903>
+
+2021-01-12 19:12:42 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * ext/webrtc/webrtctransceiver.c:
+ * gst-libs/gst/webrtc/rtpreceiver.c:
+ * gst-libs/gst/webrtc/rtpsender.c:
+ webrtc: expose transport property on sender and receiver
+ As advised by !1366#note_629558 , the nice transport should be
+ accessed through:
+ > transceiver->sender/receiver->transport/rtcp_transport->icetransport
+ All the objects on the path can be accessed through properties
+ except sender/receiver->transport. This patch addresses that.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1952>
+
+2020-12-21 02:47:45 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/d3d11/d3d11-prelude.h:
+ * gst-libs/gst/d3d11/gstd3d11.h:
+ * gst-libs/gst/d3d11/gstd3d11_fwd.h:
+ * gst-libs/gst/d3d11/gstd3d11_private.h:
+ * gst-libs/gst/d3d11/gstd3d11bufferpool.c:
+ * gst-libs/gst/d3d11/gstd3d11bufferpool.h:
+ * gst-libs/gst/d3d11/gstd3d11config.h.meson:
+ * gst-libs/gst/d3d11/gstd3d11device.c:
+ * gst-libs/gst/d3d11/gstd3d11device.h:
+ * gst-libs/gst/d3d11/gstd3d11format.c:
+ * gst-libs/gst/d3d11/gstd3d11format.h:
+ * gst-libs/gst/d3d11/gstd3d11memory.c:
+ * gst-libs/gst/d3d11/gstd3d11memory.h:
+ * gst-libs/gst/d3d11/gstd3d11utils.c:
+ * gst-libs/gst/d3d11/gstd3d11utils.h:
+ * gst-libs/gst/d3d11/meson.build:
+ * gst-libs/gst/meson.build:
+ * sys/d3d11/gstd3d11basefilter.c:
+ * sys/d3d11/gstd3d11basefilter.h:
+ * sys/d3d11/gstd3d11colorconvert.c:
+ * sys/d3d11/gstd3d11colorconverter.c:
+ * sys/d3d11/gstd3d11colorconverter.h:
+ * sys/d3d11/gstd3d11compositor.c:
+ * sys/d3d11/gstd3d11compositor.h:
+ * sys/d3d11/gstd3d11compositorbin.c:
+ * sys/d3d11/gstd3d11compositorbin.h:
+ * sys/d3d11/gstd3d11decoder.c:
+ * sys/d3d11/gstd3d11decoder.h:
+ * sys/d3d11/gstd3d11desktopdup.cpp:
+ * sys/d3d11/gstd3d11desktopdup.h:
+ * sys/d3d11/gstd3d11desktopdupsrc.c:
+ * sys/d3d11/gstd3d11desktopdupsrc.h:
+ * sys/d3d11/gstd3d11download.c:
+ * sys/d3d11/gstd3d11h264dec.c:
+ * sys/d3d11/gstd3d11h265dec.c:
+ * sys/d3d11/gstd3d11overlaycompositor.c:
+ * sys/d3d11/gstd3d11overlaycompositor.h:
+ * sys/d3d11/gstd3d11pluginutils.c:
+ * sys/d3d11/gstd3d11pluginutils.h:
+ * sys/d3d11/gstd3d11shader.c:
+ * sys/d3d11/gstd3d11shader.h:
+ * sys/d3d11/gstd3d11upload.c:
+ * sys/d3d11/gstd3d11utils.c:
+ * sys/d3d11/gstd3d11videoprocessor.c:
+ * sys/d3d11/gstd3d11videoprocessor.h:
+ * sys/d3d11/gstd3d11videosink.c:
+ * sys/d3d11/gstd3d11videosink.h:
+ * sys/d3d11/gstd3d11videosinkbin.c:
+ * sys/d3d11/gstd3d11vp8dec.c:
+ * sys/d3d11/gstd3d11vp9dec.c:
+ * sys/d3d11/gstd3d11window.cpp:
+ * sys/d3d11/gstd3d11window.h:
+ * sys/d3d11/gstd3d11window_corewindow.cpp:
+ * sys/d3d11/gstd3d11window_corewindow.h:
+ * sys/d3d11/gstd3d11window_swapchainpanel.cpp:
+ * sys/d3d11/gstd3d11window_swapchainpanel.h:
+ * sys/d3d11/gstd3d11window_win32.cpp:
+ * sys/d3d11/gstd3d11window_win32.h:
+ * sys/d3d11/meson.build:
+ * sys/d3d11/plugin.c:
+ d3d11: Move core methods to gst-libs
+ Move d3d11 device, memory, buffer pool and minimal method
+ to gst-libs so that other plugins can access d3d11 resource.
+ Since Direct3D is primary graphics API on Windows, we need
+ this infrastructure for various plugins can share GPU resource
+ without downloading GPU memory.
+ Note that this implementation is public only for -bad scope
+ for now.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/464>
+
+2021-01-12 00:13:22 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: Fix deadlock caused by double lock
+ Trivial bug fix for deadlock
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1949>
+
+2021-01-04 19:34:40 +1100 Matthew Waters <matthew@centricular.com>
+
+ * ext/wpe/gstwpesrc.cpp:
+ wpesrc: replace object lock usage with a new lock
+ Using the object lock is problematic for anything that can dispatch to
+ another thread which is what createWPEView() does inside
+ gst_wpe_src_start(). Using the object lock there can cause a deadlock.
+ One example of such a deadlock is when createWPEView is called, but
+ another (or the same) wpesrc is on the WPEContextThread and e.g. posts a
+ bus message. This message propagations takes and releases the object
+ lock of numerous elements in quick succession for determining various
+ information about the elements in the bin. If the object lock is
+ already held, then the message propagation will block and stall bin
+ processing (state changes, other messages) and wpe servicing any events.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1490
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1934>
+
+2021-01-10 23:16:55 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264picture.c:
+ codecs: h264picture: Count only complete complementary field pair for dpb fullness decision
+ Our DPB implementation was designed as such that allowing
+ temporary DPB overflow in the middle of field picture decoding
+ and incomplete field pair should not trigger DPB bumping.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1947>
+
+2021-01-10 23:11:01 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264decoder: Add support for field-pair input frame
+ In case that upstream pushed buffer as a frame unit, not picture
+ unit for interlaced stream, baseclass should be able to detect
+ AU boundary (i.e., complementary field pair).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1947>
+
+2021-01-10 22:01:27 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264decoder: Remove unused private variables
+ ... and reset() method to clear internal status at one place
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1947>
+
+2020-12-22 02:29:03 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: try harder not to pick duplicate media ids
+ On renegotiation, or when the user has specified a mid for
+ a transceiver, we need to avoid picking a duplicate mid for
+ a transceiver that doesn't yet have one.
+ Also assign the mid we created to the transceiver, that doesn't
+ fix a specific bug but seems to make sense to me.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1902>
+
+2021-01-07 23:47:35 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/va/meson.build:
+ * tests/examples/va/meson.build:
+ meson: va: Skip configuration on non-linux environment
+ VA plugin is linux-only plugin, so we can skip it earlier.
+ Note that this plugin is making use of libdrm meson fallback,
+ which is unusable on the other platforms such as Windows
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1946>
+
+2021-01-07 12:41:16 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkenc.c:
+ msdkenc: the unit for max-frame-size is kbyte
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1944>
+
+2021-01-07 09:21:47 +0100 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * ext/srt/gstsrtobject.c:
+ srt: Define options added in later revisions
+ Allows compiling the plugin against old headers.
+ For SRTO_BINDTODEVICE there's nothing we can do, since the value depends on
+ configuration options of the library. Nice.
+ Fixes build with libsrt < 1.4.2
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1945>
+
+2020-10-16 19:30:59 +0200 Jakub Adam <jakub.adam@collabora.com>
+
+ * ext/srt/gstsrtobject.c:
+ srtobject: distinguish authentication error messages
+ Use GST_RESOURCE_ERROR_NOT_AUTHORIZED code in posted error messages
+ related to SRT authentication (e.g. incorrect or missing password) so
+ that the application can recognize them more easily.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1943>
+
+2020-10-16 19:27:37 +0200 Jakub Adam <jakub.adam@collabora.com>
+
+ * ext/srt/gstsrtobject.c:
+ srtobject: detect socket errors from srt_epoll_wait()
+ On an error event, epoll wait puts the failed socket in both readfds and
+ writefds. We can take advantage of this and avoid explicitly checking
+ socket state before every read or write attempt.
+ In addition, srt_getrejectreason() will give us more detailed
+ description of the connection failure.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1943>
+
+2020-12-30 13:51:21 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/gstwebrtcice.c:
+ * ext/webrtc/transportsendbin.c:
+ * ext/webrtc/transportsendbin.h:
+ * ext/webrtc/transportstream.c:
+ * ext/webrtc/transportstream.h:
+ * ext/webrtc/webrtctransceiver.h:
+ webrtcbin: Remove remnant of non-rtcp-mux mode
+ There was some code left that wasn't used anymore.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1930>
+
+2020-11-24 22:25:15 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * ext/srt/gstsrtobject.c:
+ srtobject: make possible to specify more sockopts in SRT URI
+ Any socket option that can be passed to libsrt's srt-live-transmit
+ through SRT URI query string is now recognized.
+ Also make the code that applies options to SRT sockets more generic.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1842>
+
+2020-08-26 14:33:57 +0200 Jakub Adam <jakub.adam@collabora.com>
+
+ * ext/srt/gstsrtsrc.c:
+ srtsrc: fix typos
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1541>
+
+2020-08-25 13:44:42 +0200 Jakub Adam <jakub.adam@collabora.com>
+
+ * ext/srt/gstsrtsink.c:
+ srtsink: remove unused connection_mode variable
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1541>
+
+2020-11-23 16:12:39 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * ext/srt/gstsrtobject.c:
+ srtobject: obey "wait-for-connection" in caller mode
+ The pipeline now gets stuck in gst_srt_object_write_one() until the
+ receiver comes online, which may or may not be desired based on the use
+ case.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1836>
+
+2021-01-05 14:18:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvampeg2dec.c:
+ va: mpeg2dec: refactor the picture reference filling
+ Add the helper function _get_surface_id() which extracts the
+ VASurfaceID from the passed picture. This function gets the surface of
+ the next and previous reference picture.
+ Instead of if-statements, this refactor uses a switch-statement with a
+ fall-through, for P-type pictures, making the code a bit more readable.
+ Also it adds quirks for gallium driver, which cannot handle invalid
+ surfaces as forwarding nor backwarding references, so the function fails.
+ Also iHD cannot handle them, but to avoid failing, the current picture
+ is used as self-reference.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1939>
+
+2021-01-05 14:16:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvampeg2dec.c:
+ va: mpeg2dec: set first field either frame or has a first field
+ Add a helper function _is_frame_start() which check if picture has a
+ frame structure or if it has not an interlaced first field yet. This
+ function is used with filling is_first_field parameter.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1939>
+
+2021-01-06 16:38:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/codecs/gstmpeg2decoder.c:
+ codecs: mpeg2decoder: decode only if B and not closed gop
+ Mark as decode only if picture type is B, without previous picture in DBP and
+ closed_gop is 0 as might be understood in "6.3.8 Group of pictures header".
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1939>
+
+2021-01-06 12:48:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/codecs/gstmpeg2decoder.c:
+ codecs: mpeg2decoder: rename variables
+ Since prev_picture and next_picture are plain pointers, not pointer to pointers,
+ it's misleading to name them with _ptr suffix.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1939>
+
+2021-01-04 21:02:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvadisplay.c:
+ * sys/va/gstvadisplay.h:
+ va: display: parse and set driver implementation
+ This enum can be used for quirk handling. It's not a property because
+ the driver enum list might change, it's not static, thus avoiding the
+ update of GType declaration.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1938>
+
+2021-01-04 20:56:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvadisplay.c:
+ * sys/va/gstvadisplay.h:
+ va: display: add function precondition check
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1938>
+
+2020-08-25 19:12:13 +0200 Jakub Adam <jakub.adam@collabora.com>
+
+ * ext/srt/gstsrtobject.c:
+ srtobject: post a message on the bus when broken socket is detected
+ So that the application gets notified may react to it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1935>
+
+2020-12-30 23:29:47 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvampeg2dec.c:
+ va: mpeg2dec: Using the current picture's surface when missing reference.
+ When missing the reference frames, we should not just discard the current
+ frame. Some streams have group of picture header. It is an optional header
+ that can be used immediately before a coded I-frame to indicate to the decoder
+ if the first consecutive B-pictures immediately following the coded I-frame can
+ be reconstructed properly in the case of a random access.
+ In that case, the B frames may miss the previous reference and can still be
+ correctly decoded. We also notice that the second field of the I frame may
+ be set to P type, and it only ref its first field.
+ We should not skip all those frames, and even the frame really misses the
+ reference frame, some manner such as inserting grey picture should be used
+ to handle these cases.
+ The driver crashes when it needs to access the reference picture while we set
+ forward_reference_picture or backward_reference_picture to VA_INVALID_ID. We
+ now set it to current picture to avoid this. This is just a temp manner.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1929>
+
+2020-12-30 23:14:01 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gstmpeg2decoder.c:
+ codecs: mpeg2decoder: Creating the field based on its arriving time.
+ Spec says:
+ In a frame picture top_field_first being set to ‘1’ indicates that the
+ top field of the reconstructed frame is the first field output by the
+ decoding process. top_field_first being set to ‘0’ indicates that the
+ bottom field of the reconstructed frame is the first field output by
+ decoding process.
+ Here, the "output" should be interpreted just as the output order, not
+ including the decoding order. The field should be decoded as the order
+ they comes in the stream. Namely, no matter top_field_first is 0 or 1,
+ the first coming field is the first one to be decoded.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1929>
+
+2021-01-01 16:00:10 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvampeg2dec.c:
+ va: mpeg2dec: Apply buffer_flags to the output buffer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1929>
+
+2021-01-01 15:56:03 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gstmpeg2decoder.c:
+ * gst-libs/gst/codecs/gstmpeg2picture.h:
+ codecs: Add buffer_flags for mpeg2 picture.
+ We need to store the buffer flags such as GST_VIDEO_BUFFER_FLAG_INTERLACED
+ and GST_VIDEO_BUFFER_FLAG_TFF for interlaced video. Without these flags,
+ the VPP and display elements can not apply filter correctly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1929>
+
+2020-12-30 23:00:51 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gstmpeg2decoder.c:
+ codecs: Reset the quant matrices for each sequence in mpeg2 decoder.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1929>
+
+2020-10-27 11:52:09 +0530 Raghavendra <raghavendra.rao@collabora.com>
+
+ * ext/srt/gstsrtobject.c:
+ * ext/srt/gstsrtobject.h:
+ * ext/srt/gstsrtsink.c:
+ * ext/srt/gstsrtsink.h:
+ * ext/srt/gstsrtsrc.c:
+ * ext/srt/gstsrtsrc.h:
+ srt: Add authentication to srtsink and srtsrc elements
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1725>
+
+2020-12-30 22:52:01 +0800 Haihua Hu <jared.hu@nxp.com>
+
+ * ext/dash/gstdashsink.c:
+ * ext/dash/gstmpdrootnode.c:
+ dashsink: fix critical log when exit dynamic pipeline
+ availability-start-time and publish-time shared the same
+ GstDateTime object, this object will be unref twice and
+ cause reference count issue. Should use g_value_dup_boxed()
+ to copy this object.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1928>
+
+2020-12-23 16:11:42 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkh264enc.c:
+ * sys/msdk/gstmsdkh264enc.h:
+ * sys/msdk/gstmsdkh265enc.c:
+ * sys/msdk/gstmsdkh265enc.h:
+ msdkenc{h264,h265}: add min-qp and max-qp properties
+ The SDK allows user to set a QP range [1], so add min-qp and max-qp to
+ sepecify QP range. By default, there is no limitations on QP.
+ [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/1908>
+
+2020-12-23 13:36:02 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkh264enc.c:
+ * sys/msdk/gstmsdkh264enc.h:
+ * sys/msdk/gstmsdkh265enc.c:
+ * sys/msdk/gstmsdkh265enc.h:
+ msdkenc{h264,h265}: add p-pyramid property
+ The SDK can support P-Pyramid reference structure [1], so add a new
+ property to enable this feature in msdkenc{h264,h265}.
+ [1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#preftype
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1908>
+
+2020-12-22 16:17:18 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkh265enc.c:
+ * sys/msdk/gstmsdkh265enc.h:
+ msdkh265enc: add b-pyramid property
+ Like as msdkh264enc, b-pyramid is added to enable B-Pyramid reference
+ structure for H265 encoding
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1908>
+
+2020-12-22 14:54:59 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkh265enc.c:
+ * sys/msdk/gstmsdkh265enc.h:
+ * sys/msdk/msdk-enums.c:
+ * sys/msdk/msdk-enums.h:
+ msdkh265enc: add transform-skip property
+ Since the SDK API 1.26, TransformSkip was added to control
+ transform_skip_enabled_flag setting in PPS [1]
+ [1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#mfxextcodingoption3
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1908>
+
+2020-12-29 09:41:05 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkcontext.c:
+ msdk: needn't close mfx session when failed
+ Otherwise we will get double free issue because mfx session is closed in
+ finalize. See
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1867#note_739346
+ for the double free issue.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1916>
+
+2020-12-29 13:29:05 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcstats.c:
+ webrtcstats: PLI/FIR/NACK direction are the opposite of the media
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1924>
+
+2020-12-29 13:15:10 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/assrender/gstassrender.c:
+ assrender: Don't try unlocking unlocked mutex
+ When flushing right at the beginning of the video chain function or
+ when failing negotiation at the top of the function, the assrender mutex
+ would be unlocked without being previously locked.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1918>
+
+2020-12-27 22:16:13 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11compositor.c:
+ d3d11compositor: Add support for resolution change
+ Not only for position update (e.g., xpos, ypos),
+ we need to configure shader again per resolution change of each
+ input stream.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1912>
+
+2020-12-28 04:33:11 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11shader.c:
+ d3d11shader: Fix ID3DBlob object leak
+ Even if HLSL compiler was able to compile our shader code, D3DCompile()
+ might return ID3DBlob object for compile warnings and the object
+ should be released.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1914>
+
+2020-12-28 17:13:22 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gstmpeg2decoder.c:
+ codecs: Fix a typo in mpeg2 stateless decoder base class.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1915>
+
+2020-12-24 20:07:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvampeg2dec.c:
+ va: mpeg2dec: cosmetic changes
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1798>
+
+2020-12-27 15:47:13 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/codecs/gstmpeg2decoder.c:
+ * gst-libs/gst/codecs/gstmpeg2decoder.h:
+ * gst-libs/gst/codecs/gstmpeg2picture.c:
+ * gst-libs/gst/codecs/gstmpeg2picture.h:
+ codecs: mpeg2decoder: fix documentation
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1798>
+
+2020-12-24 16:20:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/codecs/gstmpeg2decoder.c:
+ codecs: mpeg2decoder: simplify macros
+ For constructors, instead of casting to pointers, cast to the structures.
+ For compare, use inlined functions.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1798>
+
+2020-12-18 22:28:41 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvabasedec.h:
+ * sys/va/gstvadecoder.c:
+ * sys/va/gstvampeg2dec.c:
+ * sys/va/gstvampeg2dec.h:
+ * sys/va/meson.build:
+ * sys/va/plugin.c:
+ va: Add mpeg2 VA decoder.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1798>
+
+2020-12-18 21:25:08 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gstmpeg2decoder.c:
+ * gst-libs/gst/codecs/gstmpeg2decoder.h:
+ * gst-libs/gst/codecs/gstmpeg2picture.c:
+ * gst-libs/gst/codecs/gstmpeg2picture.h:
+ * gst-libs/gst/codecs/meson.build:
+ codecs: Add mpeg2 stateless decoder base class.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1798>
+
+2020-12-27 03:16:28 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfh264enc.cpp:
+ * sys/mediafoundation/gstmfh265enc.cpp:
+ * sys/mediafoundation/gstmfvideoenc.cpp:
+ * sys/mediafoundation/gstmfvideoenc.h:
+ * sys/mediafoundation/gstmfvp9enc.cpp:
+ mfvideoenc: Re-define default GOP size value
+ The behavior for zero AVEncMPVGOPSize value would be
+ varying depending on GPU vendor implementation and some
+ GPU will produce keyframe only once at the beginning of encoding.
+ That's unlikely expected result for users.
+ To make this property behave consistently among various GPUs,
+ this commit will change default value of "gop-size" property to -1
+ which means "auto". When "gop-size" is unspecified, then
+ mfvideoenc will calculate GOP size based on framerate
+ like that of our x264enc implementation.
+ See also
+ https://docs.microsoft.com/en-us/windows/win32/directshow/avencmpvgopsize-property
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1911>
+
+2020-12-27 03:43:11 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfvideoenc.cpp:
+ mfvideoenc: Fix use of uninitialized value
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1911>
+
+2020-12-24 21:31:04 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11device.c:
+ * sys/d3d11/gstd3d11utils.c:
+ d3d11device: Add property for getting adapter LUID
+ LUID (Locally Unique Identifier) can used for identifying GPU
+ and that's required for some Windows APIs (e.g., MFTEnum2()) to setup device.
+ See also
+ https://docs.microsoft.com/en-us/windows/win32/api/mfapi/nf-mfapi-mftenum2
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1910>
+
+2020-12-26 20:39:07 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfh264enc.cpp:
+ * sys/mediafoundation/gstmfh265enc.cpp:
+ * sys/mediafoundation/gstmfvideoenc.cpp:
+ * sys/mediafoundation/gstmfvideoenc.h:
+ * sys/mediafoundation/gstmfvp9enc.cpp:
+ * sys/mediafoundation/plugin.c:
+ mfvideoenc: Remove duplicated class registration code
+ Each codec subclass has the same code for class/element registration,
+ so we can move the code into one helper methodm and that will make
+ future enhancement simple.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1909>
+
+2020-12-10 11:11:04 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkcontext.c:
+ * sys/msdk/msdk.c:
+ msdk: check GstMsdkContext instead of mfxSession instance
+ When creating a GstMsdkContext instance, it also creates a mfxSession
+ instance, so we may check GstMsdkContext instead of mfxSession instance
+ to make sure MSDK is available. In addition, according to MSDK doc [1],
+ MFXVideoCORE_SetHandle function should be executed before any actual
+ usage of library including queries, otherwise the behavior is
+ unexpected, so we should call MFXVideoCORE_QueryPlatform after
+ MFXVideoCORE_SetHandle on Linux
+ [1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#working-with-va-api-applications
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1867>
+
+2020-12-23 21:21:55 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11device.c:
+ * sys/d3d11/gstd3d11device.h:
+ * sys/d3d11/gstd3d11shader.c:
+ * sys/d3d11/plugin.c:
+ d3d11: Remove unnecessary helper methods
+ We can query selected D3D_FEATURE_LEVEL and factory version
+ by using native D3D11 API
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1906>
+
+2020-11-21 03:20:36 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11desktopdup.cpp:
+ * sys/d3d11/gstd3d11desktopdup.h:
+ * sys/d3d11/gstd3d11desktopdupsrc.c:
+ * sys/d3d11/gstd3d11desktopdupsrc.h:
+ * sys/d3d11/meson.build:
+ * sys/d3d11/plugin.c:
+ d3d11: Re-implement Desktop Duplication source
+ Add a new video source element "d3d11desktopdupsrc" for capturing desktop image
+ via Desktop Duplication based on Microsoft's Desktop Duplication sample available at
+ https://github.com/microsoft/Windows-classic-samples/tree/master/Samples/DXGIDesktopDuplication
+ This element is expected to be a replacement of existing dxgiscreencapsrc
+ element in winscreencap plugin.
+ Currently this element can support (but dxgiscreencapsrc cannot)
+ - Copying captured D3D11 texture to output buffer without download
+ - Support desktop session transition
+ e.g., can capture desktop without error even in case that
+ "Lock desktop" and "Permission dialog"
+ - Multiple d3d11desktopdupsrc elements can capture the same monitor
+ Not yet implemented features
+ - Cropping rect is not implemented, but that can be handled by downstream
+ - Mult-monitor is not supported. But that is also can be implemented by
+ downstream element for example via multiple d3d11desktopdup elements
+ with d3d11compositor
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1855>
+
+2020-12-22 00:47:09 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11device.c:
+ * sys/d3d11/gstd3d11device.h:
+ * sys/d3d11/gstd3d11utils.c:
+ * sys/d3d11/plugin.c:
+ d3d11device: Add an optional flags argument for creating device
+ Extend gst_d3d11_device_new() method so that caller can specify
+ D3D11_CREATE_DEVICE_FLAG value to use.
+ See https://docs.microsoft.com/en-us/windows/win32/api/d3d11/ne-d3d11-d3d11_create_device_flag
+ for more detail about D3D11_CREATE_DEVICE_FLAG
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1901>
+
+2020-12-21 14:06:53 +0530 Raju Babannavar <raju.babannavar@gmail.com>
+
+ * gst/dvbsuboverlay/dvb-sub.c:
+ dvbsuboverlay: Add support for dynamic resolution update.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1487
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1897>
+
+2020-12-21 02:56:55 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11device.h:
+ d3d11device: Remove dead code
+ We don't use this method since the commit of
+ 0788492461e1b559230cc5c3a354fe5f48f95f8b
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1892>
+
+2020-12-20 02:39:40 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconvert.c:
+ * sys/d3d11/gstd3d11compositor.c:
+ * sys/d3d11/gstd3d11decoder.c:
+ * sys/d3d11/gstd3d11download.c:
+ * sys/d3d11/gstd3d11h264dec.c:
+ * sys/d3d11/gstd3d11h265dec.c:
+ * sys/d3d11/gstd3d11memory.c:
+ * sys/d3d11/gstd3d11memory.h:
+ * sys/d3d11/gstd3d11upload.c:
+ * sys/d3d11/gstd3d11utils.c:
+ * sys/d3d11/gstd3d11utils.h:
+ * sys/d3d11/gstd3d11videoprocessor.c:
+ * sys/d3d11/gstd3d11videoprocessor.h:
+ * sys/d3d11/gstd3d11videosink.c:
+ * sys/d3d11/gstd3d11vp8dec.c:
+ * sys/d3d11/gstd3d11vp9dec.c:
+ * sys/d3d11/gstd3d11window.cpp:
+ d3d11: Privatize d3d11memory implementation
+ Hide most of symbols of GstD3D11Memory object.
+ GstD3D11Memory is one of primary resource for imcoming d3d11 library
+ and it's expected to be a extensible feature.
+ Hiding implementation detail would be helpful for later use case.
+ Summary of this commit:
+ * Now all native Direct3D11 resources are private of GstD3D11Memory.
+ To access native resources, getter methods need to be used
+ or generic map (e.g., gst_memory_map) API should be called
+ apart from some exceptional case such as d3d11decoder case.
+ * Various helper methods are added for GstBuffer related operations
+ and in order to remove duplicated code.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1892>
+
+2020-12-20 01:06:24 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11compositor.c:
+ * sys/d3d11/gstd3d11decoder.c:
+ * sys/d3d11/gstd3d11utils.c:
+ * sys/d3d11/gstd3d11utils.h:
+ * sys/d3d11/gstd3d11videosink.c:
+ d3d11: Add a helper method for d3d11buffferpool setup
+ Remove duplicated code for d3d11buffferpool setup.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1892>
+
+2020-12-19 00:40:53 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.c:
+ * sys/d3d11/gstd3d11device.c:
+ * sys/d3d11/gstd3d11device.h:
+ * sys/d3d11/gstd3d11memory.c:
+ * sys/d3d11/gstd3d11overlaycompositor.c:
+ * sys/d3d11/gstd3d11window_corewindow.cpp:
+ * sys/d3d11/gstd3d11window_swapchainpanel.cpp:
+ * sys/d3d11/gstd3d11window_win32.cpp:
+ d3d11device: Remove optional helper methods
+ Most of Direct3D11 APIs can be called without GstD3D11Device
+ abstraction. This is a part of prework for public GstD3D11 library
+ to introduce minimal APIs
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1892>
+
+2020-12-20 22:12:44 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videosink.c:
+ d3d11videosink: Prepare window once streaming started
+ ... instead of READY state. READY state is too early for setting
+ overlay window handle especially playbin/playsink scenario
+ since playsink will set given overlay handle on videosink once
+ READY state change of videosink is ensured.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1893>
+
+2020-08-19 03:19:26 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmftransform.cpp:
+ * sys/mediafoundation/gstmftransform.h:
+ * sys/mediafoundation/gstmfvideoenc.cpp:
+ * sys/mediafoundation/gstmfvideoenc.h:
+ mfvideoenc: Improve latency performance for hardware encoder
+ Unlike software MFT (Media Foundation Transform) which is synchronous
+ in terms of processing input and output data, hardware MFT works
+ in asynchronous mode. output data might not be available right after
+ we pushed one input data into MFT.
+ Note that async MFT will fire two events, one is "METransformNeedInput"
+ which happens when MFT can accept more input data,
+ and the other is "METransformHaveOutput", that's for signaling
+ there's pending data which can be outputted immediately.
+ To listen the events, we can wait synchronously via
+ IMFMediaEventGenerator::GetEvent() or make use of IMFAsyncCallback
+ object which is asynchronous way and the event will be notified
+ from Media Foundation's internal worker queue thread.
+ To handle such asynchronous operation, previous working flow was
+ as follows (IMFMediaEventGenerator::GetEvent() was used for now)
+ - Check if there is pending output data and push the data toward downstream.
+ - Pulling events (from streaming thread) until there's at least
+ one pending "METransformNeedInput" event
+ - Then, push one data into MFT from streaming thread
+ - Check if there is pending "METransformHaveOutput" again.
+ If there is, push new output data to downstream
+ (unlikely there is pending output data at this moment)
+ Above flow was processed from upstream streaming thread. That means
+ even if there's available output data, it could be outputted later
+ when the next buffer is pushed from upstream streaming thread.
+ It would introduce at least one frame latency in case of live stream.
+ To reduce such latency, this commit modifies the flow to be fully
+ asynchronous like hardware MFT was designed and to be able to
+ output encoded data whenever it's available. More specifically,
+ IMFAsyncCallback object will be used for handling
+ "METransformNeedInput" and "METransformHaveOutput" events from
+ Media Foundation's internal thread, and new output data will be
+ also outputted from the Media Foundation's thread.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1520>
+
+2020-12-16 18:32:25 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * sys/decklink/gstdecklinkaudiosrc.cpp:
+ decklinkaudiosrc: Fix duration of the first audio frame after each discont
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1886>
+
+2020-12-16 00:28:08 +0530 Biswapriyo Nath <nathbappai@gmail.com>
+
+ * sys/mediafoundation/gstmfdevice.h:
+ mediafoundation: Fix redefinition of variables.
+ Remove duplicate GstMFDevice and GstMFDeviceProvider declaration.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1884>
+
+2020-12-17 04:41:18 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/audiobuffersplit/gstaudiobuffersplit.c:
+ audiobuffersplit: Calculate the correct size for fixed size buffers
+ Fix the output-buffer-size property to do what it says by calculating
+ the correct audio buffer size for that target size, rounded down to
+ the nearest whole number of samples.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1887>
+
+2020-12-10 12:35:07 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * sys/decklink/gstdecklinkaudiosrc.cpp:
+ * sys/decklink/gstdecklinkvideosrc.cpp:
+ decklink: Implement GstBaseSrc::get_caps() to return more constrained caps
+ Instead of the template caps we can return a subset of them based on the
+ selected properties.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1868>
+
+2020-10-30 02:21:11 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi2/gstwasapi2client.cpp:
+ wasapi2: Ensure unmute when opening audio client
+ ISimpleAudioVolume::SetMute() status seems to be preserved even
+ after process is terminated. In order to start audio client with
+ unmuted state, always disable mute when opening audio client.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1731>
+
+2020-12-14 16:12:22 +0100 Edward Hervey <edward@centricular.com>
+
+ * gst/mpegtsdemux/mpegtsparse.c:
+ tsparse: Don't use non-object for debugging statement
+ Use the pad instead
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1880>
+
+2020-12-14 10:56:39 +0100 Edward Hervey <edward@centricular.com>
+
+ * tests/examples/mpegts/ts-parser.c:
+ examples/ts-parser: Use the section type for descriptor identification
+ Some descriptors can only be present in some section
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1880>
+
+2020-12-14 10:56:02 +0100 Edward Hervey <edward@centricular.com>
+
+ * tests/examples/mpegts/ts-parser.c:
+ examples/ts-parser: Try more descriptor/stream types
+ These were added recently
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1880>
+
+2020-12-09 09:14:12 +0100 Edward Hervey <edward@centricular.com>
+
+ * gst/mpegtsdemux/mpegtsbase.c:
+ * gst/mpegtsdemux/mpegtsbase.h:
+ mpegts: Don't add non-padded streams to collection on updates
+ When carrying over existing GstStream to a new GstStreamCollection we need to
+ check whether they *actually* were being used in the previous collection.
+ This avoids adding unknown streams (metadata, PSI, etc...) to the collection on
+ updates.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1880>
+
+2020-11-22 18:48:08 +0100 Edward Hervey <edward@centricular.com>
+
+ * gst-libs/gst/mpegts/gst-dvb-descriptor.h:
+ * gst-libs/gst/mpegts/gst-dvb-section.c:
+ * gst-libs/gst/mpegts/gst-dvb-section.h:
+ * gst-libs/gst/mpegts/gstmpegtssection.c:
+ * gst-libs/gst/mpegts/gstmpegtssection.h:
+ * tests/examples/mpegts/ts-parser.c:
+ mpegts: Add support for SIT sections
+ Selection Information Tables (EN 300 468)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1852>
+
+2020-12-14 10:50:02 +0100 Edward Hervey <edward@centricular.com>
+
+ * docs/libs/mpegts/index.md:
+ * gst-libs/gst/mpegts/gst-atsc-descriptor.h:
+ * gst-libs/gst/mpegts/gst-atsc-section.c:
+ * gst-libs/gst/mpegts/gst-atsc-section.h:
+ * gst-libs/gst/mpegts/gst-dvb-section.c:
+ * gst-libs/gst/mpegts/gst-dvb-section.h:
+ * gst-libs/gst/mpegts/gst-hdmv-section.h:
+ * gst-libs/gst/mpegts/gst-isdb-descriptor.h:
+ * gst-libs/gst/mpegts/gst-scte-section.c:
+ * gst-libs/gst/mpegts/gst-scte-section.h:
+ * gst-libs/gst/mpegts/gstmpegts-private.h:
+ * gst-libs/gst/mpegts/gstmpegtsdescriptor.c:
+ * gst-libs/gst/mpegts/gstmpegtsdescriptor.h:
+ * gst-libs/gst/mpegts/gstmpegtssection.c:
+ * gst-libs/gst/mpegts/gstmpegtssection.h:
+ * gst-libs/gst/mpegts/meson.build:
+ * gst-libs/gst/mpegts/mpegts.c:
+ * gst-libs/gst/mpegts/mpegts.h:
+ mpegts: Update documentation
+ * Split up into appropriate individual header files
+ * Document more sections and structures
+ * Add well-known list of registration id
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1879>
+
+2020-12-10 16:29:31 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst-libs/gst/player/gstplayer.c:
+ * gst-libs/gst/transcoder/gsttranscoder.c:
+ player/transcoder: Use bus signal watch
+ Instead of implementing exactly the same thing ourself but making
+ `GstBus` not know that it is the case.
+ Since we are *sure* that the bus can't have been access at the point
+ where we add the watch we are guaranteed that the current thread
+ maincontext is going to be used.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1870>
+
+2020-12-10 15:37:14 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
+
+ * gst/inter/gstintervideosrc.c:
+ intervideosrc: fix negotiation of interlaced caps
+ In 1.0 the field in caps is called "interlace-mode", not "interlaced".
+ Fixes #1480
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1869>
+
+2020-12-11 21:45:25 -0500 Arun Raghavan <arun@asymptotic.io>
+
+ * ext/openaptx/meson.build:
+ * meson_options.txt:
+ openaptx: Drop lib prefix from option name for consistency
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1876>
+
+2020-12-11 08:45:06 +0000 Igor Kovalenko <igor.v.kovalenko@gmail.com>
+
+ * ext/meson.build:
+ * ext/openaptx/gstopenaptxdec.c:
+ * ext/openaptx/gstopenaptxdec.h:
+ * ext/openaptx/gstopenaptxenc.c:
+ * ext/openaptx/gstopenaptxenc.h:
+ * ext/openaptx/meson.build:
+ * ext/openaptx/openaptx-plugin.c:
+ * ext/openaptx/openaptx-plugin.h:
+ * meson_options.txt:
+ openaptx: add aptX and aptX-HD codecs using libopenaptx
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1871>
+
+2020-10-19 14:56:43 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ * ext/wpe/gstwpesrc.cpp:
+ wpe: Emit load-progress messages
+ The estimated-load-progress value can be used on application side to display a
+ progress bar for instance.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1710>
+
+2020-12-08 16:46:42 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/mpegtsmux/gstbasetsmux.c:
+ basetsmux: Don't send the capsheader if src pad has no caps
+ That means we're shutting down, so there's no point in the streamheader
+ being sent
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1864>
+
+2020-12-04 17:02:00 +1100 Matthew Waters <matthew@centricular.com>
+
+ * gst/rtmp2/rtmp/rtmpclient.c:
+ * gst/rtmp2/rtmp/rtmpconnection.c:
+ * gst/rtmp2/rtmp/rtmpconnection.h:
+ rtmp2/connection: pass the parent cancellable down to the connection
+ Otherwise, when rtpm2src cancels an inflight operation that has a queued
+ message stored, then the rtmp connection operation is not stopped.
+ If the cancellation occurs during rtmp connection start up, then
+ rtpm2src does not have any way of accessing the connection object as it
+ has not been returned yet. As a result, rtpm2src will cancel, the
+ connection will still be processing things and the
+ GMainContext/GMainLoop associated with the outstanding operation will be
+ destroyed. All outstanding operations and the rtmpconnection object will
+ therefore be leaked in this case.
+ Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1425
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1862>
+
+2020-12-07 14:54:28 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * ext/srt/gstsrtobject.c:
+ srt: Don't take object lock calling gst_srt_object_get_stats
+ This function takes the sock lock. This can result in a deadlock when
+ another thread holding the sock lock is trying to take the object lock.
+ Thread A (Holds object lock, wants sock lock):
+ #2 gst_srt_object_get_stats at gst-plugins-bad/ext/srt/gstsrtobject.c:1753
+ #3 gst_srt_object_get_property_helper at gst-plugins-bad/ext/srt/gstsrtobject.c:409
+ #4 gst_srt_sink_get_property at gst-plugins-bad/ext/srt/gstsrtsink.c:95
+ #5 g_object_get_property from libgobject-2.0.so.0
+ Thread B (Holds sock lock, wants object lock):
+ #2 gst_element_post_message_default at gstreamer/gst/gstelement.c:2069
+ #3 gst_element_post_message at gstreamer/gst/gstelement.c:2123
+ #4 gst_element_message_full_with_details at gstreamer/gst/gstelement.c:2259
+ #5 gst_element_message_full at gstreamer/gst/gstelement.c:2298
+ #6 gst_srt_object_send_headers at gst-plugins-bad/ext/srt/gstsrtobject.c:1407
+ #7 gst_srt_object_send_headers at gst-plugins-bad/ext/srt/gstsrtobject.c:1444
+ #8 gst_srt_object_write_to_callers at gst-plugins-bad/ext/srt/gstsrtobject.c:1444
+ #9 gst_srt_object_write at gst-plugins-bad/ext/srt/gstsrtobject.c:1598
+ #10 gst_srt_sink_render at gst-plugins-bad/ext/srt/gstsrtsink.c:179
+ Fixes d2d00e07acc2b1ab1ae5a728ef5dc33c9dee7869.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1861>
+
+2020-11-25 16:24:25 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/closedcaption/gstccconverter.c:
+ * ext/closedcaption/gstccconverter.h:
+ ccconverter: Add property to specify which sections to include in CDP packets
+ Various software, including ffmpeg's Decklink support, fails parsing CDP
+ packets that contain anything but CC data in the CDP packets.
+ Based on this property, timecodes are not written into the CDP packets
+ even if they're present.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1833>
+
+2020-11-25 14:54:09 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/closedcaption/gstccconverter.c:
+ ccconverter: Refactor code to only retrieve the timecode meta once
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1833>
+
+2020-12-06 18:03:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvadecoder.h:
+ va: decode: fix display type
+ Instead of a pointer to GstVaDisplay it was used a VADisplay type, which in
+ certain platforms is the same, and the compiler didn't complain.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1860>
+
+2020-07-03 12:25:31 +0200 Marc Leeman <m.leeman@televic.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/rtp/gstrtpsrc.c:
+ * gst/rtp/gstrtpsrc.h:
+ rtpmanagerbad: allow setting caps on rtpsrc
+ rtpsrc tries to do a lookup of the caps based on the encoding-name. For
+ not so standard encodings, the caps can be set, avoiding the lookup.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1406>
+
+2020-11-22 04:39:57 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videosink.c:
+ * sys/d3d11/gstd3d11videosinkbin.c:
+ * sys/d3d11/gstd3d11window.cpp:
+ * sys/d3d11/gstd3d11window.h:
+ * sys/d3d11/meson.build:
+ d3d11videosink: Add a property to support rendering statistics data on window
+ Add a new property "render-stats" to allow rendering statistics
+ data on window for debugging and/or development purpose.
+ Text rendering will be accelerated by GPU since this implementation
+ uses Direct2D/DirectWrite API and Direct3D inter-op for minimal overhead.
+ Specifically, text data will be rendered on swapchain backbuffer
+ directly without any copy/allocation of extra texture.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1830>
+
+2020-12-04 03:40:17 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconvert.c:
+ * sys/d3d11/gstd3d11window.cpp:
+ d3d11: Protect ID3D11VideoContext with lock
+ Likewise d3d11 immediate context (i.e., ID3D11DeviceContext),
+ ID3D11VideoContext API is not thread safe. It must be protected therefore.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1856>
+
+2020-12-03 17:13:15 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/meson.build:
+ docs: don't exit the subdir when optional deps aren't found
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1854>
+
+2020-12-02 11:29:08 +0100 Edward Hervey <edward@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/opencv/gstretinex.cpp:
+ * ext/opencv/gstretinex.h:
+ opencv: Expose retinex parameters
+ Makes the plugin a tad more useful :)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1845>
+
+2020-10-12 14:12:07 +0300 Marius Vlad <marius.vlad@collabora.com>
+
+ * gst-libs/gst/wayland/meson.build:
+ gst-libs/gst/wayland: Install "unstable" wayland header
+ Context creation and retrieval is required, the symbols are exported
+ with the header missing. Users most likely define GST_USE_UNSTABLE_API
+ so they're aware of the implications of using a header that might change
+ between releases.
+ Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1688>
+
+2020-12-03 14:12:06 +0100 Edward Hervey <edward@centricular.com>
+
+ * ext/hls/gsthlsdemux.c:
+ hlsdemux: Use actual object for logging
+ i.e. the pad of the stream
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1853>
+
+2020-12-03 06:55:00 -0500 Arun Raghavan <arun@asymptotic.io>
+
+ * ext/curl/gstcurlbasesink.c:
+ * ext/curl/gstcurlfilesink.c:
+ * ext/curl/gstcurlftpsink.c:
+ * ext/curl/gstcurlhttpsink.c:
+ * ext/curl/gstcurlhttpsrc.c:
+ * ext/curl/gstcurlsmtpsink.c:
+ * ext/curl/gstcurlsshsink.c:
+ * ext/curl/gstcurltlssink.c:
+ curl: Remove incorrect GST_DEBUG_OBJECT() calls
+ klass is not a GstObject, and these debugs print should likely not be
+ around anyway.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1851>
+
+2020-11-25 17:59:54 +0100 Edward Hervey <edward@centricular.com>
+
+ * sys/nvcodec/gstcudanvrtc.c:
+ cuda: Fix lowest targetted architecture for CUDA >= 11.0
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1469
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1835>
+
+2020-11-05 13:48:27 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mpegtsdemux/mpegtspacketizer.c:
+ * gst/mpegtsdemux/mpegtspacketizer.h:
+ * gst/mpegtsdemux/mpegtsparse.c:
+ tsparse: Forward incoming timestamps
+ Ensure we properly forward the upstream PTS/DTS on the regular and program
+ source pads. All packets being processed will carry over the latest PTS/DTS (as
+ a reconstructed GstBuffer).
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1419
+ And properly forward PTS/DTS for program pads (which wasn't the case before)
+ Original patch by Vivia Nikolaidou <vivia@ahiru.eu>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1769>
+
+2020-12-02 09:39:45 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
+ adaptivedemux: Don't log with non-GObject objects
+ Instead of using the streams, log with the pad of the streams.
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1457
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1844>
+
+2020-11-20 11:29:46 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/transcode/gsttranscodebin.c:
+ * tools/gst-transcoder.c:
+ transcodebin: Minor error message enhancement
+
+2020-11-19 22:56:46 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/transcode/gsttranscodebin.c:
+ transcodebin: Unlock while setting decodebin caps
+ Otherwise it will deadlock recursing up to notify parent object property changes
+
+2020-11-19 18:31:34 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/transcode/gsttranscodebin.c:
+ transcodebin: Avoid plugin converter if filter handles ANY caps
+ For example identity or clocksync or this kind of elements can be
+ used with any data flow and we should not enforce decoding to row in
+ that case.
+
+2020-11-19 18:39:33 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/transcode/gsttranscodebin.c:
+ transcodebin: Add filter as soon as it is set
+ Instead of waiting so that we can simply use a clocksync element as
+ filter, otherwise we won't know the pipeline is live as it won't
+ return NO_PREROLL as one would expect in that case.
+ Adding it right away shouldn't create any issue, both ways are fine.
+
+2020-11-19 18:29:15 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/transcode/gsturitranscodebin.c:
+ uritranscodebin: Add `setup-source` and `element-setup` signals
+ The same way as playbinX does it as it is often quite useful
+
+2020-11-19 17:55:10 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/transcode/gsttranscodebin.c:
+ * gst/transcode/gsturitranscodebin.c:
+ transcode: Port to encodebin2
+ This allows supporting muxing sinks like hlssink2 or splitmux
+
+2020-11-19 17:55:10 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst-libs/gst/transcoder/gsttranscoder.c:
+ transcoder: Handle the case where several errors are posted
+ There were cases where the loop was already destroyed when we were
+ receiving the following message.
+
+2020-11-19 17:54:28 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst-libs/gst/transcoder/gsttranscoder.c:
+ transcoder: Minor refactoring to output better debug logs
+
+2020-11-19 17:51:56 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/hls/gsthlssink2.c:
+ hlssink2: Mark as Muxer
+ The way it is usable by encodebin2. This is what splitmux does already.
+
+2020-11-30 17:12:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvadecoder.c:
+ va: decoder: Picture dups only holds GstBuffer
+ Also removes the warning log message at destroying buffers when picture free()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1841>
+
+2020-11-30 15:01:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvadecoder.c:
+ * sys/va/gstvadecoder.h:
+ * sys/va/gstvah264dec.c:
+ * sys/va/gstvah265dec.c:
+ * sys/va/gstvavp8dec.c:
+ * sys/va/gstvavp9dec.c:
+ va: Remove gst_va_decoder_destroy_buffers()
+ Since GstVaDecodePicture is destroyed completely with its free() function and
+ it's used as destroy notify by codecs picture, there's no need to call
+ gst_va_decoder_destroy_buffers() externally, since the codecs base classes
+ destroy the codec picture when it's required.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1841>
+
+2020-11-26 14:04:31 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvadecoder.c:
+ * sys/va/gstvadecoder.h:
+ * sys/va/gstvah264dec.c:
+ * sys/va/gstvah265dec.c:
+ * sys/va/gstvavp8dec.c:
+ * sys/va/gstvavp9dec.c:
+ va: Destroy picture unreleased buffers when finalize.
+ The current way of GstVaDecodePicture's finalize will leak some
+ resource such as parameter buffers and slice data.
+ The current way deliberately leaves these resource releasing logic
+ to va decoder related function and trigger a warning if we free the
+ GstVaDecodePicture without releasing these resources.
+ But in practice, sometimes, you do not have the chance to release
+ these resource before picture is freed. For example, H264/Mpeg2
+ support multi slice NALs/Packets for one frame. It is possible that
+ we already succeed to parse and generate the first several slices
+ data by _decode_slice(), but then we get a wrong slice NAL/packet
+ and fail to parse it. We decide to discard the whole frame in the
+ decoder's base class, it just free the current picture and does not
+ trigger sub class's function again. In this kind of cases, we do
+ not have the chance to cleanup the resource, and the resource will
+ be leaked.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1841>
+
+2020-11-21 19:00:02 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/qroverlay/gstbaseqroverlay.c:
+ * ext/qroverlay/gstbaseqroverlay.h:
+ * ext/qroverlay/gstdebugqroverlay.c:
+ * ext/qroverlay/gstqroverlay.c:
+ qroverlay: Reuse the same OverlayComposition object when possible
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1829>
+
+2020-11-20 11:28:25 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/qroverlay/gstbaseqroverlay.c:
+ * ext/qroverlay/gstbaseqroverlay.h:
+ * ext/qroverlay/gstdebugqroverlay.c:
+ * ext/qroverlay/gstqroverlay.c:
+ qroverlay: Rework basing it on overlaycomposition
+ The base class is now a bin which wraps the `overlaycomposition`
+ element and implements the `draw` signal.
+ This way we support all the video formats the GstVideoOverlayComposition
+ API supports and the blending code can be reused. It is also possible
+ to have the blending happen in the sinks now.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1829>
+
+2020-11-26 05:55:29 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11h264dec.c:
+ d3d11h264dec: Reconfigure decoder object on DPB size change
+ Even if resolution and/or bitdepth is not updated, required
+ DPB size can be changed per SPS update and it could be even
+ larger than previously configured size of DPB. If so, we need
+ to reconfigure DPB d3d11 texture pool again.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1839>
+
+2020-11-25 17:52:42 +0100 Marijn Suijten <marijns95@gmail.com>
+
+ * gst/audiobuffersplit/gstaudiobuffersplit.c:
+ * gst/inter/gstinteraudiosrc.c:
+ audio: Use new AudioFormatInfo::fill_silence function
+ The function is renamed to be properly associated with AudioFormatInfo
+ (its instance) instead of AudioFormat (an unrelated enum), see [1] for
+ the rename itself.
+ [1]: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/940
+
+2020-11-05 17:14:22 +0000 Philippe Normand <philn@igalia.com>
+
+ * gst-libs/gst/player/gstplayer.c:
+ player: Fix get_current_subtitle_track annotation
+ As the info returned is a new object, the annotation should be transfer-full,
+ similarly to the get_current_{audio,video}_track() implementations.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1775>
+
+2020-11-23 20:44:27 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: add a memory pool object helper
+ Since both allocators use a memory pool, with its mutex and cond, this patch
+ refactors it into a single internal object, implementing a generic GstMemory
+ pool.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1815>
+
+2020-11-17 14:53:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ * sys/va/gstvaallocator.h:
+ * sys/va/gstvapool.c:
+ va: pool, allocator: honor GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT
+ In order to honor GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT in VA pool, allocators'
+ wait_for_memory() has to be decoupled from their prepare_buffer() so it could be
+ called in pools' acquire_buffer() if the flag is not set.
+ wait_for_memory() functions are blocking so the received memories are assigned
+ to the fist requested buffer, if multithreaded calls. For this a new mutex were
+ added.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1815>
+
+2020-11-17 13:18:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ * sys/va/gstvapool.c:
+ va: allocator: broadcast when flushing
+ This patch handles when the bufferpool request a new buffer while
+ flushing.
+ Also fixes the usage of g_cond_wait(), which demands to be used
+ inside a loop to avoid spurious wakeups.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1815>
+
+2020-11-17 13:17:03 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: free allocator when a mem is held
+ An application, using for example appsink, can hold buffers from any
+ va allocator after setting the pipeline to NULL. We need to destroy
+ the allocator when that memory is unrefed.
+ This patch juggles a bit with the allocator reference count in
+ memories in order to achieve this:
+ 1. When memory is created no alloc ref is modified
+ 2. When memory is released, alloc ref is decreased
+ 3. When memory is reassiged to a buffer, alloc ref is increased
+ 4. When memory is flushed, alloc ref is increased becase it is going
+ to be decreased in gst_memory_unref()
+ Also this patch moves the deallocation of member variables to
+ finalize() rather than dispose()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1815>
+
+2020-11-23 17:01:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: dmabuf: initialize cond
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1815>
+
+2020-11-20 17:32:44 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/gstwebrtcstats.c:
+ * ext/webrtc/transportstream.c:
+ * ext/webrtc/transportstream.h:
+ webrtc: Make ssrc map into separate data structures
+ They now contain a weak reference and that could be freed later
+ causing strange crashes as GWeakRef are not movable.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>
+
+2020-10-15 21:23:08 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcstats.c:
+ webrtcstats: Get the remote-inbound stats from the right RTPSource
+ This also means that we need to get the clock-rate from the codec instead
+ of from the RTPSource, as the remote one doesn't include a clock rate.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>
+
+2020-10-15 19:36:45 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/gstwebrtcbin.h:
+ * ext/webrtc/gstwebrtcstats.c:
+ * ext/webrtc/gstwebrtcstats.h:
+ webrtcbin: Implement getting stats for a specific pad
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>
+
+2020-10-10 18:21:19 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcstats.c:
+ webrtcstats: Also return the raw rtpsource stats for more information
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>
+
+2020-10-09 20:59:58 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcstats.c:
+ webrtcstats: Avoid copy of GstStructure
+ Instead transfer the ownership to the new structure
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>
+
+2020-10-09 20:45:10 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcstats.c:
+ webrtcstats: Remove receiver side when sending
+ Those are just invalid and just reflect what we sent. We'd need to parse the
+ RTCP XR packets from the other side to know more about those.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>
+
+2020-10-09 20:27:40 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcstats.c:
+ webrtcstats: Extract statistics from the rtpjitterbuffer
+ And expose them as standardised webrtc statistics
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>
+
+2020-10-09 18:45:57 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/transportstream.c:
+ * ext/webrtc/transportstream.h:
+ webrtcbin: Store the rtpjitterbuffer instances to extract stats from them
+ Store them as web refs to avoid having to worry about freeing later and because
+ the new-jitterbuffer is on a different thread
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>
+
+2020-10-09 19:59:18 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcstats.c:
+ webrtcstats: Document all RTP missing fields according to the latest spec
+ Just document all the missing fields and document which ones will never
+ be implemented because they depend on the codec or depayloader
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>
+
+2020-10-09 19:38:15 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcstats.c:
+ webrtcstats: RTCP computed RTT is only available at sender
+ The receiver doesn't have the information to compute it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>
+
+2020-10-08 17:11:30 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcstats.c:
+ webrtcstats: Remove redundant lines
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>
+
+2020-11-04 17:06:02 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst-libs/gst/webrtc/rtpreceiver.c:
+ * gst-libs/gst/webrtc/rtpreceiver.h:
+ * gst-libs/gst/webrtc/rtpsender.c:
+ * gst-libs/gst/webrtc/rtpsender.h:
+ webrtc: Also remove rtcp_transport from the structure
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1765>
+
+2020-11-02 19:55:46 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst-libs/gst/webrtc/rtpreceiver.c:
+ * gst-libs/gst/webrtc/rtpreceiver.h:
+ * gst-libs/gst/webrtc/rtpsender.c:
+ * gst-libs/gst/webrtc/rtpsender.h:
+ webrtc: Remove APIs to set transport on sender/receiver
+ They're not not used ever.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1765>
+
+2020-11-02 19:49:55 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/nicetransport.c:
+ * ext/webrtc/transportreceivebin.c:
+ * ext/webrtc/transportsendbin.c:
+ * ext/webrtc/transportsendbin.h:
+ * ext/webrtc/transportstream.c:
+ * ext/webrtc/transportstream.h:
+ * ext/webrtc/webrtctransceiver.c:
+ * gst-libs/gst/webrtc/dtlstransport.c:
+ * gst-libs/gst/webrtc/dtlstransport.h:
+ * gst-libs/gst/webrtc/rtpreceiver.c:
+ * gst-libs/gst/webrtc/rtpreceiver.h:
+ * gst-libs/gst/webrtc/rtpsender.c:
+ * gst-libs/gst/webrtc/rtpsender.h:
+ webrtc: Remove non rtcp-mux code
+ RTCP mux is now always required by the WebRTC spec
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1765>
+
+2020-11-20 15:01:03 +0000 Julian Bouzas <julian.bouzas@collabora.com>
+
+ * sys/nvcodec/gstnvdec.c:
+ nvcodec: Assume 25fps if framerate is invalid when calculating latency
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1826>
+
+2020-11-20 22:26:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264decoder: fix memory leak
+ gst_h264_dbp_get_picture_all() returns a full transfer of the GArray, which
+ needs be unrefed. But it is not unrefed in
+ gst_h264_decoder_find_first_field_picture() leaking it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1827>
+
+2020-11-20 16:07:36 +0100 Edward Hervey <edward@centricular.com>
+
+ * gst-libs/gst/mpegts/gst-dvb-descriptor.c:
+ * gst-libs/gst/mpegts/gst-dvb-descriptor.h:
+ * gst-libs/gst/mpegts/gstmpegtsdescriptor.c:
+ * gst-libs/gst/mpegts/gstmpegtsdescriptor.h:
+ mpegts: Documentation fixes
+ gtk-doc was complaining :)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1825>
+
+2020-11-20 13:24:24 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/qroverlay/gstdebugqroverlay.c:
+ * ext/qroverlay/gstdebugqroverlay.h:
+ * ext/qroverlay/gstqroverlay.c:
+ * ext/qroverlay/gstqroverlay.h:
+ qroverlay: unset executable flag on source files
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1824>
+
+2020-11-20 13:22:48 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/qroverlay/meson.build:
+ qroverlay: fix auto detection of json-glib for plugin
+ Only want to check for json-glib when libqrencode was found,
+ but also it shouldn't be required but depend on the option.
+ Fixes #1465
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1824>
+
+2020-11-19 21:15:25 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconverter.c:
+ * sys/d3d11/gstd3d11device.c:
+ * sys/d3d11/gstd3d11format.c:
+ * sys/d3d11/gstd3d11format.h:
+ * sys/d3d11/gstd3d11memory.c:
+ * tests/check/elements/d3d11colorconvert.c:
+ d3d11: Add support for packed 4:2:2 and 4:4:4 10bits formats
+ Add support for Y210 and Y410 formats which are commonly used format
+ for en/decoders on Windows. Note that those formats cannot be used for
+ render target (output) of shader.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1821>
+
+2020-10-02 18:47:16 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/openh264/gstopenh264dec.cpp:
+ openh264dec: Accept constrained-high and progressive-high profiles
+ They're just subsets of the high profile.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1634>
+
+2020-10-02 18:47:06 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * sys/d3d11/gstd3d11h264dec.c:
+ d3d11h264dec: Accept constrained-high and progressive-high profiles
+ They're just subsets of the high profile.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1634>
+
+2020-10-02 18:46:56 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * sys/msdk/gstmsdkh264dec.c:
+ msdkh264dec: Accept constrained-high and progressive-high profiles
+ They're just subsets of the high profile.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1634>
+
+2020-09-22 15:42:37 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * sys/nvcodec/gstnvdecoder.c:
+ * sys/nvcodec/gstnvh264dec.c:
+ nvdec: Accept progressive-high and contrained-high profiles
+ They're subsets of the high profiles with no interlacing and
+ no B-frames for constrained
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1634>
+
+2020-09-28 13:33:00 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ * gst-libs/gst/codecparsers/gstav1parser.h:
+ codecparsers: av1: add the set_operating_point() API.
+ The av1 can support multi layers when scalability is enabled. We
+ need an API to set the operating point and filter the OBUs just
+ belonging to some layers(the layers are specified by the operating
+ point).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-10-09 16:13:28 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ * gst-libs/gst/codecparsers/gstav1parser.h:
+ codecparsers: av1: Add an API to reset the annex_b state only.
+ In practice, we encounter streams that have one or more temporal units
+ error. When that kind of error temporal units is in annex b format, the
+ whole temporal unit should be discarded.
+ But the temporal units before it are correct and can be used. More
+ important, because of the error temporal unit, the parser is in a wrong
+ state and all later temporal unit are also parsed uncorrectly.
+ We need to add this API to reset the annex_b state only when we meet
+ some temporal unit error.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-10-09 16:01:35 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ codecparsers: av1: clean the seen_frame_header in parse_tile_group().
+ The current seen_frame_header is not cleaned correctly. According
+ to the spec, it should be cleaned when tiles are parsed completely.
+ Also delete a verbose seen_frame_header init in reset_state().
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-09-29 13:15:37 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ codecparsers: av1: fix a typo in parse_metadata_scalability
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-09-28 18:22:08 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ codecparsers: av1: Do not assert in identify_one_obu when check annex b size.
+ Some buggy stream just writes the wrong temporal unit and frame size in
+ the stream. We should return failure rather than assert to abort.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-09-22 19:16:30 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.h:
+ codecparsers: av1: Add unknow AV1 profile define for saint check.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-07-24 14:54:37 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ * gst-libs/gst/codecparsers/gstav1parser.h:
+ codecparsers: av1: Improve the parse_tile_info.
+ 1. store more tile info when parse tile group.
+ The column, row, tile offset and tile data size are all useful for
+ decoder process, especially for HW kind decoder such as VAAPI dec.
+ Also fix the tile group skip size for each tile data.
+ 2. No min_inner_tile_width requirement in newest spec.
+ 3. Calculate the sbs of each tile for both uniform tile and non-uniformi
+ tile.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-07-28 17:25:44 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ codecparsers: av1: Fix a tile info read typo in frame header.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-08-25 19:44:48 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ codecparsers: av1: Fix a typo when get value of segmentation params.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-08-25 16:33:26 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ * gst-libs/gst/codecparsers/gstav1parser.h:
+ codecparsers: av1: add valid check for global motion params.
+ The global motion params and its matrix values need to be verified
+ before we use them. If it is invalid, we should notify the decoder
+ that it should not be used.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-08-25 15:25:56 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ codecparsers: av1: uint8 range is not enough for av1_bitstreamfn_ns
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-08-25 15:25:06 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.h:
+ codecparsers: av1: delete duplicated GST_AV1_GM_ABS_ALPHA_BITS define.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-08-27 21:33:14 +0800 He Junyan <junyan.he@intel.com>
+
+ * tests/check/libs/av1parser.c:
+ test: av1parser: update the test result because of bug fixing.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-08-24 15:29:56 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ * gst-libs/gst/codecparsers/gstav1parser.h:
+ codecparsers: av1: Improve the loop filter setting.
+ 1. loop_filter_ref_deltas should be int because it needs to compare
+ with 0.
+ 2. Move the loop filter init logic to setup_past_independence() and
+ load_previous(), which make it more precise with the spec.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-08-14 14:40:49 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ codecparsers: av1: Fix a error report for metadata obu.
+ The metadata OBUs, for example, ITUT_T35 has an undefined payload such
+ as itu_t_t35_payload_bytes field in AV1 spec, which may cause the failure
+ of parsing the trailings bits. We can give a warning and ignore this kind
+ of errors.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-07-28 15:06:04 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ codecparsers: av1: Fix a level index bug in sequence.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-07-24 12:49:10 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstav1parser.c:
+ * gst-libs/gst/codecparsers/gstav1parser.h:
+ codecparsers: av1: all ref idx should be gint8.
+ All the ref index need to compare with 0 in reference index decision
+ algorithm. We also need to init them to -1.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464>
+
+2020-11-14 18:48:05 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/va/gstvah264dec.c:
+ va: h264dec: Add support for interlaced stream
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1812>
+
+2020-11-16 16:29:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvah264dec.c:
+ va: h264dec: implement gst_va_h264_dec_new_field_picture()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1812>
+
+2020-11-14 20:46:30 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/va/gstvah264dec.c:
+ va: h264dec: Fix picture_height_in_mbs_minus1
+ Fix for interlaced stream (when sps->frame_mbs_only_flag is equal to one)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1812>
+
+2020-11-16 16:29:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvah264dec.c:
+ va: h264dec: admit baseline if stream obeys A.2
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1812>
+
+2020-11-15 00:20:54 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264decoder.h:
+ codecs: h264decoder: Add support for field ref picture list modification
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1812>
+
+2020-11-17 18:39:56 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264picture.c:
+ * gst-libs/gst/codecs/gsth264picture.h:
+ * sys/va/gstvah264dec.c:
+ codecs: h264decoder: Add more option arguments for reference picture getter
+ In case that "pic_order_cnt_type" is equal to zero, ref picture
+ list for B slice should not include non-existing picture
+ as per spec 8.2.4.2.3. And, the second field is not needed
+ for the process of frame picture reference list construction
+ since it needs to be frame unit, not field picture in that case.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1812>
+
+2020-11-17 18:59:35 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264picture.c:
+ codecs: h264decoder: Split gap picture as well if needed
+ field pair pictures might be required for reference list
+ depending on context.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1812>
+
+2020-11-05 18:09:06 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ h264dec: Fix POC calculation for type 0
+ This is mostly for future use as it only fixes the caclulation for interlaced
+ cases, the case of frame seemed correct already.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1812>
+
+2020-11-17 03:11:46 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264decoder: Don't try to construct RefPicList0 and RefPicList1 if not required
+ We were trying to construct reference picture list even for
+ I slice before this commit. Reference list is required only for
+ P, SP and B slices. Also, if all existing reference pictures
+ are gap pictures, we don't need to construct lists.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1812>
+
+2020-11-03 01:59:46 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvapool.c:
+ va: pool: Check the force_videometa for all memory types.
+ force_videometa should mean that the buffer must use video meta to
+ map correctly. When the stride or the offset of the alloc_info is
+ different from the src caps, the downstream must use video meta.
+ So this flag should not link with the RAW caps only. All kinds of
+ caps(memory:VAMemory, memory:DMABuf) should have this flag.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1711>
+
+2020-11-17 00:18:22 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvabasedec.c:
+ * sys/va/gstvabasedec.h:
+ va: basedec: Improve the decide_allocation().
+ In decide_allocation(), we now just use the other_pool for frames
+ copy when the src caps is raw. This can make the logic a little
+ clear. There is no need for us to check the alignment and video
+ meta again.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1711>
+
+2020-11-16 23:53:39 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvabasedec.c:
+ va: basedec: fallback to system memory if downstream caps is any.
+ When the downstream element reports an ANY caps, and it also fails to
+ support VideoMeta, we should fallback to the system memory.
+ Note: the basetransform kind elements never return valid allocation
+ query before set_caps(). So, if a basetransform return an ANY sink
+ caps, we always fallback to system memory for it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1711>
+
+2020-11-16 04:38:28 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/va/gstvah264dec.c:
+ vah264dec: Fix for long term reference picture signalling
+ Allocate a GArray which is used to fill
+ VAPictureParameterBufferH264.ReferenceFrames (called per frame),
+ instead of alloc/free per frame.
+ Also this commit is to fix the condition where long-term reference
+ picture is needed for VAPictureParameterBufferH264.ReferenceFrames
+ entry.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1813>
+
+2020-11-15 03:41:27 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264picture.c:
+ codecs: h264decoder: Fix MMCO type 1 for interlaced stream
+ If field_pic_flag of current picture is equal to zero,
+ both field of reference field pair should be marked as
+ "unused for reference"
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1810>
+
+2020-11-15 02:59:24 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264picture.c:
+ codecs: h264decoder: Fix MMCO type 3 for interlaced stream
+ Depending on short-ref picture corresponding to picNumX value,
+ there's a condition that only one field should be updated to
+ be non-reference picture.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1810>
+
+2020-11-15 00:55:09 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264decoder: Split frame picture into field pictures if needed
+ In case of interlaced stream, frame pictures need to be splitted
+ into field for reference marking process.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1810>
+
+2020-11-16 00:27:28 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264picture.c:
+ * gst-libs/gst/codecs/gsth264picture.h:
+ codecs: h264decoder: Add util macro for frame/field picture identification
+ Add a macro to check whether given GstH264Picture is for frame or field
+ decoding.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1810>
+
+2020-11-16 20:44:06 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11window.cpp:
+ d3d11window: Prefer full color range for display target colorspace
+ We don't need to preserve input color range for transformed target
+ color space. Also some GPUs doesn't seem to be happy with 16-235
+ color range for RGB color space.
+ Also, since our default display target color space is
+ DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709, choosing full color range
+ would make more sense.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1814>
+
+2020-08-15 02:02:44 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ * ext/wpe/WPEThreadedView.h:
+ wpe: Don't crash when running on X11.
+ Don't assume the available EGL display is a wayland display -
+ instead, check the the GStreamer GL context is EGL, and then
+ use gst_gl_display_egl_from_gl_display to create a
+ GstGLDisplayEGL from that, which also adds refcounting
+ around the underlying EGLDisplay.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1385
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1752>
+
+2020-11-13 20:25:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: dmabuf: log unknown surface format
+ It is possible that surface format is not assigned, keeping its default
+ GStreamer value: unknown, but gst_video_format_to_string() doesn't print
+ unknown format, so this patch does it manually.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1811>
+
+2020-11-13 20:20:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: dmabuf: destroy VASurface if no pooled buffer
+ When gst_va_dmabuf_allocator_setup_buffer_full() receives info (not NULL) it is
+ supposed that this buffer is not part of the allocator pool, so it has to be
+ de-allocated as soon it is freed.
+ This patch sets the destroy notify of the assigned GstVaBufferSurface if info is
+ not NULL.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1811>
+
+2020-11-14 03:20:19 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/va/gstvah264dec.c:
+ vah264dec: Allow missing reference picture
+ baseclass might provide reference picture list with null picture.
+ Ensure picture before filling picture information.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1809>
+
+2020-11-14 03:16:07 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264decoder: Don't give up to decode due to missing reference picture
+ Missing reference picture is very common thing for broken/malformed stream.
+ Decoder should be able to keep decoding if it's not a very critical error.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1809>
+
+2020-11-13 17:50:03 +0100 Edward Hervey <edward@centricular.com>
+
+ * gst/mpegtsdemux/mpegtspacketizer.c:
+ mpegtsdemux: Fix off by one error
+ Turns out timestamps of zero are valid :) Fixes issues with streams where the
+ PTS/DTS would be equal to the first PCR.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1807>
+
+2020-11-06 02:45:21 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.c:
+ * sys/d3d11/gstd3d11decoder.h:
+ * sys/d3d11/gstd3d11h264dec.c:
+ * sys/d3d11/gstd3d11h265dec.c:
+ * sys/d3d11/gstd3d11vp8dec.c:
+ * sys/d3d11/gstd3d11vp9dec.c:
+ d3d11h264dec: Add support for interlaced stream
+ Add support for interlaced stream.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1534>
+
+2020-11-10 01:28:03 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264picture.c:
+ * gst-libs/gst/codecs/gsth264picture.h:
+ codecs: h264decoder: Add support for interlaced stream
+ Initial support for interlaced stream. Subclass should implement
+ new_field_picture() vfunc. Otherwise, baseclass will assume that
+ subclass doesn't support interlaced stream.
+ Restrictions:
+ * Reference picture modification process for interlaced stream
+ is not implemented yet
+ * PAFF (Picture Adaptive Frame Field) is not properly implemented.
+ * Field display ordering (e.g., top-field-first) decision should
+ be enhanced via picture timing SEI parsing
+ * Gap in field picture should be handled
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1534>
+
+2020-11-05 04:16:54 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264picture.c:
+ * gst-libs/gst/codecs/gsth264picture.h:
+ codecs: h264decoder: Rename DPB methods
+ Clarify wheter it's for picture(field) or frame in order to
+ support interlaced stream, because DPB size is frame unit, not picture
+ in case of interlaced stream.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1534>
+
+2020-11-05 03:47:35 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264decoder.h:
+ codecs: h264decoder: Remove interlaced stream related constraints
+ ... and add new_field_picture() vfunc so that ensure interlaced
+ decoding support by subclass.
+ The method will be used later with interlaced stream support.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1534>
+
+2020-11-12 23:49:01 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.h:
+ codecs: h264decoder: Move to inline GstH264DecoderClass documentation
+ Don't duplicate documentation for class vfunc. Hotdoc doesn't seem
+ to be happy with duplicated documentation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1534>
+
+2020-11-06 01:45:36 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264picture.c:
+ * gst-libs/gst/codecs/gsth264picture.h:
+ * sys/d3d11/gstd3d11h264dec.c:
+ * sys/nvcodec/gstnvh264dec.c:
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ * sys/va/gstvah264dec.c:
+ codecs: h264decoder: Store reference picture type using enum value
+ Managing reference picture type by using two variables
+ (ref and long_term) seems to be redundant and that can be
+ represented by using a single enum value.
+ This is to sync this implementation with gstreamer-vaapi so that
+ make comparison between this and gstreamer-vaapi easier and also
+ in order to minimize the change required for subclass to be able
+ to support interlaced.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1534>
+
+2020-11-11 01:56:52 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264picture.c:
+ codecs: h264decoder: Minor documentation fix
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1534>
+
+2020-11-13 23:18:20 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264decoder: Remove DPB size related spammy debug message
+ It's not informative at all if SPS wasn't updated. Also we are printing
+ DPB size related debug message in another place already.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1806>
+
+2020-11-12 22:27:08 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/videoparsers/gsth264parse.c:
+ h264parse: try harder to update timecode
+ NumClockTS is the maximum number of timecodes the pic_timing SEI
+ can carry, but it is perfectly OK for it to carry fewer, and have
+ one of the clock_timestamp_flags set to 0.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1804>
+
+2020-11-12 22:32:00 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/videoparsers/gsth264parse.c:
+ h264parse: fix installing of update-timecode property
+ Simply fixes a typo that did not have any adverse effect,
+ and avoid hardcoding initializer
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1805>
+
+2020-11-12 19:43:22 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264decoder: Don't fill gap picture if it's not allowed
+ We should fill gap picture only if sps->gaps_in_frame_num_value_allowed_flag
+ is set.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1801>
+
+2020-04-16 10:06:29 -0400 Aaron Boxer <aaron.boxer@collabora.com>
+
+ * ext/openjpeg/gstopenjpegenc.c:
+ openjpegenc: store stripe offset when encoding image
+ The decoder can simply read this offset after decoding
+ to know where to blit the stripe to the full frame
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1800>
+
+2020-03-24 09:15:30 -0400 Aaron Boxer <aaron.boxer@collabora.com>
+
+ * ext/openjpeg/gstopenjpegenc.c:
+ * ext/openjpeg/meson.build:
+ openjpegenc: take subsampling into account when calculating stripe height
+ We calculate minimum of (stripe height * sub sampling) across all components
+ to ensure that all component dimensions are consistent with sub-sampling.
+ The last stripe for each component is simply the remaining height.
+ limit wavelet resolutions for "thin" stripes
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1800>
+
+2020-03-12 13:41:40 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/openjpeg/gstopenjpegenc.c:
+ openjpegenc: fix memory leak from mstream
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1800>
+
+2020-01-13 14:00:38 -0500 Aaron Boxer <aaron.boxer@collabora.com>
+
+ * ext/openjpeg/gstopenjpegenc.c:
+ openjpegenc: fail negotation in handle_frame if alignment mismatch
+ If encoder is in stripe mode, then downstream must also support stripe
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1800>
+
+2020-11-12 21:46:59 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/nvcodec/gstnvdecoder.c:
+ * sys/nvcodec/gstnvdecoder.h:
+ * sys/nvcodec/gstnvh264dec.c:
+ * sys/nvcodec/gstnvh265dec.c:
+ * sys/nvcodec/gstnvvp8dec.c:
+ * sys/nvcodec/gstnvvp9dec.c:
+ nvcodec: Fix various typo
+ Not sure where the DECOCER came from
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1803>
+
+2020-11-12 13:33:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvabasedec.c:
+ * sys/va/gstvapool.c:
+ va: comments to explain code
+ There are a couple part where code seems, at least to me, a bit oscure or
+ confusing. So let's better add an explanation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1802>
+
+2020-11-10 14:48:28 +0100 Edward Hervey <edward@centricular.com>
+
+ * gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
+ adaptivedemux: Don't calculate bitrate for header/index fragments
+ They are generally substantially smaller than regular fragments, and therefore
+ we end up pushing totally wrong bitrates downstream.
+ Fixes erratic buffering issues with DASH introduced by
+ 66f5e874352016e29f555e3ce693b23474e476db
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1021>
+
+2020-11-09 11:41:10 +0100 Edward Hervey <edward@centricular.com>
+
+ * ext/dash/gstdashdemux.c:
+ * gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
+ * gst-libs/gst/adaptivedemux/gstadaptivedemux.h:
+ adaptivedemux: Store QoS values on the element
+ Storing it per-stream requires taking the manifest lock which can apparenly be
+ hold for aeons. And since the QoS event comes from the video rendering thread
+ we *really* do not want to do that.
+ Storing it as-is in the element is fine, the important part is knowing the
+ earliest time downstream.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1021>
+
+2020-11-10 14:48:28 +0100 Edward Hervey <edward@centricular.com>
+
+ * gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
+ adaptivedemux: Don't calculate bitrate for header/index fragments
+ They are generally substantially smaller than regular fragments, and therefore
+ we end up pushing totally wrong bitrates downstream.
+ Fixes erratic buffering issues with DASH introduced by
+ 66f5e874352016e29f555e3ce693b23474e476db
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1786>
+
+2020-11-11 18:07:57 +0100 Edward Hervey <edward@centricular.com>
+
+ * ext/hls/gsthlsdemux.c:
+ hlsdemux: Don't double-free variant streams on errors
+ If an error happened switching to a new variant, we switch back to the previous
+ one ... except it will be unreffed when settin git.
+ In order to avoid such issues, keep a reference to the old variant until we're
+ sure we don't need it anymore
+ Fixes cases of double-free on variants and its contents
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1799>
+
+2020-11-12 00:42:59 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gstvp8decoder.c:
+ * gst-libs/gst/codecs/gstvp8decoder.h:
+ codecs: vp8decoder: Fix two typo of struct name.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1797>
+
+2020-10-27 19:53:44 +0530 Sanchayan Maity <sanchayan@asymptotic.io>
+
+ * sys/bluez/gsta2dpsink.c:
+ gsta2dpsink: Fix GstPad leak
+ The sinkpad returned by a call to gst_element_get_static_pad needs to be
+ unrefed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1621>
+
+2020-09-30 17:12:04 +0530 Arun Raghavan <arun@asymptotic.io>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * sys/bluez/gsta2dpsink.c:
+ bluez: a2dpsink: Add support for LDAC to a2dpsink
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1621>
+
+2020-09-30 13:28:08 +0530 Arun Raghavan <arun@asymptotic.io>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * sys/bluez/a2dp-codecs.h:
+ * sys/bluez/gstavdtpsink.c:
+ * sys/bluez/gstavdtputil.c:
+ bluez: avdtpsink: Add support for LDAC to avdtpsink
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1621>
+
+2020-09-18 17:35:24 +0530 Sanchayan Maity <sanchayan@asymptotic.io>
+
+ * ext/ldac/gstldacenc.c:
+ * ext/ldac/gstldacenc.h:
+ * ext/ldac/ldac-plugin.c:
+ * ext/ldac/meson.build:
+ * ext/meson.build:
+ * meson_options.txt:
+ ext: Add LDAC encoder
+ LDAC is an audio coding technology developed by Sony that enables the
+ transmission of High-Resolution (Hi-Res) audio contents over Bluetooth.
+ Currently Adaptive Bit Rate (ABR) as supported by libldac encoder is not
+ implemented.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1621>
+
+2020-11-11 18:21:25 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/mpegdemux/gstmpegdemux.c:
+ mpegdemux: Set duration on seeking query if possible
+ Set duration on seeking query in the same way as duration query handler.
+ Otherwise application might get confused as if the duration is unknown.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1791>
+
+2020-11-11 13:39:37 +0200 Raul Tambre <raul@tambre.ee>
+
+ * ext/webrtc/meson.build:
+ webrtc: Update libnice version requirement to 0.1.17
+ Since !1366 nice_agent_get_sockets() is used, which requires 0.1.17.
+ Update the version requirement accordingly.
+ Fixes #1459.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1792>
+
+2020-11-03 17:48:02 +0100 Edward Hervey <edward@centricular.com>
+
+ * ext/hls/gsthlsdemux.c:
+ * ext/hls/gsthlsdemux.h:
+ hlsdemux: Re-use streams if possible
+ When switching variants, try to re-use existing streams/pads instead of creating
+ new ones. When dealing with urisourcebin and decodebin3 this is not only the
+ expected way but also avoids a lot of buffering/hang issues.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1757>
+
+2020-11-04 10:36:21 +0100 Edward Hervey <edward@centricular.com>
+
+ * ext/hls/m3u8.c:
+ * ext/hls/m3u8.h:
+ m3u8: Make a debug function usable elsewhere
+ The rest of the code might want to use this
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1757>
+
+2020-07-12 00:18:38 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/qroverlay/gstdebugqroverlay.c:
+ qroverlay: Generate documentation
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
+
+2020-07-12 00:03:04 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/qroverlay/gstdebugqroverlay.c:
+ * ext/qroverlay/gstdebugqroverlay.h:
+ * ext/qroverlay/gstqroverlay.c:
+ * ext/qroverlay/gstqroverlay.h:
+ * ext/qroverlay/meson.build:
+ qroverlay: Add a qroverlay element that allows overlaying any data
+ This moves `gstqroverlay.c` to `gstdebugqroverlay.c` and implements
+ a simple `gstqroverlay` element.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
+
+2020-07-11 23:43:01 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/qroverlay/gstqroverlay.c:
+ * ext/qroverlay/gstqroverlay.h:
+ qroverlay: Rename qroverlay to debugqroverlay
+ The element is specially focus on debugging purposes and not a generique QR overlay
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
+
+2020-07-11 23:36:03 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/qroverlay/gstqroverlay.c:
+ * ext/qroverlay/gstqroverlay.h:
+ * ext/qroverlay/meson.build:
+ qroverlay: Factor out qroverlay logic to a base class
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
+
+2020-07-11 23:35:55 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/qroverlay/gstbaseqroverlay.c:
+ * ext/qroverlay/gstbaseqroverlay.h:
+ qroverlay: Factor out qroverlay logic to a base class
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
+
+2020-07-11 23:06:16 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/qroverlay/gstqroverlay.c:
+ * ext/qroverlay/gstqroverlay.h:
+ qroverlay: Make subclassable
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
+
+2020-07-11 20:42:51 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/qroverlay/gstqroverlay.c:
+ * ext/qroverlay/gstqroverlay.h:
+ * ext/qroverlay/meson.build:
+ qroverlay: Port to VideoFilter
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
+
+2020-07-11 15:04:57 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/qroverlay/gstqroverlay.c:
+ qroverlay: Make default pizel-size 3
+ Otherwise zbar isn't able to read the produced qrcodes
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
+
+2020-07-09 14:14:45 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/qroverlay/gstqroverlay.c:
+ * ext/qroverlay/gstqroverlay.h:
+ * ext/qroverlay/meson.build:
+ qroverlay: Cleanup the way we build the json using json-glib
+ And reindent the .h file removing tabs
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
+
+2020-07-09 13:05:20 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/qroverlay/gstqroverlay.c:
+ * ext/qroverlay/gstqroverlay.h:
+ qroverlay: Fix copyright
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
+
+2020-07-09 12:51:23 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/qroverlay/gstqroverlay.c:
+ qroverlay: Fix some warnings
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
+
+2020-07-09 12:49:51 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/qroverlay/gstqroverlay.c:
+ * ext/qroverlay/gstqroverlay.h:
+ qroverlay: Minor renaming and documentation fixes
+ Matching usual namings
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
+
+2020-07-09 12:37:55 -0400 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/meson.build:
+ * ext/qroverlay/gstqroverlay.c:
+ * ext/qroverlay/gstqroverlay.h:
+ * ext/qroverlay/meson.build:
+ * meson_options.txt:
+ qroverlay: Import from gst-qroverlay
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
+
+2020-10-30 23:22:01 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/nvcodec/gstnvdecoder.c:
+ * sys/nvcodec/gstnvvp9dec.c:
+ * sys/nvcodec/gstnvvp9dec.h:
+ * sys/nvcodec/meson.build:
+ * sys/nvcodec/plugin.c:
+ nvcodec: Add VP9 stateless decoder element
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1738>
+
+2020-10-30 21:20:57 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/nvcodec/gstnvdecoder.c:
+ * sys/nvcodec/gstnvdecoder.h:
+ * sys/nvcodec/gstnvh264dec.c:
+ * sys/nvcodec/gstnvh265dec.c:
+ * sys/nvcodec/gstnvvp8dec.c:
+ nvcodec: nvdecoder: Move to refcount based GstNvDecoderFrame
+ This refcount based way would be helpful for sharing nvdec frame among
+ multiple codec pictures and later zero-copy use case.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1738>
+
+2020-10-30 23:38:15 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/nvcodec/gstnvdecoder.h:
+ nvcodec: nvdecoder: Get rid of G_GNUC_INTERNAL
+ default is visibility=hidden. Don't need to use G_GNUC_INTERNAL
+ for new code therefore.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1738>
+
+2020-10-30 20:37:44 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/nvcodec/gstnvvp8dec.c:
+ * sys/nvcodec/gstnvvp8dec.h:
+ * sys/nvcodec/meson.build:
+ * sys/nvcodec/plugin.c:
+ nvcodec: Add VP8 stateless decoder element
+ Like other nvcodec stateless decoders, the rank of this new nvvp8sldec
+ element will be secondary for now.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1738>
+
+2020-10-30 23:26:49 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/nvcodec/plugin.c:
+ nvcodec: nvsldec: Fix typo in debug message
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1738>
+
+2020-11-09 18:27:14 +0100 Edward Hervey <edward@centricular.com>
+
+ * gst/mpegtsdemux/mpegtspacketizer.c:
+ mpegtspacketizer: Handle PCR issues with adaptive streams
+ A lot of content producers out there targetting "adaptive streaming" are riddled
+ with non-compliant PCR streams (essentially all the players out there just use
+ PTS/DTS and don't care about the PCR).
+ In order to gracefully cope with these, we detect them appropriately and any
+ small (< 15s) PCR resets get gracefully ignored.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1785>
+
+2020-10-30 14:07:02 +0000 Julian Bouzas <julian.bouzas@collabora.com>
+
+ * sys/nvcodec/gstcudautils.c:
+ nvcodec: leave g_once_init when all quarks are initialized
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1782>
+
+2020-11-09 23:22:09 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264picture.c:
+ codecs: h264decoder: Fix missing drain handling in bumping
+ Should've included in the commit 5527cc4a2e7ce8eeee1d8a717f99252477d6015f
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1783>
+
+2020-11-09 23:04:32 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264decoder: Try reference picture marking process in any case
+ ... even if there is some invalid conditions
+ (because of broken stream, our implementation fault or so).
+ Otherwise baseclass will keep such reference pictures and
+ it would result to DPB full.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1783>
+
+2020-11-09 11:44:36 +0100 Edward Hervey <edward@centricular.com>
+
+ * tests/examples/mpegts/ts-parser.c:
+ examples: Properly handle extended descriptors
+ By checking the extended tag. Provides a bit more information (if extended tag
+ is known)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1781>
+
+2020-11-08 19:08:25 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11h264dec.c:
+ d3d11h264dec: Fix for MbaffFrameFlag and FrameNumList
+ As per spec 7.4.3 Slice header semantics, the flag value is derived as
+ MbaffFrameFlag = (mb_adaptive_frame_field_flag && !field_pic_flag)
+ and DXVA uses the value.
+ Regarding FrameNumList, in case of long-term ref, FrameNumList[i]
+ value should be long_term_frame_idx not long_term_pic_num.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1780>
+
+2020-11-05 19:30:35 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264picture.c:
+ codecs: h264decoder: Reset frame number per MMCO type 5
+ It should be cleared so that avoid wrong frame gap detection
+ for following pictures.
+ Passing 4 more conformance bitstream tests
+ * MR2_TANDBERG_E
+ * MR3_TANDBERG_B
+ * MR4_TANDBERG_C
+ * MR5_TANDBERG_C
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1768>
+
+2020-11-05 18:42:37 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264picture.c:
+ * gst-libs/gst/codecs/gsth264picture.h:
+ codecs: h264decoder: Fix for MMCO type 2
+ As per 8.2.5.4.2, we should mark a picture which has
+ LongTermPicNum == long_term_pic_num as "unused for reference",
+ not pic_num.
+ Passing conformance bitstream test with MR2_MW_A
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1768>
+
+2020-11-05 18:27:11 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264picture.c:
+ codecs: h264picture: Add more trace log
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1768>
+
+2020-11-05 13:30:49 +0000 Jason Pereira <mindriot88@users.noreply.github.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * sys/decklink/gstdecklink.cpp:
+ decklink: correct framerate 2KDCI 23.98
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1771>
+
+2020-11-05 09:11:03 +0100 Rafostar <40623528+Rafostar@users.noreply.github.com>
+
+ * gst-libs/gst/player/gstplayer.c:
+ doc: player: mention that get_pipeline method needs unref
+ All other methods in docs clearly mention that an unref is needed, so should `get_pipeline()`. #1450
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1764>
+
+2020-11-05 09:01:47 +0100 Rafostar <40623528+Rafostar@users.noreply.github.com>
+
+ * gst-libs/gst/player/gstplayer.c:
+ player: call ref_sink on pipeline
+ Otherwise `gst_player_get_pipeline()` will return a floating reference which may confuse bindings and lead to crash.
+ Fixes #1450
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1763>
+
+2020-11-04 18:43:41 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * meson.build:
+ meson: Enable some MSVC warnings for parity with GCC/Clang
+ This makes it easier to do development with MSVC by making it warn
+ on common issues that GCC/Clang error out for in our CI configuration.
+ Continuation from https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/223
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1760>
+
+2020-10-21 09:01:31 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/va/gstvabasedec.h:
+ * sys/va/gstvah265dec.c:
+ * sys/va/gstvah265dec.h:
+ * sys/va/meson.build:
+ * sys/va/plugin.c:
+ va: Add HEVC decoding support
+ This add HEVC decoding support into the new VA plugin. This implementation has
+ been tested using the ITU comformance test (through fluster). It fails all
+ MAIN10 tests, as this is not implemented yet along with the following:
+ CONFWIN_A_Sony_1 (looks fine, but md5sum is incorrect)
+ PICSIZE_A_Bossen_1 (height too high)
+ PICSIZE_B_Bossen_1 (same)
+ VPSSPSPPS_A_MainConcept_1 (parser issue)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1714>
+
+2020-11-03 16:05:48 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst-libs/gst/codecparsers/gsth265parser.c:
+ h265parser: Fix wrong warning message
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1714>
+
+2020-11-03 11:23:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ h265decoder: Remove unsued WpOffsetHalfRangeC
+ This is only needed for VA implementation of weight tables and isn't used
+ within the base class.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1714>
+
+2020-11-02 00:08:04 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264picture.c:
+ * gst-libs/gst/codecs/gsth264picture.h:
+ codecs: h264decoder: Rework for DPB management
+ Sync with recent h265decoder DPB implementation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1761>
+
+2020-11-04 18:47:30 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264picture.c:
+ * gst-libs/gst/codecs/gsth264picture.h:
+ codecs: h264decoder: Remove unused pts variable
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1761>
+
+2020-11-03 14:12:45 +0900 youngh.lee <youngh.lee@lge.com>
+
+ * gst/aiff/aiffparse.c:
+ aiffparse: Also set a channel mask for 2 channels
+ And only do add debug output at FIXME level when using the fallback
+ channel mask, not for those defined in the AIFF spec.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1756>
+
+2020-06-23 10:29:42 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/icestream.c:
+ * ext/webrtc/nicetransport.c:
+ * ext/webrtc/nicetransport.h:
+ webrtc: Add properties to change the socket buffer sizes to ice object
+ libnice doesn't touch the kernel buffer sizes. When dealing with RTP data,
+ it's generally advisable to increase them to avoid dropping packets locally.
+ This is especially important when running multiple higher bitrate streams at
+ the same time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1366>
+
+2020-11-03 02:22:23 +1100 Jan Schmidt <jan@centricular.com>
+
+ * ext/vulkan/vkdeviceprovider.c:
+ vkdeviceprovider: Avoid deadlock on physical device
+ Don't hold the object lock on the vk physical device while
+ constructing a GstVulkanDevice around it, as
+ GstVulkanDevice can make calls on the physical device that
+ require the object lock.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1754>
+
+2020-11-03 02:14:21 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth265picture.c:
+ codecs: h265picture: Minor update for coding style
+ It's GstH265Dpb, not GstH265Decoder
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1755>
+
+2020-11-03 01:53:15 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ * gst-libs/gst/codecs/gsth265picture.c:
+ * gst-libs/gst/codecs/gsth265picture.h:
+ codecs: h265decoder: Make GstVideoCodecFrame hold the last reference of the buffer
+ The functionality of passing the last reference of GstH265Picture
+ was silently dropped by the commit eeffd91109a409063e866337452eedd392649775
+ This commit will make it work again.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1755>
+
+2020-11-03 01:41:13 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ codecs: h265decoder: Clear GstVideoCodecFrame on DPB clear if needed
+ h265decoder might need to clear DPB depending on context even if
+ it's not flushing case. So associated GstVideoCodecFrame needs to be
+ released in case non-flushing case.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1755>
+
+2020-11-03 00:57:46 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ codecs: h265decoder: Don't drain DPB on EOB/EOS/IDR nalu
+ DPB bumping decision per end-of-bitstream, end-of-sequence or IDR nal
+ should done by spec. In short, draining on EOB/EOS/IDR is undefined
+ behavior as per spec.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1755>
+
+2020-11-01 18:32:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ h265decoder: Complete dependent slice header
+ This will save the last independent slice and fill in the missing
+ information for dependent slices. This was left over during the porting
+ from gstreamer-vaapi. The private variable prev_independent_slice was
+ already there.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1750>
+
+2020-11-01 18:30:34 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ h265decoder: Prevent possible infinite loop
+ Theoretically, one could produce a broken stream that would lead to
+ infinite in the specified algorithm to calculate l0/l1 reference lists.
+ This patch will pearly exit if this condition is met.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1750>
+
+2020-10-22 12:38:11 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst-libs/gst/codecparsers/gsth265parser.c:
+ * gst-libs/gst/codecparsers/gsth265parser.h:
+ h265parse: Add missing const qualifier
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1750>
+
+2020-11-02 22:47:20 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.c:
+ Revert "d3d11decoder: Use D3D11/DXGI standard colorimetry"
+ This reverts commit a52fc6deeda203add520cb59ae0026d109ecda95.
+ The change breaks H264/HEVC conformance bitstream tests
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1753>
+
+2020-11-02 08:46:25 +0000 Randy Li <ayaka@soulik.info>
+
+ * ext/wayland/wlvideoformat.c:
+ wlvideoformat: fix DMA format convertor
+ In the most of case, this typo would work. But for
+ ARGB8888 and XRGB8888, which shm format is not based on fourcc,
+ which would never appear in format enumeration.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1751>
+
+2020-11-01 03:58:30 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.c:
+ d3d11decoder: Use D3D11/DXGI standard colorimetry
+ D3D11/DXGI supports smaller set of colorimetry than all possible
+ combination. This restriction would make more streams convertible
+ by using ID3D11VideoProcessor
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1743>
+
+2020-10-31 03:28:55 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11window.cpp:
+ d3d11window: Use ID3D11VideoProcessor only if device supports corresponding conversion
+ ... and drop support for ID3D11VideoProcessor if device doesn't
+ support ID3D11VideoContext1 interface and therefore we cannot
+ query conversion supportability.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1743>
+
+2020-11-01 20:52:11 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11h264dec.c:
+ * sys/d3d11/gstd3d11h265dec.c:
+ d3d11h{264,265}dec: Submit picture level parameters only once
+ Submit PICTURE_PARAMETERS and INVERSE_QUANTIZATION_MATRIX
+ buffers only once per picture. Multiple submission is redundant.
+ Also this modification would fix broken hevc decoding with
+ dependent slice.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1749>
+
+2020-10-31 20:36:13 +0900 Seungha Yang <seungha@centricular.com>
+
+ codecs: h265decocer: Rework for DPB management
+ * Move all DPB bumping process into GstH265Dpb internal
+ * Handle DPB add process in GstH265Dpb struct
+ * Make implementation to be 1:1 mappable with hevc specification
+ * Fix wrong DPB bumping implementation especially when no_output_of_prior_pics_flag
+ was specified.
+ With fixes from Nicolas Dufresne <nicolas.dufresne@collabora.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1748>
+
+2020-10-31 20:31:51 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11h264dec.c:
+ * sys/d3d11/gstd3d11h265dec.c:
+ * sys/d3d11/gstd3d11vp8dec.c:
+ * sys/d3d11/gstd3d11vp9dec.c:
+ d3d11decoder: Get rid of framerate field from pad template
+ Framerate is optional value and we don't have any framerate
+ related restriction for those elements. This commit is to fix
+ negotiation failure when upstream doesn't set framerate on caps.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1747>
+
+2020-10-31 21:46:16 +1100 Jan Schmidt <jan@centricular.com>
+
+ * tests/check/elements/dtls.c:
+ tests: Don't set dtlsenc state before linking.
+ Link the dtlsenc in the testsuite before setting it to paused, as it
+ starts a pad task that can generate a not-linked error otherwise.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1744>
+
+2020-10-31 01:23:36 +1100 Jan Schmidt <jan@centricular.com>
+
+ * tests/check/elements/dtls.c:
+ dtls: Catch bus errors and fail instead of hanging.
+ If the DTLS elements fail, they post a bus error and don't signal any
+ key negotiation. Catch the bus error and fail the test early instead
+ of letting it hang and time out.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1741>
+
+2020-10-30 22:52:18 +1100 Jan Schmidt <jan@centricular.com>
+
+ * ext/sctp/gstsctpdec.c:
+ * ext/sctp/gstsctpenc.c:
+ sctp: Do downward state change logic after chaining up.
+ Call the parent state_change function first when changing state
+ downward, to make sure that the element has stopped before cleaning
+ it up.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1741>
+
+2020-10-30 22:49:22 +1100 Jan Schmidt <jan@centricular.com>
+
+ * ext/dtls/gstdtlsconnection.c:
+ dtls: Avoid bio_buffer assertion on shutdown.
+ On shutdown, a previous iteration of dtsl_connection_process()
+ might be incomplete and leave a partial bio_buffer behind.
+ If the DTLS connection is already marked closed, drop out
+ of dtls_connection_process early without asserting.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1741>
+
+2020-10-30 16:31:18 +1100 Jan Schmidt <jan@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtc: Fix a race on shutdown.
+ The main context can disappear in gst_webrtc_bin_enqueue_task()
+ between checking the is_closed flag and enqueueing a source on the
+ main context. Protect the main context with the object lock instead
+ of the PC lock, and hold a ref briefly to make sure it stays alive.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1741>
+
+2020-07-08 17:24:36 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/gstwebrtcbin.h:
+ * ext/webrtc/gstwebrtcice.c:
+ * ext/webrtc/gstwebrtcice.h:
+ * ext/webrtc/meson.build:
+ * ext/webrtc/sctptransport.c:
+ * ext/webrtc/sctptransport.h:
+ * ext/webrtc/webrtctransceiver.c:
+ * ext/webrtc/webrtctransceiver.h:
+ webrtc: Set the DSCP markings based on the priority
+ This matches how the WebRTC javascript API works and the Chrome implementation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1707>
+
+2020-07-09 13:39:03 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst-libs/gst/webrtc/rtpsender.c:
+ * gst-libs/gst/webrtc/rtpsender.h:
+ rtpsender: Add API to set the priority
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1707>
+
+2020-07-09 13:42:35 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/webrtctransceiver.h:
+ rtptransceiver: Store the SSRC of the current stream
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1707>
+
+2020-07-08 19:13:33 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * gst-libs/gst/webrtc/rtptransceiver.h:
+ * gst-libs/gst/webrtc/webrtc_fwd.h:
+ webrtc: Save the media kind in the transceiver
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1707>
+
+2020-07-09 13:45:20 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Remove unused function
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1707>
+
+2020-10-02 21:38:00 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst-libs/gst/webrtc/rtpreceiver.h:
+ * gst-libs/gst/webrtc/rtpsender.h:
+ * gst-libs/gst/webrtc/rtptransceiver.h:
+ webrtc: Document more objects
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1707>
+
+2020-10-31 00:37:48 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11h265dec.c:
+ * sys/d3d11/gstd3d11vp9dec.c:
+ d3d11decoder: Allow 10bits only profiles
+ HEVC_VLD_Main10 and VP9_VLD_10bit_Profile2 might not support
+ 8bit format (i.e., NV12) depending on GPU vendor.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1742>
+
+2020-10-25 13:33:21 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * sys/decklink/gstdecklink.cpp:
+ decklink: Remove \n from debug output
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721>
+
+2020-10-25 13:32:26 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * sys/decklink/gstdecklink.cpp:
+ * sys/decklink/gstdecklinkaudiosink.cpp:
+ * sys/decklink/gstdecklinkaudiosrc.cpp:
+ * sys/decklink/gstdecklinkvideosink.cpp:
+ * sys/decklink/gstdecklinkvideosrc.cpp:
+ decklink: Correctly indent everything
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721>
+
+2020-10-25 13:30:55 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * sys/decklink/gstdecklink.cpp:
+ * sys/decklink/gstdecklink.h:
+ * sys/decklink/gstdecklinkvideosink.cpp:
+ * sys/decklink/gstdecklinkvideosink.h:
+ * sys/decklink/gstdecklinkvideosrc.cpp:
+ * sys/decklink/gstdecklinkvideosrc.h:
+ decklink: Add a default profile id
+ This causes no changes to the profile but keeps the existing settings.
+ The profile can also be changed from e.g. the card's configuration
+ application and in that case probably should be left alone.
+ The default is the new value as it keeps the profile setting as it is,
+ which is consistent with the previous behaviour in 1.18.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721>
+
+2020-10-25 13:14:11 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * sys/decklink/gstdecklink.cpp:
+ decklink: Mark internal function as static
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721>
+
+2020-10-25 13:13:37 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * sys/decklink/gstdecklink.cpp:
+ decklink: Remove some dead code
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721>
+
+2020-10-30 10:02:32 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * sys/decklink/gstdecklink.cpp:
+ decklink: Update enum value bounds check in gst_decklink_get_mode()
+ The widescreen modes moved after GST_DECKLINK_MODE_2160p60 and using
+ them now would cause an assertion. This is a regression from
+ 309f6187fef890c7ffa49305f38e89beac3b1423.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1737>
+
+2020-08-25 14:56:50 +0100 Chris Bass <floobleflam@gmail.com>
+
+ * ext/ttml/ttmlparse.c:
+ ttmlparse: Handle whitespace before XML declaration
+ When ttmlparse is in, e.g., an MPEG-DASH pipeline, there may be
+ whitespace between successive TTML documents in ttmlparse's accumulated
+ input. As libxml2 will fail to parse documents that have whitespace
+ before the opening XML declaration, ensure that any preceding whitespace
+ is not passed to libxml2.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1539>
+
+2020-08-25 14:54:31 +0100 Chris Bass <floobleflam@gmail.com>
+
+ * ext/ttml/ttmlparse.c:
+ ttmlparse: Ensure only single TTML doc parsed
+ The parser handles only one TTML file at a time, therefore if there are
+ multiple TTML documets in the input, parse only the first.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1539>
+
+2020-10-29 13:43:16 -0400 Xavier Claessens <xavier.claessens@collabora.com>
+
+ * sys/androidmedia/gstamc.c:
+ amc: Fix crash when encoding AVC
+ gstamcvideoenc.c calls gst_amc_avc_profile_to_string() with alternatives
+ set to NULL which causes a crash.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1732>
+
+2020-03-19 15:07:47 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+ * ext/isac/gstisac.c:
+ * ext/isac/gstisacdec.c:
+ * ext/isac/gstisacdec.h:
+ * ext/isac/gstisacenc.c:
+ * ext/isac/gstisacenc.h:
+ * ext/isac/gstisacutils.c:
+ * ext/isac/gstisacutils.h:
+ * ext/isac/meson.build:
+ * ext/meson.build:
+ * meson_options.txt:
+ isac: add iSAC plugin
+ Wrapper on the iSAC reference encoder and decoder from webrtc,
+ see https://en.wikipedia.org/wiki/Internet_Speech_Audio_Codec
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1124>
+
+2020-10-28 11:49:54 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst/transcode/gsttranscodebin.c:
+ transcodebin: Create the decodebin in _init
+ This way user can request pads right from the beginning
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151>
+
+2020-10-25 18:04:05 +0000 Philippe Normand <philn@igalia.com>
+
+ * gst/transcode/gsttranscodebin.c:
+ transcodebin: Accept more than one stream
+ Look-up the stream matching the given ID also after building the stream list
+ from the received collection. Without this change the transcoder would discard
+ the second incoming stream.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151>
+
+2020-03-20 09:27:48 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/transcode/gsttranscodebin.c:
+ * gst/transcode/gsturitranscodebin.c:
+ transcodebin: Port to decodebin3
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151>
+
+2020-03-19 09:35:57 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst-libs/gst/transcoder/gsttranscoder.c:
+ * gst/transcode/gsturitranscodebin.c:
+ uritranscodebin: Move to using a urisourcebin for our source.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151>
+
+2020-03-19 09:34:54 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * gst-libs/gst/transcoder/gsttranscoder.c:
+ transcoder: Base sync transcoding variant on a GMainLoop
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151>
+
+2020-10-29 06:13:05 +0000 Randy Li <ayaka@soulik.info>
+
+ * ext/wayland/gstwaylandsink.c:
+ * ext/wayland/wlwindow.c:
+ * ext/wayland/wlwindow.h:
+ waylandsink: release frame callback when destroyed
+ We would use a frame callback from the surface to indicate
+ that last buffer is rendered, but when we destroy the surface
+ and that callback is not back yet, it may cause the wayland event
+ queue crash.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1729>
+
+2020-10-28 19:00:43 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/rtmp2/gstrtmp2src.c:
+ rtmp2src: Set buffer timestamp on output buffer
+ This timestamp information would be useful for queue2 element
+ when calculating time level and also it makes buffering decision
+ more reliable.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1727>
+
+2020-10-28 00:47:49 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videoprocessor.c:
+ d3d11videoprocessor: Fix wrong input/output supportability check
+ The flag argument of ID3D11VideoProcessorEnumerator::CheckVideoProcessorFormat
+ method is output value, not input.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1726>
+
+2020-10-25 02:27:52 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/nvcodec/gstnvdecoder.c:
+ * sys/nvcodec/gstnvdecoder.h:
+ * sys/nvcodec/gstnvh264dec.c:
+ * sys/nvcodec/gstnvh265dec.c:
+ nvcodec: nvsldec: Add support for CUDA memory
+ Add CUDA memory support. Note that zero copying is not supported yet
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1720>
+
+2020-10-26 05:15:33 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11memory.c:
+ d3d11memory: Adjust log level for some spammy debug messages
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1723>
+
+2020-10-26 05:11:45 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconvert.c:
+ d3d11convert: Use ID3D11VideoProcessor only if device supports colorspace
+ Check whether conversion with given combination of input/output
+ format and dxgi colorspace is supported or not by driver.
+ If not, we should use shader.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1723>
+
+2020-10-26 05:09:40 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videoprocessor.c:
+ * sys/d3d11/gstd3d11videoprocessor.h:
+ d3d11videoprocessor: Add a method for device's conversion caps check
+ Add a wrapper method for
+ ID3D11VideoProcessorEnumerator1::CheckVideoProcessorFormatConversion.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1723>
+
+2020-10-26 05:04:55 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11format.c:
+ d3d11format: Map more colorimetry with dxgi colorspace
+ Map more logically identical set of GstVideoColorimetry formats
+ with dxgi color space.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1723>
+
+2020-10-25 23:13:46 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvapool.c:
+ va: pool: Set the video_alignment after we get image info.
+ The set_format() of the allocator may change the stride of the
+ alloc_info. We should update the video_align.stride_align based
+ on it. Or, we get a warning in gst_video_meta_validate_alignment().
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1698>
+
+2020-10-26 11:50:59 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvah264dec.c:
+ va: h264dec: Set the padding to VideoAlignment's right.
+ In our va implemenation, we just use image's info to map the buffer.
+ The padding info just plays a role as a place holder to expand the
+ allocation size in caps when decoding size is bigger than display
+ size. So the padding_right or padding_left does not change the result.
+ But we find if using padding_left, it is hard to meet the requirement
+ of gst_video_meta_validate_alignment(), when the video meta's stride
+ is different from the allocation width.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1698>
+
+2020-10-26 01:22:12 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvabasedec.c:
+ va: basedec: No need to call base class' decide_allocation().
+ We have already done the jobs in gst_va_base_dec_decide_allocation()
+ and no need to call base class' decide_allocation() again. The base
+ class' decide_allocation() will set_format() again and let use do the
+ image/surface testing again, which is low performance and no needed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1698>
+
+2020-10-20 14:31:22 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: use _update_image_info() to set allocator parameters.
+ Use this standalone function to update the allocator info and make
+ all ensure_image() and mem_alloc() API clean.
+ We also change the default way of using image. We now set the non
+ derive manner as the default manner, and if it fails, then fallback
+ to the derived image manner.
+ On a lot of platforms, the derived image does not have caches, so the
+ read and write operations have very low performance.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1698>
+
+2020-10-20 14:09:35 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: Add a helper function to update the image info.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1698>
+
+2020-10-19 23:32:44 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: Decide the allocator's parameters when set_format().
+ Moving the parameters testing and setting from the allocator_alloc_full()
+ to the allocator_try(). The allocator_alloc_full() will be called every
+ time when we need to allocate a new memory. But all these parameters such
+ as the surface and the image format, rt_format, etc, are unchanged during
+ the whole allocator lifetime. Just setting them in set_format() is enough.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1698>
+
+2020-10-18 17:59:44 +0200 Nicola Murino <nicola.murino@gmail.com>
+
+ * ext/opencv/meson.build:
+ opencv: allow compilation against 4.5.x
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1709>
+
+2020-03-24 09:18:28 -0400 Aaron Boxer <aaron.boxer@collabora.com>
+
+ * gst/videoparsers/gstjpeg2000parse.c:
+ jpeg2000parse: sub-sampling parse should take component into account
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1653>
+
+2020-04-21 14:16:45 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/videoparsers/gstjpeg2000parse.c:
+ jpeg2000parse: no pts interpolation with subframe.
+ The jpeg2000parser must not interpolate PTS with subframes.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1653>
+
+2020-01-13 14:01:19 -0500 Aaron Boxer <aaron.boxer@collabora.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/videoparsers/gstjpeg2000parse.c:
+ jpeg2000parse: support frame and stripe alignment in caps
+ forward alignment and num-stripes caps properties
+ Use caps height when setting caps for subframe
+ We want downstream to use full frame height, not subframe height
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1653>
+
+2020-10-25 11:46:29 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * sys/decklink/gstdecklinkaudiosrc.cpp:
+ * sys/decklink/gstdecklinkvideosrc.cpp:
+ decklink: Reset skip counters when starting the sources
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/378>
+
+2018-05-10 14:05:12 +0300 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * sys/decklink/gstdecklinkaudiosrc.cpp:
+ * sys/decklink/gstdecklinkvideosrc.cpp:
+ decklink*src: Post a warning message on the bus about dropped frames
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/378>
+
+2017-11-28 13:44:18 +0100 Georg Lippitsch <glippitsch@toolsonair.com>
+
+ * sys/decklink/gstdecklinkaudiosrc.cpp:
+ * sys/decklink/gstdecklinkaudiosrc.h:
+ * sys/decklink/gstdecklinkvideosrc.cpp:
+ * sys/decklink/gstdecklinkvideosrc.h:
+ decklink*src: Aggregate dropped frame/packet logging
+ decklink*src currently prints a log entry for every dropped frame and
+ audio packet. That completely spams the logs.
+ This change aggregates information about dropped packets and only prints
+ a message once when dropping starts, and a summary when dropping ends.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/705
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/378>
+
+2020-10-24 20:59:55 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11memory.c:
+ * sys/d3d11/gstd3d11memory.h:
+ d3d11memory: Protect view object with lock
+ Make resource allocation more thread-safe
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1718>
+
+2020-10-24 02:47:22 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconvert.c:
+ * sys/d3d11/gstd3d11videoprocessor.c:
+ * sys/d3d11/gstd3d11videoprocessor.h:
+ d3d11convert: Add support for conversion using ID3D11VideoProcessor
+ Output texture of d3d11 decoder cannot have the bind flag
+ D3D11_BIND_SHADER_RESOURCE (meaning that it cannot be used for shader
+ input resource). So d3d11convert (and it's subclasses) was copying
+ texture into another internal texture to use d3d11 shader.
+ It's obviously overhead and we can avoid texture copy for
+ colorspace conversion or resizing via ID3D11VideoProcessor
+ as it supports decoder output texture.
+ This commit would be a visible optimization for d3d11 decoder with
+ d3d11compositor use case because we can avoid texture copy per frame.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1718>
+
+2020-10-24 02:33:29 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11memory.c:
+ * sys/d3d11/gstd3d11memory.h:
+ d3d11memory: Store ID3D11VideoProcessorOutputView object
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1718>
+
+2020-10-23 22:29:57 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ codecs: h265decoder: Fix picture leaks because of reference set.
+ The last frame's reference set has no one to cleanup. We need to
+ clean all pictures in the stop() func.
+ We also add a helper function to cleanup all the pictures in the
+ reference picture set.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1717>
+
+2020-10-23 21:21:05 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ codecs: h265decoder: Fix 3 ref array leaks in finalize.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1717>
+
+2020-10-23 16:59:00 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11videoprocessor.c:
+ * sys/d3d11/gstd3d11videoprocessor.h:
+ * sys/d3d11/gstd3d11window.cpp:
+ d3d11window: Reuse ID3D11VideoProcessorInputView if possible
+ GstMemory object could be disposed if GstBuffer is not allocated
+ by GstD3D11BufferPool such as via gst_buffer_copy() and/or
+ gst_buffer_make_writable(). So attaching qdata on GstMemory
+ object would cause unnecessary view alloc/free.
+ By using view pool which is implemented in GstD3D11Allocator,
+ we can avoid redundant view alloc/free.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1716>
+
+2020-10-21 16:28:11 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11memory.c:
+ * sys/d3d11/gstd3d11memory.h:
+ d3d11memory: Implement ID3D11VideoProcessorInputView pool
+ Similar to ID3D11VideoDecoderOutputView pool implementation
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1716>
+
+2018-04-07 16:33:47 -0400 Xavier Claessens <xavier.claessens@collabora.com>
+
+ * gst-libs/gst/audio/meson.build:
+ * gst-libs/gst/codecparsers/meson.build:
+ * gst-libs/gst/insertbin/meson.build:
+ * gst-libs/gst/interfaces/meson.build:
+ * gst-libs/gst/mpegts/meson.build:
+ * gst-libs/gst/player/meson.build:
+ * gst-libs/gst/sctp/meson.build:
+ * gst-libs/gst/transcoder/meson.build:
+ * gst-libs/gst/vulkan/meson.build:
+ * gst-libs/gst/wayland/meson.build:
+ * gst-libs/gst/webrtc/meson.build:
+ * meson.build:
+ * pkgconfig/.gitignore:
+ * pkgconfig/gstreamer-bad-audio-uninstalled.pc.in:
+ * pkgconfig/gstreamer-bad-audio.pc.in:
+ * pkgconfig/gstreamer-codecparsers-uninstalled.pc.in:
+ * pkgconfig/gstreamer-codecparsers.pc.in:
+ * pkgconfig/gstreamer-insertbin-uninstalled.pc.in:
+ * pkgconfig/gstreamer-insertbin.pc.in:
+ * pkgconfig/gstreamer-mpegts-uninstalled.pc.in:
+ * pkgconfig/gstreamer-mpegts.pc.in:
+ * pkgconfig/gstreamer-photography-uninstalled.pc.in:
+ * pkgconfig/gstreamer-photography.pc.in:
+ * pkgconfig/gstreamer-player-uninstalled.pc.in:
+ * pkgconfig/gstreamer-player.pc.in:
+ * pkgconfig/gstreamer-plugins-bad-uninstalled.pc.in:
+ * pkgconfig/gstreamer-plugins-bad.pc.in:
+ * pkgconfig/gstreamer-sctp-uninstalled.pc.in:
+ * pkgconfig/gstreamer-sctp.pc.in:
+ * pkgconfig/gstreamer-transcoder-uninstalled.pc.in:
+ * pkgconfig/gstreamer-transcoder.pc.in:
+ * pkgconfig/gstreamer-vulkan-uninstalled.pc.in:
+ * pkgconfig/gstreamer-vulkan-wayland-uninstalled.pc.in:
+ * pkgconfig/gstreamer-vulkan-wayland.pc.in:
+ * pkgconfig/gstreamer-vulkan-xcb-uninstalled.pc.in:
+ * pkgconfig/gstreamer-vulkan-xcb.pc.in:
+ * pkgconfig/gstreamer-vulkan.pc.in:
+ * pkgconfig/gstreamer-wayland-uninstalled.pc.in:
+ * pkgconfig/gstreamer-wayland.pc.in:
+ * pkgconfig/gstreamer-webrtc-uninstalled.pc.in:
+ * pkgconfig/gstreamer-webrtc.pc.in:
+ * pkgconfig/meson.build:
+ Meson: Use pkg-config generator
+
+2020-07-30 20:23:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ * gst-libs/gst/codecs/gsth265decoder.h:
+ * sys/d3d11/gstd3d11h265dec.c:
+ * sys/nvcodec/gstnvh265dec.c:
+ h265decoder: Add support for l0/l1
+ Add support for reference list needed for VA-API and some V4L2 decoders.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1713>
+
+2020-07-28 18:37:38 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst-libs/gst/codecs/gsth265decoder.c:
+ * gst-libs/gst/codecs/gsth265decoder.h:
+ * gst-libs/gst/codecs/gsth265picture.c:
+ * gst-libs/gst/codecs/gsth265picture.h:
+ * sys/d3d11/gstd3d11h265dec.c:
+ * sys/nvcodec/gstnvh265dec.c:
+ h265decoder: Sync with the H264 implementation
+ This ensures that we get the last reference to picture being outputed,
+ avoiding GstBuffer structure copies and simplifying the buffer management.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1713>
+
+2020-10-20 17:31:17 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11decoder.c:
+ * sys/d3d11/gstd3d11decoder.h:
+ * sys/d3d11/gstd3d11h264dec.c:
+ * sys/d3d11/gstd3d11h265dec.c:
+ * sys/d3d11/gstd3d11vp8dec.c:
+ * sys/d3d11/gstd3d11vp9dec.c:
+ d3d11decoder: Directly access ID3D11VideoDecoderOutputView for decoding
+ Decoder output view is stored in GstD3D11Memory object instead of
+ wrapper struct now. So qdata is no more required.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1712>
+
+2020-10-20 01:59:35 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11memory.c:
+ * sys/d3d11/gstd3d11memory.h:
+ d3d11memory: Implement ID3D11VideoDecoderOutputView pool
+ Similar to texture-array pool, we can reuse decoder output view
+ since the life time of output view is identical to that of texture-array.
+ In this way, we can avoid frequent output view alloc/free.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1712>
+
+2020-10-04 23:39:05 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11memory.c:
+ d3d11memory: Move to GArray to store texture-array status
+ The size D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION is 2048
+ which is too large in practice especially for a texture
+ of dpb
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1712>
+
+2020-10-12 19:20:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvabasedec.h:
+ * sys/va/gstvadecoder.c:
+ * sys/va/gstvadecoder.h:
+ * sys/va/gstvaprofile.c:
+ * sys/va/gstvavp9dec.c:
+ * sys/va/gstvavp9dec.h:
+ * sys/va/meson.build:
+ * sys/va/plugin.c:
+ va: Add VP9 decoder
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1702>
+
+2020-10-16 15:46:20 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/wpe/gstwpesrc.cpp:
+ wpe: Convert launch lines to markdown and move since tag
+ Seems like the examples don't appear in the generated docs because the Since tag
+ was badly positioned in the doc blurb.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1706>
+
+2020-10-16 10:35:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/codecs/gstvp9decoder.c:
+ * gst-libs/gst/codecs/gstvp9picture.h:
+ codecs: vp9decoder: Add segmentation to picture.
+ VA-API needs AC and DC quant scales for both luma and chroma, and the loop
+ filter level for current frame, but these values are not available outside
+ the private GstVp9Parser structure. And these values may change from frame
+ to frame, so they are picture specific.
+ This patch add GstVp9Segmentation structure array to GstVp9Picture to expose
+ it to derived classes. This approach is safer than passing the parser at
+ picture handling flow.
+ Also, this patch, in order to solve Documentation CI, mark as private the
+ GstVp9Picture structure.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1700>
+
+2020-10-12 11:07:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/codecs/gstvp9decoder.c:
+ * gst-libs/gst/codecs/gstvp9decoder.h:
+ * sys/d3d11/gstd3d11vp9dec.c:
+ codecs: vp9decoder: Pass parser as new_sequence() parameter.
+ In order to know the chroma format, besides profile, subsampling_x and
+ subsampling_y are needed (Spec 7.2.2 Color config semantics). These values are
+ in GstVp9Parser but not in GstVp9Framehdr.
+ Also, bit_depth is available in parser but not frame header. Evenmore, those
+ values are copied to picture structure later.
+ In case of VA-API, to configure the pipeline, it is require to know the chroma
+ format and depth.
+ It is possible to know chroma and depth through caps coming from vp9parser, but
+ it requires string parsing. It would be less error prone to get these values
+ through the parser structure at new_sequence() virtual method.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1700>
+
+2020-09-23 16:43:30 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtp/gstrtpsrc.c:
+ rtpsrc: Cleanup on BYE, timeout or when pad is reused
+ In this patch, we enabled 'autoremove' feature of rtpbin and also call
+ 'clear-ssrc' on the rtpssrcdemux element when a pad is being reused. This
+ ensure that the jitterbuffer is removed and no threads accumulates.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1575>
+
+2020-09-04 14:18:13 +0300 George Kiagiadakis <george.kiagiadakis@collabora.com>
+
+ * gst/rtp/gstrtpsrc.c:
+ rtpsrc: re-use the same src pad for streams that have the same payload type
+ Also use payload type when naming pads, this will make it easier to identify
+ pads and simplify the code.
+ Fixes #1395
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1575>
+
+2020-06-03 01:26:12 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11compositor.c:
+ * sys/d3d11/gstd3d11compositor.h:
+ * sys/d3d11/gstd3d11compositorbin.c:
+ * sys/d3d11/gstd3d11compositorbin.h:
+ * sys/d3d11/meson.build:
+ * sys/d3d11/plugin.c:
+ d3d11: Introduce d3d11compositor element
+ Add new video composition element which is equivalent to compositor
+ and glvideomixer elements. When d3d11 decoder elements are used,
+ d3d11compositor can do efficient graphics memory handling
+ (zero copying or at least copying memory on GPU memory space).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1323>
+
+2020-08-05 17:27:30 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11shader.c:
+ d3d11shader: Allow drawing without shader resource view
+ ... for the case that we are rendering on target without input texture.
+ For example, we might want to draw arbitrary shape on render target view
+ without shader resource view.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1323>
+
+2020-08-03 03:19:34 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconvert.c:
+ * sys/d3d11/gstd3d11colorconvert.h:
+ * sys/d3d11/plugin.c:
+ d3d11convert: Add new subclasses for only color convert or resize
+ New d3d11colorconvert and d3d11scale elements will perform only
+ colorspace conversion and rescale, respectively. Those new elements
+ would be useful when only colorspace conversion or rescale is required
+ and the other part should be done by another elements.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1323>
+
+2020-08-01 20:16:52 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconverter.c:
+ * sys/d3d11/gstd3d11colorconverter.h:
+ d3d11colorconverter: Allow setting alpha value to use
+ ... used for reordering case for now. In other words, non-alpha formats
+ such as NV12 is not supported case yet.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1323>
+
+2020-06-03 01:20:41 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconvert.c:
+ * sys/d3d11/gstd3d11colorconverter.c:
+ * sys/d3d11/gstd3d11colorconverter.h:
+ * sys/d3d11/gstd3d11decoder.c:
+ * sys/d3d11/gstd3d11overlaycompositor.c:
+ * sys/d3d11/gstd3d11shader.c:
+ * sys/d3d11/gstd3d11shader.h:
+ * sys/d3d11/gstd3d11window.cpp:
+ d3d11colorconverter: Add support conversion with blending
+ This is pre-work for d3d11compositor support
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1323>
+
+2020-06-03 00:59:15 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconverter.c:
+ * sys/d3d11/gstd3d11colorconverter.h:
+ d3d11colorconverter: Add method to support updating destination rect
+ It's equivalent to GST_VIDEO_CONVERTER_OPT_DEST_* options of GstVideoConverter
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1323>
+
+2020-06-03 00:46:13 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconverter.c:
+ * sys/d3d11/gstd3d11colorconverter.h:
+ * sys/d3d11/gstd3d11decoder.c:
+ * sys/d3d11/gstd3d11overlaycompositor.c:
+ * sys/d3d11/gstd3d11overlaycompositor.h:
+ * sys/d3d11/gstd3d11window.cpp:
+ d3d11: Clarify target rect to be updated
+ Rename internal methods to clarify which rect (i.e., input or output)
+ should be updated
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1323>
+
+2020-10-02 10:02:38 -0400 Julian Bouzas <julian.bouzas@collabora.com>
+
+ * sys/nvcodec/gstnvdec.c:
+ * sys/nvcodec/gstnvdec.h:
+ nvcodec: Report latency in decoder based on max-display-delay
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2020-10-02 09:22:34 -0400 Julian Bouzas <julian.bouzas@collabora.com>
+
+ * sys/nvcodec/gstnvdec.c:
+ * sys/nvcodec/gstnvdec.h:
+ nvcodec: Add max-display-delay decoder property
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2020-09-24 11:25:33 -0400 Julian Bouzas <julian.bouzas@collabora.com>
+
+ * sys/nvcodec/gstnvdec.c:
+ nvcodec: Fix compiler error if OpenGL is not enabled
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2020-09-24 10:33:58 -0400 Julian Bouzas <julian.bouzas@collabora.com>
+
+ * sys/nvcodec/gstnvdecoder.c:
+ nvcodec: Add missing CUDAMemory src caps in h264 decoder
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2020-09-23 13:49:43 -0400 Julian Bouzas <julian.bouzas@collabora.com>
+
+ * sys/nvcodec/gstnvh264enc.c:
+ * sys/nvcodec/gstnvh265enc.c:
+ nvcodec: Add missing CUDAMemory sink caps in h264 and h265 encoders
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2020-09-22 13:07:19 -0400 Julian Bouzas <julian.bouzas@collabora.com>
+
+ * sys/nvcodec/gstcudadownload.c:
+ nvcodec: Fix description of cudadownload element
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2019-08-11 15:02:04 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * tests/check/elements/cudaconvert.c:
+ * tests/check/elements/cudafilter.c:
+ * tests/check/meson.build:
+ tests: Add CUDA filter unit tests
+ Adding a test for buffer meta and colorspace conversion
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2019-10-16 22:43:09 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * sys/nvcodec/gstcudafilter.c:
+ * sys/nvcodec/gstcudascale.c:
+ * sys/nvcodec/gstcudascale.h:
+ * sys/nvcodec/meson.build:
+ nvcodec: Add CUDA video scale element
+ Add new element for video resizing using CUDA
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2019-10-16 22:42:55 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * sys/nvcodec/gstcudabasefilter.c:
+ * sys/nvcodec/gstcudabasefilter.h:
+ * sys/nvcodec/gstcudaconvert.c:
+ * sys/nvcodec/gstcudaconvert.h:
+ * sys/nvcodec/gstcudafilter.c:
+ * sys/nvcodec/gstcudafilter.h:
+ * sys/nvcodec/meson.build:
+ * sys/nvcodec/plugin.c:
+ nvcodec: Add CUDA video convert element
+ Add new element for colorspace conversion using CUDA.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2019-10-16 22:42:39 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * sys/nvcodec/cuda-converter.c:
+ * sys/nvcodec/cuda-converter.h:
+ * sys/nvcodec/gstcudacontext.c:
+ * sys/nvcodec/gstcudacontext.h:
+ * sys/nvcodec/gstcudaloader.c:
+ * sys/nvcodec/gstcudaloader.h:
+ * sys/nvcodec/meson.build:
+ * sys/nvcodec/stub/cuda.h:
+ nvcodec: Add generic CUDA video convert object
+ Introducing generic video convert object similar to video-converter
+ but using CUDA.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2019-10-16 22:42:24 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * sys/nvcodec/gstcudanvrtc.c:
+ * sys/nvcodec/gstcudanvrtc.h:
+ * sys/nvcodec/gstnvrtcloader.c:
+ * sys/nvcodec/gstnvrtcloader.h:
+ * sys/nvcodec/meson.build:
+ * sys/nvcodec/stub/nvrtc.h:
+ nvcodec: Add support runtime CUDA kernel source compilation
+ Add util functions for runtime CUDA kernel source compilation
+ using NVRTC library. Like other nvcodec dependent libraries,
+ NVRTC library will be loaded via g_module_open.
+ Note that the NVRTC library naming is not g_module_open friendly
+ on Windows.
+ (i.e., nvrtc64_{CUDA major version}{CUDA minor version}.dll).
+ So users can specify the dll name using GST_NVCODEC_NVRTC_LIBNAME
+ environment.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2019-10-16 22:42:06 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * sys/nvcodec/gstcudabasetransform.c:
+ * sys/nvcodec/gstcudabasetransform.h:
+ * sys/nvcodec/gstcudadownload.c:
+ * sys/nvcodec/gstcudadownload.h:
+ * sys/nvcodec/gstcudaupload.c:
+ * sys/nvcodec/gstcudaupload.h:
+ * sys/nvcodec/meson.build:
+ * sys/nvcodec/plugin.c:
+ nvcodec: Add CUDA upload/download elements with base class for CUDA filters
+ Similar to glupload/gldownload elements but for CUDA memory.
+ It will help transfer memory between system and nvidia GPU
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2019-10-16 22:21:05 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * sys/nvcodec/gstnvbaseenc.c:
+ * sys/nvcodec/gstnvdec.c:
+ nvcodec: Peer direct access support
+ If support direct access each other, use device to device memory copy
+ without staging host memory
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2019-08-30 17:19:44 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * sys/nvcodec/gstcudacontext.c:
+ * sys/nvcodec/gstcudacontext.h:
+ * sys/nvcodec/gstcudaloader.c:
+ * sys/nvcodec/gstcudaloader.h:
+ cudacontext: Enable direct CUDA memory access over multiple GPUs
+ If each device context can access each other, enable peer access
+ for better interoperability.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2019-08-30 13:57:15 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * sys/nvcodec/gstnvbaseenc.c:
+ * sys/nvcodec/gstnvbaseenc.h:
+ * sys/nvcodec/gstnvenc.c:
+ nvenc: Support CUDA buffer pool
+ When upstream support CUDA memory (only nvdec for now), we will create
+ CUDA buffer pool.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2019-08-30 13:55:25 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * sys/nvcodec/gstnvdec.c:
+ * sys/nvcodec/gstnvdec.h:
+ nvdec: Support CUDA buffer pool
+ If downstream can accept CUDA memory caps feature (currently nvenc only),
+ always CUDA memory is preferred.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2019-08-19 18:02:56 +0900 Seungha Yang <seungha.yang@navercorp.com>
+
+ * sys/nvcodec/gstcudabufferpool.c:
+ * sys/nvcodec/gstcudabufferpool.h:
+ * sys/nvcodec/gstcudaloader.c:
+ * sys/nvcodec/gstcudaloader.h:
+ * sys/nvcodec/gstcudamemory.c:
+ * sys/nvcodec/gstcudamemory.h:
+ * sys/nvcodec/meson.build:
+ * sys/nvcodec/stub/cuda.h:
+ nvcodec: Add CUDA specific memory and bufferpool
+ Introducing CUDA buffer pool with generic CUDA memory support.
+ Likewise GL memory, any elements which are able to access CUDA device
+ memory directly can map this CUDA memory without upload/download
+ overhead via the "GST_MAP_CUDA" map flag.
+ Also usual GstMemory map/unmap is also possible with internal staging memory.
+ For staging, CUDA Host allocated memory is used (see CuMemAllocHost API).
+ The memory is allowing system access but has lower overhead
+ during GPU upload/download than normal system memory.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1633>
+
+2020-10-16 12:29:02 +0100 Andrew Wesie <andrew@theori.io>
+
+ * gst-libs/gst/codecparsers/gsth264parser.c:
+ codecparsers: h264parser: guard against ref_pic_markings overflow
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1703>
+
+2020-10-16 00:48:01 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/hls/gsthlssink2.c:
+ hlssink2: fix and flesh out docs
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1699>
+
+2020-10-15 18:26:48 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/dash/gstxmlhelper.c:
+ * meson.build:
+ meson: update glib minimum version to 2.56
+ In order to support the symbol g_enum_to_string in various
+ project using GStreamer ( gst-validate etc.), the glib minimum
+ version should be 2.56.0.
+ Remove compat code as glib requirement
+ is now > 2.56
+ Version used by Ubuntu 18.04 LTS
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1695>
+
+2020-10-12 01:04:13 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/d3d11/gstd3d11vp8dec.c:
+ d3d11: vp8dec: No need to check show_frame flag when output_picture.
+ The VP8 base class has already handled it for us.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1670>
+
+2020-10-12 00:57:24 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecs/gstvp8decoder.c:
+ codecs: vp8decoder: handle the show_frame check in base class.
+ Move the show_frame check from sub class to vp8 decoder's base class.
+ Calling the sub class' output_picture() function only when the frame
+ is displayed and marking the other automatically as decode only.
+ This is done to avoid logic and code repetition in subclasses.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1670>
+
+2020-10-16 02:06:49 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gstvp9decoder.c:
+ * sys/d3d11/gstd3d11vp9dec.c:
+ codecs: vp9decoder: handle the show_frame check in base class
+ Same as vp8 decoder update https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1670
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1697>
+
+2020-10-15 12:08:19 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codecvp8dec.c:
+ v4l2codecs: vp8: Allow baseclass from skipping frames
+ In preparation for !1670, this will allow the base class from skipping frames
+ that should not be displayed. Previously it would complain about unordered
+ decoding taking place in the driver.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1696>
+
+2020-10-15 12:05:45 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2decoder.c:
+ v4l2codecs: decoder: Unmark previously pending request
+ requests are executed in order, so while dequeuing sink buffers for previous
+ request, also mark these request as no longer pending. This will allow reusing
+ the request later.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1696>
+
+2020-10-15 11:35:04 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2decoder.c:
+ v4l2codecs: decoder: Properly remove pending requests
+ Pass the pointer instead of NULL in order to find and remove properly any
+ pending request from the queue. This coding error was leading to use after
+ free in error and early exit cases.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1696>
+
+2020-10-14 19:04:44 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvabasedec.c:
+ va: basedec: Create the other pool anyway.
+ Fix a bug in _create_other_pool(). The old way of checking the
+ base->other_pool make that other_pool never be changed until the
+ gst_va_base_dec_stop() to stop the current decoding context.
+ But in some stream, the resolution may change during the decoding
+ process, and we need to re-negotiate the buffer pool. Then, the
+ old other_pool can not be clean correctly and the new correct one
+ can not be created.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1692>
+
+2020-10-14 16:54:54 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvabasedec.c:
+ va: basedec: Should unmap src frame when dst frame map failing.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1692>
+
+2020-10-13 15:28:24 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvapool.c:
+ va: bufferpool: use release_buffer to clean the mem.
+ The current bufferpool wastes all pre-allocate buffers when the
+ buffer pool is actived.
+ The pool->priv->size is 0 for va buffer pool. And every time, the
+ reset_buffer() will clean all mem and make the buffer size 0, that
+ can cache the gst_buffer in the buffer pool.
+ But when the buffer pool is activing, the default_start() just
+ allocate the buffer and release_buffer() immediately, all the pre
+ allocated buffers and surfaces are destroyed because of
+ gst_buffer_get_size (buffer) != pool->priv->size.
+ We need to use release_buffer() to do the clean job at the pool
+ start time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1686>
+
+2020-10-04 02:02:16 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/videoparsers/gsth265parse.c:
+ h265parse: Don't enable passthrough by default
+ SEI messages contain various information which wouldn't be conveyed
+ by using upstream CAPS (HDR, timecode for example).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1639>
+
+2020-10-13 13:11:06 +0300 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/opencv/gstcameracalibrate.cpp:
+ cameracalibrate: Improve gst-inspect documentation
+ Thanks to @kazz_naka on Twitter
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1691>
+
+2020-10-07 21:13:09 +1100 Matthew Waters <matthew@centricular.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ * ext/wpe/gstwpesrc.cpp:
+ wpesrc: add some debug logging around WPEView creation/destruction
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1663>
+
+2020-10-07 21:14:55 +1100 Matthew Waters <matthew@centricular.com>
+
+ * ext/wpe/gstwpesrc.cpp:
+ wpesrc: fix a memory leak of the bytes
+ free the previous GBytes if load-bytes is called multiple times
+ before view creation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1663>
+
+2020-10-06 22:19:21 +1100 Matthew Waters <matthew@centricular.com>
+
+ * ext/wpe/gstwpesrc.cpp:
+ wpesrc: only create webview if not already created
+ e.g. _decide_allocation() can be called multiple times throughout the
+ element's lifetime and we only want to create the view once rather than
+ overwriting.
+ Fixes a leak of the WPEView under certain circumstances.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1663>
+
+2020-10-02 12:06:59 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ wpe: free a previous pending image/shm buffer
+ Don't blindly overwrite a possibly previously set buffer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1663>
+
+2020-10-12 14:15:49 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * ext/srt/gstsrtsrc.c:
+ srtsrc: Prevent `delay` from being negative
+ `delay` should be a GstClockTimeDiff since SRT time is int64_t.
+ All values are in local time so we should never see a srctime that's in
+ the future. If we do, clamp the delay to 0 and warn about it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1674>
+
+2020-10-12 14:12:24 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * ext/srt/gstsrtsrc.c:
+ srtsrc: Don't calculate a delay if the srctime is 0
+ A zero srctime is a missing srctime. Apparently this can happen when
+ ["the connection is not between SRT peers or if Timestamp-Based Packet
+ Delivery mode (TSBPDMODE) is not enabled"][1] so it may not apply to us,
+ but it's best to be defensive.
+ [1]: https://github.com/Haivision/srt/blob/v1.4.2/docs/API.md#sending-and-receiving
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1674>
+
+2020-10-12 14:09:28 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * ext/srt/gstsrtsrc.c:
+ srtsrc: Defend against missing clock
+ If we don't have a clock, stop the source instead of asserting in
+ gst_clock_get_time. This can happen when the element is removed from the
+ pipeline while it's playing.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1674>
+
+2020-10-12 13:56:50 +0200 Marc Leeman <m.leeman@televic.com>
+
+ * gst/rtp/gstrtpsink.h:
+ rtpmanagerbad: remove duplicate parent declaration
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1689>
+
+2020-10-12 11:55:46 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/rtmp2/gstrtmp2sink.c:
+ rtmp2sink: fix since marker on new "stop-commands" property
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1687>
+
+2020-10-09 16:00:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvabasedec.c:
+ * sys/va/gstvabasedec.h:
+ * sys/va/gstvah264dec.c:
+ * sys/va/gstvavp8dec.c:
+ va: basedec: copy frames logic to decide_allocation()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1673>
+
+2020-10-09 15:47:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvabasedec.c:
+ va: basedec: refactor the other video pool instantiation
+ Just a code clean up
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1673>
+
+2020-10-08 19:39:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvabasedec.c:
+ * sys/va/gstvabasedec.h:
+ * sys/va/gstvah264dec.c:
+ * sys/va/gstvavp8dec.c:
+ * sys/va/meson.build:
+ va: basedec: add gstvabasedec helper
+ This is a helper for all decoders.
+ It is not an abstract subclass, just merely a helper that avoids code
+ duplication among the decoders.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1673>
+
+2020-10-09 10:33:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavp8dec.c:
+ va: vp8dec: add element documentation
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1673>
+
+2020-10-09 12:27:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvah264dec.c:
+ va: h264dec: set video alignment definition earlier
+ This patch renames need_cropping variable to need_videoalign which is clearer
+ with its function. And now GstVideoAlignment is part of GstVaH264Dec structure,
+ so it can be set earlier.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1673>
+
+2020-10-05 16:40:55 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/dtls/gstdtlsconnection.c:
+ dtlsconnection: Ignore OpenSSL system call errors
+ OpenSSL shouldn't be making real system calls, so we can safely
+ ignore syscall errors. System interactions should happen through
+ our BIO. So especially don't look at the system's errno, as it
+ should be meaningless.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1656>
+
+2020-09-12 02:48:43 +0200 Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+
+ * tests/check/elements/svthevcenc.c:
+ tests: svthevcenc: Fix test_encode_simple
+ Pick the same I420 format the other test use. Without this, the source
+ picks AYUV64, which fails.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1573>
+
+2020-10-07 18:03:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ * sys/va/gstvaallocator.h:
+ * sys/va/gstvah264dec.c:
+ * sys/va/gstvapool.c:
+ * sys/va/gstvapool.h:
+ * sys/va/gstvavp8dec.c:
+ * sys/va/gstvavpp.c:
+ va: allocator: add _set_format() and _get_format()
+ Since allocators keep an available memory queue to reuse, video format and usage
+ hint are now persistant while allocator's memories are around.
+ This patch adds _set_format() and _get_format() for both VA allocators.
+ _set_format() validates if given format can be used or reused. If no allocated
+ surface previously it creates a dummy one to fetch its offsets and
+ strides. Updated info is returned to callee.
+ GstVaPool uses _set_format() at config to verify the allocator capacity and to
+ get the surfaces offsets and strides, which are going to be used by the video
+ meta.
+ Allocator extracted caps are compared with caps from config and if they have
+ different strides or offsets, force_videometa is set.
+ A new bufferpool method gst_va_pool_requires_video_meta() is added return the
+ value of force_videometa. This value is checked in order to know if decoders
+ need to copy the surface if downstream doesn't announce video meta support.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667>
+
+2020-10-08 14:10:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvacaps.c:
+ * sys/va/gstvacaps.h:
+ va: caps: added gst_caps_is_raw()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667>
+
+2020-10-08 10:26:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvapool.c:
+ va: pool: call parent's start() method
+ Without preallocating buffers and memories a deadlock in pool allocator is
+ highly probably since it might hit the case were buffer is returned to the pool
+ but their memories are still hold by a copy downstream, without other
+ preallocated buffers available.
+ This kind of a hack, where buffer_reset() follow the normal path if it's called
+ from start().
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667>
+
+2020-10-07 16:18:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvapool.c:
+ va: pool: fix log's object
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667>
+
+2020-10-08 10:30:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: remove noisy log message
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667>
+
+2020-10-07 11:08:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: add a todo for dmabuf_memories_setup()
+ It would be nice to add a surface pool for this type of surface allocation in
+ order to have a better control of them.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667>
+
+2020-10-07 10:16:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: add a surface counter
+ Every time a new surface is created the counter increases by one, and when it is
+ destroyed (or will be destroyed in case of GstVaAllocator), the counter is
+ decreased. Then, at allocator dispose, it is warning if the counter is not zero.
+ This counter will be also used to check if the allocator can change its
+ configuration if the counter is zero or can not.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667>
+
+2020-10-06 20:01:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: remove GstVideoInfo from GstVaBufferSurface
+ Don't store it them anymore since it is related with the negotiated stream and
+ not the concrete buffer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667>
+
+2020-10-06 19:54:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ * sys/va/gstvaallocator.h:
+ * sys/va/gstvadecoder.c:
+ * sys/va/gstvavpp.c:
+ va: remove GstVideoInfo parameter from _get_surface() functions
+ There shouldn't be need to retrieve GstVideoInfo per buffer or memory since it
+ is the same for all the negotiated stream.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667>
+
+2020-10-06 19:40:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvavpp.c:
+ va: vpp: don't fetch video info from buffer
+ Instead of fetching video info from the buffer, use the already set ones.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667>
+
+2020-10-07 12:49:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvah264dec.c:
+ * sys/va/gstvavp8dec.c:
+ * sys/va/gstvavpp.c:
+ va: dec, vpp: don't get buffer size from allocators
+ Since buffer size is now ignored by bufferpool there's no need to get tha value
+ from the allocator.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667>
+
+2020-10-04 11:14:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvapool.c:
+ va: pool: ignore size in config
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667>
+
+2020-10-05 11:07:25 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+ * gst/videoparsers/gsth265parse.c:
+ h265parse: set interlace-mode=interleaved on interlaced content
+ interlace-mode=alternate is a special case of interlace-mode=interleaved
+ where the fields are split using two different buffers.
+ We should use the latter instead of the former to no break compat with
+ elements supporting only 'interleaved'.
+ Decoders producing alternate, such as OMX on the Zynq, should change the
+ interlace-mode on their output caps.
+ Fix https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/825
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1655>
+
+2020-10-09 10:24:50 +0200 Jacek Tomaszewski <lord.jacold@gmail.com>
+
+ * COPYING:
+ * COPYING.LIB:
+ Replace LGPL v2 with LGPL v2.1 in COPYING and remove COPYING.LIB
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1631>
+
+2020-10-02 11:42:07 +0200 Jacek Tomaszewski <lord.jacold@gmail.com>
+
+ * COPYING:
+ Replace GPL v2 with LGPL v2 in COPYING file
+ Fixes #1422
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1422
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1631>
+
+2020-10-08 17:52:05 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * ext/srt/gstsrtsink.c:
+ srt: Consume the error from gst_srt_object_write
+ Instead of leaking it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1668>
+
+2020-10-08 17:48:20 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * ext/srt/gstsrtobject.c:
+ srt: Check socket state before retrieving payload size
+ The connection might be broken, which we should detect instead of just
+ aborting the write.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1669>
+
+2020-10-08 18:25:59 +0200 Jakub Adam <jakub.adam@collabora.com>
+
+ * ext/x265/gstx265enc.c:
+ x265enc: fix deadlock on reconfig
+ Don't attempt to obtain encoder lock that is already held by
+ gst_x265_enc_encode_frame().
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1671>
+
+2020-10-07 11:04:30 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * pkgconfig/gstreamer-webrtc-uninstalled.pc.in:
+ * pkgconfig/gstreamer-webrtc.pc.in:
+ webrtc: Require gstreamer-sdp in the pkg-config file
+ Some headers include API from it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1660>
+
+2020-10-06 11:45:36 +0200 Edward Hervey <edward@centricular.com>
+
+ * ext/srt/gstsrtobject.c:
+ * ext/srt/gstsrtobject.h:
+ * ext/srt/gstsrtsrc.c:
+ * ext/srt/gstsrtsrc.h:
+ srtsrc: Fix timestamping
+ SRT provides the original timestamp of a packet (with drift/skew corrected for
+ local clock), which is what should be used for timestamping the outgoing
+ buffers. This ensures that we output the packets with the same timestamp (and by
+ extension rate) as the original feed.
+ Also detect if packets were dropped (by checking the sequence number) and
+ properly set DISCONT flag on the outgoing buffer.
+ Finally answer the latency queries
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1658>
+
+2020-10-07 05:05:25 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfsourcereader.cpp:
+ mfvideosrc: Use only the first video stream per device
+ Non-first video stream might not be working with current
+ implementation. It could be non-video (e.g., photo source) and then
+ ReadSample() might be blocked forever.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1661>
+
+2020-10-08 03:15:21 +0900 Seungha Yang <seungha@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * sys/decklink/gstdecklink.cpp:
+ * sys/decklink/gstdecklinkvideosink.cpp:
+ * sys/decklink/gstdecklinkvideosrc.cpp:
+ decklink: Update doc
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1665>
+
+2020-10-08 01:39:42 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/decklink/win/DeckLinkAPI.h:
+ * sys/decklink/win/DeckLinkAPI_i.c:
+ decklink: Update Windows headers with SDK 11.2
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1665>
+
+2020-10-08 01:33:35 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/decklink/osx/DeckLinkAPI.h:
+ * sys/decklink/osx/DeckLinkAPIConfiguration.h:
+ * sys/decklink/osx/DeckLinkAPIDeckControl.h:
+ * sys/decklink/osx/DeckLinkAPIDiscovery.h:
+ * sys/decklink/osx/DeckLinkAPIDispatch.cpp:
+ * sys/decklink/osx/DeckLinkAPIModes.h:
+ * sys/decklink/osx/DeckLinkAPIStreaming.h:
+ * sys/decklink/osx/DeckLinkAPITypes.h:
+ * sys/decklink/osx/DeckLinkAPIVersion.h:
+ decklink: Update OSX headers with SDK 11.2
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1665>
+
+2019-06-25 11:51:32 +0200 Tim <Timothee.Autin@ifremer.fr>
+
+ * sys/decklink/gstdecklink.cpp:
+ * sys/decklink/gstdecklink.h:
+ * sys/decklink/gstdecklinkvideosink.cpp:
+ * sys/decklink/gstdecklinkvideosink.h:
+ * sys/decklink/gstdecklinkvideosrc.cpp:
+ * sys/decklink/gstdecklinkvideosrc.h:
+ * sys/decklink/linux/DeckLinkAPI.h:
+ * sys/decklink/linux/DeckLinkAPIConfiguration.h:
+ * sys/decklink/linux/DeckLinkAPIDeckControl.h:
+ * sys/decklink/linux/DeckLinkAPIDiscovery.h:
+ * sys/decklink/linux/DeckLinkAPIDispatch.cpp:
+ * sys/decklink/linux/DeckLinkAPIModes.h:
+ * sys/decklink/linux/DeckLinkAPITypes.h:
+ * sys/decklink/linux/DeckLinkAPIVersion.h:
+ decklink: Updated DeckLink SDK to 11.2 to support DeckLink 8K Pro
+ Updated Decklink SDK to version 11.2 in order to support newer cards like the Decklink 8K Pro.
+ This required to replace the duplex property by a profile property.
+ Profile values can be the following:
+ - bmdProfileOneSubDeviceFullDuplex
+ - bmdProfileOneSubDeviceHalfDuplex
+ - bmdProfileTwoSubDevicesFullDuplex
+ - bmdProfileTwoSubDevicesHalfDuplex
+ - bmdProfileFourSubDevicesHalfDuplex
+ Fixes #987
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1665>
+
+2020-10-07 17:37:25 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfsourcereader.cpp:
+ mfvideosrc: Fix invalid memory access when outputting jpeg
+ Don't access unknown-dangerous-nonsense address
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1662>
+
+2020-10-08 18:50:12 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * gst-libs/gst/webrtc/rtptransceiver.h:
+ * gst-libs/gst/webrtc/webrtc_fwd.h:
+ Revert "webrtc: Save the media kind in the transceiver"
+ This reverts commit f54d8e99457996303b8477b1f3a710f0fabd1cc6.
+ It breaks the CI until the C# bindings are fixed.
+
+2020-10-08 18:49:57 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst-libs/gst/webrtc/rtpsender.c:
+ * gst-libs/gst/webrtc/rtpsender.h:
+ Revert "rtpsender: Add API to set the priority"
+ This reverts commit a8b287c76472c8d7fd38800807c482d020ff4a63.
+ It breaks the CI until the C# bindings are fixed.
+
+2020-10-08 18:49:56 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/webrtctransceiver.h:
+ Revert "rtptransceiver: Store the SSRC of the current stream"
+ This reverts commit d1da271f255101dbe95a426d9f5065d300b53e5a.
+ It breaks the CI until the C# bindings are fixed.
+
+2020-10-08 18:49:55 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ Revert "webrtcbin: Remove unused function"
+ This reverts commit 39723dbe934186c11f7b2a2b04c0af7932a1509c.
+ It breaks the CI until the C# bindings are fixed.
+
+2020-10-08 18:49:54 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/gstwebrtcbin.h:
+ * ext/webrtc/gstwebrtcice.c:
+ * ext/webrtc/gstwebrtcice.h:
+ * ext/webrtc/meson.build:
+ * ext/webrtc/sctptransport.c:
+ * ext/webrtc/sctptransport.h:
+ * ext/webrtc/webrtctransceiver.c:
+ * ext/webrtc/webrtctransceiver.h:
+ Revert "webrtc: Set the DSCP markings based on the priority"
+ This reverts commit 8ba08598bbe51f3b1f063ae22605f9608865f16b.
+ It breaks the CI until the C# bindings are fixed.
+
+2020-10-08 18:49:53 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst-libs/gst/webrtc/rtpreceiver.h:
+ * gst-libs/gst/webrtc/rtpsender.h:
+ * gst-libs/gst/webrtc/rtptransceiver.h:
+ Revert "webrtc: Document more objects"
+ This reverts commit ad68c6b1eb7c73c66dc9d1dbf1a8cc47fd489c61.
+ It breaks the CI until the C# bindings are fixed.
+
+2020-10-08 18:49:50 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst-libs/gst/webrtc/rtpsender.h:
+ * gst-libs/gst/webrtc/rtptransceiver.h:
+ Revert "webrtc: Add hotdoc style since tags"
+ This reverts commit 63a5fa818c31ecbe43891c077a38b6b162d73c28.
+ It breaks the CI until the C# bindings are fixed.
+
+2020-10-06 16:52:48 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst-libs/gst/webrtc/rtpsender.h:
+ * gst-libs/gst/webrtc/rtptransceiver.h:
+ webrtc: Add hotdoc style since tags
+ We're stuck having to add a separate comment for now.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1425>
+
+2020-10-02 21:38:00 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst-libs/gst/webrtc/rtpreceiver.h:
+ * gst-libs/gst/webrtc/rtpsender.h:
+ * gst-libs/gst/webrtc/rtptransceiver.h:
+ webrtc: Document more objects
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1425>
+
+2020-07-08 17:24:36 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/gstwebrtcbin.h:
+ * ext/webrtc/gstwebrtcice.c:
+ * ext/webrtc/gstwebrtcice.h:
+ * ext/webrtc/meson.build:
+ * ext/webrtc/sctptransport.c:
+ * ext/webrtc/sctptransport.h:
+ * ext/webrtc/webrtctransceiver.c:
+ * ext/webrtc/webrtctransceiver.h:
+ webrtc: Set the DSCP markings based on the priority
+ This matches how the WebRTC javascript API works and the Chrome implementation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1425>
+
+2020-07-09 13:45:20 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Remove unused function
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1425>
+
+2020-07-09 13:42:35 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/webrtctransceiver.h:
+ rtptransceiver: Store the SSRC of the current stream
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1425>
+
+2020-07-09 13:39:03 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst-libs/gst/webrtc/rtpsender.c:
+ * gst-libs/gst/webrtc/rtpsender.h:
+ rtpsender: Add API to set the priority
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1425>
+
+2020-07-08 19:13:33 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * gst-libs/gst/webrtc/rtptransceiver.h:
+ * gst-libs/gst/webrtc/webrtc_fwd.h:
+ webrtc: Save the media kind in the transceiver
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1425>
+
+2020-10-06 13:39:23 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * ext/srt/gstsrtobject.c:
+ srt: Remove unused sa_family tracking
+ Now that SRT no longer needs the family when creating the socket, this
+ code has become useless.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1659>
+
+2020-10-02 03:39:40 +0200 Niklas Hambüchen <mail@nh2.me>
+
+ * ext/srt/gstsrtobject.c:
+ * ext/srt/meson.build:
+ srt: Move off deprecated `srt_socket()`.
+ See https://github.com/Haivision/srt/blob/73ee1e1a3e3adc2702a9a5057d101ef80447b38c/docs/API-functions.md#srt_socket
+ `srt_create_socket()` was added in
+ https://github.com/Haivision/srt/commit/4b897ba92d34f1829a1c6e419eeab17f0763a0fc
+ and srt `v1.3.0` is the first release that has it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1659>
+
+2020-10-01 17:31:13 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * ext/srt/gstsrt.c:
+ srt: Register a log handler
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1659>
+
+2020-09-25 19:17:35 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * ext/srt/gstsrtobject.c:
+ srt: Avoid removing invalid sockets from the polls
+ This would provoke error messages from SRT.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1659>
+
+2020-09-25 19:08:17 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * ext/srt/gstsrtobject.c:
+ srt: Fix use of srt_startup
+ `srt_startup` can also return 1 if it was successful. Avoid warning in
+ this case.
+ Avoid a race when checking whether we need to call it at all.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1659>
+
+2020-10-06 12:35:12 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * ext/srt/gstsrtobject.c:
+ srt: Fix parameter types used for socket options
+ The [SRT documentation][1] specifies exact types for the socket options.
+ Make sure we match these.
+ This reverts the linger workaround in commit 84f8dbd932029220ee86154dd
+ and extends srt_constant_params to support other types than int.
+ [1]: https://github.com/Haivision/srt/blob/master/docs/APISocketOptions.md
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1659>
+
+2020-09-29 18:52:43 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11upload.c:
+ d3d11upload: Allow passthrough for system memory
+ ... like how d3d11download and gl{upload,download} do.
+ This should've been part of the commit 9b72b04daddafb1c86cb6ab5923c593a70bc4166
+ but I missed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1645>
+
+2020-10-04 10:01:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: refactor flush methods for both allocators
+ Since the logic is the same, it can be generalized in a single common
+ function.
+ Also the methods run the common function with a lock and signal the
+ buffers' conditional.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626>
+
+2020-10-03 16:37:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: refactor GstVaDmabufAllocator
+ Move code down to group it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626>
+
+2020-10-03 16:30:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: refactor GstVaBuffersurface
+ Move code up and add namespace to methods, and renaming
+ _creating_buffer_surface() to the canonical
+ gst_va_buffer_surface_new()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626>
+
+2020-09-30 19:35:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ * sys/va/gstvaallocator.h:
+ * sys/va/gstvapool.c:
+ va: implement pooled allocators
+ 1. Allocators don't implement memory free() methods since all the memories will
+ implement dispose() returning FALSE
+ 2. Memory/miniobject dispose() will act as memory release, enqueueing the
+ release memory
+ 3. A new allocator's method prepare_buffer() which queries the released memory
+ queue and will add the requiered memories to the buffer.
+ 4. Allocators added a GCond to synchronize dispose() and prepare_buffer()
+ 5. A new allocator's method flush() which will free for real the memories.
+ While the bufferpool will
+ 1. Remove all the memories at reset_buffer()
+ 2. Implement acquire_buffer() calling allocator's prepare_buffer()
+ 3. Implement flush_start() calling allocator's flush()
+ 4. start() is disabled since it pre-allocs buffers but also calls
+ our reset_buffer() which will drop the memories and later the
+ buffers are ditched, something we don't want. This approach avoids
+ buffer pre-allocation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626>
+
+2020-09-30 15:54:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: user gst_clear_object() for _buffer_surface_unref()
+ Event if this function is only used by gst_va_dmabuf_memories_setup(), it might
+ get reused later by GstVaDmabufAllocator's functions. This change makes the
+ function less fragile.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626>
+
+2020-09-30 15:53:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: renamed gst_va_dmabuf_memory_release()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626>
+
+2020-09-30 15:48:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: renamed available_mems queue
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626>
+
+2020-09-30 15:45:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ * sys/va/gstvaallocator.h:
+ * sys/va/gstvapool.c:
+ va: allocator: rename gst_va_dmabuf_allocator_setup_buffer()
+ Since it's related with GstVaDmabufAllocator.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626>
+
+2020-09-29 15:03:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: calculated surface frame internally
+ Instead of using gst_buffer_get_size() just add the memory sizes reported by
+ exported fd.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626>
+
+2020-09-28 16:59:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: make GstVaMemory shareable
+ Renamed the first variable member of GstVaMemory from parent to mem in
+ order to avoid confusion with GstMemory's parent.
+ When freeing the structure, memory's parent is check in order to
+ decide if surfaces has to be destroyed or not, since only the parent
+ class have to destroy it.
+ Removed GST_MEMORY_FLAG_NO_SHARE in memory initialization, since it is
+ deprecated.
+ Implemented allocator's share virtual method which creates a new
+ shallow GstVaMemory structure based on the passed one which will be
+ it's parent.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626>
+
+2020-09-28 16:50:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: remove copy method for GstVaMemory
+ Since the memory has to be shareable. That will be address in the next
+ commits.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626>
+
+2020-09-24 17:32:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: remove va allocator mem_is_span() vmethod
+ Since it is the default by base class.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1626>
+
+2020-10-01 03:47:13 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11download.c:
+ * sys/d3d11/gstd3d11upload.c:
+ * sys/d3d11/gstd3d11utils.c:
+ * sys/d3d11/gstd3d11utils.h:
+ d3d11upload/d3d11download: Make use of staging buffer
+ ... instead of direct cpu map for d3d11memory object. In this way,
+ we don't need per GstD3D11Memory staging texture.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1627>
+
+2020-10-03 18:53:46 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11bufferpool.c:
+ * sys/d3d11/gstd3d11memory.c:
+ * sys/d3d11/gstd3d11memory.h:
+ * sys/d3d11/gstd3d11utils.c:
+ * sys/d3d11/gstd3d11utils.h:
+ d3d11: Don't hold staging texture
+ Staging texture is used for memory transfer between system and
+ gpu memory. Apart from d3d11{upload,download} elements, however,
+ it should happen very rarely.
+ Before this commit, d3d11bufferpool was allocating at least one
+ staging texture in order to calculate cpu accessible memory size,
+ and it wasn't freed for later use of the texture unconditionally.
+ But it will increase system memory usage. Although GstD3D11memory
+ object is implemented so that support CPU access, most memory
+ transfer will happen in d3d11{upload,download} elements.
+ By this commit, the initial staging texture will be freed immediately
+ once cpu accessible memory size is calculated.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1627>
+
+2020-09-26 03:27:39 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11_fwd.h:
+ * sys/d3d11/gstd3d11basefilter.h:
+ * sys/d3d11/gstd3d11colorconvert.c:
+ * sys/d3d11/gstd3d11colorconvert.h:
+ * sys/d3d11/gstd3d11decoder.h:
+ * sys/d3d11/gstd3d11download.c:
+ * sys/d3d11/gstd3d11download.h:
+ * sys/d3d11/gstd3d11upload.c:
+ * sys/d3d11/gstd3d11upload.h:
+ * sys/d3d11/gstd3d11videosink.c:
+ * sys/d3d11/gstd3d11videosink.h:
+ * sys/d3d11/gstd3d11videosinkbin.c:
+ * sys/d3d11/gstd3d11videosinkbin.h:
+ d3d11: Move to G_DECLARE_FINAL_TYPE
+ ... and remove unnecessary forward declaration.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1627>
+
+2020-10-04 16:33:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvacaps.c:
+ * sys/va/gstvacaps.h:
+ * sys/va/gstvah264dec.c:
+ * sys/va/gstvavp8dec.c:
+ * sys/va/gstvavpp.c:
+ va: caps: centralize caps feature discovering
+ These function were repeated in the different implemented
+ elements. This patch centralize them.
+ The side effect is dmabuf memory type is no longer checked with the
+ current VAContext, but assuming that dmabuf is a consequence of caps
+ negotiation from dynamic generated caps templates, where the context's
+ memory types are validated, there's no need to validate them twice.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1644>
+
+2020-10-04 12:43:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ va: filter: fix counter variable reuse
+ There was a bug reusing the counter variable i in nested loops. Also
+ the patch makes the code cleaner.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1643>
+
+2019-10-02 11:17:09 +0200 Lars Lundqvist <larslu@axis.com>
+
+ * ext/curl/gstcurlbasesink.c:
+ curlbasesink: Add curl seek callback
+ Adding functionality to handle SEEK_SET enables rewinding of sent data.
+ In the HTTP case, this happens after an HTTP 401 has been received from
+ the other end. This will result in the sent data being resent.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1616>
+
+2020-09-29 15:52:21 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * sys/decklink/gstdecklink.cpp:
+ decklink: Correctly order the different dependent mode tables
+ One was forgotten in 309f6187fef890c7ffa49305f38e89beac3b1423.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1617>
+
+2020-09-19 00:26:35 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/wasapi/gstwasapisrc.c:
+ * sys/wasapi/gstwasapisrc.h:
+ wasapisrc: Make sure that wasapisrc produces data in loopback mode
+ An oddness of wasapi loopback feature is that capture client will not
+ produce any data if there's no outputting sound to corresponding
+ render client. In other words, if there's no sound to render,
+ capture task will stall. As an option to solve such issue, we can
+ add timeout to wake up from capture thread if there's no incoming data
+ within given time interval. But it seems to be glitch prone.
+ Another approach is that we can keep pushing silence data into
+ render client so that capture client can keep capturing data
+ (even if it's just silence).
+ This patch will choose the latter one because it's more straightforward
+ way and it's likely produce glitchless sound than former approach.
+ A bonus point of this approach is that loopback capture on Windows7/8
+ will work with this patch. Note that there's an OS bug prior to Windows10
+ when loopback capture client is running with event-driven mode.
+ To work around the bug, event signalling should be handled manually
+ for read thread to wake up.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1588>
+
+2020-09-29 23:46:00 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/wpe/gstwpesrc.cpp:
+ wpesrc: fix some caps leaks using the non-GL output
+ Always chain up to the parent _stop() implementation as it unrefs some
+ caps (among other things).
+ Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1409
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1618>
+
+2020-06-16 11:16:37 +0900 Hosang Lee <hosang10.lee@lge.com>
+
+ * ext/smoothstreaming/gstmssmanifest.c:
+ * ext/smoothstreaming/gstmssmanifest.h:
+ smoothstreaming: clear live adapter on seek
+ In live streaming, buffers sent by souphttpsrc are pushed to the live
+ adapter. The buffers in the adapter are sent out of mssdemux when it
+ is greater than 4096 bytes.
+ Occasionally, when seeking in live streams, if seek occurs just
+ after the last data chunk was received, and if this data chunk is
+ smaller than 4096 bytes, it will be kept in the live adapter.
+ This remaining data in the live adapter will be erroneously prepended
+ to the new data that is downloaded after seek and pushed out.
+ When qtdemux receives this data, since it does not start with
+ a moof box, it is impossible to demux the fragment, and bogus
+ size error will occur.
+ Clear out the live adapter on seek so that no unnecessary remaining
+ data is pushed out together with the new fragment after seeking.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1345>
+
+2020-09-30 10:47:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/plugin.c:
+ va: simplify VPP detection
+ Also the previous code failed if VPP was not present blacklisting the
+ plugin.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1619>
+
+2020-06-15 15:24:07 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdkallocator.h:
+ * sys/msdk/gstmsdkallocator_libva.c:
+ * sys/msdk/gstmsdkcontext.h:
+ * sys/msdk/gstmsdkvideomemory.c:
+ msdk: call vaExportSurfaceHandle() to get DMABuf FD
+ Compared to vaAcquireBufferHandle(), vaExportSurfaceHandle() may
+ provide the handle details, so we needn't call vaDeriveImage().
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1353>
+
+2020-07-01 09:03:21 -0700 Ederson de Souza <ederson.desouza@intel.com>
+
+ * ext/avtp/gstavtpcvfpay.c:
+ * tests/check/elements/avtpcrfcheck.c:
+ * tests/check/elements/avtpcrfsync.c:
+ * tests/check/elements/avtpcvfdepay.c:
+ tests/avtp: Fix coverity issues
+ Fixes sign extension issues, unchecked return values and some constant
+ expression results.
+ CID: 1465073, 1465074, 1465075, 1465076, 1465077
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1398>
+
+2020-07-08 09:08:31 -0700 Ederson de Souza <ederson.desouza@intel.com>
+
+ * ext/avtp/gstavtpcvfdepay.c:
+ * ext/avtp/gstavtpcvfpay.c:
+ * ext/avtp/gstavtpsrc.c:
+ avtp: Change "%lu" for G_GUINT64_FORMAT
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1398>
+
+2020-09-25 22:00:26 +0530 raghavendra <raghavendra.rao@collabora.com>
+
+ * ext/srt/gstsrtobject.c:
+ srtobject: typecast SRTO_LINGER to linger
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1615>
+
+2020-09-24 01:24:40 +0800 He Junyan <junyan.he@intel.com>
+
+ * gst-libs/gst/codecparsers/gstvp8parser.c:
+ codecparsers: vp8parser: clear the frame_hdr before parsing.
+ Uninited frame_hdr may have garbage and may contain some wrong
+ results after the parsing process.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1587>
+
+2020-09-20 23:29:00 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvah264dec.c:
+ * sys/va/gstvavp8dec.c:
+ * sys/va/gstvavp8dec.h:
+ * sys/va/meson.build:
+ * sys/va/plugin.c:
+ va: Implement the VA vp8 decoder.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1587>
+
+2020-09-21 23:08:05 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvaallocator.h:
+ * sys/va/gstvadecoder.h:
+ * sys/va/gstvautils.h:
+ va: codestyle: Clear all tabs in header files
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1587>
+
+2020-09-21 12:51:53 +0800 He Junyan <junyan.he@intel.com>
+
+ * sys/va/gstvadecoder.c:
+ * sys/va/gstvadecoder.h:
+ * sys/va/gstvah264dec.c:
+ * sys/va/gstvautils.h:
+ va: util: make the _format_changed a common decoder function.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1587>
+
+2020-09-24 12:36:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvah264dec.c:
+ va: h264dec: allocate output buffers according DPB size
+ Instead of allocating the maximal number of references for output
+ buffers, this patch reduces the memory foot print in many cases by
+ just allocating the output buffers required for the DPB.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1595>
+
+2020-09-24 12:29:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvadecoder.c:
+ * sys/va/gstvadecoder.h:
+ * sys/va/gstvah264dec.c:
+ va: decoder: store output buffer rather than surface
+ GstVaDecodePicture stored the processed VASurfaceID, under the
+ assumption that the bufferpool with keep the referenced buffers, but
+ this approach is fragil.
+ This patch changes GstVaDecodePicture to store the output buffer,
+ which already contains its VASurfaceID, and provides a new method to
+ retrieve the VASurfaceID directly from picture.
+ Based on He Junyan <junyan.he@intel.com> patches for
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1587
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1594>
+
+2020-09-23 20:08:46 +1000 Matthew Waters <matthew@centricular.com>
+
+ * sys/applemedia/videotexturecache-vulkan.mm:
+ vtdec/vulkan: use Shared storage mode for IOSurface textures
+ Fixes a debug assertion with i(Pad)OS 14:
+ 'IOSurface textures must use MTLStorageModeShared'
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1592>
+
+2020-09-23 17:04:55 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/mpegtsmux/gstbasetsmux.c:
+ mpegtsmux: Restore intervals when creating TsMux
+ Otherwise the settings from the properties would be overwritten with
+ the defaults.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1593>
+
+2020-09-19 14:26:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ * sys/va/gstvavpp.c:
+ * sys/va/plugin.c:
+ va: vpp: global lock to handle shared buffers
+ Add a global mutex to exclusive access to shared stream buffers, such
+ as DMABufs or VASurfaces after a tee:
+ LIBVA_DRIVER_NAME=iHD \
+ gst-launch-1.0 v4l2src ! tee name=t t. ! queue ! \
+ vapostproc skin-tone=9 ! xvimagesink \
+ t. ! queue ! vapostproc ! xvimagesink
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529>
+
+2020-08-16 09:18:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvafilter.c:
+ * sys/va/gstvafilter.h:
+ * sys/va/gstvavpp.c:
+ * sys/va/gstvavpp.h:
+ * sys/va/meson.build:
+ * sys/va/plugin.c:
+ va: add vapostproc element
+ Video postprocessor for VA-API
+ Funcionalities: resize frames, change format, import buffers, apply
+ filters (such as denoise, sharpen, orientation, if driver offers them).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529>
+
+2020-08-20 13:49:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: export composed layer for YUY2 and UYVY
+ This is a result of an error reported by i965 driver which only can
+ export composed layer for these formats. This seems to work too with
+ iHD. These formats are not exposed as native surfaces in Gallium.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529>
+
+2020-08-19 16:52:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ * sys/va/gstvaallocator.h:
+ va: allocator: add gst_va_dmabuf_buffer_setup()
+ This function will take an array of DMABuf GstMemory and an array of
+ fd, and create a VASurfaceID with those fds. Later that VASurfaceID is
+ attached to each DMABuf through GstVaBufferSurface.
+ In order to free the surface GstVaBufferSurface now have GstVaDisplay
+ member, and _buffer_surface_unref() were added.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529>
+
+2020-08-19 16:48:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: try to get VASurfaceID from every DMABuf allocator
+ Relax the check of the allocator type, because now the qdata can be
+ attached for other DMABuf allocators.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529>
+
+2020-09-12 13:10:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ * sys/va/gstvavideoformat.c:
+ va: allocator: try to create surface without fourcc but chroma only
+ There are, in VPP, surfaces that doesn't support 4:2:2 fourccs but it
+ supports the chroma. So this patch gives that opportunity to the
+ driver.
+ This patch also simplifiies
+ gst_va_video_surface_format_from_image_format() to just an iterator
+ for surfaces available formats.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529>
+
+2020-08-19 16:45:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvaallocator.c:
+ va: allocator: create surfaces with VASurfaceAttribExternalBuffers
+ Add a new parameter to _create_surfaces(): a pointer to
+ VASurfaceAttribExternalBuffers.
+ If it's defined the memory type is changed to DRM_PRIME, also a new item is
+ added to the VASurfaceAttrib array with
+ VASurfaceAttribExternalBufferDescriptor.
+ Also, the VASurfaceAttrib for pixel format is not mandatory anymore. If fourcc
+ parameter is 0, is not added in the array, relying on the chroma. This is
+ useful when creating surfaces for uploading or downloading images.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529>
+
+2020-08-20 13:46:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvapool.c:
+ va: pool: use gst_object_replace() for allocator
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529>
+
+2020-09-16 19:14:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvadevice.c:
+ va: device: use gst_clear_object()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529>
+
+2020-08-18 19:12:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvacaps.c:
+ * sys/va/gstvacaps.h:
+ va: caps: expose gst_caps_set_format_array()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1529>
+
+2020-09-22 19:59:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvah264dec.c:
+ va: vah264dec: fix documentation
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1591>
+
+2020-09-23 10:58:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264: unref leaked caps
+ Unref a leaked caps at set_latency().
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1590>
+
+2020-07-20 10:13:13 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/gstmsdk.c:
+ * sys/msdk/gstmsdkav1dec.c:
+ * sys/msdk/gstmsdkav1dec.h:
+ * sys/msdk/meson.build:
+ msdk: add support for AV1 decoding
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1448>
+
+2020-09-19 21:43:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvautils.c:
+ va: utils: use GstObject for GstVaDisplay in context
+ Thus application could fetch the GstVaDisplay through the sync bus
+ without knowning the specific implementation, and sharing it or
+ extract properties.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1586>
+
+2020-09-19 21:36:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvautils.c:
+ va: utils: fix code style and wrong log message
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1586>
+
+2020-09-14 09:48:48 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/wpe/gstwpesrc.cpp:
+ wpe: Plug event leak
+ Handled events don't go through the default pad event handler, so they need to
+ be unreffed in this case.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1568>
+
+2020-08-25 01:57:55 +1000 Jan Schmidt <jan@centricular.com>
+
+ * ext/wpe/gstwpesrc.cpp:
+ wpesrc: Don't crash if WPE doesn't generate a buffer.
+ On creating a 2nd wpesrc in a new pipeline in an app that already
+ has a runnig wpesrc, WPE sometimes doesn't return a buffer on request,
+ leading to a crash. This commit fixes the crash, but not the underlying
+ failure - a 2nd wpesrc can still error out instead.
+ Partially fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1386
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1568>
+
+2020-09-11 12:51:56 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ wpe: Plug SHM buffer leaks
+ Fixes #1409
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1568>
+
+2020-09-10 14:39:58 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ * ext/wpe/WPEThreadedView.h:
+ wpe: Move webview load waiting to WPEView
+ As waiting for the load to be finished is specific to the WebView, it should be
+ done from our WPEView, not from the WPEContextThread. This fixes issues where
+ multiple wpesrc elements are created in sequence. Without this patch the first
+ view might receive erroneous buffer notifications.
+ Fixes #1386
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1568>
+
+2020-09-11 18:17:20 +0530 Sanchayan Maity <sanchayan@asymptotic.io>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/audiobuffersplit/gstaudiobuffersplit.c:
+ * gst/audiobuffersplit/gstaudiobuffersplit.h:
+ audiobuffersplit: Add support for specifying output buffer size
+ Currently for buffer splitting only output duration can be specified.
+ Allow specifying a buffer size in bytes for splitting.
+ Consider a use case of the below pipeline
+ appsrc ! rptL16pay ! capsfilter ! rtpbin ! udpsink
+ Maintaining MTU for RTP transfer is desirable but in a scenario
+ where the buffers being pushed to appsrc do not adhere to this,
+ an audiobuffersplit element placed between appsrc and rtpL16pay
+ with output buffer size specified considering the MTU can help
+ mitigate this.
+ While rtpL16pay already has a MTU setting, in case of where an
+ incoming buffer has a size close to MTU, for eg. with a MTU of
+ 1280, a buffer of size 1276 bytes would be split into two buffers,
+ one of 1268 and other of 8 bytes considering RTP header size of
+ 12 bytes. Putting audiobuffersplit between appsrc and rtpL16pay
+ can take care of this.
+ While buffer duration could still be used being able to specify
+ the size in bytes is helpful here.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1578>
+
+2020-09-10 13:05:23 +0100 Philippe Normand <philn@igalia.com>
+
+ * ext/wpe/WPEThreadedView.cpp:
+ wpe: Use proper callback for TLS errors signal handling
+ The load-failed and load-failed-with-tls-errors signals expect distinct callback
+ signatures.
+ Fixes #1388
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1566>
+
+2020-09-20 08:31:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvah264dec.c:
+ va: h264dec: add documentation
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1585>
+
+2019-12-10 19:54:43 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/msdk.c:
+ msdk: enable GPUCopy
+ Note it works for system memory only
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/910>
+
+2019-12-10 19:47:03 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * sys/msdk/msdk.c:
+ msdk: call MFXInitEx instead of MFXInit
+ MFXInitEx has more control than MFXInit. The current setting in this
+ commit is identical to MFXInit
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/910>
+
+2020-09-19 14:08:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvadecoder.c:
+ va: decoder: render picture only if data
+ Call vaRenderPicture() only if buffer or slice data is available.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1584>
+
+2020-09-17 19:54:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvadecoder.c:
+ va: decoder: warn if decode fails on a surface
+ Instead of logging error if a step fails, it logs a warning message
+ reducing the noise and obeying the rule for errors since the program
+ doesn't end
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1584>
+
+2020-09-17 19:52:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvah264dec.c:
+ va: h264dec: check is pad has fixed caps at caps query
+ Otherwise it will always reply with the possible driver caps, which
+ generates problems with Web MSE players.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1583>
+
+2020-09-19 05:39:32 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/va/gstvah264dec.c:
+ va: h264dec: Don't need to set pts/dts/duration on outputting frame
+ It will be handled by videodecoder baseclass
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1582>
+
+2020-03-25 20:50:01 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/gstwebrtcice.c:
+ * ext/webrtc/meson.build:
+ webrtcbin: Accept end-of-candidate pass it to libnice
+ libnice now supports the concept of end-of-candidate, so use the API
+ for it. This also means that if you don't do that, the webrtcbin will
+ never declared the connection as failed.
+ This requires bumping the dependency to libnice 0.1.16
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1139>
+
+2020-09-17 17:39:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/kms/gstkmssink.c:
+ kmssink: Do not source using padded width/height
+ The width/height from the video meta can be padded width, height. But when
+ sourcing from padded buffer, we only want to use the valid pixels. This
+ rectangle is from the crop meta, orther it is deduces from the caps. The width
+ and height from the caps is save in the parent class, use these instead of the
+ GstVideoInfo when settting the src rectangle.
+ This fixes an issue with 1080p video displaying repeated or green at the
+ padded bottom 8 lines (seen with v4l2codecs).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1580>
+
+2020-09-18 01:41:35 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11colorconvert.c:
+ * sys/d3d11/gstd3d11colorconverter.c:
+ * sys/d3d11/gstd3d11device.c:
+ * sys/d3d11/gstd3d11download.c:
+ * sys/d3d11/gstd3d11format.c:
+ * sys/d3d11/gstd3d11format.h:
+ * sys/d3d11/gstd3d11memory.c:
+ * sys/d3d11/gstd3d11shader.c:
+ * sys/d3d11/gstd3d11upload.c:
+ * sys/d3d11/gstd3d11videosink.c:
+ * sys/d3d11/gstd3d11videosinkbin.c:
+ * tests/check/elements/d3d11colorconvert.c:
+ d3d11: Add support for packed 8bits 4:2:2 YUV formats
+ Note that newly added formats (YUY2, UYVY, and VYUY) are not supported
+ render target view formats. So such formats can be only input of d3d11convert
+ or d3d11videosink. Another note is that YUY2 format is a very common
+ format for hardware en/decoders on Windows.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1581>
+
+2020-08-26 17:48:06 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ webrtcbin: Merge the RTX SSRCs from all transceivers when bundling
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1545>
+
+2020-09-15 17:09:57 +0200 Marian Cichy <m.cichy@pengutronix.de>
+
+ * ext/avtp/gstavtpaafdepay.c:
+ avtp: avtpaafdepay: fix crash when building caps
+ gst_caps_new_simple gets wrong types for rate and channel which
+ may lead to a crash.
+ As 64-bit values for rate, depth, format, channels does not
+ make much sense and since any other functionality in gstreamer
+ expects G_TYPE_INT for channels and rate, we should stick to that
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1576>
+
+2020-06-09 10:10:12 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * gst-libs/gst/codecparsers/gsth265parser.c:
+ * gst-libs/gst/codecparsers/gsth265parser.h:
+ * gst/videoparsers/gsth265parse.c:
+ * tests/check/libs/h265parser.c:
+ h265parse: recognize more HEVC extension streams
+ There are streams which have the right general_profile_idc and
+ general_profile_compatibility_flag, but don't have the right extension
+ flags. We may try to use chroma_format_idc and bit_depth to
+ recognize these streams.
+ e.g.
+ https://www.itu.int/wftp3/av-arch/jctvc-site/bitstream_exchange/draft_conformance/SCC/IBF_Disabled_A_MediaTek_2.zip
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1328>
+
+2020-06-05 13:01:06 +0800 Haihao Xiang <haihao.xiang@intel.com>
+
+ * gst-libs/gst/codecparsers/gsth265parser.c:
+ * tests/check/libs/h265parser.c:
+ h265parser: select the right profile for high throughput SCC stream
+ Currently screen-extended-high-throughput-444 is recognized as
+ screen-extended-main-444, screen-extended-high-throughput-444-10 is
+ recognized as screen-extended-main-444-10 because they have the same
+ extension flags, so without this patch, it is possible that a decoder
+ which supports SCC but doesn't support throughput SCC will try to decode
+ a throughput SCC stream.
+ e.g.
+ https://www.itu.int/wftp3/av-arch/jctvc-site/bitstream_exchange/draft_conformance/SCC/HT_A_SCC_Apple_2.zip
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1328>
+
+2020-09-08 14:43:49 +0800 Randy Li (ayaka) <ayaka@soulik.info>
+
+ * sys/msdk/gstmsdkvpp.c:
+ msdk: vpp: fixup passthrough checking for DMA
+ I think it is just a typo from e1a90f1ec9
+ msdkvpp: Disable passthrough if memory capsfeature changes
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1559>
+
+2020-09-15 17:51:51 +0200 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
+
+ * ext/wayland/wlshmallocator.c:
+ * meson.build:
+ waylandsink: Use memfd_create() when available
+ This (so-far) Linux- and FreeBSD-only API lets users create file
+ descriptors purely in memory, without any backing file on the filesystem
+ and the race condition which could ensue when unlink()ing it.
+ It also allows seals to be placed on the file, ensuring to every other
+ process that we won’t be allowed to shrink the contents, potentially
+ causing a SIGBUS when they try reading it.
+ This patch is best viewed with the -w option of git log -p.
+ It is an almost exact copy of Wayland commit
+ 6908c8c85a2e33e5654f64a55cd4f847bf385cae, see
+ https://gitlab.freedesktop.org/wayland/wayland/merge_requests/4
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1577>
+
+2020-09-10 21:19:43 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gstvp9decoder.c:
+ codecs: vp9decoder: Relying on upstream vp9parse for super frame handling
+ By this way, we can simplify the decoding flow. Moreover, we don't
+ need to worry about the case where multiple visible-frames are
+ composed in one super-frame, since upstream vp9parse will split
+ them per frame unit.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1567>
+
+2020-09-10 21:42:49 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst-libs/gst/codecs/gstvp9decoder.c:
+ * gst-libs/gst/codecs/gstvp9picture.c:
+ * gst-libs/gst/codecs/gstvp9picture.h:
+ codecs: vp9decoder: Remove unused pts variable
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1567>
+
+2020-09-12 00:12:03 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11vp9dec.c:
+ d3d11vp9dec: Don't need to consider output_picture() call without GstVideoCodecFrame
+ Baseclass will be updated in order to ensure GstVideoCodecFrame.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1567>
+
+2020-09-10 20:32:13 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11vp9dec.c:
+ d3d11vp9dec: Specify profile and alignment on sink template
+ Set supported profile(s) on sink template caps, so that decodebin
+ can filter out this element if profile of given vp9 stream is not
+ supported by hardware decoder.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1567>
+
+2020-09-10 21:31:38 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/d3d11/gstd3d11h264dec.c:
+ * sys/d3d11/gstd3d11h265dec.c:
+ * sys/d3d11/gstd3d11vp8dec.c:
+ * sys/d3d11/gstd3d11vp9dec.c:
+ d3d11decoder: Cleanup code
+ * Don't need to set pts/dts/duration on output buffer of frame.
+ it's handled by baseclass
+ * Remove meaningless debug output
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1567>
+
+2020-08-22 12:44:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ codecs: h264decoder: Calculate and set latency
+ Add gst_h264_decoder_set_latency(), which calculates and sets
+ latency on base decoder class, after new_sequence is called.
+ This assumes that in new_sequence() vmethod, callee negotiates
+ downstream caps.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1531>
+
+2020-08-22 12:47:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * sys/va/gstvah264dec.c:
+ Revert "va: h264dec: set latency"
+ This reverts commit 3aedef4c8601dcafb065d8095a927f1cd528056f.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1531>
+
+2020-09-14 14:42:36 +0300 Jordan Petridis <jordan@centricular.com>
+
+ * tests/check/gst-plugins-bad.supp:
+ validate: plug leak in gssdp
+ These are triggered by the webrtcbin tests
+ https://gitlab.gnome.org/GNOME/gssdp/-/issues/10
+
+2020-09-04 23:34:16 +0800 yychao <yychao@realtek.com>
+
+ * gst-libs/gst/mpegts/gst-dvb-descriptor.c:
+ * gst-libs/gst/mpegts/gst-dvb-descriptor.h:
+ * gst/mpegtsdemux/tsdemux.c:
+ tsdemux: Parse Audio Preselection Descriptor
+ For Dolby AC4 audio experience, parsing PMTs/APD from transport stream layer for all available presentations.
+ Refer to ETSI EN 300 468 V1.16.1 (2019-05)
+ 1. 6.4.1 Audio preselection descriptor
+ 2. Table M.1: Mapping of codec specific values to the audio preselection descriptor
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1555>
+
+2020-09-04 23:28:58 +0800 yychao <yychao@realtek.com>
+
+ * gst-libs/gst/mpegts/gstmpegtsdescriptor.c:
+ * gst-libs/gst/mpegts/gstmpegtsdescriptor.h:
+ * gst/mpegtsdemux/mpegtsbase.c:
+ * gst/mpegtsdemux/mpegtsbase.h:
+ * gst/mpegtsdemux/tsdemux.c:
+ tsdemux: Add new API for fetching extended descriptors
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1555>
+
+2020-08-26 15:45:35 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/webrtc/gstwebrtcbin.c:
+ * ext/webrtc/utils.h:
+ * ext/webrtc/webrtcsdp.c:
+ * ext/webrtc/webrtcsdp.h:
+ * tests/check/elements/webrtcbin.c:
+ webrtc: propagate more errors through the promise
+ Return errors on promises when things fail where available.
+ Things like parsing errors, invalid states, missing fields, unsupported
+ transitions, etc.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1565>
+
+2020-07-01 07:35:08 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst-libs/gst/vulkan/meson.build:
+ meson: Do not warn when a windowing system is not found
+ Error out when the vulkan option is enabled, and just print
+ a message() otherwise. This is more correct and also allows us to pass
+ --fatal-meson-warnings more reliably.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1391>
+
+2020-09-10 10:35:11 -0700 Adam Williamson <awilliam@redhat.com>
+
+ * ext/opencv/meson.build:
+ opencv: set opencv_dep when option is disabled (#1406)
+ The examples build file checks opencv_dep, so it still needs to
+ be set even if the option is disabled.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1406
+ Signed-off-by: Adam Williamson <awilliam@redhat.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1570>
+
+2020-09-10 23:12:10 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * ext/openh264/gstopenh264dec.cpp:
+ openh264dec: port to new request_sync_point() API
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1571>
+
+2020-07-28 18:32:03 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst-libs/gst/codecs/gsth264decoder.c:
+ * gst-libs/gst/codecs/gsth264decoder.h:
+ * gst-libs/gst/codecs/gsth264picture.c:
+ * gst-libs/gst/codecs/gsth264picture.h:
+ h264decoder: Fix various typos
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1563>
+
+2020-07-28 18:39:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ v4l2slh264dec: Minor cleanup
+ Move few variables in their respective scope.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1563>
+
+2020-07-22 15:40:14 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2codecs/gstv4l2codech264dec.c:
+ v4l2slh264dec: Fix B-Frame weight table
+ We where not setting the luma l1 weight table.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1563>
+
+2020-09-09 21:38:33 +0900 Seungha Yang <seungha@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/videoparsers/gstvp9parse.c:
+ * gst/videoparsers/gstvp9parse.h:
+ * gst/videoparsers/meson.build:
+ * gst/videoparsers/plugin.c:
+ * tests/check/elements/vp9parse.c:
+ * tests/check/elements/vp9parse.h:
+ * tests/check/meson.build:
+ videoparsers: Add vp9parse element
+ Adding vp9parse element to parse various stream information such as
+ resolution, profile, and so on. If upstream does not provide resolution and/or
+ profile, this would be useful for decodebin pipeline for autoplugging
+ suitable decoder element depending on template caps of each decoder element.
+ In addition, vp9parse element supports unpacking superframe into
+ single frame for decoders. The vp9 superframe is a frame which consists
+ of multiple frames (or superframe with one frame is allowed) followed by superframe
+ index block. Then unpacked each frame will be considered as normal frame
+ by decoder. The decision for unpacking will be done by downstream element's
+ "alignment" caps field, which can be "super-frame" or "frame".
+ If downstream specifies the "alignment" as "frame",
+ then vp9parse element will split an incoming superframe into single frames
+ and the superframe index (located at the end of the superframe) data
+ will be discarded by vp9parse element.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1041>
+
+2020-06-16 21:09:36 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfcapturewinrt.cpp:
+ * sys/mediafoundation/gstmfsourceobject.c:
+ * sys/mediafoundation/gstmfsourceobject.h:
+ * sys/mediafoundation/gstmfsourcereader.cpp:
+ * sys/mediafoundation/gstmfvideosrc.c:
+ * sys/mediafoundation/mediacapturewrapper.cpp:
+ * sys/mediafoundation/mediacapturewrapper.h:
+ mfvideosrc: Set timestamp on buffer when it's captured
+ Capture the timestamp immediately when new frame is arrived,
+ instead of doing that on ::create() method. There would be
+ time gap between captured time and outputting time.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1351>
+
+2020-09-04 16:53:03 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/closedcaption/gstline21enc.c:
+ * ext/closedcaption/gstline21enc.h:
+ * tests/check/elements/line21.c:
+ line21enc: add remove-caption-meta property
+ Similar to #GstCCExtractor:remove-caption-meta
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1554>
+
+2020-09-04 02:38:58 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/closedcaption/gstline21enc.c:
+ * tests/check/elements/line21.c:
+ line21enc: heavily constrain video height
+ We can only determine a correct placement for the CC line
+ with:
+ * height == 525 (standard NTSC, line 21 / 22)
+ * height == 486 (NTSC usable lines + 6 lines for VBI, line 1 / 2)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1554>
+
+2020-09-04 02:33:52 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * ext/closedcaption/gstline21enc.c:
+ line21enc: add support for CDP closed caption meta
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1554>
+
+2020-08-27 11:23:01 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
+ adaptivedemux: Add another nominal bitrate fallback calculation
+ Some HTTP servers don't provide fragment sizes (with the Content-Length HTTP
+ header). In order to still figure out a nominal bitrate (for usage by queue2),
+ calculate on when we're done downloading a fragment.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1544>
+
+2020-08-27 11:18:56 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
+ adaptivedemux: Handle invalid HTTP duration
+ The default BYTE DURATION basesrc query handler will return `-1` and TRUE. In
+ order to properly handle cases where upstream http servers didn't return a valid
+ Content-Length we also need to check whether it was valid when calculating
+ bitrates.
+ Avoids returning completely bogus bitrates with gogol's video streaming services
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1544>
+
+2020-08-12 20:31:32 +0900 Seungha Yang <seungha@centricular.com>
+
+ * sys/mediafoundation/gstmfvideobuffer.cpp:
+ * sys/mediafoundation/gstmfvideobuffer.h:
+ * sys/mediafoundation/gstmfvideoenc.cpp:
+ * sys/mediafoundation/meson.build:
+ * sys/mediafoundation/plugin.c:
+ mfvideoenc: Add support for zero-copy encoding
+ Add custom IMFMediaBuffer and IMF2DBuffer implementation in order to
+ keep track of lifecycle of Media Foundation memory object.
+ By this new implementation, we can pass raw memory of upstream buffer
+ to Media Foundation without copy.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1518>
+
+2020-09-01 13:28:44 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/rtmp2/gstrtmp2sink.c:
+ * gst/rtmp2/gstrtmp2src.c:
+ * gst/rtmp2/rtmp/rtmpconnection.c:
+ rtmp2: Replace stats queue with stats lock
+ Making the thread receiving the stats wait on the loop to respond was
+ not a good idea, as the latter can get blocked on the streaming thread.
+ Have get_stats read the values directly, adding a lock to ensure we
+ don't read garbage.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1550>
+
+2020-08-19 14:51:17 +0300 Nazar Mokrynskyi <nazar@mokrynskyi.com>
+
+ * docs/meson.build:
+ * gst/rtmp2/gstrtmp2sink.c:
+ * gst/rtmp2/rtmp/rtmpclient.h:
+ rtmp2sink: add docs section with since marker on new stop-commands property
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1256>
+
+2020-08-18 19:16:40 +0300 Nazar Mokrynskyi <nazar@mokrynskyi.com>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * gst/rtmp2/gstrtmp2sink.c:
+ rtmp2: fix code style, update documentation cache
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1256>
+
+2020-08-18 14:05:26 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/rtmp2/gstrtmp2.c:
+ * gst/rtmp2/gstrtmp2sink.c:
+ * gst/rtmp2/rtmp/rtmpclient.c:
+ * gst/rtmp2/rtmp/rtmpclient.h:
+ rtmp2: Clean up (improve) GstRtmpStopCommands type
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1256>
+
+2020-05-02 04:49:42 +0300 Nazar Mokrynskyi <nazar@mokrynskyi.com>
+
+ * gst/rtmp2/gstrtmp2sink.c:
+ * gst/rtmp2/rtmp/rtmpclient.c:
+ * gst/rtmp2/rtmp/rtmpclient.h:
+ rtmp2sink: handle EOS event and close stream
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1285
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1256>
+
+2020-09-02 15:29:49 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/mpegtsmux/gstbasetsmux.c:
+ * gst/mpegtsmux/gstbasetsmux.h:
+ mpegtsmux: Make handling of sinkpads thread-safe
+ Ensure we take the object lock while accessing `GstElement.sinkpads`.
+ Use an iterator when the code isn't simple to avoid deadlock.
+ When we find the best pad, take a reference so a concurrent pad
+ release doesn't destroy the pad before we're done with it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1553>
+
+2020-09-01 13:29:30 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * ext/hls/gsthlssink2.c:
+ hlssink2: Actually release splitmuxsink's pads
+ It was looking at the "outer" peer of the ghost pad, not the "inner"
+ peer (the target).
+ It provided the wrong pad to gst_element_release_request_pad.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1551>
+
+2020-09-08 10:48:56 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/mpegtsmux/gstbasetsmux.c:
+ mpegtsmux: Don't create streams with reserved PID
+ There are quite a few reserved PID in the various MPEG-TS (and derivate)
+ specifications which we should definitely not use. Those PID have a certain
+ meaning and purpose.
+ Furthermore, a lot of the code in the muxer implementation also makes assumption
+ on the purpose of streams based on their PID.
+ Therefore, when requesting a pad with a specific PID, make sure it is not a
+ restricted PID.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1561>
+
+2020-09-08 17:30:42 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * .gitlab-ci.yml:
+ ci: include template from gst-ci master branch again
+
+2020-09-08 16:58:50 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson.build:
+ Back to development
+
=== release 1.18.0 ===
2020-09-08 00:07:45 +0100 Tim-Philipp Müller <tim@centricular.com>
+ * .gitlab-ci.yml:
* ChangeLog:
* NEWS:
* README:
diff --git a/NEWS b/NEWS
index dba9c7c47..cc6c3b4a8 100644
--- a/NEWS
+++ b/NEWS
@@ -1,11 +1,23 @@
-GStreamer 1.18 Release Notes
+GStreamer 1.20 Release Notes
-GStreamer 1.18.0 was originally released on 7 September 2020.
+GStreamer 1.20 has not been released yet. It is scheduled for release
+around July 2021.
-See https://gstreamer.freedesktop.org/releases/1.18/ for the latest
+1.19.x is the unstable development version that is being developed in
+the git master branch and which will eventually result in 1.20, and
+1.19.1 is the current development release in that series
+
+It is expected that feature freeze will be around June/July 2021,
+followed by several 1.19 pre-releases and the new 1.20 stable release
+around July 2021.
+
+1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
+1.10, 1.8, 1.6,, 1.4, 1.2 and 1.0 release series.
+
+See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
version of this document.
-Last updated: Monday 7 September 2020, 10:30 UTC (log)
+Last updated: Sunday 30 May 2021, 16:00 UTC (log)
Introduction
@@ -18,1639 +30,87 @@ fixes and other improvements.
Highlights
-- GstTranscoder: new high level API for applications to transcode
- media files from one format to another
-
-- High Dynamic Range (HDR) video information representation and
- signalling enhancements
-
-- Instant playback rate change support
-
-- Active Format Description (AFD) and Bar Data support
-
-- ONVIF trick modes support in both GStreamer RTSP server and client
-
-- Hardware-accelerated video decoding on Windows via DXVA2 /
- Direct3D11
-
-- Microsoft Media Foundation plugin for video capture and
- hardware-accelerated video encoding on Windows
-
-- qmlgloverlay: New overlay element that renders a QtQuick scene over
- the top of an input video stream
-
-- New imagesequencesrc element to easily create a video stream from a
- sequence of jpeg or png images
-
-- dashsink: Add new sink to produce DASH content
-
-- dvbsubenc: DVB Subtitle encoder element
-
-- TV broadcast compliant MPEG-TS muxing with constant bitrate muxing
- and SCTE-35 support
-
-- rtmp2: new RTMP client source and sink element implementation
-
-- svthevcenc: new SVT-HEVC-based H.265 video encoder
-
-- vaapioverlay compositor element using VA-API
-
-- rtpmanager support for Google’s Transport-Wide Congestion Control
- (twcc) RTP extension
-
-- splitmuxsink and splitmuxsrc gained support for auxiliary video
- streams
-
-- webrtcbin now contains some initial support for renegotiation
- involving stream addition and removal
-
-- New RTP source and sink elements to easily set up RTP streaming via
- rtp:// URIs
-
-- New Audio Video Transport Protocol (AVTP) plugin for Time-Sensitive
- Applications
-
-- Support for the Video Services Forum’s Reliable Internet Stream
- Transport (RIST) TR-06-1 Simple Profile
-
-- Universal Windows Platform (UWP) support
-
-- rpicamsrc element for capturing from the Raspberry Pi camera
-
-- RTSP Server TCP interleaved backpressure handling improvements as
- well as support for Scale/Speed headers
-
-- GStreamer Editing Services gained support for nested timelines,
- per-clip speed rate control and the OpenTimelineIO format.
-
-- Autotools build system has been removed in favour of Meson
+- this section will be completed in due course
Major new features and changes
Noteworthy new features and API
-Instant playback rate changes
-
-Changing the playback rate as quickly as possible so far always required
-a flushing seek. This generally works, but has the disadvantage of
-flushing all data from the playback pipeline and requiring the demuxer
-or parser to do a full-blown seek including resetting its internal state
-and resetting the position of the data source. It might also require
-considerable decoding effort to get to the right position to resume
-playback from at the higher rate.
-
-This release adds a new mechanism to achieve quasi-instant rate changes
-in certain playback pipelines without interrupting the flow of data in
-the pipeline. This is activated by sending a seek with the
-GST_SEEK_FLAG_INSTANT_RATE_CHANGE flag and start_type = stop_type =
-GST_SEEK_TYPE_NONE. This flag does not work for all pipelines, in which
-case it is necessary to fall back to sending a full flushing seek to
-change the playback rate. When using this flag, the seek event is only
-allowed to change the current rate and can modify the trickmode flags
-(e.g. keyframe only or not), but it is not possible to change the
-current playback position, playback direction or do a flush.
-
-This is particularly useful for streaming use cases like HLS or DASH
-where the streaming download should not be interrupted when changing
-rate.
-
-Instant rate changing is handled in the pipeline in a specific sequence
-which is detailed in the seeking design docs. Most elements don’t need
-to worry about this, only elements that sync to the clock need some
-special handling which is implemented in the GstBaseSink base class, so
-should be taken care of automatically in most normal playback pipelines
-and sink elements.
-
-See Jan’s GStreamer Conference 2019 talk “Changing Playback Rate
-Instantly” for more information.
-
-You can try this feature by passing the -i command line option to
-gst-play-1.0. It is supported at least by qtdemux, tsdemux, hlsdemux,
-and dashdemux.
-
-Google Transport-Wide Congestion Control
-
-rtpmanager now supports the parsing and generating of RTCP messages for
-the Google Transport-Wide Congestion Control RTP Extension, as described
-in:
-https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01.
-
-This “just” provides the required plumbing/infrastructure, it does not
-actually make effect any actual congestion control on the sender side,
-but rather provides information for applications to use to make such
-decisions.
-
-See Håvard’s “Google Transport-Wide Congestion Control” talk for more
-information about this feature.
-
-GstTranscoder: a new high-level transcoding API for applications
-
-The new GstTranscoder library, along with transcodebin and
-uritranscodebin elements, provides high level API for applications to
-transcode media files from one format to another. Watch Thibault’s talk
-“GstTranscoder: A High Level API to Quickly Implement Transcoding
-Capabilities in your Applications” for more information.
-
-This also comes with a gst-transcoder-1.0 command line utility to
-transcode one URI into another URI based on the specified encoding
-profile.
-
-Active Format Description (AFD) and Bar Data support
-
-The GstVideo Ancillary Data API has gained support for Active Format
-Description (AFD) and Bar data.
-
-This includes various two new buffer metas: GstVideoAFDMeta and
-GstVideoBarMeta.
-
-GStreamer now also parses and extracts AFD/Bar data in the h264/h265
-video parsers, and supports both capturing them and outputting them in
-the decklink elements. See Aaron’s lightning talk at the GStreamer
-Conference for more background.
-
-ONVIF trick modes support in both GStreamer RTSP server and client
-
-- Support for the various trick modes described in section 6 of the
- ONVIF streaming spec has been implemented in both gst-rtsp-server
- and rtspsrc.
-- Various new properties in rtspsrc must be set to take advantage of
- the ONVIF support
-- Examples are available here: test-onvif-server.c and
- test-onvif-client.c
-- Watch Mathieu Duponchelle’s talk “Implementing a Trickmode Player
- with ONVIF, RTSP and GStreamer” for more information and a live
- demo.
-
-GStreamer Codecs library with decoder base classes
-
-This introduces a new library in gst-plugins-bad which contains a set of
-base classes that handle bitstream parsing and state tracking for the
-purpose of decoding different codecs. Currently H264, H265, VP8 and VP9
-are supported. These bases classes are meant primarily for internal use
-in GStreamer and are used in various decoder elements in connection with
-low level decoding APIs like DXVA, NVDEC, VAAPI and V4L2 State Less
-decoders. The new library is named gstreamer-codecs-1.0 /
-libgstcodecs-1.0 and is not yet guaranteed to be API stable across major
-versions.
-
-MPEG-TS muxing improvements
-
-The GStreamer MPEG-TS muxer has seen major improvements on various
-fronts in this cycle:
-
-- It has been ported to the GstAggregator base class which means it
- can work in defined-latency mode with live input sources and
- continue streaming if one of the inputs stops producing data.
-
-- atscmux, a new ATSC-specific tsmux subclass
-
-- Constant Bit Rate (CBR) muxing support via the new bitrate property
- which allows setting the target bitrate in bps. If this is set the
- muxer will insert null packets as padding to achieve the desired
- multiplex-wide constant bitrate.
-
-- compliance fixes for TV broadcasting use cases (esp. ATSC). See
- Jan’s talk “TV Broadcast compliant MPEG-TS” for details.
-
-- Streams can now be added and removed at runtime: Until now, any
- streams in tsmux had to be present when the element started
- outputting its first buffer. Now they can appear at any point during
- the stream, or even disappear and reappear later using the same PID.
-
-- new pcr-interval property allows applications to configure the
- desired interval instead of hardcoding it
-
-- basic SCTE-35 support. This is enabled by setting the scte-35-pid
- property on the muxer. Sending SCTE-35 commands is then done by
- creating the appropriate SCTE-35 GstMpegtsSection and sending them
- on the muxer.
-
-- MPEG-2 AAC handling improvements
+- this section will be filled in in due course
New elements
-- New qmlgloverlay element for rendering a QtQuick scene over the top
- of a video stream. qmlgloverlay requires that Qt support adopting an
- external OpenGL context and is known to work on X11 and Windows.
- Wayland is known not to work due to limitations within Qt. Check out
- the example to see how it works.
-
-- The clocksync element is a generic element that can be placed in a
- pipeline to synchronise passing buffers to the clock at that point.
- This is similar to identity sync=true, but because it isn’t
- GstBaseTransform-based, it can process GstBufferLists without
- breaking them into separate GstBuffers. It is also more discoverable
- than the identity option. Note that you do not need to insert this
- element into your pipeline to make GStreamer sync to the pipeline
- clock, this is usually handled automatically by the elements in the
- pipeline (sources and sinks mostly). This element is useful to feed
- non-live input such as local files into elements that expect live
- input such as webrtcbin.`
-
-- New imagesequencesrc element to easily create a video stream from a
- sequence of JPEG or PNG images (or any other encoding where the type
- can be detected), basically a multifilesrc made specifically for
- image sequences.
-
-- rpicamsrc element for capturing raw or encoded video (H.264, MJPEG)
- from the Raspberry Pi camera. This works much like the popular
- raspivid command line utility but outputs data nicely timestamped
- and formatted in order to integrate nicely with other GStreamer
- elements. Also comes with a device provider so applications can
- discover the camera if available.
-
-- aatv and cacatv video filters that transform video ASCII art style
-
-- avtp: new Audio Video Transport Protocol (AVTP) plugin for Linux.
- See Andre Guedes’ talk “Audio/Video Bridging (AVB) support in
- GStreamer” for more details.
-
-- clockselect: a pipeline element that enables clock selection/forcing
- via gst-launch pipeline syntax.
-
-- dashsink: Add new sink to produce DASH content. See Stéphane’s talk
- or blog post for details.
-
-- dvbsubenc: a DVB subtitle encoder element
-
-- microdns: a libmicrodns-based mdns device provider to discover RTSP
- cameras on the local network
-
-- mlaudiosink: new audio sink element for the Magic Leap platform,
- accompanied by an MLSDK implementation in the amc plugin
-
-- msdkvp9enc: VP9 encoder element for the Intel MediaSDK
-
-- rist: new plugin implementing support for the Video Services Forum’s
- Reliable Internet Stream Transport (RIST) TR-06-1 Simple Profile.
- See Nicolas’ blog post “GStreamer support for the RIST
- Specification” for more details.
-
-- rtmp2: new RTMP client source and sink elements with fully
- asynchronous network operations, better robustness and additional
- features such as handling ping and stats messages, and adobe-style
- authentication. The new rtmp2src and rtmp2sink elements should be
- API-compatible with the old rtmpsrc / rtmpsink elements and should
- work as drop-in replacements.
-
-- new RTP source and sink elements to easily set up RTP streaming via
- rtp:// URIs: The rtpsink and rtpsrc elements add an URI interface so
- that streams can be decoded with decodebin using rtp:// URIs. These
- can be used as follows: ``` gst-launch-1.0 videotestsrc ! x264enc !
- rtph264pay config-interval=3 ! rtpsink uri=rtp://239.1.1.1:1234
-
- gst-launch-1.0 videotestsrc ! x264enc ! rtph264pay config-interval=1
- ! rtpsink uri=rtp://239.1.2.3:5000 gst-launch-1.0 rtpsrc
- uri=rtp://239.1.2.3:5000?encoding-name=H264 ! rtph264depay !
- avdec_h264 ! videoconvert ! xvimagesink
-
- gst-launch-1.0 videotestsrc ! avenc_mpeg4 ! rtpmp4vpay
- config-interval=1 ! rtpsink uri=rtp://239.1.2.3:5000 gst-launch-1.0
- rtpsrc uri=rtp://239.1.2.3:5000?encoding-name=MP4V-ES ! rtpmp4vdepay
- ! avdec_mpeg4 ! videoconvert ! xvimagesink ```
-
-- svthevcenc: new SVT-HEVC-based H.265 video encoder
-
-- switchbin: new helper element which chooses between a set of
- processing chains (paths) based on input caps, and changes the
- active chain if new caps arrive. Paths are child objects, which are
- accessed by the GstChildProxy interface. See the switchbin
- documentation for a usage example.
-
-- vah264dec: new experimental va plugin with an element for H.264
- decoding with VA-API using GStreamer’s new stateless decoder
- infrastructure (see Linux section below).
-
-- v4l2codecs: introduce an V4L2 CODECs Accelerator supporting the new
- CODECs uAPI in the Linux kernel (see Linux section below)
-
-- zxing new plugin to detect QR codes and barcodes, based on libzxing
-
-- also see the Rust plugins section below which contains plenty of new
- exciting plugins written in Rust!
+- this section will be filled in in due course
New element features and additions
-GStreamer core
-
-- filesink: Add a new “full” buffer mode. Previously the default and
- full modes were the same. Now the default mode is like before: it
- accumulates all buffers in a buffer list until the threshold is
- reached and then writes them all out, potentially in multiple
- writes. The new full mode works by always copying memory to a single
- memory area and writing everything out with a single write once the
- threshold is reached.
-
-- multiqueue: Add stats property and
- current-level-{buffers, bytes, time} pad properties to query the
- current levels of the corresponding internal queue.
-
-Plugins Base
-
-- alsa: implement a device provider
-
-- alsasrc: added use-driver-timestamp property to force use of
- pipeline timestamps (and disable driver timestamps) if so desired
-
-- audioconvert: fix changing the mix-matrix property at runtime
-
-- appsrc: added support for segment forwarding or custom GstSegments
- via GstSample, enabled via the handle-segment-change property. This
- only works for segments in TIME format for now.
-
-- compositor: various performance optimisations, checkerboard drawing
- fixes, and support for VUYA format
-
-- encodebin: Fix and refactor smart encoding; ensure that a single
- segment is pushed into encoders; improve force-key-unit event
- handling.
-
-- opusenc: Add low delay option (audio-type=restricted-lowdelay) to
- disable the SILK layer and achieve only 5ms delay.
-
-- opusdec: add stats property to retrieve various decoder statistics.
-
-- uridecodebin3: Let decodebin3 do its stream selection if no one
- answers
-
-- decodebin3: Avoid overriding explicit user selection of streams
-
-- playbin: add flag to force use of software decoders over any
- hardware decoders that might also be available
-
-- playbin3, playbin: propagate sink context
-
-- rawvideoparse: Fix tiling support, allow setting colorimetry
-
-- subparse: output plain utf8 text instead of pango-markup formatted
- text if downstream requires it, useful for interop with elements
- that only accept utf8-formatted subtitles such as muxers or closed
- caption converters.
-
-- tcpserversrc, tcpclientsrc: add stats property with TCP connection
- stats (some are only available on Linux though)
-
-- timeoverlay: add show-times-as-dates, datetime-format and
- datetime-epoch properties to display times with dates
-
-- videorate: Fix changing rate property during playback; reverse
- playback fixes; update QoS events taking into account our rate
-
-- videoscale: pass through and transform size sensitive metas instead
- of just dropping them
-
-Plugins Good
-
-- avidemux can handle H.265 video now. Our advice remains to
- immediately cease all contact and communication with anyone who
- hands you H.265 video in an AVI container, however.
-
-- avimux: Add support for S24LE and S32LE raw audio and v210 raw video
- formats; support more than 2 channels of raw audio.
-
-- souphttpsrc: disable session sharing and cookie jar when the cookies
- property is set; correctly handle seeks past the end of the content
-
-- deinterlace: new YADIF deinterlace method which should provide
- better quality than the existing methods and is LGPL licensed;
- alternate fields are supported as input to the deinterlacer as well
- now, and there were also fixes for switching the deinterlace mode on
- the fly.
-
-- flvmux: in streamable mode allow adding new pads even if the initial
- header has already been written. Old clients will only process the
- initial stream, new clients will get a header with the new streams.
- The skip-backwards-streams property can be used to force flvmux to
- skip and drop a few buffers rather than produce timestamps that go
- backward and confuse librtmp-based clients. There’s also better
- handling for timestamp rollover when streaming for a long time.
-
-- imagefreeze: Add live mode, which can be enabled via the new is-live
- property. In this mode frames will only be output in PLAYING state
- according to the negotiated framerate, skipping frames if the output
- can’t keep up (e.g. because it’s blocked downstream). This makes it
- possible to actually use imagefreeze in live pipelines without
- having to manually ensure somehow that it starts outputting at the
- current running time and without still risking to fall behind
- without recovery.
-
-- matroskademux, qtdemux: Provide audio lead-in for some lossy formats
- when doing accurate seeks, to make sure we can actually decode
- samples at the desired position. This is especially important for
- non-linear audio/video editing use-cases.
-
-- matroskademux, matroskamux: Handle interlaced field order (tff, bff)
-
-- matroskamux:
-
- - new offset-to-zero property to offset all streams to start at
- zero. This takes the timestamp of the earliest stream and
- offsets it so that it starts at 0. Some software (VLC,
- ffmpeg-based) does not properly handle Matroska files that start
- at timestamps much bigger than zero, which could happen with
- live streams.
- - added a creation-time property to explicitly set the creation
- time to write into the file headers. Useful when remuxing, for
- example, but also for live feeds where the DateUTC header can be
- set a UTC timestamp corresponding to the beginning of the file.
- - the muxer now also always waits for caps on sparse streams, and
- warns if caps arrive after the header has already been sent,
- otherwise the subtitle track might be silently absent in the
- final file. This might affect applications that send sparse data
- into matroskamux via an appsrc element, which will usually not
- send out the initial caps before it sends out the first buffer.
-
-- pulseaudio: device provider improvements: fix discovery of
- newly-added devices and hide the alsa device provider if we provide
- alsa devices
-
-- qtdemux: raw audio handling improvements, support for AC4 audio, and
- key-units trickmode interval support
-
-- qtmux:
-
- - was ported to the GstAggregator base class which allows for
- better handling of live inputs, but might entail minor
- behavioural changes for sparse inputs if inputs are not live.
- - has also gained a force-create-timecode-trak property to create
- a timecode trak in non-mov flavors, which may not be supported
- by Apple but is supported by other software such as Final Cut
- Pro X
- - also a force-chunks property to force the creation of chunks
- even in single-stream files, which is required for Apple ProRes
- certification.
- - also supports 8k resolutions in prefill mode with ProRes.
-
-- rtpbin gained a request-jitterbuffer signal which allows
- applications to plug in their own jitterbuffer implementation such
- as the threadsharing jitterbuffer from the Rust plugins, for
- example.
-
-- rtprtxsend: add clock-rate-map property to allow generic RTP input
- caps without a clock-rate whilst still supporting the max-size-time
- property for bundled streams.
-
-- rtpssrcdemux: introduce max-streams property to guard against
- attacks where the sender changes SSRC for every RTP packet.
-
-- rtph264pay, rtph264pay: implement STAP-A and various aggregation
- modes controled by the new aggegrate-mode property: none to not
- aggregate NAL units (as before), zero-latency to aggregate NAL units
- until a VCL or suffix unit is included, or max to aggregate all NAL
- units with the same timestamp (which adds one frame of latency). The
- default has been kept at none for backwards compatibility reasons
- and because various RTP/RTSP implementions don’t handle aggregation
- well. For WebRTC use cases this should be set to zero-latency,
- however.
-
-- rtpmp4vpay: add support for config-interval=-1 to resend headers
- with each IDR keyframe, like other video payloaders.
-
-- rtpvp8depay: Add wait-for-keyframe property for waiting until the
- next keyframe after packet loss. Useful if the video stream was not
- encoded with error resilience enabled, in which case packet loss
- tends to cause very bad artefacts when decoding, and waiting for the
- next keyframe instead improves user experience considerably.
-
-- splitmuxsink and splitmuxsrc can now handle auxiliary video streams
- in addition to the primary video stream. The primary video stream is
- still used to select fragment cut points at keyframe boundaries.
- Auxilliary video streams may be broken up at any packet - so
- fragments may not start with a keyframe for those streams.
-
-- splitmuxsink:
-
- - new muxer-preset and sink-preset properties for setting
- muxer/sink presets
- - a new start-index property to set the initial fragment id
- - and a new muxer-pad-map property which explicitly maps
- splitmuxsink pads to the muxer pads they should connect to,
- overriding the implicit logic that tries to match pads but
- yields arbitrary names.
- - Also includes the actual sink element in the fragment-opened and
- fragment-closed element messages now, which is especially useful
- for sinks without a location property or when finalisation of
- the fragments is done asynchronously.
-
-- videocrop: add support for Y444, Y41B and Y42B pixel formats
-
-- vp8enc, vp9enc: change default value of VP8E_SET_STATIC_THRESHOLD
- from 0 to 1 which matches what Google WebRTC does and results in
- lower CPU usage; also added a new bit-per-pixel property to select a
- better default bitrate
-
-- v4l2: add support for ABGR, xBGR, RGBA, and RGBx formats and for
- handling interlaced video in alternate fields interlace mode (one
- field per buffer instead of one frame per picture with both fields
- interleaved)
-
-- v4l2: Profile and level probing support for H264, H265, MPEG-4,
- MPEG-2, VP8, and VP9 video encoders and decoders
-
-Plugins Ugly
-
-- asfdemux: extract more metadata: disc number and disc count
-
-- x264enc:
-
- - respect YouTube bitrate recommendation when user sets the
- YouTube profile preset
- - separate high-10 video formats from 8-bit formats to improve
- depth negotiation and only advertise suitable input raw formats
- for the desired output depth
- - forward downstream colorimetry and chroma-site restrictions to
- upstream elements
- - support more color primaries/mappings
-
-Plugins Bad
-
-- av1enc: add threads, row-mt and tile-{columns,rows} properties for
- this AOMedia AV1 encoder
-
-- ccconverter: implement support for CDP framerate conversions
-
-- ccextractor: Add remove-caption-meta property to remove caption
- metas from the outgoing video buffers
-
-- decklink: add support for 2K DCI video modes, widescreen NTSC/PAL,
- and for parsing/outputting AFD/Bar data. Also implement a simple
- device provider for Decklink devices.
-
-- dtlsrtpenc: add rtp-sync property which synchronises RTP streams to
- the pipeline clock before passing them to funnel for merging with
- RTCP.
-
-- fdkaac: also decode MPEG-2 AAC; encoder now supports more
- multichannel/surround sound layouts
-
-- hlssink2: add action signals for custom playlist/fragment handling:
- 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.
-
-- interlace: can now output data in alternate fields mode; added field
- switching mode for 2:2 field pattern
-
-- iqa: Add a mode property to enable strict mode that checks that all
- the input streams have the exact same number of frames; also
- implement the child proxy interface
-
-- mpeg2enc: add disable-encode-retries property for lower CPU usage
-
-- mpeg4videoparse: allow re-sending codec config at IDR via
- config-interval=-1
-
-- mpegtsparse: new alignment property to determine number of TS
- packets per output buffer, useful for feeding an MPEG-TS stream for
- sending via udpsink. This can be used in combination with the
- split-on-rai property that makes sure to start a new output buffer
- for any TS packet with the Random Access Indicator set. Also set
- delta unit buffer flag on non-random-access buffers.
-
-- mpegdemux: add an ignore-scr property to ignore the SCR in
- non-compliant MPEG-PS streams with a broken SCR, which will work as
- long as PTS/DTS in the PES header is consistently increasing.
-
-- tsdemux:
-
- - add an ignore-pcr property to ignore MPEG-TS streams with broken
- PCR streams on which we can’t reliably recover correct
- timestamps.
- - new latency property to allow applications to lower the
- advertised worst-case latency of 700ms if they know their
- streams support this (must have timestamps in higher frequency
- than required by the spec)
- - support for AC4 audio
-
-- msdk - Intel Media SDK plugin for hardware-accelerated video
- decoding and encoding on Windows and Linux:
-
- - mappings for more video formats: Y210, Y410, P012_LE, Y212_LE
- - encoders now support bitrate changes and input format changes in
- playing state
- - msdkh264enc, msdkh265enc: add support for CEA708 closed caption
- insertion
- - msdkh264enc, msdkh265enc: set Region of Interest (ROI) region
- from ROI metas
- - msdkh264enc, msdkh265enc: new tune property to enable low-power
- mode
- - msdkh265enc: add support 12-bit 4:2:0 encoding and 8-bit 4:2:2
- encoding and VUYA, Y210, and Y410 as input formats
- - msdkh265enc: add support for screen content coding extension
- - msdkh265dec: add support for main-12/main-12-intra,
- main-422-10/main-422-10-intra 10bit,
- main-422-10/main-422-10-intra 8bit,
- main-422-12/main-422-12-intra, main-444-10/main-444-10-intra,
- main-444-12/main-444-12-intra, and main-444 profiles
- - msdkvp9dec: add support for 12-bit 4:4:4
- - msdkvpp: add support for Y410 and Y210 formats, cropping via
- properties, and a new video-direction property.
-
-- mxf: Add support for CEA-708 CDP from S436 essence tracks. mxfdemux
- can now handle Apple ProRes
-
-- nvdec: add H264 + H265 stateless codec implementation nvh264sldec
- and nvh265sldec with fewer features but improved latency. You can
- set the environment variable GST_USE_NV_STATELESS_CODEC=h264 to use
- the stateless decoder variant as nvh264dec instead of the “normal”
- NVDEC decoder implementation.
-
-- nvdec: add support for 12-bit 4:4:4/4:2:0 and 10-bit 4:2:0 decoding
-
-- nvenc:
-
- - add more rate-control options, support for B-frame encoding (if
- device supports it), an aud property to toggle Access Unit
- Delimiter insertion, and qp-{min,max,const}-{i,p,b} properties.
- - the weighted-pred property enables weighted prediction.
- - support for more input formats, namely 8-bit and 10-bit RGB
- formats (BGRA, RGBA, RGB10A2, BGR10A2) and YV12 and VUYA.
- - on-the-fly resolution changes are now supported as well.
- - in case there are multiple GPUs on the system, there are also
- per-GPU elements registered now, since different devices will
- have different capabilities.
- - nvh265enc can now support 10-bit YUV 4:4:4 encoding and 8-bit
- 4:4:4 / 10-bit 4:2:0 formats up to 8K resolution (with some
- devices). In case of HDR content HDR related SEI nals will be
- inserted automatically.
-
-- openjpeg: enable multi-threaded decoding and add support for
- sub-frame encoding (for lower latency)
-
-- rtponviftimestamp: add opt-out “drop-out-of-segment” property
-
-- spanplc: new stats property
-
-- srt: add support for IPv6 and for using hostnames instead of IP
- addresses; add streamid property, but also allow passing the id via
- the stream URI; add wait-for-connection property to srtsink
-
-- timecodestamper: this element was rewritten with an updated API
- (properties); it has gained many new properties, seeking support and
- support for linear timecode (LTC) from an audio stream.
-
-- uvch264src now comes with a device provider to advertise available
- camera sources that support this interface (mostly Logitech C920s)
-
-- wpe: Add software rendering support and support for mouse scroll
- events
-
-- x265enc: support more 8/10/12 bits 4:2:0, 4:2:2 and 4:4:4 profiles;
- add support for mastering display info and content light level
- encoding SEIs
-
-gst-libav
-
-- Add mapping for SpeedHQ video codec used by NDI
-
-- Add mapping for aptX and aptX-HD
-
-- avivf_mux: support VP9 and AV1
-
-- avvidenc: shift output buffer timestamps and output segment by 1h
- just like x264enc does, to allow for negative DTS.
-
-- avviddec: Limit default number of decoder threads on systems with
- more than 16 cores, as the number of threads used in avdec has a
- direct impact on the latency of the decoder, which is of as many
- frames as threads, so a large numbers of threads can make for
- latency levels that can be problematic in some applications.
-
-- avviddec: Add thread-type property that allows applications to
- specify the preferred multithreading method (auto, frame, slice).
- Note that thread-type=frame may introduce additional latency
- especially in live pipelines, since it introduces a decoding delay
- of number of thread frames.
+- this section will be filled in in due course
Plugin and library moves
-- There were no plugin moves or library moves in this cycle.
+- this section will be filled in in due course
-- The rpicamsrc element was moved into -good from an external
- repository on github.
+- There were no plugin moves or library moves in this cycle.
Plugin removals
The following elements or plugins have been removed:
-- The yadif video deinterlacing plugin from gst-plugins-bad, which was
- one of the few GPL licensed plugins, has been removed in favour of
- deinterlace method=yadif.
-
-- The avdec_cdgraphics CD Graphics video decoder element from
- gst-libav was never usable in GStreamer and we now have a cdgdec
- element written in Rust in gst-plugins-rs to replace it.
-
-- The VDPAU plugin has been unmaintained and unsupported for a very
- long time and does not have the feature set we expect from
- hardware-accelerated video decoders. It’s been superseded by the
- nvcodec plugin leveraging NVIDIA’s NVDEC API.
+- this section will be filled in in due course
Miscellaneous API additions
-GStreamer core
-
-- gst_task_resume(): This new API allows resuming a task if it was
- paused, while leaving it in stopped state if it was stopped or not
- started yet. This can be useful for callback-based driver workflows,
- where you basically want to pause and resume the task when buffers
- are notified while avoiding the race with a gst_task_stop() coming
- from another thread.
-
-- info: add printf extensions GST_TIMEP_FORMAT and GST_STIMEP_FORMAT
- for printing GstClockTime/GstClockTimeDiff pointers, which is much
- more convenient to use in debug log statements than the usual
- GST_TIME_FORMAT-followed-by-GST_TIME_ARGS dance. Also add an
- explicit GST_STACK_TRACE_SHOW_NONE enum value.
-
-- gst_element_get_current_clock_time() and
- gst_element_get_current_running_time(): new helper functions for
- getting an element clock’s time, and the clock time minus base time,
- respectively. Useful when adding additional input branches to
- elements such as compositor, audiomixer, flvmux, interleave or
- input-selector to determine initial pad offsets and such.
-
-- seeking: Add GST_SEEK_FLAG_TRICKMODE_FORWARD_PREDICTED to just skip
- B-frames during trick mode, showing both keyframes + P-frame, and
- add support for it in h264parse and h265parse.
-
-- elementfactory: add GST_ELEMENT_FACTORY_TYPE_HARDWARE to allow
- elements to advertise that they are hardware-based or interact with
- hardware. This has multiple applications:
-
- - it makes it possible to easily differentiate hardware and
- software based element implementations such as audio or video
- encoders and decoders. This is useful in order to force the use
- of software decoders for specific use cases, or to check if a
- selected decoder is actually hardware-accelerated or not.
- - elements interacting with hardware and their respective drivers
- typically don’t know the actually supported capabilities until
- the element is set into at least READY state and can open a
- device handle and probe the hardware.
-
-- gst_uri_from_string_escaped(): identical to gst_uri_from_string()
- except that the userinfo and fragment components of the URI will not
- be unescaped while parsing. This is needed for correctly parsing
- usernames or passwords with : in them .
-
-- paramspecs: new GstParamSpec flag GST_PARAM_CONDITIONALLY_AVAILABLE
- to indicate that a property might not always exist.
-
-- gst_bin_iterate_all_by_element_factory_name() finds elements in a
- bin by factory name
-
-- pad: gst_pad_get_single_internal_link() is a new convenience
- function to return the single internal link of a pad, which is
- useful e.g. to retrieve the output pad of a new multiqueue request
- pad.
-
-- datetime: Add constructors to create datetimes with timestamps in
- microseconds, gst_date_time_new_from_unix_epoch_local_time_usecs()
- and gst_date_time_new_from_unix_epoch_utc_usecs().
-
-- gst_debug_log_get_lines() gets debug log lines formatted in the same
- way the default log handler would print them
-
-- GstSystemClock: Add GST_CLOCK_TYPE_TAI as GStreamer abstraction for
- CLOCK_TAI, to support transmission offloading features where network
- packets are timestamped with the time they are deemed to be actually
- transmitted. Useful in combination with the new AVTP plugin.
-
-- miscellaneous utility functions: gst_clear_uri(),
- gst_structure_take().
-
-- harness: Added gst_harness_pull_until_eos()
-
-- GstBaseSrc:
-
- - gst_base_src_new_segment() allows subclasses to update the
- segment to be used at runtime from the ::create() function. This
- deprecates gst_base_src_new_seamless_segment()
- - gst_base_src_negotiate() allows subclasses to trigger format
- renegotiation at runtime from inside the ::create() or ::alloc()
- function
-
-- GstBaseSink: new stats property and gst_base_sink_get_stats() method
- to retrieve various statistics such as average frame rate and
- dropped/rendered buffers.
-
-- GstBaseTransform: gst_base_transform_reconfigure() is now public
- API, useful for subclasses that need to completely re-implement the
- ::submit_input_buffer() virtual method
-
-- GstAggregator:
-
- - gst_aggregator_update_segment() allows subclasses to update the
- output segment at runtime. Subclasses should use this function
- rather than push a segment event onto the source pad directly.
- - new sample selection API:
- - subclasses should now call gst_aggregator_selected_samples()
- from their ::aggregate() implementation to signal that they
- have selected the next samples they will aggregate
- - GstAggregator will then emit the samples-selected signal
- where handlers can then look up samples per pad via
- gst_aggregator_peek_next_sample().
- - This is useful for example to atomically update input pad
- properties in mixer subclasses such as compositor.
- Applications can now update properties with precise control
- of when these changes will take effect, and for which input
- buffer(s).
- - gst_aggregator_finish_buffer_list() allows subclasses to push
- out a buffer list, improving efficiency in some cases.
- - a ::negotiate() virtual method was added, for consistency with
- other base classes and to allow subclasses to completely
- override the negotiation behaviour.
- - the new ::sink_event_pre_queue() and ::sink_query_pre_queue()
- virtual methods allow subclasses to intercept or handle
- serialized events and queries before they’re queued up
- internally.
-
-GStreamer Plugins Base Libraries
-
-Audio library
-
-- audioaggregator, audiomixer: new output-buffer-duration-fraction
- property which allows use cases such as keeping the buffers output
- by compositor on one branch and audiomixer on another perfectly
- aligned, by requiring the compositor to output a n/d frame rate, and
- setting output-buffer-duration-fraction to d/n on the audiomixer.
-
-- GstAudioDecoder: new max-errors property so applications can
- configure at what point the decoder should error out, or tell it to
- just keep going
-
-- gst_audio_make_raw_caps() and gst_audio_formats_raw() are
- bindings-friendly versions of the GST_AUDIO_CAPS_MAKE() C macro.
-
-- gst_audio_info_from_caps() now handles encoded audio formats as well
-
-PbUtils library
-
-- GstEncodingProfile:
- - Do not restrict number of similar profiles in a container
- - add GstValue serialization function
-- codec utils now support more H.264/H.265 profiles/levels and have
- improved extension handling
-
-RTP library
-
-- rtpbasepayloader: Add scale-rtptime property for scaling RTP
- timestamp according to the segment rate (equivalent to RTSP speed
- parameter). This is useful for ONVIF trickmodes via RTSP.
-
-- rtpbasepayload: add experimental property for embedding twcc
- sequencenumbers for Transport-Wide Congestion Control (gated behind
- the GST_RTP_ENABLE_EXPERIMENTAL_TWCC_PROPERTY environment
- variable) - more generic API for enabling this is expected to land
- in the next development cycle.
-
-- rtcpbuffer: add RTPFB_TYPE_TWCC for Transport-Wide Congestion
- Control
-
-- rtpbuffer: add
- gst_rtp_buffer_get_extension_onebyte_header_from_bytes()``, so that one can parse theGBytes`
- returned by gst_rtp_buffer_get_extension_bytes()
-
-- rtpbasedepayload: Add max-reorder property to make the
- previously-hardcoded value when to consider a sender to have
- restarted configurable. In some scenarios it’s particularly useful
- to set max-reorder=0 to disable the behaviour that the depayloader
- will drop packets: when max-reorder is set to 0 all
- reordered/duplicate packets are considered coming from a restarted
- sender.
-
-RTSP library
-
-- add gst_rtsp_url_get_request_uri_with_control() to create request
- uri combined with control url
-
-- GstRTSPConnection: add the possibility to limit the Content-Length
- for RTSP messages via
- gst_rtsp_connection_set_content_length_limit(). The same
- functionality is also exposed in gst-rtsp-server.
-
-SDP library
-
-- add support for parsing the extmap attribute from caps and storing
- inside caps The extmap attribute allows mapping RTP extension header
- IDs to well-known RTP extension header specifications. See RFC8285
- for details.
-
-Tags library
-
-- update to latest iso-code and support more languages
-
-- add tags for acoustid id & acoustid fingerprint, plus MusicBrainz ID
- handling fixes
-
-Video library
-
-- High Dynamic Range (HDR) video information representation and
- signalling enhancements:
-
- - New APIs for HDR video information representation and
- signalling:
- - GstVideoMasteringDisplayInfo: display color volume info as
- per SMPTE ST 2086
- - GstVideoContentLightLevel: content light level specified in
- CEA-861.3, Appendix A.
- - plus functions to serialise/deserialise and add them to or
- parse them from caps
- - gst_video_color_{matrix,primaries,transfer}_{to,from}_iso():
- new utilility functions for conversion from/to ISO/IEC
- 23001-8
- - add ARIB STD-B67 transfer chracteristic function
- - add SMPTE ST 2084 support and BT 2100 colorimetry
- - define bt2020-10 transfer characteristics for clarity:
- bt707, bt2020-10, and bt2020-12 transfer characteristics are
- functionally identical but have their own unique values in
- the specification.
- - h264parse, h265parse: Parse mastering display info and content
- light level from SEIs.
- - matroskademux: parse HDR metadata
- - matroskamux: Write MasteringMetadata and Max{CLL,FALL}. Enable
- muxing with HDR meta data if upstream provided it
- - avviddec: Extract HDR information if any and map bt2020-10, PQ
- and HLG transfer functions
-
-- added bt601 transfer function (for completeness)
-
-- support for more pixel formats:
-
- - Y412 (packed 12 bits 4:4:4:4)
- - Y212 (packed 12 bits 4:2:2)
- - P012 (semi-planar 4:2:0)
- - P016_{LE,BE} (semi-planar 16 bits 4:2:0)
- - Y444_16{LE,BE} (planar 16 bits 4:4:4)
- - RGB10A2_LE (packed 10-bit RGB with 2-bit alpha channel)
- - NV12_32L32 (NV12 with 32x32 tiles in linear order)
- - NV12_4L4 (NV12 with 4x4 tiles in linear order)
-
-- GstVideoDecoder:
-
- - new max-errors property so applications can configure at what
- point the decoder should error out, or tell it to just keep
- going
-
- - new qos property to disable dropping frames because of QoS, and
- post QoS messages on the bus when dropping frames. This is
- useful for example in a scenario where the decoded video is
- tee-ed off to go into a live sink that syncs to the clock in one
- branch, and an encoding and save to file pipeline in the other
- branch. In that case one wouldn’t want QoS events from the video
- sink make the decoder drop frames because that would also leave
- gaps in the encoding branch then.
-
-- GstVideoEncoder:
-
- - gst_video_encoder_finish_subframe() is new API to push out
- subframes (e.g. slices), so encoders can split the encoding into
- subframes, which can be useful to reduce the overall end-to-end
- latency as we no longer need to wait for the full frame to be
- encoded to start decoding or sending out the data.
- - new min-force-key-unit-interval property allows configuring the
- minimum interval between force-key-unit requests and prevents a
- big bitrate increase if a lot of key-units are requested in a
- short period of time (as might happen in live streaming RTP
- pipelines when packet loss is detected).
- - various force-key-unit event handling fixes
-
-- GstVideoAggregator, compositor, glvideomixer: expose
- max-last-buffer-repeat property on pads. This can be used to have a
- compositor display either the background or a stream on a lower
- zorder after a live input stream freezes for a certain amount of
- time, for example because of network issues.
-
-- gst_video_format_info_component() is new API to find out which
- components are packed into a given plane, which is useful to prevent
- us from assuming a 1-1 mapping between planes and components.
-
-- gst_video_make_raw_caps() and gst_video_formats_raw() are
- bindings-friendly versions of the GST_VIDEO_CAPS_MAKE() C macro.
-
-- video-blend: Add support for blending on top of 16 bit per component
- formats, which makes sure we can support every currently supported
- raw video format for blending subtitles or logos on top of video.
-
-- GST_VIDEO_BUFFER_IS_TOP_FIELD() and
- GST_VIDEO_BUFFER_IS_BOTTOM_FIELD() convenience macros to check
- whether the video buffer contains only the top field or bottom field
- of an interlaced picture.
-
-- GstVideoMeta now includes an alignment field with the
- GstVideoAlignment so buffer producers can explicitly specify the
- exact geometry of the planes, allowing users to easily know the
- padded size and height of each plane. Default values will be used if
- this is not set.
-
- Use gst_video_meta_set_alignment() to set the alignment and
- gst_video_meta_get_plane_size() or gst_video_meta_get_plane_height()
- to compute the plane sizes or plane heights based on the information
- in the video meta.
-
-- gst_video_info_align_full() works like gst_video_info_align() but
- also retrieves the plane sizes.
-
-MPEG-TS library
-
-- support for SCTE-35 sections
-
-- extend support for ATSC tables:
-
- - System Time Table (STT)
- - Master Guide Table (MGT)
- - Rating Region Table (RRT)
+- this section will be filled in in due course
Miscellaneous performance, latency and memory optimisations
-As always there have been many performance and memory usage improvements
-across all components and modules. Some of them have already been
-mentioned elsewhere so won’t be repeated here.
-
-The following list is only a small snapshot of some of the more
-interesting optimisations that haven’t been mentioned in other contexts
-yet:
-
-- caps negotiation, structure and GValue performance optimizations
-
-- systemclock: clock waiting performance improvements (moved from
- GstPoll to GCond for waiting), especially on Windows.
-
-- rtpsession: add support for buffer lists on the recv path for better
- performance with higher packet rate streams.
-
-- rtpjitterbuffer: internal timer handling has been rewritten for
- better performance, see Nicolas’ talk “Revisiting RTP Jitter Buffer
- Timers” for more details.
-
-- H.264/H.265 parsers and RTP payloaders/depayloaders have been
- optimised for latency to make sure data is processed and pushed out
- as quickly as possible
-
-- video-scaler: correctness and performance improvements, esp. for
- interlaced formats and GBRA
-
-- GstVideoEncoder has gained new API to push out subframes
- (e.g. slices), so encoders can split the encoding into subframes,
- which can be useful to reduce the overall end-to-end latency as we
- no longer need to wait for the full frame to be encoded to start
- decoding or sending out the data.
-
- This is complemented by the new GST_VIDEO_BUFFER_FLAG_MARKER which
- is a video-specific buffer flag to mark the end of a video frame, so
- elements can know that they have received all data for a frame
- without waiting for the beginning of the next frame. This is similar
- to how the RTP marker flag is used in many RTP video mappings.
-
- The video encoder base class now also releases the internal stream
- lock before pushing out data, so as to not block the input side of
- things from processing more data in the meantime.
+- this section will be filled in in due course
Miscellaneous other changes and enhancements
-- it is now possible to modify the initial rank of plugin features
- without modifying the source code or writing code to do so
- programmatically via the GST_PLUGIN_FEATURE_RANK environment
- variable. Users can adjust the rank of plugin(s) by passing a
- comma-separated list of feature:rank pairs where rank can be a
- numerical value or one of NONE, MARGINAL, SECONDARY, PRIMARY, and
- MAX. Example: GST_PLUGIN_FEATURE_RANK=myh264dec:MAX,avdec_h264:NONE
- sets the rank of the myh264dec element feature to the maximum and
- that of avdec_h264 to 0 (none), thus ensuring that myh264dec is
- prefered as H264 decoder in an autoplugging context.
-
-- GstDeviceProvider now does a static probe on start as fallback for
- providers that don’t support dynamic probing to make things easier
- for users
-
-WebRTC
-
-- webrtcbin now contains initial support for renegotiation involving
- stream addition and removal. There are a number of caveats to this
- initial renegotiation support and many complex scenarios are known
- to require some work.
-
-- webrtcbin now exposes the internal ICE object for advanced
- configuration options. Using the internal ICE object, it is possible
- to toggle UDP or TCP connection usage as well as provide local
- network addresses.
-
-- Fix a number of call flows within webrtcbin’s GstPromise handling
- where a promise was never replied to. This has been fixed and now a
- promise will always receive a reply.
-
-- webrtcbin now exposes a latency property for configuring the
- internal rtpjitterbuffer latency and buffering when receiving
- streams.
-
-- webrtcbin now only synchronises the RTP part of a stream, allowing
- RTCP messages to skip synchronisation entirely.
-
-- Fixed most of the webrtcbin state properties (connection-state,
- ice-connection-state, signaling-state, but not ice-gathering-state
- as that requires newer API in libnice and will be fixed in the next
- release series) to advance through the state values correctly. Also
- implemented DTLS connection states in the DTLS elements so that
- peer-connection-state is not always new.
-
-- webrtcbin now accounts for the a=ice-lite attribute in a remote SDP
- offer and will configure the internal ICE implementation
- accordingly.
-
-- webrtcbin will now resolve .local candidate addresses using the
- system DNS resolver. .local candidate addresses are now produced by
- web browsers to help protect the privacy of users.
-
-- webrtcbin will now add candidates found in the SDP to the internal
- ICE agent. This was previously unsupported and required using the
- add-ice-candidate signal manually from the application.
-
-- webrtcbin will now correctly parse a TURN URI that contains a
- username or password with a : in it.
-
-- The GStreamer WebRTC library gained a GstWebRTCDataChannel object
- roughly matching the interface exposed by the WebRTC specification
- to allow for easier binding generation and use of data channels.
-
-OpenGL integration
-
-GStreamer OpenGL bindings/build related changes
-
-- The GStreamer OpenGL library (libgstgl) now ships pkg-config files
- for platform-specific API where libgstgl provides a public
- integration interface and a pkg-config file for a dependency on the
- detected OpenGL headers. The new list of pkg-config files in
- addition to the original gstreamer-gl-1.0 are gstreamer-gl-x11-1.0,
- gstreamer-gl-wayland-1.0, gstreamer-gl-egl-1.0, and
- gstreamer-gl-prototypes-1.0 (for OpenGL headers when including
- gst/gl/gstglfuncs.h).
-
-- GStreamer OpenGL now ships some platform-specific introspection data
- for platforms that have a public interface. This should allow for
- easier integration with bindings involving platform specific
- functionality. The new introspection data files are named
- GstGLX11-1.0, GstGLWayland-1.0, and GstGLEGL-1.0.
-
-GStreamer OpenGL Features
-
-- The iOS implementation no longer accesses UIKit objects off the main
- thread fixing a loud warning message when used in iOS applications.
-
-- Support for mouse and keyboard handling using the GstNavigation
- interface was added for the wayland implementation complementing the
- already existing support for the X11 and Windows implementations.
-
-- A new helper base class for source elements, GstGLBaseSrc is
- provided to ease writing source elements producing OpenGL video
- frames.
-
-- Support for some more 12-bit and 16-bit video formats (Y412_LE,
- Y412_BE, Y212_LE, Y212_BE, P012_LE, P012_BE, P016, NV16, NV61) was
- added to glcolorconvert.
-
-- glupload can now import dma-buf’s into external-oes textures.
-
-- A new display type for EGLDevice-based systems was added. It is
- currently opt-in by using either the GST_GL_PLATFORM=egl-device
- environment variable or manual construction
- (gst_gl_display_egl_device_new*()) due to compatibility issues with
- some platforms.
-
-- Support was added for WinRT/UWP using the ANGLE project for running
- OpenGL-based pipelines within a UWP application.
-
-- Various elements now support changing the GstGLDisplay to be used at
- runtime in simple cases. This is primarily helpful for changing or
- adding an OpenGL-based video sink that must share an OpenGL context
- with an external source to an already running pipeline.
-
-GStreamer Vulkan integration
-
-- There is now a GStreamer Vulkan library to provide integration
- points and helpers with applications and external GStreamer Vulkan
- based elements. The structure of the library is modelled similarly
- to the already existing GStreamer OpenGL library. Please note that
- the API is still unstable and may change in future releases,
- particularly around memory handling. The GStreamer Vulkan library
- contains objects for sharing the vkInstance, vkDevice, vkQueue,
- vkImage, VkMemory, etc with other elements and/or the application as
- well as some helper objects for using Vulkan in an application or
- element.
-
-- Added support for building and running on/for the Android and
- Windows systems to complement the existing XCB, Wayland, MacOS, and
- iOS implementations.
-
-- XCB gained support for mouse/keyboard events using the GstNavigation
- API.
-
-- New vulkancolorconvert element for converting between color formats.
- vulkancolorconvert can currently convert to/from all 8-bit RGBA
- formats as well as 8-bit RGBA formats to/from the YUV formats AYUV,
- NV12, and YUY2.
-
-- New vulkanviewconvert element for converting between stereo view
- layouts. vulkanviewconvert can currently convert between all of the
- single memory formats (side-by-side, top-bottom, column-interleaved,
- row-interleaved, checkerboard, left, right, mono).
-
-- New vulkanimageidentity element for a blit from the input vulkan
- image/s to a new vulkan image/s.
-
-- The vulkansink element can now scale the input image to the output
- window/surface size where that information is available.
-
-- The vulkanupload element can now configure a transfer from system
- memory to VulkanImage-based memory. Previously, this required two
- vulkanupload elements.
+- this section will be filled in in due course
Tracing framework and debugging improvements
-- gst_tracing_get_active_tracers() returns a list of active tracer
- objects. This can be used to interact with tracers at runtime using
- GObject API such as action signals. This has been implemented in the
- leaks tracer for snapshotting and retrieving leaked/active objects
- at runtime.
-
-- The leaks tracer can now be interacted with programmatically at
- runtime via GObject action signals:
-
- - get-live-object returns a list of live (allocated) traced
- objects
- - log-live-objects logs a list of live objects into the debug log.
- This is the same as sending the SIGUSR1 signal on unix systems,
- but works on all operating systems including Windows.
- - activity-start-tracking, activity-get-checkpoint,
- activity-log-checkpoint, activity-stop-tracking: add support for
- tracking and checkpointing objects, similar to what was
- previously available via SIGUSR2 on unix systems, but works on
- all operating systems including Windows.
-
-- various GStreamer gdb debug helper improvements:
-
- - new ‘gst-pipeline-tree’ command
- - more gdb helper functions: gst_element_pad(), gst_pipeline() and
- gst_bin_get()
- - support for queries and buffers
- - print more info for segment events, print event seqnums, object
- pointers and structures
- - improve gst-print command to show more pad and element
- information
+- this section will be filled in in due course
Tools
-gst-launch-1.0
-
-- now prints the pipeline position and duration if available when the
- pipeline is advancing. This is hopefully more user-friendly and
- gives visual feedback on the terminal that the pipeline is actually
- up and running. This can be disabled with the --no-position command
- line option.
-
-- the parse-launch pipeline syntax now has support for presets:
- use@preset=<preset-name>" after an element to load a preset.
-
-gst-inspect-1.0
-
-- new --color command line option to force coloured output even if not
- connected to a tty
-
-gst-tester-1.0 (new)
-
-- gst-tester-1.0 is a new tool for plugin developers to launch
- .validatetest files with TAP compatible output, meaning it can
- easily and cleanly be integrated with the meson test harness. It
- allows you to use gst-validate (from the gst-devtools module) to
- write integration tests in any GStreamer repository whilst keeping
- the tests as close as possible to the code. The tool transparently
- handles gst-validate being installed or not: if it is not installed
- those integration tests will simply be skipped.
-
-gst-play-1.0
-
-- interactive keyboard controls now also work on Windows
-
-gst-transcoder-1.0 (new)
-
-- gst-transcoder-1.0 is a new command line tool to transcode one URI
- into another URI based on the specified encoding profile using the
- new GstTranscoder API (see above).
+- this section will be filled in in due course
GStreamer RTSP server
-- Fix issue where the first few packets (i.e. keyframes) could
- sometimes be dropped if the rtsp media pipeline had a live input.
- This was a regression from GStreamer 1.14. There are more fixes
- pending for that which will hopefully land in 1.18.1.
-
-- Fix backpressure handling when sending data in TCP interleave mode
- where RTSP requests and responses and RTP/RTCP packets flow over the
- same RTSP TCP connection: The previous implementation would at some
- point stop sending data to other clients when a single client
- stopped consuming data or did not consume data fast enough. This
- obviously created problems for shared media, where the same stream
- from a single producer pipeline is sent to multiple clients. Instead
- we now manage a backlog in the server’s stream-transport component
- and remove slow clients once this backlog exceeds a maximum duration
- (which is currently hardcoded).
-
-- Onvif Streaming Specification trick modes support (see section at
- the beginning)
-
-- Scale/Speed header support: Speed will deliver the data at the
- requested speed, which means increasing the data bandwidth for
- speeds > 1.0. Scale will attempt to do the same without affecting
- the overall bandwidth requirement vis-a-vis normal playback speed
- (e.g. it might drop data for fast-forward playback).
-
-- rtspclientsink: send buffer lists in one go for better performance
+- this section will be filled in in due course
GStreamer VAAPI
-- A lot of work was done adding support for media-driver (iHD), the
- new VAAPI driver for Intel, mostly for Gen9 onwards.
-
-- Available color formats and frame sizes are now detected at run-time
- according to the context configuration.
-
-- Gallium drivers have been re-enabled in the allowed drivers list
-
-- Improved the mapping between VA formats and GStreamer formats by
- generating a mapping table at run-time since even among different
- drivers the mapping might be different, particularly for RGB with
- little endianness.
-
-- The experimental Flexible Encoding Infrastructure (FEI) elements
- have been removed since they were not really actively maintained or
- tested.
-
-- Enhanced the juggling of DMABuf buffers and VASurface metas
-
-- New vaapioverlay element: a compositor element using VA VPP blend
- capabilities to accelerate overlaying and compositing. Example
- pipeline:
-
- gst-launch-1.0 -vf videotestsrc ! vaapipostproc ! tee name=testsrc ! queue \
- ! vaapioverlay sink_1::xpos=300 sink_1::alpha=0.75 name=overlay ! vaapisink \
- testsrc. ! queue ! overlay.
-
-vaapipostproc
-
-- added video-orientation support, supporting frame mirroring and
- rotation
-
-- added cropping support, either via properties (crop-left,
- crop-right, crop-bottom and crop-top) or buffer meta.
-
-- new skin-tone-enhancenment-level property which is the iHD
- replacement of the i965 driver’s sink-tone-level. Both are
- incompatible with each other, so both were kept.
-
-- handle video colorimetry
-
-- support HDR10 tone mapping
-
-vaapisink
-
-- resurrected wayland backend for non-weston compositors by extracting
- the DMABuf from the VASurface and rendering it.
-
-- merged the video overlay API for wayland. Now applications can
- define the “window” to render on.
-
-- demoted the vaapisink element to secondary rank since libva
- considers rendering as a second-class feature.
-
-VAAPI Encoders
-
-- new common target-percentage property which is the desired target
- percentage of bitrate for variable rate control.
-
-- encoders now extract their caps from the driver at registration
- time.
-
-- vaapivp9enc: added support for low power mode and support for
- profile 2 (profile 0 by default)
-
-- vaapih264enc: new max-qp property that sets the maximum quantization
- value. Support for ICQ and QBVR bitrate control mode, adding a
- quality-factor property for these modes. Support baseline profile as
- constrained-baseline
-
-- vaapih265enc:
-
- - support for main-444 and main-12 encoding profiles.
- - new max-qp property that sets the maximum quantization value.
- - support for ICQ and QBVR bitrate control mode, adding a
- quality-factor property for these modes.
- - handle SCC profiles.
- - num-tile-cols and num-tile-row properties to specify the number
- of tiles to use.
- - the low-delay-b property was deprecated and is now determined
- automatically.
- - improved profile selection through caps.
-
-VAAPI Decoders
-
-- Decoder surfaces are not bound to their context any longer and can
- thus be created and used dynamically, removing the deadlock
- headache.
-
-- Reverse playback is now fluid
-
-- Forward Region-of-Interest (ROI) metas downstream
-
-- GLTextureUploadMeta uses DMABuf when GEM is not available. Now
- Gallium drivers can use this meta for rendering with EGL.
-
-- vaapivp9dec: support for 4:2:2 and 4:4:4 chroma type streams
-
-- vaapih265dec: skip all pictures prior to the first I-frame. Enable
- passing range extension flags to the driver. Handle SCC profiles.
-
-- vaapijpegdec: support for 4:0:0, 4:1:1, 4:2:2 and 4:4:4 chroma types
- pictures
-
-- vaapih264dec: handle baseline streams as constrained-baseline if
- possible and make it more tolerant when encountering unknown NALs
+- this section will be filled in in due course
GStreamer OMX
-- omxvideoenc: use new video encoder subframe API to push out slices
- as soon as they’re ready
-
-- omxh264enc, omxh265enc: negotiate subframe mode via caps. To enable
- it, force downstream caps to video/x-h264,alignment=nal or
- video/x-h265,alignment=nal.
-
-- omxh264enc: Add ref-frames property
-
-- Zynq ultrascale+ specific video encoder/decoder improvements:
-
- - GRAY8 format support
- - support for alternate fields interlacing mode
- - video encoder: look-ahead, long-term-ref, and long-term-freq
- properties
+- this section will be filled in in due course
GStreamer Editing Services and NLE
-- Added nested timelines and subproject support so that GES projects
- can be used as clips, potentially serializing nested projects in the
- main file or referencing external project files.
-
-- Implemented an OpenTimelineIO GES formatter. This means GES and
- GStreamer can now load and save projects in all the formats
- supported by otio.
-
-- Implemented a GESMarkerList object which allow setting timed
- metadata on any GES object.
-
-- Fixed audio rendering issues during clip transition by ensuring that
- a single segment is pushed into encoders.
-
-- The GESUriClipAsset API is now MT safe.
-
-- Added ges_meta_container_register_static_meta() to allow fixing a
- type for a specific metadata without actually setting a value.
-
-- The framepositioner element now handles resizing the project and
- keeps the same positioning when the aspect ratio is not changed .
-
-- Reworked the documentation, making it more comprehensive and much
- more detailed.
-
-- Added APIs to retrieve natural size and framerate of a clip (for
- example in the case of URIClip it is the framerate/size of the
- underlying file).
-
-- ges_container_edit() is now deprecated and GESTimelineElement gained
- the ges_timeline_element_edit() method so the editing API is now
- usable from any element in the timeline.
-
-- GESProject::loading was added so applications can be notified about
- when a new timeline starts loading.
-
-- Implemented the GstStream API in GESTimeline.
-
-- Added a way to add a timeoverlay inside the test source (potentially
- with timecodes).
-
-- Added APIs to convert times to frame numbers and vice versa:
-
- - ges_timeline_get_frame_time()
-
- - ges_timeline_get_frame_at()
-
- - ges_clip_asset_get_frame_time()
-
- - ges_clip_get_timeline_time_from_source_frame()
-
- Quite a few validate tests have been implemented to check the
- behavior for various demuxer/codec formats
-
-- Added ges_layer_set_active_for_tracks() which allows muting layers
- for the specified tracks
-
-- Deprecated GESImageSource and GESMultiFileSource now that we have
- imagesequencesrc which handles the imagesequence “protocol”
-
-- Stopped exposing ‘deinterlacing’ children properties for clip types
- where they do not make sense.
-
-- Added support for simple time remapping effects
+- this section will be filled in in due course
GStreamer validate
-- Introduced the concept of “Test files” allowing to implement “all
- included” test cases, meaning that inside the file the following can
- be defined:
-
- - The application arguments
- - The validate configurations
- - The validate scenario
-
- This replaces the previous big dictionary file in
- gst-validate-launcher to implement specific test cases.
-
- We set several variables inside the files (as well as inside
- scenarios and config files) to make them relocatable.
-
- The file format has been enhanced so it is easier to read and write,
- for example line ending with a coma or (curly) brackets can now be
- used as continuation marker so you do not need to add \ at the end
- of lines to write a structure on several lines.
-
-- Support the imagesequence “protocol” and added integration tests for
- it.
-
-- Added action types to allow the scenario to run the Test Clock for
- better reproducibility of tests.
-
-- Support generating tests to check that seeking is frame accurate
- (base on ssim).
-
-- Added ways to record buffers checksum (in different ways) in the
- validateflow module.
-
-- Added vp9 encoding tests.
-
-- Enhanced seeking action types implementation to allow support for
- segment seeks.
-
-- Output improvements:
-
- - Logs are now in markdown formats (and bat is used to dump them
- if available).
- - File format issues in scenarios/configs/tests files are nicely
- reported with the line numbers now.
+- this section will be filled in in due course
GStreamer Python Bindings
-- Python 2.x is no longer supported
-
-- Support mapping buffers without any memcpy:
-
- - Added a ContextManager to make the API more pythonic
-
- with buf.map(Gst.MapFlags.READ | Gst.MapFlags.WRITE) as info:
- info.data[42] = 0
-
-- Added high-level helper API for constructing pipelines:
-
- - Gst.Bin.make_and_add(factory_name, instance_name=None)
- - Gst.Element.link_many(element, ...)
+- this section will be filled in in due course
GStreamer C# Bindings
-- Bind gst_buffer_new_wrapped() manually to fix memory handling.
-
-- Fix gst_promise_new_with_change_func() where bindgen didn’t properly
- detect the func as a closure.
-
-- Declare GstVideoOverlayComposition and GstVideoOverlayRectangle as
- opaque type and subclasses of Gst.MiniObject. This changes the API
- but without this all usage will cause memory corruption or simply
- not work.
-
-- on Windows, look for gstreamer, glib and gobject DLLs using the MSVC
- naming convention (i.e. gstvideo-1.0-0.dll instead of
- libgstvideo-1.0-0.dll).
-
- The names of these DLLs have to be hardcoded in the bindings, and
- most C# users will probably be using the Microsoft toolchain anyway.
-
- This means that the MSVC compiler is now required to build the
- bindings, MingW will no longer work out of the box.
+- this section will be filled in in due course
GStreamer Rust Bindings and Rust Plugins
The GStreamer Rust bindings are released separately with a different
release cadence that’s tied to gtk-rs, but the latest release has
-already been updated for the new GStreamer 1.18 API, so there’s
-absolutely no excuse why your next GStreamer application can’t be
-written in Rust anymore.
+already been updated for the upcoming new GStreamer 1.20 API.
gst-plugins-rs, the module containing GStreamer plugins written in Rust,
has also seen lots of activity with many new elements and plugins.
@@ -1659,6 +119,8 @@ What follows is a list of elements and plugins available in
gst-plugins-rs, so people don’t miss out on all those potentially useful
elements that have no C equivalent.
+- FIXME: add new elements
+
Rust audio plugins
- audiornnoise: New element for audio denoising which implements the
@@ -1724,73 +186,11 @@ Generic Rust plugins
Build and Dependencies
-- The Autotools build system has finally been removed in favour of the
- Meson build system. Developers who currently use gst-uninstalled
- should move to gst-build.
-
-- API and plugin documentation are no longer built with gtk_doc. The
- gtk_doc documentation has been removed in favour of a new unified
- documentation module built with hotdoc (also see “Documentation
- improvements” section below). Distributors should use the
- documentation release tarball instead of trying to package hotdoc
- and building the documentation from scratch.
-
-- gst-plugins-bad now includes an internal copy of libusrsctp, as
- there are problems in usrsctp with global shared state, lack of API
- stability guarantees, and the absence of any kind of release
- process. We also can’t rely on distros shipping a version with the
- fixes we need. Both firefox and Chrome bundle their own copies too.
- It is still possible to build against an external copy of usrsctp if
- so desired.
-
-- nvcodec no longer needs the NVIDIA NVDEC/NVENC SDKs available at
- build time, only at runtime. This allows distributions to ship this
- plugin by default and it will just start to work when the required
- run-time SDK libraries are installed by the user, without users
- needing to build and install the plugin from source.
-
-- the gst-editing-services tarball is now named gst-editing-services
- for consistency (used to be gstreamer-editing-services).
-
-- the gst-validate tarball has been superseded by the gst-devtools
- tarball for consistency with the git module name.
+- this section will be filled in in due course
gst-build
-gst-build is a meta-module and serves primarily as our uninstalled
-development environment. It makes it easy to build most of GStreamer,
-but unlike Cerbero it only comes with a limited number of external
-dependencies that can be built as subprojects if they are not found on
-the system.
-
-gst-build is based on Meson and replaces the old autotools
-gst-uninstalled script.
-
-- The ‘uninstalled’ target has been renamed to ‘devenv’
-
-- Experimental gstreamer-full library containing all built plugins and
- their deps when building with -Ddefault_library=static. A monolithic
- library is easier to distribute, and may be required in some
- environments. GStreamer core, GLib and GObject are always included,
- but external dependencies are still dynamically linked. The
- gst-full-libraries meson option allows adding other GStreamer
- libraries to the gstreamer-full build. This is an experiment for now
- and its behaviour or API may still change in future releases.
-
-- Add glib-networking as a subproject when glib is a subproject and
- load gio modules in the devenv, tls option control whether to use
- openssl or gnutls.
-
-- git-worktree: Allow multiple worktrees for subproject branches
-
-- Guard against meson being run from inside the uninstalled devenv, as
- this might have unexpected consequences.
-
-- our ffmpeg and x264 meson ports have been updated to the latest
- stable version (you might need to update the subprojects checkout
- manually though, or just remove the checkouts so meson checks out
- the latest version again; improvements for this are pending in
- meson, but not merged yet).
+- this section will be filled in in due course
Cerbero
@@ -1800,405 +200,97 @@ Windows, Android, iOS and macOS.
General improvements
-- Recipe build steps are done in parallel wherever possible. This
- leads to massive improvements in overall build time.
-- Several recipes were ported to Meson, which improved build times
-- Moved from using both GnuTLS and OpenSSL to only OpenSSL
-- Moved from yasm to nasm for all assembly compilation
-- Support zsh when running the cerbero shell command
-- Numerous version upgrades for dependencies
-- Default to xz for tarball binary packages. bz2 can be selected with
- the --compress-method option to package.
-- Added boolean variant for controlling the optimization level:
- -v optimization
-- Ship .pc pkgconfig files for all plugins in the binary packages
-- CMake and nasm will only be built by Cerbero if the system versions
- are unusable
-- The nvcodec variant was removed and the nvcodec plugin is built by
- default now (as it no longer requires the SDK to be installed at
- build time, only at runtime)
+- this section will be filled in in due course
macOS / iOS
-- Minimum iOS SDK version bumped to 11.0
-- Minimum macOS SDK version bumped to 10.11
-- No longer need to manually add support for newer iOS SDK versions
-- Added Vulkan elements via MoltenVK
-- Build times were improved by code-signing all build tools
-- macOS framework ships all gstreamer libraries instead of an outdated
- subset
-- Ship pkg-config in the macOS framework package
-- fontconfig: Fix EXC_BAD_ACCESS crash on iOS ARM64
-- Improved App Store compatibility by setting LC_VERSION_MIN_MACOSX,
- fixing relocations, and improved bitcode support
+- this section will be filled in in due course
Windows
-- MinGW-GCC toolchain was updated to 8.2. It uses the Universal CRT
- instead of MSVCRT which eliminates cross-CRT issues in the Visual
- Studio build.
-- Require Windows 7 or newer for running binaries produced by Cerbero
-- Require Windows x86_64 for running Cerbero to build binary packages
-- Cerbero no longer uses C:/gstreamer/1.0 as a prefix when building.
- That prefix is reserved for use by the MSI installers.
-- Several recipes can now be buit with Visual Studio instead of MinGW.
- Ported to meson: opus, libsrtp, harfbuzz, cairo, openh264, libsoup,
- libusrsctp. Existing build system: libvpx, openssl.
-- Support building using Visual Studio for 32-bit x86. Previously we
- only supported building for 32-bit x86 using the MinGW toolchain.
-- Fixed annoying msgmerge popups in the middle of cerbero builds
-- Added configuration options vs_install_path and vs_install_version
- for specifying custom search locations for older Visual Studio
- versions that do not support vswhere. You can set these in
- ~/.cerbero/cerbero.cbc where ~ is the MSYS homedir, not your Windows
- homedir.
-- New Windows-specific plugins: d3d11, mediafoundation, wasapi2
-- Numerous compatibility and reliability fixes when running Cerbero on
- Windows, especially non-English locales
-- proxy-libintl now exports the same symbols as gettext, which makes
- it a drop-in replacement
-- New mapping variant for selecting the Visual Studio CRT to use:
- -v vscrt=<value>. Valid values are md, mdd, and auto (default). A
- separate prefix is used when building with either md (release) or
- mdd (debug), and the outputted package will have +debug in the
- filename. This variant is also used for selecting the correct Qt
- libraries (debug vs release) to use when building with -v qt5 on
- Windows.
-- Support cross-compile on Windows to Windows ARM64 and ARMv7
-- Support cross-compile on Windows to the Universal Windows Platform
- (UWP). Only the subset of plugins that can be built entirely with
- Visual Studio will be selected in this case. To do so, use the
- config/cross-uwp-universal.cbc configuration, which will build
- ARM64, x86, and x86_64 binaries linked to the release CRT, with
- optimizations enabled, and debugging turned on. You can combine this
- with -v vscrt=mdd to produce binaries linked to the debug CRT. You
- can turn off optimizations with the -v nooptimization variant.
+- this section will be filled in in due course
Windows MSI installer
-- Require Windows 7 or newer for running GStreamer
-- Fixed some issues with shipping of pkg-config in the Windows
- installers
-- Plugin PDB debug files are now shipped in the development package,
- not the runtime package
-- Ship installers for 32-bit binaries built with Visual Studio
-- Ship debug and release “universal” (ARM64, X86, and X86_64) tarballs
- built for the Universal Windows Platform
-- Windows MSI installers now install into separate prefixes when
- building with MSVC and MinGW. Previously both would be installed
- into C:/gstreamer/1.0/x86 or C:/gstreamer/1.0/x86_64. Now, the
- installation prefixes are:
-
- ----------------------------------------------------------------------------------------------------------------
- Target Path Build options
- --------------------------- ------------------------------------ -----------------------------------------------
- MinGW 32-bit C:/gstreamer/1.0/mingw_x86 -c config/win32.cbc
-
- MinGW 64-bit C:/gstreamer/1.0/mingw_x86_64 -c config/win64.cbc
-
- MSVC 32-bit C:/gstreamer/1.0/msvc_x86 -c config/win32.cbc -v visualstudio
-
- MSVC 64-bit C:/gstreamer/1.0/msvc_x86_64 -c config/win64.cbc -v visualstudio
-
- MSVC 32-bit (debug) C:/gstreamer/1.0/msvc-debug_x86 -c config/win32.cbc -v visualstudio,vscrt=mdd
-
- MSVC 64-bit (debug) C:/gstreamer/1.0/msvc-debug_x86_64 -c config/win64.cbc -v visualstudio,vscrt=mdd
- ----------------------------------------------------------------------------------------------------------------
-
-Note: UWP binary packages are tarballs, not MSI installers.
+- this section will be filled in in due course
Linux
-- Support creating MSI installers using WiX when cross-compiling to
- Windows
-- Support running cross-windows binaries with Wine when using the
- shell and runit cerbero commands
-- Added bash-completion support inside the cerbero shell on Linux
-- Require a system-wide installation of openssl on Linux
-- Added variant -v vaapi to build gstreamer-vaapi and the new gstva
- plugin
-- Debian packaging was disabled because it does not work. Help in
- fixing this is appreciated.
-- Trimmed the list of packages needed for bootstrap on Linux
+- this section will be filled in in due course
Android
-- Updated to NDK r21
-- Support Vulkan
-- Support Qt 5.14+ binary package layout
+- this section will be filled in in due course
Platform-specific changes and improvements
Android
-- opensles: Remove hard-coded buffer-/latency-time values and allow
- openslessink to handle 48kHz streams.
-
-- photography interface and camera source: Add additional settings
- relevant to Android such as: Exposure mode property, extra colour
- tone values (aqua, emboss, sketch, neon), extra scene modes
- (backlight, flowers, AR, HDR), and missing virtual methods for
- exposure mode, analog gain, lens focus, colour temperature, min &
- max exposure time. Add new effects and scene modes to Camera
- parameters.
+- this section will be filled in in due course
macOS and iOS
-- vtdec can now output to Vulkan-backed memory for zerocopy support
- with the Vulkan elements.
+- this section will be filled in in due course
Windows
-- d3d11videosink: new Direct3D11-based video sink with support for
- HDR10 rendering if supported.
-
-- Hardware-accelerated video decoding on Windows via DXVA2 /
- Direct3D11 using native Windows APIs rather than per-vendor SDKs
- (like MSDK for Intel or NVCODEC for NVidia). Plus modern Direct3D11
- integration rather than the almost 20-year old Direct3D9 from
- Windows XP times used in d3dvideosink. Formats supported for
- decoding are H.264, H.265, VP8, and VP9, and zero-copy operation
- should be supported in combination with the new d3d11videosink. See
- Seungha’s blog post “Windows DXVA2 (via Direct3D 11) Support in
- GStreamer 1.17” for more details.
-
-- Microsoft Media Foundation plugin for hardware-accelerated video
- encoding on Windows using native Windows APIs rather than per-vendor
- SDKs. Formats supported for encoding are H.264, H.265 and VP9. Also
- includes audio encoders for AAC and MP3. See Seungha’s blog post
- “Bringing Microsoft Media Foundation to GStreamer” for some more
- details about this.
-
-- new mfvideosrc video capture source element using the latest Windows
- APIs rather than ancient APIs used by ksvideosrc/winks. ksvideosrc
- should be considered deprecated going forward.
-
-- d3d11: add d3d11convert, a color space conversion and rescaling
- element using shaders, and introduce d3d11upload and d3d11download
- elements that work just like glupload and gldownload but for D3D11.
-
-- Universal Windows Platform (UWP) support, including official
- GStreamer binary packages for it. Check out Nirbheek’s latest blog
- post “GStreamer 1.18 supports the Universal Windows Platform” for
- more details.
-
-- systemclock correctness and reliability fixes, and also don’t start
- the system clock at 0 any longer (which shouldn’t make any
- difference to anyone, as absolute clock time values are supposed to
- be meaningless in themselves, only the rate of increase matters).
-
-- toolchain specific plugin registry: the registry cache is now named
- differently for MSVC and MinGW toolchains/packages, which should
- avoid problems when switching between binaries built with a
- different toolchain.
-
-- new wasapi2 plugin mainly to support UWP applications. The core
- logic of this plugin is almost identical to existing wasapi plugin,
- but the main target is Windows 10 and UWP. This plugin uses WinRT
- APIs, so will likely not work on Windows 8 or older. Unlike the
- existing wasapi plugin, this plugin supports automatic stream
- routing (auto fallback when device was removed) and device level
- mute/volume control. Exclusive streaming mode is not supported,
- however, and loopback features are not implemented yet. It is also
- only possible to build this plugin with MSVC and the Windows 10 SDK,
- it can’t be cross-compiled with the MingW toolchain.
-
-- new dxgiscreencapsrc element which uses the Desktop Duplication API
- to capture the desktop screen at high speed. This is only supported
- on Windows 8 or later. Compared to the existing elements
- dxgiscreencapsrc offers much better performance, works in High DPI
- environments and draws an accurate mouse cursor.
-
-- d3dvideosink was downgraded to secondary rank, d3d11videosink is
- preferred now. Support OverlayComposition for GPU overlay
- compositing of subtitles and logos.
-
-- debug log output fixes, esp. with a non-UTF8 locale/codepage
-
-- speex, jack: fixed crashes on Windows caused by cross-CRT issues
-
-- gst-play-1.0 interactive keyboard controls now also work on Windows
+- this section will be filled in in due course
Linux
-- kmssink: Add support for P010 and P016 formats
-
-- vah264dec: new experimental va plugin with an element for H.264
- decoding with VA-API. This novel approach, different from
- gstreamer-vaapi, uses the gstcodecs library for decoder state
- handling, which it is hoped will make for cleaner code because it
- uses VA-API without further layers or wrappers. Check out Víctor’s
- blog post “New VA-API H.264 decoder in gst-plugins-bad” for the full
- lowdown and the limitations of this new plugin, and how to give it a
- spin.
-
-- v4l2codecs: introduce a V4L2 CODECs Accelerator. This plugin will
- support the new CODECs uAPI in the Linux kernel, which consists of
- an accelerator interface similar to DXVA, NVDEC, VDPAU and VAAPI. So
- far H.264 and VP8 are supported. This is used on certain embedded
- systems such as i.mx8m, rk3288, rk3399, Allwinner H-series SoCs.
+- this section will be filled in in due course
Documentation improvements
-- unified documentation containing tutorials, API docs, plugin docs,
- etc. all under one roof, shipped in form of a documentation release
- tarball containing both devhelp and html documentation.
-
-- all documentation is now generated using hotdoc, gtk-doc is no
- longer used. Distributors should use the above-mentioned
- documentation release tarball instead of trying to package hotdoc
- and building the documentation from scratch.
-
-- there is now documentation for wrapper plugins like gst-libav and
- frei0r, as well as tracer plugins.
-
-- for more info, check out Thibault’s “GStreamer Documentation”
- lightning talk from the 2019 GStreamer Conference.
-
-- new API for plugins to support the documentation system:
-
- - new GParamSpecFlag GST_PARAM_DOC_SHOW_DEFAULT to make
- gst-inspect-1.0 (and the documentation) show the paramspec’s
- default value rather than the actually set value as default
- - GstPadTemplate getter and setter for “documentation caps”,
- gst_pad_template_set_documentation_caps() and
- gst_pad_template_get_documentation_caps(): This can be used in
- elements where the caps of pad templates are dynamically
- generated and/or dependent on the environment, to override the
- caps shown in the documentation (usually to advertise the full
- set of possible caps).
- - gst_type_mark_as_plugin_api() for marking types as plugin API,
- used for plugin-internal types like enums, flags, pad
- subclasses, boxed types, and such.
+- this section will be filled in in due course
Possibly Breaking Changes
-- GstVideo: the canonical list of raw video formats (for use in caps)
- has been reordered, so video elements such as videotestsrc or
- videoconvert might negotiate to a different format now than before.
- The new format might be a higher-quality format or require more
- processing overhead, which might affect pipeline performance.
-
-- mpegtsdemux used to wrongly advertise H.264 and H.265 video
- elementary streams as alignment=nal. This has now been fixed and
- changed to alignment=none, which means an h264parse or h265parse
- element is now required after tsdemux for some pipelines where there
- wasn’t one before, e.g. in transmuxing scenarios (tsdemux ! tsmux).
- Pipelines without such a parser may now fail to link or error out at
- runtime. As parsers after demuxers and before muxers have been
- generally required for a long time now it is hoped that this will
- only affect a small number of applications or pipelines.
-
-- The Android opensles audio source and sink used to have hard-coded
- buffer-/latency-time values of 20ms. This is no longer needed with
- newer Android versions and has now been removed. This means a higher
- or lower value might now be negotiated by default, which can affect
- pipeline performance and latency.
+- this section will be filled in in due course
Known Issues
-- None in particular
+- this section will be filled in in due course
+
+- There are a couple of known WebRTC-related regressions/blockers:
+
+ - webrtc: DTLS setup with Chrome is broken
+ - webrtcbin: First keyframe is usually lost
Contributors
-Aaron Boxer, Adam Duskett, Adam x Nilsson, Adrian Negreanu, Akinobu
-Mita, Alban Browaeys, Alcaro, Alexander Lapajne, Alexandru Băluț, Alex
-Ashley, Alex Hoenig, Alicia Boya García, Alistair Buxton, Ali Yousuf,
-Ambareesh “Amby” Balaji, Amr Mahdi, Andoni Morales Alastruey, Andreas
-Frisch, Andre Guedes, Andrew Branson, Andrey Sazonov, Antonio Ospite,
-aogun, Arun Raghavan, Askar Safin, AsociTon, A. Wilcox, Axel Mårtensson,
-Ayush Mittal, Bastian Bouchardon, Benjamin Otte, Bilal Elmoussaoui,
-Brady J. Garvin, Branko Subasic, Camilo Celis Guzman, Carlos Rafael
-Giani, Charlie Turner, Cheng-Chang Wu, Chris Ayoup, Chris Lord,
-Christoph Reiter, cketti, Damian Hobson-Garcia, Daniel Klamt, Daniel
-Molkentin, Danny Smith, David Bender, David Gunzinger, David Ing, David
-Svensson Fors, David Trussel, Debarshi Ray, Derek Lesho, Devarsh
-Thakkar, dhilshad, Dimitrios Katsaros, Dmitriy Purgin, Dmitry Shusharin,
-Dominique Leuenberger, Dong Il Park, Doug Nazar, dudengke, Dylan McCall,
-Dylan Yip, Ederson de Souza, Edward Hervey, Eero Nurkkala, Eike Hein,
-ekwange, Eric Marks, Fabian Greffrath, Fabian Orccon, Fabio D’Urso,
-Fabrice Bellet, Fabrice Fontaine, Fanchao L, Felix Yan, Fernando
-Herrrera, Francisco Javier Velázquez-García, Freyr, Fuwei Tang, Gaurav
-Kalra, George Kiagiadakis, Georgii Staroselskii, Georg Lippitsch, Georg
-Ottinger, gla, Göran Jönsson, Gordon Hart, Gregor Boirie, Guillaume
-Desmottes, Guillermo Rodríguez, Haakon Sporsheim, Haihao Xiang, Haihua
-Hu, Havard Graff, Håvard Graff, Heinrich Kruger, He Junyan, Henry
-Wilkes, Hosang Lee, Hou Qi, Hu Qian, Hyunjun Ko, ibauer, Ignacio Casal
-Quinteiro, Ilya Smelykh, Jake Barnes, Jakub Adam, James Cowgill, James
-Westman, Jan Alexander Steffens, Jan Schmidt, Jan Tojnar, Javier Celaya,
-Jeffy Chen, Jennifer Berringer, Jens Göpfert, Jérôme Laheurte, Jim
-Mason, Jimmy Ohn, J. Kim, Joakim Johansson, Jochen Henneberg, Johan
-Bjäreholt, Johan Sternerup, John Bassett, Jonas Holmberg, Jonas Larsson,
-Jonathan Matthew, Jordan Petridis, Jose Antonio Santos Cadenas, Josep
-Torra, Jose Quaresma, Josh Matthews, Joshua M. Doe, Juan Navarro,
-Juergen Werner, Julian Bouzas, Julien Isorce, Jun-ichi OKADA, Justin
-Chadwell, Justin Kim, Keri Henare, Kevin JOLY, Kevin King, Kevin Song,
-Knut Andre Tidemann, Kristofer Björkström, krivoguzovVlad, Kyrylo
-Polezhaiev, Lenny Jorissen, Linus Svensson, Loïc Le Page, Loïc Minier,
-Lucas Stach, Ludvig Rappe, Luka Blaskovic, luke.lin, Luke Yelavich,
-Marcin Kolny, Marc Leeman, Marco Felsch, Marcos Kintschner, Marek
-Olejnik, Mark Nauwelaerts, Markus Ebner, Martin Liska, Martin Theriault,
-Mart Raudsepp, Matej Knopp, Mathieu Duponchelle, Mats Lindestam, Matthew
-Read, Matthew Waters, Matus Gajdos, Maxim Paymushkin, Maxim P.
-Dementiev, Michael Bunk, Michael Gruner, Michael Olbrich, Miguel París
-Díaz, Mikhail Fludkov, Milian Wolff, Millan Castro, Muhammet Ilendemli,
-Nacho García, Nayana Topolsky, Nian Yan, Nicola Murino, Nicolas
-Dufresne, Nicolas Pernas Maradei, Niels De Graef, Nikita Bobkov, Niklas
-Hambüchen, Nirbheek Chauhan, Ognyan Tonchev, okuoku, Oleksandr
-Kvl,Olivier Crête, Ondřej Hruška, Pablo Marcos Oltra, Patricia Muscalu,
-Peter Seiderer, Peter Workman, Philippe Normand, Philippe Renon, Philipp
-Zabel, Pieter Willem Jordaan, Piotr Drąg, Ralf Sippl, Randy Li, Rasmus
-Thomsen, Ratchanan Srirattanamet, Raul Tambre, Ray Tiley, Richard
-Kreckel, Rico Tzschichholz, R Kh, Robert Rosengren, Robert Tiemann,
-Roman Shpuntov, Roman Sivriver, Ruben Gonzalez, Rubén Gonzalez,
-rubenrua, Ryan Huang, Sam Gigliotti, Santiago Carot-Nemesio, Saunier
-Thibault, Scott Kanowitz, Sebastian Dröge, Sebastiano Barrera, Seppo
-Yli-Olli, Sergey Nazaryev, Seungha Yang, Shinya Saito, Silvio
-Lazzeretti, Simon Arnling Bååth, Siwon Kang, sohwan.park, Song Bing,
-Soohyun Lee, Srimanta Panda, Stefano Buora, Stefan Sauer, Stéphane
-Cerveau, Stian Selnes, Sumaid Syed, Swayamjeet, Thiago Santos, Thibault
-Saunier, Thomas Bluemel, Thomas Coldrick, Thor Andreassen, Tim-Philipp
-Müller, Ting-Wei Lan, Tobias Ronge, trilene, Tulio Beloqui, U. Artie
-Eoff, VaL Doroshchuk, Varunkumar Allagadapa, Vedang Patel, Veerabadhran
-G, Víctor Manuel Jáquez Leal, Vivek R, Vivia Nikolaidou, Wangfei, Wang
-Zhanjun, Wim Taymans, Wonchul Lee, Xabier Rodriguez Calvar, Xavier
-Claessens, Xidorn Quan, Xu Guangxin, Yan Wang, Yatin Maan, Yeongjin
-Jeong, yychao, Zebediah Figura, Zeeshan Ali, Zeid Bekli, Zhiyuan Sraf,
-Zoltán Imets,
+- this section will be filled in in due course
… and many others who have contributed bug reports, translations, sent
suggestions or helped testing.
-Stable 1.18 branch
+Stable 1.20 branch
-After the 1.18.0 release there will be several 1.18.x bug-fix releases
+After the 1.20.0 release there will be several 1.20.x bug-fix releases
which will contain bug fixes which have been deemed suitable for a
stable branch, but no new features or intrusive changes will be added to
-a bug-fix release usually. The 1.18.x bug-fix releases will be made from
-the git 1.18 branch, which will be a stable branch.
+a bug-fix release usually. The 1.20.x bug-fix releases will be made from
+the git 1.20 branch, which will be a stable branch.
-1.18.0
+1.20.0
-1.18.0 was released on 7 September 2020.
+1.20.0 is scheduled to be released around July 2021.
-Schedule for 1.20
+Schedule for 1.22
-Our next major feature release will be 1.20, and 1.19 will be the
-unstable development version leading up to the stable 1.20 release. The
-development of 1.19/1.20 will happen in the git master branch.
+Our next major feature release will be 1.22, and 1.21 will be the
+unstable development version leading up to the stable 1.22 release. The
+development of 1.21/1.22 will happen in the git master branch.
-The plan for the 1.20 development cycle is yet to be confirmed, but it
-is now expected that feature freeze will take place some time in January
-2021, with the first 1.20 stable release around February/March 2021.
+The plan for the 1.22 development cycle is yet to be confirmed, but it
+is hoped that feature freeze will take place some time in December 2021.
-1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
-1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
+1.22 will be backwards-compatible to the stable 1.20, 1.18, 1.16, 1.14,
+1.12, 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
------------------------------------------------------------------------
These release notes have been prepared by Tim-Philipp Müller with
-contributions from Mathieu Duponchelle, Matthew Waters, Nirbheek
-Chauhan, Sebastian Dröge, Thibault Saunier, and Víctor Manuel Jáquez
-Leal.
+contributions from …
License: CC BY-SA 4.0
diff --git a/README b/README
index 300b39868..c95e53e28 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-GStreamer 1.18.x stable series
+GStreamer 1.19.x development series
WHAT IT IS
----------
diff --git a/RELEASE b/RELEASE
index 9229fa19b..775ec214b 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,18 +1,15 @@
-This is GStreamer gst-plugins-bad 1.18.0.
+This is GStreamer gst-plugins-bad 1.19.1.
-The GStreamer team is thrilled to announce a new major feature release
-of your favourite cross-platform multimedia framework!
+GStreamer 1.19 is the development branch leading up to the next major
+stable version which will be 1.20.
-As always, this release is again packed with new features, bug fixes and
-other improvements.
-
-The 1.18 release series adds new features on top of the 1.16 series and is
+The 1.19 development series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
-Full release notes can be found at:
+Full release notes will one day be found at:
- https://gstreamer.freedesktop.org/releases/1.18/
+ https://gstreamer.freedesktop.org/releases/1.20/
Binaries for Android, iOS, Mac OS X and Windows will usually be provided
shortly after the release.
diff --git a/gst-plugins-bad.doap b/gst-plugins-bad.doap
index 57c427405..77d01f058 100644
--- a/gst-plugins-bad.doap
+++ b/gst-plugins-bad.doap
@@ -35,6 +35,16 @@ real live maintainer, or some actual wide use.
<release>
<Version>
+ <revision>1.19.1</revision>
+ <branch>master</branch>
+ <name></name>
+ <created>2021-06-01</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.19.1.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.18.0</revision>
<branch>master</branch>
<name></name>
diff --git a/meson.build b/meson.build
index c69ae9c9d..d3156f542 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('gst-plugins-bad', 'c', 'cpp',
- version : '1.19.0.1',
+ version : '1.19.1',
meson_version : '>= 0.54',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])