Commit graph

1853 commits

Author SHA1 Message Date
Alexander Slobodeniuk
1eaf9b867e avfassetsrc: fix mutex leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8479>
2025-02-14 12:55:27 +00:00
Alexander Slobodeniuk
c3fdd1ea3a avfassetsrc: fix missing GObject dispose chainup
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8479>
2025-02-14 12:55:27 +00:00
Alexander Slobodeniuk
80b99f08dd applemedia: fix chaining up GObject's constructed virtual method
Fixes #4224

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8446>
2025-02-14 10:33:31 +00:00
James Oliver
bd37947254 nvcodec: fix invalidated std::set::iterator usage
As per the C++ standard, any usage of a std::set::iterator after it has
been erased from the collection results in undefined behaviour. This has
resulted in application crashes due to CUDA illegal address errors.

This commit fixes the issue by copying and incrementing the iterator
within any for-loops that also invoke std::set::erase.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8472>
2025-02-13 15:18:10 +00:00
Alexander Slobodeniuk
ae47dd2529 d3d11: fix chaining up GObject's constructed virtual method
Fixes #4223

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8448>
2025-02-13 14:32:14 +00:00
Alexander Slobodeniuk
b737bde9f6 wasapi: fix chaining up GObject's constructed virtual method
Fixes #4223

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8448>
2025-02-13 14:32:14 +00:00
Alexander Slobodeniuk
df4c2f18bd asio: fix chaining up GObject's constructed virtual method
Fixes #4223

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8448>
2025-02-13 14:32:14 +00:00
Seungha Yang
39f4b1ee4d d3d12: Update root signature flags for old Windows10
Use root signature flags which are part of initial Direct3D12 release.
Old OS does not understand newly introduced flags

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8469>
2025-02-13 13:39:11 +00:00
Alexander Slobodeniuk
a2059c1bb3 dshowdeviceprovider: fix missing GObject vtable chainups
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8452>
2025-02-11 22:49:06 +01:00
Seungha Yang
967ab2dc50 d3d12screencapturesrc: Fix infinite negotiation on resolution change
Updates crop rect if previous capture got error. The error might
result from resolution change.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8444>
2025-02-11 00:34:00 +00:00
Seungha Yang
1902b5ca1b d3d12screencapturesrc: Fix capturing rotated monitor
Acquired and reconstructed frames will have different resolution
if monitor is rotated. Use the copying logic of d3d11 implementation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8444>
2025-02-11 00:34:00 +00:00
Alexander Slobodeniuk
986d651fba kms: fix chaining up GObject's constructed virtual method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>
2025-02-10 17:49:29 +00:00
Benjamin Gaignard
7fb19b37d8 v4l2codecs: av1: Allow inter-frames resolution change
When the stream resolution change it is needed to negotiate
a new pools and to update the caps.
Resolution change could occurs on a new sequence or a new
picture so move resolution change detection code in a common
function.
Only call streamoff if the resolution occur while decoding a key frame.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8064>
2025-02-10 13:36:57 +00:00
Cheung Yik Pang
5e086ea3f5 va: Add VP8 alpha decode bin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8180>
2025-02-08 22:43:00 +00:00
Cheung Yik Pang
59104fb3a3 va: Add VP9 alpha decode bin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8180>
2025-02-08 22:43:00 +00:00
Cheung Yik Pang
fd22a9c090 va: Add codec alpha decode bin base class
A VA-API decoder bin base class for codecs with alpha channel support.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8180>
2025-02-08 22:43:00 +00:00
Nicolas Dufresne
8d1060f205 v4l2codecs: Add NV12_10LE40 / NV15 support
NV15 is common format on RK platform and is that only uncompressed 10bit
format the display controller on RK3588 supports.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8426>
2025-02-07 22:17:17 +00:00
Nicolas Dufresne
6fe6811eb7 docs: v4l2codecs: Add plugin index documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
bb37ea168d doc: v4l2codecs: Document all decoders
Add the documentation blob and since marker for all decoders.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
3645f050af v4l2codecs: Remove uneeded per-codec abstract class
That subclass was not needed and was causing issues wit doc generation.
The only down side of removing it is that the decoder cast macro is no
longer type safe.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
2197627336 v4l2codecs: Add Hardware class to alpha decoders
This was accidently omitted, this is needed wen filterting hardware
codecs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
3b9fc2a29e v4l2codecs: Cleanup alpha decodebin class header
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
d13a414ddc v4l2codecs: Don't needlessly expose decoder types
We have explicit register functions and have no use for these types in
other components.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
76b36f1493 v4l2codecs: Use pragma once
This is a nice cleanup and removes comment referring to D3D notably.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
5e6411e2f6 v4l2codecs: Enable AV1 kernel version check
The uAPI finally got merged into 6.5.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
18f3ea41c0 v4l2codecs: Add a doc generation mode
This is enabled through an env, it allow exposing all elements without
the needed driver supports. This is useful to fill the documentation cache.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Seungha Yang
fbf698cc0b mediafoundation: Enable MinGW build
Update MinGW toolchain in cerbero can support MediaFoundation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8406>
2025-02-05 16:03:10 +00:00
Seungha Yang
7108147d78 mediafoundation: Use DEFINE_GUID instead of DECLSPEC_UUID
MinGW will not define IID for custom COM object

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8406>
2025-02-05 16:03:10 +00:00
Seungha Yang
f57162deeb mediafoundation: Fix GUID_NULL related MinGW build error
Include cguid.h for GUID_NULL

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8406>
2025-02-05 16:03:10 +00:00
Seungha Yang
66b92465cd mediafoundation: Fix various GCC warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8406>
2025-02-05 16:03:10 +00:00
He Junyan
e25ca874e1 va: Implement the VA h266 decoder
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5865>
2025-02-05 18:57:06 +08:00
Seungha Yang
bf98e200b2 mfdevice: Unregister device notification callback on stop
... as intended

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8405>
2025-02-03 22:34:27 +00:00
Seungha Yang
972da9cab9 mfvideoenc: Fix profile string check
profile_str is not std::string. Use strcmp instead

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8405>
2025-02-03 22:34:27 +00:00
Seungha Yang
73f8de3305 mfdevice: Fix memory leak
Release resources on dispose() as intended

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8405>
2025-02-03 22:34:27 +00:00
Seungha Yang
91def8d4ad meson: Check d3d12video header for MinGW build
Old MinGW toolchain does not ship the header

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8400>
2025-02-03 21:24:47 +00:00
Nicolas Dufresne
d327b576fd v4l2codecs: format: Fix tiled stride with modifiers
After a bit of back and forth, we figure-out that for backward
compatibility we need to set the tile stride the way GStreamer
defines it. Sinks such as glimagesink/waylandsink translate it
back to the number of bytes representation used by Linux.

The change in !7355 when the other way around, breaking tiled
playback through waylandsink and glimagesink.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7892>
2025-01-29 17:20:33 +00:00
Andoni Morales Alastruey
432ada66f2 vtdec: fix seeks hangs due to a race condition draining
If the drain function of the decoder triggered by FLUSH_START
is run while the output loop is running, once the output loop
finished vtdec->downstream_ret will be GST_FLOW_FLUSHING instead
of GST_FLOW_OK, which must not be treated as an error since
the queue is cleaned correctly as well.

Fix #4179

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8328>
2025-01-24 17:36:17 +00:00
Matthew Waters
0b92e04142 cudacompositor: pass correct variable to debug log functions
Fixes spew of:

gst_debug_log_full_valist: assertion 'id != NULL ||
    object == NULL || G_IS_OBJECT (object)' failed

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8345>
2025-01-23 17:18:46 +00:00
Seungha Yang
dc81abe9ee cudacompositor: Fix memory leak
gst_cuda_compositor_upload_frame() returns buffers with increased
refcount already

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8335>
2025-01-22 11:42:00 +00:00
Seungha Yang
d9510be7b1 docs: Update nvcodec plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8325>
2025-01-20 19:31:36 +00:00
Seungha Yang
c01ef564d9 cudaipc: Use empty string for address property docs
Since Windows and Linux have different default values,
use empty string when generating plugin docs

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8325>
2025-01-20 19:31:36 +00:00
Seungha Yang
1f481fe1d5 nvcodec: Specify documentation caps
... since produced caps will be different depending on OS and GPU model.
Also adding Y444_16LE format to decoder's GL template caps

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8325>
2025-01-20 19:31:36 +00:00
Seungha Yang
289f63b6e7 nvcodec: Add cudacompositor element
Adding CUDA based compositor element

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8170>
2025-01-20 01:12:21 +09:00
Seungha Yang
875e137f4f cudaconverter: Add support for alpha blending
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8170>
2025-01-20 01:12:21 +09:00
Seungha Yang
d761196bb7 cudaconverter: Add support for configuration update
Allow updating various configuration values via property

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8170>
2025-01-20 01:12:21 +09:00
Seungha Yang
1fa51046d1 cudaconverter: Pass constant values as kernel argument
Make conversion kernel more flexible and reusable

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8170>
2025-01-20 01:12:20 +09:00
Sebastian Dröge
0476b9cd2c decklinkvideosink: Fix handling of caps framerate in auto mode
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8280>
2025-01-15 14:24:34 +00:00
Seungha Yang
561714a454 d3d12convert: Add max-mip-levels property
Add support for automatic mipmap generation depending on viewport size

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290>
2025-01-15 03:03:47 +09:00
Seungha Yang
caf6f36276 d3d12swapchainsink: Add max-mip-level property
Add support for automatic mipmap generation depending on viewport size

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290>
2025-01-15 03:03:42 +09:00
Seungha Yang
11d4b59b73 d3d12videosink: Add max-mip-level property
Add support for automatic mipmap generation depending on viewport size

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290>
2025-01-14 17:23:04 +00:00