=== release 1.22.0 === 2023-01-23 19:29:34 +0000 Tim-Philipp Müller <tim@centricular.com> * NEWS: * RELEASE: * gst-plugins-bad.doap: * meson.build: Release 1.22.0 2023-01-23 16:28:08 +0000 Tim-Philipp Müller <tim@centricular.com> * po/hr.po: * po/ro.po: * po/zh_CN.po: gst-plugins-bad: update translations Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3773> 2023-01-23 23:29:08 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11compositor.cpp: d3d11compositor: Workaround blending artifacts on Intel platform Disable vendor implemented converter in d3d11compositor to workaround artifacts Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3770> 2023-01-19 15:24:05 +0100 Jonas Danielsson <jonas.danielsson@spiideo.com> * ext/wpe/WPEThreadedView.cpp: * ext/wpe/WPEThreadedView.h: * ext/wpe/gstwpesrcbin.cpp: * ext/wpe/gstwpevideosrc.cpp: wpe: Add 'run-javascript' action signal Introduce way of running a script in the context of the internal webView. Fixes #1722 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3753> 2023-01-19 22:40:36 +0900 Seungha Yang <seungha@centricular.com> * sys/win32ipc/gstwin32ipcvideosrc.cpp: win32ipcvideosrc: Fix leak in fallback copy path Clear shared memory after use Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3751> 2023-01-19 15:36:40 +0100 Edward Hervey <edward@centricular.com> * sys/va/gstvah264enc.c: * sys/va/gstvah265enc.c: va: Fix path leak Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3755> === release 1.21.90 === 2023-01-13 19:08:48 +0000 Tim-Philipp Müller <tim@centricular.com> * NEWS: * RELEASE: * gst-plugins-bad.doap: * meson.build: Release 1.21.90 2023-01-12 22:17:24 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11memory.cpp: d3d11memory: Fix potential crash in GstD3D11PoolAllocator Allocator object can be the final refcount holder, when a GstD3D11Memory is being released. Do unref allocator once there's no more remaining operation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3715> 2023-01-12 22:14:30 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11memory.cpp: d3d11memory: Remove GstD3D11PoolAllocator::dispose Clear GstD3D11Device object in finalize method as well Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3715> 2023-01-11 15:41:21 +0000 Tim-Philipp Müller <tim@centricular.com> * po/LINGUAS: * po/es.po: * po/hr.po: * po/ka.po: * po/lt.po: * po/nl.po: * po/ru.po: * po/sk.po: * po/sl.po: * po/sr.po: * po/uk.po: * po/zh_TW.po: gst-plugins-bad: update translations Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711> 2023-01-11 14:53:39 +0000 Tim-Philipp Müller <tim@centricular.com> * scripts/dist-translations.py: * scripts/meson.build: Fix translation pot files when creating dist tarballs Add version as per Translation Project requirements and also add a .pot file without the ABI suffix. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711> 2023-01-11 12:17:13 +0200 Sebastian Dröge <sebastian@centricular.com> * tools/gst-transcoder.c: tools: Use `gst_macos_main()` on macOS Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1673 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3709> 2023-01-11 03:23:57 +0900 Seungha Yang <seungha@centricular.com> * meson.build: meson: gst-plugins-bad: Disable spammy MSVC warning warning C5051: attribute 'noinline' requires at least '/std:c++20'; ignored Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3705> 2023-01-09 12:39:55 +0200 Sebastian Dröge <sebastian@centricular.com> * gst/mxf/mxfmetadata.c: mxfmux: Add all local tags to the primer No matter if they're allocated via GSlice or malloc(). The allocator is completely irrelevant, all local tags need to be in the primer so they can be handled. This didn't have any effect in practice because all local tags that appear in the muxer are allocated via GSlice. Only from the demuxer they might be allocated via malloc(). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3699> 2022-12-15 18:42:26 +0000 Philippe Normand <philn@igalia.com> * docs/plugins/gst_plugins_cache.json: * ext/aom/gstav1enc.c: * ext/aom/gstav1enc.h: av1enc: Add property for controlling max distance between 2 keyframes Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743> 2022-07-11 11:03:16 +0530 Yatin Mann <yatinmaan1@gmail.com> * docs/plugins/gst_plugins_cache.json: * ext/aom/gstav1enc.c: * ext/aom/gstav1enc.h: aom: av1enc: Expose more properties Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743> 2023-01-08 23:46:40 +0530 yatinmaan <yatinmaan1@gmail.com> * ext/aom/gstav1enc.h: aom: av1enc: Remove redundant enum variants from header Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743> 2022-07-11 09:27:41 +0530 Yatin Mann <yatinmaan1@gmail.com> * ext/aom/gstav1enc.c: * ext/aom/gstav1enc.h: aom: av1enc: Ensure that input pts is strictly increasing Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743> 2022-07-04 19:55:59 +0530 Yatin Mann <yatinmaan1@gmail.com> * ext/aom/gstav1enc.c: aom: av1enc: Fix pts unit Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743> 2023-01-02 18:34:59 +0900 ekwange <ekwange@gmail.com> * ext/directfb/dfbvideosink.c: * ext/directfb/dfbvideosink.h: dfbvideosink: Fix compile error Fix some compile errors Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3670> 2023-01-01 19:19:03 -0500 Olivier Crête <olivier.crete@collabora.com> * gst-libs/gst/webrtc/nice/nice.c: webrtc nice: Let libnice handle STUN/TURN DNS resolution Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3676> 2023-01-06 15:07:42 -0500 Olivier Crête <olivier.crete@collabora.com> * gst-libs/gst/webrtc/nice/meson.build: * gst-libs/gst/webrtc/nice/nice.c: webrtc: Change requirement to libnice 0.1.20 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3676> 2023-01-04 21:37:55 +0100 Mathieu Duponchelle <mathieu@centricular.com> * docs/meson.build: docs: explicitly declare gir build dependencies As the path to the gir file is passed to hotdoc.generate_doc() and not the build target itself, meson doesn't know about the dependency. In turn, as the CI doesn't build everything before building the documentation target, some gir files might not exist, for instance in the case of gst-rtsp-server, causing the output documentation to be empty. The error occurred silently because hotdoc accepts wildcards for *-sources arguments, thus it won't warn about a missing gir file as it is legitimate for glob matching to resolve to nothing. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3686> 2023-01-04 18:55:08 -0300 Rodrigo Bernardes <rodrigo.bernardes@kantaribopemedia.com> * sys/dvb/parsechannels.c: dvbbasebin: don't rely on g_key_file_get_(integer|uint64) return instead check if an error was returned, and fail if any Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3688> 2023-01-03 15:01:37 -0500 Olivier Crête <olivier.crete@collabora.com> * ext/srt/gstsrtobject.c: srt: Avoid crash on unknown option Use the correct field that is null instead of the struct value which never is. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3672> 2022-12-30 10:30:38 -0500 Xavier Claessens <xavier.claessens@collabora.com> * ext/qroverlay/gstbaseqroverlay.c: qroverlay: Add qrcode-case-sensitive property This allows to encode case sensitive strings, like wifi SSID/password. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3662> 2023-01-03 17:28:18 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/codecs/gsth265decoder.c: h265decoder: Fix a memory leak because of slice header. The gst_h265_slice_hdr_free() should free the slice header just parsed, not the priv->current_slice. Or, the memory leak will happen because we do not free the slices in priv->nalu list. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3671> 2022-12-30 17:10:12 +0000 مهدي شينون (Mehdi Chinoune) <mehdi.chinoune@hotmail.com> * ext/opencv/meson.build: meson: Accept latest version of opencv 4.x We've been bumping along the maximum opencv 4.x version for years, just accept all opencv versions till someone reports breakage. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1680 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3664> 2022-12-26 20:53:53 +0900 Seungha Yang <seungha@centricular.com> * sys/va/gstvajpegdec.c: vajpegdec: Set maybe-leaked flag on template caps The fixup function could return new caps object Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3642> 2022-12-22 21:29:39 +0000 Philippe Normand <philn@igalia.com> * ext/webrtc/gstwebrtcbin.c: * ext/webrtc/gstwebrtcstats.c: * tests/check/elements/webrtcbin.c: webrtcbin: Support for setting kind attribute on RTCRtpStreamStats The attribute maps the `kind` property of the associated transceiver. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3630> 2022-12-23 01:00:57 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11memory.cpp: * gst-libs/gst/d3d11/gstd3d11memory.h: d3d11memory: Fix typo in vfunc name s/set_actvie/set_active/g Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3627> 2022-12-19 19:53:28 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvenc.c: * sys/nvcodec/gstnvenc.h: * sys/nvcodec/gstnvencoder.cpp: nvcudaenc: Don't use default CUDA stream Set non-default CUDA stream via NvEncSetIOCudaStreams() if possible, so that NVENC's internal kernel function can run on the given CUDA stream instead of default CUDA stream Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3615> 2022-12-14 10:35:53 +0100 Evgeny Pavlov <lucenticus@gmail.com> * sys/amfcodec/gstamfav1enc.cpp: * sys/amfcodec/gstamfav1enc.h: * sys/amfcodec/include/components/VideoEncoderAV1.h: * sys/amfcodec/meson.build: * sys/amfcodec/plugin.cpp: amfcodec: add support of AMF AV1 encoder Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3569> 2022-12-22 00:22:46 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudabasetransform.c: cudabasetransform: Update CUDA stream on context update CUDA stream must be associated with updated CUDA context Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3618> 2022-12-21 14:36:31 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvafilter.c: va: Delay the VAProcPipelineCaps query after context created. The VAAPI vaQueryVideoProcPipelineCaps() requires the context as the parameter. So far, we always pass VA_INVALID_ID and it can succeed. But the API does not say that and in theory, a valid context is required. Now the new platform really needs a valid context and so we have to delay that query until the context is created. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3613> 2022-12-21 00:20:17 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvdecoder.c: nvdecoder: Use own CUDA stream in GL output path Use the same CUDA stream passed to CuvidMapVideoFrame() Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3611> 2022-12-13 08:58:43 -0500 Xavier Claessens <xavier.claessens@collabora.com> * meson.build: Fix API visibility macros This copies the logic from GLib discussed there: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2936 Beside being simpler, it also fix all public symbols being annotated with dllexport when doing a static build, as discovered there: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3540#note_1678335 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3567> 2022-12-19 18:41:46 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvdec.c: * sys/nvcodec/gstnvdecoder.c: nvdec: Don't use default CUDA stream NVDEC launches CUDA kernel function (ConvertNV12BLtoNV12 or so) when CuvidMapVideoFrame() is called. Which seems to be NVDEC's internal post-processing kernel function, maybe to convert tiled YUV to linear YUV format or something similar. A problem if we don't pass CUDA stream to the CuvidMapVideoFrame() call is that the NVDEC's internel kernel function will use default CUDA stream. Then lots of the other CUDA API calls will be blocked/serialized. To avoid the unnecessary blocking, we should pass our own CUDA stream object to the CuvidMapVideoFrame() call Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3605> 2022-12-16 15:03:12 +0100 Edward Hervey <edward@centricular.com> * gst/mpegtsdemux/mpegtsbase.c: mpegts: Always clear packetizer on DISCONT push mode If a discontinuity is detected in push mode, we need to clear the cached section observations since they might have potentially changed. This was only done properly when operating with TIME segments (dvb, udp, adaptive demuxers, ...) but not with BYTE segments (such as with custom app/fd sources). We still don't want to flush out the PCR observations, since this might be needed for seeking in push-based BYTE sources. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1650 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3584> 2022-12-17 20:04:01 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11window_win32.cpp: d3d11videosink: Fixing focus lost on desktop layout change Watch all message on the window thread, instead of internal window only. Otherwise, some global window messages, such as desktop layout change, wouldn't be handled by our window. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3593> 2022-12-17 01:01:00 +0530 Nirbheek Chauhan <nirbheek@centricular.com> * sys/applemedia/avfvideosrc.m: avfvideosrc: Report latency when doing screen capture There is no `device` when doing screen capture, but there is always an `input`, so use that to decide when we can reply to a latency query. Without this, the latency query just fails. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3589> 2022-12-16 18:15:04 +0100 Victor Manuel Jaquez Leal <vjaquez@igalia.com> * sys/va/gstvaav1dec.c: vaav1dec: Remove double caps unref. There was a duplicated caps unref raising a warning. Also it reorgs the sorrounding code for simplicity. Fixes: #1196 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3587> 2022-12-16 02:52:08 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11videosink.cpp: * sys/d3d11/gstd3d11window.cpp: * sys/d3d11/gstd3d11window.h: * sys/d3d11/gstd3d11window_win32.cpp: d3d11videosink: Move potentially time-consuming operations to ::prepare() Move following tasks to ::prepare() from ::show_frame() * CPU -> GPU upload * GstD3D11Window object setup, including input caps change handling Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3574> 2022-12-16 21:42:50 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11window_win32.cpp: d3d11videosink: Call ShowWindow() from window thread ... when rendering on external HWND. ShowWindow() will cause synchronous message passing to window thread and then can be blocked. At the same time, window thread can wait for GStreamer thread. Instead of the synchronous call, queue the task to window message and performs from the window thread. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3583> 2022-12-15 01:15:10 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11videosink.cpp: * sys/d3d11/gstd3d11window.cpp: * sys/d3d11/gstd3d11window.h: * sys/d3d11/gstd3d11window_dummy.cpp: * sys/d3d11/gstd3d11window_win32.cpp: d3d11videosink: Fix deadlock when parent window is busy Deadlock sequence: * From a streaming thread, d3d11videosink sends synchronous message to the parent window, so that internal (child) window can be constructed on the parent window's thread * App thread (parent window thread) is waiting for pipeline's state change (to GST_STATE_NULL) but streaming thread is blocked and waiting for app thread To avoid the deadlock, GstD3D11WindowWin32 should send message to the parent window asynchronously. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3570> 2022-12-13 12:23:56 +0100 Thibault Saunier <tsaunier@igalia.com> * ext/wpe/gstwpevideosrc.cpp: base:navigation: Cleanup navigation key modifiers enum We were exposing the 'ALT' modifier as if we were guaranteeing its accuracy but truth is we were only exposing configuration dependent values. Make the API simpler for now, the same way as Gtk3 was exposing it, and when we have time to guarantee more values by making them take backends configuration into account, we will expose those values in a accurate way. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1402 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3565> 2022-10-18 12:17:04 +1100 Matthew Waters <matthew@centricular.com> * docs/plugins/gst_plugins_cache.json: * ext/webrtc/gstwebrtcbin.c: * ext/webrtc/gstwebrtcbin.h: * ext/webrtc/utils.c: * ext/webrtc/utils.h: * tests/check/elements/webrtcbin.c: webrtc: implement support for msid values Local msid values are taken from sink pad property, or fallback to the previously used cname. The remote msid values are exposed on the relevant src pads. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3106> 2022-12-13 04:31:24 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecparsers/gsth264parser.h: h264parser: Update doc for GST_H264_FRMAE_PACKING_TOP_BOTTOM Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1318> 2021-11-07 11:18:15 +1100 Brad Hards <bradh@frogmouth.net> * gst-libs/gst/codecparsers/gsth264parser.h: * sys/msdk/gstmsdkh264enc.c: h264parser: typo fix in enum value Old value is marked deprecated, new enum with same entry is added. Should be binary compatible. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1318> 2022-10-21 22:46:16 -0500 A. Wilcox <AWilcox@Wilcox-Tech.com> * gst-libs/gst/mpegts/gstmpegtsdescriptor.c: * tests/check/libs/mpegts.c: mpegts: Handle when iconv doesn't support ISO 6937 Systems like musl libc don't support ISO 6937 in iconv. This ensures that the MPEG-TS plugin can cope with that. There is existing support in the plugin for other methods, so it seems to have been the original intent anyway. Fixes: #1314 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3245> 2022-12-11 10:12:25 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/gstvaallocator.c: vaallocator: Fix gi annotations. Remove spurious types and skip functions that returns VASurfaceID which isn't exposed to introspection. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3557> 2022-11-22 12:32:52 +0100 Stéphane Cerveau <scerveau@igalia.com> * ext/zxing/gstzxing.cpp: * ext/zxing/meson.build: zxing: update to 1.4.0 tag Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3450> 2022-12-06 11:30:47 +0100 Edward Hervey <edward@centricular.com> * gst/mpegtsdemux/mpegtspacketizer.c: mpegts: Check continuity counter on section streams This wasn't really done, and is needed in order to detect potential section changes for sections that have got identical information (such as when switching between streams that have the same PAT/PMT pid and subtable information). Other checks exist in tsbase to detect if the "new" PAT/PMT really is an update or not. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3530> 2022-12-08 06:05:25 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/cuda/gstcudanvrtc.c: cuda: Fix runtime compiler library loading on Windows The cuda is a part of GPU driver but runtime compiler is a part of cuda toolkit, which means the version number can be different. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3545> 2022-12-08 05:58:48 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/cuda/gstcuda-private.h: * gst-libs/gst/cuda/gstcudautils.c: * gst-libs/gst/cuda/gstcudautils.h: * sys/nvcodec/gstcudamemorycopy.c: cuda: Hide memory copy util function The method was intended to be used by only cudaupload/download elements and not ready to be a part of public API Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3545> 2022-12-08 04:32:47 +0900 Seungha Yang <seungha@centricular.com> * sys/winks/gstksvideosrc.c: ksvideosrc: Warn for deprecated plugin use This plugin should not be used any more Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3544> 2022-12-08 04:25:55 +0900 Seungha Yang <seungha@centricular.com> * sys/winscreencap/gstdx9screencapsrc.c: * sys/winscreencap/gstgdiscreencapsrc.c: winscreencap: Warn for deprecated plugin use This plugin should not be used any more Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3544> 2022-11-27 00:26:22 +0900 Seungha Yang <seungha@centricular.com> * gst/proxy/gstproxysink.c: proxysink: Post EOS message on EOS event proxysink is actual sink (GST_ELEMENT_FLAG_SINK flag has configured) so it should post EOS message. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3472> 2022-12-07 12:28:55 -0300 Thibault Saunier <tsaunier@igalia.com> * gst/videoparsers/gsth264parse.c: h264parse: Avoid setting wrong colorimetry info if the stream doesn't contain it Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3543> 2022-12-01 19:35:07 +0200 Marek Olejnik <molejnik@fluendo.com> * gst-libs/gst/codecs/gsth265decoder.c: h265decoder: Do not abort when failed to prepare ref pic set Currently the element calls abort when failed to prepare reference picture set. This can happent when the input stream is somehow corrupted, like a rtsp strem with lost packets. Now it will only return with GST_FLOW_ERROR instead of terminating whole process. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3505> 2022-12-07 10:21:52 +0200 Sebastian Dröge <sebastian@centricular.com> * gst/dvbsubenc/gstdvbsubenc.c: dvbsubenc: Forward GAP events as-is if we wouldn't produce an end packet and are not in the middle of an existing subtitle An end packet is only produced once for the last subtitle, so multiple GAP events between subtitles would result only in a single end packet and nothing else otherwise. This would potentially starve downstream then, so instead forward the GAP events in that case. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3534> 2022-12-05 19:30:43 +0530 Nirbheek Chauhan <nirbheek@centricular.com> * sys/directshow/dshowvideosink.cpp: directshow: Fix build error with glib 2.75 and newer Starting with glib 2.75, `NULL` is `nullptr`, which cannot be implicitly coerced to `0`, unlike `NULL`. So explicitly pass `0`. ``` [3206/4524] Compiling C++ object subprojects/gst-plugins-bad/sys/directshow/gstdirectshow.dll.p/dshowvideosink.cpp.obj FAILED: subprojects/gst-plugins-bad/sys/directshow/gstdirectshow.dll.p/dshowvideosink.cpp.obj "cl" "-Isubprojects\gst-plugins-bad\sys\directshow\gstdirectshow.dll.p" "-Isubprojects\gst-plugins-bad\sys\directshow" "-I..\subprojects\gst-plugins-bad\sys\directshow" "-Isubprojects\gst-plugins-bad" "-I..\subprojects\gst-plugins-bad" "-Isubprojects\gst-plugins-base\gst-libs" "-I..\subprojects\gst-plugins-base\gst-libs" "-Isubprojects\gstreamer\libs" "-I..\subprojects\gstreamer\libs" "-Isubprojects\gstreamer" "-I..\subprojects\gstreamer" "-Isubprojects\orc" "-I..\subprojects\orc" "-I..\subprojects\gst-plugins-bad\sys\directshow\strmbase\baseclasses" "-Isubprojects\gst-plugins-base\gst-libs\gst\video" "-Isubprojects\gstreamer\gst" "-Isubprojects\gst-plugins-base\gst-libs\gst\audio" "-Isubprojects\gst-plugins-base\gst-libs\gst\tag" "-IC:/gst-install/include/glib-2.0" "-IC:/gst-install/lib/glib-2.0/include" "-IC:/gst-install/include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W2" "/EHsc" "/O2" "/Zi" "/wd4018" "/wd4146" "/wd4244" "/wd4305" "/utf-8" "/we4002" "/we4003" "/we4013" "/we4020" "/we4027" "/we4029" "/we4033" "/we4045" "/we4047" "/we4053" "/we4062" "/we4098" "/we4101" "/we4189" "/utf-8" "-D_MBCS" "/wd4189" "/wd4456" "/wd4701" "/wd4703" "/wd4706" "/wd4996" "-DHAVE_CONFIG_H" "/Fdsubprojects\gst-plugins-bad\sys\directshow\gstdirectshow.dll.p\dshowvideosink.cpp.pdb" /Fosubprojects/gst-plugins-bad/sys/directshow/gstdirectshow.dll.p/dshowvideosink.cpp.obj "/c" ../subprojects/gst-plugins-bad/sys/directshow/dshowvideosink.cpp ../subprojects/gst-plugins-bad/sys/directshow/dshowvideosink.cpp(62): warning C5051: attribute 'noinline' requires at least '/std:c++20'; ignored ../subprojects/gst-plugins-bad/sys/directshow/dshowvideosink.cpp(123): error C2664: 'LRESULT SendMessageA(HWND,UINT,WPARAM,LPARAM)': cannot convert argument 3 from 'nullptr' to 'WPARAM' ../subprojects/gst-plugins-bad/sys/directshow/dshowvideosink.cpp(123): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an integral type C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winuser.h(3690): note: see declaration of 'SendMessageA' ../subprojects/gst-plugins-bad/sys/directshow/dshowvideosink.cpp(635): error C2664: 'BOOL SystemParametersInfoA(UINT,UINT,PVOID,UINT)': cannot convert argument 2 from 'nullptr' to 'UINT' ../subprojects/gst-plugins-bad/sys/directshow/dshowvideosink.cpp(635): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an integral type C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winuser.h(13153): note: see declaration of 'SystemParametersInfoA' ../subprojects/gst-plugins-bad/sys/directshow/dshowvideosink.cpp(1593): error C2664: 'LRESULT SendMessageA(HWND,UINT,WPARAM,LPARAM)': cannot convert argument 3 from 'nullptr' to 'WPARAM' ../subprojects/gst-plugins-bad/sys/directshow/dshowvideosink.cpp(1593): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an integral type C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winuser.h(3690): note: see declaration of 'SendMessageA' ``` Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3528> 2022-12-05 02:29:08 +0000 Tim-Philipp Müller <tim@centricular.com> * meson.build: Back to development === release 1.21.3 === 2022-12-05 01:28:21 +0000 Tim-Philipp Müller <tim@centricular.com> * NEWS: * RELEASE: * gst-plugins-bad.doap: * meson.build: Release 1.21.3 2022-12-04 12:25:41 +0000 Tim-Philipp Müller <tim@centricular.com> * ChangeLog: * docs/random/ChangeLog-0.8: Remove ChangeLog files from git repository This information is tracked fully in the git repository, so no point having the ChangeLog duplicate it, and it interferes with grepping the repository. We are going to create the ChangeLogs on the fly when generating tarballs going forward (with a limited history), since it's still valuable for tarball consumers to be able to easily see a list of recent changes. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/73 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3521> 2022-11-07 00:10:39 +0000 Tim-Philipp Müller <tim@centricular.com> * meson.build: * scripts/gen-changelog.py: meson: Generate ChangeLog files for release tarballs on dist Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3521> 2022-12-01 03:52:53 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * sys/d3d11/plugin.cpp: d3d11av1dec: Promote rank to primary + 1 ... so that this element can have higher rank than the other software AV1 decoders Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3495> 2022-12-02 07:03:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvajpegdec.c: vajpegdec: Reenable element negotiation. negotiation vmethod were overwritten by vabasedec, leading to errors. This was a regression of commit b6538e0560. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3509> 2022-12-01 13:28:16 +0100 Johan Sternerup <johast@axis.com> * gst-libs/gst/webrtc/nice/nicestream.c: webrtc: Fix possible use-after-free of GstWebRTCICETransport Because of the asynchronous resolving of mDNS ICE candidates it is possible that GstWebRTCICE outlives webrtcbin. This in turn prolongs the lifetime of the GstWebRTCNiceStream objects via refs in nice_stream_map. Thus the GstWebRTCICETransport objects held in GstWebRTCNiceStream may be invalid at the time they are accessed by the _on_candidate_gathering_done() callback since GstWebRTCNiceStream doesn't take a reference to them. Doing so would create a circular reference, so instead this commit introduces weak references to the transport objects and then we can check if the objects are valid before accessing them. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3502> 2022-11-28 20:42:29 +0100 Victor Manuel Jaquez Leal <vjaquez@igalia.com> * sys/va/gstvaav1dec.c: * sys/va/gstvabasedec.c: * sys/va/gstvabasedec.h: * sys/va/gstvah264dec.c: * sys/va/gstvah265dec.c: * sys/va/gstvajpegdec.c: * sys/va/gstvampeg2dec.c: * sys/va/gstvavp8dec.c: * sys/va/gstvavp9dec.c: va: Handle input caps change. Update output caps if it's notified by baseclass See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3328 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480> 2022-11-27 13:00:20 +0100 Victor Manuel Jaquez Leal <vjaquez@igalia.com> * sys/va/gstvaav1dec.c: vaav1dec: Use gst_va_base_dec_set_output_state(). And even that vaav1dec doesn't use vabasedec negotiate vmethod, it should align with the new scheme of using base's width & height for surface size and output_info structure for downstream display size negotiation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480> 2022-11-26 11:45:52 +0100 Victor Manuel Jaquez Leal <vjaquez@igalia.com> * sys/va/gstvavp9dec.c: vavp9dec: Use gst_va_base_dec_set_output_state(). As this element reopen the internal decoder differently, it only uses the helper function to negotiate. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480> 2022-11-28 19:31:57 +0100 Victor Manuel Jaquez Leal <vjaquez@igalia.com> * sys/va/gstvampeg2dec.c: vampeg2dec: Streams are progressive by default. By initializating progressive, then interlaced streams are detected correctly. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480> 2022-11-26 09:11:39 +0100 Victor Manuel Jaquez Leal <vjaquez@igalia.com> * sys/va/gstvabasedec.c: * sys/va/gstvabasedec.h: * sys/va/gstvah264dec.c: * sys/va/gstvah265dec.c: * sys/va/gstvampeg2dec.c: * sys/va/gstvavp8dec.c: va: Add and use common decode negotiate vmethod. This vmethod can be used by decoders with the same VA decoder reopen logic: same profile, chroma, width and height. Also a new public method called gst_va_base_dec_set_output_state() with the common GStreamer code for setting the output state, which is always called by the negotiate vmethod. In order to do this refactoring, new variables in vabasedec have to be populated by the decoders: * width and height define the resolution set in VA decoder. In the case of H264 would be de coded_width and codec_height, or max_width and max_height in AV1. * output_info is the downstream video info used for negotiation in gst_va_base_dec_set_output_state(). * input_state, from codec parent class shall be also held by vabasedec Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480> 2022-11-24 13:52:59 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaav1dec.c: vaav1dec: Use gst_va_base_dec_prepare_output_frame(). And simplify a bit the code flow. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480> 2022-11-24 13:15:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabasedec.c: * sys/va/gstvabasedec.h: * sys/va/gstvah264dec.c: * sys/va/gstvajpegdec.c: * sys/va/gstvampeg2dec.c: * sys/va/gstvavp8dec.c: * sys/va/gstvavp9dec.c: va: Add and use gst_va_base_dec_prepare_output_frame(). This helper will do downstream negotiation and later will allocate the output frame. H265 and AV1 decoders don't use this approach since their output frame allocation is different. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480> 2022-11-23 18:29:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaav1dec.c: * sys/va/gstvah264dec.c: * sys/va/gstvah265dec.c: * sys/va/gstvavp8dec.c: va: Remove last_ret error handling in decoders. It was used in the early development of the base classes. Now it shouldn't be needed. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480> 2022-11-23 18:14:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaav1dec.c: * sys/va/gstvabasedec.c: * sys/va/gstvabasedec.h: * sys/va/gstvah264dec.c: * sys/va/gstvah265dec.c: * sys/va/gstvajpegdec.c: * sys/va/gstvampeg2dec.c: * sys/va/gstvavp8dec.c: * sys/va/gstvavp9dec.c: va: Add and use gst_va_base_dec_process_output(). This function will copy the frame, if it's needed, and will apply buffer flags. The function is used by all the decoders. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480> 2022-12-01 22:50:30 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvaav1dec.c: * sys/va/gstvabaseenc.c: va: Fix the caps memory leak by gst_va_pool_new_with_config(). The gst_va_pool_new_with_config() will ref the caps, and so we need to unref after that. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3503> 2022-11-30 13:33:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaav1dec.c: * sys/va/gstvadevice.c: * sys/va/gstvadevice.h: * sys/va/gstvah264dec.c: * sys/va/gstvah264enc.c: * sys/va/gstvah265dec.c: * sys/va/gstvah265enc.c: * sys/va/gstvajpegdec.c: * sys/va/gstvampeg2dec.c: * sys/va/gstvavp8dec.c: * sys/va/gstvavp9dec.c: va: Add render node name in non-first devices. There could be multi-GPU setups where the non-first has more entrypoints than the first one, and the elements names are not homogeneous, leading to pipeline building error. This patch add the render node in the elements names when they belong to the non-first device. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3491> 2022-11-26 21:02:00 +0100 Victor Manuel Jaquez Leal <vjaquez@igalia.com> * sys/va/gstvafilter.c: vafilter: Increase the caps for HDR. As they might be other medatadata types. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3473> 2022-11-26 20:48:45 +0100 Victor Manuel Jaquez Leal <vjaquez@igalia.com> * sys/va/gstvafilter.c: vafilter: Increase the number of 3DLUT caps to 16. To fix the warning on Alderlake vafilter gstvafilter.c:534:gst_va_filter_ensure_filters:<vafilter0> vaQueryVideoProcFiltersCaps: list argument exceeds maximum number Increase the number of caps to 16 as vadumpcaps does. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3473> 2022-11-15 06:58:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * tests/examples/va/vaenc-dynamic-reconfigure.c: example: vaenc-dynamic-reconfigure: Support H265. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036> 2022-05-04 10:42:59 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvah265enc.c: va: Add H265 SCC profile support. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036> 2022-05-02 23:14:32 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvah265enc.c: va: Add extended formats support such as 10/12 bits, 4:2:2 and 4:4:4. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036> 2022-04-25 15:49:31 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvaencoder.c: * sys/va/gstvaencoder.h: * sys/va/gstvah265enc.c: va: enable multi tile support for H265 encoder. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036> 2022-06-02 21:18:16 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvah265enc.c: va: enable vah265lpenc for low power mode H265 encoder. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036> 2022-04-18 22:36:09 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvah265enc.c: va: Add the low-delay-b frame support for H265. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036> 2022-04-06 17:06:20 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvaencoder.c: * sys/va/gstvaencoder.h: va: Add prediction direction attribute support for H265 encoder. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036> 2022-03-25 21:55:28 +0800 He Junyan <junyan.he@intel.com> * sys/va/plugin.c: va: Register and enable and the vah265enc plugin. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036> 2022-03-25 21:54:30 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvah265enc.c: * sys/va/gstvah265enc.h: * sys/va/meson.build: va: Implement the vah265enc plugin for va HEVC encoding. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036> 2022-11-29 02:22:50 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfvideosrc.cpp: mfvideosrc: Fix buffer leak The allocated buffer should be released Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3479> 2022-11-29 02:10:42 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfsourcereader.cpp: * sys/mediafoundation/gstwin32devicewatcher.cpp: mediafoundation: Chain up from GObject::constructed ... so that GstTracer can trace it Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3479> 2022-11-29 02:06:11 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11videosink.cpp: * sys/d3d11/gstd3d11window_corewindow.cpp: * sys/d3d11/gstd3d11window_dummy.cpp: * sys/d3d11/gstd3d11window_swapchainpanel.cpp: * sys/d3d11/gstd3d11window_win32.cpp: d3d11: Use correct ref/unref methods Those objects are GstObject subclasses Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3479> 2022-11-25 20:19:22 +0900 Seungha Yang <seungha@centricular.com> * sys/win32ipc/gstwin32ipcvideosrc.cpp: win32ipcvideosrc: Fix property name and enum value mismatch Make them consistent Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3465> 2022-11-25 20:14:43 +0900 Seungha Yang <seungha@centricular.com> * sys/win32ipc/gstwin32ipcvideosrc.cpp: win32ipcvideosrc: Protect pipe from flush thread The pipe object must be protected against GstBaseSrc::unlock() thread. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3465> 2022-11-25 18:38:27 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/codecparsers/gsth264parser.c: h264parser: Fix a typo in pred_weight_table parsing. When setting default values, the reference list number of l1 is wrong. Fix: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/336 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3464> 2022-11-22 17:01:37 +0800 Ma, Mingyang <mingyang.ma@intel.com> * sys/msdk/gstmsdkdec.c: msdkdec: Update decoding pts Update frame pts before calling gst_video_decoder_finish_frame, or frames may be lost when transcoding in specific stream Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3449> 2022-11-19 02:56:27 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * meson_options.txt: * sys/meson.build: * sys/win32ipc/gstwin32ipcutils.cpp: * sys/win32ipc/gstwin32ipcutils.h: * sys/win32ipc/gstwin32ipcvideosink.cpp: * sys/win32ipc/gstwin32ipcvideosink.h: * sys/win32ipc/gstwin32ipcvideosrc.cpp: * sys/win32ipc/gstwin32ipcvideosrc.h: * sys/win32ipc/meson.build: * sys/win32ipc/plugin.cpp: * sys/win32ipc/protocol/win32ipcmmf.cpp: * sys/win32ipc/protocol/win32ipcmmf.h: * sys/win32ipc/protocol/win32ipcpipeclient.cpp: * sys/win32ipc/protocol/win32ipcpipeclient.h: * sys/win32ipc/protocol/win32ipcpipeserver.cpp: * sys/win32ipc/protocol/win32ipcpipeserver.h: * sys/win32ipc/protocol/win32ipcprotocol.cpp: * sys/win32ipc/protocol/win32ipcprotocol.h: * sys/win32ipc/protocol/win32ipcutils.cpp: * sys/win32ipc/protocol/win32ipcutils.h: win32ipc: Add WIN32 shared memory videosrc/sink elements Windows supports various IPC methods but that's completely different form that of *nix from implementation point of view. So, instead of adding shared memory functionality to existing shm plugin, new WIN32 shared memory source/sink elements are implemented in this commit. Each videosink (server) and videosrc (client) pair will communicate using WIN32 named pipe and thus user should configure unique/proper pipe name to them (e.g., \\.\pipe\MyPipeName). Once connection is established, videosink will create named shared memory object per frame and client will be able to consume the object (i.e., memory mapped file handle) without additional copy operation. Note that implementations under "protocol" directory are almost pure C/C++ with WIN32 APIs except for a few defines and debug functions. So, applications can take only the protocol part so that the application can send/receive shared-memory object from/to the other end even if it's not an actual GStreamer element. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3441> 2022-11-23 14:35:07 +0100 Jan Lorenz <jan.lorenz@pascom.net> * sys/mediafoundation/gstmfcapturedshow.cpp: mfvideosrc: check HRESULT of CreateClassEnumerator correctly Fixes a crash during direct show device enumeration Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1599 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3460> 2022-11-22 15:27:38 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/kms/gstkmssink.h: kmssink: Fix compilation without kernel headers There was a drm/drm_mode.h included added recently, drm/ is usually referencing the linux kernel header, but we only requires the libdrm headers to be installed. On top of this, including drm_mode.h is never needed as its already included by drm.h. Fixes #1596 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3452> 2022-11-10 08:50:35 -0500 Daniel Morin <daniel.morin@collabora.com> * ext/onnx/gstonnxclient.cpp: * ext/onnx/gstonnxclient.h: * ext/onnx/gstonnxobjectdetector.cpp: * ext/onnx/meson.build: onnx: Update to OnnxRT >= 1.13.1 API - Replace deprecated methods - Add a check on ORT version we are compatible with. - Add clarification to the example given. - Add the url to retrieve the model mentioned in the example. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3388> 2022-11-22 16:42:26 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gsth265parse.c: h265parse: Add the missing timestamp when splitting a frame. When splitting a frame, the gst_buffer_copy_region() does not copy the timestamp correctly for sub frames when the offset is not 0. We still need those timestamps for each output sub frame. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3448> 2022-11-22 15:50:44 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gsth264parse.c: h264parse: Add the missing timestamp when splitting a frame. When splitting a frame, the gst_buffer_copy_region() does not copy the timestamp correctly for sub frames when the offset is not 0. We still need those timestamps for each output sub frame. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3448> 2022-11-21 19:40:35 +0200 Sebastian Dröge <sebastian@centricular.com> * gst/dvbsubenc/gstdvbsubenc-util.c: * gst/dvbsubenc/gstdvbsubenc.c: * gst/dvbsubenc/gstdvbsubenc.h: dvbsubenc: Write Display Definition Segment if a non-default width/height is used Otherwise it can't be rendered by dvbsuboverlay or ffmpeg at least. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3446> 2022-10-28 00:06:23 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * ext/aom/gstav1dec.c: av1dec: Demote rank to secondary cerbero does not build this plugin for now, and there's altanative dav1ddec Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3287> 2022-11-18 13:32:10 -0800 Bill Hofmann <bill.hofmann@gmail.com> * sys/kms/gstkmsedid.c: * sys/kms/gstkmsedid.h: * sys/kms/gstkmssink.c: * sys/kms/gstkmssink.h: * sys/kms/meson.build: kmssink: add HDR10 infoframe support If stream has HDR10 metadata and HDMI device EDID supports it, this patch will set the DRM properties accordingly. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3303> 2022-11-21 15:48:49 -0500 Bill Hofmann <bill.hofmann@gmail.com> * docs/plugins/gst_plugins_cache.json: * sys/kms/gstkmssink.c: * sys/kms/gstkmssink.h: kmssink: Add skip-vsync property The legacy emulation in DRM/KMS drivers badly interact with GStreamer and may cause the framerate to be halved. With this property, users can disable vsync (which is handled internally by the emulation) in order to regain the full framerate. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3303> 2022-11-18 02:06:51 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gstav1decoder.c: av1decoder: Clear highest_spatial_layer per sequence header Clear the value to default zero, indicating that no spatial scalability layer is used. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3430> 2022-11-18 01:59:55 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gstav1decoder.c: av1decoder: Don't error out by dropped OBU OBU can be dropped if the current layer is not in selected operation point Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3430> 2022-11-18 01:49:43 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gstav1decoder.c: av1decoder: Fix wrong spatial layer validation Highest spatial id and temporal id is independent, and should not drop temporal enhance layer by the previous condition. Note that the decision for dropping OBU based on operation point is being handled in gst_av1_parser_identify_one_obu() already. Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1585 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3430> 2022-11-18 01:43:26 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecparsers/gstav1parser.c: av1parser: Don't print warning for expected OBU drop Dropping an OBU which is not in selected operation point is an expected condition. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3430> 2022-11-18 01:41:33 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecparsers/gstav1parser.c: av1parser: Remove impossible condition unsigned integer cannot be negative Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3430> 2022-11-19 19:22:17 +1100 Jan Schmidt <jan@centricular.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: Remove queue after rtpfunnel The original BUNDLE support commit placed a queue after the rtpfunnel that combines streams, but I don't see a good reason for it. It has default settings, so if network output is slow might accidentally store up to 1 second of pending data, increasing latency. Remove it in favour of doing any necessary buffering before webrtcbin. If it turns out that there is a reason for it to exist, the limits should probably be configurable and small. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3437> 2022-11-19 04:42:56 +1100 Jan Schmidt <jan@centricular.com> * gst-libs/gst/webrtc/webrtc_fwd.h: webrtc: Improve GstWebRTCStatsType docstring Fix a typo of peer-connectiion -> peer-connection Add a link to the w3c RTCStats type for a description of what each statistics type is. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3434> 2022-11-19 04:42:20 +1100 Jan Schmidt <jan@centricular.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: Fix a typo in debug log transceiever -> transceiver Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3434> 2022-11-13 03:07:54 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * sys/qsv/plugin.cpp: qsv: Promote encoder rank to PRIMARY on Windows QSV is very well integrated with GstD3D11 infrastructure on Windows, and this is the recommended H/W encoder element over the MediaFoundation plugins on Intel GPU system. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3393> 2022-11-15 13:50:13 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2format.c: video: Add arbitrary tile dimensions support In current tile representation, only tiles with power of two width and height in bytes are supported. This limitation prevents adding more complex tiles formats. In this patch, we deprecate tile_ws and tile_hs from GstVideoFormatInfo and replace if with an array of GstVideoTileInfo. Each plane tiles are then described with their pixels width/height, line stride and total size. The helper gst_video_format_info_get_tile_sizes() that depends on the deprecated API is also being removed. This can simply be removed as it wasn't in any stable release yet. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3424> 2020-08-31 14:04:54 +0200 Johan Sternerup <johast@axis.com> * docs/plugins/gst_plugins_cache.json: * ext/webrtc/gstwebrtcbin.c: * gst-libs/gst/webrtc/ice.c: * gst-libs/gst/webrtc/ice.h: * gst-libs/gst/webrtc/nice/nice.c: webrtcbin: Add settings for HTTP proxy Pass this to libnice which has a simple HTTP 1.0 proxy with basic authentication only. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2867> 2021-10-20 13:02:31 +0300 Vivia Nikolaidou <vivia@ahiru.eu> * gst/mpegtsdemux/tsdemux.c: tsdemux: Add pad-name to warning for continuity mismatch Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3141> 2022-05-02 19:13:41 +0200 Enrique Ocaña González <eocanha@igalia.com> * ext/hls/gsthlsdemux.c: * ext/hls/gsthlsdemux.h: * ext/hls/m3u8.c: * ext/hls/m3u8.h: * tests/check/elements/hlsdemux_m3u8.c: hlsdemux: Expose EXT-X-PROGRAM-DATE-TIME as tags. This allows an application to use timestamps associated with fragments. Patch by: Thomas Bluemel <tbluemel@control4.com> See: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/195 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1417> 2022-11-16 19:39:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabaseenc.c: vabaseenc: Reduce logging noise if finish_frame fails. Fixes: #1579 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3423> 2022-11-13 03:28:23 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * sys/amfcodec/plugin.cpp: amfcodec: Promote encoder rank to PRIMARY This H/W encoder implementation is the recommended element on AMD system over the MediaFoundation one. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3394> 2022-11-02 14:45:51 +0100 Edward Hervey <edward@centricular.com> * gst/mpegtsdemux/tsdemux.c: tsdemux: Push GST_EVENT_STREAM_COLLECTION Demuxers that are not streams-aware will have that handled by parsebin. This created a difference in results downstream between streams-aware and non-streams-aware demuxers Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784> 2022-11-14 15:53:00 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2codech264dec.c: * sys/v4l2codecs/gstv4l2codech265dec.c: * sys/v4l2codecs/gstv4l2codecmpeg2dec.c: * sys/v4l2codecs/gstv4l2codecvp8dec.c: * sys/v4l2codecs/gstv4l2codecvp9dec.c: v4l2codecs: Allow output caps to be updated This change allow output caps to be updated even though we stay in streaming state. This is needed so that any upstream updated to fields like framerate, hdr data, etc. can result in a downstream caps event being pushed. Previously, any of these changes was being ignored and the downstream caps would not reflect it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3328> 2022-11-05 21:06:39 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvav1dec.c: * sys/nvcodec/gstnvdecoder.c: * sys/nvcodec/gstnvdecoder.h: * sys/nvcodec/gstnvh264dec.c: * sys/nvcodec/gstnvh265dec.c: * sys/nvcodec/gstnvvp8dec.c: * sys/nvcodec/gstnvvp9dec.c: nvdecoder: Handle input caps change Update output caps if it's notified by baseclass Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3328> 2022-11-05 21:00:43 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvav1dec.c: * sys/nvcodec/gstnvdecoder.c: * sys/nvcodec/gstnvdecoder.h: * sys/nvcodec/gstnvh264dec.c: * sys/nvcodec/gstnvh265dec.c: * sys/nvcodec/gstnvvp8dec.c: * sys/nvcodec/gstnvvp9dec.c: nvdecoder: Don't hold decoder output state It's not referenced by this implementation Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3328> 2022-11-05 20:16:21 +0900 Seungha Yang <seungha@centricular.com> * tests/examples/codecs/decoder-caps-update.cpp: * tests/examples/codecs/meson.build: * tests/examples/meson.build: examples: Add test code to verify decoder caps update Sample command lines * Configures pipeline with video encoder decoder-caps-update \ --encoder="video/x-raw,format=NV12 ! qsvh264enc" \ --decoder=d3d11h264dec \ --videosink=d3d11videosink * Playing exisiting file decoder-caps-update \ --location=test_file.mp4 \ --decoder=d3d11h264dec \ --videosink=d3d11videosink Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3328> 2022-11-05 02:47:54 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11av1dec.cpp: * sys/d3d11/gstd3d11decoder.cpp: * sys/d3d11/gstd3d11decoder.h: * sys/d3d11/gstd3d11h264dec.cpp: * sys/d3d11/gstd3d11h265dec.cpp: * sys/d3d11/gstd3d11mpeg2dec.cpp: * sys/d3d11/gstd3d11vp8dec.cpp: * sys/d3d11/gstd3d11vp9dec.cpp: d3d11decoder: Handle input caps change Update output caps if it's notified by baseclass Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3328> 2022-11-05 01:07:02 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gstav1decoder.c: * gst-libs/gst/codecs/gstav1picture.c: * gst-libs/gst/codecs/gstav1picture.h: * gst-libs/gst/codecs/gsth264decoder.c: * gst-libs/gst/codecs/gsth264picture.c: * gst-libs/gst/codecs/gsth264picture.h: * gst-libs/gst/codecs/gsth265decoder.c: * gst-libs/gst/codecs/gsth265picture.c: * gst-libs/gst/codecs/gsth265picture.h: * gst-libs/gst/codecs/gstmpeg2decoder.c: * gst-libs/gst/codecs/gstmpeg2picture.c: * gst-libs/gst/codecs/gstmpeg2picture.h: * gst-libs/gst/codecs/gstvp8decoder.c: * gst-libs/gst/codecs/gstvp8picture.c: * gst-libs/gst/codecs/gstvp8picture.h: * gst-libs/gst/codecs/gstvp9decoder.c: * gst-libs/gst/codecs/gstvp9picture.c: * gst-libs/gst/codecs/gstvp9picture.h: codecs: Keep track of non-decoding-essential input state change In theory, input caps can be updated anytime at non-keyframe or sequence boundary, such as HDR10 metadata, framerate, aspect-ratio or so. Those information update might not trigger ::new_sequence() or subclass may ignore the changes. By this commit, input state change will be tracked by baseclass and subclass will be able to know the non-decoding-essential update by checking the codec specific picture struct on ::output_picture() Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3328> 2022-11-16 09:42:08 +0100 Edward Hervey <bilboed@bilboed.com> * gst/mpegtsdemux/mpegtspacketizer.c: Revert "mpegtspacketizer: memcmp potentially seen_before data" This reverts commit fcad4cc646a23e4e621ec5e8485958ab78d98090. This was wrong is so many ways. * The memcmp was badly used (it should use == 0 to check the data is identical, and not != 0) * There was no boundary checks on the present stream section_data when passing it to memcmp. * The return value should have been TRUE (i.e. we have done all checks, none of them failed, therefore the section has been seen before) * stream->section_data would *always* be NULL if the section had already been processed Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1559 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3421> 2022-11-16 09:29:59 +0100 Edward Hervey <edward@centricular.com> * gst/mpegtsdemux/mpegtsbase.c: mpegts: Check is program is identical before updating There is no need to update the program if it's identical :) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3421> 2022-11-16 03:15:44 +0900 Seungha Yang <seungha@centricular.com> * gst/codectimestamper/gstcodectimestamper.c: * gst/codectimestamper/gstcodectimestamper.h: codectimestamper: Remove duplicated GstSegment struct Use the one in priv struct. And use gst_segment_is_equal() to compare GstSegment Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3380> 2022-11-09 18:03:48 +1100 Matthew Waters <matthew@centricular.com> * gst/codectimestamper/gstcodectimestamper.c: * tests/check/elements/h264timestamper.c: * tests/check/meson.build: h264/5timestamper: provide a workaround for h264/5parse producing pts=NONE buffers A workaround for https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/649 and https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/287 which is hard to change baseparse behaviour for both video and audio parsers. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3380> 2022-11-12 06:16:59 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: nvcodec: Update plugin cache Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389> 2022-11-12 05:45:15 +0900 Seungha Yang <seungha@centricular.com> * tests/check/elements/cudaconvert.c: tests: cudaconvert: Update test code Adding more formats, and rescale test with borders Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389> 2022-11-12 04:48:50 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudaconvertscale.c: cudaconvertscale, cudascale: Add "add-borders" property and support 8bits RGB planar formats Adding "add-borders" property which is identical to that of videoscale and this will be enabled by default. And adding RGBP/BGRP/GBR/GBRA format support. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389> 2022-11-12 04:06:32 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/cuda-converter.c: * sys/nvcodec/cuda-converter.h: * sys/nvcodec/gstcudaconverter.c: * sys/nvcodec/gstcudaconverter.h: * sys/nvcodec/gstcudaconvertscale.c: * sys/nvcodec/meson.build: cuda: Rewrite colorspace/rescale object Rewriting GstCudaConverter object, since the old implementation was not well organized and it's hard to add new features. Moreover, the conversion operations were not very optimized. Major change of this implementation: * Remove redundant intermediate conversion operations such as any RGB -> ARGB(64) conversion or any YUV -> Y444 (or 16bits Y444). That's not required most of cases. The only required case is converting 24bits (such as RGB/BGR) packed format to 32bits format because CUDA texture object does not support sampling 24bits format * Use normalized sample fetching (i.e., [0, 1] range float value) and also normalized coordinates system for CUDA texture. It's consistent with the other graphics APIs such as Direct3D and OpenGL, that makes sampling operations much easier. * Support a kind of viewport and adopt math for colorspace conversion from GstD3D11 implementation Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389> 2022-11-10 19:38:03 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/cuda/gstcudamemory.c: * sys/nvcodec/gstcudaformat.h: cudaupload,cudadownload: Add support for planar 8bits RGB formats Defines RGBP, BGRP, and GBR formats, which have the same memory layout as already supported Y444. And defines GBRA format as well which needs just one additional alpha plane Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389> 2022-11-10 20:47:44 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/cuda/gstcudacontext.c: cudacontext: Store texture alignment it was missed in the previous refactoring Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389> 2022-11-12 04:01:08 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudabasefilter.c: * sys/nvcodec/gstcudabasefilter.h: * sys/nvcodec/gstcudaconvert.c: * sys/nvcodec/gstcudaconvert.h: * sys/nvcodec/gstcudaconvertscale.c: * sys/nvcodec/gstcudaconvertscale.h: * sys/nvcodec/gstcudafilter.c: * sys/nvcodec/gstcudascale.c: * sys/nvcodec/gstcudascale.h: * sys/nvcodec/meson.build: cudaconvert, cudascale: Port to GstCudaBaseCovert baseclass Don't need to hold duplicated code in the source tree Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389> 2022-11-09 21:31:01 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudabasefilter.h: * sys/nvcodec/gstcudaconvertscale.c: * sys/nvcodec/gstcudaconvertscale.h: * sys/nvcodec/gstcudafilter.c: * sys/nvcodec/meson.build: cuda: Add convertscale element GstCudaConverter object can do colorspace conversion and scale at once. Adding new element "cudaconvertscale" to do that, this can save unnecessary GPU operation if colorspace conversion and rescale is required for given input stream format. Most of codes are taken from d3d11convert element Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389> 2022-11-10 14:39:12 +0800 Elliot Chen <elliot.chen@nxp.com> * gst-libs/gst/play/gstplay.c: gstplay: add warning message details check before post it For some warning message which has no detail data, need check to avoid printing critical log. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3382> 2021-10-14 11:56:58 +0200 Rafał Dzięgiel <rafostar.github@gmail.com> * tests/check/elements/dash_mpd.c: tests: Add DASH MPD baseURL with query test Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147> 2021-10-14 10:12:51 +0200 Rafał Dzięgiel <rafostar.github@gmail.com> * ext/dash/gstmpdparser.c: mpdparser: Fix missing baseURL query When no initializationURL or mediaURL, return baseURL that also contains original URI query if available. This fixes a problem where URI query was being omitted in the HTTP requests. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147> 2021-10-14 10:09:31 +0200 Rafał Dzięgiel <rafostar.github@gmail.com> * ext/dash/gstmpdclient.c: * ext/dash/gstmpdparser.c: * ext/dash/gstmpdparser.h: mpdparser: Be consistent about returning duplicated URL Instead of returning a "const gchar" or a "gchar" that should not be freed, always return a duplicated string as those functions were used together with g_strdup anyway. This is needed to prepare support for returning modified strings in next commit. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147> 2021-10-14 10:18:40 +0200 Rafał Dzięgiel <rafostar.github@gmail.com> * ext/dash/gstmpdparser.c: mpdparser: Return correct mediaURL value This fixes a problem where get_mediaURL was returning NULL when segmentURL was unavailable instead of baseURL as a fallback. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147> 2022-11-13 02:08:15 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11converter.cpp: d3d11converter: Fix YUY2 conversion error Always configure shader conversion path, then fallback to the shader path if processor is not available Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3392> 2022-11-12 22:55:52 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * gst-libs/gst/d3d11/gstd3d11-private.h: * gst-libs/gst/d3d11/gstd3d11converter.cpp: * gst-libs/gst/d3d11/gstd3d11device.cpp: * tests/check/elements/d3d11colorconvert.c: d3d11: Add support for planar RGB formats Adding RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, and GBRA_12LE format support Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3392> 2022-11-13 02:28:42 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: d3d11screencapturesrc: Update plugin cache Missed in https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3360 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3392> 2022-11-15 00:11:15 +1100 Jan Schmidt <jan@centricular.com> * ext/aes/gstaesdec.c: aesdec: Fix padding removal for per-buffer-padding=FALSE When per-buffer-padding is FALSE, the OpenSSL context needs to be told to remove any padding at the end of the ciphertext Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1243 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3406> 2022-11-12 09:16:36 +0100 Edward Hervey <edward@centricular.com> * gst/transcode/gsttranscodebin.c: transcodebin: Use const arguments for clarity And rename it when it classhes with existing local variable Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390> 2022-11-12 09:15:23 +0100 Edward Hervey <edward@centricular.com> * gst/transcode/gsttranscodebin.c: transcodebin: Don't leak GstStream Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390> 2022-11-12 08:35:27 +0100 Edward Hervey <edward@centricular.com> * gst/transcode/gsttranscodebin.c: transcode: Don't leak caps Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390> 2022-11-12 08:35:12 +0100 Edward Hervey <edward@centricular.com> * gst/transcode/gst-cpu-throttling-clock.c: transcode: Don't leak timer Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390> 2022-11-11 14:37:17 +0100 Edward Hervey <edward@centricular.com> * gst/mpegtsdemux/mpegtsbase.c: mpegtsbase: Don't leak GList Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390> 2022-11-12 10:04:39 +0100 Edward Hervey <edward@centricular.com> * gst/transcode/gsturitranscodebin.c: uritranscodebin: Don't leak uris, profile, sinkpad and filters Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390> 2022-11-12 10:04:26 +0100 Edward Hervey <edward@centricular.com> * gst/transcode/gsttranscodebin.c: transcodebin: Don't leak profile Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390> 2022-11-12 10:03:48 +0100 Edward Hervey <edward@centricular.com> * gst/transcode/gsttranscodebin.c: transcodebin: Actually free the TranscodingStream structure Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390> 2022-11-12 10:02:53 +0100 Edward Hervey <edward@centricular.com> * gst-libs/gst/transcoder/gsttranscoder.c: transcoder: Don't leak API bus and GMainLoop Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390> 2022-11-10 03:23:53 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/meson.build: meson: d3d11: Clarify the message for WGC support check Even Windows10 SDK seems to have required symbols depending on installed SDK version Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3376> 2022-11-10 02:49:38 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11winrtcapture.cpp: d3d11screencapturesrc: Fix build error with MSVC x86 Delete the code for now. Note that the code block is unnecessary already Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3375> 2022-11-10 14:31:43 +1100 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: * ext/webrtc/webrtcdatachannel.c: * ext/webrtc/webrtcdatachannel.h: webrtc/datachannel: handle error messages from appsrc/sink Fixes a possible race where closing a data channel may produce e.g. not-linked errors. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3381> 2022-11-10 14:22:30 +1100 Matthew Waters <matthew@centricular.com> * ext/sctp/gstsctpdec.c: sctpdec: fix stream reset (src pad removal) if no data is ever received If we don't receive any data from usrsctp, then there will be no src pad for the stream id and the stream reset will fail to remove the relevant src pad. Workaround by first attempting to add the relevant src pad, then almost immediately removing it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3381> 2022-07-19 17:42:12 +0800 He Junyan <junyan.he@intel.com> * tests/check/libs/h264bitwriter.c: * tests/check/libs/h265bitwriter.c: test: Correct the test suite name of the h264 and h265 bitwriter. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3384> 2022-10-10 19:58:12 +0100 Colin Kinloch <colin.kinloch@collabora.com> * sys/va/gstvavpp.c: videocrop, videobox: Simplify navigation event handling and support touch events Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com> Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053> 2022-09-23 19:29:31 +0100 Colin Kinloch <colin.kinloch@collabora.com> * sys/va/gstvavpp.c: va: Fix vapostproc navigation event co-ordinate mapping Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com> Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053> 2022-09-19 18:05:28 +0100 Colin Kinloch <colin.kinloch@collabora.com> * sys/va/gstvavpp.c: va: Use gst_video_orientation_from_tag to parse orientation Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com> Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053> 2022-09-07 16:26:22 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkvpp.c: msdkvpp: delete the macros to make video memory work on Windows Since gst_msdk_import_to_msdk_surface has been implemented for d3d11, we delete the macros to make it work on Windows. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231> 2022-09-07 15:29:37 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkvpp.c: msdkvpp: modify the way of copying system memory to msdk surface Replace video_copy with memcpy to fix the issue when the sizes of the src frame and dst frame don't match. Moreover, for Windows, you have to do the copy first and call gst_msdk_import_to_msdk_surface later. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231> 2022-09-07 10:55:57 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkvpp.c: msdkvpp: add d3d11 support during negotiation Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231> 2022-09-02 16:03:09 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkvpp.c: msdkvpp: add d3d11 video memory to sink and src caps Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231> 2022-09-07 10:44:16 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkvpp.c: * sys/msdk/gstmsdkvpp.h: msdkvpp: delete use_sinkpad_va and use_srcpad_va This two variables are no longer useful. Delete them for now. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231> 2022-08-26 16:19:33 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkenc.c: msdkenc: modify the way of copying system memory to msdk surface Replace video_copy with memcpy to fix the issue when the sizes of the src frame and dst frame don't match. Moreover, for Windows, you have to do the copy first and call gst_msdk_import_to_msdk_surface later. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231> 2022-10-17 17:01:18 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkallocator.h: * sys/msdk/gstmsdkallocator_d3d.c: * sys/msdk/gstmsdkenc.c: msdkallocator_d3d: add d3d11 video memory and import it to msdk surface This patch introduces d3d11 texture and index to GstMsdkMemoryID and implements gst_msdk_import_to_msdk_surface in order to wrap the surface to mfxMemId. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231> 2022-08-26 14:13:36 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkallocator_d3d.c: msdkallocator_d3d: implement GetHDL callback function During encoding process, oneVPL runtime will call GetHDL callback function. This patch implements this function for the use of msdk. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231> 2022-10-17 16:48:15 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkallocator.h: * sys/msdk/gstmsdkallocator_libva.c: * sys/msdk/gstmsdkallocator_libva.h: * sys/msdk/gstmsdkenc.c: * sys/msdk/gstmsdkvpp.c: msdkallocator: add a parameter to function gst_msdk_import_to_msdk_surface Add a flags parameter to function gst_msdk_import_to_msdk_surface and move the function declaration to gstmsdkallcator.h to prepare for adding Windows implementation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231> 2022-08-19 13:51:11 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkenc.c: * sys/msdk/gstmsdkenc.h: msdkenc: add d3d11 pool during negotiation This patch adds Windows specific set_format and propose_allocation functions to enable creating d3d11 pools during negotiation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231> 2022-08-19 13:40:05 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkenc.c: * sys/msdk/gstmsdkh265enc.c: * sys/msdk/gstmsdkvp9enc.c: * sys/msdk/msdk.h: msdkenc: add D3D11 caps for msdkenc This patch adds D3D11 feature to sink factory for msdkenc. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231> 2022-05-07 17:10:34 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkcontext.c: * sys/msdk/gstmsdkcontext.h: * sys/msdk/gstmsdkcontextutil.c: * sys/msdk/gstmsdkcontextutil.h: * sys/msdk/gstmsdkdec.c: * sys/msdk/gstmsdkenc.c: * sys/msdk/gstmsdkvpp.c: MSDK: Introduce d3d11 device to MSDK context Currently MSDK context does not support d3d11va. Now introduce d3d11va device to MSDK context, making it able to create msdk session with d3d11 device and to easily share with upstream and donwstream. Add environment variable to enable user to choose GPU device in multi-GPU environment. This variable is only valid when there's no context returned by upstream or downstream. Otherwise it will use the device that created by upstream or downstream. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231> 2022-05-07 16:28:50 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/meson.build: MSDK: Add gst d3d11 lib into MSDK's dependency Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231> 2022-11-09 14:59:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvafilter.c: vafilter: Log out processed surfaces for debug. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3373> 2022-11-09 14:53:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvadeinterlace.c: * sys/va/gstvavpp.c: vadeinterlace, vapostproc: Drop output buffer if process failed. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3373> 2022-11-07 16:32:50 -0300 Daniel <daniel.almeida@collabora.com> * docs/plugins/gst_plugins_cache.json: * gst/debugutils/gstvideocodectestsink.c: debugutils: videocodectestsink: add support for more formats Add support for more formats so as to run the libvpx high bit depth test suite. This means the files under CONFIG_VP9_HIGHBITDEPTH This also allows running the yuv444p 8bit file in the regular 8 bit vp9 suite. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3356> 2022-11-10 15:07:20 +0800 Elliot Chen <elliot.chen@nxp.com> * gst-libs/gst/play/gstplay.c: gstplay: fix segmentation fault caused by subtitle info update For subtitle stream played by subrui, gstplay will update subtitle information before select the stream by using playbin3. Need check the subtitle_sid value to avoid segmentation fault. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3383> 2022-11-09 14:16:23 +0100 Guillaume Desmottes <guillaume.desmottes@onestream.live> * ext/gs/gstgssink.cpp: gssink: add 'content-type' property Useful when one wants to upload a video as `video/mp4` instead of 'video/quicktime` for example. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3371> 2022-06-01 21:24:41 +1000 Matthew Waters <matthew@centricular.com> * ext/closedcaption/ccutils.c: * ext/closedcaption/ccutils.h: * ext/closedcaption/gstcccombiner.c: * ext/closedcaption/gstcccombiner.h: cccombiner: initial implementation of using CCBuffer helper Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211> 2022-06-01 17:47:55 +1000 Matthew Waters <matthew@centricular.com> * ext/closedcaption/ccutils.c: * ext/closedcaption/ccutils.h: * ext/closedcaption/gstccconverter.c: * ext/closedcaption/gstccconverter.h: * tests/check/elements/ccconverter.c: closedcaption: move CC buffering to helper object Move most of the interesting code from ccconverter to this new helper object. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211> 2022-05-30 21:39:13 +1000 Matthew Waters <matthew@centricular.com> * ext/closedcaption/ccutils.c: * ext/closedcaption/ccutils.h: * ext/closedcaption/gstcccombiner.c: * ext/closedcaption/gstccconverter.c: closedcaption: move cdp->cc_data into shared location So it can be used by both ccconverter and cccombiner Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211> 2022-05-13 15:19:43 +1000 Matthew Waters <matthew@centricular.com> * ext/closedcaption/ccutils.c: * ext/closedcaption/ccutils.h: * ext/closedcaption/gstcccombiner.c: * ext/closedcaption/gstccconverter.c: * ext/closedcaption/gstclosedcaption.c: closedcaption: move cc_data->cdp to shared file Used by both ccconverter and cccombiner Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211> 2022-05-12 13:22:00 +1000 Matthew Waters <matthew@centricular.com> * ext/closedcaption/gstccconverter.c: ccconverter: avoid different indent versions indenting !! differently. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211> 2022-05-12 13:19:58 +1000 Matthew Waters <matthew@centricular.com> * ext/closedcaption/ccutils.c: * ext/closedcaption/ccutils.h: * ext/closedcaption/gstcccombiner.c: * ext/closedcaption/gstcccombiner.h: * ext/closedcaption/gstccconverter.c: * ext/closedcaption/meson.build: closedcaption: move cdp framerate table to common file shared by both cccombiner and ccconverter Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211> 2022-05-12 13:15:19 +1000 Matthew Waters <matthew@centricular.com> * ext/closedcaption/gstcccombiner.c: cccombiner: don't assume a single cea608 data packet per buffer e.g. 24fps can have up to 3 and would include either two field0 or field1 cea608 data. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211> 2022-05-06 14:00:38 +1000 Matthew Waters <matthew@centricular.com> * ext/closedcaption/gstccconverter.c: * tests/check/elements/ccconverter.c: ccconverter: drop data when overflow on extracting cea608 from cc_data If the buffer overflows, then drop rather than causing a failure and fropping the output buffer indefinitely. This may have caused downstream to be waiting for data the will never arrive. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211> 2022-05-05 18:27:50 +1000 Matthew Waters <matthew@centricular.com> * ext/closedcaption/gstccconverter.c: * tests/check/elements/ccconverter.c: ccconverter: fix framerate passthrough with malformed input If an input is malformed (only produces cea608 field 1 cc_data) then when in passthrough we would effectively be dropping every second cea608 on output as we would not store any unused cea608 data. Fix by having all code paths go through the framerate conversion code which will store and retrieve any relevant data across buffers. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211> 2022-11-10 05:54:18 +0900 Seungha Yang <seungha@centricular.com> * sys/amfcodec/gstamfh264enc.cpp: * sys/amfcodec/gstamfh265enc.cpp: amfcodec: Fix typos Fixing typo surfrace -> surface Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3378> 2022-11-10 06:03:45 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfcapturedshow.cpp: mfvideosrc: Return S_OK from ISampleGrabberCB callback The Microsoft's ISampleGrabber implementation seems to be ignoring the HRESULT return value from the callback though, S_OK is the right HRESULT code. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3379> 2022-11-08 19:26:39 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11screencapturedevice.cpp: * sys/d3d11/gstd3d11screencapturesrc.cpp: d3d11screencapturesrc: Specify PAR 1/1 to template caps ... otherwise PAR can be wrongly signalled during the negotiation Fixing below pipeline when desktop resolution is not 640x480 gst-launch-1.0.exe \ d3d11screencapturesrc ! videoscale ! video/x-raw,width=640,height=480,pixel-aspect-ratio=1/1 ! d3d11videosink Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3360> 2022-05-22 12:02:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * tests/examples/va/meson.build: * tests/examples/va/vaenc-dynamic-reconfigure.c: tests: examples: va: Add encoders dynamic reconfiguration. Take the QSV encoder test and used it for VA. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466> 2022-11-05 15:12:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvacaps.c: * sys/va/gstvah264enc.c: va: caps: Fix raw caps for H264 encoding. Mesa gallium and Intel i965 ill reports unsupported video formats. This commit reverts ecb12a05 and adds a deeper workaround, since ecb12a05 only fix the template caps, but not when renegotation happens. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466> 2022-10-21 10:56:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabaseenc.c: vabaseenc: Log out the flow error name. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466> 2022-10-20 11:20:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Enable parameters change while running. 1. Removes the verification if the internal encoder is not opened yet to allow the property setting. 2. And toggles on the base class' reconf flag for each property variable that can be modified at run time. 3. Mark those modifiable properties as mutable while playing. Currently the run-time modifiable properties are: qpi, qpp, qpb, bitrate, target percentage, target usage and rate control Other properties can be enabled too, but they need testing. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466> 2022-10-20 11:13:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabaseenc.c: * sys/va/gstvabaseenc.h: vabaseenc: Enable encoder reconfiguration. Adds an internal function reset() which drains the internal queues and calls the reconfig() vmethod. This reset() method is called inconditionally at set_format() and in handle_frame() if the instance's reconf flag is enabled. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466> 2022-09-20 20:55:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Avoid reopen encoder or renegotiate. If parameters remain similar enough to avoid either encoder reopening or downstream renegotiation, avoid it. This is going to be useful for dynamic parameters setting. To check if the stream parameters changed, so the internal encoder has to be closed and opened again, are required two steps: 1. If input caps, profile, chroma or rate control mode have changed. 2. If any of the calculated variables and element properties have changed. Later on, only if the output caps also changed, the pipeline is renegotiated. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466> 2022-09-20 19:11:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaencoder.c: * sys/va/gstvaencoder.h: vaencoder: Add gst_va_encoder_get_reconstruct_pool_config() This method will return the caps configured in the reconstruct buffer pool, and its maxium number of buffers to allocate. The caps are needed later to know if the internal encoder has to be reopened if the stream properties change. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466> 2022-11-08 03:43:02 +0900 Seungha Yang <seungha@centricular.com> * sys/directshow/plugin.cpp: directshow: Demote rank of device provider to GST_RANK_NONE Current directshow plugin seems to be unstable and unmaintained for many many years. See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3323 and https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1828 Disable this device provider by default to avoid any side-effect of this plugin Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3355> 2022-11-08 11:43:19 +0100 Victor Manuel Jaquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Fix properties documentation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3361> 2022-11-08 11:36:12 +0100 Victor Manuel Jaquez Leal <vjaquez@igalia.com> * sys/va/gstvaav1dec.c: * sys/va/gstvabaseenc.c: * sys/va/gstvacompositor.c: * sys/va/gstvah264dec.c: * sys/va/gstvah265dec.c: * sys/va/gstvajpegdec.c: * sys/va/gstvampeg2dec.c: * sys/va/gstvavp8dec.c: * sys/va/gstvavp9dec.c: va: Document device-path property. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3361> 2022-11-08 10:37:10 +0100 Victor Manuel Jaquez Leal <vjaquez@igalia.com> * docs/plugins/gst_plugins_cache.json: va: Reenable plugin cache. This basically a revert of commit 9bb560e7 Also it adds vaav1dec. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3361> 2022-11-08 11:34:20 +0100 Victor Manuel Jaquez Leal <vjaquez@igalia.com> * sys/va/gstvampeg2dec.c: * sys/va/gstvavp8dec.c: vavp8dec, vampeg2dec: Fix type name. The camel case name is wrong when registering the type. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3361> 2022-10-26 18:05:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvacaps.c: vacaps: Sort raw caps according their efficiency. Caps negotiations considers template caps order. This patch sets the correct order according the feture caps: VAMemory, DMABuf and SystemMemory. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3349> 2022-11-08 02:08:08 +0000 Tim-Philipp Müller <tim@centricular.com> * meson.build: Back to development Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3358> === release 1.21.2 === 2022-11-07 23:53:59 +0000 Tim-Philipp Müller <tim@centricular.com> * ChangeLog: * NEWS: * RELEASE: * gst-plugins-bad.doap: * meson.build: Release 1.21.2 2022-11-07 23:53:57 +0000 Tim-Philipp Müller <tim@centricular.com> * ChangeLog: Update ChangeLogs for 1.21.2 2020-12-08 16:55:26 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * ext/srt/gstsrtobject.c: * ext/srt/gstsrtobject.h: srt: Add a property to disable automatic reconnect This adds a new boolean property `auto-reconnect`, defaulting to `true`. Setting it to `false` makes the elements (in caller mode) immediately report an error to the application instead of trying to reconnect. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3326> 2022-10-26 18:04:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabasetransform.c: vabasetransform: Fail if cannot import the input buffer. Otherwise got a buffer double free. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3348> 2022-11-06 01:53:46 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfcapturedshow.cpp: * sys/mediafoundation/gstmfcapturedshow.h: * sys/mediafoundation/gstmfdevice.cpp: * sys/mediafoundation/gstmfsourceobject.cpp: * sys/mediafoundation/gstmfsourceobject.h: * sys/mediafoundation/gstmfsourcereader.cpp: * sys/mediafoundation/gstmfvideosrc.cpp: * sys/mediafoundation/meson.build: mfvideosrc: Add support for DirectShow capture filter Adding DirecShow video capture filter mode, in addition to existing MediaFoundation and WinRT(UWP) mode, to support DirectShow only filters (not KS driver compatible) such as custom virtual camera filters. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3350> 2021-12-01 16:23:41 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * gst/rtmp2/gstrtmp2sink.c: * gst/rtmp2/gstrtmp2src.c: * gst/rtmp2/rtmp/rtmpclient.c: rtmp2: Improve error messages Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403> 2021-12-01 16:04:24 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * gst/rtmp2/gstrtmp2sink.c: * gst/rtmp2/gstrtmp2src.c: * gst/rtmp2/rtmp/rtmpclient.c: * gst/rtmp2/rtmp/rtmpconnection.c: rtmp2/connection: Pass triggering GError in 'error' signal Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403> 2021-12-01 16:02:53 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * gst/rtmp2/rtmp/rtmpconnection.c: rtmp2/connection: Pass triggering GError to _emit_error Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403> 2021-12-01 16:01:10 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * gst/rtmp2/rtmp/rtmpconnection.c: rtmp2/connection: Discern reasons for cancelling all commands Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403> 2021-12-01 15:53:13 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * gst/rtmp2/rtmp/rtmpconnection.c: rtmp2/connection: Handle EOF like error Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403> 2021-12-01 15:49:22 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * gst/rtmp2/rtmp/rtmpclient.c: rtmp2/client: Make sure 'salt' is not NULL Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403> 2021-12-01 15:46:42 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * gst/rtmp2/rtmp/rtmpclient.c: rtmp2/client: Make sure 'reason' is not NULL Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403> 2021-12-01 16:13:42 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * gst/rtmp2/rtmp/rtmpclient.c: rtmp2/client: Make sure 'desc' is not NULL Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403> 2021-12-01 16:11:31 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * gst/rtmp2/rtmp/rtmpclient.c: rtmp2/client: Make sure 'code' is not NULL Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403> 2022-11-07 07:45:53 +0100 Edward Hervey <edward@centricular.com> * ext/webrtc/gstwebrtcbin.c: * ext/webrtc/gstwebrtcstats.c: * ext/webrtc/transportstream.c: * ext/webrtc/utils.c: * ext/webrtc/utils.h: * ext/webrtc/webrtcsdp.c: webrtcbin: Don't duplicate enum string values Some were leaked when debugging was enabled. Instead just directly use the static strings as-is. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3347> 2022-11-04 14:24:58 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> * docs/plugins/gst_plugins_cache.json: * gst/debugutils/gstvideocodectestsink.c: videocodectestsink: Add YUV422 support Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3331> 2022-11-05 21:35:08 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11window.cpp: d3d11videosink: Always clear back buffer on resize Swapchain may not need to be resized if the size of backbuffer is equal to the previous size. Then previously rendered frame will be stay on the screen. Do clear back buffer whenever resize() is called Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3341> 2022-11-05 00:00:43 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvallocator_va.cpp: qsv: Fix encoding error when input memory belongs to other GPU Copy frame if VA display of input buffer is different from that of encoder, like we've been doing on Windows Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3335> 2022-11-04 21:52:39 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvabaseenc.c: va: baseenc: Do not import the VA surface from other display. Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1167 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322> 2022-11-04 21:26:23 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvacompositor.c: va: compositor: Do not use allocator and pool from other display. Just like the va decoder, the compositor should not use allocator and pool from other display. Also, when importing the input buffer, if it is from other display, we should fallback to memory copy. Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1167 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322> 2022-11-04 17:12:22 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvabasetransform.c: va: basetransform: Do not use allocator and pool from other display. Just like the va decoder, the vpp and deinterlace should not use allocator and pool from other display. Also, when importing the input buffer, if it is from other display, we should fallback to memory copy. Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1167 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322> 2022-11-04 17:08:12 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvabasedec.c: va: basedec: Do not use allocator and pool from other display. The command line such as: gst-launch-1.0 -vf filesrc location=1.264 ! h264parse ! vah264dec ! varenderD129postproc ! fakesink The decoder here gets the allocation proposal from the vpp which is on another GPU device. The allocator and pool belong to other display and should not be used in the decoder. Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1167 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322> 2022-11-04 20:28:34 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/va/gstvaallocator.c: * gst-libs/gst/va/gstvaallocator.h: libs: va: Add API to peek the va buffer's display. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322> 2022-11-04 20:28:34 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/va/gstvaallocator.c: * gst-libs/gst/va/gstvaallocator.h: libs: va: Add API to peek the va memory's display. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322> 2022-11-04 17:06:37 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/va/gstvaallocator.c: * gst-libs/gst/va/gstvaallocator.h: libs: va: Add API to peek the allocator's display. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322> 2022-11-04 17:03:35 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/va/gstvaallocator.h: libs: va: Fix code style in gstvaallocator.h Replace all tabs with spaces. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322> 2022-11-05 05:32:52 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * sys/d3dvideosink/d3dvideosink.c: d3dvideosink: Update plugin description Direct3D is too generic (there are various version numbers). Clarify that this element is using the Direct3D9 API Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3333> 2022-11-04 08:41:10 +0100 Edward Hervey <edward@centricular.com> * ext/lv2/gstlv2.c: lv2: Don't leak plugin information on registration Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319> 2022-11-04 08:40:24 +0100 Edward Hervey <edward@centricular.com> * ext/ladspa/gstladspa.c: ladspa: Don't leak plugin information on registration Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319> 2022-11-04 08:09:52 +0100 Edward Hervey <edward@centricular.com> * ext/fdkaac/gstfdkaacenc.c: fdkaacenc: Properly terminate GEnumValue table It should be terminated with a NULL entry, otherwise we just stray into the realms of cryptographic libraries^W^W random memory usage. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319> 2022-07-27 15:59:35 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * ext/srt/gstsrtobject.c: srt: Remove callers for which srt_bstats fails This keeps them from accumulating in the element and in the stats while the sink is not being fed, as long as we at least periodically grab stats. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156> 2022-07-29 11:53:18 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * ext/srt/gstsrtobject.c: srt: Use simpler list operations for callers Avoid `g_list_append` and `g_list_remove` (which have to scan the list) and replace them with `g_list_prepend` and `g_list_delete_link`. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156> 2020-11-10 10:06:37 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * ext/srt/gstsrtobject.c: srt: Clean up poll/sock lifecycle Make sure `srtobject->poll_id` is never invalid as long as `srtobject` exists. Only remove our caller socket from it when the socket becomes invalid. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156> 2022-06-08 16:35:54 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * ext/srt/gstsrtobject.c: srt: Clean up error handling - Make the srt_epoll_wait loops more uniform. - Error only via GError when possible; let the element send the error message. Avoids a second error message. - Return 0 when cancelled. Avoids an error message from the element. - Don't send an error message from send_headers when we're a server sink. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156> 2022-10-11 11:14:59 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * ext/srt/gstsrtobject.c: srt: Simplify socket stats Don't hide stats depending on whether we're a sending or receiving socket. While we're here, add some more debug logs. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156> 2020-10-05 19:50:13 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * ext/srt/gstsrtobject.c: * ext/srt/gstsrtobject.h: srt: Replace stats accumulation with naive byte counting srt_bstats cannot be used to get the stats of closed connections, so the best we can do is keep the running count ourselves. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156> 2022-11-04 18:32:05 +0900 Seungha Yang <seungha@centricular.com> * sys/directshow/gstdshow.cpp: directshow: Validate enumerated AM_MEDIA_TYPE struct The video info struct can be null if format is undefined Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3323> 2022-11-03 23:40:00 +0900 Seungha Yang <seungha@centricular.com> * tests/examples/d3d11/d3d11decoder-appsink.cpp: * tests/examples/d3d11/d3d11videosink-present.cpp: examples: d3d11: Fix GCC build error/warning Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3318> 2022-11-03 05:18:03 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * sys/qsv/gstqsvjpegenc.cpp: qsvjpegenc: Add support for YUY2 format Now GstD3D11 defines YUY2 format Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3316> 2022-11-03 05:12:31 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * sys/qsv/gstqsvallocator.cpp: * sys/qsv/gstqsvallocator.h: * sys/qsv/gstqsvallocator_d3d11.cpp: * sys/qsv/gstqsvdecoder.cpp: * sys/qsv/gstqsvjpegdec.cpp: * sys/qsv/gstqsvjpegdec.h: * sys/qsv/meson.build: * sys/qsv/plugin.cpp: qsv: Add JPEG decoder Because DXVA does not define JPEG decoding, we need this vendor specific API for Windows Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3316> 2022-11-03 03:38:33 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * gst-libs/gst/d3d11/gstd3d11-private.h: * gst-libs/gst/d3d11/gstd3d11converter.cpp: * gst-libs/gst/d3d11/gstd3d11device.cpp: d3d11: Add support for YUY2 format YUY2 is a primary YUV 4:2:2 format for DXVA. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3316> 2022-11-01 09:47:38 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkcontext.c: msdkcontext: use gst_object_unref instead of g_object_unref Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3301> 2022-10-31 16:59:18 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkcontext.c: msdkcontext: use gst_object_ref for GstVaDisplay Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3301> 2022-10-31 16:56:32 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkcontext.c: msdkcontext: g_object_new() must not return nullptr Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3301> 2022-10-31 16:52:23 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkenc.c: msdkenc: use GST_CAPS_FEATURE_MEMORY_VA to check the feature Add macros to protect sinkpad_is_va(), since it is not defined on Windows. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3301> 2022-11-01 12:03:24 +0100 Guillaume Desmottes <guillaume.desmottes@onestream.live> * ext/wpe/gstwpevideosrc.cpp: wpe: fix wpevideosrc gst-play example wpe:// no longer works since 1.20, see wpesrc examples. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3306> 2022-10-27 10:03:34 -0400 Eric Knapp <emkman99@gmail.com> * sys/va/gstvah264enc.c: vah264enc: Added option to insert CEA-708 closed captions Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2910> 2022-11-01 22:19:18 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * sys/qsv/gstqsvav1enc.cpp: * sys/qsv/gstqsvh264dec.cpp: * sys/qsv/gstqsvh264enc.cpp: * sys/qsv/gstqsvh265dec.cpp: * sys/qsv/gstqsvh265enc.cpp: * sys/qsv/gstqsvjpegenc.cpp: * sys/qsv/gstqsvutils.h: * sys/qsv/gstqsvvp9dec.cpp: * sys/qsv/gstqsvvp9enc.cpp: qsv: Check 16K resolution support ... and remove duplicated code Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3310> 2021-05-14 10:24:05 +0200 Marijn Suijten <marijns95@gmail.com> * gst-libs/gst/vulkan/gstvkimageview.c: * gst-libs/gst/vulkan/gstvkimageview.h: vulkan: Mark gst_vulkan_image_view_new create_info as constant pointer Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1615> 2021-01-05 22:33:12 +0100 Marijn Suijten <marijns95@gmail.com> * gst-libs/gst/vulkan/gstvkcommandpool.c: * gst-libs/gst/vulkan/gstvkdescriptorpool.c: * gst-libs/gst/vulkan/gstvkdevice.c: * gst-libs/gst/vulkan/gstvkphysicaldevice.c: * gst-libs/gst/vulkan/gstvkqueue.c: vulkan: Remove unnecessary null checks These null checkes are slightly misleading when double-checking mutability for external language interop. None of the functions in these files allow the variable at hand to become `NULL` under normal operation, because they are checked at initialization and never (allowed to be) reassigned to `NULL`. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1615> 2021-01-04 01:07:04 +0100 Marijn Suijten <marijns95@gmail.com> * gst-libs/gst/vulkan/gstvkdisplay.c: * gst-libs/gst/vulkan/gstvkfence.c: * gst-libs/gst/vulkan/gstvkimagememory.c: * gst-libs/gst/vulkan/gstvkqueue.c: vulkan: Add missing `(nullable)` annotation to `Returns` Most of these functions already state they might return `%NULL`, but this is not picked up by G-IR. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1615> 2021-01-04 00:40:24 +0100 Marijn Suijten <marijns95@gmail.com> * gst-libs/gst/vulkan/gstvkdescriptorcache.c: * gst-libs/gst/vulkan/gstvkdescriptorpool.c: * gst-libs/gst/vulkan/gstvkdescriptorset.c: * gst-libs/gst/vulkan/gstvkinstance.c: * gst-libs/gst/vulkan/gstvkwindow.c: vulkan: Add missing `array length` and `(out)` annotation to parameters Add `array length` annotation for `layouts` such that `n_layouts` is properly marked as its length, and add `(out)` where a function returns in that parameter. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1615> 2022-11-01 02:00:33 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11decoder.cpp: d3d11decoder: Fix for VP9 decoding with odd resolution Fixing off by one mismatch when width and/or height of stream is odd number Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3302> 2022-10-28 03:25:38 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * sys/qsv/gstqsvallocator.cpp: * sys/qsv/gstqsvallocator.h: * sys/qsv/gstqsvallocator_d3d11.cpp: * sys/qsv/gstqsvdecoder.cpp: * sys/qsv/gstqsvvp9dec.cpp: * sys/qsv/gstqsvvp9dec.h: * sys/qsv/meson.build: * sys/qsv/plugin.cpp: qsv: Add VP9 decoder Recent Intel GPU supports 12bits VP9 decoding but only VP9 profile2 with 10bits is defined by DXVA spec. Thus, we need this vendor specific decoder element Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3290> 2022-10-30 19:01:54 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11vp9dec.cpp: d3d11vp9dec: Disallow Profile2 12bits stream Since DXVA does not support the format, specify bit-depth field to sinkpad template caps so that d3d11vp9dec can be skipped during autoplugging Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3297> 2022-10-30 18:37:55 +0900 Seungha Yang <seungha@centricular.com> * gst/videoparsers/gstvp9parse.c: vp9parse: Set subsampling to src caps even if GBR stream Some muxer elements will need the subsampling information Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3297> 2022-10-30 18:35:08 +0900 Seungha Yang <seungha@centricular.com> * gst/videoparsers/gstvp9parse.c: vp9parse: Delaying src caps until frame is parsed if profile > 0 subsampling and/or bitdepth information will be required for negotiation Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3297> 2022-10-29 16:17:53 +0530 Sanchayan Maity <sanchayan@asymptotic.io> * docs/plugins/gst_plugins_cache.json: * ext/fdkaac/gstfdkaacenc.c: fdkaacenc: Update documentation to clarify bitrate and peak-bitrate bitrate property is only applicable for constant bitrate and peak-bitrate is only applicable for variable bitrate. Clarify the same. 2022-10-29 12:19:58 +0530 Sanchayan Maity <sanchayan@asymptotic.io> * docs/plugins/gst_plugins_cache.json: * ext/fdkaac/gstfdkaacenc.c: * ext/fdkaac/gstfdkaacenc.h: fdkaacenc: Add support for setting bitrate mode 2021-01-31 22:00:36 +0530 Sanchayan Maity <sanchayan@asymptotic.io> * docs/plugins/gst_plugins_cache.json: * ext/fdkaac/gstfdkaacenc.c: * ext/fdkaac/gstfdkaacenc.h: fdkaacenc: Add support for setting peak bitrate 2021-01-23 18:35:12 +0530 Sanchayan Maity <sanchayan@asymptotic.io> * docs/plugins/gst_plugins_cache.json: * ext/fdkaac/gstfdkaacenc.c: * ext/fdkaac/gstfdkaacenc.h: fdkaacenc: Add support for enabling afterburner This is an additional quality parameter. In the default configuration this quality switch is deactivated because it would cause a workload increase which might be significant. If workload is not an issue in the application it can be recommended to activate this feature. 2020-11-26 19:23:11 +0530 Sanchayan Maity <sanchayan@asymptotic.io> * ext/fdkaac/gstfdkaacdec.c: fdkaacdec: Do not report decoding error for flush request A flush request is done when set_format is called to empty internal bit buffer maintained by fdk-aac. When this happens, during the explicit call to handle_buffer, decodeFrame does not return a AAC_DEC_OK. This gets reported as a decoding error while no decoding error in fact took place. Since this can be confusing, just return a GST_FLOW_OK and log that an explicit flush was requested. 2022-10-25 13:22:30 +1100 Matthew Waters <matthew@centricular.com> * gst-libs/gst/codecparsers/gstvp9parser.c: vp9parser: initialize subsampling to -1 The default value of 0 is a valid subsampling value and could be confused with an 'unset' value. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3260> 2022-10-27 14:20:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaencoder.c: vaencoder: Reset attribute index to one. Further fix to 4ffb3663 where I forgot to reset the attribute index. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3285> 2022-10-03 15:20:24 -0300 Thibault Saunier <tsaunier@igalia.com> * ext/dash/gstdashdemux.c: * gst-libs/gst/adaptivedemux/gstadaptivedemux.c: adaptivedemux: Minor typo fix Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159> 2022-09-20 15:32:52 -0300 Thibault Saunier <tsaunier@igalia.com> * ext/dash/gstmpdclient.c: dash: Fix computing `repeat_index` when seeking in stream with a start !=0 on the first fragment Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159> 2022-10-27 15:21:30 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/codecparsers/gsth265bitwriter.c: * gst-libs/gst/codecparsers/gsth265bitwriter.h: * tests/check/libs/h265bitwriter.c: h265bitwriter: Correct the all API to byte aligned. In fact, all the h265 bit writer have byte aligned output. So we change the API from bit size in unit to byte size, which is easy to use. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3193> 2022-10-27 13:42:17 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/codecparsers/gsth264bitwriter.c: * gst-libs/gst/codecparsers/gsth264bitwriter.h: * sys/va/gstvah264enc.c: * tests/check/libs/h264bitwriter.c: h264bitwriter: Correct the all API to byte aligned. In fact, all the h264 bit writer have byte aligned output except the slice header. So we change the API from bit size in unit to byte size, which is easy to use. For slice header, we add a extra "trail_bits_num" to return the unaligned bits number. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3193> 2022-10-27 14:40:49 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/codecparsers/gsth264bitwriter.c: * gst-libs/gst/codecparsers/gsth265bitwriter.c: bitwriter: Fix a nal conversion bug when input is not byte aligned. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3193> 2022-10-24 11:56:51 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkvpp.c: msdkvpp: Set va mem caps as higher priority We use va pool as msdkvpp's bufferpool, which means both va memory and dma memory will be allocated by va pool. Considering drm modifier stuff is not ready, we use va memory with higher priortiry than dma memory when deciding vpp caps. Besides, this patch removes the specified "interlace-mode" in vpp caps. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3253> 2022-10-18 03:36:23 +0000 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkav1enc.c: * sys/msdk/gstmsdkav1enc.h: * sys/msdk/gstmsdkenc.c: * sys/msdk/gstmsdkenc.h: msdkav1enc: Remove reorder TU workaround Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3225> 2022-10-18 03:10:43 +0000 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkav1enc.c: * sys/msdk/gstmsdkav1enc.h: * sys/msdk/gstmsdkenc.c: * sys/msdk/gstmsdkenc.h: msdkav1enc: Remove pts workaround Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3225> 2022-10-27 04:15:01 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecparsers/meson.build: codecparsers: {h264,h265}bitwriter: Don't install headers yet Those APIs are quite early stage of development, and we might want to change them in the near future Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3275> 2022-10-18 16:34:41 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkvpp.c: msdkvpp: Fix upper frc Refact vpp commit 4c6b7194451ff6fbfe88834219d982302114d74b broke the upper FRC, here to fix this by using outbuf_new. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3223> 2022-07-29 18:15:08 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * docs/plugins/gst_plugins_cache.json: * sys/msdk/gstmsdkav1enc.c: bad: Add msdkav1enc docs Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2971> 2022-10-25 08:14:18 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> * gst/codecalpha/gstalphacombine.c: alphacombine: Add missing query handler for gaps The gap handling was in place, but there was no event handler to trigger it. Implement the alpha sink event handler for the gaps. This fixes handling of valid streams which may not refresh the alpha frames for every video frames. It will also allow a clean error if the stream was missing the initial alpha frame, at least until we find a better way to handle these invalid frames. Related to #1518 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3264> 2022-10-26 11:47:43 +0200 Ignacio Casal Quinteiro <qignacio@amazon.com> * sys/applemedia/avfdeviceprovider.m: avfdeviceprovider: do not leak the properties Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3268> 2022-10-21 10:57:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaencoder.c: vaencoder: Fix caps semantics. When using gst_va_caps_from_profiles() the semantics of sink/src caps depends if the element is an encoder or a decoder. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3063> 2022-10-19 16:44:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvadecoder.c: * sys/va/gstvaencoder.c: va: Fix typos. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3063> 2022-08-11 12:51:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaencoder.c: * sys/va/gstvah264enc.c: vah264enc: Fail if unsupported rate control. Handle when encoder doesn't support rate control, which is set as VA_RC_NONE, and if the set rate control mode is not supported by the GStreamer element, the element configuration fails. Also it logs out max and target bitrate. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3063> 2022-09-15 12:56:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Add todo item. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3063> 2022-10-19 16:08:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaencoder.c: * sys/va/gstvaencoder.h: * sys/va/gstvah264enc.c: vaencoder: Honor entrypoint at constructor. The entrypoint is set when the encoder helper is constructed, nonetheless it was also passed as parameter when opening. That's buggy. In order to simplify the code, the entrypoint at construction is honored. But gst_va_encoder_has_profile_and_entrypoint() now doesn't rely in the internal list of profiles since it only contains those that belongs to codec and entrypoint, thus it queries directly the VA driver. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3063> 2022-08-11 12:50:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabaseenc.c: vabaseenc: Scope error bail out. Though this is not enforced by the GStreamer code style, it's clearer to add a nested scope for error handling using label/goto. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3063> 2022-09-20 15:00:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabaseenc.c: * sys/va/gstvabaseenc.h: * sys/va/gstvah264enc.c: vabaseenc: Use class entrypoint. Add a macro to access to class entrypoint and use it instead of move it to a variable. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3063> 2022-10-26 02:55:34 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11-private.h: * gst-libs/gst/d3d11/gstd3d11format.h: d3d11: Move format defines to private header Those defines will be likely changed/deleted in the future, and we don't need to expose them to public at the moment Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3265> 2022-10-25 09:39:07 +0300 Sebastian Dröge <sebastian@centricular.com> * gst-libs/gst/transcoder/gsttranscoder.c: * gst-libs/gst/va/gstvaallocator.c: * gst-libs/gst/vulkan/gstvkerror.c: Fix various warnings from gobject-introspection Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3261> 2022-10-22 11:13:10 +0100 Tim-Philipp Müller <tim@centricular.com> * tests/check/elements/fdkaac.c: * tests/check/meson.build: fdkaac: add minimal unit test Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1785> 2022-10-22 11:10:24 +0100 Tim-Philipp Müller <tim@centricular.com> * ext/fdkaac/gstfdkaacenc.c: fdkaacenc: fix output caps in case of implicit signaling and HE-AAC Need to put the actual profile in the output caps otherwise any capsfilter after the encoder that was used to force the output profile will fail, such as fdkaacenc ! audio/mpeg,stream-format=adts,profile=he-aac-v1 ! .. because we put profile=lc in there to match the profile signaled in the ADTS header. This is expressed through the base-profile=lc in the GStreamer caps though, the profile needs to carry the 'real' profile. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1785> 2022-10-21 17:10:57 +0100 Tim-Philipp Müller <tim@centricular.com> * ext/fdkaac/gstfdkaacenc.c: fdkaacenc: don't set base-profile=lc for non-backwards compatible output Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1785> 2022-10-21 13:15:29 +0100 Tim-Philipp Müller <tim@centricular.com> * docs/plugins/gst_plugins_cache.json: * ext/fdkaac/gstfdkaacenc.c: fdkaacenc: rename profile=sbr|ps to profile=he-aac-v1|he-aac-v2 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1785> 2022-03-01 14:12:27 +0100 Piotrek Brzeziński <piotr@centricular.com> * ext/fdkaac/gstfdkaacenc.c: fdkaacenc: add support for AAC-LD Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1785> 2022-02-23 17:17:25 +0100 Piotrek Brzeziński <piotr@centricular.com> * docs/plugins/gst_plugins_cache.json: * ext/fdkaac/gstfdkaacenc.c: fdkaacenc: add support for HE-AACv1 and HE-AACv2 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1785> 2022-10-22 04:28:03 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: gst-plugins-bad: Update Windows plugins cache Add/update d3d11, qsv, nvcodec, wic, directshow, and amfcodec plugins cache Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250> 2022-10-22 03:02:56 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudamemorycopy.c: * sys/nvcodec/gstnvencoder.cpp: * sys/nvcodec/gstnvh264encoder.cpp: * sys/nvcodec/gstnvh265encoder.cpp: nvcodec: Update for documentation * Use GST_PARAM_DOC_SHOW_DEFAULT flags for GPU ID related properties * Fix some typos * Add since markers Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250> 2022-10-22 02:59:13 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfaudiodecoder.cpp: * sys/mediafoundation/gstmfaudioencoder.cpp: * sys/mediafoundation/gstmfh264enc.cpp: * sys/mediafoundation/gstmfh265enc.cpp: * sys/mediafoundation/gstmfvideoencoder.cpp: * sys/mediafoundation/gstmfvp9enc.cpp: mediafoundation: Update for documentation * Use GST_PARAM_DOC_SHOW_DEFAULT flags for GPU ID related properties * Add doc caps * Add since markers Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250> 2022-10-22 04:09:39 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfvideoencoder.cpp: mfvideoencoder: Document only hardware encoders Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250> 2022-10-22 22:37:33 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfvideoencoder.cpp: mfvideoencoder: Fix device enumeration Although a GPU does not support the codec, the other GPU might be able to support the codec Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250> 2022-10-22 02:56:23 +0900 Seungha Yang <seungha@centricular.com> * sys/amfcodec/gstamfh264enc.cpp: * sys/amfcodec/gstamfh265enc.cpp: amfcodec: Update for documentation * Use GST_PARAM_DOC_SHOW_DEFAULT flags for GPU ID related properties * Add doc caps Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250> 2022-10-22 02:53:16 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvdecoder.cpp: * sys/qsv/gstqsvencoder.cpp: qsv: Use GST_PARAM_DOC_SHOW_DEFAULT flag Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250> 2022-10-22 02:49:00 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11compositor.cpp: * sys/d3d11/gstd3d11decoder.cpp: * sys/d3d11/gstd3d11deinterlace.cpp: * sys/d3d11/gstd3d11screencapturesrc.cpp: * sys/d3d11/gstd3d11testsrc.cpp: * sys/d3d11/gstd3d11videosink.cpp: d3d11: Update for documentation * Use GST_PARAM_DOC_SHOW_DEFAULT flags for GPU ID related properties * Add doc caps * Increase deinterlace max resolution Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250> 2022-10-22 02:48:23 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11screencapturesrc.cpp: * sys/d3d11/gstd3d11winrtcapture.cpp: d3d11: Run indent Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250> 2022-10-22 22:33:01 +0900 Seungha Yang <seungha@centricular.com> * sys/wic/plugin.cpp: wic: Add since marker Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250> 2022-10-22 03:12:19 +0900 Seungha Yang <seungha@centricular.com> * sys/directshow/plugin.cpp: directshow: Add since marker Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3250> 2022-10-21 23:20:47 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/libmfx/dispatcher/vpl/mfx_dispatcher_vpl_config.cpp: * sys/qsv/libmfx/meson.build: * sys/qsv/meson.build: qsv: Enable MinGW toolchain support Use PCRE regex method to work around (likely) GCC std::regex bug, and enable building for non-MSVC Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3239> 2022-10-21 21:50:01 +0530 Nirbheek Chauhan <nirbheek@centricular.com> * gst-libs/gst/vulkan/cocoa/gstvkcocoa_utils.h: * gst-libs/gst/vulkan/cocoa/gstvkwindow_cocoa.m: * gst-libs/gst/vulkan/ios/gstvkios_utils.h: * gst-libs/gst/vulkan/ios/gstvkwindow_ios.m: gl/vulkan: Fix static linking on macOS duplicate symbol '__invoke_on_main' in: /Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstvulkan-1.0.a(cocoa_gstvkwindow_cocoa.m.o) /Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstgl-1.0.a(cocoa_gstglwindow_cocoa.m.o) ld: 1 duplicate symbol for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) Also make the same change in iOS for consistency. Continuation of https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1132 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3242> 2022-10-18 17:05:41 +1100 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: configure rtpulpfecdec passthrough property This allows downstream (payloaders mostly) to be able to correctly detect actual packet loss from rtp sequence numbers. See https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/581 for background. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1407 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3212> 2022-10-07 04:20:29 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11screencapture.cpp: * sys/d3d11/gstd3d11screencapture.h: * sys/d3d11/gstd3d11screencapturesrc.cpp: * sys/d3d11/gstd3d11winrtcapture.cpp: * sys/d3d11/gstd3d11winrtcapture.h: * sys/d3d11/meson.build: d3d11screencapture: Add WinRT API based capture mode Add Windows Graphics Capture (WGC) API based screen capture mode. The conditions where this mode is used: * Explicitly requested by user (capture-api property) * To capture specific window * When DXGI desktop duplication API does not work on hybrid graphics systems (e.g., multi-gpu laptop) Full features of this implementation require Windows 11. And Windows 11 SDK is required to build this feature. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3144> 2022-10-06 23:54:14 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11dxgicapture.cpp: * sys/d3d11/gstd3d11dxgicapture.h: * sys/d3d11/gstd3d11screencapture.cpp: * sys/d3d11/gstd3d11screencapture.h: * sys/d3d11/gstd3d11screencapturesrc.cpp: * sys/d3d11/meson.build: d3d11screencapture: Subclassing capture implementation Preparation to use WinRT capture API Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3144> 2022-10-21 19:08:49 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * sys/qsv/gstqsvav1enc.cpp: * sys/qsv/gstqsvdecoder.cpp: * sys/qsv/gstqsvencoder.cpp: * sys/qsv/gstqsvh264dec.cpp: * sys/qsv/gstqsvh264enc.cpp: * sys/qsv/gstqsvh265dec.cpp: * sys/qsv/gstqsvh265enc.cpp: * sys/qsv/gstqsvjpegenc.cpp: * sys/qsv/gstqsvvp9enc.cpp: * sys/qsv/plugin.cpp: qsv: Add plugin doc Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2738> 2022-07-09 05:38:05 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/libmfx/api/vpl/mfx.h: * sys/qsv/libmfx/api/vpl/mfxcommon.h: * sys/qsv/libmfx/api/vpl/mfxdefs.h: * sys/qsv/libmfx/api/vpl/mfxencodestats.h: * sys/qsv/libmfx/api/vpl/mfxjpeg.h: * sys/qsv/libmfx/api/vpl/mfxstructures.h: * sys/qsv/libmfx/api/vpl/mfxvideo++.h: * sys/qsv/libmfx/api/vpl/mfxvideo.h: * sys/qsv/libmfx/dispatcher/linux/device_ids.h: * sys/qsv/libmfx/dispatcher/linux/mfxloader.cpp: * sys/qsv/libmfx/dispatcher/linux/mfxloader.h: * sys/qsv/libmfx/dispatcher/linux/mfxvideo_functions.h: * sys/qsv/libmfx/dispatcher/vpl/mfx_dispatcher_vpl.cpp: * sys/qsv/libmfx/dispatcher/vpl/mfx_dispatcher_vpl.h: * sys/qsv/libmfx/dispatcher/vpl/mfx_dispatcher_vpl_config.cpp: * sys/qsv/libmfx/dispatcher/vpl/mfx_dispatcher_vpl_loader.cpp: * sys/qsv/libmfx/dispatcher/vpl/mfx_dispatcher_vpl_lowlatency.cpp: * sys/qsv/libmfx/dispatcher/vpl/mfx_dispatcher_vpl_msdk.cpp: * sys/qsv/libmfx/dispatcher/windows/main.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_critical_section.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_critical_section.h: * sys/qsv/libmfx/dispatcher/windows/mfx_dispatcher.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_dispatcher.h: * sys/qsv/libmfx/dispatcher/windows/mfx_dispatcher_defs.h: * sys/qsv/libmfx/dispatcher/windows/mfx_dispatcher_log.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_dispatcher_log.h: * sys/qsv/libmfx/dispatcher/windows/mfx_driver_store_loader.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_driver_store_loader.h: * sys/qsv/libmfx/dispatcher/windows/mfx_dxva2_device.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_dxva2_device.h: * sys/qsv/libmfx/dispatcher/windows/mfx_exposed_functions_list.h: * sys/qsv/libmfx/dispatcher/windows/mfx_function_table.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_library_iterator.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_library_iterator.h: * sys/qsv/libmfx/dispatcher/windows/mfx_load_dll.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_load_dll.h: * sys/qsv/libmfx/dispatcher/windows/mfx_vector.h: * sys/qsv/libmfx/dispatcher/windows/mfx_win_reg_key.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_win_reg_key.h: * sys/qsv/libmfx/dispatcher/windows/mfxvideo++.h: * sys/qsv/libmfx/dispatcher/windows/version.rc.in: * sys/qsv/libmfx/meson.build: qsv: Update SDK version to v2022.2.4 See release note https://github.com/oneapi-src/oneVPL/releases/tag/v2022.2.0 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2738> 2022-10-14 16:05:28 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gstav1parse.c: av1parse: Correct the pts for frames and OBUs inside a TU. When the output alignment is smaller than the input alignment, for example, When the output alignment is "FRAME" and the parse is likely connecting to a decoder, the current PTS setting for AV1 frames inside a TU is not very correct. For example, a TU may begin with non-displayed frames and end with a displayed frame. The current way will assign the PTS to the first non-displayed frame, which is a decode-only frame and the PTS will be discarded in the video decoder. While the last displayed frame has invalid PTS, and so the video decoder needs to guess its PTS based on the frame rate and previous frame's PTS. This is not a decent and robust way. And more important, when the previous frames provide DTS, the video decoder will also guess the PTS based on the previous frames' DTS and trigger the warning like: gstvideodecoder.c:3147:gst_video_decoder_prepare_finish_frame: \ <vavp9dec0> decreasing timestame It sets the reordered_output and makes the decoder in free run mode. We should correct the PTS for a TU, let the non-displayed frames have no PTS while set the correct PTS to the displayed one. Also, when the AV1 stream has multi spatial layers, there are more than one displayed frames inside one TU with the same PTS. Note: If the input alignment is not TU aligned, we can not know the exact PTS of this TU, and so we just clear the PTS of the decode only frame and leave others unchanged. We also correct all the PTS if the output is OBU aligned. All their PTS and DTS are set to the input buffer's PTS. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3182> 2022-10-14 17:25:45 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gstav1parse.c: av1parse: Only check the TU bound when the alignment is TU. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3182> 2022-10-14 15:46:16 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gstav1parse.c: av1parse: push all data once when input alignment not smaller than output. When the incoming data has big alignment than the output, we do not need to call finish_frame() and exit the current handle_frame() for each splitted frame. We can push them all at one shot with in one handle_frame(), whcih may improve the performance and can help us to find the edge of TU. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3182> 2022-10-14 15:27:52 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gstav1parse.c: av1parse: Set the output buffer flags correctly. The current code forgets to clear some flags and has some typo. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3182> 2022-10-21 10:50:36 +1100 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: also add rtcp-fb ccm fir for video mlines by default In addition to the 'nack pli' already added. Both are supported by rtpbin/rtpsession by default already. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3235> 2022-10-19 16:03:55 +0900 Sangchul Lee <sc11.lee@samsung.com> * docs/plugins/gst_plugins_cache.json: * ext/webrtc/gstwebrtcbin.c: webrtcbin: Improve documentation of 'turn-server' property Description about how to set time-limited credentials is added. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3229> 2022-09-23 18:25:41 +0200 Mathieu Duponchelle <mathieu@centricular.com> * docs/plugins/gst_plugins_cache.json: * gst/debugutils/gstfakeaudiosink.c: * gst/debugutils/gstfakesinkutils.c: * gst/debugutils/gstfakesinkutils.h: * gst/debugutils/gstfakevideosink.c: fake{video|audio}sink: don't proxy properties at instance init. Instead proxy properties from the GstBaseSink class at class_init time, and duplicate the rest of the fakesink properties manually. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1442 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3073> 2022-10-18 11:16:20 +0200 Alba Mendez <alba.mendez@dolby.com> * gst-libs/gst/webrtc/nice/nice.c: webrtcbin: support adding TURN servers after pipeline start Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1680 When a TURN server is added for the first time, propagate the change to all nice streams that already exist. This lets us add servers after the pipeline has been started (and streams have been added). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3217> 2022-10-17 06:48:12 -0500 Fabian Orccon <forccon@fluendo.com> * ext/srtp/meson.build: srtp: Fix test skipping when plugin option is disabled Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3200> 2022-10-14 00:17:52 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11videosink.cpp: * tests/examples/d3d11/d3d11videosink-present.cpp: d3d11videosink: Add "emit-present" property Controls the decision for "present" signal use, and allows delayed "present" signal handler install via the property Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3176> 2022-10-17 19:36:13 +0300 Sebastian Dröge <sebastian@centricular.com> * gst-libs/gst/play/gstplay-signal-adapter.c: play: Add/fix various annotations Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194> 2022-10-17 11:29:02 +0300 Sebastian Dröge <sebastian@centricular.com> * gst-libs/gst/vulkan/android/gstvkdisplay_android.c: * gst-libs/gst/vulkan/cocoa/gstvkdisplay_cocoa.m: * gst-libs/gst/vulkan/gstvkdevice.c: * gst-libs/gst/vulkan/gstvkdisplay.c: * gst-libs/gst/vulkan/gstvkfence.c: * gst-libs/gst/vulkan/gstvkformat.c: * gst-libs/gst/vulkan/gstvkinstance.c: * gst-libs/gst/vulkan/gstvkqueue.c: * gst-libs/gst/vulkan/gstvkutils.c: * gst-libs/gst/vulkan/ios/gstvkdisplay_ios.m: * gst-libs/gst/vulkan/wayland/gstvkdisplay_wayland.c: * gst-libs/gst/vulkan/xcb/gstvkdisplay_xcb.c: vulkan: Add/fix various annotations And fix a memory leak in gst_vulkan_display_wayland_new() in error cases. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194> 2022-10-17 10:54:06 +0300 Sebastian Dröge <sebastian@centricular.com> * gst-libs/gst/d3d11/gstd3d11converter.cpp: * gst-libs/gst/d3d11/gstd3d11memory.cpp: d3d11: Add/fix various annotations Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194> 2022-10-17 10:51:42 +0300 Sebastian Dröge <sebastian@centricular.com> * gst-libs/gst/cuda/gstcudacontext.c: * gst-libs/gst/cuda/gstcudautils.c: cuda: Add/fix various annotations And fix a memory leak when creating a CUDA context fails. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194> 2022-10-17 10:47:02 +0300 Sebastian Dröge <sebastian@centricular.com> * gst-libs/gst/codecs/gsth264decoder.c: * gst-libs/gst/codecs/gsth264picture.c: * gst-libs/gst/codecs/gsth265decoder.c: * gst-libs/gst/codecs/gsth265picture.c: * gst-libs/gst/codecs/gstvp9decoder.h: codecs: Add/fix various annotations Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194> 2022-10-17 10:44:24 +0300 Sebastian Dröge <sebastian@centricular.com> * gst-libs/gst/audio/gstnonstreamaudiodecoder.c: badaudio: Add/fix annotations Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194> 2022-10-14 21:51:17 +0300 Sebastian Dröge <sebastian@centricular.com> * gst-libs/gst/webrtc/ice.c: * gst-libs/gst/webrtc/ice.h: * gst-libs/gst/webrtc/icetransport.c: * gst-libs/gst/webrtc/icetransport.h: * gst-libs/gst/webrtc/nice/nice.c: webrtc: Add/fix various annotations And mark string parameters as const. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194> 2022-10-17 00:40:46 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * sys/wasapi2/gstwasapi2client.cpp: * sys/wasapi2/gstwasapi2client.h: * sys/wasapi2/gstwasapi2device.c: * sys/wasapi2/gstwasapi2ringbuffer.cpp: * sys/wasapi2/gstwasapi2ringbuffer.h: * sys/wasapi2/gstwasapi2sink.c: * sys/wasapi2/gstwasapi2src.c: * sys/wasapi2/gstwasapi2util.c: * sys/wasapi2/gstwasapi2util.h: wasapi2: Add support for process loopback capture Adding loopback capture mode for specified PID. Note that this feature requires Windows 10 build 20348 (Windows 11/Windows Server 2022 or later), and any process loopback related properties will not be exposed if OS does not support it. Example launch lines: * wasapi2src loopback-mode=include-process-tree loopback-target-pid=<PID> Captures audio generated by an application (specified by PID) and its child process * wasapi2src loopback-mode=exclude-process-tree loopback-target-pid=<PID> Captures desktop audio excluding PID and its child process Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1278 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3195> 2022-10-14 16:21:07 -0400 Arun Raghavan <arun@asymptotic.io> * gst/rtmp2/gstrtmp2sink.c: rtmp2sink: Correctly return GST_FLOW_ERROR on error If there is an error while connecting, the streaming task will be stopped, and is_running() will be false, causing a GST_FLOW_FLUSHING to be returned. Instead, we perform the error check (!self->connection) first, to return an error if that's what occured. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3189> 2022-10-14 18:51:43 +0200 Mathieu Duponchelle <mathieu@centricular.com> * gst-libs/gst/webrtc/nice/nice.c: webrtc/nice: fix small leak of split strings g_strfreev previously stopped at our manual NULL-termination. Fix by restoring the pointer after joining. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3188> 2022-10-12 16:11:47 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gstvp9parse.c: vp9parse: The show_existing_frame buffer should not be decode only. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3155> 2022-10-11 16:17:26 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gstvp9parse.c: vp9parse: Correct the pts for frames inside a super frame. When the alignment is "FRAME" and the parse is likely connecting to a decoder, the current PTS setting for VP9 frames inside a super frame is not very correct. For example, the super frame may begin with non-displayed frames and end with a displayed frame. The current way will assign the PTS to the first non-displayed frame, which is a decode-only frame and the PTS will be discarded in the video decoder. While the last displayed frame has invalid PTS, and so the video decoder needs to guess its PTS based on the frame rate and previous frame's PTS. This is not a decent and robust way. And more important, when the previous frames provide DTS, the video decoder will also guess the PTS based on the previous frames' DTS and trigger the warning like: gstvideodecoder.c:3147:gst_video_decoder_prepare_finish_frame: \ <vavp9dec0> decreasing timestame It sets the reordered_output and makes the decoder in free run mode. We should correct the PTS for a super frame, let the non-displayed frames have no PTS while set the correct PTS to the displayed one. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3155> 2022-10-08 00:29:03 +0200 Piotr Brzeziński <piotr@centricular.com> * sys/applemedia/avfvideosrc.m: avfvideosrc: Allow specifying crop coordinates during screen capture Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3153> 2022-10-12 11:12:50 +0200 Edward Hervey <edward@centricular.com> * gst/mxf/gstmxfelement.c: * gst/mxf/meson.build: * gst/mxf/mxfcustom.c: * gst/mxf/mxfcustom.h: mxfdemux: Add support for Canon XF-HEVC Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1495 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3163> 2022-10-12 11:12:14 +0200 Edward Hervey <edward@centricular.com> * gst/mxf/mxfdemux.c: mxfdemux: Don't leak index table segments on failures The segment was freed ... but not the contents :) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3163> 2022-10-11 13:09:20 +0300 Sebastian Dröge <sebastian@centricular.com> * gst-libs/gst/webrtc/webrtc_fwd.h: webrtc: Move GST_WEBRTC_ERROR_TYPE_ERROR at the end of the enum to keep ABI compatibility Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3154> 2022-10-06 20:37:45 +0900 Sangchul Lee <sc11.lee@samsung.com> * tests/check/elements/webrtcbin.c: tests/webrtc: Add test for 'add-turn-server' action signal It just checks return value of the action signal. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3131> 2020-12-10 16:25:26 +0100 Johan Sternerup <johast@axis.com> * ext/sctp/gstsctpenc.c: sctpenc: Prohibit sending of interleaved message parts Apparently we cannot start sending messages from another datachannel before the previous message was completely sent. usrsctplib will complain about being locked on another stream id and set errno=EINVAL. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2454> 2022-10-07 08:30:05 +0200 Wojciech Kapsa <wojciech.kapsa@medvc.eu> * sys/decklink/gstdecklinkvideosrc.cpp: * sys/decklink/gstdecklinkvideosrc.h: decklink: reset calculation of gst_decklink_video_src_update_time_mapping on no_signal. When the HDMI cable was disconnected for a long time, the calculation took too much time. SDI cable works fine. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3132> 2022-10-07 07:56:21 -0400 Xavier Claessens <xavier.claessens@collabora.com> * ext/dash/meson.build: Meson: Fix libxml2 fallback The variable xml2lib_dep does not exist. The correct name is already in the wrap file. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3136> 2022-09-22 22:39:31 +0900 Sangchul Lee <sc11.lee@samsung.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: Fix pointer dereference before null check Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3129> 2022-09-26 13:57:15 +0200 Wojciech Kapsa <wojciech.kapsa@medvc.eu> * docs/plugins/gst_plugins_cache.json: * 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/gstdecklinkvideosink.cpp: * sys/decklink/gstdecklinkvideosink.h: * sys/decklink/gstdecklinkvideosrc.cpp: * sys/decklink/gstdecklinkvideosrc.h: decklink: Add new persistent-id property and sort devices by persistent ID The order of the devices iterator from the SDK is undefined and can randomly change. Keep the device-number property for backwards compatibility and simplicity but prefer the persistent-id property and also use it for the device provider implementation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3078> 2022-10-04 19:19:57 -0300 Thibault Saunier <tsaunier@igalia.com> * gst/transcode/gsttranscodebin.c: * gst/transcode/gsttranscodeelement.c: transcodebin: Implement support for upstream stream selection Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3128> 2022-10-05 05:38:54 +0530 Nirbheek Chauhan <nirbheek@centricular.com> * gst-libs/gst/d3d11/gstd3d11device.cpp: d3d11: Fix debug build on UWP GstDXGIGetDebugInterface() is unused when targeting UWP. We directly call DXGIGetDebugInterface1() in that case. Fixes build failure: ../gst-libs/gst/d3d11/gstd3d11device.cpp(271): error C2440: '=': cannot convert from 'HRESULT (__cdecl *)(UINT,const IID &,void **)' to 'DXGIGetDebugInterface_t' ../gst-libs/gst/d3d11/gstd3d11device.cpp(271): note: This conversion requires a reinterpret_cast, a C-style cast or function-style cast Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3118> 2022-10-05 15:59:03 +0900 Sangchul Lee <sc11.lee@samsung.com> * gst-libs/gst/webrtc/nice/nice.c: webrtc/nice: Make sure to return NULL when validating turn server fails It affects 'add-turn-server' signal action and 'turn-server' property of webrtcbin. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3120> 2022-03-21 10:29:21 +0100 Johan Sternerup <johan.sternerup@axis.com> * ext/webrtc/webrtcdatachannel.c: * gst-libs/gst/webrtc/datachannel.c: * gst-libs/gst/webrtc/datachannel.h: * gst-libs/gst/webrtc/webrtc-priv.h: * gst-libs/gst/webrtc/webrtc_fwd.h: * tests/check/elements/webrtcbin.c: webrtc: return error when sending on non-open datachannel According to W3C specification (https://w3c.github.io/webrtc-pc/#datachannel-send) we should return InvalidStateError exception when trying to send when the channel is not open. In the world of C/glib/gstreamer we don't have exceptions but have to rely on gboolean/GError instead. Introducing these calls for a change in function signature of the action signals used to send data on the datachannel. Changing the signature of the existing "send-string" and "send-data" signals would mean an immediate breaking change so instead we deprecate them. Furthermore, there is no way to express GError** as an argument to an action signal in a way that fits language bindings (pointer-to-pointer simply does not work) and we have to use regular functions instead. Therefore we introduce gst_webrtc_data_channel_send_data_full() and gst_webrtc_data_channel_send_string_full() while deprecating the old functions and corresponding signals. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1958> 2022-09-23 17:18:35 +0200 Stéphane Cerveau <scerveau@igalia.com> * gst-libs/gst/codecparsers/gsth265bitwriter.c: * gst-libs/gst/codecparsers/gsth265parser.c: * gst-libs/gst/codecparsers/gsth265parser.h: * sys/nvcodec/gstnvh265dec.c: * sys/va/gstvah265dec.c: * tests/check/libs/h265bitwriter.c: h265parse: fix typo in member of GstH265SPS Rename sps_extnsion_params to sps_extension_params Fix comment about vui_parameters_present_flag Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3072> 2022-10-04 03:57:31 +0100 Tim-Philipp Müller <tim@centricular.com> * meson.build: Back to development Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3115> === release 1.21.1 === 2022-10-04 01:14:01 +0100 Tim-Philipp Müller <tim@centricular.com> * ChangeLog: * NEWS: * RELEASE: * gst-plugins-bad.doap: * meson.build: Release 1.21.1 2022-10-04 01:13:59 +0100 Tim-Philipp Müller <tim@centricular.com> * ChangeLog: Update ChangeLogs for 1.21.1 2022-09-29 14:34:31 +0300 Sebastian Dröge <sebastian@centricular.com> * gst/gaudieffects/gstgaussblur.c: gaussblur: Fix memory leak when setting caps multiple times Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3091> 2022-09-27 18:17:24 +0100 Christopher Obbard <chris.obbard@collabora.com> * sys/v4l2codecs/gstv4l2codecdevice.c: v4l2codecs: Warn user when no media devices are found Currently if the user is not able to access the devices under /dev/media*, either due to no media devices present on the system or simply no permission to access the device, v4l2codecs initialises with no features or debug messages. Since calling `GST_DEBUG="v4l2*:7" gst-inspect-1.0 v4l2codecs` is a typical way to diagnose why element(s) failed to enumerate, we should be more verbose here when the user is not able to access any /dev/media* device. So print a simple debug message in this case to aid debugging. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3088> 2022-09-20 23:31:45 +0300 Mart Raudsepp <mart@leio.tech> * gst/mpegtsdemux/mpegtsbase.c: tsdemux: Don't trigger a program change when falling back to ignore-pcr behaviour Since commit a79a756b79aa1675e we could change to ignore-pcr automatically at 500ms into a live stream when no PCR is seen by then. However the stream counting in program change detection was wrongly considering ignore-pcr programs to have a separate PCR PID, even though we are actually ignoring the PCR PID completely, resulting in an erroneous program switch getting triggered from the different stream count. This in turn would send an EOS and switch out the pads for what actually is still the same program, while we intended to simply apply a workaround for broken encoders. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3060> 2022-09-27 19:46:28 +0530 Nirbheek Chauhan <nirbheek@centricular.com> * meson.build: meson: Remove builtin variable datadir from pkgconfig variables Fixes warning with meson 0.62: gst-plugins-bad| subprojects/gst-plugins-bad/meson.build:546: WARNING: Project targets '>= 0.62' but uses feature deprecated since '0.62.0': pkgconfig.generate variable for builtin directories. They will be automatically included when referenced and more. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3086> 2022-09-22 09:14:57 +0530 Nirbheek Chauhan <nirbheek@centricular.com> * tests/interactive/pitch-test.c: bad/soundtouch: Fix interactive test build on MSVC Needed for https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/930 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3064> 2022-09-21 19:19:45 +0530 Nirbheek Chauhan <nirbheek@centricular.com> * meson.build: meson: Use implicit builtin dirs in pkgconfig generation Starting with Meson 0.62, meson automatically populates the variables list in the pkgconfig file if you reference builtin directories in the pkgconfig file (whether via a custom pkgconfig variable or elsewhere). We need this, because ${prefix}/libexec is a hard-coded value which is incorrect on, for example, Debian. Bump requirement to 0.62, and remove version compares that retained support for older Meson versions. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1245 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3061> 2022-09-20 13:38:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabaseenc.c: vabaseenc: Move out encoder validation from assertion. Assertion can be disabled at compilation time. Still it's important to validate it the encoder object was opened by the subclass. This patch removes the assertion and returns if the encoder is open. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3051> 2022-09-12 09:46:43 -0400 Xavier Claessens <xavier.claessens@collabora.com> * tools/meson.build: meson: Set install_tag on some targets Trying to follow recommendation from Meson documentation: https://mesonbuild.com/Installing.html#installation-tags Move tools into 'bin' or 'bin-devel' categories to keep only libs and plugins in the default 'runtime' category. This simplifies distribution of GStreamer application skipping parts that are not needed, similarly to what Cerbero does by hardcoding huge list of files. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3017> 2022-09-20 16:21:24 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkav1enc.c: msdkav1enc: We should not set other alignment here According to spec, we have 32bit alignment for height (progressive) and 16bit alignment for width, so here we don't need to add other alignment settings. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3050> 2022-09-17 17:49:47 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvah264enc.c: va: h264enc: Fix rate control enum register failure for the second GPU. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3041> 2022-09-17 10:14:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Avoid precision lost by just rounding up. The code where dividing by 16 and later multiplying by 16, which is spurious and a potential loose of precision. 2022-09-16 14:17:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Update AUD property if driver can't handle raw data. 2022-09-16 13:55:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Remove unused dispose method. 2022-09-16 15:45:11 -0400 Eric Knapp <emkman99@gmail.com> * sys/va/gstvadeinterlace.c: vadeinterlace: Fix passthrough latency query Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3038> 2022-09-17 05:01:55 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvh265dec.c: nvh265sldec: Sync up with d3d11h265dec implementation Each RefPicSetStCurrBefore/RefPicSetStCurrAfter/RefPicSetLtCurr array might have empty element (i.e., reference pictures might not be stored sequentially). Don't error out for the empty element case, but instead, iterates each array and fill NVDEC's reference list as much as possible Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1441 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3039> 2022-09-16 12:50:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabaseenc.c: * sys/va/gstvabaseenc.h: * sys/va/gstvah264enc.c: va: baseenc: Fix gobject style for chained method. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3035> 2022-09-13 23:20:54 +0900 Seungha Yang <seungha@centricular.com> * gst/codectimestamper/gsth264timestamper.c: * gst/codectimestamper/gsth265timestamper.c: codectimestamper: Update document Add more description about those elements Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3021> 2022-06-09 22:32:16 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvaav1dec.c: va: av1dec: user internal buffer pool for non output layers. The AV1 support multi spatial layers within one TU with different resolutions, and only the highest spatial layer need to be output. For example, there are two spatial layer, base level is 800x600 and higher level is 1920x1080. We need to decode both because the higher level needs base layer as reference, but we only need to output 1920x1080 frames here. The current manner always renegotiates the caps once we detect the current picture resolution changes, so we renegotiate again and again between different layers. That's a big waste and has very low performance. We now only do the renegotiation for the highest output layer. For other non output layers, we just keep a internal buffer pool which is big enough to handle the surface allocation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2382> 2022-05-12 10:12:37 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/codecs/gstav1decoder.c: * gst-libs/gst/codecs/gstav1decoder.h: codecs: av1decoder: Add the highest_spatial_layer field. As SPEC says, when multi spatial layer exists, we should only output one frame with the highest spatial id from each TU. We now store the highest spatial layer information in the base class in order to let the sub class handle different layers easily. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2382> 2022-09-15 00:52:14 +0000 Devin Anderson <danderson@microsoft.com> * ext/voamrwbenc/gstvoamrwbenc.c: * tests/check/elements/voamrwbenc.c: * tests/check/meson.build: voamrwbenc: Fix truncation of audio data at end-of-stream when audio data doesn't align on 20 millisecond frame size. The AMR-WB codec imposes a fixed 20 millisecond frame size. In its current form, the `voamrwbenc` plugin deals with this limitation by discarding any audio at the end of the stream that falls short of 20 milliseconds. This patch keeps the audio data, and appends silence to the end to preserve frame size alignment. The patch also adds tests to check for the updated behavior. I noticed that tests weren't being built, so I changed the build to allow for building the tests when the `tests` and `voamrwbenc` options are set. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3027> 2022-09-15 21:56:27 +0900 Seungha Yang <seungha@centricular.com> * gst/codectimestamper/gstcodectimestamper.c: codectimestamper: Fix for unknown framerate Use default framerate if numerator or denominator is unknown Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3031> 2022-08-26 08:43:34 -0400 Thibault Saunier <tsaunier@igalia.com> * docs/plugins/gst_plugins_cache.json: * sys/qsv/plugin.cpp: Build documentation for rust plugins - Update the docker image we use, starting using the standard one adding `gtk4-doc` as required by rust plugins - Update the plugins_doc_caches as required, some more plugins are built with the new image - Install ninja from pip as the version from F31 is too old - Avoid buildings all GSreamer plugins when building the doc as it takes time and resources for no good reason - Stop linking to `GInstanceInitFunc` as it is not present in latest GLib documentation, leading to warnings in hotdoc. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2954> 2022-08-29 10:17:45 -0400 Thibault Saunier <tsaunier@igalia.com> * docs/meson.build: doc: Do not build plugins to build the doc It is not actually necessary Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2954> 2022-09-15 12:14:56 +0100 Tim-Philipp Müller <tim@centricular.com> * tests/check/meson.build: tests: add a few more orc tests Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3029> 2022-09-14 00:58:37 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvdec.c: nvdec: Fix for HEVC decoding when coded resolution is larger than display resolution As documented in the SDK header, we should set coded width/height values to the corresponding decoder configuration option, instead of display resolution Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1438 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3022> 2022-09-13 04:06:02 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudamemorycopy.c: cudaupload,cudadownload: Fix document * Fix typo, NVIDA -> NVIDIA * Add cudadownload doc to the source file Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3018> 2022-09-13 01:02:55 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudamemorycopy.c: cudaupload,cudadownload: Use shared GstD3D11Device context if possible Handle d3d11 device context in set_context() method with additional device compatibility check so that only NVIDIA GPU associated d3d11 device can be configured in the element. And clear old d3d11 device per set_info() for d3d11 device to be updated as well. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3018> 2022-09-13 01:02:50 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/cuda/cuda-gst.h: * gst-libs/gst/cuda/gstcudacontext.c: * gst-libs/gst/cuda/gstcudaloader.c: * gst-libs/gst/cuda/gstcudautils.c: * gst-libs/gst/cuda/gstcudautils.h: * gst-libs/gst/cuda/meson.build: * gst-libs/gst/cuda/stub/cuda.h: * gst-libs/gst/cuda/stub/cudaD3D11.h: cuda: Remove GST_CUDA_HAS_D3D define from header ... and fix d3d11 specific enum type name GST_CUDA_HAS_D3D is a build time define which indicates whether GstD3D11 library is available or not, but DirectX SDK headers must be available on the build system already. Expose Direct3D related symbols if the build target is Windows (i.e., if G_OS_WIN32 is defined) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3018> 2021-03-24 14:20:18 -0500 Zebediah Figura <z.figura12@gmail.com> * meson.build: meson: Build with -Wl,-z,nodelete to prevent unloading of dynamic libraries and plugins GLib made the unfortunate decision to prevent libgobject from ever being unloaded, which means that now any library which registers a static type can't ever be unloaded either (and any library that depends on those, ad nauseam). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/778> 2022-06-06 10:56:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * docs/plugins/gst_plugins_cache.json: va: Remove from plugin cache. GstVA is not currently build by CI, because libva version is lower than expected. So, the gstva library is not build, thus some symbols aren't documented, breaking the documentation CI. To move things forward, let's just remove temporarly the va plugins from cache. While we decide on how to update the libva package in the CI. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1025> 2022-06-27 18:56:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/gstvaallocator.h: va: allocator: Fix parameter name to match signature. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1025> 2022-02-07 17:34:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * docs/libs/va/index.md: * docs/libs/va/sitemap.txt: * gst-libs/gst/va/gstva.h: * gst-libs/gst/va/gstvaallocator.c: * gst-libs/gst/va/gstvaallocator.h: * gst-libs/gst/va/gstvadisplay.c: * gst-libs/gst/va/gstvapool.c: * gst-libs/gst/va/gstvasurfacecopy.h: * gst-libs/gst/va/gstvautils.c: * gst-libs/gst/va/gstvavideoformat.c: * gst-libs/gst/va/meson.build: * sys/va/gstjpegdecoder.c: * sys/va/gstjpegdecoder.h: * sys/va/gstvabasetransform.c: * sys/va/gstvacompositor.c: * sys/va/gstvafilter.c: * sys/va/gstvah264enc.c: va: Complete library and plugin documentation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1025> 2022-09-13 14:46:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/gstva.h: * gst-libs/gst/va/meson.build: * sys/va/gstvabasedec.c: * sys/va/gstvacaps.c: * sys/va/gstvadecoder.c: * sys/va/gstvadisplay_priv.c: * sys/va/gstvaencoder.c: * sys/va/gstvafilter.c: * sys/va/gstvah264enc.c: * sys/va/gstvajpegdec.c: va: Move gstvavideoformat out of library headers. Since it's no needed for API consumers. Though it can be added later. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1025> 2021-10-03 10:17:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * docs/meson.build: * gst-libs/gst/va/meson.build: docs: Generate libgstva GI and pkg-config. Currently libgstva is only exposed internally to gst-plugins-bad. No headers are installed, no documentation generated, pkgconfig file, neither gobject-introspection files. This patch turn on all that. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1025> 2022-05-19 00:44:40 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * gst/codectimestamper/gstcodectimestamper.c: * gst/codectimestamper/gstcodectimestamper.h: * gst/codectimestamper/gsth264timestamper.c: * gst/codectimestamper/gsth264timestamper.h: * gst/codectimestamper/gsth265timestamper.c: * gst/codectimestamper/gsth265timestamper.h: * gst/codectimestamper/meson.build: * gst/codectimestamper/plugin.c: * gst/meson.build: * meson_options.txt: Add H.264/H.265 timestamp correction element Adding {h264,h265}timestamper element to correct timestamp of encoded frames. This initial version supports only DTS correction based on given PTS and SPS data. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2580> 2022-09-07 11:22:45 -0400 Thibault Saunier <tsaunier@igalia.com> * gst/debugutils/gsttestsrcbin.c: * tests/validate/meson.build: * tests/validate/testsrcbin/caps_spec.validatetest: * tests/validate/testsrcbin/caps_spec/flow-expectations/log-testsrcbin0-video_src_0-expected: testsrcbin: Add a way to specify caps for the output of the sources Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3007> 2022-09-08 17:29:37 -0400 Thibault Saunier <tsaunier@igalia.com> * gst/debugutils/gsttestsrcbin.c: testsrcbin: Plug some leaks Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3007> 2020-11-19 18:34:00 -0300 Thibault Saunier <tsaunier@igalia.com> * docs/plugins/gst_plugins_cache.json: * gst/debugutils/gsttestsrcbin.c: testsrcbin: Add an 'expose-sources-async' property Which allows simluating usual source which require decoding etc in decodebin for example Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3007> 2022-09-05 18:32:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvajpegdec.c: vajpegdec: Enhance explanation comment. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2948> 2022-09-06 14:53:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvacaps.c: va: caps: Use G_STMT_START / END Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2948> 2022-09-05 16:59:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvajpegdec.c: vajpegdec: Check if driver has internal color conversion. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2948> 2022-09-06 18:49:02 +0200 Mathieu Duponchelle <mathieu@centricular.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: fix picking available payload types When picking an available payload type, we need to pick one that is available across all media. The previous code, when multiple media were present, looked at the first one, noticed it had pt 96 as the media pt, then simply looked at the next media, noticed it didn't, and decided 96 was available. Instead, check if the pt is used by any of the media, if it is, decide it is not available and go to the next pt. I'm fairly sure that was the original intent. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2984> 2022-08-03 19:36:11 +0300 Jordan Petridis <jordan@centricular.com> * ext/fluidsynth/gstfluiddec.c: fluidsynth: correctly version guard methods We bumped the minimum version to 2.1 but the api we used wasn't introduced till version 2.2 of fluidsynth Follow-up to gstreamer/gstreamer!2718 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2718 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2835> 2022-08-21 03:37:40 +1000 Jan Schmidt <jan@centricular.com> * ext/dash/gstdashdemux.c: * ext/dash/gstdashdemux.h: * ext/dash/gstmpdclient.c: * ext/dash/gstmpdclient.h: dashdemux: Preserve current representation on live manifest updates When updating a manifest during live playback, preserve the current representation for each stream. During update_fragment_info, if the current representation changed because it couldn't be matched, trigger a caps change and new header download. This reverts commit e0e1db212fd0df2239583b9099fc4361adeded05 and reapplies "dashdemux: Fix issue when manifest update sets slow start without passing necessary header & caps changes downstream" with changes. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/507 Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1729 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2920> 2022-09-02 09:55:20 +0000 Florian Zwoch <fzwoch@gmail.com> * sys/va/plugin.c: va: Fix log message when registering H264 encoder. The log message would report an error for the H264 decoder when registering failed, but we tried to register the H264 encoder instead. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2974> 2022-07-05 17:14:37 -0400 Olivier Crête <olivier.crete@collabora.com> * ext/webrtc/gstwebrtcbin.c: * tests/check/elements/webrtcbin.c: webrtcbin: Allow locked mlines with no caps, as the last ones Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2439> 2022-05-16 18:05:25 -0400 Olivier Crête <olivier.crete@collabora.com> * ext/webrtc/gstwebrtcbin.c: * tests/check/elements/webrtcbin.c: webrtcbin: Reject creating an offer if a locked mline has no caps This avoids getting in a bunch of corner cases. We'd have to insert a "rejected" line from the start as a place-holder to get around this, but the rest of the code just becomes more complicated, so just disallow it for now. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2439> 2022-05-16 17:17:13 -0400 Olivier Crête <olivier.crete@collabora.com> * ext/webrtc/gstwebrtcbin.c: * ext/webrtc/webrtctransceiver.c: * ext/webrtc/webrtctransceiver.h: * tests/check/elements/webrtcbin.c: webrtcbin: Store pending mid to make create-offer idempotent If the mid is not stored in the transceiver, but it is stored in last_offer, then a further create-offer call will just ignore that transceiver. Also include unit test for ensure it doesn't regress. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2439> 2022-05-26 18:17:16 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkvpp.c: * sys/msdk/gstmsdkvpp.h: msdkvpp: Add va memory when fixating src caps Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498> 2022-06-08 12:31:56 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkvpp.c: * sys/msdk/gstmsdkvpp.h: msdkvpp : Use va pool at linux path and system pool for windows We use msdkvpp's own pool to allocate buffers instead of external frame allocator mfxFrameAllocator. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498> 2022-05-09 18:34:38 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkallocator.h: * sys/msdk/gstmsdkallocator_libva.c: * sys/msdk/gstmsdkvpp.c: msdkvpp: Import buffer to msdk_surface If the buffer is not msdk_buffer, we can try to directly import the attached memory (i.e. va mem and dmabuf mem) by applying the common uitl function: import_to_msdk_function (). Here add a flag "from_qdata" in GstMsdkSurface to handle the cropping case, we should avoid updating the crop values when msdk_surface is from the memory's qdata, because the crop info from this surface is the already updated one. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498> 2022-05-09 18:19:01 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkvpp.c: msdkvpp: Add va caps at sink and src pad Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498> 2022-08-25 17:28:36 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkenc.c: msdkenc: Apply common util func to import mem as msdk_surface Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498> 2022-05-27 17:56:33 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkallocator.c: * sys/msdk/gstmsdkallocator.h: * sys/msdk/gstmsdkallocator_libva.c: * sys/msdk/gstmsdkallocator_libva.h: * sys/msdk/meson.build: * sys/msdk/msdk.h: msdk: Add help functions to get mfxFrameSurface1 from GstBuffer and wrap it as GstMsdkSurface Note that the memory abstraction for system memory is for windows path. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498> 2022-05-19 19:18:21 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkenc.c: * sys/msdk/msdk.c: * sys/msdk/msdk.h: msdkenc: Use va pool on linux and system pool for windows Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498> 2022-05-19 18:57:50 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkenc.c: msdkenc: Directly import dmabuf memory as mfx surface When input buffer is of dmabuf memory but not a msdk buffer (i.e., the allocator is not msdk_allocator), then we can try to get fd of this mem, create the corresponding va surface and wrap it as mfx surface. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498> 2022-04-21 17:27:09 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkenc.c: msdkenc: Directly import va memory as mfx surface If input buffer is of va memory, we can directly obtain va surface from the buffer and wrap it as mfx surface. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498> 2022-03-03 10:07:19 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdk_va.c: * sys/msdk/gstmsdk_va.h: * sys/msdk/gstmsdkenc.c: * sys/msdk/meson.build: msdk: Use va libs API to get VA surface from buffer Direct apply gst_va_buffer_get_surface to get VASurface from a buffer, so remove corresponding functions which are not used. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498> 2022-09-01 15:11:31 -0400 Thibault Saunier <tsaunier@igalia.com> * ext/aes/meson.build: * ext/aom/meson.build: * ext/assrender/meson.build: * ext/avtp/meson.build: * ext/bs2b/meson.build: * ext/bz2/meson.build: * ext/chromaprint/meson.build: * ext/closedcaption/meson.build: * ext/colormanagement/meson.build: * ext/curl/meson.build: * ext/dash/meson.build: * ext/dc1394/meson.build: * ext/directfb/meson.build: * ext/dtls/meson.build: * ext/dts/meson.build: * ext/faac/meson.build: * ext/faad/meson.build: * ext/fdkaac/meson.build: * ext/flite/meson.build: * ext/fluidsynth/meson.build: * ext/gme/meson.build: * ext/gs/meson.build: * ext/gsm/meson.build: * ext/gtk/meson.build: * ext/hls/meson.build: * ext/iqa/meson.build: * ext/isac/meson.build: * ext/kate/meson.build: * ext/ladspa/meson.build: * ext/ldac/meson.build: * ext/libde265/meson.build: * ext/lv2/meson.build: * ext/mdns/meson.build: * ext/modplug/meson.build: * ext/mpeg2enc/meson.build: * ext/mplex/meson.build: * ext/musepack/meson.build: * ext/neon/meson.build: * ext/onnx/meson.build: * ext/openal/meson.build: * ext/openaptx/meson.build: * ext/opencv/meson.build: * ext/openexr/meson.build: * ext/openh264/meson.build: * ext/openjpeg/meson.build: * ext/openmpt/meson.build: * ext/openni2/meson.build: * ext/opus/meson.build: * ext/qroverlay/meson.build: * ext/resindvd/meson.build: * ext/rsvg/meson.build: * ext/rtmp/meson.build: * ext/sbc/meson.build: * ext/sctp/meson.build: * ext/smoothstreaming/meson.build: * ext/sndfile/meson.build: * ext/soundtouch/meson.build: * ext/spandsp/meson.build: * ext/srt/meson.build: * ext/srtp/meson.build: * ext/svthevcenc/meson.build: * ext/teletextdec/meson.build: * ext/ttml/meson.build: * ext/voaacenc/meson.build: * ext/voamrwbenc/meson.build: * ext/vulkan/meson.build: * ext/wayland/meson.build: * ext/webp/meson.build: * ext/webrtc/meson.build: * ext/webrtcdsp/meson.build: * ext/wildmidi/meson.build: * ext/wpe/meson.build: * ext/x265/meson.build: * ext/zbar/meson.build: * ext/zxing/meson.build: * gst/accurip/meson.build: * gst/adpcmdec/meson.build: * gst/adpcmenc/meson.build: * gst/aiff/meson.build: * gst/asfmux/meson.build: * gst/audiobuffersplit/meson.build: * gst/audiofxbad/meson.build: * gst/audiolatency/meson.build: * gst/audiomixmatrix/meson.build: * gst/audiovisualizers/meson.build: * gst/autoconvert/meson.build: * gst/bayer/meson.build: * gst/camerabin2/meson.build: * gst/codecalpha/meson.build: * gst/coloreffects/meson.build: * gst/debugutils/meson.build: * gst/dvbsubenc/meson.build: * gst/dvbsuboverlay/meson.build: * gst/dvdspu/meson.build: * gst/faceoverlay/meson.build: * gst/festival/meson.build: * gst/fieldanalysis/meson.build: * gst/freeverb/meson.build: * gst/frei0r/meson.build: * gst/gaudieffects/meson.build: * gst/gdp/meson.build: * gst/geometrictransform/meson.build: * gst/id3tag/meson.build: * gst/inter/meson.build: * gst/interlace/meson.build: * gst/ivfparse/meson.build: * gst/ivtc/meson.build: * gst/jp2kdecimator/meson.build: * gst/jpegformat/meson.build: * gst/librfb/meson.build: * gst/midi/meson.build: * gst/mpegdemux/meson.build: * gst/mpegpsmux/meson.build: * gst/mpegtsdemux/meson.build: * gst/mpegtsmux/meson.build: * gst/mxf/meson.build: * gst/netsim/meson.build: * gst/onvif/meson.build: * gst/pcapparse/meson.build: * gst/pnm/meson.build: * gst/proxy/meson.build: * gst/rawparse/meson.build: * gst/removesilence/meson.build: * gst/rist/meson.build: * gst/rtmp2/meson.build: * gst/rtp/meson.build: * gst/sdp/meson.build: * gst/segmentclip/meson.build: * gst/siren/meson.build: * gst/smooth/meson.build: * gst/speed/meson.build: * gst/subenc/meson.build: * gst/switchbin/meson.build: * gst/timecode/meson.build: * gst/transcode/meson.build: * gst/videofilters/meson.build: * gst/videoframe_audiolevel/meson.build: * gst/videoparsers/meson.build: * gst/videosignal/meson.build: * gst/vmnc/meson.build: * gst/y4m/meson.build: * meson.build: * sys/amfcodec/meson.build: * sys/androidmedia/meson.build: * sys/applemedia/meson.build: * sys/asio/meson.build: * sys/bluez/meson.build: * sys/d3d11/meson.build: * sys/d3dvideosink/meson.build: * sys/decklink/meson.build: * sys/directshow/meson.build: * sys/directsound/meson.build: * sys/dvb/meson.build: * sys/fbdev/meson.build: * sys/ipcpipeline/meson.build: * sys/kms/meson.build: * sys/magicleap/meson.build: * sys/mediafoundation/meson.build: * sys/msdk/meson.build: * sys/nvcodec/meson.build: * sys/opensles/meson.build: * sys/qsv/meson.build: * sys/shm/meson.build: * sys/tinyalsa/meson.build: * sys/uvch264/meson.build: * sys/v4l2codecs/meson.build: * sys/va/meson.build: * sys/wasapi/meson.build: * sys/wasapi2/meson.build: * sys/wic/meson.build: * sys/winks/meson.build: * sys/winscreencap/meson.build: meson: Call pkgconfig.generate in the loop where we declare plugins dependencies Removing some copy pasted code Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970> 2022-09-01 11:51:48 -0400 Thibault Saunier <tsaunier@igalia.com> * docs/meson.build: * gst-libs/gst/adaptivedemux/meson.build: * gst-libs/gst/audio/meson.build: * gst-libs/gst/codecparsers/meson.build: * gst-libs/gst/codecs/meson.build: * gst-libs/gst/cuda/meson.build: * gst-libs/gst/d3d11/meson.build: * gst-libs/gst/insertbin/meson.build: * gst-libs/gst/interfaces/meson.build: * gst-libs/gst/mpegts/meson.build: * gst-libs/gst/opencv/meson.build: * gst-libs/gst/play/meson.build: * gst-libs/gst/player/meson.build: * gst-libs/gst/sctp/meson.build: * gst-libs/gst/transcoder/meson.build: * gst-libs/gst/uridownloader/meson.build: * gst-libs/gst/va/meson.build: * gst-libs/gst/vulkan/meson.build: * gst-libs/gst/wayland/meson.build: * gst-libs/gst/webrtc/meson.build: * gst-libs/gst/webrtc/nice/meson.build: * meson.build: meson: Namespace the plugins_doc_dep/libraries variables Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970> 2022-09-01 10:28:13 -0400 Thibault Saunier <tsaunier@igalia.com> * gst-libs/gst/cuda/meson.build: cuda: meson: Fix generating GstCuda gir file against gstreamer-full Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970> 2022-08-31 18:44:14 -0400 Thibault Saunier <tsaunier@igalia.com> * meson.build: meson: Rename plugins list and make them "dependency" objects Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970> 2022-08-30 05:02:31 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11memory.cpp: d3d11memory: Fix GstAllocator::mem_copy() implementation We were checking possible bind flags for the DXGI format of the source texture but that's never applied to the destination texture desc. Just use the already configured bind (and misc) flags of source texture for the destination texture allocation without additional check. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2950> 2022-08-24 08:22:49 +0200 Robert Rosengren <robertr@axis.com> * ext/curl/gstcurlbasesink.c: * ext/curl/gstcurlbasesink.h: curlbasesink: gst_curl_base_sink_transfer_thread_close is internal gst_curl_base_sink_transfer_thread_close is moved from external header to be static function, as it has no users. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2732> 2022-07-07 09:20:04 +0200 Robert Rosengren <robertr@axis.com> * docs/plugins/gst_plugins_cache.json: * ext/curl/gstcurlhttpsink.c: * ext/curl/gstcurlhttpsink.h: curlhttpsink: Only set MIME as content-type if not set by property Setting the content-type property shall override internally detected MIME types, to make it possible to do as following example (where audio/basic to be used prior to audio/x-mulaw): gst-launch-1.0 ... ! mulawenc ! audio/x-mulaw,rate=8000,channels=1 ! curlhttpsink location=<url> content-type=audio/basic Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2732> 2022-08-26 00:16:56 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11-private.h: * gst-libs/gst/d3d11/gstd3d11bufferpool.cpp: * gst-libs/gst/d3d11/gstd3d11bufferpool.h: * gst-libs/gst/d3d11/gstd3d11compile.cpp: * gst-libs/gst/d3d11/gstd3d11converter.cpp: * gst-libs/gst/d3d11/gstd3d11converter.h: * gst-libs/gst/d3d11/gstd3d11device.cpp: * gst-libs/gst/d3d11/gstd3d11device.h: * gst-libs/gst/d3d11/gstd3d11format.cpp: * gst-libs/gst/d3d11/gstd3d11format.h: * gst-libs/gst/d3d11/gstd3d11memory.cpp: * gst-libs/gst/d3d11/gstd3d11memory.h: * gst-libs/gst/d3d11/gstd3d11utils.cpp: * sys/d3d11/gstd3d11pluginutils.h: d3d11: Update library doc * Private header name is changed to gstd3d11-private.h to follow naming convention * Add Since mark everywhere * Update member variable names to be consistent with the other object implementations in this library * Correct outdated documentation Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2945> 2022-08-25 14:24:25 +0200 Piotr Brzeziński <piotr@centricular.com> * sys/applemedia/avfvideosrc.m: avfvideosrc: Fix wrong default framerate value Current default G_MAXINT is not a correct value under any circumstances. This creates an issue with screen capture, during which we currently do not get any framerate info causing G_MAXINT to show up, where elements downstream can possibly misbehave - for example, `vtenc` causes a kernel panic. Replace with 30/1 to avoid such scenarios. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2944> 2022-08-25 15:28:21 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstjpegdecoder.c: jpegdecoder: return the real error of decode_scan and decode_frame. The current handle_frame() does not return the real error that happens in decode_scan and decode_frame, which makes the pipeline continue with the error and may trigger asserting later. We also return the error when decode_quant_table or decode_huffman_table fails. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2938> 2022-08-19 21:54:48 +0900 Seungha Yang <seungha@centricular.com> * tests/examples/d3d11/d3d11videosink-present.cpp: * tests/examples/d3d11/meson.build: examples: d3d11videosink: Add present signal example Add an example to show the usage of present singal. In this example, a text overlay with alpha blended background will be rendered on swapchain's backbuffer by using Direct3D11, Direct2D, and DirectWrite APIs. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2923> 2022-08-24 00:13:21 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11videosink.cpp: * sys/d3d11/gstd3d11window.cpp: * sys/d3d11/gstd3d11window.h: * sys/d3d11/gstd3d11window_dummy.cpp: d3d11videosink: Add display-format property Make swapchian's display format configurable, since some DXGI formats we can use for swapchain are not API interop compatible. For instance, BGRA format should be used for Direct2D interop. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2923> 2022-08-19 20:25:31 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11videosink.cpp: * sys/d3d11/gstd3d11window.cpp: * sys/d3d11/gstd3d11window.h: * sys/d3d11/gstd3d11window_corewindow.cpp: * sys/d3d11/gstd3d11window_swapchainpanel.cpp: * sys/d3d11/gstd3d11window_win32.cpp: d3d11videosink: Add present signal The "present" signal will be emitted just before the IDXGISwapChain::Present() call. The client can perform additional GPU operation with given GstD3D11Device object and ID3D11RenderTargetView handle. Or, the client can read back the scene to be displayed on window using the signal. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2923> 2022-08-19 04:49:53 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gsth265decoder.c: h265decoder: Update SpsMaxLatencyPictures properly The SpsMaxLatencyPictures value never gets back to zero even if it's needed. Update the value properly. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2915> 2022-08-19 04:44:48 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gsth265decoder.c: h265decoder: Reorganize debug printing As of the MR https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575 gst_h265_decoder_process_sps() is called per slice and it causes noisy debug message print. Reorganize related and the other debug printings at once. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2915> 2022-08-20 16:15:15 +0100 Philippe Normand <philn@igalia.com> * ext/openh264/gstopenh264dec.cpp: * ext/openh264/gstopenh264enc.cpp: openh264: Register debug categories earlier Otherwise the GST_ERROR message logged in case of ABI mismatch would be done on an uninitialized category. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2918> 2022-08-20 16:57:27 +0100 Philippe Normand <philn@igalia.com> * ext/openh264/gstopenh264enc.cpp: openh264enc: Fix constrained-high encoding constrained-high is high without B-frames, there is no EProfileIdc for this, so assume high instead of hitting an assert down the line. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2919> 2022-08-19 09:07:50 -0400 Thibault Saunier <tsaunier@igalia.com> * gst-libs/gst/webrtc/ice.c: * gst-libs/gst/webrtc/ice.h: * gst-libs/gst/webrtc/nice/nice.c: webrtc:ice: Fix candidate stats related APIs for bindings null-terminated arrays of structures is not usable. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2917> 2022-08-18 13:27:02 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvah265dec.c: va: h265dec: Enable the scc_main_4:4:4_10 profile. We should enable this profile which is already allown in vaprofile.c after libva 1.8 version. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2909> 2022-07-06 09:08:17 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com> * docs/plugins/gst_plugins_cache.json: * sys/kms/gstkmssink.c: * sys/kms/gstkmssink.h: kmssink: add fd property This allows an application to provide their own opened DRM device fd handle to kmssink. For example, an application can lease multiple fd's from a DRM master to display on different CRTC outputs at the same time with multiple kmssink instances. Specifying the fd property is not allowed when driver-name and/or bus-id properties are specified. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2807> 2022-08-19 00:05:17 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11deinterlace.cpp: * sys/d3d11/gstd3d11screencapture.cpp: * sys/d3d11/gstd3d11videosink.cpp: d3d11: Use CRITICAL_SECTION instead of GRecMutex The GRecMutex abstraction (and heap allocation happens in GLib) is unnecessary for this plugin. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2914> 2022-08-17 11:18:54 -0400 Thibault Saunier <tsaunier@igalia.com> * gst-libs/gst/webrtc/webrtc_fwd.h: webrtc: doc: Cleanup Since markers We hide some newly public symbols when moving some objects to the library which was not really correct in the end. Properly add the Since markers as needed. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2891> 2022-08-16 08:59:00 -0400 Thibault Saunier <tsaunier@igalia.com> * gst-libs/gst/webrtc/ice.h: webrtc:ice: Reindent header Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2891> 2022-08-15 21:27:06 -0400 Thibault Saunier <tsaunier@igalia.com> * gst-libs/gst/webrtc/ice.h: webrtc:ice: Mark protected fields as such Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2891> 2022-08-15 21:25:25 -0400 Thibault Saunier <tsaunier@igalia.com> * gst-libs/gst/webrtc/datachannel.c: * gst-libs/gst/webrtc/dtlstransport.c: * gst-libs/gst/webrtc/ice.c: * gst-libs/gst/webrtc/icestream.c: * gst-libs/gst/webrtc/icetransport.c: * gst-libs/gst/webrtc/rtpreceiver.c: * gst-libs/gst/webrtc/rtpsender.c: * gst-libs/gst/webrtc/rtptransceiver.c: webrtc: Fix documentaton moving symbols in the right pages As those symbols are documented in a 'fwd' header smart indexing in hotdoc wasn't working. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2891> 2022-08-15 11:52:50 -0400 Thibault Saunier <tsaunier@igalia.com> * gst-libs/gst/webrtc/ice.c: * gst-libs/gst/webrtc/ice.h: * gst-libs/gst/webrtc/nice/nice.c: webrtc:ice: Avoid using GArray in public API And use plain null terminated C arrays instead. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2891> 2022-08-15 11:37:57 -0400 Thibault Saunier <tsaunier@igalia.com> * gst-libs/gst/webrtc/ice.c: webrtc:ice: Fix some annotations Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2891> 2022-08-15 11:36:25 -0400 Thibault Saunier <tsaunier@igalia.com> * gst-libs/gst/webrtc/ice.c: * gst-libs/gst/webrtc/ice.h: webrtc: Make GstWebRTCIceCandidateStats a Boxed type Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2891> 2022-08-14 17:38:24 -0400 Thibault Saunier <tsaunier@igalia.com> * gst-libs/gst/webrtc/ice.h: webrtc:ice: Add padding to structures Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2891> 2022-08-14 21:49:27 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/cuda/cuda-gst.h: * gst-libs/gst/cuda/gstcudanvrtc.c: * gst-libs/gst/cuda/gstcudanvrtc.h: * gst-libs/gst/cuda/gstnvrtcloader.c: * gst-libs/gst/cuda/gstnvrtcloader.h: * gst-libs/gst/cuda/meson.build: * sys/nvcodec/gstcudafilter.c: cuda: Hide runtime compiler related header and symbols That's already abstracted via gst_cuda_nvrtc_compile() method and therefore, we do not need to expose such symbols yet. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2884> 2022-08-17 12:22:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvajpegdec.c: vajpegdec: Fix memory leak. Free value content. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2899> 2022-08-16 20:05:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvajpegdec.c: vajpegdec: Fix 4:2:2 for i965. Since i965 uses NV12 either for 4:2:0 and 4:2:2 chroma (using an internal color conversion) the chroma validation has to be shortcut. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2899> 2022-08-16 19:50:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/gstvavideoformat.c: va: libs: Add Y42B format. Enable 4:2:2 JPEG decoding in iHD. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2899> 2022-08-16 16:06:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/gstvavideoformat.c: * gst-libs/gst/va/gstvavideoformat.h: * sys/va/gstvacaps.c: va: Validate JPEG subsampling configurations. There are Mesa Gallium drivers that report subsampling but without any pixel format. So, strip out these subsamplings. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2899> 2022-08-16 14:45:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvadecoder.c: * sys/va/gstvaencoder.c: va: gst_va_create_raw_caps_from_config() may return NULL. This patch verifies if the function returns NULL in the caller. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2899> 2022-08-17 11:42:09 -0400 Eric Knapp <emkman99@gmail.com> * sys/decklink/gstdecklink.cpp: * sys/decklink/gstdecklink.h: * sys/decklink/gstdecklinkvideosrc.cpp: decklink: Validate video input format Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2892> 2022-08-15 11:23:56 -0400 Eric Knapp <emkman99@gmail.com> * sys/decklink/gstdecklink.cpp: decklink: Auto-detect 10-bit YUV Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2892> 2022-08-14 22:31:29 -0400 Daniel Morin <daniel.morin@collabora.com> * gst-libs/gst/play/gstplay-media-info.h: * gst-libs/gst/play/gstplay-signal-adapter.h: * gst-libs/gst/play/gstplay-video-overlay-video-renderer.h: * gst-libs/gst/play/gstplay-video-renderer.h: * gst-libs/gst/play/gstplay-visualization.h: gst-play: missing cleanup for g_autoptr Without this change cleanup function for g_autoptr is not defined for GstPlayMediaInfo, GstPlaySignalAdapter, GstPlayVideoRenderer, GstPlayVideoOverlayVideoRenderer and GstPlayVisualization. Cleanup function was defined in gstplay.h, but missing in other header files. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2888> 2022-08-16 21:01:47 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/meson.build: meson: d3d11: Fix missing header install Install gstd3d11compile.h header file Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2896> 2022-08-15 01:50:15 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11av1dec.cpp: * sys/d3d11/gstd3d11decoder.cpp: * sys/d3d11/gstd3d11decoder.h: * sys/d3d11/gstd3d11h264dec.cpp: * sys/d3d11/gstd3d11h265dec.cpp: * sys/d3d11/gstd3d11mpeg2dec.cpp: * sys/d3d11/gstd3d11vp8dec.cpp: * sys/d3d11/gstd3d11vp9dec.cpp: d3d11decoder: Do timer based DecoderBeginFrame retry ... instead of retry count based one, because the precision of Sleep() varies depending on system and application configuration. Also, don't retry DecoderBeginFrame if decoder is doing flush. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2886> 2022-08-14 21:18:24 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudamemorycopy.c: cudaupload,cudadownload: Don't simplify caps in transform_caps The simplified caps might not be a subset of filter caps and basetransform will complain about it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2883> 2022-08-15 00:22:14 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11decoder.cpp: d3d11decoder: Do not use miniobject qdata The miniobject qdata uses global mutex. Use ID3D11DeviceChild::{Set,Get}PrivateData methods instead. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2885> 2022-08-13 05:24:03 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: docs: Remove dxgiscreencapsrc from documentation The implementation was dropped in https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1750 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2878> 2022-08-13 12:24:37 +0300 Sebastian Dröge <sebastian@centricular.com> * gst-libs/gst/player/gstplayer-media-info.c: player: Don't leak wrapped video info Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1373 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2880> 2022-08-13 11:50:20 +0300 Sebastian Dröge <sebastian@centricular.com> * gst-libs/gst/play/gstplay.c: play: Make ownership of video-sink clearer in combination with floating references And correctly handle the case of VideoRenderer::create_video_sink() not actually returning a floating reference, which might be tricky for some bindings. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2880> 2022-08-13 11:49:08 +0300 Sebastian Dröge <sebastian@centricular.com> * gst-libs/gst/play/gstplay.c: play: Fix object construction Ideally new() functions should simply call g_object_new() and not much else, so let's do that here and handle all the construction properly in a GObject way. Now a play object created via g_object_new() is actually usable. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2880> 2022-08-13 11:39:59 +0300 Sebastian Dröge <sebastian@centricular.com> * gst-libs/gst/player/gstplayer.c: player: Fix object construction Ideally new() functions should simply call g_object_new() and not much else, so let's do that here and handle all the construction properly in a GObject way. Now a player object created via g_object_new() is actually usable. In addition, also fix the video-renderer property so that reading it returns an object of the correct type. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2880> 2022-08-13 11:30:35 +0300 Sebastian Dröge <sebastian@centricular.com> * gst-libs/gst/player/gstplayer.c: player: Release signal adapter on finalize Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2880> 2022-08-08 23:37:11 +0900 Seungha Yang <seungha@centricular.com> * gst/mxf/mxfaes-bwf.c: mxfdemux: Always calculate BlockAlign of raw audio Workaround for nBlockAlign and nBitsPerSample mismatch. Always use the formula described in the specification for BlockAlign value Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2864> 2022-08-12 22:05:36 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/meson.build: meson: d3d11: Fix build with GIR enabled ... and remove unused list Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2870> 2022-08-12 18:24:41 +0300 Matthias Clasen <mclasen@redhat.com> * gst-libs/gst/player/gstplayer.c: gstplayer: Plug a memory leak This was showing up as a memory leak in GTK's gstreamer media backend: 40 bytes in 1 blocks are definitely lost in loss record 18,487 of 40,868 at 0x484586F: malloc (vg_replace_malloc.c:381) by 0x50D5278: g_malloc (gmem.c:125) by 0x50EDBA5: g_slice_alloc (gslice.c:1072) by 0x50EFBCC: g_slice_alloc0 (gslice.c:1098) by 0x51F2F45: g_type_create_instance (gtype.c:1911) by 0x51DAE37: g_object_new_internal (gobject.c:2011) by 0x51DC080: g_object_new_with_properties (gobject.c:2181) by 0x51DCB20: g_object_new (gobject.c:1821) by 0x9855F86: UnknownInlinedFun (gstplayer-wrapped-video-renderer.c:109) by 0x9855F86: gst_player_new (gstplayer.c:579) Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1374 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2875> 2022-08-12 11:32:45 +0200 Corentin Damman <c.damman@intopix.com> * sys/d3d11/gstd3d11window.cpp: d3d11window: fix DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING swap chain flag for full screen Fixes #1372 (regression introduced in 5eeec165) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2866> 2022-08-10 11:12:37 +0100 Philippe Normand <philn@igalia.com> * ext/wpe/gstwpesrcbin.cpp: wpesrc: Switch URI handler to web+... protocols The web://http:// URIs were not compliant with RFC 3986. Using web+http:// allows us to use the GstUri parser to pass down a valid URI to `wpevideosrc`. Corresponding change for the CEF source element: https://github.com/centricular/gstcefsrc/commit/8d499495dd79cc0bf9a38ae82b03e374d78f68ae Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2856> 2022-08-09 12:24:53 +0200 Corentin Damman <c.damman@intopix.com> * sys/nvcodec/gstnvh264encoder.cpp: * sys/nvcodec/gstnvh265encoder.cpp: nvcodec: fix caps leaks in nvh264/h265encoder Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2850> 2022-08-09 12:29:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Set codec frame sync point if IDR This flag is used by GstVideoEncoder base class for certain configurations. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2852> 2022-08-09 12:28:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaencoder.c: * sys/va/gstvaencoder.h: * sys/va/gstvah264enc.c: vah264enc: Packed headers can be zero. A driver can report back no packed header support (VA_ENC_PACKED_HEADER_NONE). This patch removes that false verification. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2851> 2022-08-07 23:24:04 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11converter.cpp: * gst-libs/gst/d3d11/gstd3d11device.cpp: * sys/d3d11/gstd3d11convert.cpp: * sys/d3d11/gstd3d11decoder.cpp: * sys/d3d11/gstd3d11window_win32.cpp: d3d11: Use WIN32 API directly for locking with RAII pattern Such abstraction is unnecessary for this library/plugin. Use WIN32 API directly instead of GLib wrappers. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2848> 2022-08-07 22:41:07 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11_private.h: * gst-libs/gst/d3d11/gstd3d11memory.cpp: d3d11memory: Remove unnecessary locking * memory map/unmap is already protected by d3d11 device lock. Don't need to take another memory lock. * Use WIN32 critical section and slim reader/writer lock APIs directly instead of GLib wrappers. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2848> 2022-08-05 17:20:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Fix caps for mesa gallium. Radeon mesa gallium driver has a bug which adds P010_10LE sink caps format. This patch removes formats which arent 420 chroma. gst_caps_set_format_array() wasn't used because the fix traverse several structures with potential different formats. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2844> 2022-08-05 15:54:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264dec.c: * sys/va/gstvaprofile.c: vah264dec: Complete profiles in decoder. Instead of specifying all the H.264 "supported" profiles in the global hash table (used either by decoders and encoders), just complete them in the decoder only, since the encoder doesn't support them. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2844> 2022-08-05 22:34:06 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11pluginutils.cpp: * sys/d3d11/gstd3d11window.cpp: * sys/d3d11/gstd3d11window.h: * sys/d3d11/gstd3d11window_dummy.cpp: * sys/qsv/gstqsvallocator_d3d11.cpp: * tests/examples/d3d11/d3d11converter.cpp: * tests/examples/d3d11/d3d11videosink-appsrc.cpp: d3d11: Don't find global default allocator We were using global default allocator already. Pass null allocator object to *_alloc() methods then the method will use default allocator. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2843> 2022-08-05 22:23:52 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11memory.cpp: d3d11memory: Allow null GstD3D11Allocator to alloc methods Similar to gst_allocator_alloc(), use default GstD3D11Allocator when caller passes null allocator object Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2843> 2022-08-06 00:03:43 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11_private.h: * gst-libs/gst/d3d11/gstd3d11compile.cpp: * gst-libs/gst/d3d11/gstd3d11converter.cpp: * gst-libs/gst/d3d11/gstd3d11device.cpp: * gst-libs/gst/d3d11/gstd3d11format.cpp: * gst-libs/gst/d3d11/gstd3d11memory.cpp: * gst-libs/gst/d3d11/gstd3d11utils.cpp: * sys/d3d11/gstd3d11decoder.cpp: * sys/d3d11/gstd3d11deinterlace.cpp: * sys/d3d11/gstd3d11pluginutils.cpp: * sys/d3d11/gstd3d11testsrc.cpp: * sys/d3d11/gstd3d11window.cpp: d3d11: Use std::call_once() g_once_init_enter() always takes global mutex for non-GCC build. Use C++ once call implementation Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2843> 2022-08-06 04:57:49 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11device.cpp: d3d11device: Use WIN32 critical section API directly GLib's GRecMutex will allocate another heap memory for CRITICAL_SECTION struct and g_rec_mutex_lock/g_rec_mutex_unlock use WIN32 APIs actually. We don't need such intermediate function calls and redundant heap allocation. Just call WIN32 APIs directly. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2845> 2022-08-03 17:52:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabaseenc.c: * sys/va/gstvabaseenc.h: * sys/va/gstvah264enc.c: vah264enc: Lock properties read/write. This is a first step for changing properties at runtime. And add missing bitrate upate and notification. Fixes: #1258 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2836> 2022-08-04 13:02:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Use guint32 for rc_ctrl as it's for rc_ctrl_mode. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2836> 2022-08-04 12:57:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Split aud property and its usage. Just as other property variables, it's split for ease it usage, particularly after adding access locks. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2836> 2022-08-04 12:00:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabaseenc.h: va: baseenc: Untabbify and format. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2836> 2022-08-03 03:29:20 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11compositor.cpp: d3d11compositor: Add gamma-mode and primaries-mode properties Allows controlling gamma remap and/or chromatic adaptation behavior. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2831> 2022-08-03 01:47:46 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11videosink.cpp: * sys/d3d11/gstd3d11window.cpp: * sys/d3d11/gstd3d11window.h: * sys/d3d11/gstd3d11window_dummy.cpp: d3d11videosink: Add gamma-mode and primaries-mode properties Allows controlling gamma remap and/or chromatic adaptation behavior. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2831> 2022-08-03 01:19:41 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11convert.cpp: d3d11convert: Add gamma-mode and primaries-mode properties Allows controlling gamma remap and/or chromatic adaptation behavior. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2831> 2022-08-03 00:26:33 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11converter.cpp: * gst-libs/gst/d3d11/gstd3d11converter.h: d3d11converter: Add options for gamma and primaries conversion Gamma remap and/or primaries conversion requires additional processing which might be something user want to avoid, performance reason for example Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2831> 2022-08-01 13:04:47 +0200 Robert Mader <robert.mader@collabora.com> * ext/wayland/gstwaylandsink.c: waylandsink: Logging code style updates For better readability of debug messages and to keep similar code in sync with `GstGtkWaylandsink`. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2694> 2022-06-30 11:48:45 +0200 Robert Mader <robert.mader@collabora.com> * ext/wayland/gstwaylandsink.c: waylandsink: Rename occurrences of GstWaylandSink to 'self' Rename all occurrences to `self`, making it consintent with `GstWl*` and `GstGtkWaylandsink`. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2694> 2022-07-19 15:10:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvavpp.c: vapostproc: Check for colorimetry changes. It uses what's merged in https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2765 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2777> 2022-04-11 15:35:45 -0500 Olivier Crête <olivier.crete@collabora.com> * tests/examples/gtk/gtkwaylandsink.c: gtkwaylandsink test: Add navigationtest to example Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1515> 2021-12-08 10:30:21 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com> * docs/plugins/gst_plugins_cache.json: * ext/gtk/gstgtkutils.c: * ext/gtk/gstgtkutils.h: * ext/gtk/gstgtkwaylandsink.c: * ext/gtk/gstgtkwaylandsink.h: * ext/gtk/gstplugin.c: * ext/gtk/gtkgstbasewidget.c: * ext/gtk/gtkgstbasewidget.h: * ext/gtk/gtkgstwaylandwidget.c: * ext/gtk/gtkgstwaylandwidget.h: * ext/gtk/meson.build: * ext/meson.build: * meson_options.txt: * tests/examples/gtk/gtkwaylandsink.c: * tests/examples/gtk/meson.build: * tests/examples/gtk/window.ui: * tests/examples/meson.build: Add new gtkwaylandsink element This is based on gtksink, but similar to waylandsink uses Wayland APIs directly instead of rendering with Gtk/Cairo primitives. Note that the long term plan is to move this into the existing extension in `-good`, which requires the Wayland library to move the as well. For this reason several files like `gstgtkutils.*` and `gtkgstbasewidget.*` are straight copies and should be kept in sync. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1515> 2022-08-02 05:06:24 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11window.cpp: * sys/d3d11/gstd3d11window_win32.cpp: d3d11videosink: Translate mouse position Converts mouse cursor position represented in display coordinates to stream coordinates. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2824> 2022-08-02 04:16:31 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11videosink.cpp: d3d11videosink: Early terminate mouse/keyboard event handling ... and add missing null check (plus coding style fix) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2824> 2022-07-30 17:28:41 +0100 Philippe Normand <philn@igalia.com> * gst-libs/gst/webrtc/nice/nice.c: * gst-libs/gst/webrtc/nice/nicestream.c: * gst-libs/gst/webrtc/nice/nicetransport.c: webrtc: nice: WeakRef access fixes The GstWebRTCNiceStream::ice property getter already hands-off a full reference, so there is no need to call g_weak_ref_get() in call sites. Fixes #1350 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2819> 2022-07-30 17:19:42 +0100 Philippe Normand <philn@igalia.com> * gst-libs/gst/webrtc/ice.h: webrtc: ice: Fix GstWebRTCICE parent class It is a GstObject, not a GObject. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2819> 2022-07-30 17:43:38 +0100 Philippe Normand <philn@igalia.com> * ext/dtls/gstdtlssrtpdec.c: * ext/dtls/gstdtlssrtpenc.c: dtls: Properly name encoder/decoder logging categories Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2820> 2022-07-30 17:42:50 +0100 Philippe Normand <philn@igalia.com> * ext/dtls/gstdtlsagent.c: * ext/dtls/gstdtlsagent.h: * ext/dtls/gstdtlsconnection.c: * ext/dtls/gstdtlsconnection.h: dtls: Make agent and connection GstObjects Facilitates debug logs interpretation of GST_DEBUG_OBJECT() calls. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2820> 2022-07-30 02:29:49 +0530 Nirbheek Chauhan <nirbheek@centricular.com> * ext/sctp/usrsctp/meson.build: * sys/qsv/libmfx/meson.build: meson: Don't pass -Werror to vendored code Do it the correct way with libusrsctp -- override the option so that it's done in a compiler-agnostic and future-proof way. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2494> 2022-05-25 18:40:30 +0530 Nirbheek Chauhan <nirbheek@centricular.com> * gst/rtmp2/gstrtmp2locationhandler.c: * gst/rtmp2/rtmp/rtmpclient.c: rtsp+rtmp: Forward warning added to tls-validation-flags to our users With the 2.72 release, glib-networking developers have decided that TLS certificate validation cannot be implemented correctly by them, so they've deprecated it. In a nutshell: a cert can have several validation errors, but there are no guarantees that the TLS backend will return all those errors, and things are made even more complicated by the fact that the list of errors might refer to certs that are added for backwards-compat and won't actually be used by the TLS library. Our best option is to ignore the deprecation and pass the warning onto users so they can make an appropriate security decision regarding this. We can't deprecate the tls-validation-flags property because it is very useful when connecting to RTSP cameras that will never get updates to fix certificate errors. Relevant upstream merge requests / issues: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2214 https://gitlab.gnome.org/GNOME/glib-networking/-/issues/179 https://gitlab.gnome.org/GNOME/glib-networking/-/merge_requests/193 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2494> 2022-05-25 16:03:22 +0530 Nirbheek Chauhan <nirbheek@centricular.com> * ext/dtls/gstdtlscertificate.c: dtls: Disable OpenSSL 3.0 deprecation warnings for now Fedora 36 ships with OpenSSL 3.0, which deprecates all low-level APIs, so this code needs to be rewritten. There is no easy fix in the porting guide, and it recommends disabling the warnings if you can't use the high-level API. https://wiki.openssl.org/index.php/OpenSSL_3.0#Upgrading_to_OpenSSL_3.0_from_OpenSSL_1.1.1 Here's the replacement API: https://www.openssl.org/docs/man3.0/man7/migration_guide.html#Deprecated-low-level-object-creation Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2494> 2022-07-29 02:36:40 +0900 Seungha Yang <seungha@centricular.com> * sys/wasapi2/gstwasapi2ringbuffer.cpp: wasapi2: Fix initial mute/volume setting Fix up volume/mute change flag setting Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2809> 2022-07-26 13:59:33 -0400 Eric Knapp <emkman99@gmail.com> * sys/va/gstvah264enc.c: va: h264enc: Make AUD the first NAL unit Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2796> 2022-07-26 15:49:32 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com> * ext/webrtc/meson.build: * gst-libs/gst/webrtc/nice/meson.build: meson: webrtc: ensure definition of libgstwebrtcnice_dep ... and skip if it's disabled. Fixes #1344 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2797> 2022-04-18 23:25:13 +0530 yatinmaan <yatinmaan1@gmail.com> * docs/plugins/gst_plugins_cache.json: * ext/webrtc/fwd.h: * ext/webrtc/gstwebrtcbin.c: * ext/webrtc/gstwebrtcbin.h: * ext/webrtc/gstwebrtcstats.c: * ext/webrtc/meson.build: * ext/webrtc/transportstream.c: * ext/webrtc/webrtcsctptransport.h: * gst-libs/gst/webrtc/ice.c: * gst-libs/gst/webrtc/ice.h: * gst-libs/gst/webrtc/icestream.c: * gst-libs/gst/webrtc/icestream.h: * gst-libs/gst/webrtc/icetransport.h: * gst-libs/gst/webrtc/meson.build: * gst-libs/gst/webrtc/nice/meson.build: * gst-libs/gst/webrtc/nice/nice.c: * gst-libs/gst/webrtc/nice/nice.h: * gst-libs/gst/webrtc/nice/nice_fwd.h: * gst-libs/gst/webrtc/nice/nicestream.c: * gst-libs/gst/webrtc/nice/nicestream.h: * gst-libs/gst/webrtc/nice/nicetransport.c: * gst-libs/gst/webrtc/nice/nicetransport.h: * gst-libs/gst/webrtc/webrtc-priv.h: * gst-libs/gst/webrtc/webrtc.h: * gst-libs/gst/webrtc/webrtc_fwd.h: webrtc: Split WebRTCICE into base classes and implementation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2398> 2022-07-22 22:50:33 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvallocator_d3d11.cpp: * sys/qsv/gstqsvencoder.cpp: qsvencoder: Add support for D3D11 shared texture Although input texture belongs to the other d3d11 device, we can do GPU copy when its physical device is identical. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2790> 2022-07-23 00:41:49 +0900 Seungha Yang <seungha@centricular.com> * sys/amfcodec/gstamfencoder.cpp: * sys/d3d11/gstd3d11screencapture.cpp: * sys/d3d11/gstd3d11window_dummy.cpp: * sys/mediafoundation/gstmfvideoencoder.cpp: * sys/mediafoundation/gstmfvideoencoder.h: * sys/nvcodec/gstnvencoder.cpp: d3d11: Port to GstD3D11Fence Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2790> 2022-07-23 00:11:18 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11_fwd.h: * gst-libs/gst/d3d11/gstd3d11device.cpp: * gst-libs/gst/d3d11/gstd3d11device.h: d3d11: Implement fence abstraction Depending on device feature level, d3d11 runtime can support ID3D11Fence which is equivalent to ID3D12Fence. Waiting using fence has performance-wise benefit over pulling ID3D11Query status. If ID3D11Fence is not supported by device, then ID3D11Query will be used instead. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2790> 2022-06-08 15:44:26 +0200 Benjamin Gaignard <benjamin.gaignard@collabora.com> * gst-libs/gst/codecs/gsth265decoder.c: codecs: h265: Make sure that sps is processed just before decoding It may happens that bitstream doesn't provided SPS in decoding order (like in VPSSPSPPS_A_MainConcept_1 conformance test file). To be sure that the decoder got the correct SPS parameters process SPS just before start decoding the frame. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575> 2022-03-18 15:04:18 +0100 Sebastian Fricke <sebastian.fricke@collabora.com> * gst-libs/gst/codecs/gsth265decoder.c: codecs: h265: Fix typos Fix multiple typos in warning and info messages. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575> 2022-05-16 15:27:40 +0200 Benjamin Gaignard <benjamin.gaignard@collabora.com> * gst/videoparsers/gsth265parse.c: videoparsers: h265: Be less restrictive between PPS and SPS parsing order Allow to parse PPS to be parser even if SPS hasn't been parsered before. This help to parse VPSSPSPPS_A_MainConcept_1 conformance test Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575> 2022-05-16 15:25:36 +0200 Benjamin Gaignard <benjamin.gaignard@collabora.com> * gst-libs/gst/codecparsers/gsth265parser.c: * gst-libs/gst/codecparsers/gsth265parser.h: codecparsers: Defering computation of pps and sps fields While possible defer computataion of pps and sps fields until slice parsing since it may happens that bitstreams don't encoded them in expected order. A example weird ordered bitstreams is VPSSPSPPS_A_MainConcept_1 conformance test. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575> 2022-07-20 12:11:47 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2codech264dec.c: v4l2codecs: h264: Reset the number of slices on picture start This way, if we aborted a frame in the middle, we don't endup thinking there is multiple slices to send. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079> 2022-07-12 15:44:45 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2codech264dec.c: v4l2codecs: h264: Fix initialization of the slice array The function g_array_sized_new() leaves the len to 0, but the slice implementation assumes it would be set to 4. Sending multiple slices is not yet support for H.264 as no driver needed it yet, but if that code was to be used it would have overflowed as the array would never grow as multiple 0 by 2 always results in 0. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079> 2022-07-12 15:43:34 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2codech264dec.c: v4l2codecs: h264: Rename count variable to num_controls This is the counter for the used control slot. The term num_controls was introduced in the HEVC decoder and felt like a better choice. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079> 2022-06-20 12:22:20 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2codech265dec.c: v4l2codecs: hevc: Add an API check This adds an API check and bump recommended base kernel version to 5.20. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079> 2022-07-12 08:56:07 -0400 Benjamin Gaignard <benjamin.gaignard@collabora.com> * sys/v4l2codecs/gstv4l2codech265dec.c: * sys/v4l2codecs/gstv4l2codech265dec.h: * sys/v4l2codecs/meson.build: * sys/v4l2codecs/plugin.c: v4l2codecs: Add v4l2 stateless H265 decoder Add v4l2 stateless H265 decoder. Co-authored-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Co-authored-by: Sebastian Fricke <sebastian.fricke@collabora.com> Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079> 2022-04-25 15:27:39 +0200 Benjamin Gaignard <benjamin.gaignard@collabora.com> * sys/v4l2codecs/gstv4l2decoder.c: v4l2codecs: Increase minimum payload size Fluster MAXBINS_{A-C}_TI_5 HEVC tests files require to store a payload larger than usual given their resolutions. Increase the minimum payload size to handle them correctly. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079> 2022-07-12 08:57:38 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/linux/v4l2-controls.h: * sys/v4l2codecs/linux/videodev2.h: v4l2codecs: Align v4l2 headers with HEVC final uAPI HEVC uAPI have landed for kernel 5.10. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079> 2022-04-29 12:10:05 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> * gst-libs/gst/codecparsers/gsth265parser.c: * gst-libs/gst/codecparsers/gsth265parser.h: codecparsers: h265: Introduce long_term_ref_pic_set_size This is the size of the `if( long_term_ref_pics_present_flag )` inside slice_segment_header( ) syntax. This size in bit, and after de-emulation is needed by some HW. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079> 2022-07-21 16:11:03 +0300 Sebastian Dröge <sebastian@centricular.com> * gst/audiobuffersplit/gstaudiobuffersplit.c: audiobuffersplit: Actually store number of samples to drop in gapless mode Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2780> 2022-07-21 16:10:18 +0300 Sebastian Dröge <sebastian@centricular.com> * gst/audiobuffersplit/gstaudiobuffersplit.c: audiobuffersplit: Use input running time for comparison instead of the currently tracked running time Otherwise gapless mode would do completely wrong calculations on discontinuities and cause input/output to drift slowly. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2780> 2022-07-21 13:38:22 +0300 Sebastian Dröge <sebastian@centricular.com> * gst/audiobuffersplit/gstaudiobuffersplit.c: audiobuffersplit: Combine two if expressions to reduce indentation Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2780> 2022-07-22 04:51:14 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11compositor.cpp: d3d11compositor: Add support for crop meta GstD3D11Converter supports cropping already. Cropping is just a matter of setting source rectangle area to converter, from d3d11 point of view Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2782> 2022-07-18 00:41:00 +0900 Seungha Yang <seungha@centricular.com> * tests/examples/d3d11/d3d11converter.cpp: * tests/examples/d3d11/meson.build: examples: d3d11: Add GstD3D11Converter example An example to demonstrate color space conversion, rescale and flip/rotation using GstD3D11Converter Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2767> 2022-07-21 05:13:21 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11.h: * gst-libs/gst/d3d11/gstd3d11_fwd.h: * gst-libs/gst/d3d11/gstd3d11_private.h: * gst-libs/gst/d3d11/gstd3d11converter.cpp: * gst-libs/gst/d3d11/gstd3d11converter.h: * gst-libs/gst/d3d11/gstd3d11format.cpp: * gst-libs/gst/d3d11/meson.build: * sys/d3d11/gstd3d11compositor.cpp: * sys/d3d11/gstd3d11convert.cpp: * sys/d3d11/gstd3d11decoder.cpp: * sys/d3d11/gstd3d11pluginutils.cpp: * sys/d3d11/gstd3d11pluginutils.h: * sys/d3d11/gstd3d11testsrc.cpp: * sys/d3d11/gstd3d11window.h: * sys/d3d11/meson.build: d3d11: Move GstD3D11Converter to gst-libs The object is equivalent to GstVideoConverter but for D3D11. Application can use this object directly for various conversions, such as color space conversion, rescale, crop and flip/rotation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2767> 2022-07-21 05:40:45 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11.h: * gst-libs/gst/d3d11/gstd3d11memory.cpp: * gst-libs/gst/d3d11/gstd3d11memory.h: * gst-libs/gst/d3d11/meson.build: d3d11: Define enum and flags types manually gnome.mkenums_simple() doesn't work well for GstD3D11, seems to be confused by numeric representation of D3D11, must be a bug in GLib or so. Just don't rely on the incomplete automagic. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2767> 2022-07-21 05:39:58 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11format.cpp: d3d11: Run gst-indent Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2767> 2022-07-06 16:14:13 +0300 Jordan Petridis <jordan@centricular.com> * ext/openmpt/gstopenmptdec.c: openmpt: update from now deprecated api https://lib.openmpt.org/doc/classopenmpt_1_1module.html#ab2695af0baa274054f5687741fa7c05b Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2721> 2022-04-29 19:27:16 +0800 Fan F He <fan.f.he@intel.com> * sys/msdk/gstmsdkenc.c: * sys/msdk/gstmsdkenc.h: * sys/msdk/gstmsdkh264enc.c: * sys/msdk/gstmsdkh265enc.c: * sys/msdk/gstmsdkh265enc.h: * sys/msdk/msdk-enums.c: * sys/msdk/msdk-enums.h: msdkenc: Enable LowDelayBrc and MaxFrameSize for I/P frame Enable these features for accurate bitrate control. Feature introduction of LowDelayBRC, MaxFrameSizeI and MaxFrameSizeP could be found here: https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md Signed-off-by: Fan F He <fan.f.he@intel.com> Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2742> 2022-07-20 05:28:51 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11converter.cpp: * sys/d3d11/gstd3d11converter.h: * sys/d3d11/gstd3d11testsrc.cpp: * sys/d3d11/gstd3d11window_dummy.cpp: d3d11converter: Use GstStructure to set initialization options Runtime updatable options are exposed via object properties but there are a few options which should be known at initialization time. Use GstStructure to signal it and to be easily extensible Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2776> 2022-07-19 01:52:48 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11converter.cpp: d3d11converter: Use primaries and transfer function compare methods Different enum values could be functionally equal, then we don't need to do full conversion. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2776> 2022-07-17 04:48:24 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11format.cpp: * gst-libs/gst/d3d11/gstd3d11format.h: * sys/d3d11/gstd3d11converter.cpp: * sys/d3d11/gstd3d11pluginutils.cpp: * sys/d3d11/gstd3d11pluginutils.h: * sys/d3d11/gstd3d11screencapture.cpp: * sys/d3d11/gstd3d11window.cpp: d3d11format: Move DXGI color space mapping method to gst-libs Expose color space mapping method to public so that application can configure GstCaps or GstVideoInfo using DXGI color space Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2776> 2022-07-17 00:33:55 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11convert.cpp: d3d11convert: Use new colorimetry compare function Avoid conversion if both are functionally identical Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2765> 2022-07-17 23:58:19 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11testsrc.cpp: d3d11testsrc: Fix SMPTE pattern rendering It was wrong vertex shader code Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2766> 2022-07-13 10:30:49 +0200 Piotr Brzeziński <piotr@centricular.com> * sys/applemedia/vtdec.c: * sys/applemedia/vtenc.c: applemedia: Add HEVC support to vtenc and vtdec Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2754> 2022-06-16 03:57:37 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11.h: * gst-libs/gst/d3d11/gstd3d11compile.cpp: * gst-libs/gst/d3d11/gstd3d11compile.h: * gst-libs/gst/d3d11/meson.build: * sys/d3d11/gstd3d11compositor.cpp: * sys/d3d11/gstd3d11converter.cpp: * sys/d3d11/gstd3d11overlaycompositor.cpp: * sys/d3d11/gstd3d11screencapture.cpp: * sys/d3d11/gstd3d11screencapturesrc.cpp: * sys/d3d11/gstd3d11shader.cpp: * sys/d3d11/gstd3d11shader.h: * sys/d3d11/gstd3d11testsrc.cpp: * sys/d3d11/meson.build: * sys/d3d11/plugin.cpp: d3d11: Move HLSL compiler to gst-libs We should move this functionality to gst-libs so that GstD3D11Converter can be moved to gst-libs. Another advantage is that applications can call our HLSL compiler wrapper method without any worry about OS version dependent system installed HLSL library. Note that there are multiple HLSL compiler library versions on Windows and system installed one would be OS version dependent. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2760> 2022-06-04 18:07:16 -0400 Thibault Saunier <tsaunier@igalia.com> * docs/plugins/gst_plugins_cache.json: * ext/webrtc/gstwebrtcbin.c: webrtcbin: Add a signal to plug bandwidth estimator elements We need GStreamer elements to do the bandwidth estimation as this way they can also control the pacing of the transmission flow as specified in the [GCC] algorithm for example. Bandwidth estimator element are placed right before the "RTPSession" as an "rtp-aux-sender" element. This way they can use the "Transport-wide Congestion Control" RTCP feedback messages through the "RTPTwcc" custom events that are sent by the rtpsession. Applications are responsible to react to the bandwidth estimator element and set the encoder target bitrate etc... which means that we can not pass an estimator as an element factory, so a signal as been chosen instead. [GCC]: https://datatracker.ietf.org/doc/html/draft-ietf-rmcat-gcc-02 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2562> 2022-07-08 00:16:02 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gsth265decoder.c: h265decoder: Report latency Similar to that of h264decoder Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2726> 2022-07-08 22:05:12 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvabaseenc.c: va: baseenc: Do not use codec frame structure again after finish_frame(). In _push_out_one_buffer(), we use codec frame structure again for error handling after we already call finish_frame(), which is a latent segment fault. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2739> 2022-07-08 21:57:40 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvabaseenc.c: va: baseenc: Do not clear the codec frame twice when error. The current manner will clear the input codec frame twice if we fail to push the output data, which will trigger an assert. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2739> 2022-07-05 18:21:12 +0300 Jordan Petridis <jordan@centricular.com> * ext/fluidsynth/gstfluiddec.c: fluiddec: Remove workaround for version 1.1.9 We require >= 2.1 version since the previous commit Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2718> 2022-07-05 17:32:12 +0300 Jordan Petridis <jordan@centricular.com> * ext/fluidsynth/gstfluiddec.c: * ext/fluidsynth/meson.build: fluidsynth: update from now deprecated api fluid_synth_set_chorus_on and fluid_synth_set_reverb_on were deprecated in favor of new funtions where you can also specify the fx_group the effect would apply. The behavior of the set_* variants was to apply to all groups so we pass -1 to the new functions as per documentation. https://www.fluidsynth.org/api/group__chorus__effect.html#ga3c48310eecdca9cd338799d19f19c32d and https://www.fluidsynth.org/api/group__reverb__effect.html#gacb7917564c988cf54f2e35189b509c8e and the introduction of the change: https://github.com/FluidSynth/fluidsynth/pull/673 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2718> 2022-07-08 02:24:56 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11_private.h: * gst-libs/gst/d3d11/gstd3d11memory.cpp: * sys/d3d11/gstd3d11compositor.cpp: * sys/d3d11/gstd3d11convert.cpp: * sys/d3d11/gstd3d11converter.cpp: * sys/d3d11/gstd3d11decoder.cpp: * sys/d3d11/gstd3d11deinterlace.cpp: * sys/d3d11/gstd3d11overlaycompositor.cpp: * sys/d3d11/gstd3d11pluginutils.cpp: * sys/d3d11/gstd3d11testsrc.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: Use scoped device lock Make code simpler and more deadlock-free Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2728> 2022-07-08 18:53:01 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvencoder.cpp: qsvencoder: Fix for latency report when B-frame is enabled QSV runtime will introduce additional delay when B-frame is enabled Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2730> 2022-07-08 19:05:19 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvencoder.cpp: qsvencoder: Do not query again if previous call succeeded Don't need to query multiple times Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2730> 2022-07-08 03:38:30 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11screencapture.cpp: * sys/d3d11/gstd3d11screencapture.h: * sys/d3d11/gstd3d11screencapturesrc.cpp: d3d11screencapturesrc: Set colorimetry to caps Make use of reported DXGI colorspace if possible Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2729> 2022-07-08 20:11:00 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11pluginutils.cpp: d3d11: Update colorspace map Map DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 to sRGB colorimetry Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2729> 2022-07-08 04:37:33 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11pluginutils.cpp: * sys/d3d11/gstd3d11pluginutils.h: d3d11: Add an utility method for DXGI colorspace conversion Add a method for DXGI_COLOR_SPACE_TYPE -> GstVideoColorimetry conversion Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2729> 2022-07-08 01:30:13 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11utils.cpp: d3d11: Serialize ensure_element_data() call It can be called any time from random thread. Thus, multiple device objects can be created for the same physical device if the call is not serialized, that's not a scenario we expect. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2727> 2022-07-07 02:17:56 +0900 Seungha Yang <seungha@centricular.com> * gst/proxy/gstproxysink.c: proxysink: Fix GstProxySrc leak Clear weak pointer to peer src when disposing. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1552> 2022-07-06 03:14:25 +0900 Seungha Yang <seungha@centricular.com> * gst/proxy/gstproxysink.c: * gst/proxy/gstproxysink.h: * tests/check/elements/proxysink.c: * tests/check/meson.build: proxysink: Make sure stream-start and caps events are forwarded There might be a sequence of event and buffer flow: - Got stream-start/caps/segment events - Got flush events - And then buffers with a new segment event In the above case, stream-start and caps event might not be reached to peer proxysrc if peer proxysrc is not ready to receive them. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1552> 2022-03-04 14:28:21 +1100 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcice.c: webrtc: implement support for asynchronous host resolution Doesn't block anymore if a mdns host resolution takes multiple seconds to complete in e.g. stun/turn/ice candidate usage. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1961> 2022-07-04 22:27:34 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11converter.cpp: * sys/d3d11/gstd3d11converter.h: d3d11converter: Remove convert() method Expose only single convert_buffer() method. It's safer approach than passing arbitrary list of SRV/RTV pointers. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2713> 2022-07-04 22:26:19 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11testsrc.cpp: d3d11testsrc: Use convert_buffer() method Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2713> 2022-07-04 22:01:49 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11compositor.cpp: * sys/d3d11/gstd3d11videoprocessor.cpp: * sys/d3d11/gstd3d11videoprocessor.h: * sys/d3d11/gstd3d11videosink.cpp: * sys/d3d11/gstd3d11window.h: * sys/d3d11/meson.build: d3d11: Remove video processor Processing using ID3D11VideoProcessor was integrated into GstD3D11Converter and GstD3D11VideoProcessor implementation is not used anymore. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2713> 2022-07-04 21:57:42 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11_private.h: * gst-libs/gst/d3d11/gstd3d11memory.cpp: * gst-libs/gst/d3d11/gstd3d11memory.h: * sys/d3d11/gstd3d11window.cpp: * sys/d3d11/gstd3d11window_dummy.cpp: * tests/examples/d3d11/d3d11videosink-appsrc.cpp: d3d11memory: Update alloc_wrapped() API to avoid staging texture alloc Add size parameter and use it for CPU accessible memory size instead of allocating staging texture per API call. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2713> 2022-06-30 11:04:29 +0200 Ignazio Pillai <ignazp@amazon.com> * sys/wasapi/gstwasapiutil.c: wasapi: Implement default audio channel mask Some multichannel capture devices does not provide a channel mask value which will result in a pipeline failure due to the empty channel mask. Implemented the same fix used for wasapi2 Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1204 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2692> 2022-07-03 01:22:10 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11videosink.cpp: * sys/d3d11/gstd3d11window.cpp: * sys/d3d11/gstd3d11window.h: * sys/d3d11/gstd3d11window_dummy.cpp: * sys/d3d11/gstd3d11window_win32.cpp: d3d11videosink: Add support for rotation Adding "rotate-method" property Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1396 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2708> 2022-07-03 01:18:19 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11videosink.cpp: * sys/d3d11/gstd3d11videosink.h: d3d11videosink: Protect window with lock at every place Access to the object should be thread safe to support runtime property update Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2708> 2022-07-02 04:23:41 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11basefilter.cpp: * sys/d3d11/gstd3d11convert.cpp: d3d11convert: Add support for GstVideoOrientationMethod Add flip/rotation support via GstVideoDirectionInterface Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2708> 2022-07-02 02:15:00 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11converter.cpp: d3d11converter: Add support for GstVideoOrientationMethod Shader can handle rotation/flip with other conversions at once in a single pipeline, and depending on device capability, videoprocessor may support it too. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2708> 2022-07-01 23:49:49 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11videosink.cpp: * sys/d3d11/gstd3d11window.cpp: * sys/d3d11/gstd3d11window.h: * sys/d3d11/gstd3d11window_dummy.cpp: d3d11videosink: Use single GstD3D11Converter object GstD3D11Converter supports videoprocessor and texture upload. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697> 2022-07-01 21:35:15 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11_private.h: * gst-libs/gst/d3d11/gstd3d11memory.cpp: d3d11memory: Add private method for texture wrapped memory allocation Unlike public method gst_d3d11_allocator_alloc_wrapped(), newly added method by this commit will not calculate CPU accessible memory size, since staging texture must be allocated to calculate the size. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697> 2022-07-01 21:20:02 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11_private.h: * sys/d3d11/gstd3d11pluginutils.h: d3d11: Use library private header in plugin Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697> 2022-07-01 20:47:37 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11compositor.cpp: d3d11compositor: Use single GstD3D11Converter object ... and remove unnessary videoprocessor/upload/copy code Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697> 2022-07-01 04:12:23 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11convert.cpp: d3d11convert: Add border-color property Use user specified border-color instead of black color Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697> 2022-07-01 20:13:29 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11convert.cpp: d3d11convert: Use single GstD3D11Converter object ... and don't use GstD3D11VideoProcessor. Now GstD3D11Converter will be able to convert using videoprocessor, and texture upload is also supported by GstD3D11Converter. All the noisy code can be removed therefore. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697> 2022-06-22 02:44:26 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11compositor.cpp: * sys/d3d11/gstd3d11convert.cpp: * sys/d3d11/gstd3d11converter.cpp: * sys/d3d11/gstd3d11converter.h: * sys/d3d11/gstd3d11testsrc.cpp: * sys/d3d11/gstd3d11window.cpp: * sys/d3d11/gstd3d11window_dummy.cpp: d3d11converter: Add support conversion using videoprocessor * Add videoprocessor feature to d3d11converter, in order to unifiy conversion flow. * Add convert_buffer() method to support automatic shader/videoprocessor selection. The method also supports texture upload if input memory cannot be used for conversion (e.g., system memory or so) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697> 2022-06-21 23:43:46 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11overlaycompositor.cpp: * sys/d3d11/gstd3d11overlaycompositor.h: * sys/d3d11/gstd3d11window.cpp: * sys/d3d11/gstd3d11window_dummy.cpp: d3d11overlaycompositor: Objectify overlay render implementation Be consistent with other implementations Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697> 2022-06-21 22:44:55 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11compositor.cpp: * sys/d3d11/gstd3d11convert.cpp: * sys/d3d11/gstd3d11pluginutils.cpp: * sys/d3d11/gstd3d11pluginutils.h: * sys/d3d11/gstd3d11window.cpp: * sys/d3d11/gstd3d11window_dummy.cpp: d3d11: Don't use const pointer to GstDxgiColorSpace Instead, fill values of passed GstDxgiColorSpace struct Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697> 2022-06-28 16:40:55 +0300 Sebastian Dröge <sebastian@centricular.com> * sys/decklink/gstdecklink.h: * sys/decklink/gstdecklinkvideosink.cpp: decklinkvideosink: Pass video frames directly to the Decklink SDK without copying If the video frame is stored in PBO memory then we need to copy anyway as it might be stored in CPU-accessible GPU memory that can't be accessed from the Decklink driver. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2674> 2022-05-10 14:11:06 +0800 Vincent Cheah Beng Keat <vincent.beng.keat.cheah@intel.com> * sys/msdk/gstmsdkdec.c: * sys/msdk/gstmsdkmjpegdec.c: * sys/msdk/meson.build: msdkmjpegdec: Add support for error report Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2401> 2022-06-23 01:10:38 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvencoder.cpp: * sys/nvcodec/gstnvencoder.h: * sys/nvcodec/gstnvh264encoder.cpp: * sys/nvcodec/gstnvh264encoder.h: * sys/nvcodec/gstnvh265encoder.cpp: * sys/nvcodec/gstnvh265encoder.h: * sys/nvcodec/plugin.c: nvencoder: Add support for dynamic GPU device selection Adding nvautogpu{h264,h265}enc class which will accept upstream logical GPU device object (GstCudaContext or GstD3D11Device) instead of using pre-assigned GPU instance. If upstream logical GPU device object is not NVENC compatible (e.g., D3D11 device of non-NVIDIA GPU) or it's system memory, then user specified "cuda-device-id" or "adapter-luid" property will be used for GPU device selection. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2666> 2022-06-27 20:50:15 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/cuda/gstcudautils.c: cuda: Protect gst_cuda_ensure_element_context() with lock Serialize the order of context setup since it can be called from multiple threads Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2666> 2022-06-30 16:45:46 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/cuda/gstcudamemory.c: * sys/nvcodec/gstcudabasefilter.c: * sys/nvcodec/gstcudaformat.h: cuda: Add YUY2 and UYVY formats for GL interop Those formats are not supported conversion formats by CUDA convert/scale elements but would be useful for GL <-> CUDA interop use case. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2691> 2022-06-30 17:47:05 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudamemorycopy.c: cudadownload: Passthrough in case of CUDA -> SYSTEM GstCudaMemory supports CPU access via CUDA pinned host memory already and it would show faster memory transfer performance between GPU and CPU than copying from/to normal system memory. If downstream supports video meta, we can passthrough CUDA memory. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2690> 2022-06-30 09:09:02 +0300 Sebastian Dröge <sebastian@centricular.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: Reject caps that are not valid for creating an SDP media. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2689> 2022-04-22 16:37:34 +0200 Corentin Damman <c.damman@intopix.com> * sys/nvcodec/gstcudaformat.h: cudaformat: add support for planar 4:2:2 YUV formats in CUDA D3D11 interop Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2269> 2022-04-22 15:58:13 +0200 Corentin Damman <c.damman@intopix.com> * gst-libs/gst/cuda/gstcudamemory.c: * sys/nvcodec/gstcudaformat.h: cudamemory: add support for planar 4:2:2 YUV formats Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2269> 2021-06-22 14:43:29 +0200 Benjamin Gaignard <benjamin.gaignard@collabora.com> * sys/v4l2codecs/gstv4l2decoder.c: v4l2codecs: enumerate all possible formats Some decoder may also allow to (down) scale the decoded video. Use VIDIOC_ENUM_FRAMESIZES iotcl to enumerate the possible output formats resolutions. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2589> 2022-06-26 22:26:29 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvav1dec.c: * sys/nvcodec/gstnvdecoder.h: * sys/nvcodec/gstnvh264dec.c: * sys/nvcodec/gstnvh264dec.h: * sys/nvcodec/gstnvh265dec.c: * sys/nvcodec/gstnvh265dec.h: * sys/nvcodec/gstnvvp8dec.c: * sys/nvcodec/gstnvvp8dec.h: * sys/nvcodec/gstnvvp9dec.c: * sys/nvcodec/gstnvvp9dec.h: nvcodec: Add cuda-device-id read-only property to stateless decoders ... and remove unnecessary intermediate subclass from class hierarchy Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2665> 2022-06-26 21:09:50 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvdec.c: nvcodec: Add cuda-device-id read-only property to CUVID decoders Similar to the other hardware decoder plugins, provides assigned device id via property Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2665> 2022-06-29 10:55:13 +0100 Tim-Philipp Müller <tim@centricular.com> * meson.build: coding style: allow declarations after statement See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/ and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2683> 2022-06-29 00:31:01 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11convert.cpp: d3d11convert: Add support for GstVideoCropMeta Performs crop, scale, and color space conversion all in a single render pipeline. Note that cropping related property is not added in this element (which will make negotiation very complicated), but user can configure videocrop element for crop meta to be attached on each buffer. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2678> 2022-06-28 17:40:56 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11videosink.cpp: d3d11videosink: Fix for force-aspect-ratio setting when rendering on shared texture Set specified force-aspect-ratio value on window object in case of shared texture rendering as well Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1304 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2671> 2022-06-26 06:39:54 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfvideoencoder.cpp: * sys/mediafoundation/gstmfvideoencoder.h: mfvideoenc: Fix broken encoding when resolution is not an even number Width and height values of 4:2:0 subsampled YUV format should be even number, and if it's not the case, there should be padding which is not a contiguous memory layout. Do copy input frames to MediaFoundation's memory in that case for now. Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1165 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2661> 2022-06-28 01:29:06 +0100 Tim-Philipp Müller <tim@centricular.com> * ext/opus/gstopusheader.h: dv, opusparse: fix duplicate symbols in static build Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1262 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2670> 2022-06-27 04:07:04 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/plugin.cpp: d3d11: Enumerate devices via native DXGI API D3D11CreateDevice() can fail for some reason (e.g., buggy GPU driver) and then gst_d3d11_device_new() will return nullptr. Use DXGI API directly instead of relying on the gst_d3d11_device_new() Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2663> 2022-06-25 01:15:17 +0900 Seungha Yang <seungha@centricular.com> * tests/examples/d3d11/d3d11videosink-appsrc.cpp: * tests/examples/d3d11/meson.build: examples: Add an example for application texture sharing This example shows GstD3D11BufferPool usage and a way of D3D11 texture sharing between application and GStreamer via appsrc. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2646> 2022-06-24 07:06:00 +0900 Seungha Yang <seungha@centricular.com> * tests/examples/d3d11/d3d11decoder-appsink.cpp: * tests/examples/d3d11/meson.build: examples: Add d3d11decoder zero-copy rendering example This example code demonstrates D3D11 device sharing between application and GStreamer. Application can access texture using appsink and it can be rendered on application's window without any copy operation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2646> 2022-06-24 22:17:28 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11utils.cpp: * gst-libs/gst/d3d11/gstd3d11utils.h: d3d11: Add a helper method for GstContext creation Add gst_d3d11_context_new() method for application to create GstContext using GstD3D11Device. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2646> 2022-06-24 01:00:00 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11memory.cpp: * gst-libs/gst/d3d11/gstd3d11memory.h: d3d11memory: Add support for wrapping application texture Add gst_d3d11_allocator_alloc_wrapped() method to support wrapping application texture using GstD3D11Memory without copy. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2646> 2022-06-24 01:25:07 +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.cpp: * gst-libs/gst/d3d11/gstd3d11bufferpool.h: * gst-libs/gst/d3d11/gstd3d11config.h.meson: * gst-libs/gst/d3d11/gstd3d11device.cpp: * gst-libs/gst/d3d11/gstd3d11device.h: * gst-libs/gst/d3d11/gstd3d11format.cpp: * gst-libs/gst/d3d11/gstd3d11format.h: * gst-libs/gst/d3d11/gstd3d11memory.cpp: * gst-libs/gst/d3d11/gstd3d11memory.h: * gst-libs/gst/d3d11/gstd3d11utils.cpp: * gst-libs/gst/d3d11/gstd3d11utils.h: * gst-libs/gst/d3d11/meson.build: d3d11: Install library headers Our Direct3D11 abstraction layer has been improved and it gained good shape from API point of view. Also, On Windows, GstD3D11 has various advantages over GstGL in terms of compatibility/stability/feature/performance. Note that WGL implementation is known to be buggy for some drivers/vendors/scenario (that's a reason why Google implemented ANGLE). Moreover, GstGL is not fully optimized for Windows unfortunately. It's the time to open this interface to application developers for various optimized processing using our Direct3D11 infrastructure. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2646> 2022-06-24 01:21:48 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11bufferpool.cpp: * gst-libs/gst/d3d11/gstd3d11memory.cpp: * gst-libs/gst/d3d11/gstd3d11memory.h: * sys/amfcodec/gstamfencoder.cpp: * sys/d3d11/gstd3d11compositor.cpp: * sys/d3d11/gstd3d11convert.cpp: * sys/d3d11/gstd3d11decoder.cpp: * sys/d3d11/gstd3d11deinterlace.cpp: * sys/d3d11/gstd3d11screencapturesrc.cpp: * sys/d3d11/gstd3d11testsrc.cpp: * sys/d3d11/gstd3d11upload.cpp: * sys/d3d11/gstd3d11videosink.cpp: * sys/nvcodec/gstnvencoder.cpp: * sys/qsv/gstqsvallocator_d3d11.cpp: * sys/qsv/gstqsvdecoder.cpp: * sys/qsv/gstqsvencoder.cpp: d3d11: Update gst_d3d11_allocation_params_new() interface Define GST_D3D11_ALLOCATION_FLAG_DEFAULT (0) value instead of casting enum type everywhere. And pass D3D11_RESOURCE_MISC_FLAG value Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2646> 2022-06-27 12:06:50 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com> * sys/va/gstvavpp.c: va: postproc: add scale-method property Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2654> 2022-06-27 11:54:28 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com> * sys/va/gstvafilter.c: * sys/va/gstvafilter.h: * sys/va/gstvavpp.c: va: filter/postproc: move unconditional props to vavpp Only conditional/dynamic properties should be installed/handled by vafilter. Thus, move and install the unconditional/static properties in vavpp. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2654> 2022-06-23 11:39:57 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com> * sys/va/gstvacompositor.c: * sys/va/gstvafilter.c: * sys/va/gstvafilter.h: va: compositor/filter: use scale method setter Use the filter's scale method member instead of the sample's member. Removes the filter_flags member from the composite sample. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2654> 2022-06-23 11:11:16 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com> * sys/va/gstvafilter.c: * sys/va/gstvafilter.h: va: filter: add scale method field and setter Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2654> 2022-01-21 21:33:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabasedec.h: * sys/va/gstvajpegdec.c: * sys/va/gstvajpegdec.h: * sys/va/gstvaprofile.c: * sys/va/meson.build: * sys/va/plugin.c: va: Add vajpegdec element. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1575> 2022-06-24 19:42:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/gstva.h: * gst-libs/gst/va/gstvaallocator.c: * gst-libs/gst/va/gstvaallocator.h: * sys/va/gstvabasedec.c: * sys/va/gstvabasedec.h: va: allocator: Add hack for no fourcc when surface creation. This patch adds general mechanism for handling specific hacks. In this case for jpeg decoder in i965 driver, which cannot create surfaces with fourcc specified. From jpeg decoder to the allocator, which creates the surfaces, there's a non-simple path: basedec pseudo-class adds a hacks guint32 which will be set by actual elements (vajpegdec, in this case) and basedec will always set the hack to the allocator when the allocator is instantiated. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1575> 2022-06-24 19:54:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/gstvavideoformat.c: va: Add RGBP format definition. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1575> 2022-04-28 13:16:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvacaps.c: va: caps: Add jpeg fields in coded caps. Given the supported rt formats in a profile/entrypoint config it's possible to know the supported JPEG colorspace and subsampling. This patch adds this information in coded caps to a safer autoplugging after jpegparser. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1575> 2022-01-17 15:43:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstjpegdecoder.c: * sys/va/gstjpegdecoder.h: * sys/va/meson.build: va: Add jpegdecoder base class. This base class is intented for hardware accelerated decoders, but since only VA uses it, it will be kept internally in va plugin. It follows the same logic as the others video decoders in the library but. as JPEG are independet images, there's no need to handle a DBP so no need of a picture object. Instead a scan object is added with all the structures required to decode the image (huffman and quant tables, mcus, etc.). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1575> 2022-06-27 12:36:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/meson.build: va: build: Remove duplicated source. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1575> 2022-06-27 19:58:58 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudamemorycopy.c: cudamemorycopy: Make sure writable caps before removing fields The caps to be modified may not be writable when D3D11/GL/NVMM are all disabled. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2664> 2022-06-25 19:50:10 +0100 Tim-Philipp Müller <tim@centricular.com> * tests/check/meson.build: tests: skip unit tests for dependency-less elements that have been disabled Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1136 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2660> 2022-06-23 14:31:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/gstvaallocator.c: va: allocator: Use always lseek to get dmabuf size. Gallium drivers historically have reported strange dmabuf sizes, from always zero to the whole frame (multiple fds). The simplest solution is to use lseek SEEK_END to get the prime descriptor size. Also the allocator raises a warning if both values differ in order to report it to driver. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2574> 2022-06-08 09:02:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> * gst-libs/gst/va/gstvaallocator.c: va: allocator: Fix translation of VADRMPRIMESurfaceDescriptor VADRMPRIMESurfaceDescriptor structure describes the offsets from the point of view of the specific handle (DMABuf). While GstVideoInfo (and the meta) describes offsets from the point of the view of the GstBuffer, an aggregate of all the GstMemory (1 per handle). This changes combined with [Mesa Fix](https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16813) fixes decoding failure with AMD driver. Fixes #1223 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2574> 2022-06-23 21:43:11 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11.h: * gst-libs/gst/d3d11/gstd3d11stagingbufferpool.cpp: * gst-libs/gst/d3d11/gstd3d11stagingbufferpool.h: * gst-libs/gst/d3d11/meson.build: * sys/amfcodec/gstamfencoder.cpp: * sys/d3d11/gstd3d11compositor.cpp: * sys/d3d11/gstd3d11decoder.cpp: * sys/d3d11/gstd3d11download.cpp: * sys/d3d11/gstd3d11screencapturesrc.cpp: * sys/d3d11/gstd3d11testsrc.cpp: * sys/d3d11/gstd3d11upload.cpp: * sys/d3d11/gstd3d11videosink.cpp: * sys/qsv/gstqsvallocator_d3d11.cpp: * sys/qsv/gstqsvencoder.cpp: d3d11: Revert staging buffer pool implementation The staging buffer pool implementation was added to improve throughput performance since we can avoid per-frame CPU copy operation via staging texture but it turned out that we can not make it thread safe. See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1182 Reverting the staging texture implementation as it does not show any visible value. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2651> 2022-06-23 21:35:23 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvdecoder.cpp: qsvdecoder: Fix system memory alignment Do right padding, not left Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2651> 2022-06-23 21:41:24 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11decoder.cpp: d3d11decoder: Fix texture download Stride applied to src/dst was reversed Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2651> 2022-06-16 17:02:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst/jpegformat/gstjpegparse.c: jpegparse: Add YUV440 sampling support. Found some samples with this sampling, so in order to support it, JPEG2000 header cannot be used anymore, a this patch also adds the enums for each supported colorspace and sampling, avoiding hacks. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2641> 2022-06-16 16:33:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/gstvaallocator.c: * sys/va/gstvafilter.c: va: Use driver implementation macro rather than function. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2642> 2022-06-18 10:36:53 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gsth265parse.c: h265parse: Fix uninitialized width and height when update src caps. The commit b90d0274 introduces uninitialized width and height when we consider to change the "pixel-aspect-ratio" for some interlaced stream. We need to check the resolution in the src caps, and if no resolution info found, there is no need to consider the aspect ratio. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2630> 2022-06-21 20:04:15 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11deinterlace.cpp: * sys/d3d11/gstd3d11testsrc.cpp: * sys/d3d11/gstd3d11window.cpp: d3d11: Fix some typos Fix up spelling and d3d11testsrc class meta. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2644> 2022-06-18 20:14:22 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11compositor.cpp: * sys/d3d11/gstd3d11compositor.h: * sys/d3d11/gstd3d11compositorbin.cpp: * sys/d3d11/gstd3d11compositorbin.h: * sys/d3d11/meson.build: * sys/d3d11/plugin.cpp: d3d11compositor: Performance optimization Removing glvideomixer-like nuance (it was initially referenced) and rewriting element since it's not an optimal design at all from performance point of view. * Remove wrapper bin (and internal conversion/upload/download elements) which will waste CPU/GPU resources. Conversion/blending can be done by the d3d11compositor element at once. * Add support YUV blending without RGB conversion. The RGB <-> YUV conversion is completely unnecessary since YUV textures support blending as well. * Remove complicated blending operation properties since it's hard to use from application point of view. Instead, adding "operator" property like what compositor element does. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2631> 2022-06-18 20:40:40 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11converter.cpp: d3d11converter: Fix alpha factor update converter should set entire constant buffer values since it's mapped with write-discard flag Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2631> 2022-06-02 14:22:21 +0200 Robert Mader <robert.mader@collabora.com> * docs/plugins/gst_plugins_cache.json: * ext/wayland/gstwaylandsink.c: * ext/wayland/gstwaylandsink.h: * gst-libs/gst/wayland/gstwlwindow.c: * gst-libs/gst/wayland/gstwlwindow.h: gstwaylandsink: Add rotate-method property Similar to and inspired by glimagesink and gtkglsink. Using the Wayland buffer transform API allows to offload rotate operations to the Wayland compositor. This can have several advantages: - The Wayland compositor may be able to use hardware plane capabilities to do the rotation. - In case of pre-rotated content on rotated outputs the rotations may equal out, potentially allowing the compositor to use hardware planes even if they don't support rotate operations. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2543> 2022-06-18 04:05:53 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11decoder.h: d3d11decoder: Check 16K resolution support 16K decoding is supported by some GPUs Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2629> 2022-06-17 05:11:08 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11av1dec.cpp: * sys/d3d11/gstd3d11decoder.cpp: * sys/d3d11/gstd3d11decoder.h: * sys/d3d11/gstd3d11h264dec.cpp: * sys/d3d11/gstd3d11h265dec.cpp: * sys/d3d11/gstd3d11mpeg2dec.cpp: * sys/d3d11/gstd3d11vp8dec.cpp: * sys/d3d11/gstd3d11vp9dec.cpp: d3d11decoder: Add support for non-zero crop-{x,y} position AVC and HEVC define crop rectangle and the x/y coordinates might not be zero. This commit will address the non-zero x/y offset coordinates via GstVideoCropMeta if downstream supports the meta and d3d11 memory. Otherwise decoder will copy decoded texture into output frame. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2624> 2022-06-17 02:45:51 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11convert.cpp: * sys/d3d11/gstd3d11converter.cpp: d3d11converter: Implement filling border color Equivalent to GST_VIDEO_CONVERTER_OPT_BORDER_ARGB and GST_VIDEO_CONVERTER_OPT_FILL_BORDER options of GstVideoConverter Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2622> 2022-06-16 02:18:43 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11compositor.cpp: * sys/d3d11/gstd3d11convert.cpp: * sys/d3d11/gstd3d11converter.cpp: * sys/d3d11/gstd3d11converter.h: * sys/d3d11/gstd3d11testsrc.cpp: * sys/d3d11/gstd3d11window.cpp: * sys/d3d11/gstd3d11window.h: * sys/d3d11/gstd3d11window_dummy.cpp: * sys/d3d11/plugin.cpp: d3d11converter: Objectify converter ... and set conversion options via property Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2622> 2022-06-16 00:52:16 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11shader.cpp: * sys/d3d11/gstd3d11shader.h: d3d11shader: Remove GstD3D11Quad helper object It's not very generic to be used for various scenario. Use native D3D11 APIs directly instead. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2622> 2022-06-16 00:50:12 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11compositor.cpp: d3d11compositor: Don't use GstD3D11Quad The helper object will be removed Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2622> 2022-06-15 23:46:27 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11overlaycompositor.cpp: d3d11overlaycompositor: Fix HLSL compiler warning warning X3206: 'Sample': implicit truncation of vector type And don't use GstD3D11Quad since it will result in redundant API calls Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2622> 2022-02-01 23:46:43 +0100 Mathieu Duponchelle <mathieu@centricular.com> * docs/plugins/gst_plugins_cache.json: * ext/closedcaption/gstcccombiner.c: * ext/closedcaption/gstcccombiner.h: cccombiner: expose output-padding property When schedule=true and output-padding=false, cccombiner will not inject padding in the output closed caption meta stream. The property has no effect when schedule=false. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1621> 2022-06-15 15:06:20 -0400 Olivier Crête <olivier.crete@collabora.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: Limit sink query to sink pads This allows the reception of streams that don't exactly match the codec preferences. In particular, the ssrc in the codec preferences is local sender SSRC, the other side is expected to send a different SSRC. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2615> 2022-06-08 19:18:48 +0300 Vivia Nikolaidou <vivia@ahiru.eu> * gst/videoparsers/gsth265parse.c: avviddec, video.c, h265parse: Workaround for broken field-based interlaced encoders Some encoders (e.g. Makito) have H265 field-based interlacing, but then also specify an 1:2 pixel aspect ratio. That makes it kind-of work with decoders that don't properly support field-based decoding, but makes us end up with the wrong aspect ratio if we implement everything properly. As a workaround, detect 1:2 pixel aspect ratio for field-based interlacing, and check if making that 1:1 would make the new display aspect ratio common. In that case, we override it with 1:1. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2577> 2021-05-19 16:03:22 +0200 Stéphane Cerveau <scerveau@collabora.com> * ext/srt/gstsrtsrc.c: * ext/srt/gstsrtsrc.h: srtsrc: add "keep-listening" property to avoid EOS on disconnect The property 'keep-listening' avoids EOS when the remote client disconnects. It can be useful to a keep a pipeline alive when the srt connection drops remotely. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/967> 2021-05-19 16:00:13 +0200 Stéphane Cerveau <scerveau@collabora.com> * ext/srt/gstsrtsrc.c: srtsrc: remove dead code Remove code useless since 132e3a1af9deb1d2cdf84d22b954967207bcc03a Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/967> 2022-05-19 05:24:08 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvh264dec.cpp: qsvh264dec: Use newly added avcC data parsing API Use gst_h264_parser_parse_decoder_config_record() method to parse codec_data. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2449> 2022-05-19 05:06:04 +0900 Seungha Yang <seungha@centricular.com> * gst/videoparsers/gsth264parse.c: h264parse: Use newly added avcC data parsing API Use gst_h264_parser_parse_decoder_config_record() method to parse codec_data. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2449> 2022-05-19 04:49:36 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gsth264decoder.c: h264decoder: Use newly added avcC data parsing API Use gst_h264_parser_parse_decoder_config_record() method to parse codec_data. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2449> 2022-05-19 04:25:38 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecparsers/gsth264parser.c: * gst-libs/gst/codecparsers/gsth264parser.h: * tests/check/libs/h264parser.c: h264parser: Add an API for AVCDecoderConfigurationRecord parsing Add a method for AVC configuration date parsing Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2449> 2022-06-15 10:07:26 +0300 Sebastian Dröge <sebastian@centricular.com> * sys/decklink/gstdecklink.cpp: decklinkvideosink: Fix selection of > PAL widescreen modes Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2601> 2022-06-07 16:30:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabasedec.c: va: basedec: Select output format with the used chroma in decoder. Currently, video format is decided with downstream caps intersection, but that's not correct since chroma is not considered. The video decoders have to decide the output format given the used chroma, not by the downstream caps negotiation. This patch changes that. Still, caps feature is selected by caps negotiation, then, with the preferred caps feature, the output format is search within that caps feature. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2569> 2022-05-23 11:41:17 +1000 Matthew Waters <matthew@centricular.com> * docs/plugins/gst_plugins_cache.json: * ext/vulkan/gstvulkan.c: * ext/vulkan/meson.build: * ext/vulkan/vkoverlaycompositor.c: * ext/vulkan/vkoverlaycompositor.h: vulkan: add vulkan overlay compositor element Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2470> 2022-05-23 11:26:24 +1000 Matthew Waters <matthew@centricular.com> * gst-libs/gst/vulkan/gstvkfullscreenquad.c: * gst-libs/gst/vulkan/gstvkfullscreenquad.h: vkfullscreenquad: add support for disabling clearing e.g. if drawing over the top of an existing image, we don'w want to clear. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2470> 2022-05-23 11:25:03 +1000 Matthew Waters <matthew@centricular.com> * gst-libs/gst/vulkan/gstvkfullscreenquad.c: * gst-libs/gst/vulkan/gstvkfullscreenquad.h: vkfullscreenquad: support setting blend operations Allows e.g. blending with an existing image. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2470> 2022-05-23 11:24:04 +1000 Matthew Waters <matthew@centricular.com> * gst-libs/gst/vulkan/gstvkfullscreenquad.c: vkfullscreenaud: create the vulkan command pool upfront Allows outside to reuse the same command buffer pool much more easily. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2470> 2022-05-17 17:07:49 +1000 Matthew Waters <matthew@centricular.com> * gst-libs/gst/vulkan/gstvkbuffermemory.h: * gst-libs/gst/vulkan/gstvkbufferpool.h: * gst-libs/gst/vulkan/gstvkcommandbuffer.h: * gst-libs/gst/vulkan/gstvkdescriptorpool.h: * gst-libs/gst/vulkan/gstvkdescriptorset.h: * gst-libs/gst/vulkan/gstvkfence.h: * gst-libs/gst/vulkan/gstvkimagebufferpool.h: * gst-libs/gst/vulkan/gstvkimagememory.h: * gst-libs/gst/vulkan/gstvkmemory.h: * gst-libs/gst/vulkan/gstvkvideofilter.h: vulkan: add some missing GAutoPtr definitions Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2470> 2022-05-17 16:32:09 +1000 Matthew Waters <matthew@centricular.com> * gst-libs/gst/vulkan/gstvkimageview.h: vulkan: remove unneeded #ifdef for GAutoPtr Not necessary anymore as we depend on a new enough Glib version Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2470> 2022-05-17 13:22:33 +1000 Matthew Waters <matthew@centricular.com> * ext/vulkan/gstvulkanelements.h: * ext/vulkan/vkcolorconvert.h: * ext/vulkan/vkdeviceprovider.h: * ext/vulkan/vkdownload.h: * ext/vulkan/vkimageidentity.h: * ext/vulkan/vkshaderspv.h: * ext/vulkan/vksink.h: * ext/vulkan/vkupload.h: * ext/vulkan/vkviewconvert.h: vulkan: move element register definition to relevant element headers Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2470> 2022-06-13 03:29:11 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11converter.cpp: * sys/d3d11/gstd3d11pluginutils.cpp: * sys/d3d11/gstd3d11pluginutils.h: d3d11converter: Add support for colorimetry conversion Handle color primaries and gamma functions. HDR <-> SDR conversion (tone mapping) should be implemented as well but not a part of this patch. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2581> 2022-06-14 03:15:42 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11convert.cpp: d3d11convert: Don't passthrough if colorimetry conversion is required Different input/output colorimetry requires conversion Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2581> 2022-06-14 00:24:41 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11pluginutils.cpp: d3d11window: Use SDR colorspace whenever possible PQ uses completely different light level scale and it should not be used for SDR bt2020. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2581> 2022-06-06 03:41:52 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11converter.cpp: * sys/d3d11/gstd3d11converter.h: * sys/d3d11/gstd3d11pluginutils.cpp: * sys/d3d11/gstd3d11pluginutils.h: d3d11converter: Rewrite conversion object Rewriting GstD3D11Converter (equivalent to GstVideoConverter) to optimize some conversion path and clean up. * Extract YUV <-> RGB conversion matrix building method to utils. It will be used by other implementation * Use calculated offset values for YCbCr <-> YPbPr conversion instead of hardcoded values * Handle color range adjustment * Move transform matrix building helper function to utils. The method will be used by other elements * Use single constant buffer. Multiple constatne buffer for conversion pipeline is almost pointless * Remove lots of duplicated HLSL code and split pixel shader code path into sampling -> colorspace conversion -> shader output packing * Avoid floating point precision error around UV coordinates * Optimize RGB -> YUV conversion path Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2581> 2022-05-24 10:40:26 +0200 Benjamin Gaignard <benjamin.gaignard@collabora.com> * sys/v4l2codecs/gstv4l2format.c: * sys/v4l2codecs/gstv4l2format.h: * sys/v4l2codecs/linux/videodev2.h: v4l2codecs: Add P010 pixel format Copy V4L2_PIX_FMT_P010 define from linux header. V4L2_PIX_FMT_P010 is the little endian definition of P010 so map it GST_VIDEO_FORMAT_P010_10LE. Add it v4l2 default video formats to allows v4l2 decoders to enumerate and use it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2590> 2022-04-06 12:56:30 +0100 Tim-Philipp Müller <tim@centricular.com> * ext/gs/gstgscommon.cpp: * gst/mpegtsdemux/mpegtsbase.c: * gst/mxf/mxfdemux.c: * meson.build: * sys/d3d11/gstd3d11deinterlace.cpp: * sys/va/vacompat.h: Bump GLib requirement to >= 2.62 Can't require 2.64 yet because of https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/323 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2568> 2022-06-08 10:42:18 +0300 Sebastian Dröge <sebastian@centricular.com> * docs/plugins/gst_plugins_cache.json: * sys/decklink/gstdecklink.cpp: * sys/decklink/gstdecklink.h: decklink: Add support for 4K DCI, 8K/UHD2 and 8K DCI modes Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2570> 2022-06-02 06:06:48 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvallocator_d3d11.cpp: qsvencoder: Do not copy if input is D3D11 texture In case that input is D3D11 texture, QSV seems to work regardless of the alignment. Actually the alignment requirement seems to make only sense for system memory. Other Intel GPU dependent implementations (new VA encoder, and MediaFoundation) do not require such alignment nor other vendor specific ones (NVENC and AMF) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2540> 2022-06-09 23:19:24 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11decoder.cpp: d3d11decoder: Fix for alternate interlacing signalling Don't set d3d11+interlace caps feature. None of d3d11 elements support it Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2579> 2022-06-04 22:33:34 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11testsrc.cpp: * sys/d3d11/gstd3d11testsrc.h: * sys/d3d11/meson.build: * sys/d3d11/plugin.cpp: d3d11: Add d3d11testsrc element Adding Direct3D11 based videotestsrc element Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2554> 2022-06-08 16:38:00 +0200 Mathieu Duponchelle <mathieu@centricular.com> * docs/meson.build: -bad/docs: be more selective about header files to exclude A few header files in -bad contain comments that start with the /** gtk-doc pattern, but should not actually be parsed (and warned about as such). Previously, we were using far-reaching wildcard patterns to avoid parsing those, but this had the unintended side effect of also excluding legitimate files, and creating confusion when comments were not parsed from those. Switch to excluding specific files instead. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2576> 2022-05-27 05:15:13 +1000 Jan Schmidt <jan@centricular.com> * sys/androidmedia/gstamc-constants.h: * sys/androidmedia/gstamc.c: * sys/androidmedia/gstamcvideoenc.c: * sys/androidmedia/gstamcvideoenc.h: amc: Add H.265 encoder mapping. Add mime type mapping to enable the use of Android H.265 encoders Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2511> 2022-05-13 17:21:25 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkdec.c: * sys/msdk/gstmsdkdec.h: msdkdec: Decoder should use its own pool when downstream allocator is not recognizable Msdkdec should use it own pool when the allocation from downstream query is not any msdk_allocator (i.e. msdk_video_allocator, msdk_dmabuf_allocator and msdk_system_allocator). Otherwise, when using pipeline "msdkh264dec ! vah264enc !" to transcode a not 16-bit-aligned stream (i.e. 1920x1080), the transcoding will fail due to the size mismatch issue between decoder pool and encoder pool. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2451> 2022-06-06 10:56:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * docs/plugins/gst_plugins_cache.json: va: Update plugin cache. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2522> 2022-05-29 13:43:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Guard logging functions .. and use spec for rate control rather than static switch. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2522> 2022-05-30 10:20:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabaseenc.c: * sys/va/gstvah264enc.c: vah264enc: Support default and none rate control. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2522> 2022-05-29 12:09:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaencoder.c: * sys/va/gstvaencoder.h: * sys/va/gstvah264enc.c: va: encoder: Rate control property. Fixes: #1241 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2522> 2022-05-30 11:26:24 +0100 Philippe Normand <philn@igalia.com> * docs/plugins/gst_plugins_cache.json: * ext/webrtc/gstwebrtcbin.c: * tests/check/elements/webrtcbin.c: webrtcbin: Add a prepare-data-channel GObject signal This new signal allows data-channel consumers to configure signal handlers on a newly created data-channel, before any data or state change has been notified. The webrtcin unit-tests were refactored to make use of this new signal. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2427> 2022-05-16 16:43:57 +0100 Philippe Normand <philn@igalia.com> * ext/webrtc/webrtcdatachannel.c: webrtcdatachannel: Chain to parent class constructed And add a debug log statement. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2427> 2022-06-02 10:32:28 -0400 Eric Knapp <emkman99@gmail.com> * docs/plugins/gst_plugins_cache.json: * sys/decklink/gstdecklink.cpp: * sys/decklink/gstdecklink.h: * sys/decklink/gstdecklinkvideosink.cpp: * sys/decklink/gstdecklinkvideosink.h: decklinkvideosink: Add 3G-SDI Level A output support Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2544> 2022-06-04 15:05:05 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/codecparsers/gsth264parser.c: h264parser: Fix memory leaks in parse_user_data_unregistered(). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2551> 2022-06-04 17:23:00 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * gst/rtmp2/rtmp/rtmpmessage.c: rtmp2: Fix allocation of GstRtmpMeta Use the right size. On 64-bit platforms, `GstMetaInfo` is larger than `GstRtmpMeta`, which masked this bug. On 32-bit platforms, it causes crashes. Thanks to @maxatka for discovering this. Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1721 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2553> 2022-06-02 16:38:55 +0200 Robert Mader <robert.mader@collabora.com> * docs/plugins/gst_plugins_cache.json: * ext/wayland/gstwaylandsink.c: gstwaylandsink: Add support for the "render-rectangle" property We already implement the `set_render_rectangle` videooverlay interface, thus install the videooverlay property accordingly. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2479> 2022-01-04 15:20:41 +0100 Robert Mader <robert.mader@collabora.com> * docs/plugins/gst_plugins_cache.json: * ext/wayland/gstwaylandsink.c: * ext/wayland/gstwaylandsink.h: * ext/wayland/meson.build: * ext/wayland/wldisplay.c: * ext/wayland/wldisplay.h: * ext/wayland/wlwindow.c: * ext/wayland/wlwindow.h: * gst-libs/gst/wayland/gstwl_fwd.h: * gst-libs/gst/wayland/gstwlbuffer.c: * gst-libs/gst/wayland/gstwlbuffer.h: * gst-libs/gst/wayland/gstwlcontext.c: * gst-libs/gst/wayland/gstwlcontext.h: * gst-libs/gst/wayland/gstwldisplay.c: * gst-libs/gst/wayland/gstwldisplay.h: * gst-libs/gst/wayland/gstwllinuxdmabuf.c: * gst-libs/gst/wayland/gstwllinuxdmabuf.h: * gst-libs/gst/wayland/gstwlshmallocator.c: * gst-libs/gst/wayland/gstwlshmallocator.h: * gst-libs/gst/wayland/gstwlvideobufferpool.c: * gst-libs/gst/wayland/gstwlvideobufferpool.h: * gst-libs/gst/wayland/gstwlvideoformat.c: * gst-libs/gst/wayland/gstwlvideoformat.h: * gst-libs/gst/wayland/gstwlwindow.c: * gst-libs/gst/wayland/gstwlwindow.h: * gst-libs/gst/wayland/meson.build: * gst-libs/gst/wayland/wayland-prelude.h: * gst-libs/gst/wayland/wayland.c: * gst-libs/gst/wayland/wayland.h: * tests/examples/waylandsink/main.c: * tests/examples/waylandsink/wayland-threads.c: gstwayland: Move reusable parts of the waylandsink into a library In preparation for the new element `GstGtkWaylandSink`, move reusable parts out of `GstWaylandSink` into the already exisiting but very barebone library. Notable changes include: - the `GstWaylandVideo` interface was dropped - support for `wl-shell` was dropped - lots of renaming in order to match established naming patterns - lots of code modernisations, reducing boilerplate - members were made private wherever possible Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2479> 2022-06-06 00:30:15 +0200 Jan Alexander Steffens (heftig) <heftig@archlinux.org> * ext/opencv/gstcvtracker.cpp: * ext/opencv/gstcvtracker.h: * ext/opencv/meson.build: opencv: Allow building against 4.6.x Replace the broken version checks with one modeled after `GLIB_CHECK_VERSION`. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2557> 2022-05-30 16:31:38 -0400 Olivier Crête <olivier.crete@collabora.com> * ext/webrtc/gstwebrtcbin.c: * tests/check/elements/webrtcbin.c: webrtcbin: Reject answers that don't contain the same number of m-line as offer Otherwise, it segfaults later. Also add test to validate this. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2526> 2022-03-15 12:44:20 +0100 Marc Leeman <m.leeman@televic.com> * docs/plugins/gst_plugins_cache.json: * gst/librfb/gstrfb-utils.c: * gst/librfb/gstrfb-utils.h: * gst/librfb/gstrfbsrc.c: * gst/librfb/gstrfbsrc.h: * gst/librfb/meson.build: rfbsrc: add uri interface Adding a uri interface enables plugging in RFB/VNC sources to anything that makes use of uridecodebin: gst-play-1.0 rfb://:password@10.40.216.180:5903?shared=1 Use userinfo to pass user (ignored) and password, other key/value pairs can be encoded in the query part of the URI (see shared) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1963> 2022-05-17 00:36:24 +0200 Andoni Morales Alastruey <ylatuya@gmail.com> * gst/videoparsers/gsth264parse.c: * gst/videoparsers/gstvideoparseutils.c: * gst/videoparsers/gstvideoparseutils.h: videoparse: rename from _free to _clear The function does not free the structure but the data contained within. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1458> 2022-05-16 14:21:53 +0200 Andoni Morales Alastruey <ylatuya@gmail.com> * gst-libs/gst/codecparsers/gsth264parser.c: h264parse: fix leak in user data unregistered Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1458> 2022-02-27 18:41:12 +0000 Andoni Morales Alastruey <ylatuya@gmail.com> * gst-libs/gst/codecparsers/gsth264parser.h: Fix documentation Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1458> 2022-02-17 15:55:19 +1100 Brad Hards <bradh@frogmouth.net> * tests/check/elements/h264parse.c: h264parse: add unit test for Precision Time Stamp in SEI messages Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1458> 2021-12-19 19:14:05 +0100 Andoni Morales Alastruey <ylatuya@gmail.com> * gst-libs/gst/codecparsers/gsth264parser.c: * gst-libs/gst/codecparsers/gsth264parser.h: * gst/videoparsers/gsth264parse.c: * gst/videoparsers/gsth264parse.h: * gst/videoparsers/gstvideoparseutils.c: * gst/videoparsers/gstvideoparseutils.h: h264parse: add support Precision Time Stamp in SEI messages Expose User Data Unregistered as a new Meta and add API to parse Precision Time Stamp (ST 0604). Fixes #927 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1458> 2022-06-02 02:22:19 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/cuda/meson.build: meson: cuda: Add missing override_dependency() Required for GstCuda library to be consumed via "gstreamer-cuda-1.0" dependency. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2539> 2022-06-02 21:25:38 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/cuda/gstcudautils.c: cuda: Fix uninitialized debug category Make sure debug category init Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2542> 2022-04-22 06:46:07 +0000 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkav1enc.c: * sys/msdk/gstmsdkav1enc.h: * sys/msdk/gstmsdkenc.c: * sys/msdk/gstmsdkenc.h: msdkav1enc: Reorder pts This is a workaround for pts because oneVPL cannot handle the pts correctly when there is b-frames. We first cache the input frame pts in a queue then retrive the smallest one for the output encoded frame as we always output the coded frame when this frame is displayable. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2089> 2022-03-31 06:45:03 +0000 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkav1enc.c: * sys/msdk/gstmsdkav1enc.h: msdkav1enc: Add b-pyramid and p-pyramid Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2089> 2022-03-31 06:33:55 +0000 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkav1enc.c: * sys/msdk/gstmsdkav1enc.h: msdkav1enc: Add tile for encoding Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2089> 2022-03-31 06:03:36 +0000 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdk.c: * sys/msdk/gstmsdkav1enc.c: * sys/msdk/gstmsdkav1enc.h: * sys/msdk/gstmsdkenc.c: * sys/msdk/gstmsdkenc.h: * sys/msdk/meson.build: msdk: Add msdkav1enc element Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2089> 2022-05-31 20:39:29 +0200 Jakub Adam <jakub.adam@collabora.com> * sys/amfcodec/gstamfencoder.cpp: amfencoder: always empty the queue when pushing output samples gst_amf_encoder_try_output() pushes at most one output buffer downstream although more may be ready. As a consequence, output samples will keep queueing up in AMFComponent whenever QueryOutput() returns AMF_REPEAT (and do_wait is FALSE). This has negative impact on latency when the video being encoded is a live stream. In order to avoid it, always retrieve and push all samples available in AMFComponent's output queue at once. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2536> 2022-05-29 06:55:27 +0900 Seungha Yang <seungha@centricular.com> * sys/directshow/gstdshowvideosrc.cpp: * sys/directshow/plugin.cpp: directshow: Fix for uninitialized debug category warning A method in the code is used in another place (device provider) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2519> 2022-05-29 12:42:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabaseenc.c: * sys/va/gstvabasetransform.c: va: Register base classes as abstract. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2521> 2022-05-29 12:09:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaencoder.c: va: encoder: Use entrypoint type. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2521> 2022-05-27 14:47:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: va264enc: Fix typo. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2508> 2022-05-27 14:45:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaencoder.c: va: encoder: Fix regression since commit 2042c2d4f0. There's no need to compare with the open entrypoint to query the encoder. This commit removes the checks to the configured entrypoint with the parameter. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2508> 2022-03-26 23:48:46 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfh264enc.cpp: * sys/mediafoundation/gstmfh265enc.cpp: * sys/mediafoundation/gstmfvideoencoder.cpp: * sys/mediafoundation/gstmfvideoencoder.h: * sys/mediafoundation/gstmfvp9enc.cpp: * tests/examples/mediafoundation/meson.build: * tests/examples/mediafoundation/mfvideoenc-dynamic-reconfigure.c: * tests/examples/meson.build: mfvideoencoder: Handle dynamic property update Re-init MFT on property update to apply new encoding options Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2037> 2022-03-26 23:50:24 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/plugin.cpp: mediafoundation: Run indent Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2037> 2022-03-26 22:24:27 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfvideoencoder.cpp: mfvideoenc: Remove redundant bitwise or operation MFT_ENUM_FLAG_SORTANDFILTER_APPROVED_ONLY (0xc0) covers MFT_ENUM_FLAG_SORTANDFILTER (0x40) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2037> 2022-03-26 21:47:10 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfvideoencoder.cpp: mfvideoencoder: Early terminate d3d11 interop Shared texture will work only for the same GPU Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2037> 2022-03-26 21:43:50 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfvideoencoder.cpp: mfvideoencoder: Check HRESULT code as well for GPU sync Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2037> 2022-03-26 21:40:47 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfvideoencoder.cpp: mfvideoencoder: Don't specify keyed mutex misc flag Current implemetation copies textures using non-keyed mutex way. D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX is pointless Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2037> 2022-05-25 13:25:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvacompositor.c: vacompositor: Pass video info pointer than copying it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2496> 2022-05-25 13:24:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvacompositor.c: vacompositor: Remove useless consts. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2496> 2022-05-27 21:13:43 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11memory.cpp: * gst-libs/gst/d3d11/gstd3d11memory.h: * sys/d3d11/gstd3d11decoder.cpp: d3d11decoder: Work around Intel DXVA driver crash Intel DXVA driver crashes sometimes (from GPU thread) if ID3D11VideoDecoder is released while there are outstanding view objects. To make sure the object life cycle, holds an ID3D11VideoDecoder refcount in GstD3D11Memory object. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2504> 2022-05-26 23:50:08 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvencoder.cpp: qsvencoder: Bind internal texture to render target ... so that memory allocator can initialize texture with black color Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2502> 2022-05-26 23:46:05 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11memory.cpp: d3d11memory: Clear YUV texture with black color We prefer black color as an initial texture color and Direct3D11 runtime will initialize texture with zeros (except for alpha) which is fine for RGB formats. But UV components of YUV texture requires manual clear for black color. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2502> 2022-05-24 12:54:05 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com> * tests/check/elements/vacompositor.c: * tests/check/meson.build: tests: va: add simple vacompositor test Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2481> 2022-04-22 16:29:56 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkh265enc.c: * sys/msdk/gstmsdkh265enc.h: msdkh265enc: Add intra refresh parameters Note that for msdkh265enc, intra refresh parameters are only supported under low-power mode. If these parameters are set without enabling lowpower, they will be simply ignored. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2308> 2022-04-15 13:38:20 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkh264enc.c: * sys/msdk/gstmsdkh264enc.h: msdkh264enc: Add intra refresh parameters Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2308> 2022-05-23 00:36:50 +0900 Seungha Yang <seungha@centricular.com> * tests/examples/d3d11/d3d11videosink-kb.c: * tests/examples/d3d11/d3d11videosink-kb.h: * tests/examples/d3d11/d3d11videosink.c: * tests/examples/d3d11/meson.build: * tests/examples/key-handler.c: * tests/examples/key-handler.h: * tests/examples/nvcodec/meson.build: * tests/examples/nvcodec/nvcodec-kb.c: * tests/examples/nvcodec/nvcodec.c: * tests/examples/nvcodec/nvcodec.h: * tests/examples/qsv/meson.build: * tests/examples/qsv/qsvenc-dynamic-reconfigure.c: tests: examples: Stop duplicating keyboard interaction handler code Extract the code from QSV and use it for D3D11 and NVCODEC examples Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2468> 2022-05-26 14:08:55 +0100 Tim-Philipp Müller <tim@centricular.com> * ext/webrtc/gstwebrtcice.c: webrtc: fix build with older libnice versions 1) check for right macro name when checking for NICE_VERSION_CHECK 2) if libnice version is 0.1.18.1 this should not satisfy a NICE_VERSION_CHECK(0,1,19). Fixes build with libnice 0.1.18.1 subproject checkout. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2499> 2022-05-24 05:33:05 +1000 Jan Schmidt <jan@centricular.com> * sys/androidmedia/gstamc.c: amc: Don't map input buffer with write mode When copying data out of a GStreamer buffer, we don't need to map it writable. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2492> 2022-05-11 09:17:46 +0100 Philippe Normand <philn@igalia.com> * ext/webrtc/gstwebrtcice.c: webrtc: Use new libnice API to get the candidate relay address Corresponding libnice API added in: https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/229 (0.1.19) https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/232 (0.1.20) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1998> 2022-05-11 09:15:33 +0100 Philippe Normand <philn@igalia.com> * ext/webrtc/gstwebrtcice.c: * ext/webrtc/meson.build: webrtc: Ensure the NICE_CHECK_VERSION macro is available This macro was introduced in libnice 0.1.19.1, so until we bump our libnice dependency to 0.1.20 we have to vendor the macro. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1998> 2022-03-26 12:36:46 +0000 Philippe Normand <philn@igalia.com> * ext/webrtc/gstwebrtcice.c: * ext/webrtc/gstwebrtcice.h: * ext/webrtc/gstwebrtcstats.c: webrtc: Refactor ICECandidateStats freeing logic to a dedicated function Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1998> 2022-03-20 12:36:07 +0000 Philippe Normand <philn@igalia.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: Document IceCandidateStats and RTCIceCandidatePairStats Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1998> 2021-09-01 16:12:24 +0000 Sherrill Lin <lshuying@amazon.com> * tests/check/elements/webrtcbin.c: webrtcstats: Update unit test for outbound rtp stats "remote-id" is not guaranteed to present after commit 1deb034e3d873f577a38bc483e6256b0346ee874. Thus, we should not fail the test if "remote-id" is not found. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1998> 2021-06-30 16:01:10 -0400 Sherrill Lin <lshuying@amazon.com> webrtcstats: Improve selected candidate pair stats by adding ICE candidate info The implementation follows w3.org specs: * https://www.w3.org/TR/webrtc-stats/#icecandidate-dict* * https://www.w3.org/TR/webrtc-stats/#candidatepair-dict* Corresponding unit tests are also added. Rebased and updated from https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1462 Fixes #1207 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1998> 2022-05-23 20:58:47 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvabaseenc.c: * sys/va/gstvabaseenc.h: * sys/va/gstvaencoder.c: * sys/va/gstvaencoder.h: * sys/va/gstvah264enc.c: * sys/va/gstvah264enc.h: * sys/va/plugin.c: va: H264enc: Add encoder for VAEntrypointEncSliceLP. We name vah264lpenc to support H264's VAEntrypointEncSliceLP encoder. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2472> 2022-05-25 20:01:34 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvabaseenc.c: va: encoder: Do not reset the frame count when reconfig(). We should not reset the input/output_frame_count when some configure changes. For example, the if resolution changes, the current way just resets the frame count and make the PTS of the output buffer restart from the original PTS of the first frame. That causes a lot of QOS event and drop all the new frames. We should only reset them when encoder start(). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2489> 2022-05-25 19:57:18 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvabaseenc.c: * sys/va/gstvabaseenc.h: * sys/va/gstvah264enc.c: va: encoder: change reset_state() to a virtual function of base class. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2489> 2022-05-24 10:21:31 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com> * sys/va/gstvacompositor.c: vacompositor: check caps and info return values Check return values for get caps and video info from caps. This was flagged by static analysis. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2480> 2022-05-25 02:38:01 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11av1dec.cpp: * sys/d3d11/gstd3d11h264dec.cpp: * sys/d3d11/gstd3d11h265dec.cpp: * sys/d3d11/gstd3d11mpeg2dec.cpp: * sys/d3d11/gstd3d11vp8dec.cpp: * sys/d3d11/gstd3d11vp9dec.cpp: d3d11decoder: Don't print error log on negotiation failure It may not be a critical error and even expected when shutting down pipeline or flushing. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2483> 2022-05-24 11:06:39 +0200 Erwann Gouesbet <erwann.gouesbet@blacknut.com> * sys/d3d11/gstd3d11screencapture.cpp: d3d11screencapture: Fix missing/outdated cursor shape d3d11screencapture can miss a cursor shape to draw or draw an outdated cursor shape. - AcquireNextFrame only provides cursor shape when there is one update - current d3d11screencapture skips cursor shape when mouse is not drawn So, if a gstreamer application uses d3d11screencapture with cursor initially not drawn "show-cursor"=false and then switches this property to true, the cursor will not be actually drawn until AcquireNextFrame provides a new cursor shape. This commit makes d3d11screencapture always update the cursor shape information, even if the mouse is not drawn. d3d11screencapture will always have the latest cursor shape when requested to draw it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2485> 2022-05-24 14:47:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/plugin.c: va: Avoid unused variable if logging is disabled. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2478> 2022-05-22 10:10:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaencoder.c: * sys/va/gstvah264enc.c: va: Keep include's code style Headers are in alphabetical order. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2465> 2022-05-24 13:19:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvafilter.c: vafilter: Fix logging of unsupported alpha blending. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2477> 2022-05-24 14:36:36 +1000 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: * tests/check/elements/webrtcbin.c: webrtcbin: reuese the same fec/rtx/red payload types for the same media payload WHen bundling, if multiple medias are used with the same media payload, then each of the fec/rtx/red additions would add a distinct payload. This could very easily overflow the available payload space. Instead, track the relationship between the media payload value and the relevant fec/rtx/red payload values and reuse them whenever necessary, even when bundling. e.g. ... a=group:BUNDLE video0 video1 m=video 9 UDP/SAVPF 96 97 a=mid:video0 a=rtpmap:96 VP8/90000 a=rtpmap:97 rtx/90000 a=fmtp:97 apt=96 ... m=video 9 UDP/SAVPF 96 97 a=mid:video1 a=rtpmap:96 VP8/90000 a=rtpmap:97 rtx/90000 a=fmtp:97 apt=96 ... Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2474> 2022-05-23 00:04:03 +0900 Seungha Yang <seungha@centricular.com> * tests/examples/qsv/qsvenc-dynamic-reconfigure.c: tests: examples: Fix typo in QSV encoder example Fixing width adjustment Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2467> 2022-05-22 22:44:11 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvav1enc.cpp: * sys/qsv/gstqsvav1enc.h: * sys/qsv/meson.build: * sys/qsv/plugin.cpp: * tests/examples/qsv/qsvenc-dynamic-reconfigure.c: qsv: Add AV1 encoder element Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2467> 2022-05-22 21:38:34 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvencoder.cpp: * sys/qsv/gstqsvh264enc.cpp: * sys/qsv/gstqsvh265enc.cpp: * sys/qsv/gstqsvjpegenc.cpp: * sys/qsv/gstqsvvp9enc.cpp: qsvencoder: Move common property to baseclass adapter-luid and device-path are common for all codecs Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2467> 2022-05-23 15:03:03 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvabaseenc.c: va: baseenc: No need to check the frame pointer in handle_frame(). No need to check the NULL pointer of "frame" in error handling, it is assured non-NULL by base class and we already use it everywhere in this function. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2471> 2022-05-22 15:03:54 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvabaseenc.c: va: baseenc: include the "vacompat.h" for old version glib. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2463> 2022-04-26 12:07:26 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com> * sys/va/plugin.c: va: vpp: enable compositor Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2332> 2022-04-26 12:06:17 -0400 U. Artie Eoff <ullysses.a.eoff@intel.com> * sys/va/gstvacompositor.c: * sys/va/gstvacompositor.h: * sys/va/gstvafilter.c: * sys/va/gstvafilter.h: * sys/va/meson.build: va: vpp: add compositor New implementation of a VA-API compositor with blend feature. Various chunks of code was taken from vavpp. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2332> 2022-03-25 21:51:47 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvah264enc.c: va: Apply the va base encoder to the vah264enc. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2330> 2022-03-25 21:48:05 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvabaseenc.c: * sys/va/gstvabaseenc.h: * sys/va/meson.build: va: Add the GstVaBaseEnc common object for all va encoders. Just like the GstVaBaseDec and GstVaBaseTransform, this base encoder will handle all common logic for all va encoders. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2330> 2022-05-15 00:56:59 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11_private.h: * gst-libs/gst/d3d11/gstd3d11device.cpp: * gst-libs/gst/d3d11/gstd3d11format.cpp: * gst-libs/gst/d3d11/gstd3d11format.h: d3d11device: Enhance format enumeration and debugging * Enhance debug log to print human readable D3D11_FORMAT_SUPPORT flags value, instead of packed numeric flagset value. * Only device supported format will be added to format table. Depending on device feature level (i.e., D3D9 feature devices), 16bits formats will not be supported. Although there might be formats we deinfed but not supported, it will not be a major issue in practice since our D3D11 implementation does not support legacy devices already (known limitation) and also old d3dvideosink will be promoted in that case. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2441> 2021-12-22 19:23:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * docs/plugins/gst_plugins_cache.json: * gst/jpegformat/gstjpegparse.c: * gst/jpegformat/gstjpegparse.h: * gst/jpegformat/meson.build: * tests/check/elements/jpegparse.c: jpegparse: Rewrite element. Now it uses the JPEG parser in libgstcodecparsers, while the whole code is simplified by relying more in baseparser class for tag handling. The element now signals chroma-format and default framerate is 0/1, which is for still-images. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1473> 2021-12-25 13:00:17 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * tests/check/elements/jpegparse.c: tests: jpegparse: Mark data as static. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1473> 2021-12-22 18:13:17 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst/jpegformat/gstjifmux.c: * gst/jpegformat/gstjifmux.h: * gst/jpegformat/gstjpegformat.h: * gst/jpegformat/gstjpegparse.c: * gst/jpegformat/meson.build: jpegformat: Use codecparsers' for JPEG markers. Instead of repeating JPEG markers definition, this patch uses those defined in gstcodecparsers library. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1473> 2021-12-22 17:35:23 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst/jpegformat/gstjpegparse.c: * gst/jpegformat/gstjpegparse.h: jpegparse: Headers cleanup Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1473> 2022-05-18 16:54:53 +0100 Philippe Normand <philn@igalia.com> * ext/webrtc/webrtcdatachannel.c: datachannel: Notify low buffered amount according to spec Quoting https://www.w3.org/TR/webrtc/#dom-rtcdatachannel-bufferedamountlowthreshold The bufferedAmountLowThreshold attribute sets the threshold at which the bufferedAmount is considered to be low. When the bufferedAmount decreases from above this threshold to **equal** or below it, the bufferedamountlow event fires. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2448> 2022-05-17 14:15:40 +0300 Sebastian Dröge <sebastian@centricular.com> * gst/mpegtsmux/gstbasetsmux.c: tsmux: Make sure to set srcpad caps under all conditions before outputting the first buffer Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1218 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2438> 2022-05-17 04:27:00 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11device.cpp: d3d11device: Don't print ERROR log on open failure Device open can be failed in various reasons, but it's unlikely our problem Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2433> 2022-05-17 14:02:28 +0300 Sebastian Dröge <sebastian@centricular.com> * gst/sdp/gstsdpdemux.c: sdpdemux: Release request pads from rtpbin when freeing a stream Otherwise the pads of the rtpbin stay around forever and are leaked. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2437> 2022-05-17 03:32:10 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/libmfx/meson.build: * sys/qsv/meson.build: qsv: Disable non-MSVC build on Windows ... and remove pointless UWP consideration that will never work. Cross-compiled binary has an issue which causes deadlock. Although cerbero will not build this plugin for non-MSVC build, people can still build this plugin and may complain its brokenness. See also https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/854 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2431> 2022-04-28 16:02:26 +0100 Diogo Goncalves <diogo@diporg.com> * sys/applemedia/avfvideosrc.m: avfvideosrc: fix wrong framerate selected for caps This fix solves an issue where a format that doesn't support the requested framerate would be selected. It ensures that we use the first format and framerate pair that supports the requested caps. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2331> 2022-05-12 05:13:08 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11av1dec.cpp: * sys/d3d11/gstd3d11decoder.cpp: * sys/d3d11/gstd3d11decoder.h: * sys/d3d11/gstd3d11h264dec.cpp: * sys/d3d11/gstd3d11h265dec.cpp: * sys/d3d11/gstd3d11mpeg2dec.cpp: * sys/d3d11/gstd3d11vp8dec.cpp: * sys/d3d11/gstd3d11vp9dec.cpp: d3d11decoder: Add hardcoded minimum resolution values to caps for NVIDIA NVIDIA GPUs have undocumented limitation regarding minimum resolution and it can be queried via a NVDEC API. However, since we don't want to bring CUDA/NVDEC API into D3D11, use hardcoded values for now until we find a nice way for capability check. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2406> 2022-05-12 07:23:29 +0200 Edward Hervey <edward@centricular.com> * gst/mxf/mxfdemux.c: mxfdemux: Handle files produced by legacy FFmpeg Until March 2022, the FFmpeg MXF muxer would write the various index table segments with the same instance ID, which should only be used if it is a duplicate/repeated table. In order to cope with those, we first compare the other index table segment properties (body/index SID, start position) before comparing the instance ID. This will ensure that we don't consider them as duplicate, but can still detect "real" duplicates (which would have the same other properties). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2407> 2022-05-03 16:23:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabasedec.c: va: basedec: Always select first available format. If the stream chroma doesn't match with any video format in the source caps template (generated from va config surface formats) instead of return unknown, return the first available format in the template, assuming that the driver would be capable to do color conversions. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2404> 2022-05-07 03:15:44 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gsth265decoder.c: h265decoder: Improve robustness against malformed NAL packets Use newly added gst_h265_parser_identify_and_split_nalu_hevc() method to handle broken streams where packetized NAL unit contain start code prefix in it. It's obviously wrong stream but we know how to work around it and even need to support such broken streams since stateless decoder implementations are being a primary decoder element. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2394> 2022-05-10 03:32:42 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecparsers/gsth265parser.c: * gst-libs/gst/codecparsers/gsth265parser.h: * tests/check/libs/h265parser.c: h265parser: Add a new NAL parsing API to handle malformed packets Add gst_h265_parser_identify_and_split_nalu_hevc() method to handle a case where packetized stream contains start-code prefix. This new method behaves similar to exisiting gst_h265_parser_identify_nalu_hevc() but it will scan start-code prefix to split given data into NAL units. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2394> 2022-03-30 17:19:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaav1dec.c: * sys/va/gstvabasedec.c: * sys/va/gstvah264dec.c: * sys/va/gstvah265dec.c: * sys/va/gstvampeg2dec.c: * sys/va/gstvavp8dec.c: * sys/va/gstvavp9dec.c: va: basedec: Select format from template or negotiated caps. Instead of using a hard-coded list of preferred formats according the chroma type, now if now caps are pre-negotiated, from template caps will choose the first format with the same chroma type. If pre-negotiated, then it will choose the first format, with same chroma type, from the first caps structure. Also all the decoders will check if GST_VIDEO_FORMAT_UNKNOWN is returned, failing the negotiation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2351> 2022-05-06 17:53:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/gstvadisplay_drm.c: libs: va: Add O_CLOEXEC flag at opening drm device. So any other potential subprocess won't have access to it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2386> 2022-05-06 18:21:00 -0400 Olivier Crête <olivier.crete@ocrete.ca> * gst/pcapparse/gstpcapparse.c: pcapparse: Set timestamp in DTS, not PTS This matches the behaviour of basesrc, in particular, it matches the behaviour of udpsrc, so it's easier to use to as a replacement to test rtpjitterbuffer and other similar elements. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2388> 2022-01-16 15:51:32 +0300 Dmitry Osipenko <digetx@gmail.com> * sys/v4l2codecs/gstv4l2codech264dec.c: * sys/v4l2codecs/linux/v4l2-controls.h: v4l2codecs: h264: Set frame type flags V4L spec now requires decode_params flags to be set in accordance to the frame's type. In particular this is required by H.264 decoder of NVIDIA Tegra SoC to operate properly. Set the flags based on type of parsed slices. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1757> 2022-05-06 10:50:59 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * tests/check/meson.build: tests: Skip test if srtp element not built Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2383> 2022-05-06 01:46:36 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11memory.cpp: d3d11memory: Protect against concurrent access from GPU and CPU to staging texture Staging texture does not allow GPU access while it's CPU mapped. But because we cannot block concurrent READ access by GstMemory design, additional staging texture is still required. Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1182 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2375> 2022-05-05 02:16:54 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11screencapture.cpp: * sys/d3d11/gstd3d11screencapture.h: * sys/d3d11/gstd3d11screencapturesrc.cpp: * tests/examples/d3d11/d3d11screencapturesrc.cpp: d3d11screencapturesrc: Fix crash when d3d11 device is different from owned one GstD3D11ScreenCapture object is pipeline-independent global object and the object can be shared by multiple src elements, in order to overcome a limitation of DXGI Desktop Duplication API. Note that the API allows only single capture session in a process for a monitor. Therefore GstD3D11ScreenCapture object must be able to handle a case where a src element holds different GstD3D11Device object. Which can happen when GstD3D11Device context is not shared by pipelines. What's changed: * Allocates capture texture with D3D11_RESOURCE_MISC_SHARED for the texture to be able to copied into other device's texture * Holds additional shader objects per src element and use it when drawing mouse Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1197 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2366> 2022-05-05 20:35:57 +0300 Sebastian Dröge <sebastian@centricular.com> * gst/mxf/mxfmux.c: mxfmux: Disable aggregator's default negotiation mxfmux can't negotiate caps with upstream/downstream and always outputs specific caps based on the input streams. This will always happen before it produces the first buffers. By having the default aggregator negotiation enabled the same caps would be pushed twice in the beginning, and again every time a reconfigure event is received. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2372> 2022-05-05 20:35:49 +0300 Sebastian Dröge <sebastian@centricular.com> * gst/mpegtsmux/gstbasetsmux.c: mpegtsmux: Disable aggregator's default negotiation mpegtsmux can't negotiate caps with upstream/downstream and always outputs specific caps based on the input streams. This will always happen before it produces the first buffers. By having the default aggregator negotiation enabled the same caps would be pushed twice in the beginning, and again every time a reconfigure event is received. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2372> 2022-05-05 00:24:26 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gsth264decoder.c: h264decoder: Fix for unhandled low-delay decoding case Baseclass calls get_preferred_output_delay() in a chain of sequence header parsing and then new_sequence() is called with required DPB size (includes render-delay) information. Thus latency query should happen before the sequence header parsing for subclass to report required render-delay accordingly via get_preferred_output_delay() method. (e.g., zero delay in case of live pipeline) This commit is to fix wrong liveness signalling in case of upstream packetized format. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2363> 2022-05-05 00:49:27 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gsth265decoder.c: h265decoder: Fix for unhandled low-delay decoding case Baseclass calls get_preferred_output_delay() in a chain of sequence header parsing and then new_sequence() is called with required DPB size (includes render-delay) information. Thus latency query should happen before the sequence header parsing for subclass to report required render-delay accordingly via get_preferred_output_delay() method. (e.g., zero delay in case of live pipeline) This commit is to fix wrong liveness signalling in case of upstream packetized format. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2364> 2022-05-04 23:36:30 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvh264dec.c: * sys/nvcodec/gstnvh265dec.c: nvh264dec,nvh265dec: Don't realloc bitstream buffer per slice Allocated memory size has not been updated which results in realloc per slice. Fixing it and also release bitstream buffer on ::close(), not finalize. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2361> 2022-04-29 20:28:53 +0200 Jakub Adam <jakub.adam@collabora.com> * sys/d3d11/gstd3d11screencapture.cpp: d3d11screencapture: Set viewport when drawing mouse cursor If there weren't any moved/dirty regions in the captured frame, the viewport of the ID3D11DeviceContext would be left at whatever previous value it had, which could lead to the cursor being drawn in a wrong position and/or in an incorrect size. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2362> 2022-05-02 22:59:59 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvav1dec.c: * sys/nvcodec/gstnvav1dec.h: * sys/nvcodec/gstnvdecoder.c: * sys/nvcodec/gstnvdecoder.h: * sys/nvcodec/gstnvh264dec.c: * sys/nvcodec/gstnvh265dec.c: * sys/nvcodec/gstnvvp8dec.c: * sys/nvcodec/gstnvvp9dec.c: * sys/nvcodec/meson.build: * sys/nvcodec/plugin.c: nvcodec: Add AV1 decoder Adding GstCodecs based AV1 decoder element Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1453> 2022-05-03 23:56:12 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gstav1decoder.c: * gst-libs/gst/codecs/gstav1decoder.h: av1decoder: Add support for render delay Sync up with other decoder baseclass implementations Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1453> 2022-04-28 03:14:54 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gstav1decoder.c: * gst-libs/gst/codecs/gstav1picture.h: av1decoder: Hold OBU temporal and spatial id in picture struct NVDEC API requires the information Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1453> 2022-05-04 01:03:37 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/meson.build: meson: nvcodec: Remove unnecessary override option and fix build with non-MSVC cpp_std=c++11 was hack for macOS build but we don't build this plugin for Apple device anymore. And add "-Wno-deprecated-declarations" compile option for gcc/clang Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1453> 2021-12-17 17:22:22 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/cuviddec.h: * sys/nvcodec/nvEncodeAPI.h: * sys/nvcodec/nvcuvid.h: nvcodec: Bump SDK header version to 11.1 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1453> 2022-05-02 22:46:06 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvdecoder.c: * sys/nvcodec/gstnvh264dec.c: * sys/nvcodec/gstnvh265dec.c: * sys/nvcodec/gstnvvp8dec.c: * sys/nvcodec/gstnvvp9dec.c: nvdecoder: Handle DPB size margin in a single place ... instead of each subclass Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2343> 2022-05-02 22:41:53 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11av1dec.cpp: * sys/d3d11/gstd3d11decoder.cpp: * sys/d3d11/gstd3d11h264dec.cpp: * sys/d3d11/gstd3d11h265dec.cpp: * sys/d3d11/gstd3d11mpeg2dec.cpp: * sys/d3d11/gstd3d11vp8dec.cpp: * sys/d3d11/gstd3d11vp9dec.cpp: d3d11decoder: Handle DPB size margin in a single place ... instead of each subclass Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2343> 2022-04-28 04:25:05 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gstav1decoder.c: * gst-libs/gst/codecs/gstav1decoder.h: * gst-libs/gst/codecs/gstmpeg2decoder.c: * gst-libs/gst/codecs/gstmpeg2decoder.h: * gst-libs/gst/codecs/gstvp8decoder.c: * gst-libs/gst/codecs/gstvp8decoder.h: * gst-libs/gst/codecs/gstvp9decoder.c: * gst-libs/gst/codecs/gstvp9decoder.h: * sys/d3d11/gstd3d11av1dec.cpp: * sys/d3d11/gstd3d11mpeg2dec.cpp: * sys/d3d11/gstd3d11vp8dec.cpp: * sys/d3d11/gstd3d11vp9dec.cpp: * sys/nvcodec/gstnvvp8dec.c: * sys/nvcodec/gstnvvp9dec.c: * sys/v4l2codecs/gstv4l2codecmpeg2dec.c: * sys/v4l2codecs/gstv4l2codecvp8dec.c: * sys/v4l2codecs/gstv4l2codecvp9dec.c: * sys/va/gstvaav1dec.c: * sys/va/gstvampeg2dec.c: * sys/va/gstvavp8dec.c: * sys/va/gstvavp9dec.c: codecs: Signal required DPB size for AV1,MPEG2,VP8, and VP9 via new_sequence() Make all codecs consistent so that subclass can know additional DPB size requirement depending on render-delay configuration regardless of codec. Note that render-delay feature is not implemented for AV1 yet but it's planned. Also, consider new_sequence() is mandatory requirement, not optional Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2343> 2022-04-12 12:17:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2format.c: v4l2codecs: Port to the new tile size helper This will complete the scaling of width/height shift scaling as only a partial implementation was made. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190> 2022-05-02 11:46:59 -0400 Thibault Saunier <tsaunier@igalia.com> * gst-libs/gst/cuda/meson.build: cuda: Fix introspection warnings Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1183 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2344> 2022-05-02 21:57:07 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/cuda/gstcudautils.c: Revert "cuda: Fix GstCudaContext refcount bug" This reverts commit df7ee0e21518ab5586e4094f2089048f3767d5f5. We should not unref it since gst_message_new_have_context() takes ownership of the GstContext. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2342> 2022-05-02 09:15:57 +0200 Edward Hervey <edward@centricular.com> * gst/mpegtsdemux/mpegtspacketizer.c: tsdemux: Demote warning to simple debug That issue is actually handled, so don't pollute the logs with such warning. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2340> 2022-04-29 19:08:46 +0300 Sebastian Dröge <sebastian@centricular.com> * gst/interlace/gstinterlace.c: interlace: Also handle a missing "interlace-mode" field as progressive Otherwise caps negotiation will fail in situations that are supposed to work, like: "video/x-raw,framerate=(fraction)60/1" ! interlace field-pattern=0 ! "video/x-raw,framerate=(fraction)30/1" Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2335> 2022-04-29 19:08:32 +0300 Sebastian Dröge <sebastian@centricular.com> * gst/interlace/gstinterlace.c: interlace: Add some more debug output to the getcaps function Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2335> 2022-04-29 16:56:54 +0100 Myles Inglis <myles.inglis@vcatechnology.com> * gst-libs/gst/cuda/gstcudautils.c: cuda: Fix GstCudaContext refcount bug Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2334> 2022-04-28 17:08:11 +0200 Ludvig Rappe <ludvigr@axis.com> * ext/webrtc/icestream.c: webrtc: Fix memory leak in icestream Since both g_value_set_object() and g_weak_ref_get() takes a reference there will be two new references to the GstWebRTCICE object when there should be only one. g_value_take_object() has the same functionality as g_value_set_object() but does not take a reference. Without this change, the GstWebRTCICE object will be leaked. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2333> 2022-04-27 22:50:37 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/cuda/gstcudautils.c: cuda: Correct CUDA device id field in GstContext structure device id is unsigned int, not signed. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2311> 2022-04-28 13:23:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/codecs/gsth265decoder.h: codecs: h265decoder: Fix documentation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2328> 2022-04-27 15:24:50 +0200 Edward Hervey <edward@centricular.com> * gst/mpegtsdemux/mpegtsbase.c: mpegts: Handle "empty" PMT gracefully Some streams have 2 PMT sections in a single TS packet. The first one is "valid" but doesn't contain/define any streams. That causes an unrecoverable issue when we try to activate the 2nd (valid) PMT. Instead of doing that, pre-emptively refuse to process PMT without any streams present within. We still do post that section on the bus to inform applications. Fixes #1181 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2310> 2022-04-26 09:11:07 +0200 Stéphane Cerveau <scerveau@collabora.com> * tests/check/elements/srtp.c: srtp: fix flaky unit test Use different port for each test to avoid other UDP packet to be received. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2294> 2022-04-28 00:48:35 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/plugin.cpp: d3d11h265dec: Assign PRIMARY + 1 rank Promote d3d11h265dec to be default one if available Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2314> 2022-04-28 00:31:49 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvvp9dec.c: nvvp9sldec: Increase DPB size to cover render delay This should've included in the previous MR https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/987 already, but missed. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2313> 2022-03-07 15:44:04 +0000 Thibault Saunier <tsaunier@igalia.com> * ext/qroverlay/gstqroverlay.c: qroverlay: Reset data_changed after we use the info It was never reset so it was always TRUE once the data was changed! Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2299> 2022-03-04 22:00:18 +0000 Thibault Saunier <tsaunier@igalia.com> * ext/qroverlay/gstqroverlay.c: qroverlay: Add a GstQROverlay meta See documentation Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2299> 2022-04-27 00:27:06 +0200 Mathieu Duponchelle <mathieu@centricular.com> * gst/onvif/gstrtponviftimestamp.c: rtponviftimestamp: add extension data to all packets .. regardless of whether they are input as individual buffers or buffer lists. The ONVIF specification requires all packets to hold the extension, it makes no sense to behave differently when handling buffer lists. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2303> 2022-03-08 21:26:16 +0000 Thibault Saunier <tsaunier@igalia.com> * sys/nvcodec/gstcudaconvert.c: cudaconvert: Enhance debugging when setting video info fails Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2300> 2022-04-26 22:35:30 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/codecparsers/gsth265bitwriter.c: codecparsers: bitwriter: Calculate PicSizeInCtbsY when writing slice header. The slice->pps->PicWidthInCtbsY/PicHeightInCtbsY values are calculated when we parse the slice header. But they are not calculated in bitwriter and so may not have valid value when writing slice header. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2287> 2022-04-24 17:26:03 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/codecparsers/gsth265bitwriter.c: codecparsers: bitwriter: Fix some coverity issues of H265 bitwriter. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2287> 2022-04-24 00:02:18 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvabasedec.c: va: dec: Use gst_buffer_pool_config_set_va_alignment() to set alignment. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2282> 2022-04-23 23:59:08 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/va/gstvapool.h: va: pool: Replace all tabs with spaces in header file. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2282> 2022-04-23 23:52:34 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/va/gstvapool.c: va: pool: Delete the GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT. The va pool is used for GPU side surface/image, its alignment should not be changed arbitrarily by others. So we decide not to expose the GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT flag anymore. Instead, user can call gst_buffer_pool_config_set_va_alignment() to set its surface/image alignment. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2282> 2022-04-23 23:40:14 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/va/gstvapool.c: * gst-libs/gst/va/gstvapool.h: va: pool: Add set_va_alignment() API. We want to use gst_buffer_pool_config_set_va_alignment() to replace gst_buffer_pool_config_get_video_alignment(). The later one is specific for GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT option. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2282> 2022-04-26 01:16:06 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gstav1parse.c: av1parse: Fix a latent memory leak in colorimetry setting. Also delete the useless "have_cinfo" judgement. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2288> 2022-04-24 22:54:58 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gstav1parse.c: av1parse: Correct the meaning of color_range flag. According to spec: color range equal to 0 shall be referred to as the studio swing representation and color range equal to 1 shall be referred to as the full swing representation. The current status is just the opposite. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2288> 2022-04-25 22:59:14 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvencoder.cpp: qsvencoder: Workaround for invalid DTS with VP9 SDK runtime seems to report zero DTS for all frames in case of VP9 but we don't need to use DTS for the codec. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2291> 2022-04-24 00:37:40 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/cuda/meson.build: * sys/nvcodec/meson.build: nvcodec: Stop building for non-{Windows,Linux} target The other platforms, specifically macOS have not been supported already because this plugin loads so or dll. Moreover, NVIDIA dropped support for macOS as of CUDA 11.0. See also https://developer.nvidia.com/nvidia-cuda-toolkit-11_0_0-developer-tools-mac-hosts Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2283> 2022-03-28 17:06:46 +0200 Stéphane Cerveau <scerveau@collabora.com> * tests/check/elements/srtp.c: * tests/check/meson.build: srtp: add unit tests Enable unit tests in meson.build Add test_play_key_error to check the stats Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2027> 2022-03-25 17:47:23 +0100 Stéphane Cerveau <scerveau@collabora.com> * docs/plugins/gst_plugins_cache.json: * ext/srtp/gstsrtpdec.c: * ext/srtp/gstsrtpdec.h: srtpdec: add counts in stats In order to count the buffers which have been received and dropped for decryption reason, add a stats to track it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2027> 2022-04-23 04:00:21 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11window_win32.cpp: d3d11videosink: Fix for unhandled mouse double click events Only window created with CS_DBLCLKS style can receive those mouse double click events, so we need to use the style for internal/external windows can get double click events. Also, passthrough mouse events to parent window in the same message pumping threads instead of manually forwarding each mouse event. Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1172 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2277> 2022-03-07 08:46:57 -0500 Xavier Claessens <xavier.claessens@collabora.com> * gst-libs/gst/vulkan/meson.build: * sys/msdk/meson.build: Meson: Fix deprecation warnings Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1876> 2022-04-22 17:44:06 +0200 Stéphane Cerveau <scerveau@collabora.com> * ext/rsvg/gstrsvgdec.h: rvsg: fix cairo include Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2276> 2022-04-22 12:29:29 +0200 Corentin Damman <c.damman@intopix.com> * sys/nvcodec/cuda-converter.c: cuda-converter: fix nvrtc compilation on non-English locale systems Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2268> 2022-04-21 00:38:37 +0900 Sangchul Lee <sc11.lee@samsung.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: Avoid access of freed memory Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2256> 2022-04-15 22:19:09 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvah264enc.c: va: h264enc: Do not let L0 number surplus the HW limitation. The algorithm to calculate the L0/L1 number may let the L0 number surplus the HW limitation. We should ensure that limitation after that calculation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2202> 2022-03-02 14:42:42 +0800 He Junyan <junyan.he@intel.com> * tests/check/libs/h265bitwriter.c: * tests/check/meson.build: test: Add test cases for the H265 bitwriter. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1831> 2022-03-02 14:31:05 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/codecparsers/gsth265bitwriter.c: * gst-libs/gst/codecparsers/gsth265bitwriter.h: * gst-libs/gst/codecparsers/meson.build: codecparsers: bitwriter: Add the common bit writer functions for H265. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1831> 2022-04-20 13:18:34 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvavpp.c: va: vpp: Update the colorimetry and HDR fields when fixup src caps. When we fixup src caps, the current way of handling the HDR fields is not correct. 1. We trim the HDR fields only when the input caps is not a subset of the fixup src caps. But in fact, the input caps with HDR fields such as the "mastering-display-info" can possibly be the subset of the fixup src caps, if they have all same other fields. 2. We always copy the colorimetry from input caps to src caps if it is absent. But when hdr-tone-mapping is enabled, the HDR->SDR conversion makes the colorimetry change. We should use downstream's setting, or just use the default colorimetry of SDR. We changes to: 1. If hdr-tone-mapping is enabled, we trim all HDR fields and add a correct colorimetry. 2. Copy colorimetry from input if it is still absent. 3. Consider the subset replacement. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2244> 2022-04-20 23:06:56 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvdecoder.h: * sys/qsv/gstqsvh264dec.cpp: * sys/qsv/gstqsvh264enc.cpp: * sys/qsv/gstqsvh265dec.cpp: * sys/qsv/gstqsvh265enc.cpp: * sys/qsv/gstqsvjpegenc.cpp: * sys/qsv/gstqsvvp9enc.cpp: qsv: Add GPU description to element long-name on Windows Would be useful for a multi-Intel-GPU system Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2249> 2022-04-19 21:38:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvavpp.c: vapostproc: Notify if hdr-tone-mapping property changes. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2247> 2022-03-30 18:09:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/vasurfaceimage.c: * gst-libs/gst/va/vasurfaceimage.h: * sys/va/gstvafilter.c: * sys/va/gstvah264enc.c: va: Expose a couple va surface/buffer methods. And use them in va plugin. Also, set as default logging category the vadisplay one. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2077> 2022-04-20 08:09:58 +0900 Wonchul Lee <wonchul.dev@gmail.com> * ext/dash/gstdashsink.c: dashsink: Unlock when failed to get content Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2242> 2022-04-18 17:50:22 +0900 Camilo Celis Guzman <camilo@pexip.com> * gst/videoparsers/gstav1parse.c: gstav1parse: fixup various possible logical errors Found via an analyzed build for Clang. Specifically we had: gstav1parse.c[1850,11] in gst_av1_parse_detect_stream_format: Logic error: The left operand of '==' is a garbage value gstav1parse.c[1606,11] in gst_av1_parse_handle_to_small_and_equal_align: Logic error: The left operand of '==' is a garbage value Also a couple of false-positives: gstav1parse.c[1398,24] in gst_av1_parse_handle_one_obu: Logic error: Branch condition evaluates to a garbage value gstav1parse.c[1440,37] in gst_av1_parse_handle_one_obu: Logic error: The left operand of '-' is a garbage value Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2230> 2022-03-25 10:18:34 -0400 Xavier Claessens <xavier.claessens@collabora.com> * meson.build: Always define ENABLE_NLS GLib guarantees libintl API is always available, provided by proxy-libintl as last resort. GLib itself unconditionally define ENABLE_NLS. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028> 2022-03-25 10:20:24 -0400 Xavier Claessens <xavier.claessens@collabora.com> * gst-libs/gst/gettext.h: * gst-libs/gst/gst-i18n-plugin.h: Delete unused i18n headers Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028> 2022-03-25 09:59:23 -0400 Xavier Claessens <xavier.claessens@collabora.com> * ext/curl/gstcurlelement.c: * ext/curl/gstcurlhttpsrc.c: * ext/dash/gstdashdemux.c: * ext/ladspa/gstladspa.c: * ext/openal/gstopenal.c: * ext/openal/gstopenalelement.c: * ext/opencv/gsttemplatematch.cpp: * ext/resindvd/resindvdbin.c: * ext/resindvd/resindvdsrc.c: * ext/rtmp/gstrtmpsrc.c: * ext/smoothstreaming/gstmssdemux.c: * ext/smoothstreaming/gstsmoothstreaming-plugin.c: * ext/sndfile/gstsf.c: * ext/sndfile/gstsfdec.c: * ext/sndfile/gstsfelement.c: * ext/sndfile/gstsfsink.c: * ext/sndfile/gstsfsrc.c: * gst-libs/gst/adaptivedemux/gstadaptivedemux.c: * gst/aiff/aiffparse.c: * gst/aiff/gstaiffelement.c: * gst/asfmux/gstasfmux.c: * gst/asfmux/gstasfparse.c: * gst/camerabin2/camerabingeneral.c: * gst/camerabin2/gstcamerabin2.c: * gst/camerabin2/gstdigitalzoom.c: * gst/camerabin2/gstviewfinderbin.c: * gst/camerabin2/gstwrappercamerabinsrc.c: * gst/dvdspu/gstdvdspu.c: * gst/midi/midi.c: * gst/mpegtsdemux/mpegtsbase.c: * gst/transcode/gsttranscodebin.c: * gst/transcode/gsttranscodeelement.c: * sys/dvb/gstdvb.c: * sys/dvb/gstdvbelement.c: * sys/dvb/gstdvbsrc.c: * sys/dvb/parsechannels.c: Replace gst-i18n-*.h with gi18n-lib.h GLib guarantees libintl is always present, using proxy-libintl as last resort. There is no need to mock gettex API any more. This fix static build on Windows because G_INTL_STATIC_COMPILATION must be defined before including libintl.h, and glib does it for us as part as including glib.h. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028> 2022-04-13 15:23:56 -0400 Thibault Saunier <tsaunier@igalia.com> * gst-libs/gst/cuda/gstcudautils.c: * gst-libs/gst/cuda/gstcudautils.h: * sys/nvcodec/gstcudamemorycopy.c: cuda: Fix typo in gst_cuda_buffery_copy_type_to_string Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1472> 2021-12-12 13:19:52 +0000 Thibault Saunier <tsaunier@igalia.com> * gst-libs/gst/cuda/gstcudacontext.c: * gst-libs/gst/cuda/gstcudacontext.h: * gst-libs/gst/cuda/gstcudautils.h: cuda: Add a `gst_cuda_context_new_wrapped` constructor So that application or people implementing cuda element from outside GStreamer itself can ensure that their contexts are used by GStreamer. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1472> 2021-12-08 11:48:08 +0000 Thibault Saunier <tsaunier@igalia.com> * docs/libs/cuda/index.md: * docs/libs/cuda/sitemap.txt: * docs/meson.build: * gst-libs/gst/cuda/cuda-gst.h: * gst-libs/gst/cuda/cuda-prelude.h: * gst-libs/gst/cuda/gstcudabufferpool.c: * gst-libs/gst/cuda/gstcudabufferpool.h: * gst-libs/gst/cuda/gstcudacontext.c: * gst-libs/gst/cuda/gstcudacontext.h: * gst-libs/gst/cuda/gstcudaloader.c: * gst-libs/gst/cuda/gstcudaloader.h: * gst-libs/gst/cuda/gstcudamemory.c: * gst-libs/gst/cuda/gstcudamemory.h: * gst-libs/gst/cuda/gstcudanvrtc.c: * gst-libs/gst/cuda/gstcudanvrtc.h: * gst-libs/gst/cuda/gstcudautils.c: * gst-libs/gst/cuda/gstcudautils.h: * gst-libs/gst/cuda/gstnvrtcloader.c: * gst-libs/gst/cuda/gstnvrtcloader.h: * gst-libs/gst/cuda/meson.build: * gst-libs/gst/cuda/stub/cuda.h: * gst-libs/gst/cuda/stub/cudaGL.h: * gst-libs/gst/cuda/stub/nvrtc.h: * gst-libs/gst/meson.build: * sys/nvcodec/cuda-converter.c: * sys/nvcodec/cuda-converter.h: * sys/nvcodec/gstcudabasefilter.c: * sys/nvcodec/gstcudabasetransform.c: * sys/nvcodec/gstcudabasetransform.h: * sys/nvcodec/gstcudaconvert.c: * sys/nvcodec/gstcudafilter.c: * sys/nvcodec/gstcudamemorycopy.c: * sys/nvcodec/gstcudascale.c: * sys/nvcodec/gstcuvidloader.h: * sys/nvcodec/gstnvbaseenc.c: * sys/nvcodec/gstnvbaseenc.h: * sys/nvcodec/gstnvdec.c: * sys/nvcodec/gstnvdec.h: * sys/nvcodec/gstnvdecoder.c: * sys/nvcodec/gstnvdecoder.h: * sys/nvcodec/gstnvenc.c: * sys/nvcodec/gstnvenc.h: * sys/nvcodec/gstnvencoder.cpp: * sys/nvcodec/gstnvencoder.h: * sys/nvcodec/gstnvh264dec.c: * sys/nvcodec/gstnvh264encoder.cpp: * sys/nvcodec/gstnvh264encoder.h: * sys/nvcodec/gstnvh265dec.c: * sys/nvcodec/gstnvh265encoder.cpp: * sys/nvcodec/gstnvh265encoder.h: * sys/nvcodec/gstnvvp8dec.c: * sys/nvcodec/gstnvvp9dec.c: * sys/nvcodec/meson.build: * sys/nvcodec/plugin.c: cuda: Factor out a public GstCUDA library So applications and elements implemented outside GStreamer can reuse our infrastructure Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1472> 2021-12-03 13:12:42 +0000 Thibault Saunier <tsaunier@igalia.com> * sys/nvcodec/gstnvbaseenc.c: * sys/nvcodec/gstnvenc.c: nvenc: Give more details about errors Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1472> 2021-11-12 20:13:10 +0100 Ruben Gonzalez <rgonzalez@fluendo.com> * docs/plugins/gst_plugins_cache.json: gst_plugin_load_file: force plugin reload if diff filename If a file includes a new version of a plugin that exits in the registry, the output of gst-inspect is incorrect. The output has the correct version but incorrect filename, and element description. This seems to have also fixed some documentation issues. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1344> 2022-04-19 04:37:05 +0900 Seungha Yang <seungha@centricular.com> * sys/d3dvideosink/d3dvideosink.c: d3dvideosink: Remove outdated comment d3dvideosink is not a primary video sink element Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2223> 2022-04-18 00:25:18 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gsth264decoder.c: * gst-libs/gst/codecs/gsth265decoder.c: h264decoder,h265decoder: Do not hold codec_data buffer ... also do not need to extract it from caps. Decoder uses codec_data only once per set_format() and baseclass will extract codec_data buffer already. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2212> 2022-04-17 23:55:55 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11decoder.cpp: d3d11decoder: Do not preallocate texture using downstream d3d11 buffer pool Our decoder implementation does not use downstream d3d11 pool for decoding because of special requirement of D3D11/DXVA. So preallocation using the downstream buffer pool will waste GPU memory in most cases. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2211> 2022-04-14 13:22:03 +0300 Vivia Nikolaidou <vivia@ahiru.eu> * gst/videoparsers/gsth264parse.c: h264parse: Include coded-picture-structure info in caps This reverts commit 652773de366a98e155332bf8ffb83ee5e6bea9e5 and modifies it to rename the caps field name to coded-picture-structure. It was previously removed because it confuses the decoder and we didn't have a valid use case for including it in the encoded caps at this stage. We now do have such a use case but still don't want to confuse the decoder, so the field is renamed. However, it is still not accurate without looking at the SEI picture structure of each frame, so it was named coded-picture-structure. If its value is "frame" it is most likely progressive, if it's "field" it is most likely interlaced or mixed. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2177> 2022-04-18 12:44:19 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvah264enc.c: va: h264enc: Fix the forgotten unlock() when getting device path property. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2215> 2022-04-17 22:25:14 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvdecoder.cpp: qsvdecoder: Use system memory for non-d3d11 downstream QSV's memory download implementation seems to be more faster than our implementation Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2206> 2022-04-17 02:14:50 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvdecoder.cpp: * sys/qsv/gstqsvh265dec.cpp: * sys/qsv/gstqsvh265dec.h: * sys/qsv/meson.build: * sys/qsv/plugin.cpp: qsv: Add H.265 decoder Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2206> 2022-04-17 02:18:37 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvh264dec.cpp: * sys/qsv/gstqsvutils.cpp: * sys/qsv/plugin.cpp: qsv: Include single gstva.h Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2206> 2022-04-17 02:04:08 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvh264dec.cpp: qsvh264dec: Don't register element if it's not supported by device Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2206> 2022-04-17 01:27:10 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvdecoder.cpp: * sys/qsv/gstqsvdecoder.h: * sys/qsv/gstqsvh264dec.cpp: qsvh264dec: Add support for packetized format Handle avc/avc3 packetized formats Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2206> 2022-04-17 00:00:55 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvdecoder.cpp: * sys/qsv/gstqsvencoder.cpp: * sys/qsv/gstqsvh264dec.cpp: * sys/qsv/gstqsvh264enc.cpp: * sys/qsv/gstqsvh265enc.cpp: * sys/qsv/gstqsvjpegenc.cpp: * sys/qsv/gstqsvvp9enc.cpp: * sys/qsv/plugin.cpp: qsv: Move debug init into each source file Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2206> 2022-04-16 23:51:05 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvdecoder.cpp: qsvdecoder: Reset next_task_index per init_session() Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2206> 2022-04-16 21:27:57 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11decoder.cpp: d3d11decoder: Copy HDR10 related caps field manually If negotiate() is called from the set_format() chain, sinkpad may not hold caps yet, so baseclass cannot copy it over to srcpad caps. Copy them manually. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2203> 2022-04-16 22:27:13 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvh264enc.cpp: * sys/qsv/gstqsvh265enc.cpp: qsvencoder: Rename property name i-frames to idr-interval ... and clarify the meaning of the value for each h264 and h265 encoder since the usage of mfxInfoMFX::IdrInterval is different per codec. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2204> 2022-04-16 21:26:55 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvh265enc.cpp: qsvh265enc: Write HDR10 metadata SEI If device supports HDR10 metadata API, write the information into bitstream per IDR. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2204> 2022-04-13 06:19:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * docs/plugins/gst_plugins_cache.json: gst_plugins_cache.json: Update va plugins. * Update conditionally-available attribute in vah264enc properties. * Update GstVaFeature usage. * Update GstVaEncoderRatecontrol usage. * Update vapostproc classification. * Add `add-borders` property in vapostproc. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2169> 2022-04-13 05:58:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Use GstVaFeature enum for enabling MBBRC. GstVaFeature is a common enumeration for auto/disabled/enabled kind of property setting. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2169> 2022-04-13 05:56:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaencoder.c: * sys/va/gstvaencoder.h: * sys/va/gstvah264enc.c: vah264enc: Move rate-control enum to encoder class helper. Since it's a common enumeration used, as user setting property, for most of codecs. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2169> 2022-04-13 05:52:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Add device-path property. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2169> 2022-04-15 13:19:36 +0000 Corentin Damman <c.damman@intopix.com> * sys/nvcodec/gstcudautils.c: cudautils: fix critical typo in gst_cuda_buffer_fallback_copy Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2194> 2022-04-14 20:10:46 +1000 Brad Hards <bradh@frogmouth.net> * po/POTFILES.skip: * tests/interactive/meson.build: * tests/interactive/pitch-test.c: * tests/meson.build: tests: rename 'icles' subdir to be more descriptive Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2178> 2022-04-14 08:23:51 +0200 Edward Hervey <edward@centricular.com> * gst/mpegtsdemux/gstmpegdefs.h: * gst/mpegtsdemux/tsdemux.c: tsdemux: Fix AC-4 detection This regression was introduced by https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1102 and has been present since 1.18 * Stream Type 0x06 is defined in the base mpeg-ts specification as Private PES Packets. Determining the content should be solely based on descriptors found within the PMT. * This was abused in that commit by defining a "bluray-only" stream type for AC4 : `ST_BD_AUDIO_AC4` * This should be entirely handled in the regular private pes handling further down in the code Fixes #1154 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2175> 2022-04-10 17:28:03 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvah264enc.c: va: h264enc: Correct the hierarchical level name for pyramid-b frames. The current way names the level by the number of B frames it contains, the less it contains, the higher level it is. So the non ref B frames are in the lowest layer and the B frames in the highest level refer to I/P frames. But the widely used way is just the opposite, the ref B frames are in the lower level and non ref B frames are at the highest level. The is just a terminology change, and does not have any effect for compression result and quality. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2149> 2022-04-12 10:34:27 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/codecparsers/gstav1parser.c: codecs: av1parser: Fix a typo in seq_level_idx check. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2157> 2022-04-13 01:46:34 +0900 Seungha Yang <seungha@centricular.com> * sys/amfcodec/gstamfh265enc.cpp: amfh265enc: Handle preset option Add missing preset option handling Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2165> 2022-04-13 01:39:43 +0900 Seungha Yang <seungha@centricular.com> * sys/amfcodec/gstamfencoder.cpp: amfencoder: Do shared resource copy only if texture belongs to other device Staging texture from the same d3d11device can be copied without shared resource handling Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2165> 2022-04-12 01:01:23 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11decoder.cpp: * sys/d3d11/meson.build: win32: Enable high-resolution timer for MinGW build timeapi.h is missing in our MinGW toolchain. Include mmsystem.h header instead, which defines struct and APIs in case of our MinGW toolchain. Note that in case of native Windows10 SDK (MSVC build), mmsystem.h will include timeapi.h Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2153> 2022-04-11 16:03:41 -0500 Olivier Crête <olivier.crete@collabora.com> * ext/wpe/gstwpevideosrc.cpp: wpevideosrc: Give WebKit the keyboard, touch and pointer modifiers Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2156> 2022-04-11 15:56:19 -0500 Olivier Crête <olivier.crete@collabora.com> * ext/wpe/gstwpevideosrc.cpp: wpesrc: Convert from utf32 to support other keys This makes all of the non-letter keys work. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2156> 2022-04-11 15:54:05 -0500 Olivier Crête <olivier.crete@collabora.com> * ext/wpe/gstwpevideosrc.cpp: wpesrc: Initialize key event to 0 Otherwise, WebKit sees random modifiers Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2156> 2022-04-12 11:20:00 +0200 Andoni Morales Alastruey <amorales@fluendo.com> * sys/amfcodec/gstamfh264enc.cpp: amfcodec: fix setting quality presets Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2159> 2022-04-11 10:32:40 +0200 Edward Hervey <edward@centricular.com> * gst/mxf/mxfdemux.c: mxfdemux: Fix issue with re-syncing In case of re-syncing (i.e. moving to another partition to avoid too much of an interleave), there was previously no checks to figure out whether a given partition was already fully handled (i.e. when coming across it again after a previous resync). In order to handle this at least for single-track partitions, check whether we have reached the essence track duration, and if so skip the partition. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2150> 2022-04-11 10:31:15 +0200 Edward Hervey <edward@centricular.com> * gst/mxf/mxfdemux.c: mxfdemux: Don't double-increase track position The essence track position should only be overriden if we sucesfully switched to another position. In case of EOS we do not want to override it else we would increase the track position *again* at the end of this function Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2150> 2022-04-12 01:49:17 +0900 Seungha Yang <seungha@centricular.com> * sys/amfcodec/gstamfencoder.cpp: * sys/amfcodec/gstamfh264enc.cpp: * sys/amfcodec/gstamfh265enc.cpp: * sys/amfcodec/meson.build: amfcodec: Fix for MinGW build timeapi.h header might not be missing depending on toolchain. Also do hard meson error if winmm dep is not available but amfcodec is explicitly enabled. And fixing various GCC build warning errors. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2155> 2022-04-09 23:32:19 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvallocator.cpp: * sys/qsv/gstqsvallocator_d3d11.cpp: * sys/qsv/gstqsvencoder.cpp: * sys/qsv/gstqsvjpegenc.cpp: * sys/qsv/gstqsvjpegenc.h: * sys/qsv/meson.build: * sys/qsv/plugin.cpp: qsv: Add JPEG encoder Note that YUY2 is not supported yet, since the format support is not implemented now. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2142> 2022-04-10 02:34:17 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * sys/amfcodec/gstamfencoder.cpp: * sys/amfcodec/gstamfh264enc.cpp: * sys/amfcodec/gstamfh265enc.cpp: * sys/amfcodec/plugin.cpp: amfcodec: Update plugin cache Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2143> 2022-04-09 00:52:07 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvencoder.cpp: * sys/nvcodec/gstnvencoder.h: * sys/nvcodec/gstnvh264encoder.cpp: * sys/nvcodec/gstnvh265encoder.cpp: * tests/examples/nvcodec/nvcodec.c: nvencoder: Update property names and default values Update properties of newly written D3D11/CUDA mode encoders to be consistent with Intel QSV plugin. And rename "zerolatency" to "zero-reorder-delay" because previous "zerolatency" may misleading Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2140> 2022-04-09 00:00:59 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvh264enc.cpp: * sys/qsv/gstqsvh265enc.cpp: * sys/qsv/gstqsvvp9enc.cpp: * tests/examples/qsv/qsvenc-dynamic-reconfigure.c: qsvencoder: Update property names and default values Stop using MSDK plugins property naming, instead use unified names and default values to be consistent with newly written NVIDIA encoders. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2140> 2022-03-31 04:16:24 +0900 Seungha Yang <seungha@centricular.com> * meson_options.txt: * sys/amfcodec/gstamfencoder.cpp: * sys/amfcodec/gstamfencoder.h: * sys/amfcodec/gstamfh264enc.cpp: * sys/amfcodec/gstamfh264enc.h: * sys/amfcodec/gstamfh265enc.cpp: * sys/amfcodec/gstamfh265enc.h: * sys/amfcodec/gstamfutils.cpp: * sys/amfcodec/gstamfutils.h: * sys/amfcodec/meson.build: * sys/amfcodec/plugin.cpp: * sys/meson.build: amfcodec: Add support for h264/h265 encoding New encoder implementations for AMD GPU using AMF API Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2109> 2022-03-31 01:36:37 +0900 Seungha Yang <seungha@centricular.com> * sys/amfcodec/include/components/ColorSpace.h: * sys/amfcodec/include/components/Component.h: * sys/amfcodec/include/components/ComponentCaps.h: * sys/amfcodec/include/components/PreAnalysis.h: * sys/amfcodec/include/components/VideoDecoderUVD.h: * sys/amfcodec/include/components/VideoEncoderHEVC.h: * sys/amfcodec/include/components/VideoEncoderVCE.h: * sys/amfcodec/include/core/AudioBuffer.h: * sys/amfcodec/include/core/Buffer.h: * sys/amfcodec/include/core/Compute.h: * sys/amfcodec/include/core/ComputeFactory.h: * sys/amfcodec/include/core/Context.h: * sys/amfcodec/include/core/CurrentTime.h: * sys/amfcodec/include/core/D3D12AMF.h: * sys/amfcodec/include/core/Data.h: * sys/amfcodec/include/core/Debug.h: * sys/amfcodec/include/core/Dump.h: * sys/amfcodec/include/core/Factory.h: * sys/amfcodec/include/core/Interface.h: * sys/amfcodec/include/core/Plane.h: * sys/amfcodec/include/core/Platform.h: * sys/amfcodec/include/core/PropertyStorage.h: * sys/amfcodec/include/core/PropertyStorageEx.h: * sys/amfcodec/include/core/Result.h: * sys/amfcodec/include/core/Surface.h: * sys/amfcodec/include/core/Trace.h: * sys/amfcodec/include/core/Variant.h: * sys/amfcodec/include/core/Version.h: * sys/amfcodec/include/core/VulkanAMF.h: amfcodec: Import AMF SDK headers SDK version v1.4.24 at the commit of https://github.com/GPUOpen-LibrariesAndSDKs/AMF/commit/fbf12cd39fe1812ed902525a1c001307b94871b9 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2109> 2022-04-09 02:13:57 +0900 Seungha Yang <seungha@centricular.com> * sys/msdk/gstmsdkcontextutil.c: msdk: Fix Windows build Headers of gstva should not be included on Windows Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2141> 2022-04-08 04:24:36 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11window_win32.cpp: d3d11window: Use ANSI version WIN32 API explicitly We were using ANSI version APIs implicitly because UNICODE is not defined by ourselves. But potentially it can be broken if user defines UNICODE. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2131> 2022-04-08 04:02:55 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11av1dec.cpp: * sys/d3d11/gstd3d11screencapturesrc.cpp: * sys/d3d11/gstd3d11videosink.cpp: d3d11: Run indent Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2131> 2022-03-11 20:46:11 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecparsers/gsth265parser.c: * gst-libs/gst/codecparsers/gsth265parser.h: h265parser: Fix short_term_ref_pic_set() size calculation This field is used by DXVA/NVDEC/VA, and each specification describes (NVDEC is not well documented) that it's the number of bits used in short_term_ref_pic_set(). DXVA doesn't explicitly mention that whether the size of emulation preventation bytes (EPB) is inclusive or not, but VA is clearly specifying that it's the size after removing EPB. Excluding EPB size here makes more sense therefore. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1930> 2022-04-06 11:21:25 +0200 Edward Hervey <edward@centricular.com> * gst/mxf/mxfvanc.c: mxfvanc: Handle empty VANC packets Some XDCAM recorders store empty packets for VANC, and don't even include the 2byte length. Handle them in the same way as VANC packets with 0 packets. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2122> 2022-04-01 22:52:18 +0900 Sangchul Lee <sc11.lee@samsung.com> * gst-libs/gst/webrtc/datachannel.c: * gst-libs/gst/webrtc/webrtc_fwd.h: webrtc/datachannel: Change initial data channel state to CONNECTING It complies with http://w3c.github.io/webrtc-pc/#dom-rtcdatachannelstate. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2099> 2022-04-04 20:47:03 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvencoder.cpp: qsvencoder: Don't use USAGE_HINT_ENCODER and enable derived image support Peformance issue by disabled derived image support was reported Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2111> 2022-04-04 20:36:14 +0900 Seungha Yang <seungha@centricular.com> * sys/va/gstvah264enc.c: Revert "vah264enc: Disable derived image support" This reverts commit 0011feb0d660f331abde5b1e36f1c56e9cf3b014. The commit caused performance-wise regression for some platforms Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2111> 2022-04-01 15:35:17 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/msdk.c: msdk: use mfxU32 instead of uint32_t Msdk should use mfx variables defined in mfxdefs.h. Replace uint32_t with mfxU32. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2091> 2022-04-01 15:00:01 +0200 Stéphane Cerveau <scerveau@collabora.com> * tests/examples/camerabin2/gst-camerabin2-test.c: bad: examples: fix unused res warning Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2095> 2022-03-29 14:42:04 +0200 Johan Sternerup <johast@axis.com> * ext/webrtc/gstwebrtcice.c: * ext/webrtc/icestream.c: * ext/webrtc/icestream.h: * ext/webrtc/nicetransport.c: webrtc: Improve robustness of nice agent signal handlers NiceAgent and it's associated thread is alive for as long as GstWebRTCICE is alive so make sure any signal handlers connected to NiceAgent do not access data that is deleted earlier. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2073> 2022-04-03 22:12:33 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvh264encoder.cpp: * sys/nvcodec/gstnvh265encoder.cpp: nvcodec: Fix typos Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2107> 2022-04-03 22:08:51 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvencoder.h: nvencoder: Fix operator overloading GUID equality check was inverted Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2107> 2022-04-01 21:09:10 +0100 Tim-Philipp Müller <tim@centricular.com> * gst-libs/gst/va/meson.build: libs: va: make sure va-enumtypes.h is generated before it's used Need to add a dep for the generated header file to the dependency() so that it gets generated before anyone tries to #include files from it (which may happen before the actual lib is built because that's only needed when stuff is linked together later). See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2057#note_1323236 and CI build failures in https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2096 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2103> 2022-04-01 05:02:58 +0900 Seungha Yang <seungha@centricular.com> * sys/va/gstvah264enc.c: vah264enc: Disable derived image support Behavior of derived image seems to be platform dependent and it's buggy in some cases. Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1110 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2086> 2022-04-01 22:47:07 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvah264enc.c: va: h264enc: Do not use USAGE_HINT_ENCODER for input pool. It seems that the VA_SURFACE_ATTRIB_USAGE_HINT_ENCODER is used only for the recon surfaces, if we set this flags for input raw surfaces, the alignment is wrong and we get broken result. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2100> 2022-04-01 15:59:58 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> * gst-libs/gst/va/gstvaallocator.c: va: Fix printf format modifier for drm modifiers DRM modifiers are 64bit, the printf modifier is platform dependant. Use the G_GINT64_MODIFIER macro to make this printf portable. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2102> 2022-03-30 11:06:02 -0400 Xavier Claessens <xavier.claessens@collabora.com> * meson.build: Use gmodule-no-export-2.0 We don't need `-Wl,--export-dynamic`, that's used only for executables that needs to export an API to be used by plugins they load. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031> 2022-03-25 15:00:20 -0400 Xavier Claessens <xavier.claessens@collabora.com> * ext/vulkan/meson.build: * ext/webrtc/meson.build: * gst-libs/gst/d3d11/meson.build: * gst/rtp/meson.build: * meson.build: * sys/bluez/meson.build: * sys/dvb/meson.build: * tests/check/meson.build: * tests/examples/ipcpipeline/meson.build: * tests/examples/opencv/meson.build: * tests/examples/webrtc/meson.build: * tests/examples/wpe/meson.build: * tests/icles/meson.build: Remove glib and gobject dependencies everywhere They are part of gst_dep already and we have to make sure to always have gst_dep. The order in dependencies matters, because it is also the order in which Meson will set -I args. We want gstreamer's config.h to take precedence over glib's private config.h when it's a subproject. While at it, remove useless fallback args for gmodule/gio dependencies, only gstreamer core needs it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031> 2022-03-24 14:15:00 -0400 Xavier Claessens <xavier.claessens@collabora.com> * ext/sctp/usrsctp/meson.build: * meson.build: Fix cross build with mingw32 At least on Ubuntu 20.04 the x86_64-w64-mingw32-gcc toolchain defaults to WinXP. We require at least Vista for FILE_STANDARD_INFO. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2022> 2022-03-25 22:04:05 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvallocator_va.cpp: * sys/qsv/gstqsvencoder.cpp: * sys/qsv/gstqsvh264enc.cpp: * sys/qsv/gstqsvh265enc.cpp: * sys/qsv/gstqsvvp9enc.cpp: qsvencoder: Add support for VA memory Use VA allocator and buffer pool implementation for zero-copy encoding with upstream VA elements Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2030> 2022-03-25 21:03:02 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvallocator_va.h: * sys/qsv/gstqsvdecoder.cpp: * sys/qsv/gstqsvencoder.cpp: qsv: Use pipeline's VA context Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2030> 2022-03-29 14:52:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/gstva.h: * gst-libs/gst/va/gstvaallocator.c: * gst-libs/gst/va/gstvaallocator.h: * gst-libs/gst/va/gstvapool.c: * gst-libs/gst/va/gstvapool.h: * gst-libs/gst/va/meson.build: * sys/va/gstvabasedec.c: * sys/va/gstvabasetransform.c: * sys/va/gstvaencoder.c: * sys/va/gstvah264enc.c: libs: va: add VA allocator parameter for derived images usage. Added GstVaFeature enum type, and new parameter for VA allocator's set_format() and get_format(). Also added a new parameter in VA pool gst_va_pool_new_with_config() and gst_buffer_pool_config_set_va_allocation_params(). This new parameter will define if derived images will by used for buffer mapping. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2057> 2022-03-28 21:25:50 +0900 Sangchul Lee <sc11.lee@samsung.com> * ext/webrtc/gstwebrtcbin.c: * ext/webrtc/gstwebrtcstats.c: * tests/check/elements/webrtcbin.c: webrtcstats: Unify 'packets-lost' data type to int64 Previously, 'packets-lost' member of RTCReceivedRtpStreamStats had a value of G_TYPE_INT from rtpsource or a value of G_TYPE_UINT64 from rtpjitterbuffer. Because of the negative value of estimated amount of packets lost in rtpsource as well as the description in https://www.w3.org/TR/webrtc-stats/#dom-rtcreceivedrtpstreamstats it is fixed to set this value with G_TYPE_INT64. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2049> 2022-03-30 12:12:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaencoder.c: va: encoder: Remove unused allocation config. Since it's also done inside of gst_va_pool_new_with_config(). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2072> 2022-03-30 02:49:40 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/va/gstvadisplay.c: * gst-libs/gst/va/gstvautils.c: vadisplay: Add description readonly property Expose description of vendor for user information, similar to the description property of d3d11device. Also, set description and DRM device path on GstContext structure so that user can read them and it will be printed on terminal when gst-launch-1.0 is used Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2064> 2022-03-30 07:03:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/gstvaallocator.c: * gst-libs/gst/va/gstvapool.c: * gst-libs/gst/va/gstvapool.h: * gst-libs/gst/va/va_fwd.h: va: Don't expose internal classes. VA allocators and pools classes don't need to be exposed as external symbols. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2070> 2022-03-30 12:01:20 +0800 Haihua Hu <jared.hu@nxp.com> * gst-libs/gst/play/gstplay.c: gstplay: don't print error log in warning_cb Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2069> 2022-03-29 20:14:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvavpp.c: vapostproc: Build classification dynamically. By default, the classification is "Converter/Filter/Colorspace/Scaler/Video/Hardware", but if VA post-processor driver supports either color balance, skin tone enhancement, sharpening or noise reduction, "Effect" is added. Thus, if vapostproc ranking is raised, it can be chosen by autovideosink. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2066> 2022-02-21 14:02:52 +1100 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: * ext/webrtc/gstwebrtcbin.h: * ext/webrtc/gstwebrtcstats.c: webrtc: produce stats for all relevant streams Instead of only using the last ssrc that was pushed into a sink pad. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2022-02-11 16:50:42 +1100 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: webrtc: avoid different versions of gnu-indent always wanting to change !! Add some sneaky parenthesis to avoid always having to use git commit -n or revert out hunk of the change. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-11-26 22:04:14 +1100 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: * ext/webrtc/transportstream.c: * ext/webrtc/transportstream.h: * tests/check/elements/webrtcbin.c: webrtc: implement initial simulcast fec/rtx usage Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-11-26 22:11:06 +1100 Matthew Waters <matthew@centricular.com> * ext/webrtc/webrtcdatachannel.c: * gst-libs/gst/webrtc/datachannel.c: webrtc/datachannel: fix use-after-free in sctp state notification g_signal_disconnect*() doesn't stop any existing callbacks from running which means that if the notify::state callback is in progress in one thread and the data channel object is finalize()ed in another thread, then there could be a use-after-free trying lock the data channel object. We can't reasonably use a GWeakRef as we don't have a 'parent' object to free the GWeakRef after the data channel is finalized. This is also complicated by the fact that the application can hold a reference to the data channel object that would live beyond the lifetime of webrtcbin itself. We solve this by implementing a ghetto weak-ref solution internally with a list of outstanding data channels. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-11-26 22:06:39 +1100 Matthew Waters <matthew@centricular.com> * tests/check/elements/webrtcbin.c: tests/webrtc: fix a use-after-free in test_data_channel_close g_object_weak_ref() is not thread-safe and the data channel object's refs/unrefs can happen on multiple threads. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-11-26 21:51:57 +1100 Matthew Waters <matthew@centricular.com> * tests/check/elements/webrtcbin.c: tests/webrtc: fix a race in the tests related to state tracking If things progress fast enough, some state changes may not be seen be the waiting code. Fix by: 1. keeping a list of all the state changes 2. waiting checks each entry and if the relevant state is found, all states up to and including then are removed. This ensures that any waits will see all the state sets. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-11-26 02:00:12 +1100 Matthew Waters <matthew@centricular.com> * tests/check/elements/webrtcbin.c: tests/webrtc: factor out src pad property checking to a separate function Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-11-16 19:27:11 +1100 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: * ext/webrtc/gstwebrtcstats.c: * ext/webrtc/transportstream.c: * ext/webrtc/transportstream.h: * ext/webrtc/webrtctransceiver.c: * ext/webrtc/webrtctransceiver.h: * tests/check/elements/webrtcbin.c: webrtcbin: initial support for sending and receiving simulcast streams Input (sink pads) is the already-ssrc-muxed stream with the relevant rtp sdes header extensions already applied: - mid - stream-id - repaired-stream-id Output (src pads) have the pads separated into individual ssrc's as that's what rtpbin gives us. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-11-16 18:11:49 +1100 Matthew Waters <matthew@centricular.com> * tests/check/elements/webrtcbin.c: tests/webrtc: test for enabled bundled fec/rtx Doesn't actually check that any fec/rtx happens, just that the pipeline is vaguely sane and doesn't error. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-11-16 17:39:18 +1100 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: support multiple received streams for a single mline Each rtpbin exposed recv_src pad is now exposed as webrtcbin src_%u pad now with no meaining applied to the value of %u. Previously this used to mean the mline in the SDP. If this is is still required, then the transceiver can be retrieved from the pad and the "mlineindex" property from the transciever. The "mid" is also retrievable from the transceiver. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-11-16 17:28:04 +1100 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: * gst-libs/gst/webrtc/webrtc_fwd.h: webrtc: explicitly error out in a couple of renegotiation cases Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-11-16 17:21:31 +1100 Matthew Waters <matthew@centricular.com> * ext/webrtc/transportstream.c: webrtc/transportstream: add debug category Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-11-03 21:18:53 +1100 Matthew Waters <matthew@centricular.com> * tests/check/elements/webrtcbin.c: tests/webrtc: also check valid mline for srcpad codec-preferences negotiation Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-11-03 20:46:23 +1100 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: * ext/webrtc/gstwebrtcbin.h: webrtcbin: don't name src pads based on the mline specifically anymore Naming based on the mline doesn't really work with e.g. simulcast scenarios. It is entirely possible to retrieve the transceiver and then the mline from that if that is so required. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-10-29 18:40:04 +1100 Matthew Waters <matthew@centricular.com> * tests/check/elements/webrtcbin.c: webrtc/tests: print the correct media idx on error Instead of the attribute index Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-10-29 18:38:37 +1100 Matthew Waters <matthew@centricular.com> * tests/check/elements/webrtcbin.c: webrtc/tests: give slightly better names to the dot file dumps Don't use printf-specifiers with g_strconcat(). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-07-21 17:48:34 +1000 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: * ext/webrtc/utils.h: * tests/check/elements/webrtcbin.c: webrtcbin: improve some debugging output - Put human readable names into debug strings. - Demote some frequent rtpbin signal logging - Don't use GST_PTR_FORMAT in g_set_error() Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-07-21 17:39:11 +1000 Matthew Waters <matthew@centricular.com> * tests/check/elements/webrtcbin.c: webrtcbin: silence spurious warning when creating answer transceiver When creating a transceiver when creating an answer, the media kind of the transceiver was never set correctly initially. This would lead to a GST_WARNING being produced about changin a transceiver's media kind. Fix by retrieving the GstSDPMedia kind from the offer instead as the answer GstSDPMedia has not been set as the answer caps have not been chosen yet. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-07-21 14:29:35 +1000 Matthew Waters <matthew@centricular.com> * tests/check/elements/webrtcbin.c: tests/webrtc: always use a unique SSRC for each stream Will become more relevant with mid/rid->ssrc mappings Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-07-21 14:14:30 +1000 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: add a specific find_transceiver_by_mid function Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-07-20 20:17:13 +1000 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: explicitly use a variable for the rtp session idx Slightly clearer in meaning. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2021-07-01 15:54:34 +1000 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: * tests/check/elements/webrtcbin.c: webrtcbin: support using an a=mid value from the sink/transceiver caps Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664> 2022-03-25 15:56:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/gstva.h: * gst-libs/gst/va/gstvaallocator.h: * 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.h: * gst-libs/gst/va/gstvapool.c: * gst-libs/gst/va/gstvapool.h: * gst-libs/gst/va/gstvasurfacecopy.h: * gst-libs/gst/va/gstvautils.c: * gst-libs/gst/va/gstvautils.h: * gst-libs/gst/va/gstvavideoformat.h: * gst-libs/gst/va/va_fwd.h: * gst-libs/gst/va/vasurfaceimage.h: * sys/va/gstvaav1dec.c: * sys/va/gstvabasedec.c: * sys/va/gstvabasetransform.c: * sys/va/gstvacaps.c: * sys/va/gstvadecoder.c: * sys/va/gstvadeinterlace.c: * sys/va/gstvadisplay_priv.c: * sys/va/gstvadisplay_priv.h: * sys/va/gstvaencoder.c: * sys/va/gstvaencoder.h: * sys/va/gstvafilter.c: * sys/va/gstvah264enc.c: * sys/va/gstvavpp.c: * tests/examples/va/main.c: * tests/examples/va/multiple-vpp.c: va: Set <gst/va/gstva.h> as library single point entry header. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2048> 2022-02-23 15:40:19 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/va/gstvaallocator.c: * gst-libs/gst/va/gstvaallocator.h: * gst-libs/gst/va/gstvapool.c: * gst-libs/gst/va/gstvapool.h: * gst-libs/gst/va/gstvasurfacecopy.c: * gst-libs/gst/va/gstvasurfacecopy.h: * gst-libs/gst/va/meson.build: * gst-libs/gst/va/vasurfaceimage.c: * gst-libs/gst/va/vasurfaceimage.h: * sys/va/gstvaav1dec.c: * sys/va/gstvabasedec.c: * sys/va/gstvabasetransform.c: * sys/va/gstvadecoder.c: * sys/va/gstvadeinterlace.c: * sys/va/gstvaencoder.c: * sys/va/gstvafilter.c: * sys/va/gstvah264enc.c: * sys/va/gstvavpp.c: * sys/va/meson.build: va: Move allocators and pool objects into gstva library. In order to other plugins use gstva objects, such as allocators and buffer pools, this merge request move them from the va plugin to the gstva library. This objects are not exposed in <gst/va/gstva.h> since they are not expected to be used by users, only by plugin implementators. Because of the surface copy design, which is used to implement allocator's mem_copy() virtual function, depends on the vafilter, which is kept inside the plugin, memory copy through VAPosproc is disabled and removed temporarly. Also added some missing parameter validation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2048> 2022-02-23 15:25:08 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/va/gstvavideoformat.c: * gst-libs/gst/va/gstvavideoformat.h: * gst-libs/gst/va/meson.build: * sys/va/gstvaallocator.c: * sys/va/gstvabasedec.c: * sys/va/gstvacaps.c: * sys/va/gstvadecoder.c: * sys/va/gstvadisplay_priv.c: * sys/va/gstvafilter.c: * sys/va/meson.build: * sys/va/vasurfaceimage.c: va: Move the video format functions into gstlibva. Untabifying header file. The logging category was moved from the plugin generic category to the display category. It can argue that video formats hacks are display dependant. Added validations for input parameters. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2048> 2022-03-27 23:27:54 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvencoder.cpp: * sys/qsv/gstqsvencoder.h: * sys/qsv/gstqsvh264enc.cpp: * sys/qsv/gstqsvh265enc.cpp: * sys/qsv/gstqsvvp9enc.cpp: * tests/examples/meson.build: * tests/examples/qsv/key-handler.c: * tests/examples/qsv/key-handler.h: * tests/examples/qsv/meson.build: * tests/examples/qsv/qsvenc-dynamic-reconfigure.c: qsvencoder: Add support for dynamic bitrate update ... and add more encoding options. QSV API supports dynamic bitrate change without IDR insertion. That's more efficient way of runtime encoding option update than starting from new sequence with IDR per bitrate option change. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2039> 2022-03-25 23:15:33 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvh265enc.cpp: qsvh265enc: Add missing gop-size property Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2039> 2022-03-25 21:13:22 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvallocator.cpp: qsv: Fix mfxFrameAllocator::Lock for encoder Only read map is possible for encoder input system memory Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2039> 2022-03-28 20:51:35 +1100 Matthew Waters <matthew@centricular.com> * sys/applemedia/videotexturecache.m: applemeida/texturecache: remove unused variable Fixes: ../sys/applemedia/videotexturecache.m:71:20: error: variable 'features' set but not used [-Werror,-Wunused-but-set-variable] GstCapsFeatures *features; ^ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046> 2022-03-28 20:50:27 +1100 Matthew Waters <matthew@centricular.com> * sys/applemedia/corevideobuffer.c: applemedia/corevideobuffer: remove unused variable Fixes: ../sys/applemedia/corevideobuffer.c:209:19: error: variable 'video_meta' set but not used [-Werror,-Wunused-but-set-variable] GstVideoMeta *video_meta; ^ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046> 2022-03-28 20:49:01 +1100 Matthew Waters <matthew@centricular.com> * sys/applemedia/iosurfaceglmemory.c: applemedia/iosgl: remove unused variable Fixes: ../sys/applemedia/iosurfaceglmemory.c:219:41: error: variable 'texfmt' set but not used [-Werror,-Wunused-but-set-variable] GLuint tex_id, tex_target, texifmt, texfmt; ^ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046> 2022-03-28 20:37:54 +1100 Matthew Waters <matthew@centricular.com> * sys/applemedia/vtdec.c: vtdec: remove unused variable Fixes: ../sys/applemedia/vtdec.c:611:35: error: variable 'output_flags' set but not used [-Werror,-Wunused-but-set-variable] VTDecodeFrameFlags input_flags, output_flags; ^ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046> 2022-03-28 20:24:59 +1100 Matthew Waters <matthew@centricular.com> * sys/applemedia/avsamplevideosink.m: avsamplevideosink: remove unused variable Fixes ../sys/applemedia/avsamplevideosink.m:80:20: error: variable 'gstelement_class' set but not used [-Werror,-Wunused-but-set-variable] GstElementClass *gstelement_class; ^ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046> 2022-03-28 20:11:29 +1100 Matthew Waters <matthew@centricular.com> * sys/applemedia/avfassetsrc.m: avfassetsrc: fix unused-but-set warning ../sys/applemedia/avfassetsrc.m:1014:12: error: variable 'caps' set but not used [-Werror,-Wunused-but-set-variable] GstCaps *caps; ^ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046> 2022-03-28 19:42:04 +1100 Matthew Waters <matthew@centricular.com> * gst/speed/gstspeed.c: speed: fix unused-but-set warning ../gst/speed/gstspeed.c:523:39: error: variable 'base' set but not used [-Werror,-Wunused-but-set-variable] gint64 start_value, stop_value, base; ^ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046> 2022-03-28 18:38:23 +1100 Matthew Waters <matthew@centricular.com> * ext/resindvd/gstpesfilter.c: resindvd: silence unused-but-set warning ../ext/resindvd/gstpesfilter.c:117:11: error: variable 'STD_buffer_size_bound' set but not used [-Werror,-Wunused-but-set-variable] guint16 STD_buffer_size_bound; ^ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046> 2022-03-28 18:23:20 +1100 Matthew Waters <matthew@centricular.com> * gst/mpegtsmux/gstbasetsmux.c: mpegts: don't shadow res variable Fixes unused-but-set warning: ../gst/mpegtsmux/gstbasetsmux.c:2115:43: error: variable 'res' set but not used [-Werror,-Wunused-but-set-variable] gboolean all_headers, done = FALSE, res = FALSE; ^ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046> 2022-03-28 18:12:43 +1100 Matthew Waters <matthew@centricular.com> * gst-libs/gst/mpegts/gst-dvb-section.c: mpeg: fix unused-but-set warning ../gst-libs/gst/mpegts/gst-dvb-section.c:206:9: error: variable 'i' set but not used [-Werror,-Wunused-but-set-variable] guint i = 0, allocated_events = 12; ^ ../gst-libs/gst/mpegts/gst-dvb-section.c:365:9: error: variable 'i' set but not used [-Werror,-Wunused-but-set-variable] guint i = 0, allocated_streams = 12; ^ ../gst-libs/gst/mpegts/gst-dvb-section.c:543:9: error: variable 'i' set but not used [-Werror,-Wunused-but-set-variable] guint i = 0, allocated_streams = 12; ^ ../gst-libs/gst/mpegts/gst-dvb-section.c:885:9: error: variable 'i' set but not used [-Werror,-Wunused-but-set-variable] guint i = 0, allocated_services = 8; ^ ../gst-libs/gst/mpegts/gst-dvb-section.c:1316:9: error: variable 'i' set but not used [-Werror,-Wunused-but-set-variable] guint i = 0, allocated_services = 8; ^ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046> 2022-03-28 10:10:45 +0300 Sebastian Dröge <sebastian@centricular.com> * docs/plugins/gst_plugins_cache.json: video-format: Move NV12_8L128 into the correct position in GST_VIDEO_FORMATS_ALL Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2045> 2022-03-28 15:56:22 +1100 Matthew Waters <matthew@centricular.com> * gst/mpegdemux/gstpesfilter.c: mpegdemux: silence unused-but-set werror ../gst/mpegdemux/gstpesfilter.c:117:11: error: variable 'STD_buffer_size_bound' set but not used [-Werror,-Wunused-but-set-variable] guint16 STD_buffer_size_bound; ^ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2044> 2022-03-25 14:25:02 +1100 Andrew Pritchard <andrew@vivi.io> * sys/androidmedia/jni/gstamcsurfacetexture-jni.c: Fix GstAmcSurfaceTexture segfault Check that `self` and `self->callback` are defined. `self` can be set to `NULL` in `remove_listener`, and `self->callback` can be set to `NULL` inside `gst_amc_surface_texture_jni_set_on_frame_available_callback`. This can cause a segfault since the Java object can outlive the C object, and call the callback after `remove_listener` is called. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2024> 2022-03-23 17:31:37 +1100 Matthew Waters <matthew@centricular.com> * ext/closedcaption/gstccconverter.c: * ext/closedcaption/gstccconverter.h: * tests/check/elements/ccconverter.c: ccconverter: ensure correct ordering of cea608 across output buffers e.g. if a 60fps output is configured, we can only produce a single field of cea608 that must alternate between field 1 and field 2. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2019> 2022-03-23 15:13:10 +1100 Matthew Waters <matthew@centricular.com> * ext/closedcaption/gstccconverter.c: * tests/check/elements/ccconverter.c: ccconverter: ignore padding cea608 data even if marked as 'valid' Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2019> 2022-03-23 10:36:28 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2decoder.c: v4l2codecs: Detect missing M2M_HOLD_CAPTURE_BUF Produce an error if we try to use the feature of holding capture buffer but it is not supported by the driver. Ingoring this can lead to stalls as the driver will run-out of capture buffer to decode into. This affects slice decoders but also split-field interlaced decoding. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2009> 2022-03-23 09:11:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2codech264dec.c: v4l2codecs: h264: Set other field poc if available Whenever the other field POC is available, pass it back to the driver. This should not be strictly required, but it makes things easier to debug and more forgiven. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2009> 2021-12-21 10:59:37 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2codech264dec.c: * sys/v4l2codecs/gstv4l2decoder.c: * sys/v4l2codecs/gstv4l2decoder.h: v4l2codecs: Trace request by it FD This helps when crossing the debug logs with the kernel logs. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2009> 2021-12-21 10:55:58 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2codech264dec.c: v4l2codecs: h264: Fix dpb entry flag FLAG_FIELD The logic to guess back this value was broken. Use the value now saved into the picture instead. This was tested using LibreELEC patched 5.15 kernel, and fixed the interlaced decode issues. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2009> 2021-12-21 10:52:32 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * gst-libs/gst/codecs/gsth264decoder.c: * gst-libs/gst/codecs/gsth264picture.h: codecs: h264: Save the field_pic_flag This flag is set when the stream is interlaced and the specific slice is made of single parity fields rather the paired at the macroblock layer. This is rarely needed in late decoding process but the Rockchip RKVDEC HW interface requires it, hence needs to be passed through V4L2 Stateless interface. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2009> 2022-03-25 13:26:52 -0400 Xavier Claessens <xavier.claessens@collabora.com> * tests/examples/d3d11/d3d11device.cpp: d3d11: Fix example build error ``` ../subprojects/gst-plugins-bad/tests/examples/d3d11/d3d11device.cpp:129:50: error: invalid conversion from ‘int’ to ‘DXGI_FORMAT’ [-fpermissive] 129 | D3D11_SHADER_RESOURCE_VIEW_DESC srv_desc = { 0, }; ``` Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2029> 2022-03-18 16:59:32 +0000 Thibault Saunier <tsaunier@igalia.com> * ext/directfb/dfbvideosink.c: * ext/opencv/gsthanddetect.cpp: * ext/vulkan/vksink.c: * sys/d3d11/gstd3d11videosink.cpp: * sys/d3dvideosink/d3dhelpers.c: * tests/check/pipelines/ipcpipeline.c: navigation: Add support for key Modifiers in all relevant events Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2010> 2022-03-24 21:39:30 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvah265dec.c: va: h265dec: Fix a crash because of missing reference frame. Some problematic H265 stream may miss the reference frame in the DPB, and get some message like: "No short term reference picture for xxx". So there may be empty entries in ref_pic_list0/1 when passing to decode_slice() function of sub class. We need to check the NULL pointer. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2018> 2022-03-24 15:19:27 +0800 Chun-wei Fan <fanchunwei@src.gnome.org> * ext/openexr/meson.build: openexr: Specify modules when finding OpenEXR. Specify modules to look for OpenEXR when CMake is used, as we may have CMake config files instead of pkg-config files that result from building OpenEXR, which may be built with CMake which is typically the case on Visual Studio builds. In this case, Meson does seem to find the 'OpenEXR' package with CMake after trying pkg-config, but does not consider it enough without the 'modules:' argument. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2014> 2022-03-22 00:30:28 +0900 Sangchul Lee <sc11.lee@samsung.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: Update documentation of 'get-stats' action signal Some stats fields are updated according to the current implementation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2005> 2022-03-25 00:27:42 +0100 Mathieu Duponchelle <mathieu@centricular.com> * ext/webrtc/gstwebrtcbin.c: * ext/webrtc/webrtctransceiver.c: * ext/webrtc/webrtctransceiver.h: * tests/check/elements/webrtcbin.c: Revert "webrtcbin: fix msid line and allow customization" This reverts commit 3cad3455377d5a22faa138d9df840257059776c8. That commit was breaking the association between an audio and a video track in the standard case. In practice, to support carrying separate MediaStream, we are going a way to map what MediaStreamTrack belong to what MediaStream, but that will require some thinking about the API. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2023> 2022-03-24 19:55:48 +0200 Vivia Nikolaidou <vivia@ahiru.eu> * gst/mpegtsdemux/mpegtspacketizer.c: * gst/mpegtsdemux/mpegtspacketizer.h: * gst/mpegtsdemux/tsdemux.c: tsdemux: Don't check SCTE events for being too far from the PCR Otherwise it happens that SCTE events can only be scheduled up to 15 seconds since the last seen PCR, which is a useless restriction. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2021> 2022-03-21 23:03:36 +0100 Mathieu Duponchelle <mathieu@centricular.com> * ext/webrtc/gstwebrtcbin.c: * ext/webrtc/webrtctransceiver.c: * ext/webrtc/webrtctransceiver.h: * tests/check/elements/webrtcbin.c: webrtcbin: fix msid line and allow customization From https://datatracker.ietf.org/doc/html/draft-ietf-mmusic-msid-16: > Multiple media descriptions with the same value for msid-id and > msid-appdata are not permitted. Our previous implementation of simply using the CNAME as the msid identifier and the name of the transceiver as the msid appdata was misguided and incorrect, and created issues when bundling multiple video streams together: the ontrack event was emitted with the same streams for the two bundled medias, at least in Firefox. Instead, use the transceiver name as the identifier, and expose a msid-appdata property on transceivers to allow for further customization by the application. When the property is not set, msid-appdata can be left empty as it is specified as optional. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2003> 2022-01-05 10:15:34 -0300 Thibault Saunier <tsaunier@igalia.com> * ext/wpe/gstwpesrcbin.cpp: wpe: Mark first audio buffer as discont Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1492> 2022-01-04 15:49:35 -0300 Thibault Saunier <tsaunier@igalia.com> * ext/wpe/gstwpe.h: * ext/wpe/gstwpesrcbin.cpp: * ext/wpe/gstwpevideosrc.cpp: * ext/wpe/meson.build: * tests/validate/meson.build: * tests/validate/wpe/load_bytes_first.validatetest: wpe: Use `about:blank` as default URL to support only using load-bytes WebKit is not going to render anything until a URI is set, leading to a WPE posting a `WPE View did not render a buffer` error message. To avoid requiring the user to know it if they only want to use `wpesrc::load-bytes` we can just use `about:blank` as default and everything will work as users would expect. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1492> 2022-01-27 23:54:34 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * gst/debugutils/gstfakeaudiosink.c: * gst/debugutils/gstfakeaudiosink.h: * gst/debugutils/gstfakevideosink.c: * gst/debugutils/gstfakevideosink.h: fakevideosink,fakeaudiosink: Proxy handoff and preroll-handoff signals Proxy signals for application to be able to consume them Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1585> 2021-12-24 19:49:34 +0900 Seungha Yang <seungha@centricular.com> * docs/plugins/gst_plugins_cache.json: * ext/aom/gstav1enc.c: aom: av1enc: Specify Temporal Unit alignment Encoded bitstream consists of leading Temporal delimiter OBU with frame, that's Temporal Unit alignment. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1471> 2022-03-24 02:52:45 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvh264enc.cpp: * sys/qsv/gstqsvh265enc.cpp: * sys/qsv/gstqsvvp9enc.cpp: qsvencoder: Clear caps after debug print Otherwise debug function will print (null) for alread cleared pointer Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2012> 2022-03-24 02:43:43 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvh264enc.cpp: qsvh264enc: Fix profile and level setting in codec data The profile field in SPS is located after header byte Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2012> 2022-03-16 04:58:16 +0900 Seungha Yang <seungha@centricular.com> nvcodec: Add new Direct3D11/CUDA mode encoder implementation Adding new encoder elements nvd3d11{h264,h265}enc for Direct3D11 input support and re-written nvcuda{h264,h265}enc elements. Newly writeen elements have some differences compared with old nv{h264,h265}enc including non-backward compatible changes. * RGBA is not a supported input format any more: New elements will support only YUV formats to avoid implicit conversion done by hardware. Ideally it should be done by upstream element in order to have more control on it. Moreover, RGBA support can cause redundant RGBA -> YUV conversion if multiple encoders are used for the same RGBA input * Subsampled planar format support is dropped: I420 and YV12 format are not supported formats for Direct3D11. Although it's supported in CUDA mode, it's not a hardware friendly memory layout and it will waste GPU memory since UV planes will have large padding due to the memory layout requirement of NVENC. * GL support is dropped: Similar to the RGBA case, GL support in encoder would be suboptimal if GL input is used by multiple encoders, because each encoder will copy GL memory into CUDA memory. Upstream cudaupload element can be used for GL <-> CUDA interop instead. * No more pre-allocation of encoder input surfaces. New implementation will use input CUDA memory without copy (zero-copy) or will copy into a NVENC's input buffer struct in case of system memory input. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1997> 2022-02-10 10:21:01 +0100 Vivienne Watermeier <vwatermeier@igalia.com> * ext/wpe/WPEThreadedView.cpp: * ext/wpe/WPEThreadedView.h: * ext/wpe/gstwpevideosrc.cpp: wpevideosrc: Add touch event support Dispatches a list of active touch events to the wpe view on each received TOUCH_FRAME event. Touch inputs currently only move the cursor, since wpe doesn't seem to support clicking/scrolling or zooming with touch input. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633> 2022-02-14 16:08:23 +0100 Vivienne Watermeier <vwatermeier@igalia.com> * ext/directfb/dfbvideosink.c: * ext/opencv/gsthanddetect.cpp: * ext/vulkan/vksink.c: * gst/librfb/gstrfbsrc.c: * sys/d3d11/gstd3d11videosink.cpp: * sys/d3dvideosink/d3dhelpers.c: * sys/d3dvideosink/d3dvideosink.c: * sys/directshow/dshowvideosink.cpp: * sys/va/gstvavpp.c: * tests/check/pipelines/ipcpipeline.c: all: Use new navigation interface and API Use and implement the new navigation interface in all relevant sink elements, and use API functions everywhere instead of directy accessing the event structure. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633> 2022-03-22 10:37:59 +0800 Tong Wu <tong1.wu@intel.com> * sys/msdk/gstmsdkenc.c: * sys/msdk/gstmsdkh265enc.c: * sys/msdk/gstmsdkvp9enc.c: msdkenc: add macro definitions to avoid the gst-inspect error Since the strings are empty for GST_MSDK_CAPS_MAKE_WITH_DMABUF_FEATURE and GST_MSDK_CAPS_MAKE_WITH_VA_FEATURE, when excuting gst-inspect-1.0.exe msdkh265enc, there will be convert static caps error because of the extra semicolon between two empty strings. Now macro definitions are added to avoid this issue. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2004> 2022-01-26 14:55:51 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkdec.c: msdkdec: Check width and height of mfxVideoParam before allocation DecodeHeader must be called to fill the mfxVideoParam before allocation, and thus the check for width and height in mfxVideoParam is necessary. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1817> 2022-03-18 16:34:38 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> * docs/plugins/gst_plugins_cache.json: doc: Update cache after NV12_8L128 addition Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379> 2022-03-21 13:01:03 +0100 Benjamin Gaignard <benjamin.gaignard@collabora.com> * sys/v4l2codecs/gstv4l2decoder.c: v4l2codecs: Fix memory leak Free pending_requests array when releasing decoder to avoid memory leak Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2000> 2022-02-02 10:05:16 -0300 Daniel Almeida <daniel.almeida@collabora.com> * gst-libs/gst/codecs/gstav1decoder.c: * gst-libs/gst/codecs/gstav1decoder.h: * gst-libs/gst/codecs/gstvp9decoder.c: * sys/d3d11/gstd3d11av1dec.cpp: * sys/va/gstvaav1dec.c: av1decoder: Sync duplicate_picture with VP9 one Pass the current frame to the duplicate_picture callback. This makes it easier to set the frame's output_buffer if we already have one available. Also documented that unlike VP9, it is not optional to implement this as the picture will populate the DPB if it is a key-frame. To ensure this, remove the default implementation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1992> 2022-03-18 15:59:21 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> * gst-libs/gst/codecs/gstvp9decoder.c: vp9decoder: Copy system_frame_number in duplicate_picture Just like AV1, copy the system_frame_number from the original picture to make it clear they reference the same data. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1992> 2022-03-09 16:35:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * gst-libs/gst/codecs/gstav1decoder.c: cdoecs: av1: Copy system_frame_number in duplicate_picture The system_frame_number is notably used by V4L2 decoder as a unique indentifier for the frame that was decoded. This value is used to tell driver which frame to reference, as V4L2 does not have an efficient mechanism to otherwise pass back the frames. For this reason, and because it is more ligical, copy the original system_frame_number into the duplicate picture instead of using the current frame. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1992> 2022-03-21 22:03:53 +0900 Seungha Yang <seungha@centricular.com> * sys/va/meson.build: meson: va: Define GST_USE_UNSTABLE_API Remove extra_c_args which is not defined in this meson file at all, and define GST_USE_UNSTABLE_API to avoid build warnings Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1999> 2022-03-16 13:17:21 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> * gst-libs/gst/codecparsers/gstav1parser.c: * gst-libs/gst/codecparsers/gstav1parser.h: * gst-libs/gst/codecs/gstav1decoder.c: codecs: av1: Fix state when we show existing keyframe Showing existing keyframe have special meaning in AV1. All the references frame will be refreshed with the original keyframe information. The refresh process (7.20) is implemented by saving data from the frame_header into the state. To fix this special case, load all the relevant information into the frame_header. As there is nothing happening in between this and the loading of the key-frame into the state, this patch also remove the separate API function, using it internally instead. Fixes #1090 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1971> 2022-03-18 13:04:59 +0100 Jakub Adam <jakub.adam@collabora.com> * sys/d3d11/gstd3d11screencapture.cpp: d3d11: Fix some typos Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1985> 2022-03-18 13:42:27 +0530 Nirbheek Chauhan <nirbheek@centricular.com> * meson.build: meson: Bump all meson requirements to 0.60 Lots of new warnings ever since https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977> 2022-03-18 13:37:30 +0530 Nirbheek Chauhan <nirbheek@centricular.com> * ext/openexr/gstopenexrdec.cpp: openexr: Fix some warnings ``` ../subprojects/gst-plugins-bad/ext/openexr/gstopenexrdec.cpp:46:24: warning: ‘Imf_3_1::Int64’ is deprecated: use uint64_t [-Wdeprecated-declarations] 46 | virtual Int64 tellg (); | ^ In file included from ../subprojects/gst-plugins-bad/ext/openexr/gstopenexrdec.cpp:32: /usr/include/OpenEXR/ImfInt64.h:23:32: note: declared here 23 | typedef IMATH_NAMESPACE::Int64 Int64; | ^~~~~ ../subprojects/gst-plugins-bad/ext/openexr/gstopenexrdec.cpp:47:32: warning: ‘Imf_3_1::Int64’ is deprecated: use uint64_t [-Wdeprecated-declarations] 47 | virtual void seekg (Int64 pos); | ^ In file included from ../subprojects/gst-plugins-bad/ext/openexr/gstopenexrdec.cpp:32: /usr/include/OpenEXR/ImfInt64.h:23:32: note: declared here 23 | typedef IMATH_NAMESPACE::Int64 Int64; | ^~~~~ ../subprojects/gst-plugins-bad/ext/openexr/gstopenexrdec.cpp:67:26: warning: ‘Imf_3_1::Int64’ is deprecated: use uint64_t [-Wdeprecated-declarations] 67 | Int64 MemIStream::tellg () | ^ In file included from ../subprojects/gst-plugins-bad/ext/openexr/gstopenexrdec.cpp:32: /usr/include/OpenEXR/ImfInt64.h:23:32: note: declared here 23 | typedef IMATH_NAMESPACE::Int64 Int64; | ^~~~~ ../subprojects/gst-plugins-bad/ext/openexr/gstopenexrdec.cpp:73:29: warning: ‘Imf_3_1::Int64’ is deprecated: use uint64_t [-Wdeprecated-declarations] 73 | MemIStream::seekg (Int64 pos) | ^ In file included from ../subprojects/gst-plugins-bad/ext/openexr/gstopenexrdec.cpp:32: /usr/include/OpenEXR/ImfInt64.h:23:32: note: declared here 23 | typedef IMATH_NAMESPACE::Int64 Int64; | ^~~~~ ``` Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977> 2022-03-18 09:48:46 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/codecparsers/gstav1parser.h: codecparsers: av1parser: Fix a typo in FilmGrainParams comment. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1974> 2022-03-10 17:37:26 +0100 Jakub Adam <jakub.adam@collabora.com> * sys/d3d11/gstd3d11screencapture.cpp: * sys/d3d11/gstd3d11screencapture.h: * sys/d3d11/gstd3d11screencapturesrc.cpp: d3d11screencapturesrc: Allow capturing screen sub-area Adds crop-x, crop-y, crop-width, crop-height properties specifying the screen area to capture. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1932> 2022-03-15 17:01:59 +0530 Nirbheek Chauhan <nirbheek@centricular.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: Warn when offer didn't intersect with transceiver caps We were silently falling back to creating a recvonly offer if the caps didn't intersect. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864> 2022-03-17 13:36:25 +1100 Matthew Waters <matthew@centricular.com> * ext/closedcaption/gstccconverter.c: ccconverter: drop data with a warning if scratch buffers overflow Instead of asserting which could bring down the entire application. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1972> 2022-03-11 17:02:55 +0000 Philippe Normand <philn@igalia.com> * ext/wpe/WPEThreadedView.cpp: wpe: Reintroduce persistent WebContext A WebContext leak was introduced in MR https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252. If we wanted one WebContext per WebView we should also unref the WebKitWebContext when destroying the WebView. This patch reintroduces the persistent WebContext, initially part of https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1484. Fixes #1084 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1933> 2022-03-16 00:05:19 +0100 Mathieu Duponchelle <mathieu@centricular.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: fix deadlock when setting up FEC encoder We bind transceivers' fec_percentage property to the FEC encoder percentage property, and with the binding bidirectional a deadlock was introduced by the latest changes from !1762: We take hold of the transceiver's object lock, then add the binding and set the property to its initial value on the encoder, which causes set_property to deadlock in the transceiver when the binding kicks in. Changing the binding type to DEFAULT (source to target) is enough to address the deadlock and still serves the original intent. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1967> 2022-03-10 19:22:52 +0900 Sangchul Lee <sc11.lee@samsung.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: Check data channel transport for notifying 'ice-gathering-state' Previously, it did not care about data channel's. It is fixed by adding some conditions. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1957> 2022-03-14 01:19:53 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudamemorycopy.c: * sys/nvcodec/gstcudautils.c: * sys/nvcodec/gstcudautils.h: nvcodec: Move CUDA <-> GL, D3D11, NVMM copy function to utils This method can be used in other elements as well. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1945> 2022-03-12 01:12:25 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvh265dec.c: nvh265sldec: Add support for delayed output Delay 4 frames in case of non-live to improve throughput Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1937> 2022-03-12 21:54:45 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gsth265decoder.c: * gst-libs/gst/codecs/gsth265decoder.h: h265decoder: Add support for delayed output Functionally identical to the other decoder baseclasses. Delayed output can improve throughput depending on decoding APIs. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1937> 2022-03-12 00:53:04 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gsth265decoder.h: h265decoder: Update documentation Sync up with other baseclasses Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1937> 2022-03-12 04:45:22 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gsth265decoder.c: * gst-libs/gst/codecs/gsth265picture.h: h265decoder: Drain decoder on new_sequence() Holding previously decoded but not outputted pictures even after new_sequence is not a safe approach in various aspect. However, we cannot drain out DPB on new_sequence() unconditionally, because there is a case where decoder should drop decoded pictures if NoOutputOfPriorPicsFlag is set. To detect NoOutputOfPriorPicsFlag before the new_sequence() call, this patch splits decoding process into two path, one for nal unit parsing in order to detect NoOutputOfPriorPicsFlag and then each nal unit will be decoded. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1937> 2022-03-12 03:15:48 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gsth265decoder.c: * gst-libs/gst/codecs/gsth265picture.c: * gst-libs/gst/codecs/gsth265picture.h: h265decoder: Remove unused pts variable We can know timestamp from associated GstVideoCodecFrame Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1937> 2022-03-13 00:17:48 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvbaseenc.c: nvenc: Fix deadlock because of too strict buffer pool size The pool size might need to be larger than encoding surface pool size. Also, because we always copy input frame into internal CUDA memory, there's no reason to restrict max size of buffer pool. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1939> 2022-03-12 10:31:13 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvah264enc.c: va: Fix a regression because of "Invert video codec frame dependency". 1. Always set the according GstVaH264EncFrame pointer when GstVideoCodecFrame pointer is assigned, which can make the logic safe. 2. Fix the forgotten change in _sort_by_frame_num. Its input pointer now is GstVideoCodecFrame type. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1935> 2022-03-09 03:45:18 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gstav1decoder.c: * gst-libs/gst/codecs/gstav1picture.c: * gst-libs/gst/codecs/gstav1picture.h: * gst-libs/gst/codecs/gsth264decoder.c: * gst-libs/gst/codecs/gsth264picture.c: * gst-libs/gst/codecs/gsth264picture.h: * gst-libs/gst/codecs/gsth265decoder.c: * gst-libs/gst/codecs/gsth265picture.c: * gst-libs/gst/codecs/gsth265picture.h: * gst-libs/gst/codecs/gstmpeg2decoder.c: * gst-libs/gst/codecs/gstmpeg2picture.c: * gst-libs/gst/codecs/gstmpeg2picture.h: * gst-libs/gst/codecs/gstvp8decoder.c: * gst-libs/gst/codecs/gstvp8picture.h: * gst-libs/gst/codecs/gstvp9decoder.c: * gst-libs/gst/codecs/gstvp9picture.c: * gst-libs/gst/codecs/gstvp9picture.h: * sys/nvcodec/gstnvh264dec.c: * sys/va/gstvah264dec.c: codecs: Rename picture clear functions Our convention for clear method is gst_clear_foo_bar(). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1897> 2022-03-11 23:20:26 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvh265dec.c: nvh265sldec: Always fill SPS/PPS related parameters Address compare was not a valid approach since it works only if SPS/PPS id are changed. Otherwise it will always point to the same address of member variables of h265parser. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1931> 2022-03-11 19:32:59 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gsth264picture.c: h264decoder: Fix invalid memory access gst_h264_dpb_needs_bump() can be called with null picture in case of live Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1928> 2022-02-10 08:01:02 +0100 Branko Subasic <branko@axis.com> * docs/plugins/gst_plugins_cache.json: * gst/onvif/gstrtponviftimestamp.c: * gst/onvif/gstrtponviftimestamp.h: * tests/check/elements/rtponviftimestamp.c: rtponviftimestamp: add support for using reference timestamps Make it posible to configure the element to obtain the timestamps from reference timestamp meta data instead of using the ntp-offset property, or estimating its own offset. Currently the only time format supported is "timestamp/x-unix", i.e. UTC time expressed in the unix time epoch. In addition the custom event GstNtpOffset has been renamed to GstOnvifTimestamp, to reflect that it is not necessarily used to convey the ntp-offset. As a consequence we had to modify a couple of files in the rtsp-server as well. Fixes #984 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1683> 2022-03-10 18:40:12 +0000 Tim-Philipp Müller <tim@centricular.com> * gst/sdp/gstsdpdemux.c: sdpdemux: add media attributes to caps to fix ptp clock handling Those are needed by rtpjitterbuffer to do the right thing, e.g. a=ts-refclk:ptp=IEEE1588-2008:00-**-**-**-**-**-**-**:0 a=mediaclk:direct=1266592257 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1924> 2022-03-08 16:20:27 +0100 Corentin Damman <c.damman@intopix.com> * sys/nvcodec/gstcudaformat.h: * sys/nvcodec/gstcudamemorycopy.c: cudamemorycopy: add D3D11 resource support Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1807> 2022-03-09 09:35:16 +0100 Corentin Damman <c.damman@intopix.com> * sys/nvcodec/gstcudacontext.c: * sys/nvcodec/meson.build: cudacontext: find associated DXGI Adapter LUID Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1807> 2022-02-28 14:40:51 +0100 Corentin Damman <c.damman@intopix.com> * sys/nvcodec/gstcudautils.c: * sys/nvcodec/gstcudautils.h: * sys/nvcodec/meson.build: * sys/nvcodec/stub/cuda.h: cudautils: add support of D3D11 resource as Cuda graphics resource type Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1807> 2022-02-28 11:24:31 +0100 Corentin Damman <c.damman@intopix.com> * sys/nvcodec/gstcudaloader.c: * sys/nvcodec/gstcudaloader.h: * sys/nvcodec/stub/cuda.h: cudaloader: add D3D11 API Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1807> 2022-03-10 10:33:56 +0100 Edward Hervey <edward@centricular.com> * gst/mpegtsdemux/mpegtsbase.c: * gst/mpegtsdemux/mpegtsbase.h: mpegts: Handle glib < 2.58 By using a workaround to the lack of g_ptr_array_steal_index. Fixes #1078 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1917> 2022-03-10 15:36:00 +1100 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: webrtcbin: fix ulpfecenc passthrough pt ulpfecenc uses a value of pt=255 for passthrough. Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1075 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1914> 2022-03-10 02:28:11 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvdec.c: * sys/nvcodec/gstnvdec.h: nvh264dec,nvh265dec: Fix broken key-unit trick and reverse playback On GstVideoDecoder::{drain,flush}, we send null packet with CUVID_PKT_ENDOFSTREAM flag to drain out decoder. Which will reset CUVID parser as well. To continue decoding after the drain, the next input buffer should include sequence headers otherwise CUVID parser will not report any decodeable frame. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1911> 2021-11-02 09:20:55 +0100 Edward Hervey <edward@centricular.com> * gst/mpegtsdemux/mpegtsbase.c: tsbase: Handle more program updates There could be a case where the new program has the same program number as the previous one ... but is actually located on a PID previously used for elementary stream. In that case the program is guaranteed to not be an update of the previous program but a completely new one. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1893> 2021-11-02 09:18:57 +0100 Edward Hervey <edward@centricular.com> * gst/mpegtsdemux/mpegtsbase.c: * gst/mpegtsdemux/mpegtsbase.h: mpegtsbase: Use an array to track programs We need to be able to look for programs by their PID also. Using a hash table was a bit sub-par (and overkill) for storing a range of programs. This is needed because there could potentially be two programs with the same program id but different PMT PID (while one is being deactivated the new one would "exist"). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1893> 2022-03-04 13:19:17 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Invert video codec frame dependency. Instead of using GstMiniObject to hold H264 frame, now it uses a plain structure. Besides, instead of holding a reference to GstVideoCodecFrame, the H264 frame structure is set as a GstVideoCodecFrame user data. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1856> 2022-03-09 02:14:50 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudamemorycopy.c: cudamemorycopy: Fix GL resource leak Clear GL resources on stop() Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1896> 2022-03-07 18:46:55 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * gst/mpegtsmux/gstbasetsmux.c: mpegtsmux: Start last_ts with GST_CLOCK_TIME_NONE And use the output segment position for the outgoing timestamp while it is. This is needed to delay the calculation of `output_ts_offset` until we actually have a usable timestamp, as tsmux will output a few initial packets while `last_ts` is still unset. Without this, the calculation would use the initial `0` value, which did not have the intended effect of making VBR mode behave like CBR mode, but always calculated an offset equal to the selected start time. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1884> 2022-03-07 18:46:08 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> * gst/mpegtsmux/gstbasetsmux.c: mpegtsmux: Use GST_CLOCK_STIME_NONE for output_ts_offset It's a GstClockTimeDiff, thus GST_CLOCK_TIME_NONE isn't appropriate. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1884> 2022-03-08 01:26:50 +0900 Seungha Yang <seungha@centricular.com> * 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: * sys/decklink/linux/LinuxCOM.h: * 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: * sys/decklink/win/DeckLinkAPI.h: * sys/decklink/win/DeckLinkAPI_i.c: decklink: Update SDK version to 12.2.2 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1883> 2022-03-08 03:45:01 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudamemorycopy.c: cudamemorycopy: Remove texture-target caps field It's GL specific field, and we can remove it unconditionally Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1865> 2022-03-05 02:30:24 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudaformat.h: * sys/nvcodec/gstcudamemorycopy.c: * sys/nvcodec/gstcudanvmm.c: * sys/nvcodec/gstcudanvmm.h: * sys/nvcodec/meson.build: * sys/nvcodec/plugin.c: cudaupload,cudadownload: Add support for dGPU NVMM Implement NVMM <-> CUDA, GL, SYSTEM memory conversion. Jetson is not supported yet. Note that NVMM <-> GL interop on Jetson platform is supported by GstGL Some example pipelines are: - Convert NVMM to GstGL memory nvv4l2decoder ! "video/x-raw(memory:NVMM)" ! cudadownload ! "video/x-raw(memory:GLMemory)" ! glimagesink - Upload system memory to NVMM and encode video/x-raw,format=NV12 ! cudaupload ! "video/x-raw(memory:NVMM)" ! nvv4l2h264enc - Convert NVMM to GstCUDA memory and encode nvvideoconvert ! "video/x-raw(memory:NVMM)" ! cudaupload ! "video/x-raw(memory:CUDAMemory)" ! nvh264enc Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1865> 2022-03-03 15:06:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaencoder.c: * sys/va/gstvaencoder.h: * sys/va/gstvah264enc.c: va: encoder: Don't preallocate reconstruct buffers. It's not required by VA to register the reconstruct buffers at context creation, just as in decoders. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1857> 2022-03-07 10:19:53 +0000 Philippe Normand <philn@igalia.com> * tests/check/libs/play.c: gstplay: tests: Keep track of errors/warnings Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1869> 2022-03-07 10:16:36 +0000 Philippe Normand <philn@igalia.com> * gst-libs/gst/play/gstplay.c: gstplay: Do not error out on message parsing failures Specially when parsing errors and warnings, the details field can be NULL and the gst_structure_get() call would return FALSE in such cases, triggering false positive errors. Follow-up for #1063 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1869> 2022-03-07 10:14:43 +0000 Philippe Normand <philn@igalia.com> * gst-libs/gst/play/gstplay.c: * gst-libs/gst/play/gstplay.h: gstplay: Fix warning parsing API The GError is an out parameter, so should be a ** parameter, like the details parameter. See also #1063 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1869> 2022-03-07 18:59:37 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudamemorycopy.c: cudamemorycopy: Fix build when gl is disabled Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1707 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1868> 2022-03-02 09:15:12 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkdec.c: msdkdec: Fix to not trigger SFC scaling when vpp at downstream When there is vpp scaling downstream, we need to make sure SFC is not triggered because vpp may fall into passthrough mode which causes the decoder negotiation to create src caps with vpp scaled width/height. This patch includes bitstream's original size in first query with downstream in gst_msdkdec_src_caps, which is the same for what we do for color format in this query. This is to ensure SFC scaling starts to work only when downstream directly asks for a different size instead of through vpp. Note that here SFC scaling follows the same behavior as msdkvpp: if user only changes width or height, e.g. dec ! video/x-raw,width=xx !, the height will be modified to the value which fits the original DAR. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1838> 2022-03-06 19:18:20 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudautils.c: nvcodec: Add missing null check in context sharing code Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1834> 2022-03-04 03:33:41 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudadownload.c: * sys/nvcodec/gstcudadownload.h: * sys/nvcodec/gstcudaformat.h: * sys/nvcodec/gstcudamemorycopy.c: * sys/nvcodec/gstcudamemorycopy.h: * sys/nvcodec/gstcudaupload.c: * sys/nvcodec/gstcudaupload.h: * sys/nvcodec/meson.build: * sys/nvcodec/plugin.c: nvcodec: Refactor cudaupload/download and add support for GL memory * Implement new baseclass GstCudaMemoryCopy to remove duplicated cudaupload/download code * Add support for CUDA <-> GL memory conversion via cudaupload/download Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1834> 2022-03-03 03:25:47 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/cuda-converter.c: * sys/nvcodec/cuda-converter.h: * sys/nvcodec/gstcudabasefilter.c: * sys/nvcodec/gstcudabufferpool.c: * sys/nvcodec/gstcudadownload.c: * sys/nvcodec/gstcudamemory.c: * sys/nvcodec/gstcudamemory.h: * sys/nvcodec/gstcudaupload.c: * sys/nvcodec/gstnvbaseenc.c: * sys/nvcodec/gstnvdec.c: * sys/nvcodec/gstnvdecoder.c: * sys/nvcodec/plugin.c: nvcodec: Refactor GstCudaMemory abstraction * Hide GstCudaMemory member variables * Make GstCudaAllocator object GstCudaContext independent * Set offset/stride of memory correctly via video meta * Drop GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT support. This implementation actually does not support custom alignment because we allocate device memory via cuMemAllocPitch of which alignment is almost uncontrollable Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1834> 2022-03-02 22:03:54 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/cuda-converter.h: * sys/nvcodec/gstcudabasefilter.c: * sys/nvcodec/gstcudabasefilter.h: * sys/nvcodec/gstcudabasetransform.c: * sys/nvcodec/gstcudabasetransform.h: * sys/nvcodec/gstcudaconvert.c: * sys/nvcodec/gstcudadownload.c: * sys/nvcodec/gstcudadownload.h: * sys/nvcodec/gstcudaformat.h: * sys/nvcodec/gstcudaupload.c: * sys/nvcodec/gstcudaupload.h: nvcodec: Refactor basetransform subclasses * cudaupload/download - Specify only formats actually we can deal with nvcodec elements, not all video formats - Supports CUDA output for download and input for upload in order to make passthrough possible, like other upload/download elements. * cudabasetransform - Reset conversion element if upstream CUDA memory holds different CUDA context and the element can accept it. This is the same behavior as corresponding d3d11 filter elements. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1834> 2022-03-02 20:55:29 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudabufferpool.c: * sys/nvcodec/gstcudabufferpool.h: cudabufferpool: Move GstCudaContext object to public member ... so that plugins can understand assosicated cuda context with the pool. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1834> 2022-03-03 02:48:17 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudacontext.c: * sys/nvcodec/gstcudacontext.h: * sys/nvcodec/gstcudautils.c: cudacontext: Require explicit gpu id instead of auto (-1) Sync up with GstD3D11Device implementation. The auto stuff should be handled in context sharing step, not device creation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1834> 2022-03-03 03:24:14 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudaloader.c: * sys/nvcodec/gstcudamemory.c: * sys/nvcodec/gstcudascale.c: * sys/nvcodec/gstcuvidloader.c: * sys/nvcodec/gstnvrtcloader.c: nvcodec: Indent update ... to prevent gnu indent version dependent diffs. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1834> 2022-03-02 05:01:42 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstcudacontext.c: cudacontext: Remove unnecessary cuInit() call It's already called at plugin init time Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1834> 2022-03-05 11:35:29 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gstav1parse.c: av1parse: Add a comment when the detection of TU fails. Also update the print message. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1863> 2022-03-04 16:48:54 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * gst/camerabin2/gstwrappercamerabinsrc.c: camerabin: Remove drain query This was to support very old V4L2 kernel. As we moved to DMABuf and can now detach buffers on renegotiation, the buffer it tries to fix no longer exist. The risk to blocking indefinitly the application does still exist though. Fixes #1070 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1861> 2022-03-03 23:00:41 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gstav1parse.c: av1parse: check the error return when parse_alignment_from_caps() Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1837> 2022-03-03 22:38:56 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gstav1parse.c: av1parse: Use the intersected caps to decide the alignment. When we negotiate with downstream, We should use the intersected caps of input and output to decide the alignment and stream format. The current code just uses the input caps which may lack the stream format. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1837> 2022-03-03 21:30:00 +0800 He Junyan <junyan.he@intel.com> * gst/ivfparse/gstivfparse.c: ivfparse: Set the alignment to tu for AV1 stream. Just do the same as other demux. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1837> 2022-03-03 17:51:11 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gstav1parse.c: av1parse: Only detect the stream format when input alignment is tu. The demux now outputs the AV1 stream in "tu" alignment, so we do not need to detect the input alignment. But the annex b stream format is not recognized by the demux, we still need to detect that stream format for the first input. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1837> 2022-03-02 16:22:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * gst/videoparsers/gstav1parse.c: av1parse: Save the default alignment Otherwise the transformation is not applied and decoders may not get the appropriate format despite the caps being negotiated correctly. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1837> 2022-03-02 16:20:31 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * gst/videoparsers/gstav1parse.c: av1parse: Remove duplicated check The case of both strings being empty is already checked in the helper function. No functional changes. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1837> 2022-03-04 10:02:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * gst/videoparsers/gstvp9parse.c: vp9parse: Fix auto-plugging of HW frame decoder Decoders that required frame aligmment and didn't have an associated alpha decoder were skipped. This is because the parser was constructing caps based on the software alpha decoder, which specify super-frame alignment. Iterate over the caps to filter the one that have a matching codec-alpha, with the semantic the no codec-alpha field means codec-alpha=false. Then if everything was removed, callback to the original, so that the first non-alpha decoder will be picked. Fixes #820 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1855> 2022-03-04 14:17:47 +0100 Edward Hervey <edward@centricular.com> * gst/mpegtsdemux/tsdemux.c: tsdemux: Handle PES headers bigger than a mpeg-ts packet While the actual PES header parser could notify us that it needed more data, we would never actually act on it. This commit will accumulate incoming packets in such situation and re-attempt the header parsing. Fixes #1027 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1852> 2022-03-03 11:32:23 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabasetransform.c: va: basetransform: Add device-path read-only property. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1844> 2022-03-03 11:05:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvabasedec.c: * sys/va/gstvabasedec.h: va: basedec: Add device-path read-only property. And elements will notify the used device-path if display is DRM. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1844> 2022-03-04 13:34:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Remove GST_PARAM_CONDITIONALLY_AVAILABLE. Since it's used only when the property is conditionally installed, and these parameters are always installed. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1845> 2022-03-04 09:15:42 +0100 He Junyan <junyan.he@intel.com> * sys/va/gstvaencoder.c: va: encoder: Clean dead code. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1845> 2022-03-03 14:08:16 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaencoder.c: va: encoder: Fix error code path when open. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1845> 2022-03-03 13:57:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvah264enc.c: vah264enc: Remove preferred_output_delay. In the current state of the encoder it's just dead code. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1845> 2022-03-03 09:59:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaencoder.c: * sys/va/gstvaencoder.h: * sys/va/gstvah264enc.c: vah264enc: Avoid mapping coded buffer twice. Currently for copying the coded buffer onto a GStreamer buffer, the coded buffer is mapped two times: one for getting the size, and later for do the actual copy. We can avoid this by doing directly in the element rather than in the general encoder object. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1845> 2022-03-02 20:53:16 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvaencoder.c: * sys/va/gstvaencoder.h: * sys/va/gstvah264enc.c: vah264enc: Single parameter array per picture. There's no need, at least in H.264, to hold a global parameter array, since there's no need to submit SPS, trellis, hdr or quality in every buffer, but only on IDR ones. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1845> 2022-03-02 20:06:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/plugin.c: va: Fix log message Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1845> 2022-03-04 09:57:02 +0000 Philippe Normand <philn@igalia.com> * gst-libs/gst/play/gstplay.c: * gst-libs/gst/play/gstplay.h: play: Fix error parsing API The GError is an out parameter, so should be a ** parameter, like the details parameter. Fixes #1063 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1849> 2021-08-03 12:14:49 +1000 Matthew Waters <matthew@centricular.com> * ext/webrtc/gstwebrtcbin.c: * ext/webrtc/transportstream.c: * ext/webrtc/transportstream.h: * ext/webrtc/webrtctransceiver.c: * ext/webrtc/webrtctransceiver.h: * tests/check/elements/webrtcbin.c: webrtc: support renegotiating adding/removing RTX We need to always add the RTX/RED/ULPFEC elements as rtpbin will only call us once to request aux/fec senders/receivers. We also need to regenerate the media section of the SDP instead of blindly copying from the previous offer. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1762> 2022-03-01 11:43:09 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkenc.c: msdkenc: Change default ref frames number as 0 When user does not set ref-frames in pipeline, we should let MediaSDK decide the reference frame number via setting default value as 0 at gstreamer side. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1839> 2022-03-04 04:18:06 +0900 Seungha Yang <seungha@centricular.com> * sys/wic/meson.build: meson: wic: Fix typo Should check WIC build option, not MediaFoundation Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1847> 2022-03-03 04:22:15 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvdecoder.h: * sys/qsv/gstqsvencoder.h: * sys/qsv/gstqsvh264dec.cpp: * sys/qsv/gstqsvh264enc.cpp: * sys/qsv/gstqsvh265enc.cpp: * sys/qsv/gstqsvvp9enc.cpp: qsv: Remove strcpy for DRM device path Simplify code. It's just one-time allocation, so don't need to worry about leaking. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1835> 2022-03-03 04:57:42 +0900 Seungha Yang <seungha@centricular.com> * sys/msdk/gstmsdkcontext.c: msdk: Don't print error log for missing DRM device path It's expected in case that such DRM device is unavailable for some reasons, specifically non-Intel platform or so Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1836> 2022-01-30 03:11:37 +0900 Seungha Yang <seungha@centricular.com> * meson_options.txt: * sys/meson.build: * sys/wic/gstwicdecoder.cpp: * sys/wic/gstwicdecoder.h: * sys/wic/gstwicimagingfactory.cpp: * sys/wic/gstwicimagingfactory.h: * sys/wic/gstwicjpegdec.cpp: * sys/wic/gstwicjpegdec.h: * sys/wic/gstwicpngdec.cpp: * sys/wic/gstwicpngdec.h: * sys/wic/gstwicutils.cpp: * sys/wic/gstwicutils.h: * sys/wic/meson.build: * sys/wic/plugin.cpp: wic: Add support for JPEG and PNG decoding Adding Windows Imaging Component (WIC) plugin with JPEG/PNG decoding support. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1605> 2022-03-02 06:17:22 +0900 Seungha Yang <seungha@centricular.com> * sys/directshow/gstdshow.cpp: * sys/directshow/gstdshowvideodec.cpp: directshow: Fix for division by zero The AvgTimePerFrame value may be unknown. Use arbitrary value (30 fps) instead of crashing. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1828> 2022-02-20 03:59:32 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvallocator.cpp: * sys/qsv/gstqsvallocator.h: * sys/qsv/gstqsvallocator_d3d11.cpp: * sys/qsv/gstqsvallocator_va.cpp: * sys/qsv/gstqsvdecoder.cpp: * sys/qsv/gstqsvdecoder.h: * sys/qsv/gstqsvencoder.cpp: * sys/qsv/gstqsvh264dec.cpp: * sys/qsv/gstqsvh264dec.h: * sys/qsv/gstqsvutils.h: * sys/qsv/meson.build: * sys/qsv/plugin.cpp: qsv: Add H.264 decoder Initial decoder implementation with baseclass Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1786> 2022-02-21 10:49:15 +0100 Sebastian Fricke <sebastian.fricke@collabora.com> * ext/wpe/WPEThreadedView.cpp: * ext/wpe/gstwpe.cpp: * ext/wpe/gstwpe.h: Remove the uninstalled term Remove the symbolic link `gst-uninstalled` which points to `gst-env`. The `uninstalled` is the old name and the project should stick to a single name for the procedure. Remove the term from all the files, exceptions are variables from dependencies like `uninstalled_variables` from pkgconfig and `meson-uninstalled`. Adjust mentions of the script in the documentation and README. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1743> 2022-02-23 11:10:11 +0100 Sebastian Fricke <sebastian.fricke@collabora.com> * README.md: Maintain build instructions at a single location Do not maintain similar build instructions within each gst-plugins-* subproject and the subproject/gstreamer subproject. Use the build instructions from the mono-repository and link to them via hyperlink. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1743> 2022-02-21 12:26:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * docs/plugins/gst_plugins_cache.json: docs: Add vah264enc metadata. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1051> 2021-10-05 01:53:19 +0800 He Junyan <junyan.he@intel.com> * sys/va/plugin.c: va: enable the H264 encoder. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1051> 2021-10-05 01:51:48 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvah264enc.c: * sys/va/gstvah264enc.h: * sys/va/meson.build: va: Add H264 encoder. This a new VA-API implementation of a H264 encoder. It can control the GOP and parameter settings, while the MV searching, VCL and the rate control algorithm are implemented by VA drivers and HW. It supports most of the common usage options in H264, but still lacks of look ahead, field, B frame weighted prediction, etc. Co-authored-by: Victor Jaquez <vjaquez@igalia.com> Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1051> 2021-10-05 01:50:07 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvaencoder.c: * sys/va/gstvaencoder.h: * sys/va/meson.build: va: Add a common encoder object. As the counterpart of the va decoder, this class handles all the common logic for the encoding routine and miscellaneous queries about encoding. Co-authored-by: Victor Jaquez <vjaquez@igalia.com> Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1051> 2022-01-20 21:44:20 +0800 He Junyan <junyan.he@intel.com> * sys/va/vacompat.h: va: Add vacompat.h to wrap glib functions. The g_queue_clear_full() and g_array_copy() functions in the glib may not be available for the current glib version check, so we add helper functions to wrap it. This should be deleted after the glib version bumps. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1051> 2021-10-21 22:56:23 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvaprofile.c: * sys/va/gstvaprofile.h: va: Add the profile string name into the profile_map. We also add a helper function of gst_va_profile_from_name to get the VA profile value by its profile string name. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1051> 2021-10-05 01:53:47 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvaprofile.c: va: Change the H264 profile string order in the profile_map. The first one should be the one that matches the VA profile's name most precisely. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1051> 2021-10-05 01:45:25 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvacaps.c: * sys/va/gstvacaps.h: va: caps: Expose gst_va_create_coded_caps as helper function. And allow free indentation for array declaration. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1051> 2021-10-05 01:43:28 +0800 He Junyan <junyan.he@intel.com> * tests/check/libs/h264bitwriter.c: * tests/check/meson.build: test: Add test cases for the H264 bitwriter. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1051> 2021-10-05 01:42:41 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/codecparsers/gsth264bitwriter.c: * gst-libs/gst/codecparsers/gsth264bitwriter.h: * gst-libs/gst/codecparsers/meson.build: codecparsers: bitwriter: Add the common bit writer functions for H264. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1051> 2021-10-05 01:41:07 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/codecparsers/nalutils.c: * gst-libs/gst/codecparsers/nalutils.h: codecparsers: nalutils: Add nal_writer_reset_and_get_data help function. We not only want to create a NAL gstmemory, but also need to create and get the raw data of a NAL writer for the later usage. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1051> 2022-02-28 16:33:23 +0100 Guillaume Desmottes <guillaume.desmottes@onestream.live> * ext/gs/meson.build: gs: look for google_cloud_cpp_storage.pc storage_client.pc was legacy and has been removed: https://github.com/googleapis/google-cloud-cpp/commit/df6fa3611cdfbc37d40e1451afa91fd7d2e7d5f7#diff-bc35ad7c2fe631fd5578a06092412dba81c7ddd27bb25df7e17bb13771799afcL743 No need to keep looking for storage_client.pc as a fallback as 1.25.0, our minimum version, already ships google_cloud_cpp_storage.pc Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1815> 2022-02-25 15:00:05 +0800 jinsl00000 <jinsl00000@msn.cn> * sys/ipcpipeline/gstipcpipelinecomm.c: * sys/ipcpipeline/meson.build: ipcpipeline: fix crash and error on windows with SOCKET or _pipe() The fd was in different meanings on windows: POSIX read and write use the fd as a file descriptor. The gst_poll use the fd as a WSASocket. This patch use WSASocket as default on windows. This is a temporary measure, because IPC has many different implement. There may be a better way in the future. See #1044 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1791> 2022-02-14 16:15:46 +0800 Wu Tong <tong1.wu@intel.com> * sys/msdk/gstmsdkcontextutil.c: * sys/msdk/gstmsdkenc.c: MSDK: Add _context_query() and avoid compile error on Windows To avoid compile error on Windows, macro definitions are added to suppress va variables. In the meantime, add function _context_query() to query context on Windows. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1693> 2022-02-24 20:26:46 +0530 Sanchayan Maity <sanchayan@asymptotic.io> * ext/ldac/gstldacenc.c: ldac: Set eqmid in caps We set the eqmid in caps to be usable downstream by rtpldacpay for knowing the frame count. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1797> 2022-01-31 16:13:32 +0200 Vivia Nikolaidou <vivia@ahiru.eu> * gst/mpegtsmux/gstbasetsmux.c: tsmux: Skip empty buffers They can be created e.g. by aggregator when there is a gap. Such buffers should not be muxed at all. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1611> 2022-02-21 11:37:26 -0500 Xavier Claessens <xavier.claessens@collabora.com> * data/meson.build: * ext/voamrwbenc/meson.build: * gst/freeverb/meson.build: devenv: Add some missing GStreamer specific env variables This should make "meson devenv" closer to what "gst-env.py" sets. - GST_VALIDATE_SCENARIOS_PATH - GST_VALIDATE_APPS_DIR - GST_OMX_CONFIG_DIR - GST_ENCODING_TARGET_PATH - GST_PRESET_PATH - GST_PLUGIN_SCANNER - GST_PTP_HELPER - _GI_OVERRIDES_PATH Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1768> 2018-12-05 01:22:48 +0100 Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> * ext/fdkaac/gstfdkaacdec.c: * ext/fdkaac/gstfdkaacdec.h: fdkaacdec: Support arbitrary channel configs Try to match the config to GStreamer positions. If something doesn't fit, fall back to a set of unpositioned channels. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1561> 2018-12-05 01:07:19 +0100 Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> * ext/fdkaac/gstfdkaacdec.c: * ext/fdkaac/gstfdkaacdec.h: fdkaacdec: Use predefined channel layouts This limits the decoder to the layouts predefined for the encoder (including the MPEG standard layouts) but greatly simplifies the implementation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1561> 2022-02-01 14:51:27 +0200 Vivia Nikolaidou <vivia@ahiru.eu> * gst/mpegtsmux/gstbasetsmux.c: * gst/mpegtsmux/gstbasetsmux.h: tsmux: Lock mux->tsmux, the programs hash table, and pad streams They contain implementations that are not thread-safe (e.g. GList, GHashTable). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1616> 2022-02-17 15:16:40 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkdec.c: msdkdec: Fix uninitialized variables Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1731> 2022-02-17 15:12:52 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkdec.c: * sys/msdk/gstmsdkvpp.c: msdk: Fix unchecked return values There are several calls of gst_video_info_from_caps and gst_video_frame_copy without checks for the returned values. This patch adds all necessary function return checks. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1738> 2022-02-22 05:19:51 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvencoder.cpp: qsvencoder: Fix caps leak in Linux build Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1769> 2022-02-22 05:15:04 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/plugin.cpp: qsv: Fix debug category name of qsvallocator Remove gst prefix to make $env:GST_DEBUG="qsv*:6" work for qsvallocator as well Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1769> 2022-02-21 16:45:50 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * docs/plugins/gst_plugins_cache.json: bad:docs: Add vaav1dec in documentation Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1773> 2022-02-21 14:17:11 +0200 Sebastian Dröge <sebastian@centricular.com> * gst-libs/gst/d3d11/gstd3d11memory.cpp: * gst-libs/gst/d3d11/gstd3d11memory.h: d3d11: Remove non-existing gst_d3d11_memory_get_type() API from header Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1764> 2022-02-14 23:30:45 +0300 Dmitry Osipenko <dmitry.osipenko@collabora.com> * sys/v4l2codecs/gstv4l2format.c: * sys/v4l2codecs/gstv4l2format.h: v4l2codecs: Support YUV420M format YUV420M format of V4L essentially is I420 with separate memory planes. It's used by NVIDIA Tegra V4L decoder. Support this format by v4l2codecs. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1727> 2022-02-20 23:59:46 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11screencapturesrc.cpp: d3d11screencapturesrc: Use staging buffer pool for performance By using staging pool/buffer, we can avoid per frame staging texture -> system memory copy. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1756> 2022-02-20 15:20:07 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * docs/plugins/gst_plugins_cache.json: doc: Add NV12_16L32S into the cache Autogenerated by CI Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567> 2022-01-26 13:39:40 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2format.c: * sys/v4l2codecs/gstv4l2format.h: v4l2codecs: Enable MediaTek MM21 (NV12_16L32S) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567> 2022-01-19 15:53:05 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2format.c: v4l2codecs: Add support for multi planar buffers V4L2 have some pixel formats that produces 2 dmabuf, this add support for these format. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567> 2022-01-25 14:08:47 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * ext/wayland/wlshmallocator.c: * sys/kms/gstkmsallocator.c: * sys/v4l2codecs/gstv4l2format.c: Port plugins to gst_video_format_info_extrapolate_stride() This reduces code duplication and simplify addition of new pixel formats into related plugins. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567> 2022-02-20 06:36:45 +0900 Seungha Yang <seungha@centricular.com> * sys/winscreencap/dxgicapture.c: * sys/winscreencap/dxgicapture.h: * sys/winscreencap/gstdxgiscreencapsrc.c: * sys/winscreencap/gstdxgiscreencapsrc.h: * sys/winscreencap/gstwinscreencap.c: * sys/winscreencap/meson.build: winscreencap: Remove dxgiscreencapsrc element We have the d3d11screencapturesrc element in d3d11 plugin which is obviously better than this element in terms of performance and design, so we don't need to make people be confused by two separate elements. Let's pick the better implementation and remove unnecessary one. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1750> 2022-02-08 15:23:17 +0100 Jan Alexander Steffens (heftig) <heftig@archlinux.org> * ext/wpe/meson.build: wpe: Clean up build script Use feature.require to check for gstgl and exit early if 'wpe' is disabled (don't even check for wpe-webkit-1.1). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1668> 2022-02-19 00:37:34 +0900 Seungha Yang <seungha@centricular.com> * sys/directshow/dshowvideosink.cpp: * sys/directshow/gstdshowaudiodec.h: directshow: Fix build warnings Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1744> 2022-02-19 00:14:38 +0900 Seungha Yang <seungha@centricular.com> * sys/directshow/dshowdecwrapper/gstdshowdecwrapper.cpp: * sys/directshow/dshowdecwrapper/gstdshowdecwrapper.h: * sys/directshow/dshowdecwrapper/meson.build: * sys/directshow/dshowdeviceprovider.cpp: * sys/directshow/dshowdeviceprovider.h: * sys/directshow/dshowsinkwrapper/meson.build: * sys/directshow/dshowsrcwrapper/meson.build: * sys/directshow/dshowvideofakesrc.cpp: * sys/directshow/dshowvideofakesrc.h: * sys/directshow/dshowvideosink.cpp: * sys/directshow/dshowvideosink.h: * sys/directshow/gstdshow.cpp: * sys/directshow/gstdshow.h: * sys/directshow/gstdshowaudiodec.cpp: * sys/directshow/gstdshowaudiodec.h: * sys/directshow/gstdshowaudiosrc.cpp: * sys/directshow/gstdshowaudiosrc.h: * sys/directshow/gstdshowfakesink.cpp: * sys/directshow/gstdshowfakesink.h: * sys/directshow/gstdshowfakesrc.cpp: * sys/directshow/gstdshowfakesrc.h: * sys/directshow/gstdshowutil.cpp: * sys/directshow/gstdshowutil.h: * sys/directshow/gstdshowvideodec.cpp: * sys/directshow/gstdshowvideodec.h: * sys/directshow/gstdshowvideosrc.cpp: * sys/directshow/gstdshowvideosrc.h: * sys/directshow/meson.build: * sys/directshow/plugin.cpp: directshow: Merge plugins into single directshow plugin ... and lower rank of dshowvideosink and dshowdeviceprovider to GST_RANK_MARGINAL since we don't prefer this plugin by default Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1744> 2022-02-19 00:12:55 +0900 Seungha Yang <seungha@centricular.com> * sys/directshow/dshowdecwrapper/gstdshowaudiodec.cpp: * sys/directshow/dshowdecwrapper/gstdshowaudiodec.h: * sys/directshow/dshowdecwrapper/gstdshowfakesrc.cpp: * sys/directshow/dshowdecwrapper/gstdshowfakesrc.h: * sys/directshow/dshowdecwrapper/gstdshowutil.cpp: * sys/directshow/dshowdecwrapper/gstdshowutil.h: * sys/directshow/dshowdecwrapper/gstdshowvideodec.cpp: * sys/directshow/dshowdecwrapper/gstdshowvideodec.h: * sys/directshow/dshowsinkwrapper/dshowvideofakesrc.cpp: * sys/directshow/dshowsinkwrapper/dshowvideosink.cpp: * sys/directshow/dshowsinkwrapper/dshowvideosink.h: * sys/directshow/dshowsrcwrapper/gstdshow.h: * sys/directshow/dshowsrcwrapper/gstdshowaudiosrc.h: * sys/directshow/dshowsrcwrapper/gstdshowsrcwrapper.cpp: * sys/directshow/dshowsrcwrapper/gstdshowvideosrc.cpp: * sys/directshow/dshowsrcwrapper/gstdshowvideosrc.h: directshow: Remove white spaces Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1744> 2021-10-19 16:10:06 -0300 Martin Reboredo <yakoyoku@gmail.com> * docs/plugins/gst_plugins_cache.json: * ext/vulkan/gstvulkan.c: * ext/vulkan/gstvulkanelements.h: * ext/vulkan/meson.build: * ext/vulkan/vkshaderspv.c: * ext/vulkan/vkshaderspv.h: vulkanshaderspv: SPIRV based filter Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1197> 2022-02-18 16:23:09 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2codecvp9dec.c: v4l2codecs: vp9: Fix reset_frame_context parameter It was assumed that the kernel parameters would match with the bitstream value but instead the author when with another set of value. Surprisingly, this makes no difference with the resulting fluster score. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1748> 2022-02-18 16:02:27 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2codecvp9dec.c: v4l2codecs: vp9: Only fill compressed headers if needed Fixes: 13944cf3ee871722 ("v4l2codecs: vp9: Make compressed hdr control optional") Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1748> 2022-01-14 23:42:27 -0600 Tim Mooney <Tim.Mooney@ndsu.edu> * sys/v4l2codecs/linux/types-compat.h: v4l2: include <sys/ioccom.h> on Illumos Needed for _IOR/_IORW Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1524> 2022-01-26 21:06:45 +0100 Loic Le Page <llepage@fluendo.com> * sys/directshow/dshowsinkwrapper/dshowvideofakesrc.cpp: * sys/directshow/dshowsinkwrapper/dshowvideofakesrc.h: * sys/directshow/dshowsinkwrapper/dshowvideosink.cpp: * sys/directshow/dshowsinkwrapper/dshowvideosink.h: * sys/directshow/dshowsinkwrapper/meson.build: * sys/directshow/dshowvideosink/README: * sys/directshow/meson.build: Add build files and fix build for gst-plugins-bad dshowsinkwrapper plugin dshowsinkwrapper plugin is the old dshowvideosink plugin that has been renamed to be compliant with the actuel plugin name in the source code. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1577> 2022-01-26 21:03:10 +0100 Loic Le Page <llepage@fluendo.com> * sys/directshow/dshowsrcwrapper/BUILD.txt: * sys/directshow/dshowsrcwrapper/CMakeLists.txt: * sys/directshow/dshowsrcwrapper/gstdshowvideosrc.cpp: * sys/directshow/dshowsrcwrapper/meson.build: * sys/directshow/meson.build: Add build files and fix build for gst-plugins-bad dshowsrcwrapper plugin Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1577> 2022-01-26 20:58:12 +0100 Loic Le Page <llepage@fluendo.com> * sys/directshow/dshowdecwrapper/CMakeLists.txt: * sys/directshow/dshowdecwrapper/gstdshowvideodec.cpp: * sys/directshow/dshowdecwrapper/meson.build: * sys/directshow/meson.build: Add build files and fix build for gst-plugins-bad dshowdecwrapper plugin Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1577> 2022-01-26 20:43:09 +0100 Loic Le Page <llepage@fluendo.com> * meson_options.txt: * sys/directshow/meson.build: * sys/directshow/strmbase/LICENSE: * sys/directshow/strmbase/baseclasses/amextra.cpp: * sys/directshow/strmbase/baseclasses/amextra.h: * sys/directshow/strmbase/baseclasses/amfilter.cpp: * sys/directshow/strmbase/baseclasses/amfilter.h: * sys/directshow/strmbase/baseclasses/amvideo.cpp: * sys/directshow/strmbase/baseclasses/arithutil.cpp: * sys/directshow/strmbase/baseclasses/cache.h: * sys/directshow/strmbase/baseclasses/checkbmi.h: * sys/directshow/strmbase/baseclasses/combase.cpp: * sys/directshow/strmbase/baseclasses/combase.h: * sys/directshow/strmbase/baseclasses/cprop.cpp: * sys/directshow/strmbase/baseclasses/cprop.h: * sys/directshow/strmbase/baseclasses/ctlutil.cpp: * sys/directshow/strmbase/baseclasses/ctlutil.h: * sys/directshow/strmbase/baseclasses/ddmm.cpp: * sys/directshow/strmbase/baseclasses/ddmm.h: * sys/directshow/strmbase/baseclasses/dllentry.cpp: * sys/directshow/strmbase/baseclasses/dllsetup.cpp: * sys/directshow/strmbase/baseclasses/dllsetup.h: * sys/directshow/strmbase/baseclasses/dxmperf.h: * sys/directshow/strmbase/baseclasses/fourcc.h: * sys/directshow/strmbase/baseclasses/measure.h: * sys/directshow/strmbase/baseclasses/msgthrd.h: * sys/directshow/strmbase/baseclasses/mtype.cpp: * sys/directshow/strmbase/baseclasses/mtype.h: * sys/directshow/strmbase/baseclasses/outputq.cpp: * sys/directshow/strmbase/baseclasses/outputq.h: * sys/directshow/strmbase/baseclasses/perflog.cpp: * sys/directshow/strmbase/baseclasses/perflog.h: * sys/directshow/strmbase/baseclasses/perfstruct.h: * sys/directshow/strmbase/baseclasses/pstream.cpp: * sys/directshow/strmbase/baseclasses/pstream.h: * sys/directshow/strmbase/baseclasses/pullpin.cpp: * sys/directshow/strmbase/baseclasses/pullpin.h: * sys/directshow/strmbase/baseclasses/refclock.cpp: * sys/directshow/strmbase/baseclasses/refclock.h: * sys/directshow/strmbase/baseclasses/reftime.h: * sys/directshow/strmbase/baseclasses/renbase.cpp: * sys/directshow/strmbase/baseclasses/renbase.h: * sys/directshow/strmbase/baseclasses/schedule.cpp: * sys/directshow/strmbase/baseclasses/schedule.h: * sys/directshow/strmbase/baseclasses/seekpt.cpp: * sys/directshow/strmbase/baseclasses/seekpt.h: * sys/directshow/strmbase/baseclasses/source.cpp: * sys/directshow/strmbase/baseclasses/source.h: * sys/directshow/strmbase/baseclasses/streams.h: * sys/directshow/strmbase/baseclasses/strmctl.cpp: * sys/directshow/strmbase/baseclasses/strmctl.h: * sys/directshow/strmbase/baseclasses/sysclock.cpp: * sys/directshow/strmbase/baseclasses/sysclock.h: * sys/directshow/strmbase/baseclasses/transfrm.cpp: * sys/directshow/strmbase/baseclasses/transfrm.h: * sys/directshow/strmbase/baseclasses/transip.cpp: * sys/directshow/strmbase/baseclasses/transip.h: * sys/directshow/strmbase/baseclasses/videoctl.cpp: * sys/directshow/strmbase/baseclasses/videoctl.h: * sys/directshow/strmbase/baseclasses/vtrans.cpp: * sys/directshow/strmbase/baseclasses/vtrans.h: * sys/directshow/strmbase/baseclasses/winctrl.cpp: * sys/directshow/strmbase/baseclasses/winctrl.h: * sys/directshow/strmbase/baseclasses/winutil.cpp: * sys/directshow/strmbase/baseclasses/winutil.h: * sys/directshow/strmbase/baseclasses/wxdebug.cpp: * sys/directshow/strmbase/baseclasses/wxdebug.h: * sys/directshow/strmbase/baseclasses/wxlist.cpp: * sys/directshow/strmbase/baseclasses/wxlist.h: * sys/directshow/strmbase/baseclasses/wxutil.cpp: * sys/directshow/strmbase/baseclasses/wxutil.h: * sys/directshow/strmbase/meson.build: * sys/meson.build: Add directshow strmbase library source code from Microsoft repo Original repo is here: https://github.com/microsoft/Windows-classic-samples Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1577> 2022-02-16 14:53:12 +0100 Loïc Le Page <llepage@fluendo.com> * sys/directshow/dshowdecwrapper/CMakeLists.txt: * sys/directshow/dshowdecwrapper/gstdshowaudiodec.cpp: * sys/directshow/dshowdecwrapper/gstdshowaudiodec.h: * sys/directshow/dshowdecwrapper/gstdshowdecwrapper.cpp: * sys/directshow/dshowdecwrapper/gstdshowdecwrapper.h: * sys/directshow/dshowdecwrapper/gstdshowfakesrc.cpp: * sys/directshow/dshowdecwrapper/gstdshowfakesrc.h: * sys/directshow/dshowdecwrapper/gstdshowutil.cpp: * sys/directshow/dshowdecwrapper/gstdshowutil.h: * sys/directshow/dshowdecwrapper/gstdshowvideodec.cpp: * sys/directshow/dshowdecwrapper/gstdshowvideodec.h: * sys/directshow/dshowsrcwrapper/BUILD.txt: * sys/directshow/dshowsrcwrapper/CMakeLists.txt: * sys/directshow/dshowsrcwrapper/dshowdeviceprovider.cpp: * sys/directshow/dshowsrcwrapper/dshowdeviceprovider.h: * sys/directshow/dshowsrcwrapper/gstdshow.cpp: * sys/directshow/dshowsrcwrapper/gstdshow.h: * sys/directshow/dshowsrcwrapper/gstdshowaudiosrc.cpp: * sys/directshow/dshowsrcwrapper/gstdshowaudiosrc.h: * sys/directshow/dshowsrcwrapper/gstdshowfakesink.cpp: * sys/directshow/dshowsrcwrapper/gstdshowfakesink.h: * sys/directshow/dshowsrcwrapper/gstdshowsrcwrapper.cpp: * sys/directshow/dshowsrcwrapper/gstdshowvideosrc.cpp: * sys/directshow/dshowsrcwrapper/gstdshowvideosrc.h: * sys/directshow/dshowvideosink/README: * sys/directshow/dshowvideosink/dshowvideofakesrc.cpp: * sys/directshow/dshowvideosink/dshowvideofakesrc.h: * sys/directshow/dshowvideosink/dshowvideosink.cpp: * sys/directshow/dshowvideosink/dshowvideosink.h: Move all directshow plugins to the same sub-folder Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1577> 2022-01-15 00:04:05 -0600 Tim Mooney <Tim.Mooney@ndsu.edu> * ext/curl/meson.build: * gst/festival/meson.build: * meson.build: * sys/shm/meson.build: meson: check for libsocket and libnsl If present, add '-lsocket' and '-lnsl' to network_deps. ext/curl/meson.build: add network_deps to dependencies gst/festival/meson.build: same sys/shm/meson.build: same Fixes linking issues on Illumos distros. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1525> 2022-02-14 22:59:01 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11_private.h: * gst-libs/gst/d3d11/gstd3d11device.cpp: * gst-libs/gst/d3d11/gstd3d11format.h: * sys/d3d11/gstd3d11converter.cpp: * tests/check/elements/d3d11colorconvert.c: d3d11: Add support for AYUV, AYUV64, and RGBA64_LE formats Note that AYUV and AYUV64 formats will be used to expand format support, especially some packed YUV formats (e.g., Y410, YUY2) are common DXGI formats used for hardware decoder/encoder on Windows but those formats cannot be used as a render target. We need to handle them differently without pixel shader help, using compute shader for example. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1699> 2022-02-13 20:32:48 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11_private.h: * gst-libs/gst/d3d11/gstd3d11bufferpool.cpp: * gst-libs/gst/d3d11/gstd3d11device.cpp: * gst-libs/gst/d3d11/gstd3d11format.cpp: * gst-libs/gst/d3d11/gstd3d11format.h: * gst-libs/gst/d3d11/gstd3d11memory.cpp: * gst-libs/gst/d3d11/gstd3d11stagingbufferpool.cpp: d3d11: Reorganize format mapping table ... and handle GST <-> D3D11 format mapping in a single place to make adding format easier Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1699> 2022-02-13 04:36:39 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11bufferpool.cpp: * gst-libs/gst/d3d11/gstd3d11device.cpp: * gst-libs/gst/d3d11/gstd3d11device.h: * gst-libs/gst/d3d11/gstd3d11format.cpp: * gst-libs/gst/d3d11/gstd3d11format.h: * gst-libs/gst/d3d11/gstd3d11memory.cpp: * gst-libs/gst/d3d11/gstd3d11memory.h: * gst-libs/gst/d3d11/gstd3d11stagingbufferpool.cpp: * sys/d3d11/gstd3d11convert.cpp: * sys/d3d11/gstd3d11converter.cpp: * sys/d3d11/gstd3d11decoder.cpp: * sys/d3d11/gstd3d11pluginutils.cpp: * sys/d3d11/gstd3d11upload.cpp: * sys/d3d11/gstd3d11window.cpp: * sys/d3d11/gstd3d11window_dummy.cpp: * sys/mediafoundation/plugin.cpp: d3d11: Store device format in struct Holding pointer to struct was unsafe approach because the pointer to d3d11 format will be invalidated once d3d11 device object is released Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1699> 2021-10-01 20:27:28 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/vulkan/win32/gstvkwindow_win32.c: * gst/festival/gstfestival.c: * meson.build: * sys/ipcpipeline/gstipcpipelinecomm.c: * sys/mediafoundation/gstmfvideoencoder.cpp: * tests/examples/nvcodec/nvcodec.c: meson: Do hard build error for some MSVC warnings Handle various MSVC warnings as errors for development version. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1006> 2022-02-14 16:18:54 +0300 Dmitry Osipenko <dmitry.osipenko@collabora.com> * sys/v4l2codecs/gstv4l2codech264dec.c: v4l2codecs: h264: Correct scaling matrix ABI check Scaling matrix V4L UAPI control not presents on NVIDIA Tegra, the default matrix should be used in this case. Mark scaling matrix presence optional. Fixes: 47bfa71530c ("v4l2codecs: h264: Improve ABI check ") Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1726> 2022-01-21 15:32:09 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkdec.c: * sys/msdk/gstmsdkdec.h: msdkdec: Enable SFC scaling for AVC and HEVC Decoder SFC only supports down-scaling at most to 1/8. For example, given a 4K bistream, SFC can scale it to 1080p via: "msdkh265dec ! video/x-raw,width=1920,height=1080 ! glimagesink" Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1444> 2021-12-15 11:49:40 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkdec.c: * sys/msdk/gstmsdkh264dec.c: * sys/msdk/gstmsdkh265dec.c: msdkdec: Enable SFC csc for AVC and HEVC Decoder SFC will be triggered when default output format is not accept at downstream. One use case below can work without using msdkvpp: "! msdkh265dec ! "video/x-raw,format=BGRA" ! glimagesink", Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1444> 2021-11-17 17:05:09 +0800 Mengkejiergeli Ba <mengkejiergeli.ba@intel.com> * sys/msdk/gstmsdkdec.c: * sys/msdk/gstmsdkdec.h: msdkdec: Add SFC codes SFC refers to Scaler Format Converter, more details here: https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol15-sfc.pdf By attaching mfxExtDecVideoProcessing buffer to mfxVideoParam, decoder can do SFC for csc and scaling. MSDK will check if surface bitdepth equals to input when no SFC is triggered, which means in the case of SFC, there is no need to update surface bitdepth via gst_msdk_update_mfx_frame_info_from_mfx_video_param. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1444> 2022-02-16 02:23:58 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11converter.cpp: d3d11converter: Fix for missing GRAY conversion Add missing Y410 -> GRAY and GRAY -> semi-planar conversion Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1724> 2022-02-16 02:11:53 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11converter.cpp: d3d11converter: Don't use FIXME_OBJECT for non-GstObject ... and print ERROR messages for unexpected input/output formats Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1724> 2021-11-10 15:18:24 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/va/gstvadisplay.c: * gst-libs/gst/va/gstvadisplay.h: * sys/va/gstvacaps.c: * sys/va/gstvadecoder.c: * sys/va/gstvadisplay_priv.c: * sys/va/gstvafilter.c: * sys/va/gstvasurfacecopy.c: * sys/va/vasurfaceimage.c: va: Delete the display lock/unlock when we call VA-API. According to the VA-API's description, they are MT-safe, we do not need to care about that in our middleware layer. The lock/unlock operations have overhead and make the performance lower. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1333> 2022-02-08 15:22:39 +0100 Jan Alexander Steffens (heftig) <heftig@archlinux.org> * ext/openaptx/gstopenaptxdec.h: * ext/openaptx/gstopenaptxenc.h: * ext/openaptx/meson.build: openaptx: Support libfreeaptx [libfreeaptx][1] is a fork of libopenapt 0.2.0, used by pipewire. [1]: https://github.com/iamthehorker/libfreeaptx Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1642 Closes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1589 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1667> 2022-02-15 02:26:46 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11converter.cpp: d3d11converter: Fix RGB to GRAY conversion Fix typo in shader code Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1697> 2022-02-14 12:57:44 +0100 Stéphane Cerveau <scerveau@collabora.com> * gst/mpegtsdemux/tsdemux.c: tsdemux: unlock mutex on -1 start_offfset Closing #1013 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1694> 2022-02-13 22:39:46 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11download.cpp: d3d11download: Fix decide_allocation Caps should be parsed in any cases. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1691> 2022-02-13 10:49:31 +0800 He Junyan <junyan.he@intel.com> * sys/va/meson.build: meson: va: Add va option check into plugin's build. Because the liblibgstva is built unconditionally, we now move the va option check into va plugin's build. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1685> 2022-02-13 10:39:37 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/va/meson.build: meson: va: Remove va option check from gst-libs Building libgstva-1.0 unconditionally for the va implementation can be used by non-va plugins such as MSDK even when va plugin is disabled Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1685> 2022-02-12 10:05:11 +0000 Philippe Normand <philn@igalia.com> * gst-libs/gst/webrtc/dtlstransport.c: dtlstransport: Notify ICE transport property changes The application might track the underlying ICE transport, so not notifying changes might lead to use-after-free issues. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1688> 2022-02-12 14:51:51 +0800 He Junyan <junyan.he@intel.com> * sys/va/gstvavpp.c: vavpp: Fix the caps leak in the transform_caps() function. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1689> 2022-02-12 00:51:56 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/meson.build: meson: d3d11: Remove d3d11 option check from gst-libs Build gstd3d11-1.0 unconditionally for d3d11 implementation can be used by non-d3d11 plugins even when d3d11 plugin is disabled Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1684> 2022-02-10 22:31:06 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11_fwd.h: * gst-libs/gst/d3d11/gstd3d11_private.h: * gst-libs/gst/d3d11/gstd3d11bufferpool.cpp: * gst-libs/gst/d3d11/gstd3d11config.h.meson: * gst-libs/gst/d3d11/gstd3d11device.cpp: * gst-libs/gst/d3d11/gstd3d11format.cpp: * gst-libs/gst/d3d11/gstd3d11stagingbufferpool.cpp: * gst-libs/gst/d3d11/meson.build: * sys/d3d11/gstd3d11convert.cpp: * sys/d3d11/gstd3d11pluginutils.cpp: * sys/d3d11/gstd3d11pluginutils.h: * sys/d3d11/gstd3d11screencapturedevice.h: * sys/d3d11/gstd3d11videoprocessor.cpp: * sys/d3d11/gstd3d11videoprocessor.h: * sys/d3d11/gstd3d11window.cpp: * sys/d3d11/gstd3d11window_dummy.cpp: * sys/d3d11/gstd3d11window_win32.cpp: * sys/d3d11/meson.build: * sys/d3d11/plugin.cpp: * sys/mediafoundation/plugin.cpp: d3d11: Update build-time dependency Remove all the d3d11 and dxgi header version dependent ifdef and bump the minimum requirement to d3d11_4.h and dxgi1_6.h. We are already failing support old Visual Studio (Windows SDK actually) such as Visual Studio 2015. Note that our MinGW toolchain satisfies the requirement. From runtime point of view, this change should be fine since we are checking OS version with IUnknown::QueryInterface() everywhere in order to check API availability Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1684> 2021-05-08 17:54:34 +0800 He Junyan <junyan.he@intel.com> * sys/msdk/gstmsdkenc.c: * sys/msdk/gstmsdkenc.h: * sys/msdk/gstmsdkh265enc.c: * sys/msdk/gstmsdkvp9enc.c: * sys/msdk/msdk.h: MSDK: Import VA surface as encoder's input. We make all MSDK encoders declare "memory:VAMemory" feature. Then the pipeline such as: gst-launch-1.0 -vf filesrc location=xxx.h264 ! h264parse ! \ vah264dec ! msdkh265enc ! fakesink will choose VA memory caps between the VA decoder and MSDK encoder. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1087> 2021-05-08 17:26:27 +0800 He Junyan <junyan.he@intel.com> * sys/msdk/gstmsdk_va.c: * sys/msdk/gstmsdk_va.h: * sys/msdk/meson.build: MSDK: Add helper function to peek VA surface of VA kind gstbuffer. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1087> 2021-05-08 15:51:11 +0800 He Junyan <junyan.he@intel.com> * sys/msdk/gstmsdkenc.c: MSDK: Handle context query into the encoder's query function. The MSDK encoder's query function is not set and it just forwards all query to its base class. We now need to answer the context query correctly. Other VA plugins need to query the VA display. By the way, the current query of "gst.msdk.Context" is also missing. The other MSDK elements must depend on the bin's context message( sent in context_propagate()) to set their MsdkContext correctly. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1087> 2021-08-17 22:36:59 +0800 He Junyan <junyan.he@intel.com> * sys/msdk/gstmsdkvpp.c: MSDK: Handle context query into the VPP's query function. The MSDK VPP's query function is not set and it just forwards all query to its base class. We now need to answer the context query correctly. Other VA plugins need to query the VA display. By the way, the current query of "gst.msdk.Context" is also missing. The other MSDK elements must depend on the bin's context message( sent in context_propagate()) to set their MsdkContext correctly. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1087> 2021-08-17 22:34:43 +0800 He Junyan <junyan.he@intel.com> * sys/msdk/gstmsdkdec.c: MSDK: Handle context query into the decoder's query function. The MSDK decoder's query function is not set and it just forwards all query to its base class. We now need to answer the context query correctly. Other VA plugins need to query the VA display. By the way, the current query of "gst.msdk.Context" is also missing. The other MSDK elements must depend on the bin's context message( sent in context_propagate()) to set their MsdkContext correctly. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1087> 2021-08-17 22:33:18 +0800 He Junyan <junyan.he@intel.com> * sys/msdk/gstmsdkcontextutil.c: * sys/msdk/gstmsdkcontextutil.h: MSDK: Add a handle_context_query() helper function. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1087> 2021-08-17 21:51:58 +0800 He Junyan <junyan.he@intel.com> * sys/msdk/gstmsdkcontextutil.c: * sys/msdk/gstmsdkcontextutil.h: * sys/msdk/gstmsdkdec.c: * sys/msdk/gstmsdkenc.c: * sys/msdk/gstmsdkvpp.c: MSDK: Improve the GstContext setting logic. We now can use the gst va lib's display to create our MSDK context, and use its helper functions to simplify our code. The improved logic is like this: 1. Every MSDK element should use gst_msdk_context_find() to find a MSDK context from neighbour. If valid, reuse it. 2. Use gst_msdk_ensure_new_context(). It will first query neighbours about the GstVaDisplay, if found(e.g. some VA element is connected), use gst_msdk_context_from_external_display() to create a MSDK context. 3. Then, creating the MSDK context from scratch. It creates both the display and MSDK context. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1087> 2021-05-08 13:49:23 +0800 He Junyan <junyan.he@intel.com> * sys/msdk/gstmsdkcontext.c: * sys/msdk/gstmsdkcontext.h: MSDK: Add new_with_va_display() helper function to create context. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1087> 2021-05-08 11:44:57 +0800 He Junyan <junyan.he@intel.com> * sys/msdk/gstmsdkcontext.c: * sys/msdk/gstmsdkcontext.h: MSDK: Use the VA display object to replace the raw display handle. The VA display object from VA lib is a common defined object. which contain the whole display things. It is easier to use, and more important, we can share it with the other VA plugins and keep all the VA related plugins working on the same GPU device. We also delete the useless gst_msdk_context_get_fd() API. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1087> 2022-02-11 11:11:03 +0800 He Junyan <junyan.he@intel.com> * sys/msdk/meson.build: MSDK: Add the gst va lib into MSDK's dependency. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1087> 2022-02-10 12:52:30 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gstav1parse.c: av1parse: Add temporal unit check when TD is absent. The current manner for deciding the new temporal unit is based on temporal delimiter(TD) OBU. We only start a new temporal unit when the TD comes. But some streams do not have TD at all, which makes the output "TU" alignment fail to work. We now add check based on the relationship between the different layers and it can successfully judge the TU edge. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1634> 2022-02-04 17:12:15 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gstav1parse.c: av1parse: let the parse continue when MISSING_OBU_REFERENCE error. Some streams may have verbose OBUs before a valid sequence header. We should let the parse continue rather than return a error. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1634> 2022-02-04 11:40:18 +0800 He Junyan <junyan.he@intel.com> * gst/videoparsers/gstav1parse.c: av1parse: Continue when we fail to detect the alignment. Some streams may have problematic OBUs at the beginning, which causes the parse fail to detect the alignment and return error. For example, there may be verbose OBUs before a valid sequence, which should be discarded until we meet a valid sequence. We should let the parse continue when we meet such cases, rather than just return error. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1634> 2021-03-30 19:23:12 +0900 Seungha Yang <seungha@centricular.com> * gst/ivfparse/gstivfparse.c: ivfparse: Don't set zero resolution on caps It could be zero if the information is not available at ivfparse side, or not implemented. In that case, simply don't set width/height on caps, otherwise downstream would be confused Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1649> 2022-01-29 01:52:26 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfmp3dec.cpp: * sys/mediafoundation/gstmfmp3dec.h: * sys/mediafoundation/meson.build: * sys/mediafoundation/plugin.cpp: mediafoundation: Add support for MP3 decoding See also https://docs.microsoft.com/en-us/windows/win32/medfound/windows-media-mp3-decoder Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1596> 2022-01-27 02:20:37 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfaacdec.cpp: * sys/mediafoundation/gstmfaacdec.h: * sys/mediafoundation/gstmfaudiodecoder.cpp: * sys/mediafoundation/gstmfaudiodecoder.h: * sys/mediafoundation/gstmfutils.cpp: * sys/mediafoundation/gstmfutils.h: * sys/mediafoundation/meson.build: * sys/mediafoundation/plugin.cpp: mediafoundation: Add support for AAC decoding See also https://docs.microsoft.com/en-us/windows/win32/medfound/aac-decoder Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1596> 2022-01-28 01:45:30 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfaacenc.cpp: * sys/mediafoundation/gstmfaudioencoder.cpp: * sys/mediafoundation/gstmfaudioencoder.h: * sys/mediafoundation/gstmfh264enc.cpp: * sys/mediafoundation/gstmfh265enc.cpp: * sys/mediafoundation/gstmfmp3enc.cpp: * sys/mediafoundation/gstmfsourcereader.cpp: * sys/mediafoundation/gstmftransform.cpp: * sys/mediafoundation/gstmfvideoencoder.cpp: * sys/mediafoundation/gstmfvideoencoder.h: * sys/mediafoundation/gstmfvp9enc.cpp: * sys/mediafoundation/meson.build: * sys/mediafoundation/plugin.cpp: mediafoundation: Cosmetic changes Rename baseclass to be consistent with other Windows plugins Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1596> 2022-01-27 02:26:02 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfaudioenc.cpp: * sys/mediafoundation/gstmftransform.cpp: * sys/mediafoundation/gstmfvideoenc.cpp: mediafoundation: Use & operator instead of GetAddressOf() Use shorter expression Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1596> 2022-01-24 02:41:29 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfaacenc.cpp: * sys/mediafoundation/gstmfaudioenc.cpp: * sys/mediafoundation/gstmfcapturewinrt.cpp: * sys/mediafoundation/gstmfdevice.cpp: * sys/mediafoundation/gstmfh264enc.cpp: * sys/mediafoundation/gstmfh265enc.cpp: * sys/mediafoundation/gstmfmp3enc.cpp: * sys/mediafoundation/gstmfplatloader.cpp: * sys/mediafoundation/gstmfsourceobject.cpp: * sys/mediafoundation/gstmfsourcereader.cpp: * sys/mediafoundation/gstmftransform.cpp: * sys/mediafoundation/gstmfutils.cpp: * sys/mediafoundation/gstmfvideobuffer.cpp: * sys/mediafoundation/gstmfvideoenc.cpp: * sys/mediafoundation/gstmfvideosrc.cpp: * sys/mediafoundation/gstmfvp9enc.cpp: * sys/mediafoundation/gstwin32devicewatcher.cpp: * sys/mediafoundation/mediacapturewrapper.cpp: * sys/mediafoundation/meson.build: * sys/mediafoundation/plugin.cpp: mediafoundation: Port to C++ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1596> 2022-02-09 03:27:41 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/plugin.cpp: d3d11decoder: Promote rank to primary except for mpeg2 Our D3D11/DXVA codecs implementation has been verified during 1.18 and 1.20 development cycle and also via the Fluster test framework. Similar to the case of nvdec and vtdec, we can prefer hardware over software in most cases Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1672> 2022-02-09 15:05:14 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2codecvp9dec.c: v4l2codecs: vp9: Fix duplicating a duplicated picture Duplicating a picture what was already a dup was leading to a crash. Rename the custom picture flags as HOLDS_BUFFER to make its meaning clear. Then save then ref and store the picture as userdata, so it can be obtained when duplicating. Finally, mark the doplicated as HOLDS_BUFFER to avoid thinking it holds a request. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1681> 2022-02-10 01:48:23 +0900 Seungha Yang <seungha@centricular.com> * sys/mediafoundation/gstmfaudioenc.cpp: mfaudioenc: Handle empty IMFMediaBuffer IMFMediaBuffer may not hold encoded data, which seems to happen while draining. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1679> 2022-02-03 10:10:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvadecoder.c: va: decoder: Log profile name. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1675> 2022-01-24 16:25:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvafilter.c: va: filter: Log the added filter name. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1675> 2021-10-25 13:41:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * sys/va/gstvafilter.c: * sys/va/gstvafilter.h: * sys/va/gstvavpp.c: vapostproc: Process HDR caps This patch adds a new parameter: hdr-tone-mapping (same as vaapipostproc), if the HDR capabilites are availabe in driver, and it's disabled by default. If hdr-tone-mapping is enabled then HDR fields in sink caps are processed in frames from HDR to SDR, removing those hdr fields in source pad caps too. hdr-tone-mapping is not enabled if a color conversion is also requested, since it fails to process in the iHD driver, so far. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1258> 2021-09-30 17:42:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/meson.build: * sys/msdk/meson.build: build: Add libva dependency fallback. Then libva can be subproject and used by either gstreamer-vaapi, va and msdk in gst-plugins-bad. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1397> 2022-02-06 23:20:32 +0900 Sangchul Lee <sc11.lee@samsung.com> * ext/webrtc/gstwebrtcice.c: webrtcice: Fix memory leaks in gst_webrtc_ice_add_candidate() Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1646> 2022-01-28 14:49:42 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> * sys/v4l2codecs/gstv4l2codecvp9dec.c: * sys/v4l2codecs/gstv4l2decoder.c: v4l2codecs: vp9: Make compressed hdr control optional This is to supported by Mediatek VP9 driver. Mediatek handles the forward probabilities in hardware hence does not need and does not implement support for V4L2_CID_STATELESS_VP9_COMPRESSED_HDR. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1600> 2022-02-07 12:34:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/meson.build: va: Fix and simplify build recipe. 1. Use api_version variable rather than static string. 2. Remove pkgconfig generation since currently the library is not installed, only used internally. 3. Rely on dependency "required" to abort compilation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1650> 2022-02-07 11:27:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> * gst-libs/gst/va/meson.build: * sys/va/meson.build: va: Remove libgudev crumbs in library. In commit e699aaeb we moved linking of libgudev to the plugin rather the library, because it's only used in the plugin. But the dependency check is still done in library. This patch removes the dependency check in library, and updates the dependency check in plugin. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1650> 2022-02-08 04:51:24 +0900 Seungha Yang <seungha@centricular.com> * sys/msdk/msdk.c: * sys/msdk/msdk.h: msdk: Fix for MFXUnload symbol re-definition build error Fix for libgstreamer-full build Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1408> 2021-12-25 00:13:04 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvh265enc.cpp: * sys/qsv/gstqsvh265enc.h: * sys/qsv/meson.build: * sys/qsv/plugin.cpp: qsv: Add support for HEVC encoding main and main-10 profiles are supported for now Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1408> 2021-12-19 21:39:53 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/gstqsvallocator.cpp: * sys/qsv/gstqsvallocator_d3d11.cpp: * sys/qsv/gstqsvvp9enc.cpp: * sys/qsv/gstqsvvp9enc.h: * sys/qsv/meson.build: * sys/qsv/plugin.cpp: qsv: Add support for VP9 encoding and more video formats Add VP9 encoder with 4:2:0 8 bits and 4:4:4 8/10 bits formats support Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1408> 2022-02-06 21:34:43 +0900 Seungha Yang <seungha@centricular.com> * meson_options.txt: * sys/meson.build: * sys/qsv/gstqsvallocator.cpp: * sys/qsv/gstqsvallocator.h: * sys/qsv/gstqsvallocator_d3d11.cpp: * sys/qsv/gstqsvallocator_d3d11.h: * sys/qsv/gstqsvallocator_va.cpp: * sys/qsv/gstqsvallocator_va.h: * sys/qsv/gstqsvencoder.cpp: * sys/qsv/gstqsvencoder.h: * sys/qsv/gstqsvh264enc.cpp: * sys/qsv/gstqsvh264enc.h: * sys/qsv/gstqsvutils.cpp: * sys/qsv/gstqsvutils.h: * sys/qsv/libmfx/meson.build: * sys/qsv/meson.build: * sys/qsv/plugin.cpp: qsv: Introduce H.264 Intel Quick Sync Video Encoder A new implementation of Intel Quick Sync Video plugin. This plugin supports both Windows and Linux but optimization for VA/DMABuf is not implemented yet. This new plugin has some notable differences compared with existing MSDK plugin. * Encoder will expose formats which can be natively supported without internal conversion. This will make encoder control/negotiation flow much simpler and cleaner than that of MSDK plugin. * This plugin includes QSV specific library loading helper, called dispatcher, with QSV SDK headers as a part of this plugin. So, there will be no more SDK version dependent #ifdef in the code and also there will be no more build-time MSDK/oneVPL SDK dependency. * Memory allocator interop between GStreamer and QSV is re-designed and decoupled. Instead of implementing QSV specific allocator/bufferpool, this plugin will make use of generic GStreamer memory allocator/bufferpool (e.g., GstD3D11Allocator and GstD3D11BufferPool). Specifically, GstQsvAllocator object will help interop between GstMemory and mfxFrameAllocator memory abstraction layers. Note that because of the design decision, VA/DMABuf support is not made as a part of this initial commit. We can add the optimization for Linux later once GstVA library exposes allocator/bufferpool implementation as an API like GstD3D11. * Initial encoder implementation supports interop with GstD3D11 infrastructure, including zero-copy encoding with upstream D3D11 element. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1408> 2021-12-01 22:18:42 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/libmfx/dispatcher/windows/mfx_dxva2_device.h: qsv: Remove unnecessary pargma message We know what we are doing, just remove noisy build warnings Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1408> 2021-12-01 22:18:04 +0900 Seungha Yang <seungha@centricular.com> * sys/qsv/libmfx/api/vpl/mfx.h: * sys/qsv/libmfx/api/vpl/mfxadapter.h: * sys/qsv/libmfx/api/vpl/mfxbrc.h: * sys/qsv/libmfx/api/vpl/mfxcommon.h: * sys/qsv/libmfx/api/vpl/mfxdefs.h: * sys/qsv/libmfx/api/vpl/mfxdispatcher.h: * sys/qsv/libmfx/api/vpl/mfxdispatcherprefixedfunctions.h: * sys/qsv/libmfx/api/vpl/mfximplcaps.h: * sys/qsv/libmfx/api/vpl/mfxjpeg.h: * sys/qsv/libmfx/api/vpl/mfxmvc.h: * sys/qsv/libmfx/api/vpl/mfxpcp.h: * sys/qsv/libmfx/api/vpl/mfxsession.h: * sys/qsv/libmfx/api/vpl/mfxstructures.h: * sys/qsv/libmfx/api/vpl/mfxsurfacepool.h: * sys/qsv/libmfx/api/vpl/mfxvideo++.h: * sys/qsv/libmfx/api/vpl/mfxvideo.h: * sys/qsv/libmfx/api/vpl/mfxvp8.h: * sys/qsv/libmfx/dispatcher/linux/device_ids.h: * sys/qsv/libmfx/dispatcher/linux/libvpl.map: * sys/qsv/libmfx/dispatcher/linux/mfxloader.cpp: * sys/qsv/libmfx/dispatcher/linux/mfxloader.h: * sys/qsv/libmfx/dispatcher/linux/mfxvideo_functions.h: * sys/qsv/libmfx/dispatcher/vpl/mfx_dispatcher_vpl.cpp: * sys/qsv/libmfx/dispatcher/vpl/mfx_dispatcher_vpl.h: * sys/qsv/libmfx/dispatcher/vpl/mfx_dispatcher_vpl_config.cpp: * sys/qsv/libmfx/dispatcher/vpl/mfx_dispatcher_vpl_loader.cpp: * sys/qsv/libmfx/dispatcher/vpl/mfx_dispatcher_vpl_log.cpp: * sys/qsv/libmfx/dispatcher/vpl/mfx_dispatcher_vpl_log.h: * sys/qsv/libmfx/dispatcher/vpl/mfx_dispatcher_vpl_lowlatency.cpp: * sys/qsv/libmfx/dispatcher/vpl/mfx_dispatcher_vpl_msdk.cpp: * sys/qsv/libmfx/dispatcher/vpl/mfx_dispatcher_vpl_win.h: * sys/qsv/libmfx/dispatcher/windows/libmfx.def: * sys/qsv/libmfx/dispatcher/windows/main.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_critical_section.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_critical_section.h: * sys/qsv/libmfx/dispatcher/windows/mfx_dispatcher.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_dispatcher.h: * sys/qsv/libmfx/dispatcher/windows/mfx_dispatcher_defs.h: * sys/qsv/libmfx/dispatcher/windows/mfx_dispatcher_log.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_dispatcher_log.h: * sys/qsv/libmfx/dispatcher/windows/mfx_driver_store_loader.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_driver_store_loader.h: * sys/qsv/libmfx/dispatcher/windows/mfx_dxva2_device.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_dxva2_device.h: * sys/qsv/libmfx/dispatcher/windows/mfx_exposed_functions_list.h: * sys/qsv/libmfx/dispatcher/windows/mfx_function_table.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_library_iterator.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_library_iterator.h: * sys/qsv/libmfx/dispatcher/windows/mfx_load_dll.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_load_dll.h: * sys/qsv/libmfx/dispatcher/windows/mfx_vector.h: * sys/qsv/libmfx/dispatcher/windows/mfx_win_reg_key.cpp: * sys/qsv/libmfx/dispatcher/windows/mfx_win_reg_key.h: * sys/qsv/libmfx/dispatcher/windows/mfxvideo++.h: * sys/qsv/libmfx/dispatcher/windows/version.rc.in: qsv: Import libmfx API and dispatch code from oneVPL project Copied from oneVPL project (https://github.com/oneapi-src/oneVPL) v2022.0.3 tag at the commit of efc259f8b7ee5c334bca1a904a503186038bbbdd This is corresponding to MFX API version 2.6 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1408> 2021-12-07 21:29:05 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11memory.cpp: d3d11memory: Inform subresource index via GstMapInfo::user_data By using this way, caller does not need to call another method gst_d3d11_memory_get_subresource_index() Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1408> 2022-02-06 21:36:28 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11bufferpool.cpp: * gst-libs/gst/d3d11/gstd3d11memory.cpp: * gst-libs/gst/d3d11/gstd3d11memory.h: * gst-libs/gst/d3d11/gstd3d11stagingbufferpool.cpp: * sys/d3d11/gstd3d11pluginutils.cpp: d3d11memory: Add support for ID3D11Buffer Allow wrap ID3D11Buffer via GstD3D11Memory object At the moment, only staging ID3D11Buffer is supported. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1408> 2022-02-01 00:50:53 +0900 Seungha Yang <seungha@centricular.com> * sys/nvcodec/gstnvh265dec.c: nvh265sldec: Fix for decoding 12bits stream We've been exposing main-444-12 profile as a supported profile in its sinkpad template but not actaully. Adding code to covert 12 and 16 bits as well. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1612> 2022-02-01 00:12:06 +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: nvdecoder: Fix for HEVC 4:4:4 format decoding Map chroma_format_idc == 3 (which means 4:4:4 subsampling) correctly, also pass coded bitdepth for decoder initialization instead of inferring it from output format since they can be different. Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/949 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1612> 2022-02-07 22:38:02 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11stagingbufferpool.cpp: d3d11stagingbufferpool: Fix typo in texture description Fixing typo, it should be height Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1652> 2021-10-27 11:08:39 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/va/gstva.h: * gst-libs/gst/va/meson.build: * sys/va/gstvaallocator.h: * sys/va/gstvabasedec.c: * sys/va/gstvabasetransform.c: * sys/va/gstvacaps.h: * sys/va/gstvadecoder.c: * sys/va/gstvadecoder.h: * sys/va/gstvadeinterlace.c: * sys/va/gstvadevice.h: * sys/va/gstvafilter.h: * sys/va/gstvasurfacecopy.h: * sys/va/gstvavpp.c: * sys/va/vasurfaceimage.h: * tests/examples/va/main.c: * tests/examples/va/multiple-vpp.c: va: Add a gstva.h to include all va lib header files. And replacing all va lib headers with this new header files when including. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1256> 2021-10-07 14:31:28 +0800 He Junyan <junyan.he@intel.com> * gst-libs/gst/va/gstvautils.c: * gst-libs/gst/va/gstvautils.h: * gst-libs/gst/va/meson.build: * sys/va/gstvabasedec.c: * sys/va/gstvabasetransform.c: * sys/va/gstvadeinterlace.c: * sys/va/gstvavpp.c: * sys/va/meson.build: va: Move the vautils into the gst va lib. The context query and handle are common logic for all va related elements. So we move it from va plugins to the common gst va lib. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1256> 2021-10-24 22:07:38 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/codecs/gsth264decoder.h: * gst-libs/gst/codecs/gstmpeg2decoder.h: * sys/d3d11/gstd3d11h264dec.cpp: * sys/d3d11/gstd3d11mpeg2dec.cpp: * sys/nvcodec/gstnvh264dec.c: * sys/v4l2codecs/gstv4l2codech264dec.c: * sys/va/gstvah264dec.c: * sys/va/gstvampeg2dec.c: codecs: Stop claiming constness for refcounted object It's almost pointless and makes little sense as subclass might want to modify refcount of the object or so. And all subclasses are already casting them to non-const version as well. In a general sense, we need to avoid passing refcounted object with const qualifier. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1238> 2022-02-06 01:06:36 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11videosink.cpp: d3d11videosink: Use staging buffer pool for non-d3d11 upstream Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1643> 2022-02-06 00:53:34 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11download.cpp: * sys/d3d11/gstd3d11upload.cpp: d3d11upload,d3d11download: Use staging buffer pool Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1643> 2022-02-05 23:25:12 +0900 Seungha Yang <seungha@centricular.com> * sys/d3d11/gstd3d11decoder.cpp: d3d11decoder: Use staging buffer pool for non-d3d11 downstream In specific condition, this can show about 10% ~ 30% performance gain with non-d3d11 downstream element. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1643> 2022-02-05 23:08:48 +0900 Seungha Yang <seungha@centricular.com> * gst-libs/gst/d3d11/gstd3d11.h: * gst-libs/gst/d3d11/gstd3d11_fwd.h: * gst-libs/gst/d3d11/gstd3d11stagingbufferpool.cpp: * gst-libs/gst/d3d11/gstd3d11stagingbufferpool.h: * gst-libs/gst/d3d11/meson.build: d3d11: Add new buffer pool implementation for staging texture staging buffer pool will allocate staging d3d11 texture for upload/download optimization. By using staging buffer, we can avoid per frame staging -> system memory copy operation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1643> 2022-02-02 00:15:34 -0300 Martin Reboredo <yakoyoku@gmail.com> * gst-libs/gst/vulkan/gstvkerror.c: * gst-libs/gst/vulkan/gstvkerror.h: gstvulkan: Expose gst_vulkan_result_to_string Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1623> 2022-02-05 17:36:41 +0300 Igor V. Kovalenko <igor.v.kovalenko@gmail.com> * meson_options.txt: qroverlay: move to plugins that need external deps qroverlay requires libqrencode dependency, move it next to similar plugins. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1642> 2022-02-04 11:15:47 +0000 Tim-Philipp Müller <tim@centricular.com> * meson.build: Back to development Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1635> === release 1.20.0 ===
Generated by dwww version 1.15 on Fri May 24 09:14:34 CEST 2024.