Commit graph

1806 commits

Author SHA1 Message Date
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
Seungha Yang
b14448dd37 d3d12mipmapping: Add support for GRAY output
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290>
2025-01-14 17:23:04 +00:00
Seungha Yang
65c23885d4 d3d12mipmapping: Skip alpha sampling if possible
If input format has no alpha and output format has no alpha,
skip alpha sampling which can reduce the number of instruction slots

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290>
2025-01-14 17:23:04 +00:00
Seungha Yang
1e243d0960 d3d12: Move mipgen to libs
converter object will use mipgen object

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290>
2025-01-14 17:23:04 +00:00
Jordan Yelloz
806bdc7c4b decklink: Fixed caps-building for output devices
When iterating through output devices, video_input_caps was being
updated instead of video_output_caps.

As a result, video output devices were being created with an empty caps object
and `gst-device-monitor-1.0 Video/Sink` would produce no decklink devices.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8298>
2025-01-14 06:19:54 +00:00
Mathieu Duponchelle
3de86b2b97 docs: port plugins to explicit sources
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8273>
2025-01-13 19:17:13 +01:00
Xavier Claessens
f7ea1f84c9 magicleap: Drop MLSDK support
I was used by ML1 (first gen device) which is deprecated and not
supported anymore. ML2 uses standard Android JNI and NDK.

Note that mlaudiosink element remains in bad/sys/magiclea because it
allows 3d spatial audio and that API is still supported by Magicleap
SDK.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6108>
2025-01-13 14:40:18 +00:00
Edward Hervey
eef680b441 bad: Add extra warning flags
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
57196d634e winscreencap: Don't use aggregate returns
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
ca4df15d4c decklink: Ignore undef warnings in decklink API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
c79164a02e amf: Ignore undef warnings in external headers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
7b17c198d7 applemedia: Fix usage of HAVE_IOS define
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
72639bafb7 msdk: Ignore aggregate return warning
That's how their API is implemented

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
b4b140440f d3d11: Ignore undef issues with external headers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
67b5414c24 d3d12: Disable implicit fallthrough checks
There are some missing explicit fallthrough statements in the direct headers

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
21d81d25ec bad: Clearly specify fallthrough in switch/case
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:45 +00:00
Edward Hervey
0891a0e5eb wasapi: Use signed value for can_frames
The can retrieval function can return negative values (which will be properly handled)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8286>
2025-01-13 08:08:01 +00:00
Edward Hervey
aedb587616 amfcodec: Add missing break statement
Setting frame-sad would also set ltr

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8286>
2025-01-13 08:08:01 +00:00
Sebastian Dröge
10f870ac5c decklinkaudiosink: Don't crash if started without corresponding video sink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8253>
2025-01-12 18:48:36 +00:00
Seungha Yang
f7e70e5261 d3d12mipmapping: Add mip-levels property
Generating full levels would result in waste of GPU resource
depending on rendering usecase. Adding a property to make it
controllable

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8255>
2025-01-08 22:46:14 +00:00
Seungha Yang
ca82e717c6 d3d12mipmapping: Add YUV and 64bits output formats
Add support for YUV and 64bits output formats to avoid
colorspace conversion and bitdepth loss

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8255>
2025-01-08 22:46:13 +00:00
Seungha Yang
126d6f0815 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>
2025-01-02 06:55:33 +09:00
Seungha Yang
ca56fd285a d3d12: Add "Since" markers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220>
2024-12-29 14:24:55 +00:00
Seungha Yang
256005be13 asio: Add "Since" markers and fix typos in property description
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220>
2024-12-29 14:24:55 +00:00
Robert Mader
6c29395ea4 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>
2024-12-20 17:13:23 +00:00
Robert Mader
b275f63b13 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>
2024-12-19 20:55:59 +00:00
Robert Mader
4b07d54931 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>
2024-12-19 20:55:59 +00:00
Nicolas Dufresne
bebfbb6f69 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>
2024-12-17 21:51:10 +00:00
Nirbheek Chauhan
d09605a3ff vtenc: Fix authors of encoder features
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
2024-12-16 18:52:22 +00:00
Nirbheek Chauhan
07e538c043 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>
2024-12-16 18:52:21 +00:00
Nirbheek Chauhan
e881817567 vtenc, osxaudio: Fix missing since markers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
2024-12-16 18:52:21 +00:00
Nirbheek Chauhan
0c93eaec4f vtenc: Mark rate-control enum as plugin API, and update cache
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
2024-12-16 18:52:21 +00:00
Nirbheek Chauhan
21f221dad1 avfvideosrc: Add missing since markers for screen-crop properties
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
2024-12-16 18:52:20 +00:00
Seungha Yang
eac069b46d 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>
2024-12-14 12:09:23 +00:00
Armin Begovic
3fc5ee6298 decklink: Add missing video modes to gst_decklink_mode_get_type()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8110>
2024-12-10 10:26:01 +00:00
Armin Begovic
0703206749 decklink: Fix copy-paste errors regarding 8K modes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8110>
2024-12-10 10:26:01 +00:00
Robert Mader
f7da069496 v4l2codecs: Use GstVideoInfoDmaDrm more consistently
This avoids some duplications and makes the DRM info available in
more places, which will help with future changes.

Also fix some error messages while on it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8028>
2024-12-04 19:26:40 +00:00
Pablo Sun
4507f92b0d kmssink: Add mediatek auto-detection
Add MediaTek display controller into list of
auto-detected modules.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8023>
2024-12-02 16:43:45 +00:00
Nirbheek Chauhan
75848859f1 kms: Bump libdrm requirement to 2.4.108
DRM modifier support requires drmModeFormatModifierBlobIterNext()
which was added in 2.4.108. See:

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174#note_2673883

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7991>
2024-11-28 15:43:42 +00:00
Sebastien Cote
5b5c4147d3 vtenc: add support for the HLG color transfer
Fixes #4047

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7947>
2024-11-25 16:45:20 +00:00
Seungha Yang
44cb3025ff d3d12: Add gst_d3d12_flush_all_devices() method
... and removing implicit flushing behavior on GstD3D12Device::finalize

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7929>
2024-11-20 15:44:58 +00:00
Sebastian Dröge
8a88cd541d aja: Fix infinite loop in device provider
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7928>
2024-11-20 08:48:31 +00:00
Nicolas Dufresne
e9b2e98ef7 v4l2codecs: Use new helpers for DRM handling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7849>
2024-11-19 21:22:38 +00:00
Nicolas Dufresne
bd40057130 v4l2codecs: Fix caps string leak in v4l2codecs
Unlike gst_video_format_to_string(), gst_video_dma_drm_fourcc_to_string()
return a freshly allocated string which needs to be free.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7849>
2024-11-19 21:22:38 +00:00
Nicolas Dufresne
61d2231c58 v4l2codecs: decoder: Fixed unset dimension in caps
When the driver does not implement ENUM_FRMESIZE for some specific
formats, the caps limiting the sizes may endup empty, which results in
assuming the driver can scale to any sizes.

Ensure that the original size is in the caps to prevent this assumption.
This happens with Hantro drive, since it only reply to that call if the
format is postprocessed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7849>
2024-11-19 21:22:38 +00:00
Benjamin Gaignard
1a9841582d v4l2codecs: Use drm modifier to build caps
Do not only use drm fourcc to build drm-format but also
include the format modifier.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7849>
2024-11-19 21:22:38 +00:00
Matthew Waters
a566dfd339 uvcgadget: silence a maybe-uninitialized warning
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875>
2024-11-18 12:10:57 +11:00
Jakub Adam
34a400cc0e kmsbufferpool: Accept DMA_DRM caps in the config
Only linear modifier is supported due to the dumb allocator's
limitation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174>
2024-11-16 13:19:13 +08:00