Sebastian Dröge [Tue, 31 Dec 2024 08:50:58 +0000 (10:50 +0200)]
pad: Reset not-linked last flow return on reconfigure events
The pad might actually be linked now and we'd only find out by actually pushing
a buffer downstream again.
The last flow return is used by GstFlowCombiner to detect if all pads are not
linked, and not resetting this when re-linking creates a race condition when
switching between pads where all pads are temporarily considered not linked.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3836
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8224>
Jochen Henneberg [Thu, 2 Jan 2025 11:24:03 +0000 (12:24 +0100)]
qtdemux: Undef helper macros after use
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8127>
Jochen Henneberg [Wed, 18 Dec 2024 07:44:30 +0000 (08:44 +0100)]
qtdemux: Validate matrix before doing simplified multiply
The matrix multiplication makes some assumption about the element
values to simplify the math with fixpoint values. If this is allowed
for the given matrices is now checked first.
Then the debug output for matrix and a comment have been fixed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8127>
Jochen Henneberg [Tue, 17 Dec 2024 09:48:45 +0000 (10:48 +0100)]
qtdemux: Fixup for orientation matrix parsing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8127>
Jochen Henneberg [Tue, 10 Dec 2024 20:34:48 +0000 (21:34 +0100)]
qtdemux: Use mvhd transform matrix and support for flipping
The mvhd matrix is now combined with the tkhd matrix. The combined
matrix is then checked if it matches one of the standard values for
GST_TAG_IMAGE_ORIENTATION.
This check now includes matrices with flipping.
Fixes #4064
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8127>
Sebastian Dröge [Fri, 27 Dec 2024 12:27:54 +0000 (14:27 +0200)]
decodebin3: Free main input even if it is not part of the list of inputs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8216>
Seungha Yang [Tue, 31 Dec 2024 15:43:41 +0000 (00:43 +0900)]
d3d12screencapturesrc: Add support for HDR capture in DDA mode
Use IDXGIOutput5::DuplicateOutput1() if HDR is enabled.
Note that scRGB color space is not defined in GStreamer,
this element will output SDR tonemapped frame
with linear or reinhard filtering.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3834
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8227>
Seungha Yang [Wed, 1 Jan 2025 13:15:58 +0000 (22:15 +0900)]
d3dshader: Add sampling pixel shader for scRGB SRV
Shaders required for HDR capturing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8227>
Albert Sjolund [Fri, 22 Nov 2024 11:46:22 +0000 (12:46 +0100)]
webrtc: add new post-rtp-aux-sender signal
Adds a new signal to webrtcbin, to allow for placement
of an object after rtp, before sendbin. This is usable for
objects such as congestion control elements, that don't want
to be burdened by the synchronization requirements of rtpsession.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7940>
Albert Sjolund [Mon, 9 Dec 2024 13:26:03 +0000 (14:26 +0100)]
rtpsession: send twcc struct in both directions
As there are signals around rtpsession in both directions,
send twcc data both upstream and downstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7940>
Tim-Philipp Müller [Wed, 25 Dec 2024 15:22:23 +0000 (16:22 +0100)]
aacparse: add test to make sure output caps are set also on reuse
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/350
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8214>
Tim-Philipp Müller [Thu, 26 Dec 2024 00:33:37 +0000 (01:33 +0100)]
tsdemux: fix JPEG XS framerate handling for 29.97fps
.. and other framerate values with a 1.001 denominator.
The coded framerate denominator value is a code that maps to
either 1 (for 1) or 1.001 (for 2) not a direct value.
Before, 29.97fps would be announced as 15fps because it
would calculate 30/2 instead of 30/1.001.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8226>
Samuel Thibault [Mon, 30 Dec 2024 21:53:02 +0000 (22:53 +0100)]
meson: Also disable drm on GNU/Hurd
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8223>
Seungha Yang [Sat, 28 Dec 2024 13:29:23 +0000 (22:29 +0900)]
docs: Update qsv plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220>
Seungha Yang [Sat, 28 Dec 2024 13:26:48 +0000 (22:26 +0900)]
docs: Update d3d11 plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220>
Seungha Yang [Sat, 28 Dec 2024 12:43:46 +0000 (21:43 +0900)]
docs: Update d3d12 plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220>
Seungha Yang [Sat, 28 Dec 2024 12:35:44 +0000 (21:35 +0900)]
d3d12: Add "Since" markers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220>
Seungha Yang [Sat, 28 Dec 2024 12:06:24 +0000 (21:06 +0900)]
docs: Add asio plugin docs
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3745
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220>
Seungha Yang [Sat, 28 Dec 2024 11:42:56 +0000 (20:42 +0900)]
asio: Add "Since" markers and fix typos in property description
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220>
Seungha Yang [Sat, 28 Dec 2024 11:38:13 +0000 (20:38 +0900)]
docs: Add webview2 plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220>
Sebastian Dröge [Sat, 28 Dec 2024 11:26:18 +0000 (13:26 +0200)]
play: Fix stream id leaks on initial stream selection
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7650>
Sebastian Dröge [Fri, 27 Dec 2024 17:01:21 +0000 (19:01 +0200)]
play: Actually check for valgrind for the tests
Other tests in gst-plugins-bad also assumed it to be checked.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7650>
Sebastian Dröge [Fri, 27 Dec 2024 11:31:09 +0000 (13:31 +0200)]
play: Fix tests after the switch to playbin3
And also fix various memory leaks and other issues that always existed
in the tests.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7650>
Sebastian Dröge [Thu, 10 Oct 2024 19:54:04 +0000 (15:54 -0400)]
play: Port tests to libsoup 3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7650>
Sebastian Dröge [Thu, 10 Oct 2024 19:08:33 +0000 (15:08 -0400)]
play: Add stream-id based selection of streams to match better playbin3's API
As part of this
- Add accessors for the stream ID and selection API based on the
stream ID
- Deprecate the old index-based APIs
- Remove playbin support
- Implement the track enable API based on stream selection
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7648>
Thibault Saunier [Wed, 18 Dec 2024 14:43:16 +0000 (11:43 -0300)]
videoflip: Add support for Y444_16XX
Necessary code already existed, it was just a matter of advertising it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8177>
Tim-Philipp Müller [Mon, 23 Dec 2024 14:17:57 +0000 (15:17 +0100)]
srtpdec: fix build when libsrtp1 is being used
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8204>
Philippe Normand [Mon, 23 Dec 2024 13:58:31 +0000 (14:58 +0100)]
wpe: Fix build for version 2.44
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8203>
Philippe Normand [Mon, 23 Dec 2024 08:49:51 +0000 (09:49 +0100)]
videodecoder: Gracefully handle missing data without prior input segment
Exit early in case the decoder has been resetted and hasn't received a new
segment event yet.
This was detected with netsim dropping buffers in a WebRTC pipeline.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8200>
Philippe Normand [Sun, 22 Dec 2024 14:00:07 +0000 (15:00 +0100)]
srtpdec: Fix a use-after-free buffer issue
The gst_srtp_dec_decode_buffer() function modifies the input buffer after making
it writable, so the pointer might change as well, depending on the refcount of
the buffer.
This issue was detected using a netsim element upstream of the decoder in a
WebRTC pipeline.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8198>
Robert Mader [Sat, 21 Dec 2024 13:39:58 +0000 (14:39 +0100)]
v4l2: object: Add P010 format
For 10bit content. Tested with HEVC on a Pixel3a (qcom).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8194>
Sebastian Dröge [Mon, 16 Dec 2024 09:41:40 +0000 (11:41 +0200)]
baseparse: Add bitrate tags to empty taglists too
It's unclear why empty taglists should be handled in a special way. If the
subclass or upstream did not provide any tags at all then we can still provide
bitrate tags at least.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8157>
Hosang Lee [Mon, 10 Aug 2020 05:27:29 +0000 (14:27 +0900)]
mssdemux: Use gsturi structure to form fragment urls
We can use gst_uri_from_string_with_base () to join base url
and the fragment url path.
The previous method of forming base url in update_base_url(),
by looking for the string 'manifest' or 'Manifest' is insufficient.
A query may include these string in their paths and thus an invalid
base url string will be kept.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8193>
Sebastian Dröge [Thu, 19 Dec 2024 15:01:28 +0000 (17:01 +0200)]
splitmuxsrc: Post messages when a fragment is started
This allows the application to keep track which fragment is currently active.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8184>
Thibault Saunier [Wed, 18 Dec 2024 20:11:33 +0000 (17:11 -0300)]
meson: Give the same name for api_version in all modules
There were 2 version of it, apiversion and api_version, I chose the one
with most occurencies: `api_version`
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8178>
Thibault Saunier [Wed, 18 Dec 2024 16:18:32 +0000 (13:18 -0300)]
doc: Handle gst_dep.get_variable('libexecdir') failure
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8178>
Thibault Saunier [Wed, 18 Dec 2024 15:27:30 +0000 (12:27 -0300)]
doc: Allow updating the plugins cache for all modules even if hotdoc is not present
This was possible for some modules but not all, for no good reason.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8178>
Robert Mader [Fri, 20 Dec 2024 11:52:31 +0000 (12:52 +0100)]
v4l2codecs: decoder: Fix drm format query
A late change that slipped through as it mainly affects NC12
at the moment.
Fixes: 4b07d54931 ("v4l2codecs: decoder: Translate V4L2 formats into DRM fourcc/mod pairs")
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8188>
Edward Hervey [Tue, 18 Apr 2023 09:37:25 +0000 (11:37 +0200)]
mpegts: Add provisional AV1 mapping
The main difference with the WIP av1-in-mpegts mapping is that the payload data
is not startcode-escaped. Most of the rest is sensible usage of it:
* Custom AV1G (AV1 Gstreamer) registration descriptor instead of AV01
* AV1CodecConfigurationRecord is stored in the same 0x80 custom descriptor and
conforms fully to the isobmff spec (i.e. does not the HDR fields from the
provisional mpegts specification which conflict with that one).
* Data is stored as OBU
* Access Unit is the frame level (same as provisional mpegts mapping)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4442>
Edward Hervey [Tue, 18 Apr 2023 09:34:54 +0000 (11:34 +0200)]
pbutils: New AV1 caps utility functions
Makes it easy to convert between caps and codec_data
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4442>
Stéphane Cerveau [Mon, 18 Nov 2024 11:31:21 +0000 (12:31 +0100)]
dash: handle 0 duration in gst_xml_helper_set_prop_duration
Add dash_mpdparser_check_mpd_client_set_period_to_0
unit test to demonstrate it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8114>
Edward Hervey [Mon, 16 Dec 2024 15:36:06 +0000 (16:36 +0100)]
urisourcebin: Avoid deadlock on shutdown
The reason why the STATE lock was taken was to avoid issues where we would be
adding (and activating) elements at the same time as urisourcebin would be
brought down to READY. That would cause those new elements to potentially return
ERRORS because of not-negotiated/flushing-pads
But that creates a really bad deadlock (state lock is taken to deactivate the
streaming thread which .. is currently grabbing the state lock).
Instead, we can just ignore the warning/error messages that might occur when
shutting down.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4075
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8162>
Nicolas Dufresne [Mon, 2 Dec 2024 16:39:11 +0000 (11:39 -0500)]
av1parse: Fix some debug trace and comment typo
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8026>
Nicolas Dufresne [Mon, 2 Dec 2024 16:32:13 +0000 (11:32 -0500)]
av1parse: Don't immediatly reset timestamp in presence of TD
When a TD is being processed, it is not always pushed immediatly. Resetting
the time information lead to lost of timestamp in TU to Frame conversion. The
TU would be formed by buffer of [TD][Frame], and the timestamp taken from
the TU buffer was lost then the TD was handled.
The handling of TS should be entirely done by the 3 functions:
- gst_av1_parse_handle_obu_to_obu() (direct input to output)
- gst_av1_parse_handle_to_big_align() Reset DTS on detected TU or TD
- gst_av1_parse_handle_to_small_and_equal_align() PTS on show frame, flat DTS
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/79312357a6ab8ebc4cfc1ed2243bdbc0660c39d5
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8026>
He Junyan [Fri, 20 Dec 2024 00:18:15 +0000 (08:18 +0800)]
av1parse: Fix a typo in the comments about its usage
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5710>
He Junyan [Wed, 4 Dec 2024 15:27:37 +0000 (23:27 +0800)]
Doc: Update the plugin document for h266parse
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5710>
He Junyan [Thu, 12 Dec 2024 16:00:01 +0000 (00:00 +0800)]
test: Add the h266parse element test
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5710>
He Junyan [Fri, 8 Sep 2023 17:10:18 +0000 (01:10 +0800)]
h266parse: Add the new h266parse element
TODO: Need to refer to the new ISO/IEC 14496-15 for vvc1 and vvi1's
codec data
Co-authored-by: Zhong Hongcheng <spartazhc@gmail.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5710>
He Junyan [Mon, 16 Dec 2024 16:12:51 +0000 (00:12 +0800)]
libs: codecparsers: Add the missing ilrp_idx field in H266's ref list
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5710>
He Junyan [Mon, 16 Dec 2024 16:15:07 +0000 (00:15 +0800)]
libs: codecparsers: H266 GstH266RefPicListStruct's abs_delta_poc_st should be 16 bits
Its value range is 0~(2^15 − 1) according to the spec.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5710>
Sebastian Dröge [Mon, 16 Dec 2024 09:39:10 +0000 (11:39 +0200)]
vp9parse: Add video codec tag to the tag list
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8156>
Sebastian Dröge [Mon, 16 Dec 2024 09:38:52 +0000 (11:38 +0200)]
av1parse: Add video codec tag to the tag list
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8156>
Robert Mader [Fri, 8 Nov 2024 11:38:09 +0000 (12:38 +0100)]
v4l2codecs: format: Add V4L2_PIX_FMT_NC12
Which is used by the Raspberry Pi 4 and 5 for 8-bit HEVC. Adding it
here in order to show-case how the V4L2<->DRM translation is
supposed to work.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7355>
Robert Mader [Wed, 14 Aug 2024 00:11:06 +0000 (02:11 +0200)]
v4l2codecs: decoder: Translate V4L2 formats into DRM fourcc/mod pairs
V4L2 and DRM choose different, incompatible ways to represent
tiled/compressed etc. formats. While the later uses combinations of
format fourccs and opaque, vendor/hardware specific modifiers, for the
later every such combination is a distinct new format.
Traditionally Gst implemented each of the V4L2 formats if needed.
Given the large number of tiling and compression modes, this is
quite work intensive - and often actually not needed.
In many situations Gst just needs to pass buffers from V4L2 to DRM in
the form of EGL, VK, Wayland or KMS.
Thus implement a direct translation for some V4L2 formats to DRM ones,
limited to the DMA_DRM API, allowing much quicker enablement of formats
while requiring peers to use external implementations (usually Mesa or
KMS) for tiling etc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7355>
Stéphane Cerveau [Thu, 12 Dec 2024 13:41:08 +0000 (14:41 +0100)]
vkencoder: init debug category earlier
The encoder has not been created if the codec is not supported by
the hardware, so the GST_WARNING_OBJECT will fail to find a suitable
category.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8138>
Stéphane Cerveau [Thu, 12 Dec 2024 13:40:55 +0000 (14:40 +0100)]
vkdecoder: init debug category earlier
The decoder has not been created if the codec is not supported by
the hardware, so the GST_WARNING_OBJECT will fail to find a suitable
category.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8138>
Tim-Philipp Müller [Mon, 16 Dec 2024 19:01:15 +0000 (19:01 +0000)]
svtjpegxsdec: handle decode errors more gracefully
Use GST_VIDEO_DECODER_ERROR instead of just erroring out
unconditionally, so that the error handling behaviour is
determined by the "max-errors" property and we'll just
continue after decoding errors now instead of erroring out.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8163>
Carlos Falgueras García [Wed, 18 Dec 2024 14:15:22 +0000 (15:15 +0100)]
rtph26xpay: Fix the default framerate
Use 0/1 instead of 0/0 as the default framerate for rtph26{4,5}pay.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8176>
Matthew Waters [Mon, 16 Dec 2024 06:32:20 +0000 (17:32 +1100)]
cuda/context: add gpu stack size property
Allows reducing the initial stack size of GPU threads. Cuda should
automatically increase this value if a kernel requires a larger stack.
Can save roughly 40MB of GPU memory for a single nvh264enc instance.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8158>
Matthew Waters [Mon, 16 Dec 2024 06:31:17 +0000 (17:31 +1100)]
cuda: add CuGet/SetCtxLimit()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8158>
Nicolas Dufresne [Wed, 18 Dec 2024 21:21:47 +0000 (16:21 -0500)]
doc: v4l2: Update documentation cache for DMA_DRM
The template caps now exposes DMA_DRM formats.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633>
Nicolas Dufresne [Wed, 18 Dec 2024 20:30:24 +0000 (15:30 -0500)]
v4l2: object: Adjust DMABuf negotiation base on io-mode
If the io-mode is forced by user to MMAP, USERPTR or RW, don't try and
negotiated DMABuf caps feature. This would otherwise fail later.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633>
Nicolas Dufresne [Wed, 18 Dec 2024 20:13:17 +0000 (15:13 -0500)]
v4l2: pool: Adjust pool behaviour when DMA_DRM is used
We disable the copy threshold and always add GstVideoMeta.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633>
Nicolas Dufresne [Thu, 22 Aug 2024 20:08:03 +0000 (16:08 -0400)]
v4l2: Add support for setting memory:DMABuf caps
This is the final step to allow negotiation of this caps features. Limiting the
features based on the io-mode shall come next.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633>
Nicolas Dufresne [Tue, 20 Aug 2024 19:20:02 +0000 (15:20 -0400)]
v4l2: object: Implement probing memory:DMABuf caps feature
This is the caps obtained trough caps query. We now have both system and
DMAbuf varaint, while maintaining support for meta:Interlaced feature.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633>
Nicolas Dufresne [Thu, 15 Aug 2024 18:28:51 +0000 (14:28 -0400)]
v4l2: object: Add memory:DMABuf caps feature to template caps
In this patch, we introduce memory:DMABuf caps feature into V4L2
elements template caps. This is required to allow caps query,
allocation query and set_format to use it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633>
Nicolas Dufresne [Thu, 15 Aug 2024 13:54:26 +0000 (09:54 -0400)]
v4l2: Directly map V4L2 formats to DRM formats
As in the long term not all V4L2 formats will have a libgstvideo
implementation, add a dedicated DRM fourcc map. This will be used
to enable memory:DMABuf caps features.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633>
Nicolas Dufresne [Thu, 15 Aug 2024 13:53:06 +0000 (09:53 -0400)]
v4l2: Include a copy of drm_fourcc.h
This one has been imported from libdrm 2.4.122.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633>
Robert Mader [Tue, 10 Dec 2024 17:04:21 +0000 (18:04 +0100)]
glupload: Add DRM raw uploader
The goal is equivalent to adding DMA_DRM caps to the existing raw
uploader, but creating a new dedicated uploader allows separating the
logic more easily.
Test:
- use an AMD system
- modprobe visl
- gst-launch-1.0 filesrc location=some-1080p-content.mkv ! parsebin ! v4l2slh265dec ! glimagesink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8126>
Nicolas Dufresne [Wed, 18 Dec 2024 18:35:53 +0000 (13:35 -0500)]
va: display: Optimize out some property indirection
Because it was visible during some profiling, I thought it cost nothing
to optimize out the uneeded property get roundtrip.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8179>
Sebastian Dröge [Wed, 18 Dec 2024 10:21:15 +0000 (12:21 +0200)]
avcodecmap: Add some more channel position mappings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8173>
Guillaume Desmottes [Tue, 17 Dec 2024 16:36:19 +0000 (17:36 +0100)]
wpe: enable console message with WPE2
Looks like the WebKitConsoleMessage API is now available in WPE2 as well:
https://webkitgtk.org/reference/webkitgtk-web-process-extension/stable/signal.WebPage.console-message-sent.html
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8169>
Nicolas Dufresne [Tue, 17 Dec 2024 02:41:55 +0000 (21:41 -0500)]
va: h264dec: Allow "extended" profile decoding
Extended is identical to main but allows for FMO/ASO features to be
used, and prevent using CABAC. Using similar logic to "baseline",
assume that if we support main, we can also do extended.
This fixes the following fluster vectors, which otherwise would fail
when trying to link the parsebin pad.
- BA3_SVA_C
- MR6_BT_B
- MR7_BT_B
- MR8_BT_B
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8164>
Sebastian Dröge [Thu, 12 Dec 2024 08:50:30 +0000 (10:50 +0200)]
pad: Only remove TAG events on STREAM_START if the stream-id actually changes
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4097
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8135>
Emil Ljungdahl [Mon, 18 Nov 2024 06:54:55 +0000 (07:54 +0100)]
webrtcbin: Tear down src and sink bins before removing them from webrtc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7900>
Emil Ljungdahl [Fri, 15 Nov 2024 14:00:00 +0000 (15:00 +0100)]
webrtcbin: Fix potential deadlock on bin elements cleanup
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7900>
Nirbheek Chauhan [Tue, 10 Dec 2024 07:42:18 +0000 (13:12 +0530)]
vtenc: Fix authors of encoder features
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
Nirbheek Chauhan [Mon, 9 Dec 2024 18:35:53 +0000 (00:05 +0530)]
vtenc: Fix class hierarchy in an attempt to fix property docs
Also fix some convention-nits in the process.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
Nirbheek Chauhan [Mon, 9 Dec 2024 09:42:57 +0000 (15:12 +0530)]
vtenc, osxaudio: Fix missing since markers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
Nirbheek Chauhan [Mon, 9 Dec 2024 09:42:57 +0000 (15:12 +0530)]
vtenc: Mark rate-control enum as plugin API, and update cache
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
Nirbheek Chauhan [Mon, 9 Dec 2024 09:48:55 +0000 (15:18 +0530)]
atenc: Add missing since markers and mark plugin API
Also update the plugin docs cache.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
Nirbheek Chauhan [Mon, 9 Dec 2024 09:42:06 +0000 (15:12 +0530)]
avfvideosrc: Add missing since markers for screen-crop properties
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
Nirbheek Chauhan [Wed, 4 Dec 2024 19:02:37 +0000 (00:32 +0530)]
docs: Update macOS plugin docs again
Contains the following updates:
* New properties on avfvideosrc: screen-crop-*
* H265 and H265 Alpha support in vtdec and vtenc (VideoToolbox)
* ProRes support in vtenc
* New properties on vtenc elements: rate-control, data-rate-limits,
max-frame-delay
* New plugin atenc (AudioToolbox) with support for encoding AAC
* Plugin move: atdec moved from -bad to -good
* New property on osxaudio elements: unique-id
* OS X -> macOS
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
Nirbheek Chauhan [Wed, 4 Dec 2024 18:36:58 +0000 (00:06 +0530)]
meson: Skip the plugins_doc_caches target if docs are disabled
This is a follow-up to
95eca6d91912620a8a36b55ae32f72a32bc2475b, due
to which the target existed, but was a no-op, and it was difficult to
notice why the plugin caches are not being generated, since the doc
option is disabled by default.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
Mathieu Duponchelle [Fri, 6 Dec 2024 18:13:50 +0000 (19:13 +0100)]
cccombiner: expose new input-meta-processing type, force
In force mode, generated captions are discarded even if input video
buffers do not hold CC meta.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8091>
Nirbheek Chauhan [Mon, 2 Dec 2024 11:42:00 +0000 (17:12 +0530)]
meson: Improve NVMM CUDA detection
1. Add some comments explaining what headers and libs are expected on
what systems
2. Only look in default incdirs if no incdir is specified
3. Require libnvbufsurface.so on Jetson when cuda-nvmm=enabled
4. Require libatomic on Jetson when cuda-nvmm=enabled
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8021>
Sebastian Dröge [Tue, 9 Jul 2024 08:42:03 +0000 (11:42 +0300)]
info: Use an RW lock to protect the log functions and their list
Previously the code tried to be thread-safe by only locking when modifying the
list and leaking the old list, but this was not sufficient. When removing a log
function, its user_data would be freed but this log function and its user_data
might afterwards still be used during logging which then could lead to memory
corruption.
To avoid that, use an RW lock: get a write lock whenever modifying the list and
get a read lock whenever only using the list of log functions for logging.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3660
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7151>
Seungha Yang [Sun, 15 Dec 2024 15:22:47 +0000 (00:22 +0900)]
d3d12: Suppress misleading leak report
Set may-be-leaked flag to child objects if needed,
since the parent object holding refcount of the child
will be leaked intentionally
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8152>
Thibault Saunier [Fri, 13 Dec 2024 12:17:32 +0000 (09:17 -0300)]
ges-launcher: return early on 'project-loaded' signal on error
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4102
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8145>
Thibault Saunier [Fri, 13 Dec 2024 12:11:05 +0000 (09:11 -0300)]
ges: project: Add missing API guards
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8145>
Thibault Saunier [Fri, 13 Dec 2024 12:09:15 +0000 (09:09 -0300)]
ges: formatter: Keep a reference on the timelines
We will be using it in an async way so we need to keep our own
reference to it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8145>
Seungha Yang [Sun, 7 Apr 2024 10:23:52 +0000 (19:23 +0900)]
d3d12: Add d3d12deinterlace element
Adding D3D12 compute shader based deinterlace element
with YADIF filtering
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8140>
Seungha Yang [Wed, 9 Oct 2024 14:02:09 +0000 (10:02 -0400)]
d3dshader: Add YADIF deinterlacing compute shader code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8140>
Max Romanov [Fri, 13 Dec 2024 12:51:20 +0000 (15:51 +0300)]
appsrc: Decrease log level for item drop
Leaky appsrc feature was implemented similar to queue. Dropping item
is a normal case because it is configured so. Warning messages
is too severe for this event.
Level changed to DEBUG just like in queue.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8147>
Thibault Saunier [Fri, 13 Dec 2024 13:14:32 +0000 (10:14 -0300)]
ges-meta-container: Fix the GET_INTERFACE macro
It had a synthax issue
Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/141
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8146>
Dean Zhang (张安迪) [Fri, 13 Dec 2024 02:07:58 +0000 (10:07 +0800)]
videodecoder: set decode only flag by decode only buffer
This is used for optimize frame drop issue. Some video streams such as av1
contains decode-only frames. These frames are handled by decoder but not show
by display, which will cause input frame count unmatch the output frame count.
After collecting more decoder only frame, it will cause error report "so many
frame droped". So attach the flag GST_BUFFER_FLAG_DECODE_ONLY with the input
buffer, the v4l2videodecoder can further handle the decode-only buffer in
output list.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8142>
Edward Hervey [Thu, 12 Dec 2024 04:51:09 +0000 (05:51 +0100)]
urisourcebin: Only rewrite stream-start event once
If the custom field is already present, we don't want to rewrite the event
again. Otherwise it would cause downstream into believing that a *new*
stream-start event has arrived ... which isn't the case.
Fixes #4097
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8132>
Guillaume Desmottes [Thu, 12 Dec 2024 09:43:26 +0000 (10:43 +0100)]
gl: raise WARNING instead of ERROR when no connector is connected
This is a valid and working use case when rendering on a headless
server.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8136>
Matthew Waters [Thu, 12 Dec 2024 01:05:04 +0000 (12:05 +1100)]
rtppassthroughpay: ensure buffer is writable before mapping writable
It is entirely possible that the incoming buffer into _chain() is not writable
and will result in a critical when trying to map().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8131>
Oskar Fiedot [Wed, 11 Dec 2024 10:53:47 +0000 (11:53 +0100)]
analytics: add rotation to object detection mtd
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7938>