X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=subprojects%2Fgst-plugins-bad%2FChangeLog;h=3fb155c4aae9d24dfa0ef8592c01217618cadcb3;hb=98d2f958a92a1949227ea92294657d2dca678eff;hp=f77de610847efe354845377f18a1bf0ed594bebd;hpb=f513c289b0ef48a13aa0b80ba65a0c76c2a77cd2;p=platform%2Fupstream%2Fgstreamer.git diff --git a/subprojects/gst-plugins-bad/ChangeLog b/subprojects/gst-plugins-bad/ChangeLog index f77de61..3fb155c 100644 --- a/subprojects/gst-plugins-bad/ChangeLog +++ b/subprojects/gst-plugins-bad/ChangeLog @@ -1,7 +1,11872 @@ +2020-12-08 16:55:26 +0100 Jan Alexander Steffens (heftig) + + * 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: + +2022-10-26 18:04:17 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvabasetransform.c: + vabasetransform: Fail if cannot import the input buffer. + Otherwise got a buffer double free. + Part-of: + +2022-11-06 01:53:46 +0900 Seungha Yang + + * 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: + +2021-12-01 16:23:41 +0100 Jan Alexander Steffens (heftig) + + * gst/rtmp2/gstrtmp2sink.c: + * gst/rtmp2/gstrtmp2src.c: + * gst/rtmp2/rtmp/rtmpclient.c: + rtmp2: Improve error messages + Part-of: + +2021-12-01 16:04:24 +0100 Jan Alexander Steffens (heftig) + + * 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: + +2021-12-01 16:02:53 +0100 Jan Alexander Steffens (heftig) + + * gst/rtmp2/rtmp/rtmpconnection.c: + rtmp2/connection: Pass triggering GError to _emit_error + Part-of: + +2021-12-01 16:01:10 +0100 Jan Alexander Steffens (heftig) + + * gst/rtmp2/rtmp/rtmpconnection.c: + rtmp2/connection: Discern reasons for cancelling all commands + Part-of: + +2021-12-01 15:53:13 +0100 Jan Alexander Steffens (heftig) + + * gst/rtmp2/rtmp/rtmpconnection.c: + rtmp2/connection: Handle EOF like error + Part-of: + +2021-12-01 15:49:22 +0100 Jan Alexander Steffens (heftig) + + * gst/rtmp2/rtmp/rtmpclient.c: + rtmp2/client: Make sure 'salt' is not NULL + Part-of: + +2021-12-01 15:46:42 +0100 Jan Alexander Steffens (heftig) + + * gst/rtmp2/rtmp/rtmpclient.c: + rtmp2/client: Make sure 'reason' is not NULL + Part-of: + +2021-12-01 16:13:42 +0100 Jan Alexander Steffens (heftig) + + * gst/rtmp2/rtmp/rtmpclient.c: + rtmp2/client: Make sure 'desc' is not NULL + Part-of: + +2021-12-01 16:11:31 +0100 Jan Alexander Steffens (heftig) + + * gst/rtmp2/rtmp/rtmpclient.c: + rtmp2/client: Make sure 'code' is not NULL + Part-of: + +2022-11-07 07:45:53 +0100 Edward Hervey + + * 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: + +2022-11-04 14:24:58 -0400 Nicolas Dufresne + + * docs/plugins/gst_plugins_cache.json: + * gst/debugutils/gstvideocodectestsink.c: + videocodectestsink: Add YUV422 support + Part-of: + +2022-11-05 21:35:08 +0900 Seungha Yang + + * 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: + +2022-11-05 00:00:43 +0900 Seungha Yang + + * 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: + +2022-11-04 21:52:39 +0800 He Junyan + + * 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: + +2022-11-04 21:26:23 +0800 He Junyan + + * 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: + +2022-11-04 17:12:22 +0800 He Junyan + + * 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: + +2022-11-04 17:08:12 +0800 He Junyan + + * 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: + +2022-11-04 20:28:34 +0800 He Junyan + + * 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: + +2022-11-04 20:28:34 +0800 He Junyan + + * 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: + +2022-11-04 17:06:37 +0800 He Junyan + + * gst-libs/gst/va/gstvaallocator.c: + * gst-libs/gst/va/gstvaallocator.h: + libs: va: Add API to peek the allocator's display. + Part-of: + +2022-11-04 17:03:35 +0800 He Junyan + + * gst-libs/gst/va/gstvaallocator.h: + libs: va: Fix code style in gstvaallocator.h + Replace all tabs with spaces. + Part-of: + +2022-11-05 05:32:52 +0900 Seungha Yang + + * 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: + +2022-11-04 08:41:10 +0100 Edward Hervey + + * ext/lv2/gstlv2.c: + lv2: Don't leak plugin information on registration + Part-of: + +2022-11-04 08:40:24 +0100 Edward Hervey + + * ext/ladspa/gstladspa.c: + ladspa: Don't leak plugin information on registration + Part-of: + +2022-11-04 08:09:52 +0100 Edward Hervey + + * 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: + +2022-07-27 15:59:35 +0200 Jan Alexander Steffens (heftig) + + * 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: + +2022-07-29 11:53:18 +0200 Jan Alexander Steffens (heftig) + + * 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: + +2020-11-10 10:06:37 +0100 Jan Alexander Steffens (heftig) + + * 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: + +2022-06-08 16:35:54 +0200 Jan Alexander Steffens (heftig) + + * 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: + +2022-10-11 11:14:59 +0200 Jan Alexander Steffens (heftig) + + * 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: + +2020-10-05 19:50:13 +0200 Jan Alexander Steffens (heftig) + + * 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: + +2022-11-04 18:32:05 +0900 Seungha Yang + + * sys/directshow/gstdshow.cpp: + directshow: Validate enumerated AM_MEDIA_TYPE struct + The video info struct can be null if format is undefined + Part-of: + +2022-11-03 23:40:00 +0900 Seungha Yang + + * tests/examples/d3d11/d3d11decoder-appsink.cpp: + * tests/examples/d3d11/d3d11videosink-present.cpp: + examples: d3d11: Fix GCC build error/warning + Part-of: + +2022-11-03 05:18:03 +0900 Seungha Yang + + * docs/plugins/gst_plugins_cache.json: + * sys/qsv/gstqsvjpegenc.cpp: + qsvjpegenc: Add support for YUY2 format + Now GstD3D11 defines YUY2 format + Part-of: + +2022-11-03 05:12:31 +0900 Seungha Yang + + * 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: + +2022-11-03 03:38:33 +0900 Seungha Yang + + * 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: + +2022-11-01 09:47:38 +0800 Tong Wu + + * sys/msdk/gstmsdkcontext.c: + msdkcontext: use gst_object_unref instead of g_object_unref + Part-of: + +2022-10-31 16:59:18 +0800 Tong Wu + + * sys/msdk/gstmsdkcontext.c: + msdkcontext: use gst_object_ref for GstVaDisplay + Part-of: + +2022-10-31 16:56:32 +0800 Tong Wu + + * sys/msdk/gstmsdkcontext.c: + msdkcontext: g_object_new() must not return nullptr + Part-of: + +2022-10-31 16:52:23 +0800 Tong Wu + + * 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: + +2022-11-01 12:03:24 +0100 Guillaume Desmottes + + * ext/wpe/gstwpevideosrc.cpp: + wpe: fix wpevideosrc gst-play example + wpe:// no longer works since 1.20, see wpesrc examples. + Part-of: + +2022-10-27 10:03:34 -0400 Eric Knapp + + * sys/va/gstvah264enc.c: + vah264enc: Added option to insert CEA-708 closed captions + Part-of: + +2022-11-01 22:19:18 +0900 Seungha Yang + + * 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: + +2021-05-14 10:24:05 +0200 Marijn Suijten + + * 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: + +2021-01-05 22:33:12 +0100 Marijn Suijten + + * 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: + +2021-01-04 01:07:04 +0100 Marijn Suijten + + * 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: + +2021-01-04 00:40:24 +0100 Marijn Suijten + + * 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: + +2022-11-01 02:00:33 +0900 Seungha Yang + + * 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: + +2022-10-28 03:25:38 +0900 Seungha Yang + + * 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: + +2022-10-30 19:01:54 +0900 Seungha Yang + + * 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: + +2022-10-30 18:37:55 +0900 Seungha Yang + + * gst/videoparsers/gstvp9parse.c: + vp9parse: Set subsampling to src caps even if GBR stream + Some muxer elements will need the subsampling information + Part-of: + +2022-10-30 18:35:08 +0900 Seungha Yang + + * 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: + +2022-10-29 16:17:53 +0530 Sanchayan Maity + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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: + +2022-10-27 14:20:37 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvaencoder.c: + vaencoder: Reset attribute index to one. + Further fix to 4ffb3663 where I forgot to reset the attribute index. + Part-of: + +2022-10-03 15:20:24 -0300 Thibault Saunier + + * ext/dash/gstdashdemux.c: + * gst-libs/gst/adaptivedemux/gstadaptivedemux.c: + adaptivedemux: Minor typo fix + Part-of: + +2022-09-20 15:32:52 -0300 Thibault Saunier + + * ext/dash/gstmpdclient.c: + dash: Fix computing `repeat_index` when seeking in stream with a start !=0 on the first fragment + Part-of: + +2022-10-27 15:21:30 +0800 He Junyan + + * 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: + +2022-10-27 13:42:17 +0800 He Junyan + + * 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: + +2022-10-27 14:40:49 +0800 He Junyan + + * 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: + +2022-10-24 11:56:51 +0800 Mengkejiergeli Ba + + * 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: + +2022-10-18 03:36:23 +0000 Mengkejiergeli Ba + + * sys/msdk/gstmsdkav1enc.c: + * sys/msdk/gstmsdkav1enc.h: + * sys/msdk/gstmsdkenc.c: + * sys/msdk/gstmsdkenc.h: + msdkav1enc: Remove reorder TU workaround + Part-of: + +2022-10-18 03:10:43 +0000 Mengkejiergeli Ba + + * sys/msdk/gstmsdkav1enc.c: + * sys/msdk/gstmsdkav1enc.h: + * sys/msdk/gstmsdkenc.c: + * sys/msdk/gstmsdkenc.h: + msdkav1enc: Remove pts workaround + Part-of: + +2022-10-27 04:15:01 +0900 Seungha Yang + + * 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: + +2022-10-18 16:34:41 +0800 Mengkejiergeli Ba + + * 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: + +2022-07-29 18:15:08 +0800 Mengkejiergeli Ba + + * docs/plugins/gst_plugins_cache.json: + * sys/msdk/gstmsdkav1enc.c: + bad: Add msdkav1enc docs + Part-of: + +2022-10-25 08:14:18 -0400 Nicolas Dufresne + + * 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: + +2022-10-26 11:47:43 +0200 Ignacio Casal Quinteiro + + * sys/applemedia/avfdeviceprovider.m: + avfdeviceprovider: do not leak the properties + Part-of: + +2022-10-21 10:57:39 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-10-19 16:44:07 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvadecoder.c: + * sys/va/gstvaencoder.c: + va: Fix typos. + Part-of: + +2022-08-11 12:51:17 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-09-15 12:56:14 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvah264enc.c: + vah264enc: Add todo item. + Part-of: + +2022-10-19 16:08:17 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-08-11 12:50:27 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-09-20 15:00:15 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-10-26 02:55:34 +0900 Seungha Yang + + * 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: + +2022-10-25 09:39:07 +0300 Sebastian Dröge + + * 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: + +2022-10-22 11:13:10 +0100 Tim-Philipp Müller + + * tests/check/elements/fdkaac.c: + * tests/check/meson.build: + fdkaac: add minimal unit test + Part-of: + +2022-10-22 11:10:24 +0100 Tim-Philipp Müller + + * 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: + +2022-10-21 17:10:57 +0100 Tim-Philipp Müller + + * ext/fdkaac/gstfdkaacenc.c: + fdkaacenc: don't set base-profile=lc for non-backwards compatible output + Part-of: + +2022-10-21 13:15:29 +0100 Tim-Philipp Müller + + * 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: + +2022-03-01 14:12:27 +0100 Piotrek Brzeziński + + * ext/fdkaac/gstfdkaacenc.c: + fdkaacenc: add support for AAC-LD + Part-of: + +2022-02-23 17:17:25 +0100 Piotrek Brzeziński + + * docs/plugins/gst_plugins_cache.json: + * ext/fdkaac/gstfdkaacenc.c: + fdkaacenc: add support for HE-AACv1 and HE-AACv2 + Part-of: + +2022-10-22 04:28:03 +0900 Seungha Yang + + * 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: + +2022-10-22 03:02:56 +0900 Seungha Yang + + * 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: + +2022-10-22 02:59:13 +0900 Seungha Yang + + * 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: + +2022-10-22 04:09:39 +0900 Seungha Yang + + * sys/mediafoundation/gstmfvideoencoder.cpp: + mfvideoencoder: Document only hardware encoders + Part-of: + +2022-10-22 22:37:33 +0900 Seungha Yang + + * 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: + +2022-10-22 02:56:23 +0900 Seungha Yang + + * 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: + +2022-10-22 02:53:16 +0900 Seungha Yang + + * sys/qsv/gstqsvdecoder.cpp: + * sys/qsv/gstqsvencoder.cpp: + qsv: Use GST_PARAM_DOC_SHOW_DEFAULT flag + Part-of: + +2022-10-22 02:49:00 +0900 Seungha Yang + + * 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: + +2022-10-22 02:48:23 +0900 Seungha Yang + + * sys/d3d11/gstd3d11screencapturesrc.cpp: + * sys/d3d11/gstd3d11winrtcapture.cpp: + d3d11: Run indent + Part-of: + +2022-10-22 22:33:01 +0900 Seungha Yang + + * sys/wic/plugin.cpp: + wic: Add since marker + Part-of: + +2022-10-22 03:12:19 +0900 Seungha Yang + + * sys/directshow/plugin.cpp: + directshow: Add since marker + Part-of: + +2022-10-21 23:20:47 +0900 Seungha Yang + + * 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: + +2022-10-21 21:50:01 +0530 Nirbheek Chauhan + + * 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: + +2022-10-18 17:05:41 +1100 Matthew Waters + + * 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: + +2022-10-07 04:20:29 +0900 Seungha Yang + + * 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: + +2022-10-06 23:54:14 +0900 Seungha Yang + + * 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: + +2022-10-21 19:08:49 +0900 Seungha Yang + + * 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: + +2022-07-09 05:38:05 +0900 Seungha Yang + + * 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: + +2022-10-14 16:05:28 +0800 He Junyan + + * 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: \ + 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: + +2022-10-14 17:25:45 +0800 He Junyan + + * gst/videoparsers/gstav1parse.c: + av1parse: Only check the TU bound when the alignment is TU. + Part-of: + +2022-10-14 15:46:16 +0800 He Junyan + + * 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: + +2022-10-14 15:27:52 +0800 He Junyan + + * 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: + +2022-10-21 10:50:36 +1100 Matthew Waters + + * 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: + +2022-10-19 16:03:55 +0900 Sangchul Lee + + * 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: + +2022-09-23 18:25:41 +0200 Mathieu Duponchelle + + * 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: + +2022-10-18 11:16:20 +0200 Alba Mendez + + * 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: + +2022-10-17 06:48:12 -0500 Fabian Orccon + + * ext/srtp/meson.build: + srtp: Fix test skipping when plugin option is disabled + Part-of: + +2022-10-14 00:17:52 +0900 Seungha Yang + + * 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: + +2022-10-17 19:36:13 +0300 Sebastian Dröge + + * gst-libs/gst/play/gstplay-signal-adapter.c: + play: Add/fix various annotations + Part-of: + +2022-10-17 11:29:02 +0300 Sebastian Dröge + + * 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: + +2022-10-17 10:54:06 +0300 Sebastian Dröge + + * gst-libs/gst/d3d11/gstd3d11converter.cpp: + * gst-libs/gst/d3d11/gstd3d11memory.cpp: + d3d11: Add/fix various annotations + Part-of: + +2022-10-17 10:51:42 +0300 Sebastian Dröge + + * 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: + +2022-10-17 10:47:02 +0300 Sebastian Dröge + + * 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: + +2022-10-17 10:44:24 +0300 Sebastian Dröge + + * gst-libs/gst/audio/gstnonstreamaudiodecoder.c: + badaudio: Add/fix annotations + Part-of: + +2022-10-14 21:51:17 +0300 Sebastian Dröge + + * 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: + +2022-10-17 00:40:46 +0900 Seungha Yang + + * 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= + Captures audio generated by an application (specified by PID) + and its child process + * wasapi2src loopback-mode=exclude-process-tree loopback-target-pid= + Captures desktop audio excluding PID and its child process + Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1278 + Part-of: + +2022-10-14 16:21:07 -0400 Arun Raghavan + + * 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: + +2022-10-14 18:51:43 +0200 Mathieu Duponchelle + + * 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: + +2022-10-12 16:11:47 +0800 He Junyan + + * gst/videoparsers/gstvp9parse.c: + vp9parse: The show_existing_frame buffer should not be decode only. + Part-of: + +2022-10-11 16:17:26 +0800 He Junyan + + * 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: \ + 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: + +2022-10-08 00:29:03 +0200 Piotr Brzeziński + + * sys/applemedia/avfvideosrc.m: + avfvideosrc: Allow specifying crop coordinates during screen capture + Part-of: + +2022-10-12 11:12:50 +0200 Edward Hervey + + * 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: + +2022-10-12 11:12:14 +0200 Edward Hervey + + * gst/mxf/mxfdemux.c: + mxfdemux: Don't leak index table segments on failures + The segment was freed ... but not the contents :) + Part-of: + +2022-10-11 13:09:20 +0300 Sebastian Dröge + + * 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: + +2022-10-06 20:37:45 +0900 Sangchul Lee + + * 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: + +2020-12-10 16:25:26 +0100 Johan Sternerup + + * 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: + +2022-10-07 08:30:05 +0200 Wojciech Kapsa + + * 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: + +2022-10-07 07:56:21 -0400 Xavier Claessens + + * 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: + +2022-09-22 22:39:31 +0900 Sangchul Lee + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Fix pointer dereference before null check + Part-of: + +2022-09-26 13:57:15 +0200 Wojciech Kapsa + + * 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: + +2022-10-04 19:19:57 -0300 Thibault Saunier + + * gst/transcode/gsttranscodebin.c: + * gst/transcode/gsttranscodeelement.c: + transcodebin: Implement support for upstream stream selection + Part-of: + +2022-10-05 05:38:54 +0530 Nirbheek Chauhan + + * 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: + +2022-10-05 15:59:03 +0900 Sangchul Lee + + * 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: + +2022-03-21 10:29:21 +0100 Johan Sternerup + + * 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: + +2022-09-23 17:18:35 +0200 Stéphane Cerveau + + * 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: + +2022-10-04 03:57:31 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + +=== release 1.21.1 === + +2022-10-04 01:14:01 +0100 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * RELEASE: + * gst-plugins-bad.doap: + * meson.build: + Release 1.21.1 + +2022-10-04 01:13:59 +0100 Tim-Philipp Müller + + * ChangeLog: + Update ChangeLogs for 1.21.1 + +2022-09-29 14:34:31 +0300 Sebastian Dröge + + * gst/gaudieffects/gstgaussblur.c: + gaussblur: Fix memory leak when setting caps multiple times + Part-of: + +2022-09-27 18:17:24 +0100 Christopher Obbard + + * 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: + +2022-09-20 23:31:45 +0300 Mart Raudsepp + + * 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: + +2022-09-27 19:46:28 +0530 Nirbheek Chauhan + + * 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: + +2022-09-22 09:14:57 +0530 Nirbheek Chauhan + + * 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: + +2022-09-21 19:19:45 +0530 Nirbheek Chauhan + + * 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: + +2022-09-20 13:38:26 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-09-12 09:46:43 -0400 Xavier Claessens + + * 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: + +2022-09-20 16:21:24 +0800 Mengkejiergeli Ba + + * 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: + +2022-09-17 17:49:47 +0800 He Junyan + + * sys/va/gstvah264enc.c: + va: h264enc: Fix rate control enum register failure for the second GPU. + Part-of: + +2022-09-17 10:14:40 +0200 Víctor Manuel Jáquez Leal + + * 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 + + * 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 + + * sys/va/gstvah264enc.c: + vah264enc: Remove unused dispose method. + +2022-09-16 15:45:11 -0400 Eric Knapp + + * sys/va/gstvadeinterlace.c: + vadeinterlace: Fix passthrough latency query + Part-of: + +2022-09-17 05:01:55 +0900 Seungha Yang + + * 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: + +2022-09-16 12:50:33 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvabaseenc.c: + * sys/va/gstvabaseenc.h: + * sys/va/gstvah264enc.c: + va: baseenc: Fix gobject style for chained method. + Part-of: + +2022-09-13 23:20:54 +0900 Seungha Yang + + * gst/codectimestamper/gsth264timestamper.c: + * gst/codectimestamper/gsth265timestamper.c: + codectimestamper: Update document + Add more description about those elements + Part-of: + +2022-06-09 22:32:16 +0800 He Junyan + + * 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: + +2022-05-12 10:12:37 +0800 He Junyan + + * 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: + +2022-09-15 00:52:14 +0000 Devin Anderson + + * 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: + +2022-09-15 21:56:27 +0900 Seungha Yang + + * gst/codectimestamper/gstcodectimestamper.c: + codectimestamper: Fix for unknown framerate + Use default framerate if numerator or denominator is unknown + Part-of: + +2022-08-26 08:43:34 -0400 Thibault Saunier + + * 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: + +2022-08-29 10:17:45 -0400 Thibault Saunier + + * docs/meson.build: + doc: Do not build plugins to build the doc + It is not actually necessary + Part-of: + +2022-09-15 12:14:56 +0100 Tim-Philipp Müller + + * tests/check/meson.build: + tests: add a few more orc tests + Part-of: + +2022-09-14 00:58:37 +0900 Seungha Yang + + * 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: + +2022-09-13 04:06:02 +0900 Seungha Yang + + * sys/nvcodec/gstcudamemorycopy.c: + cudaupload,cudadownload: Fix document + * Fix typo, NVIDA -> NVIDIA + * Add cudadownload doc to the source file + Part-of: + +2022-09-13 01:02:55 +0900 Seungha Yang + + * 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: + +2022-09-13 01:02:50 +0900 Seungha Yang + + * 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: + +2021-03-24 14:20:18 -0500 Zebediah Figura + + * 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: + +2022-06-06 10:56:12 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-06-27 18:56:01 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/va/gstvaallocator.h: + va: allocator: Fix parameter name to match signature. + Part-of: + +2022-02-07 17:34:57 +0100 Víctor Manuel Jáquez Leal + + * 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: + +2022-09-13 14:46:37 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2021-10-03 10:17:00 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-05-19 00:44:40 +0900 Seungha Yang + + * 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: + +2022-09-07 11:22:45 -0400 Thibault Saunier + + * 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: + +2022-09-08 17:29:37 -0400 Thibault Saunier + + * gst/debugutils/gsttestsrcbin.c: + testsrcbin: Plug some leaks + Part-of: + +2020-11-19 18:34:00 -0300 Thibault Saunier + + * 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: + +2022-09-05 18:32:20 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvajpegdec.c: + vajpegdec: Enhance explanation comment. + Part-of: + +2022-09-06 14:53:41 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvacaps.c: + va: caps: Use G_STMT_START / END + Part-of: + +2022-09-05 16:59:12 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvajpegdec.c: + vajpegdec: Check if driver has internal color conversion. + Part-of: + +2022-09-06 18:49:02 +0200 Mathieu Duponchelle + + * 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: + +2022-08-03 19:36:11 +0300 Jordan Petridis + + * 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: + +2022-08-21 03:37:40 +1000 Jan Schmidt + + * 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: + +2022-09-02 09:55:20 +0000 Florian Zwoch + + * 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: + +2022-07-05 17:14:37 -0400 Olivier Crête + + * ext/webrtc/gstwebrtcbin.c: + * tests/check/elements/webrtcbin.c: + webrtcbin: Allow locked mlines with no caps, as the last ones + Part-of: + +2022-05-16 18:05:25 -0400 Olivier Crête + + * 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: + +2022-05-16 17:17:13 -0400 Olivier Crête + + * 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: + +2022-05-26 18:17:16 +0800 Mengkejiergeli Ba + + * sys/msdk/gstmsdkvpp.c: + * sys/msdk/gstmsdkvpp.h: + msdkvpp: Add va memory when fixating src caps + Part-of: + +2022-06-08 12:31:56 +0800 Mengkejiergeli Ba + + * 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: + +2022-05-09 18:34:38 +0800 Mengkejiergeli Ba + + * 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: + +2022-05-09 18:19:01 +0800 Mengkejiergeli Ba + + * sys/msdk/gstmsdkvpp.c: + msdkvpp: Add va caps at sink and src pad + Part-of: + +2022-08-25 17:28:36 +0800 Mengkejiergeli Ba + + * sys/msdk/gstmsdkenc.c: + msdkenc: Apply common util func to import mem as msdk_surface + Part-of: + +2022-05-27 17:56:33 +0800 Mengkejiergeli Ba + + * 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: + +2022-05-19 19:18:21 +0800 Mengkejiergeli Ba + + * 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: + +2022-05-19 18:57:50 +0800 Mengkejiergeli Ba + + * 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: + +2022-04-21 17:27:09 +0800 Mengkejiergeli Ba + + * 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: + +2022-03-03 10:07:19 +0800 Mengkejiergeli Ba + + * 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: + +2022-09-01 15:11:31 -0400 Thibault Saunier + + * 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: + +2022-09-01 11:51:48 -0400 Thibault Saunier + + * 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: + +2022-09-01 10:28:13 -0400 Thibault Saunier + + * gst-libs/gst/cuda/meson.build: + cuda: meson: Fix generating GstCuda gir file against gstreamer-full + Part-of: + +2022-08-31 18:44:14 -0400 Thibault Saunier + + * meson.build: + meson: Rename plugins list and make them "dependency" objects + Part-of: + +2022-08-30 05:02:31 +0900 Seungha Yang + + * 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: + +2022-08-24 08:22:49 +0200 Robert Rosengren + + * 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: + +2022-07-07 09:20:04 +0200 Robert Rosengren + + * 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= content-type=audio/basic + Part-of: + +2022-08-26 00:16:56 +0900 Seungha Yang + + * 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: + +2022-08-25 14:24:25 +0200 Piotr Brzeziński + + * 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: + +2022-08-25 15:28:21 +0800 He Junyan + + * 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: + +2022-08-19 21:54:48 +0900 Seungha Yang + + * 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: + +2022-08-24 00:13:21 +0900 Seungha Yang + + * 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: + +2022-08-19 20:25:31 +0900 Seungha Yang + + * 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: + +2022-08-19 04:49:53 +0900 Seungha Yang + + * 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: + +2022-08-19 04:44:48 +0900 Seungha Yang + + * 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: + +2022-08-20 16:15:15 +0100 Philippe Normand + + * 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: + +2022-08-20 16:57:27 +0100 Philippe Normand + + * 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: + +2022-08-19 09:07:50 -0400 Thibault Saunier + + * 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: + +2022-08-18 13:27:02 +0800 He Junyan + + * 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: + +2022-07-06 09:08:17 -0400 U. Artie Eoff + + * 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: + +2022-08-19 00:05:17 +0900 Seungha Yang + + * 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: + +2022-08-17 11:18:54 -0400 Thibault Saunier + + * 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: + +2022-08-16 08:59:00 -0400 Thibault Saunier + + * gst-libs/gst/webrtc/ice.h: + webrtc:ice: Reindent header + Part-of: + +2022-08-15 21:27:06 -0400 Thibault Saunier + + * gst-libs/gst/webrtc/ice.h: + webrtc:ice: Mark protected fields as such + Part-of: + +2022-08-15 21:25:25 -0400 Thibault Saunier + + * 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: + +2022-08-15 11:52:50 -0400 Thibault Saunier + + * 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: + +2022-08-15 11:37:57 -0400 Thibault Saunier + + * gst-libs/gst/webrtc/ice.c: + webrtc:ice: Fix some annotations + Part-of: + +2022-08-15 11:36:25 -0400 Thibault Saunier + + * gst-libs/gst/webrtc/ice.c: + * gst-libs/gst/webrtc/ice.h: + webrtc: Make GstWebRTCIceCandidateStats a Boxed type + Part-of: + +2022-08-14 17:38:24 -0400 Thibault Saunier + + * gst-libs/gst/webrtc/ice.h: + webrtc:ice: Add padding to structures + Part-of: + +2022-08-14 21:49:27 +0900 Seungha Yang + + * 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: + +2022-08-17 12:22:38 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvajpegdec.c: + vajpegdec: Fix memory leak. + Free value content. + Part-of: + +2022-08-16 20:05:15 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-08-16 19:50:49 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/va/gstvavideoformat.c: + va: libs: Add Y42B format. + Enable 4:2:2 JPEG decoding in iHD. + Part-of: + +2022-08-16 16:06:20 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-08-16 14:45:46 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-08-17 11:42:09 -0400 Eric Knapp + + * sys/decklink/gstdecklink.cpp: + * sys/decklink/gstdecklink.h: + * sys/decklink/gstdecklinkvideosrc.cpp: + decklink: Validate video input format + Part-of: + +2022-08-15 11:23:56 -0400 Eric Knapp + + * sys/decklink/gstdecklink.cpp: + decklink: Auto-detect 10-bit YUV + Part-of: + +2022-08-14 22:31:29 -0400 Daniel Morin + + * 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: + +2022-08-16 21:01:47 +0900 Seungha Yang + + * gst-libs/gst/d3d11/meson.build: + meson: d3d11: Fix missing header install + Install gstd3d11compile.h header file + Part-of: + +2022-08-15 01:50:15 +0900 Seungha Yang + + * 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: + +2022-08-14 21:18:24 +0900 Seungha Yang + + * 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: + +2022-08-15 00:22:14 +0900 Seungha Yang + + * 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: + +2022-08-13 05:24:03 +0900 Seungha Yang + + * 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: + +2022-08-13 12:24:37 +0300 Sebastian Dröge + + * 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: + +2022-08-13 11:50:20 +0300 Sebastian Dröge + + * 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: + +2022-08-13 11:49:08 +0300 Sebastian Dröge + + * 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: + +2022-08-13 11:39:59 +0300 Sebastian Dröge + + * 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: + +2022-08-13 11:30:35 +0300 Sebastian Dröge + + * gst-libs/gst/player/gstplayer.c: + player: Release signal adapter on finalize + Part-of: + +2022-08-08 23:37:11 +0900 Seungha Yang + + * 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: + +2022-08-12 22:05:36 +0900 Seungha Yang + + * gst-libs/gst/d3d11/meson.build: + meson: d3d11: Fix build with GIR enabled + ... and remove unused list + Part-of: + +2022-08-12 18:24:41 +0300 Matthias Clasen + + * 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: + +2022-08-12 11:32:45 +0200 Corentin Damman + + * 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: + +2022-08-10 11:12:37 +0100 Philippe Normand + + * 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: + +2022-08-09 12:24:53 +0200 Corentin Damman + + * sys/nvcodec/gstnvh264encoder.cpp: + * sys/nvcodec/gstnvh265encoder.cpp: + nvcodec: fix caps leaks in nvh264/h265encoder + Part-of: + +2022-08-09 12:29:34 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-08-09 12:28:43 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-08-07 23:24:04 +0900 Seungha Yang + + * 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: + +2022-08-07 22:41:07 +0900 Seungha Yang + + * 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: + +2022-08-05 17:20:05 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-08-05 15:54:39 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-08-05 22:34:06 +0900 Seungha Yang + + * 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: + +2022-08-05 22:23:52 +0900 Seungha Yang + + * 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: + +2022-08-06 00:03:43 +0900 Seungha Yang + + * 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: + +2022-08-06 04:57:49 +0900 Seungha Yang + + * 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: + +2022-08-03 17:52:25 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-08-04 13:02:00 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvah264enc.c: + vah264enc: Use guint32 for rc_ctrl as it's for rc_ctrl_mode. + Part-of: + +2022-08-04 12:57:11 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-08-04 12:00:58 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvabaseenc.h: + va: baseenc: Untabbify and format. + Part-of: + +2022-08-03 03:29:20 +0900 Seungha Yang + + * sys/d3d11/gstd3d11compositor.cpp: + d3d11compositor: Add gamma-mode and primaries-mode properties + Allows controlling gamma remap and/or chromatic adaptation behavior. + Part-of: + +2022-08-03 01:47:46 +0900 Seungha Yang + + * 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: + +2022-08-03 01:19:41 +0900 Seungha Yang + + * sys/d3d11/gstd3d11convert.cpp: + d3d11convert: Add gamma-mode and primaries-mode properties + Allows controlling gamma remap and/or chromatic adaptation behavior. + Part-of: + +2022-08-03 00:26:33 +0900 Seungha Yang + + * 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: + +2022-08-01 13:04:47 +0200 Robert Mader + + * 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: + +2022-06-30 11:48:45 +0200 Robert Mader + + * 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: + +2022-07-19 15:10:00 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-04-11 15:35:45 -0500 Olivier Crête + + * tests/examples/gtk/gtkwaylandsink.c: + gtkwaylandsink test: Add navigationtest to example + Part-of: + +2021-12-08 10:30:21 +0200 George Kiagiadakis + + * 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: + +2022-08-02 05:06:24 +0900 Seungha Yang + + * 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: + +2022-08-02 04:16:31 +0900 Seungha Yang + + * sys/d3d11/gstd3d11videosink.cpp: + d3d11videosink: Early terminate mouse/keyboard event handling + ... and add missing null check (plus coding style fix) + Part-of: + +2022-07-30 17:28:41 +0100 Philippe Normand + + * 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: + +2022-07-30 17:19:42 +0100 Philippe Normand + + * gst-libs/gst/webrtc/ice.h: + webrtc: ice: Fix GstWebRTCICE parent class + It is a GstObject, not a GObject. + Part-of: + +2022-07-30 17:43:38 +0100 Philippe Normand + + * ext/dtls/gstdtlssrtpdec.c: + * ext/dtls/gstdtlssrtpenc.c: + dtls: Properly name encoder/decoder logging categories + Part-of: + +2022-07-30 17:42:50 +0100 Philippe Normand + + * 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: + +2022-07-30 02:29:49 +0530 Nirbheek Chauhan + + * 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: + +2022-05-25 18:40:30 +0530 Nirbheek Chauhan + + * 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: + +2022-05-25 16:03:22 +0530 Nirbheek Chauhan + + * 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: + +2022-07-29 02:36:40 +0900 Seungha Yang + + * sys/wasapi2/gstwasapi2ringbuffer.cpp: + wasapi2: Fix initial mute/volume setting + Fix up volume/mute change flag setting + Part-of: + +2022-07-26 13:59:33 -0400 Eric Knapp + + * sys/va/gstvah264enc.c: + va: h264enc: Make AUD the first NAL unit + Part-of: + +2022-07-26 15:49:32 -0400 U. Artie Eoff + + * 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: + +2022-04-18 23:25:13 +0530 yatinmaan + + * 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: + +2022-07-22 22:50:33 +0900 Seungha Yang + + * 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: + +2022-07-23 00:41:49 +0900 Seungha Yang + + * 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: + +2022-07-23 00:11:18 +0900 Seungha Yang + + * 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: + +2022-06-08 15:44:26 +0200 Benjamin Gaignard + + * 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: + +2022-03-18 15:04:18 +0100 Sebastian Fricke + + * gst-libs/gst/codecs/gsth265decoder.c: + codecs: h265: Fix typos + Fix multiple typos in warning and info messages. + Part-of: + +2022-05-16 15:27:40 +0200 Benjamin Gaignard + + * 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: + +2022-05-16 15:25:36 +0200 Benjamin Gaignard + + * 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: + +2022-07-20 12:11:47 -0400 Nicolas Dufresne + + * 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: + +2022-07-12 15:44:45 -0400 Nicolas Dufresne + + * 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: + +2022-07-12 15:43:34 -0400 Nicolas Dufresne + + * 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: + +2022-06-20 12:22:20 -0400 Nicolas Dufresne + + * 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: + +2022-07-12 08:56:07 -0400 Benjamin Gaignard + + * 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 + Co-authored-by: Sebastian Fricke + Part-of: + +2022-04-25 15:27:39 +0200 Benjamin Gaignard + + * 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: + +2022-07-12 08:57:38 -0400 Nicolas Dufresne + + * 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: + +2022-04-29 12:10:05 -0400 Nicolas Dufresne + + * 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: + +2022-07-21 16:11:03 +0300 Sebastian Dröge + + * gst/audiobuffersplit/gstaudiobuffersplit.c: + audiobuffersplit: Actually store number of samples to drop in gapless mode + Part-of: + +2022-07-21 16:10:18 +0300 Sebastian Dröge + + * 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: + +2022-07-21 13:38:22 +0300 Sebastian Dröge + + * gst/audiobuffersplit/gstaudiobuffersplit.c: + audiobuffersplit: Combine two if expressions to reduce indentation + Part-of: + +2022-07-22 04:51:14 +0900 Seungha Yang + + * 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: + +2022-07-18 00:41:00 +0900 Seungha Yang + + * 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: + +2022-07-21 05:13:21 +0900 Seungha Yang + + * 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: + +2022-07-21 05:40:45 +0900 Seungha Yang + + * 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: + +2022-07-21 05:39:58 +0900 Seungha Yang + + * gst-libs/gst/d3d11/gstd3d11format.cpp: + d3d11: Run gst-indent + Part-of: + +2022-07-06 16:14:13 +0300 Jordan Petridis + + * ext/openmpt/gstopenmptdec.c: + openmpt: update from now deprecated api + https://lib.openmpt.org/doc/classopenmpt_1_1module.html#ab2695af0baa274054f5687741fa7c05b + Part-of: + +2022-04-29 19:27:16 +0800 Fan F He + + * 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 + Part-of: + +2022-07-20 05:28:51 +0900 Seungha Yang + + * 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: + +2022-07-19 01:52:48 +0900 Seungha Yang + + * 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: + +2022-07-17 04:48:24 +0900 Seungha Yang + + * 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: + +2022-07-17 00:33:55 +0900 Seungha Yang + + * sys/d3d11/gstd3d11convert.cpp: + d3d11convert: Use new colorimetry compare function + Avoid conversion if both are functionally identical + Part-of: + +2022-07-17 23:58:19 +0900 Seungha Yang + + * sys/d3d11/gstd3d11testsrc.cpp: + d3d11testsrc: Fix SMPTE pattern rendering + It was wrong vertex shader code + Part-of: + +2022-07-13 10:30:49 +0200 Piotr Brzeziński + + * sys/applemedia/vtdec.c: + * sys/applemedia/vtenc.c: + applemedia: Add HEVC support to vtenc and vtdec + Part-of: + +2022-06-16 03:57:37 +0900 Seungha Yang + + * 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: + +2022-06-04 18:07:16 -0400 Thibault Saunier + + * 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: + +2022-07-08 00:16:02 +0900 Seungha Yang + + * gst-libs/gst/codecs/gsth265decoder.c: + h265decoder: Report latency + Similar to that of h264decoder + Part-of: + +2022-07-08 22:05:12 +0800 He Junyan + + * 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: + +2022-07-08 21:57:40 +0800 He Junyan + + * 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: + +2022-07-05 18:21:12 +0300 Jordan Petridis + + * ext/fluidsynth/gstfluiddec.c: + fluiddec: Remove workaround for version 1.1.9 + We require >= 2.1 version since the previous commit + Part-of: + +2022-07-05 17:32:12 +0300 Jordan Petridis + + * 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: + +2022-07-08 02:24:56 +0900 Seungha Yang + + * 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: + +2022-07-08 18:53:01 +0900 Seungha Yang + + * 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: + +2022-07-08 19:05:19 +0900 Seungha Yang + + * sys/qsv/gstqsvencoder.cpp: + qsvencoder: Do not query again if previous call succeeded + Don't need to query multiple times + Part-of: + +2022-07-08 03:38:30 +0900 Seungha Yang + + * 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: + +2022-07-08 20:11:00 +0900 Seungha Yang + + * sys/d3d11/gstd3d11pluginutils.cpp: + d3d11: Update colorspace map + Map DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 to sRGB colorimetry + Part-of: + +2022-07-08 04:37:33 +0900 Seungha Yang + + * 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: + +2022-07-08 01:30:13 +0900 Seungha Yang + + * 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: + +2022-07-07 02:17:56 +0900 Seungha Yang + + * gst/proxy/gstproxysink.c: + proxysink: Fix GstProxySrc leak + Clear weak pointer to peer src when disposing. + Part-of: + +2022-07-06 03:14:25 +0900 Seungha Yang + + * 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: + +2022-03-04 14:28:21 +1100 Matthew Waters + + * 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: + +2022-07-04 22:27:34 +0900 Seungha Yang + + * 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: + +2022-07-04 22:26:19 +0900 Seungha Yang + + * sys/d3d11/gstd3d11testsrc.cpp: + d3d11testsrc: Use convert_buffer() method + Part-of: + +2022-07-04 22:01:49 +0900 Seungha Yang + + * 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: + +2022-07-04 21:57:42 +0900 Seungha Yang + + * 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: + +2022-06-30 11:04:29 +0200 Ignazio Pillai + + * 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: + +2022-07-03 01:22:10 +0900 Seungha Yang + + * 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: + +2022-07-03 01:18:19 +0900 Seungha Yang + + * 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: + +2022-07-02 04:23:41 +0900 Seungha Yang + + * sys/d3d11/gstd3d11basefilter.cpp: + * sys/d3d11/gstd3d11convert.cpp: + d3d11convert: Add support for GstVideoOrientationMethod + Add flip/rotation support via GstVideoDirectionInterface + Part-of: + +2022-07-02 02:15:00 +0900 Seungha Yang + + * 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: + +2022-07-01 23:49:49 +0900 Seungha Yang + + * 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: + +2022-07-01 21:35:15 +0900 Seungha Yang + + * 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: + +2022-07-01 21:20:02 +0900 Seungha Yang + + * gst-libs/gst/d3d11/gstd3d11_private.h: + * sys/d3d11/gstd3d11pluginutils.h: + d3d11: Use library private header in plugin + Part-of: + +2022-07-01 20:47:37 +0900 Seungha Yang + + * sys/d3d11/gstd3d11compositor.cpp: + d3d11compositor: Use single GstD3D11Converter object + ... and remove unnessary videoprocessor/upload/copy code + Part-of: + +2022-07-01 04:12:23 +0900 Seungha Yang + + * sys/d3d11/gstd3d11convert.cpp: + d3d11convert: Add border-color property + Use user specified border-color instead of black color + Part-of: + +2022-07-01 20:13:29 +0900 Seungha Yang + + * 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: + +2022-06-22 02:44:26 +0900 Seungha Yang + + * 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: + +2022-06-21 23:43:46 +0900 Seungha Yang + + * 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: + +2022-06-21 22:44:55 +0900 Seungha Yang + + * 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: + +2022-06-28 16:40:55 +0300 Sebastian Dröge + + * 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: + +2022-05-10 14:11:06 +0800 Vincent Cheah Beng Keat + + * sys/msdk/gstmsdkdec.c: + * sys/msdk/gstmsdkmjpegdec.c: + * sys/msdk/meson.build: + msdkmjpegdec: Add support for error report + Part-of: + +2022-06-23 01:10:38 +0900 Seungha Yang + + * 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: + +2022-06-27 20:50:15 +0900 Seungha Yang + + * 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: + +2022-06-30 16:45:46 +0900 Seungha Yang + + * 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: + +2022-06-30 17:47:05 +0900 Seungha Yang + + * 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: + +2022-06-30 09:09:02 +0300 Sebastian Dröge + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Reject caps that are not valid for creating an SDP media. + Part-of: + +2022-04-22 16:37:34 +0200 Corentin Damman + + * sys/nvcodec/gstcudaformat.h: + cudaformat: add support for planar 4:2:2 YUV formats in CUDA D3D11 interop + Part-of: + +2022-04-22 15:58:13 +0200 Corentin Damman + + * gst-libs/gst/cuda/gstcudamemory.c: + * sys/nvcodec/gstcudaformat.h: + cudamemory: add support for planar 4:2:2 YUV formats + Part-of: + +2021-06-22 14:43:29 +0200 Benjamin Gaignard + + * 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: + +2022-06-26 22:26:29 +0900 Seungha Yang + + * 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: + +2022-06-26 21:09:50 +0900 Seungha Yang + + * 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: + +2022-06-29 10:55:13 +0100 Tim-Philipp Müller + + * 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: + +2022-06-29 00:31:01 +0900 Seungha Yang + + * 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: + +2022-06-28 17:40:56 +0900 Seungha Yang + + * 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: + +2022-06-26 06:39:54 +0900 Seungha Yang + + * 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: + +2022-06-28 01:29:06 +0100 Tim-Philipp Müller + + * 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: + +2022-06-27 04:07:04 +0900 Seungha Yang + + * 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: + +2022-06-25 01:15:17 +0900 Seungha Yang + + * 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: + +2022-06-24 07:06:00 +0900 Seungha Yang + + * 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: + +2022-06-24 22:17:28 +0900 Seungha Yang + + * 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: + +2022-06-24 01:00:00 +0900 Seungha Yang + + * 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: + +2022-06-24 01:25:07 +0900 Seungha Yang + + * 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: + +2022-06-24 01:21:48 +0900 Seungha Yang + + * 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: + +2022-06-27 12:06:50 -0400 U. Artie Eoff + + * sys/va/gstvavpp.c: + va: postproc: add scale-method property + Part-of: + +2022-06-27 11:54:28 -0400 U. Artie Eoff + + * 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: + +2022-06-23 11:39:57 -0400 U. Artie Eoff + + * 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: + +2022-06-23 11:11:16 -0400 U. Artie Eoff + + * sys/va/gstvafilter.c: + * sys/va/gstvafilter.h: + va: filter: add scale method field and setter + Part-of: + +2022-01-21 21:33:52 +0100 Víctor Manuel Jáquez Leal + + * 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: + +2022-06-24 19:42:36 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-06-24 19:54:51 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/va/gstvavideoformat.c: + va: Add RGBP format definition. + Part-of: + +2022-04-28 13:16:03 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-01-17 15:43:47 +0100 Víctor Manuel Jáquez Leal + + * 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: + +2022-06-27 12:36:29 +0200 Víctor Manuel Jáquez Leal + + * sys/va/meson.build: + va: build: Remove duplicated source. + Part-of: + +2022-06-27 19:58:58 +0900 Seungha Yang + + * 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: + +2022-06-25 19:50:10 +0100 Tim-Philipp Müller + + * 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: + +2022-06-23 14:31:10 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-06-08 09:02:52 -0400 Nicolas Dufresne + + * 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: + +2022-06-23 21:43:11 +0900 Seungha Yang + + * 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: + +2022-06-23 21:35:23 +0900 Seungha Yang + + * sys/qsv/gstqsvdecoder.cpp: + qsvdecoder: Fix system memory alignment + Do right padding, not left + Part-of: + +2022-06-23 21:41:24 +0900 Seungha Yang + + * sys/d3d11/gstd3d11decoder.cpp: + d3d11decoder: Fix texture download + Stride applied to src/dst was reversed + Part-of: + +2022-06-16 17:02:43 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-06-16 16:33:14 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/va/gstvaallocator.c: + * sys/va/gstvafilter.c: + va: Use driver implementation macro rather than function. + Part-of: + +2022-06-18 10:36:53 +0800 He Junyan + + * 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: + +2022-06-21 20:04:15 +0900 Seungha Yang + + * 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: + +2022-06-18 20:14:22 +0900 Seungha Yang + + * 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: + +2022-06-18 20:40:40 +0900 Seungha Yang + + * 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: + +2022-06-02 14:22:21 +0200 Robert Mader + + * 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: + +2022-06-18 04:05:53 +0900 Seungha Yang + + * sys/d3d11/gstd3d11decoder.h: + d3d11decoder: Check 16K resolution support + 16K decoding is supported by some GPUs + Part-of: + +2022-06-17 05:11:08 +0900 Seungha Yang + + * 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: + +2022-06-17 02:45:51 +0900 Seungha Yang + + * 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: + +2022-06-16 02:18:43 +0900 Seungha Yang + + * 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: + +2022-06-16 00:52:16 +0900 Seungha Yang + + * 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: + +2022-06-16 00:50:12 +0900 Seungha Yang + + * sys/d3d11/gstd3d11compositor.cpp: + d3d11compositor: Don't use GstD3D11Quad + The helper object will be removed + Part-of: + +2022-06-15 23:46:27 +0900 Seungha Yang + + * 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: + +2022-02-01 23:46:43 +0100 Mathieu Duponchelle + + * 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: + +2022-06-15 15:06:20 -0400 Olivier Crête + + * 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: + +2022-06-08 19:18:48 +0300 Vivia Nikolaidou + + * 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: + +2021-05-19 16:03:22 +0200 Stéphane Cerveau + + * 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: + +2021-05-19 16:00:13 +0200 Stéphane Cerveau + + * ext/srt/gstsrtsrc.c: + srtsrc: remove dead code + Remove code useless since + 132e3a1af9deb1d2cdf84d22b954967207bcc03a + Part-of: + +2022-05-19 05:24:08 +0900 Seungha Yang + + * 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: + +2022-05-19 05:06:04 +0900 Seungha Yang + + * 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: + +2022-05-19 04:49:36 +0900 Seungha Yang + + * 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: + +2022-05-19 04:25:38 +0900 Seungha Yang + + * 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: + +2022-06-15 10:07:26 +0300 Sebastian Dröge + + * sys/decklink/gstdecklink.cpp: + decklinkvideosink: Fix selection of > PAL widescreen modes + Part-of: + +2022-06-07 16:30:36 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-05-23 11:41:17 +1000 Matthew Waters + + * 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: + +2022-05-23 11:26:24 +1000 Matthew Waters + + * 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: + +2022-05-23 11:25:03 +1000 Matthew Waters + + * 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: + +2022-05-23 11:24:04 +1000 Matthew Waters + + * 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: + +2022-05-17 17:07:49 +1000 Matthew Waters + + * 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: + +2022-05-17 16:32:09 +1000 Matthew Waters + + * 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: + +2022-05-17 13:22:33 +1000 Matthew Waters + + * 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: + +2022-06-13 03:29:11 +0900 Seungha Yang + + * 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: + +2022-06-14 03:15:42 +0900 Seungha Yang + + * sys/d3d11/gstd3d11convert.cpp: + d3d11convert: Don't passthrough if colorimetry conversion is required + Different input/output colorimetry requires conversion + Part-of: + +2022-06-14 00:24:41 +0900 Seungha Yang + + * 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: + +2022-06-06 03:41:52 +0900 Seungha Yang + + * 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: + +2022-05-24 10:40:26 +0200 Benjamin Gaignard + + * 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: + +2022-04-06 12:56:30 +0100 Tim-Philipp Müller + + * 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: + +2022-06-08 10:42:18 +0300 Sebastian Dröge + + * 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: + +2022-06-02 06:06:48 +0900 Seungha Yang + + * 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: + +2022-06-09 23:19:24 +0900 Seungha Yang + + * 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: + +2022-06-04 22:33:34 +0900 Seungha Yang + + * 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: + +2022-06-08 16:38:00 +0200 Mathieu Duponchelle + + * 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: + +2022-05-27 05:15:13 +1000 Jan Schmidt + + * 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: + +2022-05-13 17:21:25 +0800 Mengkejiergeli Ba + + * 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: + +2022-06-06 10:56:12 +0200 Víctor Manuel Jáquez Leal + + * docs/plugins/gst_plugins_cache.json: + va: Update plugin cache. + Part-of: + +2022-05-29 13:43:29 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvah264enc.c: + vah264enc: Guard logging functions + .. and use spec for rate control rather than static switch. + Part-of: + +2022-05-30 10:20:11 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvabaseenc.c: + * sys/va/gstvah264enc.c: + vah264enc: Support default and none rate control. + Part-of: + +2022-05-29 12:09:05 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvaencoder.c: + * sys/va/gstvaencoder.h: + * sys/va/gstvah264enc.c: + va: encoder: Rate control property. + Fixes: #1241 + Part-of: + +2022-05-30 11:26:24 +0100 Philippe Normand + + * 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: + +2022-05-16 16:43:57 +0100 Philippe Normand + + * ext/webrtc/webrtcdatachannel.c: + webrtcdatachannel: Chain to parent class constructed + And add a debug log statement. + Part-of: + +2022-06-02 10:32:28 -0400 Eric Knapp + + * 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: + +2022-06-04 15:05:05 +0800 He Junyan + + * gst-libs/gst/codecparsers/gsth264parser.c: + h264parser: Fix memory leaks in parse_user_data_unregistered(). + Part-of: + +2022-06-04 17:23:00 +0200 Jan Alexander Steffens (heftig) + + * 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: + +2022-06-02 16:38:55 +0200 Robert Mader + + * 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: + +2022-01-04 15:20:41 +0100 Robert Mader + + * 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: + +2022-06-06 00:30:15 +0200 Jan Alexander Steffens (heftig) + + * 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: + +2022-05-30 16:31:38 -0400 Olivier Crête + + * 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: + +2022-03-15 12:44:20 +0100 Marc Leeman + + * 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: + +2022-05-17 00:36:24 +0200 Andoni Morales Alastruey + + * 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: + +2022-05-16 14:21:53 +0200 Andoni Morales Alastruey + + * gst-libs/gst/codecparsers/gsth264parser.c: + h264parse: fix leak in user data unregistered + Part-of: + +2022-02-27 18:41:12 +0000 Andoni Morales Alastruey + + * gst-libs/gst/codecparsers/gsth264parser.h: + Fix documentation + Part-of: + +2022-02-17 15:55:19 +1100 Brad Hards + + * tests/check/elements/h264parse.c: + h264parse: add unit test for Precision Time Stamp in SEI messages + Part-of: + +2021-12-19 19:14:05 +0100 Andoni Morales Alastruey + + * 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: + +2022-06-02 02:22:19 +0900 Seungha Yang + + * 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: + +2022-06-02 21:25:38 +0900 Seungha Yang + + * gst-libs/gst/cuda/gstcudautils.c: + cuda: Fix uninitialized debug category + Make sure debug category init + Part-of: + +2022-04-22 06:46:07 +0000 Mengkejiergeli Ba + + * 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: + +2022-03-31 06:45:03 +0000 Mengkejiergeli Ba + + * sys/msdk/gstmsdkav1enc.c: + * sys/msdk/gstmsdkav1enc.h: + msdkav1enc: Add b-pyramid and p-pyramid + Part-of: + +2022-03-31 06:33:55 +0000 Mengkejiergeli Ba + + * sys/msdk/gstmsdkav1enc.c: + * sys/msdk/gstmsdkav1enc.h: + msdkav1enc: Add tile for encoding + Part-of: + +2022-03-31 06:03:36 +0000 Mengkejiergeli Ba + + * 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: + +2022-05-31 20:39:29 +0200 Jakub Adam + + * 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: + +2022-05-29 06:55:27 +0900 Seungha Yang + + * 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: + +2022-05-29 12:42:52 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvabaseenc.c: + * sys/va/gstvabasetransform.c: + va: Register base classes as abstract. + Part-of: + +2022-05-29 12:09:22 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvaencoder.c: + va: encoder: Use entrypoint type. + Part-of: + +2022-05-27 14:47:21 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvah264enc.c: + va264enc: Fix typo. + Part-of: + +2022-05-27 14:45:51 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-03-26 23:48:46 +0900 Seungha Yang + + * 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: + +2022-03-26 23:50:24 +0900 Seungha Yang + + * sys/mediafoundation/plugin.cpp: + mediafoundation: Run indent + Part-of: + +2022-03-26 22:24:27 +0900 Seungha Yang + + * 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: + +2022-03-26 21:47:10 +0900 Seungha Yang + + * sys/mediafoundation/gstmfvideoencoder.cpp: + mfvideoencoder: Early terminate d3d11 interop + Shared texture will work only for the same GPU + Part-of: + +2022-03-26 21:43:50 +0900 Seungha Yang + + * sys/mediafoundation/gstmfvideoencoder.cpp: + mfvideoencoder: Check HRESULT code as well for GPU sync + Part-of: + +2022-03-26 21:40:47 +0900 Seungha Yang + + * 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: + +2022-05-25 13:25:15 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvacompositor.c: + vacompositor: Pass video info pointer than copying it. + Part-of: + +2022-05-25 13:24:41 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvacompositor.c: + vacompositor: Remove useless consts. + Part-of: + +2022-05-27 21:13:43 +0900 Seungha Yang + + * 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: + +2022-05-26 23:50:08 +0900 Seungha Yang + + * sys/qsv/gstqsvencoder.cpp: + qsvencoder: Bind internal texture to render target + ... so that memory allocator can initialize texture with black color + Part-of: + +2022-05-26 23:46:05 +0900 Seungha Yang + + * 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: + +2022-05-24 12:54:05 -0400 U. Artie Eoff + + * tests/check/elements/vacompositor.c: + * tests/check/meson.build: + tests: va: add simple vacompositor test + Part-of: + +2022-04-22 16:29:56 +0800 Mengkejiergeli Ba + + * 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: + +2022-04-15 13:38:20 +0800 Mengkejiergeli Ba + + * sys/msdk/gstmsdkh264enc.c: + * sys/msdk/gstmsdkh264enc.h: + msdkh264enc: Add intra refresh parameters + Part-of: + +2022-05-23 00:36:50 +0900 Seungha Yang + + * 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: + +2022-05-26 14:08:55 +0100 Tim-Philipp Müller + + * 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: + +2022-05-24 05:33:05 +1000 Jan Schmidt + + * 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: + +2022-05-11 09:17:46 +0100 Philippe Normand + + * 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: + +2022-05-11 09:15:33 +0100 Philippe Normand + + * 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: + +2022-03-26 12:36:46 +0000 Philippe Normand + + * ext/webrtc/gstwebrtcice.c: + * ext/webrtc/gstwebrtcice.h: + * ext/webrtc/gstwebrtcstats.c: + webrtc: Refactor ICECandidateStats freeing logic to a dedicated function + Part-of: + +2022-03-20 12:36:07 +0000 Philippe Normand + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Document IceCandidateStats and RTCIceCandidatePairStats + Part-of: + +2021-09-01 16:12:24 +0000 Sherrill Lin + + * 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: + +2021-06-30 16:01:10 -0400 Sherrill Lin + + 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: + +2022-05-23 20:58:47 +0800 He Junyan + + * 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: + +2022-05-25 20:01:34 +0800 He Junyan + + * 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: + +2022-05-25 19:57:18 +0800 He Junyan + + * 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: + +2022-05-24 10:21:31 -0400 U. Artie Eoff + + * 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: + +2022-05-25 02:38:01 +0900 Seungha Yang + + * 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: + +2022-05-24 11:06:39 +0200 Erwann Gouesbet + + * 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: + +2022-05-24 14:47:43 +0200 Víctor Manuel Jáquez Leal + + * sys/va/plugin.c: + va: Avoid unused variable if logging is disabled. + Part-of: + +2022-05-22 10:10:38 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvaencoder.c: + * sys/va/gstvah264enc.c: + va: Keep include's code style + Headers are in alphabetical order. + Part-of: + +2022-05-24 13:19:45 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvafilter.c: + vafilter: Fix logging of unsupported alpha blending. + Part-of: + +2022-05-24 14:36:36 +1000 Matthew Waters + + * 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: + +2022-05-23 00:04:03 +0900 Seungha Yang + + * tests/examples/qsv/qsvenc-dynamic-reconfigure.c: + tests: examples: Fix typo in QSV encoder example + Fixing width adjustment + Part-of: + +2022-05-22 22:44:11 +0900 Seungha Yang + + * 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: + +2022-05-22 21:38:34 +0900 Seungha Yang + + * 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: + +2022-05-23 15:03:03 +0800 He Junyan + + * 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: + +2022-05-22 15:03:54 +0800 He Junyan + + * sys/va/gstvabaseenc.c: + va: baseenc: include the "vacompat.h" for old version glib. + Part-of: + +2022-04-26 12:07:26 -0400 U. Artie Eoff + + * sys/va/plugin.c: + va: vpp: enable compositor + Part-of: + +2022-04-26 12:06:17 -0400 U. Artie Eoff + + * 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: + +2022-03-25 21:51:47 +0800 He Junyan + + * sys/va/gstvah264enc.c: + va: Apply the va base encoder to the vah264enc. + Part-of: + +2022-03-25 21:48:05 +0800 He Junyan + + * 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: + +2022-05-15 00:56:59 +0900 Seungha Yang + + * 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: + +2021-12-22 19:23:37 +0100 Víctor Manuel Jáquez Leal + + * 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: + +2021-12-25 13:00:17 +0100 Víctor Manuel Jáquez Leal + + * tests/check/elements/jpegparse.c: + tests: jpegparse: Mark data as static. + Part-of: + +2021-12-22 18:13:17 +0100 Víctor Manuel Jáquez Leal + + * 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: + +2021-12-22 17:35:23 +0100 Víctor Manuel Jáquez Leal + + * gst/jpegformat/gstjpegparse.c: + * gst/jpegformat/gstjpegparse.h: + jpegparse: Headers cleanup + Part-of: + +2022-05-18 16:54:53 +0100 Philippe Normand + + * 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: + +2022-05-17 14:15:40 +0300 Sebastian Dröge + + * 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: + +2022-05-17 04:27:00 +0900 Seungha Yang + + * 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: + +2022-05-17 14:02:28 +0300 Sebastian Dröge + + * 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: + +2022-05-17 03:32:10 +0900 Seungha Yang + + * 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: + +2022-04-28 16:02:26 +0100 Diogo Goncalves + + * 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: + +2022-05-12 05:13:08 +0900 Seungha Yang + + * 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: + +2022-05-12 07:23:29 +0200 Edward Hervey + + * 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: + +2022-05-03 16:23:09 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-05-07 03:15:44 +0900 Seungha Yang + + * 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: + +2022-05-10 03:32:42 +0900 Seungha Yang + + * 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: + +2022-03-30 17:19:54 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-05-06 17:53:51 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-05-06 18:21:00 -0400 Olivier Crête + + * 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: + +2022-01-16 15:51:32 +0300 Dmitry Osipenko + + * 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: + +2022-05-06 10:50:59 +0800 Mengkejiergeli Ba + + * tests/check/meson.build: + tests: Skip test if srtp element not built + Part-of: + +2022-05-06 01:46:36 +0900 Seungha Yang + + * 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: + +2022-05-05 02:16:54 +0900 Seungha Yang + + * 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: + +2022-05-05 20:35:57 +0300 Sebastian Dröge + + * 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: + +2022-05-05 20:35:49 +0300 Sebastian Dröge + + * 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: + +2022-05-05 00:24:26 +0900 Seungha Yang + + * 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: + +2022-05-05 00:49:27 +0900 Seungha Yang + + * 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: + +2022-05-04 23:36:30 +0900 Seungha Yang + + * 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: + +2022-04-29 20:28:53 +0200 Jakub Adam + + * 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: + +2022-05-02 22:59:59 +0900 Seungha Yang + + * 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: + +2022-05-03 23:56:12 +0900 Seungha Yang + + * 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: + +2022-04-28 03:14:54 +0900 Seungha Yang + + * 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: + +2022-05-04 01:03:37 +0900 Seungha Yang + + * 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: + +2021-12-17 17:22:22 +0900 Seungha Yang + + * sys/nvcodec/cuviddec.h: + * sys/nvcodec/nvEncodeAPI.h: + * sys/nvcodec/nvcuvid.h: + nvcodec: Bump SDK header version to 11.1 + Part-of: + +2022-05-02 22:46:06 +0900 Seungha Yang + + * 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: + +2022-05-02 22:41:53 +0900 Seungha Yang + + * 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: + +2022-04-28 04:25:05 +0900 Seungha Yang + + * 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: + +2022-04-12 12:17:09 -0400 Nicolas Dufresne + + * 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: + +2022-05-02 11:46:59 -0400 Thibault Saunier + + * gst-libs/gst/cuda/meson.build: + cuda: Fix introspection warnings + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1183 + Part-of: + +2022-05-02 21:57:07 +0900 Seungha Yang + + * 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: + +2022-05-02 09:15:57 +0200 Edward Hervey + + * 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: + +2022-04-29 19:08:46 +0300 Sebastian Dröge + + * 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: + +2022-04-29 19:08:32 +0300 Sebastian Dröge + + * gst/interlace/gstinterlace.c: + interlace: Add some more debug output to the getcaps function + Part-of: + +2022-04-29 16:56:54 +0100 Myles Inglis + + * gst-libs/gst/cuda/gstcudautils.c: + cuda: Fix GstCudaContext refcount bug + Part-of: + +2022-04-28 17:08:11 +0200 Ludvig Rappe + + * 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: + +2022-04-27 22:50:37 +0900 Seungha Yang + + * gst-libs/gst/cuda/gstcudautils.c: + cuda: Correct CUDA device id field in GstContext structure + device id is unsigned int, not signed. + Part-of: + +2022-04-28 13:23:39 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/codecs/gsth265decoder.h: + codecs: h265decoder: Fix documentation. + Part-of: + +2022-04-27 15:24:50 +0200 Edward Hervey + + * 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: + +2022-04-26 09:11:07 +0200 Stéphane Cerveau + + * 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: + +2022-04-28 00:48:35 +0900 Seungha Yang + + * sys/d3d11/plugin.cpp: + d3d11h265dec: Assign PRIMARY + 1 rank + Promote d3d11h265dec to be default one if available + Part-of: + +2022-04-28 00:31:49 +0900 Seungha Yang + + * 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: + +2022-03-07 15:44:04 +0000 Thibault Saunier + + * 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: + +2022-03-04 22:00:18 +0000 Thibault Saunier + + * ext/qroverlay/gstqroverlay.c: + qroverlay: Add a GstQROverlay meta + See documentation + Part-of: + +2022-04-27 00:27:06 +0200 Mathieu Duponchelle + + * 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: + +2022-03-08 21:26:16 +0000 Thibault Saunier + + * sys/nvcodec/gstcudaconvert.c: + cudaconvert: Enhance debugging when setting video info fails + Part-of: + +2022-04-26 22:35:30 +0800 He Junyan + + * 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: + +2022-04-24 17:26:03 +0800 He Junyan + + * gst-libs/gst/codecparsers/gsth265bitwriter.c: + codecparsers: bitwriter: Fix some coverity issues of H265 bitwriter. + Part-of: + +2022-04-24 00:02:18 +0800 He Junyan + + * sys/va/gstvabasedec.c: + va: dec: Use gst_buffer_pool_config_set_va_alignment() to set alignment. + Part-of: + +2022-04-23 23:59:08 +0800 He Junyan + + * gst-libs/gst/va/gstvapool.h: + va: pool: Replace all tabs with spaces in header file. + Part-of: + +2022-04-23 23:52:34 +0800 He Junyan + + * 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: + +2022-04-23 23:40:14 +0800 He Junyan + + * 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: + +2022-04-26 01:16:06 +0800 He Junyan + + * gst/videoparsers/gstav1parse.c: + av1parse: Fix a latent memory leak in colorimetry setting. + Also delete the useless "have_cinfo" judgement. + Part-of: + +2022-04-24 22:54:58 +0800 He Junyan + + * 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: + +2022-04-25 22:59:14 +0900 Seungha Yang + + * 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: + +2022-04-24 00:37:40 +0900 Seungha Yang + + * 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: + +2022-03-28 17:06:46 +0200 Stéphane Cerveau + + * 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: + +2022-03-25 17:47:23 +0100 Stéphane Cerveau + + * 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: + +2022-04-23 04:00:21 +0900 Seungha Yang + + * 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: + +2022-03-07 08:46:57 -0500 Xavier Claessens + + * gst-libs/gst/vulkan/meson.build: + * sys/msdk/meson.build: + Meson: Fix deprecation warnings + Part-of: + +2022-04-22 17:44:06 +0200 Stéphane Cerveau + + * ext/rsvg/gstrsvgdec.h: + rvsg: fix cairo include + Part-of: + +2022-04-22 12:29:29 +0200 Corentin Damman + + * sys/nvcodec/cuda-converter.c: + cuda-converter: fix nvrtc compilation on non-English locale systems + Part-of: + +2022-04-21 00:38:37 +0900 Sangchul Lee + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Avoid access of freed memory + Part-of: + +2022-04-15 22:19:09 +0800 He Junyan + + * 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: + +2022-03-02 14:42:42 +0800 He Junyan + + * tests/check/libs/h265bitwriter.c: + * tests/check/meson.build: + test: Add test cases for the H265 bitwriter. + Part-of: + +2022-03-02 14:31:05 +0800 He Junyan + + * 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: + +2022-04-20 13:18:34 +0800 He Junyan + + * 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: + +2022-04-20 23:06:56 +0900 Seungha Yang + + * 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: + +2022-04-19 21:38:31 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Notify if hdr-tone-mapping property changes. + Part-of: + +2022-03-30 18:09:36 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-04-20 08:09:58 +0900 Wonchul Lee + + * ext/dash/gstdashsink.c: + dashsink: Unlock when failed to get content + Part-of: + +2022-04-18 17:50:22 +0900 Camilo Celis Guzman + + * 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: + +2022-03-25 10:18:34 -0400 Xavier Claessens + + * 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: + +2022-03-25 10:20:24 -0400 Xavier Claessens + + * gst-libs/gst/gettext.h: + * gst-libs/gst/gst-i18n-plugin.h: + Delete unused i18n headers + Part-of: + +2022-03-25 09:59:23 -0400 Xavier Claessens + + * 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: + +2022-04-13 15:23:56 -0400 Thibault Saunier + + * 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: + +2021-12-12 13:19:52 +0000 Thibault Saunier + + * 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: + +2021-12-08 11:48:08 +0000 Thibault Saunier + + * 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: + +2021-12-03 13:12:42 +0000 Thibault Saunier + + * sys/nvcodec/gstnvbaseenc.c: + * sys/nvcodec/gstnvenc.c: + nvenc: Give more details about errors + Part-of: + +2021-11-12 20:13:10 +0100 Ruben Gonzalez + + * 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: + +2022-04-19 04:37:05 +0900 Seungha Yang + + * sys/d3dvideosink/d3dvideosink.c: + d3dvideosink: Remove outdated comment + d3dvideosink is not a primary video sink element + Part-of: + +2022-04-18 00:25:18 +0900 Seungha Yang + + * 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: + +2022-04-17 23:55:55 +0900 Seungha Yang + + * 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: + +2022-04-14 13:22:03 +0300 Vivia Nikolaidou + + * 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: + +2022-04-18 12:44:19 +0800 He Junyan + + * sys/va/gstvah264enc.c: + va: h264enc: Fix the forgotten unlock() when getting device path property. + Part-of: + +2022-04-17 22:25:14 +0900 Seungha Yang + + * 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: + +2022-04-17 02:14:50 +0900 Seungha Yang + + * 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: + +2022-04-17 02:18:37 +0900 Seungha Yang + + * sys/qsv/gstqsvh264dec.cpp: + * sys/qsv/gstqsvutils.cpp: + * sys/qsv/plugin.cpp: + qsv: Include single gstva.h + Part-of: + +2022-04-17 02:04:08 +0900 Seungha Yang + + * sys/qsv/gstqsvh264dec.cpp: + qsvh264dec: Don't register element if it's not supported by device + Part-of: + +2022-04-17 01:27:10 +0900 Seungha Yang + + * 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: + +2022-04-17 00:00:55 +0900 Seungha Yang + + * 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: + +2022-04-16 23:51:05 +0900 Seungha Yang + + * sys/qsv/gstqsvdecoder.cpp: + qsvdecoder: Reset next_task_index per init_session() + Part-of: + +2022-04-16 21:27:57 +0900 Seungha Yang + + * 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: + +2022-04-16 22:27:13 +0900 Seungha Yang + + * 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: + +2022-04-16 21:26:55 +0900 Seungha Yang + + * sys/qsv/gstqsvh265enc.cpp: + qsvh265enc: Write HDR10 metadata SEI + If device supports HDR10 metadata API, write the information + into bitstream per IDR. + Part-of: + +2022-04-13 06:19:40 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-04-13 05:58:46 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-04-13 05:56:59 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-04-13 05:52:31 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvah264enc.c: + vah264enc: Add device-path property. + Part-of: + +2022-04-15 13:19:36 +0000 Corentin Damman + + * sys/nvcodec/gstcudautils.c: + cudautils: fix critical typo in gst_cuda_buffer_fallback_copy + Part-of: + +2022-04-14 20:10:46 +1000 Brad Hards + + * 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: + +2022-04-14 08:23:51 +0200 Edward Hervey + + * 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: + +2022-04-10 17:28:03 +0800 He Junyan + + * 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: + +2022-04-12 10:34:27 +0800 He Junyan + + * gst-libs/gst/codecparsers/gstav1parser.c: + codecs: av1parser: Fix a typo in seq_level_idx check. + Part-of: + +2022-04-13 01:46:34 +0900 Seungha Yang + + * sys/amfcodec/gstamfh265enc.cpp: + amfh265enc: Handle preset option + Add missing preset option handling + Part-of: + +2022-04-13 01:39:43 +0900 Seungha Yang + + * 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: + +2022-04-12 01:01:23 +0900 Seungha Yang + + * 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: + +2022-04-11 16:03:41 -0500 Olivier Crête + + * ext/wpe/gstwpevideosrc.cpp: + wpevideosrc: Give WebKit the keyboard, touch and pointer modifiers + Part-of: + +2022-04-11 15:56:19 -0500 Olivier Crête + + * ext/wpe/gstwpevideosrc.cpp: + wpesrc: Convert from utf32 to support other keys + This makes all of the non-letter keys work. + Part-of: + +2022-04-11 15:54:05 -0500 Olivier Crête + + * ext/wpe/gstwpevideosrc.cpp: + wpesrc: Initialize key event to 0 + Otherwise, WebKit sees random modifiers + Part-of: + +2022-04-12 11:20:00 +0200 Andoni Morales Alastruey + + * sys/amfcodec/gstamfh264enc.cpp: + amfcodec: fix setting quality presets + Part-of: + +2022-04-11 10:32:40 +0200 Edward Hervey + + * 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: + +2022-04-11 10:31:15 +0200 Edward Hervey + + * 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: + +2022-04-12 01:49:17 +0900 Seungha Yang + + * 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: + +2022-04-09 23:32:19 +0900 Seungha Yang + + * 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: + +2022-04-10 02:34:17 +0900 Seungha Yang + + * 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: + +2022-04-09 00:52:07 +0900 Seungha Yang + + * 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: + +2022-04-09 00:00:59 +0900 Seungha Yang + + * 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: + +2022-03-31 04:16:24 +0900 Seungha Yang + + * 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: + +2022-03-31 01:36:37 +0900 Seungha Yang + + * 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: + +2022-04-09 02:13:57 +0900 Seungha Yang + + * sys/msdk/gstmsdkcontextutil.c: + msdk: Fix Windows build + Headers of gstva should not be included on Windows + Part-of: + +2022-04-08 04:24:36 +0900 Seungha Yang + + * 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: + +2022-04-08 04:02:55 +0900 Seungha Yang + + * sys/d3d11/gstd3d11av1dec.cpp: + * sys/d3d11/gstd3d11screencapturesrc.cpp: + * sys/d3d11/gstd3d11videosink.cpp: + d3d11: Run indent + Part-of: + +2022-03-11 20:46:11 +0900 Seungha Yang + + * 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: + +2022-04-06 11:21:25 +0200 Edward Hervey + + * 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: + +2022-04-01 22:52:18 +0900 Sangchul Lee + + * 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: + +2022-04-04 20:47:03 +0900 Seungha Yang + + * 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: + +2022-04-04 20:36:14 +0900 Seungha Yang + + * 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: + +2022-04-01 15:35:17 +0800 Tong Wu + + * 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: + +2022-04-01 15:00:01 +0200 Stéphane Cerveau + + * tests/examples/camerabin2/gst-camerabin2-test.c: + bad: examples: fix unused res warning + Part-of: + +2022-03-29 14:42:04 +0200 Johan Sternerup + + * 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: + +2022-04-03 22:12:33 +0900 Seungha Yang + + * sys/nvcodec/gstnvh264encoder.cpp: + * sys/nvcodec/gstnvh265encoder.cpp: + nvcodec: Fix typos + Part-of: + +2022-04-03 22:08:51 +0900 Seungha Yang + + * sys/nvcodec/gstnvencoder.h: + nvencoder: Fix operator overloading + GUID equality check was inverted + Part-of: + +2022-04-01 21:09:10 +0100 Tim-Philipp Müller + + * 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: + +2022-04-01 05:02:58 +0900 Seungha Yang + + * 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: + +2022-04-01 22:47:07 +0800 He Junyan + + * 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: + +2022-04-01 15:59:58 -0400 Nicolas Dufresne + + * 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: + +2022-03-30 11:06:02 -0400 Xavier Claessens + + * 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: + +2022-03-25 15:00:20 -0400 Xavier Claessens + + * 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: + +2022-03-24 14:15:00 -0400 Xavier Claessens + + * 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: + +2022-03-25 22:04:05 +0900 Seungha Yang + + * 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: + +2022-03-25 21:03:02 +0900 Seungha Yang + + * sys/qsv/gstqsvallocator_va.h: + * sys/qsv/gstqsvdecoder.cpp: + * sys/qsv/gstqsvencoder.cpp: + qsv: Use pipeline's VA context + Part-of: + +2022-03-29 14:52:33 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-03-28 21:25:50 +0900 Sangchul Lee + + * 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: + +2022-03-30 12:12:34 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-03-30 02:49:40 +0900 Seungha Yang + + * 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: + +2022-03-30 07:03:59 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-03-30 12:01:20 +0800 Haihua Hu + + * gst-libs/gst/play/gstplay.c: + gstplay: don't print error log in warning_cb + Part-of: + +2022-03-29 20:14:40 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-02-21 14:02:52 +1100 Matthew Waters + + * 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: + +2022-02-11 16:50:42 +1100 Matthew Waters + + * 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: + +2021-11-26 22:04:14 +1100 Matthew Waters + + * 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: + +2021-11-26 22:11:06 +1100 Matthew Waters + + * 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: + +2021-11-26 22:06:39 +1100 Matthew Waters + + * 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: + +2021-11-26 21:51:57 +1100 Matthew Waters + + * 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: + +2021-11-26 02:00:12 +1100 Matthew Waters + + * tests/check/elements/webrtcbin.c: + tests/webrtc: factor out src pad property checking to a separate function + Part-of: + +2021-11-16 19:27:11 +1100 Matthew Waters + + * 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: + +2021-11-16 18:11:49 +1100 Matthew Waters + + * 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: + +2021-11-16 17:39:18 +1100 Matthew Waters + + * 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: + +2021-11-16 17:28:04 +1100 Matthew Waters + + * ext/webrtc/gstwebrtcbin.c: + * gst-libs/gst/webrtc/webrtc_fwd.h: + webrtc: explicitly error out in a couple of renegotiation cases + Part-of: + +2021-11-16 17:21:31 +1100 Matthew Waters + + * ext/webrtc/transportstream.c: + webrtc/transportstream: add debug category + Part-of: + +2021-11-03 21:18:53 +1100 Matthew Waters + + * tests/check/elements/webrtcbin.c: + tests/webrtc: also check valid mline for srcpad codec-preferences negotiation + Part-of: + +2021-11-03 20:46:23 +1100 Matthew Waters + + * 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: + +2021-10-29 18:40:04 +1100 Matthew Waters + + * tests/check/elements/webrtcbin.c: + webrtc/tests: print the correct media idx on error + Instead of the attribute index + Part-of: + +2021-10-29 18:38:37 +1100 Matthew Waters + + * 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: + +2021-07-21 17:48:34 +1000 Matthew Waters + + * 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: + +2021-07-21 17:39:11 +1000 Matthew Waters + + * 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: + +2021-07-21 14:29:35 +1000 Matthew Waters + + * 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: + +2021-07-21 14:14:30 +1000 Matthew Waters + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: add a specific find_transceiver_by_mid function + Part-of: + +2021-07-20 20:17:13 +1000 Matthew Waters + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: explicitly use a variable for the rtp session idx + Slightly clearer in meaning. + Part-of: + +2021-07-01 15:54:34 +1000 Matthew Waters + + * ext/webrtc/gstwebrtcbin.c: + * tests/check/elements/webrtcbin.c: + webrtcbin: support using an a=mid value from the sink/transceiver caps + Part-of: + +2022-03-25 15:56:01 +0100 Víctor Manuel Jáquez Leal + + * 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 as library single point entry header. + Part-of: + +2022-02-23 15:40:19 +0800 He Junyan + + * 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 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: + +2022-02-23 15:25:08 +0800 He Junyan + + * 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: + +2022-03-27 23:27:54 +0900 Seungha Yang + + * 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: + +2022-03-25 23:15:33 +0900 Seungha Yang + + * sys/qsv/gstqsvh265enc.cpp: + qsvh265enc: Add missing gop-size property + Part-of: + +2022-03-25 21:13:22 +0900 Seungha Yang + + * sys/qsv/gstqsvallocator.cpp: + qsv: Fix mfxFrameAllocator::Lock for encoder + Only read map is possible for encoder input system memory + Part-of: + +2022-03-28 20:51:35 +1100 Matthew Waters + + * 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: + +2022-03-28 20:50:27 +1100 Matthew Waters + + * 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: + +2022-03-28 20:49:01 +1100 Matthew Waters + + * 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: + +2022-03-28 20:37:54 +1100 Matthew Waters + + * 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: + +2022-03-28 20:24:59 +1100 Matthew Waters + + * 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: + +2022-03-28 20:11:29 +1100 Matthew Waters + + * 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: + +2022-03-28 19:42:04 +1100 Matthew Waters + + * 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: + +2022-03-28 18:38:23 +1100 Matthew Waters + + * 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: + +2022-03-28 18:23:20 +1100 Matthew Waters + + * 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: + +2022-03-28 18:12:43 +1100 Matthew Waters + + * 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: + +2022-03-28 10:10:45 +0300 Sebastian Dröge + + * docs/plugins/gst_plugins_cache.json: + video-format: Move NV12_8L128 into the correct position in GST_VIDEO_FORMATS_ALL + Part-of: + +2022-03-28 15:56:22 +1100 Matthew Waters + + * 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: + +2022-03-25 14:25:02 +1100 Andrew Pritchard + + * 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: + +2022-03-23 17:31:37 +1100 Matthew Waters + + * 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: + +2022-03-23 15:13:10 +1100 Matthew Waters + + * ext/closedcaption/gstccconverter.c: + * tests/check/elements/ccconverter.c: + ccconverter: ignore padding cea608 data even if marked as 'valid' + Part-of: + +2022-03-23 10:36:28 -0400 Nicolas Dufresne + + * 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: + +2022-03-23 09:11:35 -0400 Nicolas Dufresne + + * 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: + +2021-12-21 10:59:37 -0500 Nicolas Dufresne + + * 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: + +2021-12-21 10:55:58 -0500 Nicolas Dufresne + + * 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: + +2021-12-21 10:52:32 -0500 Nicolas Dufresne + + * 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: + +2022-03-25 13:26:52 -0400 Xavier Claessens + + * 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: + +2022-03-18 16:59:32 +0000 Thibault Saunier + + * 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: + +2022-03-24 21:39:30 +0800 He Junyan + + * 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: + +2022-03-24 15:19:27 +0800 Chun-wei Fan + + * 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: + +2022-03-22 00:30:28 +0900 Sangchul Lee + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Update documentation of 'get-stats' action signal + Some stats fields are updated according to the current implementation. + Part-of: + +2022-03-25 00:27:42 +0100 Mathieu Duponchelle + + * 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: + +2022-03-24 19:55:48 +0200 Vivia Nikolaidou + + * 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: + +2022-03-21 23:03:36 +0100 Mathieu Duponchelle + + * 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: + +2022-01-05 10:15:34 -0300 Thibault Saunier + + * ext/wpe/gstwpesrcbin.cpp: + wpe: Mark first audio buffer as discont + Part-of: + +2022-01-04 15:49:35 -0300 Thibault Saunier + + * 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: + +2022-01-27 23:54:34 +0900 Seungha Yang + + * 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: + +2021-12-24 19:49:34 +0900 Seungha Yang + + * 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: + +2022-03-24 02:52:45 +0900 Seungha Yang + + * 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: + +2022-03-24 02:43:43 +0900 Seungha Yang + + * 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: + +2022-03-16 04:58:16 +0900 Seungha Yang + + 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: + +2022-02-10 10:21:01 +0100 Vivienne Watermeier + + * 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: + +2022-02-14 16:08:23 +0100 Vivienne Watermeier + + * 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: + +2022-03-22 10:37:59 +0800 Tong Wu + + * 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: + +2022-01-26 14:55:51 +0800 Mengkejiergeli Ba + + * 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: + +2022-03-18 16:34:38 -0400 Nicolas Dufresne + + * docs/plugins/gst_plugins_cache.json: + doc: Update cache after NV12_8L128 addition + Part-of: + +2022-03-21 13:01:03 +0100 Benjamin Gaignard + + * sys/v4l2codecs/gstv4l2decoder.c: + v4l2codecs: Fix memory leak + Free pending_requests array when releasing decoder to avoid memory leak + Part-of: + +2022-02-02 10:05:16 -0300 Daniel Almeida + + * 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: + +2022-03-18 15:59:21 -0400 Nicolas Dufresne + + * 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: + +2022-03-09 16:35:56 -0500 Nicolas Dufresne + + * 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: + +2022-03-21 22:03:53 +0900 Seungha Yang + + * 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: + +2022-03-16 13:17:21 -0400 Nicolas Dufresne + + * 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: + +2022-03-18 13:04:59 +0100 Jakub Adam + + * sys/d3d11/gstd3d11screencapture.cpp: + d3d11: Fix some typos + Part-of: + +2022-03-18 13:42:27 +0530 Nirbheek Chauhan + + * 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: + +2022-03-18 13:37:30 +0530 Nirbheek Chauhan + + * 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: + +2022-03-18 09:48:46 +0800 He Junyan + + * gst-libs/gst/codecparsers/gstav1parser.h: + codecparsers: av1parser: Fix a typo in FilmGrainParams comment. + Part-of: + +2022-03-10 17:37:26 +0100 Jakub Adam + + * 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: + +2022-03-15 17:01:59 +0530 Nirbheek Chauhan + + * 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: + +2022-03-17 13:36:25 +1100 Matthew Waters + + * 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: + +2022-03-11 17:02:55 +0000 Philippe Normand + + * 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: + +2022-03-16 00:05:19 +0100 Mathieu Duponchelle + + * 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: + +2022-03-10 19:22:52 +0900 Sangchul Lee + + * 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: + +2022-03-14 01:19:53 +0900 Seungha Yang + + * 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: + +2022-03-12 01:12:25 +0900 Seungha Yang + + * sys/nvcodec/gstnvh265dec.c: + nvh265sldec: Add support for delayed output + Delay 4 frames in case of non-live to improve throughput + Part-of: + +2022-03-12 21:54:45 +0900 Seungha Yang + + * 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: + +2022-03-12 00:53:04 +0900 Seungha Yang + + * gst-libs/gst/codecs/gsth265decoder.h: + h265decoder: Update documentation + Sync up with other baseclasses + Part-of: + +2022-03-12 04:45:22 +0900 Seungha Yang + + * 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: + +2022-03-12 03:15:48 +0900 Seungha Yang + + * 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: + +2022-03-13 00:17:48 +0900 Seungha Yang + + * 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: + +2022-03-12 10:31:13 +0800 He Junyan + + * 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: + +2022-03-09 03:45:18 +0900 Seungha Yang + + * 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: + +2022-03-11 23:20:26 +0900 Seungha Yang + + * 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: + +2022-03-11 19:32:59 +0900 Seungha Yang + + * 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: + +2022-02-10 08:01:02 +0100 Branko Subasic + + * 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: + +2022-03-10 18:40:12 +0000 Tim-Philipp Müller + + * 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: + +2022-03-08 16:20:27 +0100 Corentin Damman + + * sys/nvcodec/gstcudaformat.h: + * sys/nvcodec/gstcudamemorycopy.c: + cudamemorycopy: add D3D11 resource support + Part-of: + +2022-03-09 09:35:16 +0100 Corentin Damman + + * sys/nvcodec/gstcudacontext.c: + * sys/nvcodec/meson.build: + cudacontext: find associated DXGI Adapter LUID + Part-of: + +2022-02-28 14:40:51 +0100 Corentin Damman + + * 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: + +2022-02-28 11:24:31 +0100 Corentin Damman + + * sys/nvcodec/gstcudaloader.c: + * sys/nvcodec/gstcudaloader.h: + * sys/nvcodec/stub/cuda.h: + cudaloader: add D3D11 API + Part-of: + +2022-03-10 10:33:56 +0100 Edward Hervey + + * 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: + +2022-03-10 15:36:00 +1100 Matthew Waters + + * 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: + +2022-03-10 02:28:11 +0900 Seungha Yang + + * 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: + +2021-11-02 09:20:55 +0100 Edward Hervey + + * 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: + +2021-11-02 09:18:57 +0100 Edward Hervey + + * 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: + +2022-03-04 13:19:17 +0100 Víctor Manuel Jáquez Leal + + * 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: + +2022-03-09 02:14:50 +0900 Seungha Yang + + * sys/nvcodec/gstcudamemorycopy.c: + cudamemorycopy: Fix GL resource leak + Clear GL resources on stop() + Part-of: + +2022-03-07 18:46:55 +0100 Jan Alexander Steffens (heftig) + + * 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: + +2022-03-07 18:46:08 +0100 Jan Alexander Steffens (heftig) + + * 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: + +2022-03-08 01:26:50 +0900 Seungha Yang + + * 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: + +2022-03-08 03:45:01 +0900 Seungha Yang + + * sys/nvcodec/gstcudamemorycopy.c: + cudamemorycopy: Remove texture-target caps field + It's GL specific field, and we can remove it unconditionally + Part-of: + +2022-03-05 02:30:24 +0900 Seungha Yang + + * 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: + +2022-03-03 15:06:00 +0100 Víctor Manuel Jáquez Leal + + * 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: + +2022-03-07 10:19:53 +0000 Philippe Normand + + * tests/check/libs/play.c: + gstplay: tests: Keep track of errors/warnings + Part-of: + +2022-03-07 10:16:36 +0000 Philippe Normand + + * 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: + +2022-03-07 10:14:43 +0000 Philippe Normand + + * 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: + +2022-03-07 18:59:37 +0900 Seungha Yang + + * sys/nvcodec/gstcudamemorycopy.c: + cudamemorycopy: Fix build when gl is disabled + Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1707 + Part-of: + +2022-03-02 09:15:12 +0800 Mengkejiergeli Ba + + * 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: + +2022-03-06 19:18:20 +0900 Seungha Yang + + * sys/nvcodec/gstcudautils.c: + nvcodec: Add missing null check in context sharing code + Part-of: + +2022-03-04 03:33:41 +0900 Seungha Yang + + * 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: + +2022-03-03 03:25:47 +0900 Seungha Yang + + * 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: + +2022-03-02 22:03:54 +0900 Seungha Yang + + * 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: + +2022-03-02 20:55:29 +0900 Seungha Yang + + * 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: + +2022-03-03 02:48:17 +0900 Seungha Yang + + * 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: + +2022-03-03 03:24:14 +0900 Seungha Yang + + * 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: + +2022-03-02 05:01:42 +0900 Seungha Yang + + * sys/nvcodec/gstcudacontext.c: + cudacontext: Remove unnecessary cuInit() call + It's already called at plugin init time + Part-of: + +2022-03-05 11:35:29 +0800 He Junyan + + * gst/videoparsers/gstav1parse.c: + av1parse: Add a comment when the detection of TU fails. + Also update the print message. + Part-of: + +2022-03-04 16:48:54 -0500 Nicolas Dufresne + + * 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: + +2022-03-03 23:00:41 +0800 He Junyan + + * gst/videoparsers/gstav1parse.c: + av1parse: check the error return when parse_alignment_from_caps() + Part-of: + +2022-03-03 22:38:56 +0800 He Junyan + + * 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: + +2022-03-03 21:30:00 +0800 He Junyan + + * gst/ivfparse/gstivfparse.c: + ivfparse: Set the alignment to tu for AV1 stream. + Just do the same as other demux. + Part-of: + +2022-03-03 17:51:11 +0800 He Junyan + + * 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: + +2022-03-02 16:22:25 -0500 Nicolas Dufresne + + * 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: + +2022-03-02 16:20:31 -0500 Nicolas Dufresne + + * 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: + +2022-03-04 10:02:56 -0500 Nicolas Dufresne + + * 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: + +2022-03-04 14:17:47 +0100 Edward Hervey + + * 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: + +2022-03-03 11:32:23 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvabasetransform.c: + va: basetransform: Add device-path read-only property. + Part-of: + +2022-03-03 11:05:36 +0100 Víctor Manuel Jáquez Leal + + * 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: + +2022-03-04 13:34:50 +0100 Víctor Manuel Jáquez Leal + + * 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: + +2022-03-04 09:15:42 +0100 He Junyan + + * sys/va/gstvaencoder.c: + va: encoder: Clean dead code. + Part-of: + +2022-03-03 14:08:16 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvaencoder.c: + va: encoder: Fix error code path when open. + Part-of: + +2022-03-03 13:57:35 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvah264enc.c: + vah264enc: Remove preferred_output_delay. + In the current state of the encoder it's just dead code. + Part-of: + +2022-03-03 09:59:28 +0100 Víctor Manuel Jáquez Leal + + * 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: + +2022-03-02 20:53:16 +0100 Víctor Manuel Jáquez Leal + + * 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: + +2022-03-02 20:06:01 +0100 Víctor Manuel Jáquez Leal + + * sys/va/plugin.c: + va: Fix log message + Part-of: + +2022-03-04 09:57:02 +0000 Philippe Normand + + * 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: + +2021-08-03 12:14:49 +1000 Matthew Waters + + * 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: + +2022-03-01 11:43:09 +0800 Mengkejiergeli Ba + + * 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: + +2022-03-04 04:18:06 +0900 Seungha Yang + + * sys/wic/meson.build: + meson: wic: Fix typo + Should check WIC build option, not MediaFoundation + Part-of: + +2022-03-03 04:22:15 +0900 Seungha Yang + + * 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: + +2022-03-03 04:57:42 +0900 Seungha Yang + + * 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: + +2022-01-30 03:11:37 +0900 Seungha Yang + + * 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: + +2022-03-02 06:17:22 +0900 Seungha Yang + + * 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: + +2022-02-20 03:59:32 +0900 Seungha Yang + + * 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: + +2022-02-21 10:49:15 +0100 Sebastian Fricke + + * 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: + +2022-02-23 11:10:11 +0100 Sebastian Fricke + + * 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: + +2022-02-21 12:26:49 +0100 Víctor Manuel Jáquez Leal + + * docs/plugins/gst_plugins_cache.json: + docs: Add vah264enc metadata. + Part-of: + +2021-10-05 01:53:19 +0800 He Junyan + + * sys/va/plugin.c: + va: enable the H264 encoder. + Part-of: + +2021-10-05 01:51:48 +0800 He Junyan + + * 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 + Part-of: + +2021-10-05 01:50:07 +0800 He Junyan + + * 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 + Part-of: + +2022-01-20 21:44:20 +0800 He Junyan + + * 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: + +2021-10-21 22:56:23 +0800 He Junyan + + * 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: + +2021-10-05 01:53:47 +0800 He Junyan + + * 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: + +2021-10-05 01:45:25 +0800 He Junyan + + * 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: + +2021-10-05 01:43:28 +0800 He Junyan + + * tests/check/libs/h264bitwriter.c: + * tests/check/meson.build: + test: Add test cases for the H264 bitwriter. + Part-of: + +2021-10-05 01:42:41 +0800 He Junyan + + * 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: + +2021-10-05 01:41:07 +0800 He Junyan + + * 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: + +2022-02-28 16:33:23 +0100 Guillaume Desmottes + + * 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: + +2022-02-25 15:00:05 +0800 jinsl00000 + + * 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: + +2022-02-14 16:15:46 +0800 Wu Tong + + * 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: + +2022-02-24 20:26:46 +0530 Sanchayan Maity + + * 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: + +2022-01-31 16:13:32 +0200 Vivia Nikolaidou + + * 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: + +2022-02-21 11:37:26 -0500 Xavier Claessens + + * 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: + +2018-12-05 01:22:48 +0100 Jan Alexander Steffens (heftig) + + * 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: + +2018-12-05 01:07:19 +0100 Jan Alexander Steffens (heftig) + + * 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: + +2022-02-01 14:51:27 +0200 Vivia Nikolaidou + + * 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: + +2022-02-17 15:16:40 +0800 Mengkejiergeli Ba + + * sys/msdk/gstmsdkdec.c: + msdkdec: Fix uninitialized variables + Part-of: + +2022-02-17 15:12:52 +0800 Mengkejiergeli Ba + + * 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: + +2022-02-22 05:19:51 +0900 Seungha Yang + + * sys/qsv/gstqsvencoder.cpp: + qsvencoder: Fix caps leak in Linux build + Part-of: + +2022-02-22 05:15:04 +0900 Seungha Yang + + * 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: + +2022-02-21 16:45:50 +0800 Mengkejiergeli Ba + + * docs/plugins/gst_plugins_cache.json: + bad:docs: Add vaav1dec in documentation + Part-of: + +2022-02-21 14:17:11 +0200 Sebastian Dröge + + * 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: + +2022-02-14 23:30:45 +0300 Dmitry Osipenko + + * 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: + +2022-02-20 23:59:46 +0900 Seungha Yang + + * 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: + +2022-02-20 15:20:07 -0500 Nicolas Dufresne + + * docs/plugins/gst_plugins_cache.json: + doc: Add NV12_16L32S into the cache + Autogenerated by CI + Part-of: + +2022-01-26 13:39:40 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2format.c: + * sys/v4l2codecs/gstv4l2format.h: + v4l2codecs: Enable MediaTek MM21 (NV12_16L32S) + Part-of: + +2022-01-19 15:53:05 -0500 Nicolas Dufresne + + * 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: + +2022-01-25 14:08:47 -0500 Nicolas Dufresne + + * 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: + +2022-02-20 06:36:45 +0900 Seungha Yang + + * 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: + +2022-02-08 15:23:17 +0100 Jan Alexander Steffens (heftig) + + * 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: + +2022-02-19 00:37:34 +0900 Seungha Yang + + * sys/directshow/dshowvideosink.cpp: + * sys/directshow/gstdshowaudiodec.h: + directshow: Fix build warnings + Part-of: + +2022-02-19 00:14:38 +0900 Seungha Yang + + * 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: + +2022-02-19 00:12:55 +0900 Seungha Yang + + * 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: + +2021-10-19 16:10:06 -0300 Martin Reboredo + + * 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: + +2022-02-18 16:23:09 -0500 Nicolas Dufresne + + * 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: + +2022-02-18 16:02:27 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + v4l2codecs: vp9: Only fill compressed headers if needed + Fixes: 13944cf3ee871722 ("v4l2codecs: vp9: Make compressed hdr control optional") + Part-of: + +2022-01-14 23:42:27 -0600 Tim Mooney + + * sys/v4l2codecs/linux/types-compat.h: + v4l2: include on Illumos + Needed for _IOR/_IORW + Part-of: + +2022-01-26 21:06:45 +0100 Loic Le Page + + * 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: + +2022-01-26 21:03:10 +0100 Loic Le Page + + * 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: + +2022-01-26 20:58:12 +0100 Loic Le Page + + * 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: + +2022-01-26 20:43:09 +0100 Loic Le Page + + * 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: + +2022-02-16 14:53:12 +0100 Loïc Le Page + + * 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: + +2022-01-15 00:04:05 -0600 Tim Mooney + + * 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: + +2022-02-14 22:59:01 +0900 Seungha Yang + + * 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: + +2022-02-13 20:32:48 +0900 Seungha Yang + + * 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: + +2022-02-13 04:36:39 +0900 Seungha Yang + + * 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: + +2021-10-01 20:27:28 +0900 Seungha Yang + + * 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: + +2022-02-14 16:18:54 +0300 Dmitry Osipenko + + * 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: + +2022-01-21 15:32:09 +0800 Mengkejiergeli Ba + + * 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: + +2021-12-15 11:49:40 +0800 Mengkejiergeli Ba + + * 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: + +2021-11-17 17:05:09 +0800 Mengkejiergeli Ba + + * 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: + +2022-02-16 02:23:58 +0900 Seungha Yang + + * sys/d3d11/gstd3d11converter.cpp: + d3d11converter: Fix for missing GRAY conversion + Add missing Y410 -> GRAY and GRAY -> semi-planar conversion + Part-of: + +2022-02-16 02:11:53 +0900 Seungha Yang + + * sys/d3d11/gstd3d11converter.cpp: + d3d11converter: Don't use FIXME_OBJECT for non-GstObject + ... and print ERROR messages for unexpected input/output formats + Part-of: + +2021-11-10 15:18:24 +0800 He Junyan + + * 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: + +2022-02-08 15:22:39 +0100 Jan Alexander Steffens (heftig) + + * 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: + +2022-02-15 02:26:46 +0900 Seungha Yang + + * sys/d3d11/gstd3d11converter.cpp: + d3d11converter: Fix RGB to GRAY conversion + Fix typo in shader code + Part-of: + +2022-02-14 12:57:44 +0100 Stéphane Cerveau + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: unlock mutex on -1 start_offfset + Closing #1013 + Part-of: + +2022-02-13 22:39:46 +0900 Seungha Yang + + * sys/d3d11/gstd3d11download.cpp: + d3d11download: Fix decide_allocation + Caps should be parsed in any cases. + Part-of: + +2022-02-13 10:49:31 +0800 He Junyan + + * 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: + +2022-02-13 10:39:37 +0800 He Junyan + + * 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: + +2022-02-12 10:05:11 +0000 Philippe Normand + + * 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: + +2022-02-12 14:51:51 +0800 He Junyan + + * sys/va/gstvavpp.c: + vavpp: Fix the caps leak in the transform_caps() function. + Part-of: + +2022-02-12 00:51:56 +0900 Seungha Yang + + * 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: + +2022-02-10 22:31:06 +0900 Seungha Yang + + * 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: + +2021-05-08 17:54:34 +0800 He Junyan + + * 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: + +2021-05-08 17:26:27 +0800 He Junyan + + * 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: + +2021-05-08 15:51:11 +0800 He Junyan + + * 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: + +2021-08-17 22:36:59 +0800 He Junyan + + * 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: + +2021-08-17 22:34:43 +0800 He Junyan + + * 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: + +2021-08-17 22:33:18 +0800 He Junyan + + * sys/msdk/gstmsdkcontextutil.c: + * sys/msdk/gstmsdkcontextutil.h: + MSDK: Add a handle_context_query() helper function. + Part-of: + +2021-08-17 21:51:58 +0800 He Junyan + + * 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: + +2021-05-08 13:49:23 +0800 He Junyan + + * sys/msdk/gstmsdkcontext.c: + * sys/msdk/gstmsdkcontext.h: + MSDK: Add new_with_va_display() helper function to create context. + Part-of: + +2021-05-08 11:44:57 +0800 He Junyan + + * 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: + +2022-02-11 11:11:03 +0800 He Junyan + + * sys/msdk/meson.build: + MSDK: Add the gst va lib into MSDK's dependency. + Part-of: + +2022-02-10 12:52:30 +0800 He Junyan + + * 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: + +2022-02-04 17:12:15 +0800 He Junyan + + * 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: + +2022-02-04 11:40:18 +0800 He Junyan + + * 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: + +2021-03-30 19:23:12 +0900 Seungha Yang + + * 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: + +2022-01-29 01:52:26 +0900 Seungha Yang + + * 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: + +2022-01-27 02:20:37 +0900 Seungha Yang + + * 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: + +2022-01-28 01:45:30 +0900 Seungha Yang + + * 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: + +2022-01-27 02:26:02 +0900 Seungha Yang + + * sys/mediafoundation/gstmfaudioenc.cpp: + * sys/mediafoundation/gstmftransform.cpp: + * sys/mediafoundation/gstmfvideoenc.cpp: + mediafoundation: Use & operator instead of GetAddressOf() + Use shorter expression + Part-of: + +2022-01-24 02:41:29 +0900 Seungha Yang + + * 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: + +2022-02-09 03:27:41 +0900 Seungha Yang + + * 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: + +2022-02-09 15:05:14 -0500 Nicolas Dufresne + + * 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: + +2022-02-10 01:48:23 +0900 Seungha Yang + + * sys/mediafoundation/gstmfaudioenc.cpp: + mfaudioenc: Handle empty IMFMediaBuffer + IMFMediaBuffer may not hold encoded data, which seems to happen + while draining. + Part-of: + +2022-02-03 10:10:44 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvadecoder.c: + va: decoder: Log profile name. + Part-of: + +2022-01-24 16:25:18 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvafilter.c: + va: filter: Log the added filter name. + Part-of: + +2021-10-25 13:41:49 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2021-09-30 17:42:19 +0200 Víctor Manuel Jáquez Leal + + * 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: + +2022-02-06 23:20:32 +0900 Sangchul Lee + + * ext/webrtc/gstwebrtcice.c: + webrtcice: Fix memory leaks in gst_webrtc_ice_add_candidate() + Part-of: + +2022-01-28 14:49:42 -0500 Nicolas Dufresne + + * 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: + +2022-02-07 12:34:53 +0100 Víctor Manuel Jáquez Leal + + * 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: + +2022-02-07 11:27:57 +0100 Víctor Manuel Jáquez Leal + + * 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: + +2022-02-08 04:51:24 +0900 Seungha Yang + + * sys/msdk/msdk.c: + * sys/msdk/msdk.h: + msdk: Fix for MFXUnload symbol re-definition build error + Fix for libgstreamer-full build + Part-of: + +2021-12-25 00:13:04 +0900 Seungha Yang + + * 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: + +2021-12-19 21:39:53 +0900 Seungha Yang + + * 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: + +2022-02-06 21:34:43 +0900 Seungha Yang + + * 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: + +2021-12-01 22:18:42 +0900 Seungha Yang + + * 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: + +2021-12-01 22:18:04 +0900 Seungha Yang + + * 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: + +2021-12-07 21:29:05 +0900 Seungha Yang + + * 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: + +2022-02-06 21:36:28 +0900 Seungha Yang + + * 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: + +2022-02-01 00:50:53 +0900 Seungha Yang + + * 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: + +2022-02-01 00:12:06 +0900 Seungha Yang + + * 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: + +2022-02-07 22:38:02 +0900 Seungha Yang + + * gst-libs/gst/d3d11/gstd3d11stagingbufferpool.cpp: + d3d11stagingbufferpool: Fix typo in texture description + Fixing typo, it should be height + Part-of: + +2021-10-27 11:08:39 +0800 He Junyan + + * 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: + +2021-10-07 14:31:28 +0800 He Junyan + + * 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: + +2021-10-24 22:07:38 +0900 Seungha Yang + + * 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: + +2022-02-06 01:06:36 +0900 Seungha Yang + + * sys/d3d11/gstd3d11videosink.cpp: + d3d11videosink: Use staging buffer pool for non-d3d11 upstream + Part-of: + +2022-02-06 00:53:34 +0900 Seungha Yang + + * sys/d3d11/gstd3d11download.cpp: + * sys/d3d11/gstd3d11upload.cpp: + d3d11upload,d3d11download: Use staging buffer pool + Part-of: + +2022-02-05 23:25:12 +0900 Seungha Yang + + * 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: + +2022-02-05 23:08:48 +0900 Seungha Yang + + * 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: + +2022-02-02 00:15:34 -0300 Martin Reboredo + + * gst-libs/gst/vulkan/gstvkerror.c: + * gst-libs/gst/vulkan/gstvkerror.h: + gstvulkan: Expose gst_vulkan_result_to_string + Part-of: + +2022-02-05 17:36:41 +0300 Igor V. Kovalenko + + * meson_options.txt: + qroverlay: move to plugins that need external deps + qroverlay requires libqrencode dependency, move it next to similar plugins. + Part-of: + +2022-02-04 11:15:47 +0000 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + +=== release 1.20.0 === + +2022-02-03 19:53:25 +0000 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * README: + * RELEASE: + * gst-plugins-bad.doap: + * meson.build: + Release 1.20.0 + +2022-02-03 19:53:18 +0000 Tim-Philipp Müller + + * ChangeLog: + Update ChangeLogs for 1.20.0 + +2022-02-02 09:58:15 +0100 Stéphane Cerveau + + * ext/dash/gstdashsink.c: + dashsink: doc cleanup + Remove max-files mention in the command line test + Fix some typos + Use mpegtsdemux instead of tsdemux in the pipeline description + Part-of: + +2022-02-01 00:18:44 +0900 Seungha Yang + + * sys/nvcodec/gstnvdecoder.c: + nvdecoder: Fix for display resolution setup + Display resolution should be cropped rect, not coded resolution. + Otherwise decoded output from NVDEC might be wrong. + Part-of: + +2022-02-01 03:00:41 +0530 Nirbheek Chauhan + + * sys/applemedia/vtdec.c: + * sys/applemedia/vtenc.c: + * sys/applemedia/vtutil.c: + * sys/applemedia/vtutil.h: + applemedia: Disable 64RGBALE support on older macOS + The kCVPixelFormatType_64RGBALE enum is only available on macOS Big + Sur (11.3) and newer. We also cannot use that while configuring the + encoder or decoder on older macOS. + Define the symbol unconditionally, but only use it when we're running + on Big Sur with __builtin_available(). + Part-of: + +2022-02-01 03:04:32 +0530 Nirbheek Chauhan + + * sys/applemedia/vtenc.c: + applemedia: Remove some unnecessary variables + Part-of: + +2022-02-01 05:07:04 +0530 Nirbheek Chauhan + + * docs/meson.build: + * sys/applemedia/avfassetsrc.m: + * sys/applemedia/iosassetsrc.m: + docs: Add objc and objcpp files to hotdoc gst_c_sources + Hotdoc should be able to extract and parse comments out of these. Just + need to be careful to only add the glob in directories that actually + contain *.m (objc) and *.mm (objcpp) files. + Also fix some doc comments and remove redundant ones. + Part-of: + +2022-01-14 11:26:42 +0100 Jan Alexander Steffens (heftig) + + * ext/wpe/meson.build: + wpe: Support wpe-webkit-1.1 + Part-of: + +2022-01-29 10:24:36 +0000 Philippe Normand + + * ext/wpe/WPEThreadedView.cpp: + * ext/wpe/gstwpe.cpp: + * ext/wpe/gstwpe.h: + * ext/wpe/meson.build: + * ext/wpe/wpe-extension/meson.build: + wpe: Install WebExtension in pkglibdir + The uninstalled WebExtension takes precedence over the installed one, so that + audio support works in local developer builds as well. + Fixes #975 + Part-of: + +2022-01-30 19:06:29 +0530 Nirbheek Chauhan + + * sys/applemedia/plugin.m: + * sys/applemedia/vtenc.c: + docs: Rename "OS X" to "macOS" in some documentation + No one uses the term "Mac OS X" anymore, it's "macOS". "OS X" is even + worse, because people will usually start the search with "mac". + Part-of: + +2022-01-28 23:15:28 +0530 Nirbheek Chauhan + + * docs/plugins/gst_plugins_cache.json: + * sys/applemedia/avfvideosrc.m: + * sys/applemedia/vtdec.c: + * sys/applemedia/vtenc.c: + applemedia: Document vtenc / vtdec elements + Also preserve-alpha property should only be exposed on the + vtenc_prores element since h264 does not support transparency. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/-/issues/94 + Part-of: + +2022-01-28 14:39:35 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codech264dec.c: + v4l2codecs: h264: Improve ABI check + This moves the ABI check to the registration, so we don't expose + decoders with the wrong ABI or that are just broken somehow. It + also makes few enhancement: + - Handle missing, but required controls + - Prints the controls macro name instead of id + This should fix RK3399 support with a currently release minor + regression in the Hantro driver that cause errors. + Part-of: + +2022-01-28 17:11:41 +0000 Philippe Normand + + * ext/webrtc/gstwebrtcbin.c: + * ext/webrtc/utils.c: + * ext/webrtc/utils.h: + * ext/webrtc/webrtcdatachannel.c: + * ext/webrtc/webrtcsdp.c: + * gst-libs/gst/webrtc/meson.build: + * gst-libs/gst/webrtc/webrtc.c: + * gst-libs/gst/webrtc/webrtc_fwd.h: + * tests/check/elements/webrtcbin.c: + webrtc: Expose RTCError enum + The error codes not complying with the spec are now notified with the + GST_WEBRTC_ERROR_INTERNAL_FAILURE code. + Part-of: + +2022-01-29 04:46:24 +0900 Seungha Yang + + * 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: Fix typo in doc + s/elemenet/element/g + Part-of: + +=== release 1.19.90 === + +2022-01-28 14:28:35 +0000 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * RELEASE: + * gst-plugins-bad.doap: + * meson.build: + Release 1.19.90 + +2022-01-28 14:28:28 +0000 Tim-Philipp Müller + + * ChangeLog: + Update ChangeLogs for 1.19.90 + +2022-01-27 11:22:54 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Make cb max values symmetrical to their min values. + Intel drivers expose some colorbalance's maximum values much more + bigger than their minimum values, given their middle values (default + value). This means, in practice, that the real middle point between + the maximum and minimum values implies a major change in the color + balance, which is not expected by the GStreamer color balance logic. + This patch makes the given maximum value symmetrical to the minimum + value, given the middle one (default value). + Part-of: + +2022-01-27 11:49:53 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codech264dec.c: + * sys/v4l2codecs/gstv4l2codecmpeg2dec.c: + * sys/v4l2codecs/gstv4l2codecvp8dec.c: + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + v4l2codecs: Fix debug assertion in register functions + As now, we warn if the decoder have no support src pixel format, but that + warning is called before the type (hence the debug category) is initialized. + Fix this by moving the debug category init out of the type initialization, + into the register funcitons. + This will fix an assertion that occures in the register function and allow + relevant log to be seen by the users. + Part-of: + +2022-01-27 17:56:29 +0100 Jakub Adam + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Chain up to parent constructed method + Failing to do so makes GstWebRTCBin invisible to the leaks tracer. + Part-of: + +2022-01-27 01:40:17 +0000 Tim-Philipp Müller + + * po/LINGUAS: + * po/ro.po: + gst-plugins-bad: update translations + Part-of: + +2022-01-27 03:10:39 +0900 Seungha Yang + + * sys/d3d11/gstd3d11av1dec.cpp: + d3d11av1dec: Fix typo in debug message + Fixing copy and paste mistake, It's AV1 decoder not VP8 + Part-of: + +2022-01-25 12:32:50 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvabasetransform.c: + va: basetransform: Pass component index not plane index. + This is an issue detected and fixed in commit 3897b24f for other + libraries and elements. + Part-of: + +2022-01-24 11:14:14 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvafilter.c: + * sys/va/gstvafilter.h: + * sys/va/gstvavpp.c: + va: filter & postproc: Match color with caps features. + When fixating color, there might be "other caps" with color spaces not + supported by the caps features exposed in the vapostproc's source pad + caps template (perhaps it's a bug somewhere else in GStreamer). + This solution checks if the proposed format exists in the filter + within the caps feature associated with the proposed format. + The check is done with the new filter's function + gst_va_filter_has_video_format(). + Part-of: + +2022-01-10 13:34:21 +0100 Jan Alexander Steffens (heftig) + + * gst/mpegtsmux/gstbasetsmux.c: + * gst/mpegtsmux/tsmux/tsmux.c: + * gst/mpegtsmux/tsmux/tsmuxstream.c: + * gst/mpegtsmux/tsmux/tsmuxstream.h: + tsmux: Allow specifying PMT order via the prog-map + Look for an entry `PMT_` in the `prog-map`, which specifies the + relative index of the stream in the PMT. + Part-of: + +2022-01-10 14:16:28 +0100 Jan Alexander Steffens (heftig) + + * gst/mpegtsmux/tsmux/tsmux.c: + tsmux: Deterministically order program streams by PID + Part-of: + +2022-01-10 12:59:58 +0100 Jan Alexander Steffens (heftig) + + * gst/mpegtsmux/tsmux/tsmux.c: + tsmux: Deterministically order PAT programs by number + Part-of: + +2022-01-10 13:03:11 +0100 Jan Alexander Steffens (heftig) + + * gst/mpegtsmux/tsmux/tsmux.c: + * gst/mpegtsmux/tsmux/tsmuxstream.c: + * gst/mpegtsmux/tsmux/tsmuxstream.h: + tsmux: Remove program_array_index + It's only used for removal. Let's just scan the array. + Part-of: + +2022-01-10 12:31:42 +0100 Jan Alexander Steffens (heftig) + + * gst/mpegtsmux/tsmux/tsmux.c: + * gst/mpegtsmux/tsmux/tsmux.h: + tsmux: Replace streams GArray with GPtrArray + This is more appropriate. + Part-of: + +2022-01-19 23:17:23 +0900 Sangchul Lee + + * ext/webrtc/gstwebrtcbin.c: + * ext/webrtc/webrtcdatachannel.c: + * ext/webrtc/webrtcsdp.c: + webrtc: Fix memory leaks + Redundant condition and unreachable codes are also removed. + Part-of: + +2020-07-14 11:11:11 -0400 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codech264dec.c: + * sys/v4l2codecs/gstv4l2codecmpeg2dec.c: + * sys/v4l2codecs/gstv4l2codecvp8dec.c: + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + * sys/v4l2codecs/gstv4l2format.h: + v4l2codecs: Unify the src template caps format + Notably NV12_4L4 ended up being applied to only VP9 decoder. This fixes the + situation by using a central define for all static src pad templated formats. + Part-of: + +2022-01-21 14:13:39 -0500 Nicolas Dufresne + + * sys/v4l2codecs/linux/v4l2-controls.h: + * sys/v4l2codecs/linux/videodev2.h: + v4l2codecs: Sync kernel headers against 5.16.0 + Part-of: + +2022-01-21 11:13:55 +0100 Víctor Manuel Jáquez Leal + + * sys/msdk/msdk.c: + msdk: Avoid noisy registry when no MSDK device. + Part-of: + +2022-01-21 10:53:21 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/va/gstvadisplay.c: + va: libs: Avoid noisy registry when no VA device. + Part-of: + +2022-01-20 05:59:36 +0900 Seungha Yang + + * sys/wasapi2/gstwasapi2client.cpp: + * sys/wasapi2/gstwasapi2util.c: + * sys/wasapi2/gstwasapi2util.h: + * sys/wasapi2/meson.build: + wasapi2: Fix for device open failure on old OS + To open automatic stream routing aware device, + at least Windows10 Anniversary Update is required. + Part-of: + +2022-01-18 03:03:30 +0900 Seungha Yang + + * sys/wasapi2/gstwasapi2ringbuffer.cpp: + wasapi2ringbuffer: Fix for desynced buffer-size and segsize + GstAudioRingBufferSpec::segsize has been configured by using + device period but GstWasapi2RingBuffer was referencing the + buffer size returned by IAudioClient::GetBufferSize() + which is most likely larger than device period. + Fixing to sync them. + Part-of: + +2021-12-30 16:52:17 +0100 Robert Mader + + * ext/wayland/wlwindow.c: + * ext/wayland/wlwindow.h: + waylandsink: Ensure correct mapping of area_surface + If the `area_surface` got unmapped when changing to the `READY` or + `NULL` state, we currently don't remap it when playback resumes and + `wp_viewporter` is supported. Without `wp_viewporter` we do remap + it, but rather unintentionally and also when not wanted. + On Weston this has not been a big problem as it so far wrongly maps + subsurfaces of unmapped surfaces anyway - i.e. only the black + background was missing on resume. On other compositors and future + Weston this prevents the `video_surface` to get remapped. + Shuffle things around to ensure `area_surface` is mapped in the + right situations and do some minor cleanup. + See also https://gitlab.freedesktop.org/wayland/weston/-/issues/426 + Part-of: + +2022-01-16 02:21:43 +0900 Seungha Yang + + * sys/d3d11/gstd3d11deinterlace.cpp: + d3d11deinterlace: Do not restrict minimum resolution to 64x64 + The value 64 was completely arbitrary one, and this element + will be able to support smaller resolutions + Part-of: + +2022-01-06 22:00:11 +0900 Seungha Yang + + * sys/d3d11/gstd3d11compositor.cpp: + d3d11compositor: Don't try to read empty buffer + The queued buffer may not be readable buffer in case that + upstream sends GAP event or so. + Part-of: + +2022-01-13 14:17:09 +0100 Robert Mader + + * tests/examples/waylandsink/main.c: + waylandsink: Fix alpha value for the test pattern in example + The background-color property is in big-endian ARGB, resulting in + a alpha value of `0`. This accidentally used to work on all common + compositors, but on Weston this now correctly results in a black + background. + See also https://gitlab.freedesktop.org/wayland/weston/-/issues/577 + Part-of: + +2021-12-13 13:16:06 +0100 Robert Mader + + * ext/wayland/wldisplay.c: + * ext/wayland/wlwindow.c: + waylandsink: Use wl_surface_damage_buffer() instead of wl_surface_damage() + The later, doing damage in surface coordinates instead of buffer + coordinates, has been deprecated. The reason for that is that it + is more prone to bugs, both on the client and the compositor side, + especially when paired with buffer scale, `wp_viewporter` or + buffer transforms. + Unfortunately, on Weston this risks running into + https://gitlab.freedesktop.org/wayland/weston/-/issues/446 + (which causes trouble for several other projects as well). However, + that bug only affects cases where we run in sync mode, i.e. only + during resizes. In practise I haven't been able to observe the + issue. + Part-of: + +2021-12-13 12:21:06 +0100 Robert Mader + + * ext/wayland/wlwindow.c: + waylandsink: Use G_MAXINT32 for surface damage + Each time we call `wl_surface_damage()` we want to do full surface + damage. Like Mesa, just use `G_MAXINT32` to ensure we always do + full damage, reducing the need to track the right dimensions. + `window->video_rectangle` is now unused, but we keep it around for + now as we may need it again in the future. + Part-of: + +2021-12-30 18:14:24 +0100 Robert Mader + + * ext/wayland/wlwindow.c: + waylandsink: Only call wl_surface_damage() when buffer content changed + From the spec: + > This request is used to describe the regions where the pending + > buffer is different from the current surface contents + We currently also call `wl_surface_damage()` on surfaces without + new or still compositor-hold buffers, e.g. when resizing the window. + In that case we call it on `area_surface_wrapper`, even though it + gets resized via `wp_viewport_set_destination()`, in which case + the compositor is in charge of repainting the area on screen. + Doing so is currently not forbidden by the spec, however it might + be in the future, see + https://gitlab.freedesktop.org/wayland/wayland/-/issues/267 + Thus lets stay close to the spec and only call `wl_surface_damage()` + when we just attached a buffer. + Right now this prevents runtime assertions in Mutter. + Part-of: + +2021-12-13 14:31:06 +0100 Robert Mader + + * ext/wayland/wlwindow.c: + waylandsink: Simplify input region handling + We only need to unset the input region for the area surface when + we don't have our own toplevel surface. By default, the input region + covers the whole surface, thus no need to change it on resize. + Part-of: + +2021-12-13 12:00:10 +0100 Robert Mader + + * ext/wayland/wlwindow.c: + waylandsink: Use G_MAXINT32 for opaque regions + `gst_wl_window_set_opaque` does not get called on window resizes, + potentially leaving opaque regions too small. + According to the spec opaque regions can be bigger than the surface + size - parts that fall outside of the surface will get ignored. + Thus we can can simply use `G_MAXINT32` and be sure that the whole + surfaces will always be covered. + Part-of: + +2022-01-11 13:21:55 -0500 Dave Piché + + * ext/webrtc/gstwebrtcbin.c: + webrtc: fix log error message in function gst_webrtc_bin_set_local_description + Part-of: + +2022-01-13 11:31:55 +0000 Tim-Philipp Müller + + * gst/mxf/mxfvanc.c: + mxfdemux: don't error out if VANC track only contains packets we don't handle + If the VANC track does contain packets, but we skip over all packets, just + treat it the same as if there hadn't been any packets at all and send a + GAP event instead of erroring out with "Failed to handle essence element". + We would error out because when we reach the end of the loop without having + found a closed caption packet the flow return variable is still FLOW_ERROR + which is what it has been initialised to. + Part-of: + +2022-01-13 10:36:24 +0800 He Junyan + + * gst-libs/gst/codecparsers/gsth265parser.c: + codecparsers: h265parser: return invalid profile if len is 0. + Though the profiles[0] is inited as GST_H265_PROFILE_INVALID in the + gst_h265_profile_tier_level_get_profile(), the profile detecting may + change its content later. So the return of profiles[0] may not be an + invalid profile even the len is 0. + Part-of: + +2022-01-13 10:11:52 +0800 He Junyan + + * gst-libs/gst/codecparsers/gsth265parser.c: + codecparsers: h265parser: Fix the index incrementation error in append_profile(). + The current "*idx++" operation just refers the pointer and increment the pointer + itself, not the content of the pointer. This causes that the count of the profiles + is always 0. + Part-of: + +2022-01-04 04:56:55 +0300 Dmitry Osipenko + + * sys/kms/gstkmssink.c: + kmssink: Support auto-detection of NVIDIA Tegra driver + NVIDIA Tegra SoCs have a separate (from GPU) display controller. It's + the primary display device on all Tegra SoCs. Add Tegra to the list + of primary DRM drivers. + Part-of: + +2022-01-08 00:16:29 +0100 Mathieu Duponchelle + + * ext/closedcaption/gstcccombiner.c: + cccombiner: fix s334-1a scheduling + The previous code was mistakenly trying to compute a cc_type out + of the first byte in the byte triplet, whereas it is to be interpreted + as: + > Bit b7 of the LINE value is the field number (0 for field 2; 1 for field 1). + > Bits b6 and b5 are 0. Bits b4-b0 form a 5-bit unsigned integer which + > represents the offset + The same mistake was made when creating padding packets. + Part-of: + +2022-01-05 22:48:31 +0100 Mathieu Duponchelle + + * ext/closedcaption/gstcccombiner.c: + cccombiner: merge buffers for both fields with caption type s334-1a + Other elements such as line21encoder expect both fields to be present + in the same meta, not one meta per field. + Part-of: + +2022-01-10 15:24:13 +0800 Mengkejiergeli Ba + + * gst-libs/gst/codecparsers/gstav1parser.h: + av1parser: Fix data type of film grain param + Fix cb_offset and cr_offset data type from guint8 to guint16. According + to spec, cb_offset and cr_offset are 9 bit long, while guint8 can cause + interger overflow, and thus change to guint16. + Part-of: + +2022-01-05 02:07:59 +0530 Nirbheek Chauhan + + * docs/meson.build: + * ext/opencv/meson.build: + * gst-libs/gst/vulkan/meson.build: + * meson.build: + * sys/msdk/meson.build: + meson: Add explicit check: kwarg to all run_command() calls + This is required since Meson 0.61.0, and causes a warning to be + emitted otherwise: + https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c + https://github.com/mesonbuild/meson/issues/9300 + This exposed a bunch of places where we had broken run_command() + calls, unnecessary run_command() calls, and places where check: true + should be used. + Part-of: + +2022-01-05 10:53:55 +0100 Stéphane Cerveau + + * gst/codecalpha/gstalphacombine.c: + alphacombine: update example launch line + Fix typos and missing videoconvert element to demonstrate + the alphacombine element. + Part-of: + +2021-12-24 23:09:59 +0800 He Junyan + + * gst/videoparsers/gstav1parse.c: + av1parse: Set the "tu" as the default alignment. + The tu(temporal unit) is more widely used than the current alignment. + We now change the default alignment to tu. + Part-of: + +2021-12-24 21:50:01 +0800 He Junyan + + * gst/videoparsers/gstav1parse.c: + av1parse: Fix the wrong DELTA_UNIT flag setting for key frames. + Part-of: + +2021-12-22 12:36:15 +0800 He Junyan + + * gst/videoparsers/gstav1parse.c: + av1parse: Copy the PTS and DURATION when we create data. + We need to create header buffers for annex b format. This kind of + buffers should inherit the PTS and DURATION from the original buffers. + Part-of: + +2022-01-03 21:02:47 +0530 Nirbheek Chauhan + + * sys/applemedia/vtenc.c: + vtenc: Signal ignored alpha component with ProRes + When the image is opaque but the output ProRes format has an alpha + component (4 component, 32 bits per pixel), Apple requires that we + signal that it should be ignored by setting the depth to 24 bits per + pixel. Not doing so causes the encoded files to fail validation. + So we set that in the caps and qtmux sets the depth value in the + container, which will be read by demuxers so that decoders can skip + those bytes entirely. qtdemux does this, but vtdec does not use this + information at present. + The sister change was made in qtmux and qtdemux in: + https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1061 + Part-of: + +2022-01-03 22:15:12 +0800 He Junyan + + * gst-libs/gst/codecparsers/gsth265parser.c: + codecparsers: h265parser: Correct the read of slice_sao_chroma_flag. + According to the SPEC, for parsing the slice header, we should read the + slice_sao_chroma_flag only when ChromaArrayType is not equal to 0. + Part-of: + +2021-12-29 21:29:02 +0100 Rafał Dzięgiel + + * ext/assrender/gstassrender.c: + assrender: Support RFC8081 mime types + Old "application/*" are now as per RFC8081 deprecated in favor of + new "font/*" mime types. Some new encoders are already using the + updated mime types. We need to also add them to the support list + in order for assrender to correctly identify them as fonts. + Part-of: + +2021-12-29 21:28:56 +0100 Rafał Dzięgiel + + * ext/assrender/gstassrender.c: + assrender: Handle ".ttc" attachment extension + TTC stands for "TrueType Collection" file. We can pass it + into libass as any other attachment. Add it to the supported + extensions list, so the fonts it contains will be used. + Part-of: + +2022-01-02 09:38:43 +0000 Philippe Normand + + * ext/webrtc/webrtcdatachannel.c: + webrtcdatachannel: Notify buffered-amount property updates + Part-of: + +2021-12-27 03:15:10 +0900 Seungha Yang + + * sys/d3d11/gstd3d11decoder.cpp: + d3d11decoder: Negotiate again on the first output buffer + ... unconditionally. There may be updated field in sinkpad caps + after the new_sequence() call (HDR related ones for example), + then we should signal the information to downstream. + Part-of: + +2021-12-29 15:02:03 +0000 Philippe Normand + + * ext/webrtc/gstwebrtcstats.c: + webrtcstats: Fix null pointer dereference + If there is no jitterbuffer stats we should not attempt to store them in the + global stats structure. + Also add a g_return_if_fail in _gst_structure_take_structure() about this + because it is a programmer error to pass an invalid pointer address there. + Part-of: + +2021-08-12 19:14:16 +0800 He Junyan + + * gst/videoparsers/gstav1parse.c: + codecparsers: av1parse: Add the DECODE_ONLY flag to output buffer. + When the alignment is ALIGN_FRAME and the output buf contains a frame + which is not to be shown, the GST_BUFFER_FLAG_DECODE_ONLY flag should + be set. + Part-of: + +2021-12-14 12:38:25 -0500 Olivier Crête + + * ext/webrtc/gstwebrtcstats.c: + webrtcstats: Fall back to last packet ssrc if caps dont provide it + Part-of: + +2021-12-14 11:28:42 -0500 Olivier Crête + + * ext/webrtc/gstwebrtcstats.c: + webrtcstats: Use our own caps instead of the sticky event + The sticky event seems to get cleared sometimes. + Part-of: + +2021-12-14 11:28:13 -0500 Olivier Crête + + * ext/webrtc/gstwebrtcbin.c: + * ext/webrtc/gstwebrtcbin.h: + webrtcbin: Store the ssrc of the last received packet + Part-of: + +2021-12-13 16:57:06 -0500 Olivier Crête + + * ext/webrtc/gstwebrtcstats.c: + webrtc stats: Remove duplicate structure get + Part-of: + +2021-12-13 16:56:37 -0500 Olivier Crête + + * ext/webrtc/gstwebrtcstats.c: + webrtc stats: Add more details about codecs into the stats + This makes the output a little closer to what the upstream stats are. + Part-of: + +2021-12-23 10:06:58 +1100 Brad Hards + + * ChangeLog: + * data/targets/file-extension/ts.gep: + doc: typo fix for streaming + Part-of: + +2021-12-21 12:55:59 +0800 He Junyan + + * sys/va/gstvaprofile.c: + va: av1dec: Use named profiles to replace the numeric ones. + Use named AV1 profiles (i.e., main, high, and professional) to replace + the old 0, 1, 2 profiles. + Part-of: + +2021-12-21 01:08:40 +0900 Seungha Yang + + * ext/aom/gstav1enc.c: + av1enc: Update for newly designed AV1 profile signalling + Accept named AV1 profiles (i.e., main, high, and professional) + as well + Part-of: + +2021-12-19 21:48:51 +0900 Seungha Yang + + * sys/d3d11/gstd3d11av1dec.cpp: + d3d11av1dec: Update sinkpad template for profile + Part-of: + +2021-12-19 21:44:19 +0900 Seungha Yang + + * gst/videoparsers/gstav1parse.c: + * tests/check/elements/av1parse.c: + av1parse: Use descriptive profile name instead of numeric + As per AV1 specification Annex A, AV1 profiles have explicit and + descriptive names for each seq_profile. + Part-of: + +2021-12-19 21:47:18 +0900 Seungha Yang + + * gst/videoparsers/gstav1parse.c: + av1parse: Remove trailing white space + Part-of: + +2021-12-17 22:24:57 +0900 Seungha Yang + + * sys/d3d11/gstd3d11av1dec.cpp: + d3d11av1dec: Fix for Cdef param + av1parser will increase the sec_strength values by 1 if parsed + values were equal to 3 as defined in spec. But DXVA wants unmodified + ones. + Part-of: + +2021-12-17 19:49:42 +0900 Seungha Yang + + * sys/d3d11/gstd3d11av1dec.cpp: + d3d11av1dec: Sync DXVA AV1 data structure with released header + Update AV1 data structure based on Windows 11 SDK header + Part-of: + +2021-12-15 12:27:24 +0100 Víctor Manuel Jáquez Leal + + * tests/check/libs/h265parser.c: + tests: h265parser: Add test for multiple compatibility profiles. + Part-of: + +2021-12-14 19:56:48 +0100 Víctor Manuel Jáquez Leal + + * gst/videoparsers/gsth265parse.c: + h265parser: Compare upstream profile with in SPS. + Compare if upstream profile in caps is the same as the one parsed in + the SPS. If they are different use the bigger for simplicity and + more chances to decode it. + Part-of: + +2021-12-15 11:58:07 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/codecparsers/gsth265parser.c: + codecparsers: h265parser: Use a table map to get profile. + Instead of a sequence of if statements, declare a table to map profile + idc with profiles and traverse it. + Also, first add the profile from the parsed profile idc and later add, + into the profile array, the profile from the compatibility flags. + Part-of: + +2021-12-14 19:36:56 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/codecparsers/gsth265parser.c: + codecparsers: h265parser: Verify all possible profiles. + It's possible a HEVC stream to have multiple profiles given the + compatibility bits. Instead of returning a single profile, internal + gst_h265_profile_tier_level_get_profiles() returns an array with all + it possible profiles. + Profiles are appended into the array only if the generated profile + is not invalid. + gst_h265_profile_tier_level_get_profile() is rewritten in terms of + gst_h265_profile_tier_level_get_profiles(), returning the first + profile found the array. + And gst_h265_get_profile_from_sps() is also rewritten in terms of + gst_h265_profile_tier_level_get_profiles(), but traversing the array + verifying if the proposed profile is actually valid by Annex A.3.x of + the specification. + Part-of: + +2021-12-09 03:00:56 +0100 Mathieu Duponchelle + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: bind transceiver's fec-percentage to encoder percentage + Allows for dynamic control of the applied FEC overhead + Part-of: + +2021-12-07 23:55:22 +0100 Mathieu Duponchelle + + * ext/webrtc/gstwebrtcbin.c: + * ext/webrtc/transportstream.c: + * ext/webrtc/transportstream.h: + webrtcbin: fix ulpfec / red for the BUNDLE case + * Add fec / red encoders as direct children of webrtcbin, instead + of providing them to rtpbin through the request-fec-encoder signal. + That is because they need to be placed before the rtpfunnel, which + is placed upstream of rtpbin. + * Update configuration of red decoders to set a list of RED payloads + on them, instead of setting the pt property. + That is because there may be one RED pt per media in the same session. + * Connect to request-fec-decoder-full instead of request-fec-decoder, + in order to instantiate FEC decoders according to the payload type + of the stream. + Part-of: + +2021-12-10 21:58:33 +0900 Seungha Yang + + * sys/d3d11/gstd3d11pluginutils.cpp: + d3d11videosink: Use only tested color space for swapchain + We are querying supported swapchain colorspace via + CheckColorSpaceSupport() but it doesn't seem to be reliable. + Use only tested full-range RGB formats which are: + - sRGB + - BT709 primaries with linear RGB + - BT2020 primaries with PQ gamma + Part-of: + +2021-12-11 11:33:39 -0300 Thibault Saunier + + * docs/plugins/gst_plugins_cache.json: + * ext/soundtouch/gstpitch.cc: + pitch: Specify layout as required for negotiation + There are cases where it might negotiate 'non-interleaved' while it + is wrong. + ``` + gst-launch-1.0 audiotestsrc ! "audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved" ! audioconvert ! audioresample ! pitch tempo=1.2 ! audioconvert ! "audio/x-raw,format=S16LE" ! fakesink + Setting pipeline to PAUSED ... + Pipeline is PREROLLING ... + (gst-launch-1.0:3029628): GStreamer-Audio-CRITICAL **: 11:42:22.477: gst_audio_buffer_map: assertion '(!meta && info->layout == GST_AUDIO_LAYOUT_INTERLEAVED) || (meta && info->layout == meta->info.layout)' failed + ERROR: from element /GstPipeline:pipeline0/GstAudioConvert:audioconvert1: The stream is in the wrong format. + Additional debug info: + ../subprojects/gst-plugins-base/gst/audioconvert/gstaudioconvert.c(876): gst_audio_convert_transform (): /GstPipeline:pipeline0/GstAudioConvert:audioconvert1: + failed to map input buffer + ERROR: pipeline doesn't want to preroll. + ERROR: from element /GstPipeline:pipeline0/GstAudioTestSrc:audiotestsrc0: Internal data stream error. + Setting pipeline to NULL ... + Additional debug info: + ../subprojects/gstreamer/libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstAudioTestSrc:audiotestsrc0: + streaming stopped, reason error (-5) + ERROR: pipeline doesn't want to preroll. + Freeing pipeline ... + ``` + Part-of: + +2021-12-10 15:46:41 -0500 Nicolas Dufresne + + * docs/plugins/gst_plugins_cache.json: + doc: Update vp9alphadecodebin doc cache + A new field was added to the template cpas. + Part-of: + +2021-12-10 15:18:56 -0500 Nicolas Dufresne + + * gst/codecalpha/gstalphacombine.c: + alphacombine: Fix for early allocation queries + When using playbin3, it seems that the alpha decode is always first to + push caps and run an allocation query. As the format change from sink + and alpha were not synchronized, the allocation query could endup + being run before the caps are pushed. That may lead to failing query, + which makes the decoder thinks there is no GstVideoMeta downstream and + most likely CPU copy the frame. + This patch implements a format cookie to track and synchronize the + format changes on both pads fixing the racy performance issue. + Part-of: + +2021-12-10 14:09:44 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + * sys/v4l2codecs/gstv4l2codecvp9dec.h: + * sys/v4l2codecs/plugin.c: + v4l2codecs: vp9: Add alpha decodebin wrapper + This will allow HW accelerated decoding of WebM alpha videos. + Part-of: + +2021-12-10 14:09:06 -0500 Nicolas Dufresne + + * sys/v4l2codecs/plugin.c: + v4l2codecs: plugin: Minor style fix + Part-of: + +2021-12-10 14:08:32 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2decoder.c: + v4l2codecs: decoder: Improve logging of timed out request + Part-of: + +2021-12-10 14:07:18 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codecmpeg2dec.c: + * sys/v4l2codecs/gstv4l2codecmpeg2dec.h: + * sys/v4l2codecs/plugin.c: + v4l2codecs: mpeg2: Check that the decoder output formats + This is to avoid exposing a decoder for which we don't support any + output format. This happens on platform using vendor formats or + not yet supported tiles formats. + Part-of: + +2021-12-10 14:04:40 -0500 Nicolas Dufresne + + * gst/codecalpha/gstvp9alphadecodebin.c: + vp9alphadecodebin: Fix auto-pluging v4l2slvp9dec + This adds the alignment field to the template caps. Without this field + set, the auto-plugger will see fixed caps and will use + gst_caps_is_subset() against the caps produced by the parser. This is a + challenge for all cases where a parser can do conversion. This is fixed + by adding alignment field, which makes the auto-pluggers do an + intersection of the caps as it gets unfixed caps after intersection now. + Part-of: + +2021-12-09 19:55:04 +0900 Seungha Yang + + * sys/d3d11/gstd3d11pluginutils.cpp: + * sys/d3d11/gstd3d11pluginutils.h: + * sys/d3d11/gstd3d11window.cpp: + d3d11window: Remove hack related to color space selection + Use input GstVideoColorPrimaries without any special case handling + otherwise rendered image color would be very wrong. + The hack was added to work around an issue that some Intel driver + couldn't handle wide color gamut image without HDR10 metadata, specifically PQ image. + But device capability can be checked via a method added in + https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1723 + so there's no issue now. + Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1175 + Part-of: + +2021-12-09 19:51:04 +0900 Seungha Yang + + * sys/d3d11/gstd3d11window.cpp: + d3d11window: Fix typo in debug message + Part-of: + +2021-12-08 11:08:30 +0100 Benjamin Gaignard + + * gst-libs/gst/codecs/gsth264decoder.c: + codecs: h264decoder: Fix return value type + Return value should be GstFlowReturn not gboolean + Part-of: + +2021-12-07 17:09:11 +0100 Benjamin Gaignard + + * gst-libs/gst/codecs/gsth265decoder.c: + codecs: h265decoder: Fix return value if klass->new_picture isn't set + If klass->new_picture isn't set we need to initialize + ret with GST_FLOW_OK to avoid unwanted error case + Fixes: 5b405d15858b ("codecs: h265decoder: Use GstFlowReturn everywhere") + Part-of: + +2021-12-06 16:47:14 +0000 Philippe Normand + + * ext/wpe/gstwpevideosrc.cpp: + wpevideosrc: Use basesrc event vfunc + Allows for basic default handling from the base class. + Part-of: + +2021-12-03 13:24:25 +0000 Tim-Philipp Müller + + * ext/teletextdec/gstteletextdec.c: + teletextdec: fix minor string leak + Part-of: + +2021-12-02 15:52:06 +0100 Marc Leeman + + * gst/rist/gstristsink.c: + ristsink: set properties on children early + The properties on the udpsink/udpsrc elements need to be set before + there is any state change. If not, in a network without default gateway, + udpsink tries to bind an a NULL interface and fails. + Part-of: + +2021-12-03 07:53:54 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codecmpeg2dec.c: + v4l2codecs: mpeg2: Fix selected sizeimage + Due to a copy paste bug, the bitdepth was never set and that was leading + to requesting sizeimage of 0. Previously that worked since the driver + would in that case pick a size for us. But now the we bumped the minimum + to 4KB, the driver happily allocate 4KB of bitstream which lead to + decoding error. + As MPEG2 have a fixed bitdeph of 8, use a define instead of the run-time + variable. + Part-of: + +2021-12-01 12:16:40 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + v4l2codecs: vp9: Drop frames on non-keyframe format change + V4L2 does not yet support this feature, this will skip over the + transition portion up to the next keyframe. + Part-of: + +2021-12-01 09:51:57 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codech264dec.c: + * sys/v4l2codecs/gstv4l2codecmpeg2dec.c: + * sys/v4l2codecs/gstv4l2codecvp8dec.c: + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + v4l2codecs: Fix renegotiation + If we hold the last reference to the allocator, leaving the device + streaming will cause an EBUSY error when trying to free the allocate + buffers. + Part-of: + +2021-12-02 16:26:08 +0900 Seungha Yang + + * sys/d3d11/gstd3d11vp9dec.cpp: + d3d11vp9dec: Drop frames on non-keyframe format change + ... in case of NVIDIA GPU + Part-of: + +2021-12-02 16:04:21 +0900 Seungha Yang + + * sys/nvcodec/gstnvvp9dec.c: + nvvp9sldec: Drop frames on non-keyframe format change + NVDEC doesn't seem to be able to handle the case + Part-of: + +2021-12-02 16:03:14 +0900 Seungha Yang + + * gst-libs/gst/codecs/gstvp9decoder.c: + * gst-libs/gst/codecs/gstvp9decoder.h: + codecs: vp9: Drop frames on non-keyframe format change + ... if subclass does not support the case + Part-of: + +2021-12-01 12:10:42 -0500 Nicolas Dufresne + + * gst-libs/gst/codecs/gstvp9decoder.c: + codecs: vp9: Also consider render_width/height + Also emits new_sequence if on keyframe and the render_width/height have + change. The subclass can always optimize this if the frame resolution + didn't change, the output caps needs to reflect this though. + Part-of: + +2021-11-30 10:24:37 +0100 Marc Leeman + + * gst/rtp/gstrtpsink.c: + rtpsink: set properties on children early + The properties on the udpsink/udpsrc elements need to be set before + there is any state change. If not, in a network without default gateway, + udpsink tries to bind an a NULL interface and fails. + Part-of: + +2021-11-30 14:48:03 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + v4l2codecs: vp9: Remove uneeded picture data + The GstV4l2Request now holds a reference on the picture buffer and is + recounted already. This effectively removes usage of GRefCount which is only + available in GLib 2.58, while we support 2.56. + Fixes #910 + Part-of: + +2021-11-30 17:05:22 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2decoder.c: + * sys/v4l2codecs/gstv4l2decoder.h: + v4l2codecs: decoder: Add method to get the pic_buf + This helper will be needed for VP9 frame duplication. + Part-of: + +2021-11-30 16:08:18 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + v4l2codecs: vp9: Add missing error checks in decide_allocation + This could otherwise lead to crash. + Part-of: + +2021-11-24 11:17:22 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codech264dec.c: + v4l2codecs: h264: Fix typo in comment + Part-of: + +2021-11-24 11:17:40 -0500 Nicolas Dufresne + + * sys/v4l2codecs/gstv4l2codech264dec.c: + v4l2codecs: h264: Properly set pic_num/frame_num + The V4L2 uAPI uses pic_num for both PicNum and ShortTermPicNum. It also + doe the same for both FrameNum and LongTermFrameIdx. This change does + not change the fluster score, but fixed a visual corruption noticed + with some third party streams. + Part-of: + +2021-11-23 16:35:16 +0800 He Junyan + + * sys/va/gstvasurfacecopy.c: + va: Use a lock to protect the surface copy by using vpp. + If we use vpp to do the surface copy, its operation is not atomic. + We need to maintain the filter's context unchanged during the whole + copy progress. + Part-of: + +2021-11-23 21:10:55 +0800 He Junyan + + * sys/va/gstvaallocator.c: + va: Use the GstVaSurfaceCopy of the allocator atomically. + The mem_copy() of the allocator can be called simultaneously from + different threads. We should use atomic pointer operations to create + and use the GstVaSurfaceCopy of the allocator. + Part-of: + +2021-11-22 16:07:27 +0800 He Junyan + + * sys/va/gstvaallocator.c: + va: DMA allocator: Set the copied memory properly when popped from pool. + The current code does not set the copied memory correctly when it is popped + from the surface cache pool. + 1. We forget to ref the allocator, which causes the allocator to be freed + unexpected, and we get a crash later because of the memory violation. + 2. We forget to add ref_mems_count, which causes the surface leak because + the surface can not be pushed back to the cache pool again. + Part-of: + +2021-04-22 16:29:20 -0300 Daniel Almeida + + * sys/v4l2codecs/gstv4l2decoder.c: + v4l2codecs: gstv4l2decoder: set minimum sizeimage + Set minimum sizeimage such that there is enough space for any overhead + introduced by the codec. + Notably fix a vp9 issue in which a small image would not have a + bitstream buffer large enough to accomodate it. + Part-of: + +2021-04-07 16:15:32 -0300 Daniel Almeida + + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + v4l2codecs: gstv4l2codecsvp9dec: implement a render delay + The v4l2 backend support delayed output for performance reasons. + It is then possible to use render delays to queue multiple requests + simultaneously, thus increasing performance. + Part-of: + +2021-03-30 13:30:46 -0300 Daniel Almeida + + * sys/v4l2codecs/gstv4l2codecvp9dec.c: + * sys/v4l2codecs/gstv4l2codecvp9dec.h: + * sys/v4l2codecs/gstv4l2format.c: + * sys/v4l2codecs/linux/videodev2.h: + * sys/v4l2codecs/meson.build: + * sys/v4l2codecs/plugin.c: + v4l2codecs: vp9dec: Implement VP9 v4l2 decoder + Implement a v4l2 based vp9 decoder element based on the preexisting vp8 + v4l2 decoder. + Part-of: + +2021-07-14 16:21:59 -0300 Daniel Almeida + + * sys/v4l2codecs/linux/v4l2-controls.h: + * sys/v4l2codecs/linux/videodev2.h: + v4l2codecs: update to the new uAPI + The new VP9 stateless API is in its way to be destaged. Update our + headers to match. + Part-of: + +2021-04-08 10:40:03 -0300 Daniel Almeida + + * gst-libs/gst/codecs/gstvp9decoder.c: + codecs: gstvp9decoder: copy frame->system_frame_number into picture + A comment in gstvp9picture.h states that picture->system_frame_number + should get its value from frame->system_frame_number, but in fact + it was never copied at all. + Fix it. + Part-of: + +2021-04-08 10:38:55 -0300 Daniel Almeida + + * gst-libs/gst/codecs/gstvp9decoder.c: + * gst-libs/gst/codecs/gstvp9decoder.h: + * gst-libs/gst/codecs/gstvp9statefulparser.c: + * gst-libs/gst/codecs/gstvp9statefulparser.h: + codecs: gstvp9{decoder|statefulparser}: optionally parse compressed headers + Rework gstvp9{decoder|statefulparser} to optionally parse compressed headers. + The information in these headers might be needed for accelerators + downstream, so optionally parse them if downstream requests it. + Part-of: + +2021-11-23 20:12:06 +0100 Mathieu Duponchelle + + * ext/webrtc/gstwebrtcbin.c: + * tests/check/elements/webrtcbin.c: + webrtcbin: deduplicate extmaps + When an extmap is defined twice for the same ID, firefox complains and + errors out (chrome is smart enough to accept strict duplicates). + To work around this, we deduplicate extmap attributes, and also error + out when a different extmap is defined for the same ID. + Part-of: + +2021-11-23 13:30:17 +0800 He Junyan + + * gst-libs/gst/codecs/gstmpeg2decoder.c: + codecs: mpeg2decoder: drain() only when significant sequence changes. + There are a lot of info in the mpeg2's sequence(also including ext + display_ext and scalable_ext). We need to notify the subclass about + its change, but not all the changes should trigger a drain(), which + may change the output picture order. For example, the matrix changes + in sequence header does not change the decoder context and so no need + to trigger a drain(). + Fixes: #899 + Part-of: + +2021-11-23 23:52:18 +0900 Seungha Yang + + * ext/openjpeg/gstopenjpegenc.h: + openjpegenc: Fix build warning + Compiling C object subprojects/gst-plugins-bad/ext/openjpeg/gstopenjpeg.dll.p/gstopenjpegenc.c.obj + ../subprojects/gst-plugins-bad/ext/openjpeg/gstopenjpegenc.c(416): + warning C4133: '=': incompatible types - from 'GstFlowReturn (__cdecl *)(GstVideoEncoder *,GstVideoCodecFrame *)' to + 'gboolean (__cdecl *)(GstVideoEncoder *,GstVideoCodecFrame *)' + ../subprojects/gst-plugins-bad/ext/openjpeg/gstopenjpegenc.c(418): + warning C4133: '=': incompatible types - from 'GstFlowReturn (__cdecl *)(GstVideoEncoder *,GstVideoCodecFrame *)' to + 'gboolean (__cdecl *)(GstVideoEncoder *,GstVideoCodecFrame *)' + Part-of: + +2021-11-23 09:28:57 +0100 Guillaume Desmottes + + * ext/gs/gstgssink.cpp: + gssink: add metadata property + This property can be used to set metadata on the storage object. + Similar API has been added to the S3 sink already, see + https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/613 + Part-of: + +2021-11-23 00:25:07 +0900 Seungha Yang + + * gst-libs/gst/d3d11/gstd3d11bufferpool.cpp: + * gst-libs/gst/d3d11/gstd3d11utils.cpp: + d3d11: Update comments + Remove copy & paste mistake (this is not GstGL) and add more + description. + Part-of: + +2021-11-19 15:13:28 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvabasetransform.c: + * sys/va/gstvabasetransform.h: + * sys/va/gstvadeinterlace.c: + * sys/va/gstvavpp.c: + vapostproc, vadeinterlace: don't transform caps if no intersection. + If caps to transform don't intersect with those supported by the VA + filter (VAEntrypointVideoProc) then return them as is, because only + pass-through mode is the only possibility. + Part-of: + +2021-11-16 10:40:03 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Append featured caps rather than merge. + So it would be possible to honor upstream preference. + Part-of: + +2021-10-25 19:22:05 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvavpp.c: + vapostproc: Remove dead code. + Part-of: + +2021-10-25 19:22:19 +0200 Víctor Manuel Jáquez Leal + + * sys/va/gstvafilter.c: + va: filter: Validate input parameter in internal function. + Part-of: + +2021-11-15 10:15:38 +0100 Víctor Manuel Jáquez Leal + + * sys/va/gstvaallocator.c: + va: allocator: log drm modifier + Part-of: + +2021-11-22 17:34:22 +0800 He Junyan + + * sys/va/gstvavpp.c: + va: vpp: Fix the memory leak in fixate_caps(). + For the BaseTransform class, the function of fixate_caps(), takes + the ownership of "othercaps". So we should clear it in our subclass. + Part-of: + +2021-11-13 12:22:36 +0000 Philippe Normand + + * gst-libs/gst/player/gstplayer.c: + player: Ensure the GstPlay is created before the wrapped renderer + The GstPlayerWrappedVideoRenderer implicitely depends on GstPlay. + Fixes #878 + Part-of: + +2021-11-13 12:17:23 +0000 Philippe Normand + + * gst-libs/gst/play/gstplay.c: + play: Allow runtime configuration of video-renderer + This is a requirement for GstPlayer when using the default overlay interface + provided by the pipeline. The GstPlayerWrappedVideoRenderer requires a valid + pipeline, but that's available only after the GstPlay thread has successfully + started. + Part-of: + +2021-11-19 19:02:20 +0800 He Junyan + + * sys/va/gstvadecoder.c: + va: decoder: Also ref the display when duplicating pictures. + The _destroy_buffers() will check the display handle using the + g_return_val_if_fail. we should not generate the invalid pointer + warning. + Part-of: + +2021-11-17 22:51:00 +0900 Seungha Yang + + * docs/plugins/gst_plugins_cache.json: + docs: Update doc cache for Windows specific plugins + Updating doc cache for d3d11, mediafoundation and wasapi2 plugins + Part-of: + +2021-11-18 00:16:41 +0900 Seungha Yang + + * sys/wasapi2/gstwasapi2sink.c: + wasapi2: Fix typo in doc + Part-of: + +2021-11-17 22:46:17 +0900 Seungha Yang + + * sys/mediafoundation/gstmfh264enc.cpp: + * sys/mediafoundation/gstmfh265enc.cpp: + * sys/mediafoundation/gstmfvideoenc.cpp: + * sys/mediafoundation/gstmfvp9enc.cpp: + * sys/mediafoundation/plugin.c: + mediafoundation: Skip doc for non-default encoder elements + Part-of: + +2021-10-21 19:41:15 +0900 Seungha Yang + + * sys/d3d11/gstd3d11av1dec.cpp: + * sys/d3d11/gstd3d11deinterlace.cpp: + * sys/d3d11/gstd3d11h264dec.cpp: + * sys/d3d11/gstd3d11h265dec.cpp: + * sys/d3d11/gstd3d11mpeg2dec.cpp: + * sys/d3d11/gstd3d11vp8dec.cpp: + * sys/d3d11/gstd3d11vp9dec.cpp: + * sys/d3d11/plugin.cpp: + d3d11: Stop doc for non-default decoder and deinterlacer elements + Just skip doc for non-default decoder/deinterlacer elements + since there are multiple element in case that system has + multiple GPUs. + Part-of: + +2021-11-19 13:27:54 +0900 Wonchul Lee + + * sys/d3d11/gstd3d11window_win32.cpp: + d3d11: Fix deadlock while doing unprepare + ShowWindow() could be blocked while doing gst_d3d11_window_win32_unprepare + when external window handle provided to d3d11videosink in multi-threaded + environment. + The condition that issue happened is, UI thread is waiting for a + background thread that changes d3d11videosink state to NULL, and the + background thread would try to send a window message to the queue. + The queue is already occupied by the UI thread, so the background + thread will be blocked. + Part-of: + +2021-11-16 12:56:38 +0000 Philippe Normand + + * ext/wpe/gstwpevideosrc.cpp: + wpevideosrc: Fix frame stuttering in GL rendering path + Make sure the EGLImage we're rendering to the GL memory stays alive long enough, + until the the GL memory has been destroyed. + This change fixes tearing and black flashes artefacts that were happening + because the EGLImage was sometimes destroyed before the sink actually rendered + the associated texture. + Fixes #889 + Part-of: + +2021-11-16 12:53:35 +0000 Philippe Normand + + * ext/wpe/gstwpevideosrc.cpp: + wpevideosrc: Run through gst-indent + Part-of: + +2021-11-11 19:11:25 +0000 Tim-Philipp Müller + + * ext/rsvg/gstrsvgoverlay.c: + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + docs: fix unnecessary ampersand, < and > escaping in code blocks + Part-of: + +2020-11-05 10:23:13 +0100 Timo Wischer + + * ext/avtp/gstavtpcrfbase.c: + avtp: crf: Process also local CRF streams + Without this patch locally generated CRF streams will be ignored. + Therefore the same network interface could not be CRF talker and + CRF listener. + Part-of: + +2021-11-09 15:10:21 +0100 Jean Felder + + * gst/id3tag/id3tag.c: + id3tag: Map GST_TAG_MUSICBRAINZ_RELEASETRACKID + Part-of: + +2021-11-09 15:04:59 +0100 Jean Felder + + * gst/id3tag/id3tag.c: + id3tag: Map GST_TAG_MUSICBRAINZ_RELEASEGROUPID + Part-of: + +2021-11-09 15:04:00 +0100 Jean Felder + + * gst/id3tag/id3tag.c: + id3tag: Remove trailing whitespace + Part-of: + +2021-10-06 15:54:09 +0200 Timo Wischer + + * ext/avtp/gstavtpsrc.c: + avtpsrc: Use correct size for provided buffers + Without this patch the following pipeline would send packets containing + garbage in the data section. + $ gst-launch-1.0 avtpsrc ! avtpsink + Part-of: + +2020-10-15 14:49:58 +0200 Timo Wischer + + * ext/avtp/gstavtpcrfsync.c: + avtp: crfsync: Warn when CRF package not yet received + Part-of: + +2021-03-03 10:08:57 +0100 Timo Wischer + + * tests/check/elements/avtpcrfbase.c: + test: avtp: crf: Check for rounding errors + on average period calculation. + Part-of: + +2020-11-11 16:50:28 +0100 Timo Wischer + + * ext/avtp/gstavtpcrfbase.c: + * ext/avtp/gstavtpcrfbase.h: + * tests/check/elements/avtpcrfbase.c: + avtp: crf: Use double for average period calculation + to also support CRF intervals like every 1,333,333ns 64 events + Part-of: + +2021-01-12 10:03:32 +0100 Timo Wischer + + * tests/check/elements/avtpcrfbase.c: + tests: avtp: crf: Test for timestamp_interval > 1 + in case of CRF AVTPDUs with single CRF timestamp. + Part-of: + +2020-09-16 17:12:32 +0200 Timo Wischer + + * ext/avtp/gstavtpcrfbase.c: + * ext/avtp/gstavtpcrfbase.h: + avtp: crf: Properly handling one timestamp per PDU + The average_period should always represent the time between two + events. The specification defines the event time as the time + between audio samples, video frame sync, video line sync, etc. + In case of one timestamp per PDU the timestamp_interval identifies + the amount of events between the timestamp of one PDU and the + timestamp of the next PDU. + As described in IEEE 1722-2016 chapter + "10.4.12 timestamp_interval field" timestamp_interval shall be + nonzero. + Part-of: + +2021-11-08 20:18:51 +0100 Thomas Klausner + + * sys/shm/meson.build: + shm: NetBSD build fix + shm_unlink() and friends live in librt on NetBSD. Adapt build system. + Part-of: + +2021-05-21 16:56:33 -0300 Martin Reboredo + + * ext/aom/gstav1enc.c: + aom: Set fixed_qp_offsets to a deactivated value + aom only uses fixed_qp_offsets with the + Constant Quality (Q) Rate Control mode, + previously this was locking any usage + with another Rate Control mode. + Part-of: + +2021-11-05 13:12:14 +0100 Antonio Ospite + + * sys/magicleap/meson.build: + magicleap: update lumin_rt libraries names to the latest official version + Part-of: + +2021-10-05 01:07:57 +0800 He Junyan + + * gst-libs/gst/codecs/gsth264decoder.c: + codecs: h264dec: Calculate the latency by its bump mode. + The current latency calculation just uses the num_reorder_frames, + which is not very precise. We should consider the bump mode of the + DPB, the faster it bumps, the lower latency we will have. + Part-of: + +2021-11-04 19:06:22 +0000 Thibault Saunier + + * docs/plugins/gst_plugins_cache.json: + * sys/nvcodec/gstcudabasefilter.c: + * sys/nvcodec/gstcudabasetransform.c: + * sys/nvcodec/gstcudaconvert.c: + * sys/nvcodec/gstcudadownload.c: + * sys/nvcodec/gstcudascale.c: + * sys/nvcodec/gstcudaupload.c: + * sys/nvcodec/gstnvdec.c: + doc: Update nvdec documentation + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/870 + Part-of: + +2021-11-03 17:09:52 +0900 Seungha Yang + + * gst/videoparsers/gsth264parse.c: + * gst/videoparsers/gsth264parse.h: + h264parse: Don't insert extra AUD if exists in bitstream already + AUD nalu in packetized format is completely valid and therefore we should not + assume that we should insert AUD for packetized -> bytestream + conversion. + Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/862 + Part-of: + +2021-11-03 20:36:09 +0900 Seungha Yang + + * tests/check/elements/h264parse.c: + tests: h264parse: Add test for AUD insertion + Part-of: + +2021-11-04 16:36:05 +0900 Seungha Yang + + * sys/wasapi2/gstwasapi2ringbuffer.cpp: + wasapi2ringbuffer: Fix client object leak + Check whether ringbuffer is holding client object already since + open_device() may be called multiple times + Part-of: + +2021-11-04 12:48:28 +0200 Sebastian Dröge + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Clear errors from finding codec preferences before the next iteration + The media is just skipped and the error is not propagated to the caller, + so keeping it around here would cause assertions a bit later when trying + to set a new error over the old one. + Part-of: + +2021-11-04 12:45:34 +0200 Sebastian Dröge + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Move addition of attributes to the caps after making sure they're not empty or any + Part-of: + +2021-11-02 11:21:34 +0200 Sebastian Dröge + + * ext/webrtc/gstwebrtcbin.c: + webrtcbin: Don't require fixed caps when querying caps for a transceiver pad to match it with a media + Upstream caps might for example be + application/x-rtp,media=audio,encoding-name={OPUS, X-GST-OPUS-DRAFT-SPITTKA-00, multiopus} + and while that is not fixed caps it is enough to match it with a media. + Only caps structures that have the correct structure name and that have + the media and encoding-name field are preserved, but if both are present + then these caps are used as "codec preferences". + Part-of: + +2021-11-03 18:44:03 +0000 Tim-Philipp Müller + + * meson.build: + Back to development + === release 1.19.3 === 2021-11-03 15:43:36 +0000 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gst-plugins-bad.doap: