Commit graph

3995 commits

Author SHA1 Message Date
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
Jakub Adam
9e81a6517b kmssink: ensure we have a valid vinfo_drm after set_caps
Consequently drop the check in import_dmabuf

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174>
2024-11-16 13:19:13 +08:00
Jakub Adam
d04a03d176 kmssink: enumerate drm formats when IN_FORMATS not present
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174>
2024-11-16 13:19:13 +08:00
He Junyan
6ad6b765ab kmssink: Do not provide DMA buffer pool for non-linear caps
The dumb allocator does not support modifiers, so we can not allocate
non-linear buffers by ourself.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174>
2024-11-16 13:19:13 +08:00
He Junyan
e4d7ac5989 kmssink: Handle the DMA buffer importing correctly
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174>
2024-11-16 13:19:13 +08:00
He Junyan
a925630d87 kmssink: Add DMA kind caps into sink caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174>
2024-11-16 13:19:13 +08:00
He Junyan
6f78e1c3e0 kmssink: Add helper functions to create DMA and raw caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174>
2024-11-16 13:19:13 +08:00
He Junyan
3f510d1296 kmssink: Add a helper function to collect formats and modifiers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174>
2024-11-16 13:19:13 +08:00
He Junyan
9df377efc1 kmssink: Add modifier to gst_kms_allocator_dmabuf_import
Use the new drmModeAddFB2WithModifiers() API for binding the
non-linear BO.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174>
2024-11-16 13:19:13 +08:00
Thibault Saunier
7010efc8ed meson: Bump minimum version to 1.3
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4025

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7899>
2024-11-16 03:02:27 +00:00
Benjamin Gaignard
da02191411 v4l2codecs: Test ioctl return value and errno
Fix error testing when using V4L2_FMTDESC_FLAG_ENUM_ALL by using
both errno and the return value.

Fixes !7686 (merged)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7873>
2024-11-15 23:22:30 +00:00
Stéphane Cerveau
0dd706a420 vkutils: add gst_vulkan_ensure_element_device
In order to keep the same device across
the elements in the pipeline, use either the device id
to create the device or get the device from the context
set by the peer elements.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7843>
2024-11-15 20:32:24 +00:00
Stéphane Cerveau
9a771b6909 vkinstance: add gst_vulkan_instance_create_device_with_index
This method will allow to create a device with its device_index
preparing the support of multiple device.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7843>
2024-11-15 20:32:24 +00:00
Víctor Manuel Jáquez Leal
46f4dbe57b codecparser: remove unused headers
Mainly <string.h> but also <stdlib.h> in jpegparse

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7869>
2024-11-15 19:33:10 +00:00
Víctor Manuel Jáquez Leal
e60efa4b9a codecparsers: avoid libc math library
Instead of the libc ceil() and pow() machinery for double types, since the
library uses it for unsigned integers use a simple math function for for ceil
division and bit left shift for integer power of two.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7869>
2024-11-15 19:33:10 +00:00
Stéphane Cerveau
ff9100eb4d h265parser/bitwriter: add some comments for ceil_log2 use
Validate that the length of field must be calculate with
ceil_logs2 and not bit storage.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7429>
2024-11-15 16:52:29 +00:00
Stéphane Cerveau
8f9ed667cd h264parse: use of ceil_log2 instead of bit_storage
According to the specification:
The length of the slice_group_id[ i ] syntax element is Ceil( Log2(
num_slice_groups_minus1 + 1 ) ) bits

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7429>
2024-11-15 16:52:29 +00:00
Jan Alexander Steffens (heftig)
d0543444d8 mpegtsmux: Mux timestampless buffers immediately
Instead of leaving them queued indefinitely, or until we're timing out
and it's the only buffer queued.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7870>
2024-11-15 13:07:06 +00:00
Sebastian Dröge
3971f8b86c mpegtsmux: Don't time out in live mode if no timestamped next buffer is available
The muxer can only advance the time if it has a timestamped buffer that can be
output, otherwise it will just busy-wait and use up a lot of CPU.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3912

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7870>
2024-11-15 13:07:06 +00:00
Stéphane Cerveau
ab8b2883a1 gst_plugins-cache: add zxing plugin
update documentation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7887>
2024-11-14 19:14:48 +00:00
Edward Hervey
6ba70f5da8 mpegtsmux: Post error on the bus if no mapping is found
This is more useful/visible

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7707>
2024-11-13 08:29:25 +01:00
Edward Hervey
244b00ac08 mpegts: Add custom mapping for vp9
This is a custom mapping. There isn't much needed apart from that to store vp9
in mpeg-ts since the bitstream is self contained.

Since there are no official specification we don't want people to be mistaken in
believing that. Therefore that mapping is only used in the muxer if the (new)
property `enable-custom-mappings` is set to TRUE.

* The MPEG-TS Stream Type is Private Data (0x6) with the registration descriptor
  set to `VP09`.
* The Access Unit are VP9 frames stored in PES packets
* As there is no emulation prevention byte in VP9 elementary stream, the can be
  misdetection of PES start code. To avoid this, the start of a PES packet must
  be signalled using the Payload Unit Start Indicator in the transport packet
  header

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7707>
2024-11-13 08:28:36 +01:00
Thibault Saunier
650ff6c5d0 nvcodec: gl now supports Y444_16LE
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7858>
2024-11-12 11:31:37 -03:00
Seungha Yang
43fc9525ca d3d12swapchainsink: Fix error when the sink is reused
Release backbuffer just before releasing swapchain

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7867>
2024-11-12 12:03:18 +00:00
Théo Maillart
a1c92c0cb1 mpegvideoparse: do not set delta unit flag on unknown frame type
When encoding an image to mpeg2 video, with something like:
  gst-launch-1.0 encodebin name=e profile=mpegpsmux:video/mpeg,mpegversion=2,systemstream=false ! \
                 filesink location=sample.mpg filesrc num-buffers=1 blocksize=$(stat -c%s sample.png) \
                 location=sample/dts.png ! pngdec ! e.
The only frame's type is set to an invalid value 0
The consequence is that mpegvideoparse sets the delta unit flag on the buffer because
it is not an I frame, then decodebin3 drops this only frame because the delta
unit flag is set and the decoder receives eos before it was able to receive any
encoded data

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7832>
2024-11-12 09:13:10 +00:00
Víctor Manuel Jáquez Leal
986b91fbe9 h26Xbitwriter: use quote form directive for internal header
Since nalutils.h is not installed it should be included for the local path.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7868>
2024-11-12 06:29:22 +00:00
Víctor Manuel Jáquez Leal
d9aa8a78ea h264bitwriter: implement gst_h264_bit_writer_filler()
This is required for vulkan encoder since it can only write slides after aligned
offsets.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7785>
2024-11-11 16:05:38 +00:00
Sid Sethupathi
8be9693b1e gs: update building README
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7860>
2024-11-11 13:39:50 +00:00
Diego Nieto
0d85cdafd5 exiftag: handle GST_TAG_CAPTURING_LIGHT_SOURCE tag
This exif tag allows to specify the different light conditions
when taking a picture. This tag is defined in:
https://exiftool.org/TagNames/EXIF.html#LightSource

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5571>
2024-11-10 12:57:36 +00:00
Sebastian Dröge
b5e119bbcc ccconverter: Don't override in_fps_entry when trying to take output
This allows to handle CDP streams where the framerate is not provided by the
caps and generally gives preference to the framerate inside the CDP packets over
the one in the caps.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7532>
2024-11-10 08:37:36 +00:00
Olivier Crête
d934ea3f7a tensormeta: Add APIs to create and access GstTensorMeta contents
Also document those APIs better.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Olivier Crête
5e73e8e1b3 tensor: Add APIs to create and access GstTensor contents
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Olivier Crête
4295386804 tensors: Use full GstTensorDataType type name in type members
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Olivier Crête
e01a3b1d79 analytics: Add APIs to add or get a GstTensorMeta
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Daniel Morin
6a5a63f051 analytics: Adding abstraction on tensor dims
Tensor can be row or col major, but it's also possible that the order by we need
to read the tensor with more than two dimension need to be described. The
reserved field in GstTensorDim is there for this purpose. If we need this we
can add  GST_TENSOR_DIM_ORDER_INDEXED, and follow an index defining order for
each dimension.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Daniel Morin
8169863f01 analytics: Make GstTensor more suitable for inline allocation
GstTensor contained two fields (data, dims) that were dynamicallay allocated. For
data it's for a GstBuffer and we have pool for efficient memory management. For
dims it's a small array to store the dimension of the tensor. The dims field
can be allocated inplace by moving it at the end of the structure. This will
allow a better memory management when GstTensor is stored in an analytics meta
which will take advantage of the _clear interface for re-use.

- New api to allocate and free GstTensor
To continue to support use-cases where GstTensor is not stored in an
analytics-meta we provide gst_tensor_alloc, gst_tensor_alloc_n and
gst_tensor_free that will facilitate memory management.
- Make GstTensor a boxed type

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Daniel Morin
7c925eae61 analytics: Move batch to GstTensor
- batch_size is required to interpret the tensor depending on the tensor format
the batch are not necessarily memory plane therefore it's preferable to keep it
inside GstTensor.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Daniel Morin
43c7e524ce analytics: Decouple GstTensor from GstTensorMeta
- To support transporting tensor as GstMeta, Analytics-Meta and Media we need to
  decouple GstTensor from GstTensorMeta.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Olivier Crête
8fa4c8f2f0 tensordecoders: Move decoder out of the ONNX plugin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Olivier Crête
03fd6fadbc analytics: Move tensor meta to the analytics library
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
wbartel
37ce358952 webrtcbin: fix malformed docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7847>
2024-11-06 22:47:39 +00:00
Adrien De Coninck
abd9fc5635 tsdemux: validate frat before setting framerate in caps
From JPEG-XS part3 : "If the frame rate is unknown, the frat parameter is 0."

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7836>
2024-11-06 14:48:51 +00:00
Adrien De Coninck
b3e2ad498a tsdemux: use JXS_video_descriptor "frat" to set caps "framerate"
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7836>
2024-11-06 14:48:51 +00:00
Sebastian Dröge
d2d2a12aac timecodestamper: Don't fail the latency query in LTC mode if we have no framerate
Only in LTC mode we introduce additional latency that is depending on only on a
property and not on the framerate, so waiting for the framerate is not necessary.

In all other modes no latency is introduced at all and the latency query can
simply be proxied.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7831>
2024-11-06 12:52:22 +00:00
Mart Raudsepp
790b12cf13 mpegtsmux: Add support for SMPTE 302M (audio/x-smpte-302m)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6530>
2024-11-06 11:16:14 +00:00
Tim-Philipp Müller
95eca6d919 meson: bail out earlier in docs subdir if docs are disabled
The gst_dep.get_variable('libexecdir') may fail in some scenarios
(e.g. building a module alone inside an uninstalled devenv) and
it shouldn't really be reached in the first place if docs are
disabled via options.

Also to avoid confusing meson messages when cross-compiling or
doing a static build.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7818>
2024-11-04 19:14:10 +00:00
Seungha Yang
80831f77f3 d3d12swapchainsink: Add support for GstColorBalance interface
... and adding hue, saturation, brightness, and contrast properties

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7817>
2024-11-03 21:33:37 +00:00
Seungha Yang
c051070121 d3d12convert: Add support for GstColorBalance interface
... and adding hue, saturation, brightness, and contrast properties

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7817>
2024-11-03 21:33:37 +00:00
Seungha Yang
dc414415a5 d3d12videosink: Add support for GstColorBalance interface
... and adding hue, saturation, brightness, and contrast properties

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7817>
2024-11-03 21:33:37 +00:00
Seungha Yang
f94c84c828 d3d12converter: Add support for colorbalance
Adding support for hue, saturation, brightness, and contrast adjustment

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7817>
2024-11-03 21:33:37 +00:00
Tim-Philipp Müller
c9ef35d3a6 gst-plugins-bad: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7819>
2024-11-03 17:45:29 +00:00
Seungha Yang
0c6e7e7f1a d3d11converter: Fix constant buffer update
Fixing regression of
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6434

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7814>
2024-11-02 16:36:27 +00:00
Jan Alexander Steffens (heftig)
6ddd51c239 h264parse: Fix pic_timing SEI replacement
The calculated position was off. I'm not sure of the exact cause;
possibly because we're in AU-aligned byte-stream mode, which means
`transform` is true.

Replacing the math that calculates the NALU positions with code more
similar to what is already in use for `idr_pos` seems to have fixed it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7318>
2024-10-31 20:29:37 +00:00
Jan Alexander Steffens (heftig)
04238d3b3c h264parse, h265parse: Support drop frame codes with counting_type 6
Tested with an Ateme Kyrion CM5000, which uses 6 when it drops 4 frames
from the code for 1080p@59.94.

Apply the same change to h265parse, with reference to the spec.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7316>
2024-10-31 19:34:53 +00:00
Seungha Yang
d33f5a1de9 d3d12videosink: Add support for mouse scroll events
Handle WM_MOUSEHWHEEL and WM_MOUSEWHEEL events

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7774>
2024-10-31 15:57:43 +00:00
Edward Hervey
0942dc57dd mpegts: Fix bit-depth storage for jpeg-xs
As per ISO/IEC 21122-3 2019:

> Sample_Bitdepth code shall specify directly the bitdepth of the components
minus 1

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3945

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7775>
2024-10-31 10:02:01 +00:00
Edward Hervey
fb16abcd73 mpegts: Fix JPEG-XS Extension Descriptor handling
The initial specification for the descriptor (from H.222.0 06/21) was wrong and
introduced duplicate descriptor_tag/descriptor_length field.

This was later corrected in H.222.0 (2021) Amendment 1 (12/22)

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3945

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7775>
2024-10-31 10:02:01 +00:00
Edward Hervey
35e19134d1 srt: Don't attempt to reconnect on authentication failures
This is a fatal issue which can't be recovered

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1550

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7776>
2024-10-31 09:11:55 +00:00
Jan Schmidt
70f628c117 androidmedia: Add more pixel format mappings
Add missing pixel format constants, and mappings for
P010, packed variants of 420 and RGBA layouts to GStreamer
buffer formats. This fixes problems with android decoders
refusing to output raw video frames with decoders that
announce support for these common pixel formats and
only allowing the 'hardware surfaces output' path.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7743>
2024-10-30 14:05:24 +00:00
Jan Schmidt
13c3d397a2 androidmedia: Add extra H.26[45] profile mappings
Update the android headers and add missing mappings for H.264/H.265
profiles that have been added in newer android releases

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7743>
2024-10-30 14:05:24 +00:00
Mathieu Duponchelle
99441e14f3 cea608mux: expose force-live property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7765>
2024-10-30 10:40:45 +00:00
Matthew Waters
9046e60aa7 decklink: reinstate some hardcoded colorimetry handling
Needed when we don't yet have an open device and are doing negotiation.

colorimetry=bt601 is only actually supported by decklink for PAL and NTSC
formats. All other formats use bt709 or above.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7742>
2024-10-30 03:47:14 +00:00
Matthew Waters
2832aab78a decklink: only expose HDR colorimetry if 2020 colorspace is supported
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7742>
2024-10-30 03:47:13 +00:00
Matthew Waters
19a60f341c decklinkvideosrc: ignore HDR metadata consisting of all zeros
In some cases decklinkvideosink may produce such stream when the
information is unknown.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7742>
2024-10-30 03:47:13 +00:00
Matthew Waters
06c344d43a decklinkvideosink: provide default values when HDR metadata is not available
Some file format standards don't require mastering-display-info
and content-light-level values to be provided.

Decklink however requires the static HDR metdata for the PQ transfer
function which we may not have.

CTA-861-G mentions that in this case, 0 may provided as an 'unknown'
value which is what we use here.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7742>
2024-10-30 03:47:13 +00:00
Matthew Waters
a509a1fd40 decklinkvideosink: fix incorrect EOTF value
Checking for mastering-display-info twice is incorrect.  One of the
checks should be for the content-light-level.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7742>
2024-10-30 03:47:13 +00:00
Nicolas Dufresne
30c6f2c163 wayland: Add NV15 support
This format, which maps to NV12_10LE40 in GStreamer is produced by Rockchip
video decoders when decoding 4:2:0 10 bit content.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7569>
2024-10-30 02:27:12 +00:00
Seungha Yang
7f9be72e72 vp8decoder: Fix resolution change handling
Do not store resolution in set_format() so that resolution change
can be detected on keyframe as intended.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3928
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7710>
2024-10-29 20:19:15 +00:00
Sebastian Dröge
8f5dca9611 rtmp2sink: Initialize base_ts / last_ts with the actual first observed timestamp
Initializing it with zero can falsely trigger the overflow / underflow detection
code if the first observed timestamp is a big integer.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7745>
2024-10-29 17:27:42 +00:00
Víctor Manuel Jáquez Leal
899792a5ef va{av1,vp9}enc: fix return value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7773>
2024-10-29 15:29:51 +00:00
Xavier Claessens
468dcbe9b7 Revert "unixfd: disable flaky test_unixfd_segment for now"
This reverts commit 06cd4e2457.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6765>
2024-10-29 12:12:26 +00:00
Xavier Claessens
9b946098df unixfd: Fix racy unit test by adding wait-for-connection property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6765>
2024-10-29 12:12:26 +00:00
Sebastian Dröge
5da635c2da play: Improve play message API inconsistencies
* Consistently name parse functions according to their message type and
    deprecate the misnamed ones,
  * Add missing parse functions,
  * Check for the correct message type when parsing
  * Use correct field name for warning message details

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7754>
2024-10-29 10:14:56 +00:00
Julian Bouzas
04af62b70f lcevch264enc: Set 'byte-stream' format and 'au' alignment in output caps
This is because the LCEVC EIL SDK from V-Nova always outputs encoded video in
that format. This also avoids using the parser in some scenarios.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7750>
2024-10-29 03:00:11 +00:00
Pablo García
6bbddc683d d3d11: implement mouse wheel events
Adittion of d3d11 support for WM_MOUSEWHEEL and WM_MOUSEHWHEEL events,
which are triggered when the mouse is scrolled vertically or horizontally
respectively.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7705>
2024-10-28 22:23:41 +00:00
Jordan Petridis
22ec1d8e4e ci: add suppressions for OpenSSL false positives
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:20 +00:00
Jordan Petridis
bc666db5fe gst-plugins-bad.supp: Remvoe gssdp leaks that have been fixed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:20 +00:00
Edward Hervey
36e999b5f5 vacompositor: Add since marker
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:20 +00:00
Edward Hervey
8bc8aedc62 codecparsers: Fix gtk-doc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:20 +00:00
Edward Hervey
fb2077061f bad: Mark more types as plugin API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:19 +00:00
Edward Hervey
908fc15411 docs: Fix av1parser symbols
Don't use un-named structures

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:19 +00:00
Edward Hervey
cb87d7b129 plugins_cache: Update for fedora 40 build
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:19 +00:00
Jordan Petridis
14c1bedb45 gstvafilter: Add back missing property comments
In b1cda4439b the property comments
were removed, even though these are marked as public api.

Add back the comments, and a Since version for interpolation-method.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:18 +00:00
Edward Hervey
38c07a2d01 all: Fix closure annotations
This was misused almost everywhere.

See
https://gi.readthedocs.io/en/latest/annotations/giannotations.html#support-for-gobject-closures

and: https://www.bassi.io/articles/2023/02/20/bindable-api-2023/

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7725>
2024-10-25 08:58:29 +00:00
Diego Nieto
43c9c3a020 debugutils: videocodectestsink: support GRAY8 and GRAY10_LE{16,32}
Add support for:
    * GST_VIDEO_FORMAT_GRAY8
    * GST_VIDEO_FORMAT_GRAY10_LE16
    * GST_VIDEO_FORMAT_GRAY10_LE32

These formats are used by Fraunhofer VVC encoder and decoder.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7706>
2024-10-25 05:53:22 +00:00
Carlos Falgueras García
561ca94916 video: Add GRAY10_LE16 support
This adds a 10-bit variant of grayscale packed into 16 bits little-endian
words. The MSB 6 bits are padding and should be ignored. This format is
used by Fraunhofer VVC encoder and decoder libraries.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7706>
2024-10-25 05:53:22 +00:00
Peter Stensson
06d4629521 codectimestamper: Fix gint wraparound in pts_compare_func
The diff between compared timestamps might be outside the gint range
resulting in wrong sorting results. This patch corrects that by
comparing the timestamps and then returning -1, 0 or 1 depending on the
result.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7726>
2024-10-25 01:49:10 +00:00
Andoni Morales Alastruey
e8ab9349f5 vtdec: add support for level 6 6.1 and 6.2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7729>
2024-10-24 21:45:32 +00:00
Jordan Yelloz
bcaf72ba62 mpegtsmux: Schedule PMT update on stream removal
Following the behavior of tsmux_program_add_stream(), this ensures that a PMT
update will also be caused by removal of a stream from a program.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7719>
2024-10-24 16:08:12 +00:00
Sebastian Dröge
493f8e440a mpegtsdemux: Handle PTS/DTS wraparound with ignore-pcr=true
The wraparound handling code assumes that the PCR gets updated regularly for
being able to detect wraparounds. With ignore-pcr=true that was not the case and
it stayed initialized at 1h forever.

To avoid this problem, update the fake PCR whenever the PTS advanced by more
than 5s, and also detect wraparounds in these fake PCRs.

Problem can be reproduced with

  $ gst-launch-1.0 videotestsrc pattern=black ! video/x-raw,framerate=1/5 ! \
    x264enc speed-preset=ultrafast tune=zerolatency ! mpegtsmux ! \
    tsdemux ignore-pcr=true ! fakesink

which restarts timestamps at 0 after around 26h30m.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7588>
2024-10-24 15:09:15 +00:00
Seungha Yang
8c3d516a14 d3d12: Additional fixes for MinGW build
Various fixes for GCC build, including actual bug fixes

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7722>
2024-10-24 06:54:30 +09:00
Seungha Yang
703cc1783e d3d12: Fix MinGW build with installed DirectX-Headers
Required for cerbero MinGW build

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7154>
2024-10-22 21:25:11 +00:00
Daniel Morin
db78446576 tensordecoder: Correct Klass, for ssd TD
Tensor decoder need a specific klass to be able to auto-plug them

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7698>
2024-10-22 20:23:32 +00:00
Jochen Henneberg
2ae846a77a examples: va: Added VP8 encoder to dynamic reconfigure
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6959>
2024-10-22 11:48:49 +00:00
Jochen Henneberg
f31581544c va: Added VP8 encoder
Fixes #3430
Fixes #3576

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6959>
2024-10-22 11:48:49 +00:00
Jochen Henneberg
982bfe4f5d codecparsers: vp8parser: Added frame type enums
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6959>
2024-10-22 11:48:49 +00:00
Seungha Yang
fb6a5c8a0c d3d12mipmapping: Fix debug category
Fixing copying-and-pasting mistake

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7701>
2024-10-20 16:01:10 +00:00
Benjamin Gaignard
451b32574f v4l2codecs: dynamically discovers supported pixels formats
If the driver allows it, for each stateless decoder,
enumerate all the pixels formats and use this list for source
pad instead of a static template.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7686>
2024-10-19 22:14:13 +00:00
Benjamin Gaignard
3a52cbcc67 v4l2codecs: Update videodev2.h with V4L2_FMTDESC_FLAG_ENUM_ALL flag
Add V4L2_FMTDESC_FLAG_ENUM_ALL flag to support discovering all
possible pixel formats.
Add V4L2_FMT_FLAG_META_LINE_BASED to not create a hole in flag
definition.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7686>
2024-10-19 22:14:13 +00:00
Víctor Manuel Jáquez Leal
45b01f9456 h26xbitwriter: false have_space if aligning fails on aud
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7655>
2024-10-19 17:28:41 +00:00
Edward Hervey
360787ef27 qrbaseoverlay: Add doc/since
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7692>
2024-10-19 16:31:13 +00:00
He Junyan
dce250beb8 vaav1enc: Do not enable palette mode by default
Palette mode should only be enabled only when we know that the content
of the picture is simple. For example, only white letters on black
screen in SCC mode. So, by default, we need to disable it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7668>
2024-10-19 12:34:40 +00:00
Benjamin Gaignard
c67e6cdec7 kmssink: Add IMX-DCSS auto-detection
Add IMX DCSS display controller into list of
auto-detected modules.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7685>
2024-10-19 04:54:18 +00:00
Benjamin Gaignard
e13065b22a v4l2codecs: vp9: 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.
For memory allocation reasons, only allows resolution change
on non keyframe if the driver support remove buffer feature.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7684>
2024-10-19 01:39:04 +00:00
Benjamin Gaignard
34997e88ae codecs:vp9 decoder: Remove unsused info field
Video info field is never used so remove it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7684>
2024-10-19 01:39:04 +00:00
Benjamin Gaignard
0f171b2086 codecs: vp9 decoder: Drain output buffers before resolution change
We must drain the pending output picture so that subclass can renegotiate
the caps. Not doing so while still renegotiating would mean that the
subclass would have to do an allocation query before pushing the caps.
Pushing the caps now without this would also not work since these caps
won't match the pending buffers format.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7684>
2024-10-19 01:39:04 +00:00
Benjamin Gaignard
ad537ef934 v4l2codecs: Add remove buffers helpers
Add helpers function to call VIDIOC_REMOVE_BUFS ioctl.
If the driver support this feature buffers are removed from the queue when:
- the pool when is detached from the decoded.
- the pool is released.
- allocation failed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7684>
2024-10-19 01:39:04 +00:00
Benjamin Gaignard
fecdfe18ca v4l2codecs: Do not register stateless decoder if the driver doesn't support VIDIOC_CREATE_BUFS
If the driver can't allocate buffers with VIDIOC_CREATE_BUFS do not
register it has stateless decoder.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7684>
2024-10-19 01:39:04 +00:00
Benjamin Gaignard
2753a8f0c1 v4l2codecs: Replace VIDIOC_REQBUFS calls by VIDIOC_CREATE_BUFS
Use VIDIOC_CREATE_BUFS ioctl to create buffers instead of VIDIOC_REQBUFS
because it allows to create buffers also while streaming.
To prepare the introduction of VIDIOC_REMOVE_BUFFERS create
the buffers one per one instead of a range of them. This way
it can, in the futur, fill the holes.
gst_v4l2_decoder_request_buffers() is stil used to remove all
the buffers of the queue.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7684>
2024-10-19 01:39:04 +00:00
Benjamin Gaignard
c25c4355b1 v4l2codecs: udpate videodev2.h
Update videodev2.h to be aligned with kernel version v6.10

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7684>
2024-10-19 01:39:03 +00:00
Emil Ljungdahl
68bbfdc9a2 webrtcbin: Clean up bin elements when datachannel is removed
When a datachannel within a session is removed after proper close,
reference to the error_ignore_bin elements of the datachannel
appsrc/appsink were left in webrtcbin.

This caused the bin-objects to be left and not freed until the whole
webrtc session was terminated. Among other things that includes a thread
from the appsrc.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7675>
2024-10-18 23:14:09 +00:00
Francisco Javier Velázquez-García
f6e8b88128 srtsink: Add guard for null error when SRT open fails
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7628>
2024-10-18 16:36:59 +00:00
Francisco Javier Velázquez-García
2caa6721f9 srtsink: Register SRT listen callback before binding socket
This change https://github.com/Haivision/srt/pull/2683 forces us to
call `srt_listen_callback` before `srt_listen`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7628>
2024-10-18 16:36:59 +00:00
Daniel Morin
9fc017667f test: Adding a test for segmentation analytics-meta
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6026>
2024-10-17 18:13:03 +00:00
Daniel Morin
6db6d44ff5 analytics: add segmentation analytics-meta
- Add a new analytics-meta to store segmentation analysis result.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6026>
2024-10-17 18:13:03 +00:00
Daniel Morin
98653aa43a analytics: Allow specific analytics-meta (Mtd) to handle their clear
- Add mtd_meta_clear to allow specific analytics-meta to handle their clear
  operation specific to their type.

- Clear mtd's attached when analytic-meta is freed. When the buffer where
  analytics-meta is attached is not from a buffer pool
  gst_analytics_relation_meta_clear will not be called unless we explicitly call
  it in _free. This important otherwise _mtd_clear are not called and lead to
  leak if embedded mtd's allocated memory
- Un-ref in transform if it's a copy

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6026>
2024-10-17 18:13:03 +00:00
Jordan Petridis
4b8d43446e lc3: tests: Zero out the buffer we allocate for the tests
Otherwise liblc3 will try to access the uninitialized memory
and it makes valgrind very sad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7657>
2024-10-16 14:16:43 +00:00
Stéphane Cerveau
5e7f187d93 scenechange: fix memory leak
A reference to the last buffer(oldbuf) was kept
leading to a memory leak on stop.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7662>
2024-10-15 04:20:01 +00:00
Víctor Manuel Jáquez Leal
0e9634e17c codecparsers: add debug categories to bitwriters
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7653>
2024-10-14 22:05:04 +00:00
Nirbheek Chauhan
303dd73779 meson: Explicitly use cpp_std=c++11 for dxva
dxva is built unconditionally on all platforms where introspection is
enabled, so let's fix the build on macOS so that introspection can be
enabled there: https://gitlab.freedesktop.org/nirbheek/cerbero/-/jobs/65009118

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7659>
2024-10-13 19:31:27 +00:00
L. E. Segovia
4dcc4b6235 meson: Undefine any WINVER and _WIN32_WINNT entries before redefining them
Fixes Cerbero build with MinGW GCC 14, where specifying -DWINVER=0x0601 -DWINVER=0x0A00 is a hard -Werror.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7658>
2024-10-12 19:10:46 -03:00
L. E. Segovia
572f2d10f5 meson: amfcodec: fix build with MinGW GCC 14
>  ../sys/amfcodec/include/core/PropertyStorage.h:87:50: error: 'virtual void
>   amf::AMFPropertyStorage::RemoveObserver(amf::AMFPropertyStorageObserver*)' was hidden [-Werror=overloaded-virtual=]

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7658>
2024-10-12 19:05:23 -03:00
L. E. Segovia
4af2121189 meson: d3d12: fix build with MinGW GCC 14
Also apply the d3d11 fix since both use the same header.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7658>
2024-10-12 19:01:46 -03:00
L. E. Segovia
f8d6b3d568 meson: d3d11: fix build with MinGW GCC 14
In my tests with the new GCC 14 compiler for Cerbero, I got the
following error:

> In file included from include/directxmath/DirectXMath.h:2275,
> from ../gst-libs/gst/d3d11/gstd3d11converter.cpp:46:
> include/directxmath/DirectXMathMatrix.inl: In function 'bool
>   DirectX::XMMatrixDecompose(XMVECTOR*, XMVECTOR*, XMVECTOR*, FXMMATRIX)':
> include/directxmath/DirectXMathMatrix.inl:1161:16:
>  error: variable 'aa' set but not used [-Werror=unused-but-set-variable]

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7658>
2024-10-12 19:01:13 -03:00
Jan Schmidt
6b94f22bd6 webrtcbin: Retrieve RR stats from internal sources
Check and generate remote reception statistics from the info stored on
internal sources, as they are stored there  when running against newer rtpbin
since MR !7424

This fixes cases where statistics are incomplete when
peers send RR reports from a single remote ssrc, which GStreamer does
when bundling is enabled and other RTP stacks may too.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7425>
2024-10-12 04:12:22 +00:00
Nirbheek Chauhan
80bb69ba66 vtdec: Set input formats when we get incomplete caps
In some cases, decodebin3 will send us incomplete caps (not containing
codec_data), and then a GAP event, which will force a negotiation.
This segfaults due to a null pointer deref because self->input_state
is NULL.

The only possible fix is to avoid negotiating when we get incomplete
caps (to avoid re-negotiationg immediately afterwards, which isn't
supported by some muxers), but also set as much input state as
possible so that a renegotiation triggered by a GAP event can complete
successfully.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7634>
2024-10-12 01:31:52 +00:00
Xavier Claessens
b4ccd940d4 qroverlay: Change pixel-size to percent of width or height
The size is now expressed in percent of the smallest dimention. 100
means the biggest square that fits the render area.

Fixes: #3695
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7638>
2024-10-11 04:07:26 +00:00
Víctor Manuel Jáquez Leal
809ab829d0 tests: va: fix vapostproc test for DMABuf
Now it picks the first format in the template srcpad list and do
the convertion. Also the format size is reduced because not all
drives support 4K as DMABuf (radeonsi).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7636>
2024-10-10 16:34:04 -04:00
Seungha Yang
7c06001705 d3d12: Shorten various names
Update names of various objects and method to be shorter, for instance
GstD3D12CommandAllocator is changed to GstD3D12CmdAlloc.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7642>
2024-10-10 10:35:36 -04:00
Seungha Yang
024f450204 d3d12: Fix typo in docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7642>
2024-10-10 09:21:54 -04:00
Seungha Yang
ef55b31f46 d3d12: Early error out on Signal() fail
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7642>
2024-10-10 09:21:54 -04:00
Jordan Petridis
ab54e45f67 tests/lc3: Allocate the same size for the buffer and the data
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7631>
2024-10-09 22:16:13 +00:00
Vivia Nikolaidou
384cb299ec mxftypes: Add support for a few additional fields
According to SMPTE ST 377-1:2019

Currently still unused.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7626>
2024-10-09 21:34:06 +00:00
Vivia Nikolaidou
1b81c9ca87 mxftypes: Check for the existence of all required fields
According to SMPTE ST 377-1:2019

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7626>
2024-10-09 21:34:06 +00:00
Vivia Nikolaidou
7cc16b64b7 mxfdemux: Keep tracking the offsets even when an index table was found
Some files may contain a partial index table, leading into a crash when
you try seeking in them

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7626>
2024-10-09 21:34:06 +00:00
Piotr Brzeziński
9a232f7983 vtenc: Don't call drop_frame() when flushing
Slipped through with earlier changes to use drop/release_frame() explicitly.
We should only drop when something goes wrong in the encoder, and just release otherwise.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7475>
2024-10-09 20:29:52 +00:00
Julian Bouzas
35354d4229 lcevcencoder: Add README.md
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7330>
2024-10-02 20:33:13 +00:00
Julian Bouzas
e99b42d924 lcevcdecoder: Add README.md
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7330>
2024-10-02 20:33:13 +00:00
Julian Bouzas
4c82416798 lcevcencoder: Add new LCEVC Encoder plugin
This new LCEVC encoder plugin is meant to implement all LCEVC encoder elements.
For now, it only implements the LCEVC H264 encoder (lcevch264enc) element. This
element essentially encodes raw video frames using a specific EIL plugin, and
outputs H264 frames with LCEVC data. Depending on the encoder properties, the
LCEVC data can be either part of the video stream as SEI NAL Units, or attached
to buffers as GstMeta.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7330>
2024-10-02 20:33:13 +00:00
Julian Bouzas
cfc6b09693 lcevcdecoder: Add new lcevch264decodebin element
This new element wraps both the base H264 decoder and lcevcdec elements into a
bin so that LCEVC decoding works with auto-plugging elements such as decodebin.
By default, the H264 decoder element with higher rank is used as base decoder,
but any particular H264 decoder can be used by manually setting the base-decoder
property.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7330>
2024-10-02 20:33:13 +00:00
Julian Bouzas
636690f2aa lcevcdecoder: Add new LCEVC Decoder plugin
This new LCEVC decoder plugin is meant to implement all LCEVC decoder elements.
For now, it only implements the LCEVC enhancement decoder (lcevcdec) element.
This element essentially enhances raw video frames using the LCEVC metadata
attached to input buffers into a higher resolution frame. The element is only
meant to be used after any base decoder (eg avdec_h264).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7330>
2024-10-02 20:33:13 +00:00
Julian Bouzas
9accf21e53 h264parse: Wait for SEI before exposing src caps
This makes sure 'lcevc=false' src caps are not set before parsing SEI. It is
needed for decodebin2 to work properly with the LCEVC decoder.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7330>
2024-10-02 20:33:13 +00:00
Olivier Crête
8055b0386f h264parse: Don't fake IDR without at least an i-slice
There was an override to fake an IDR as soon as a SPS/PPS
is encountered, but that's not valid, at least an i-slice is needed.

Amend the visl result, as the output is slightly more correct, not
duplicating frame_num.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7330>
2024-10-02 20:33:13 +00:00
Julian Bouzas
2c514ac2f1 h264parse: attach LCEVC meta to buffers if it is present in SEI
This improves the h264parse element to attach LCEVC enhancement data to buffers
using the new GstLcevcMeta API. This metadata will eventually be used downstream
by LCEVC decoders to enhance the RAW video frame.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7330>
2024-10-02 20:33:13 +00:00
Julian Bouzas
fea8578ee9 codecparsers: Add LCEVC metadata API
This new metadata API allows elements to attach LCEVC enhancement data to video
buffers. Usually, the video parser elements are charged to parse the LCEVC
enhancement data from SEI Nal units (Supplemental enhancement Information).
However, other elements such as demuxers can also use this API if the LCEVC
enhancement data of the video is stored in a separate stream in the container.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7330>
2024-10-02 20:33:13 +00:00
Seungha Yang
d9114db5d0 nvdecoder: Add support for D3D12 output
Enable D3D12 output if device can support D3D12 interop

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7529>
2024-10-02 02:02:08 +09:00
Seungha Yang
16e94b7fc3 nvcodec: Add support CUDA to D3D12 memory copy
Adding CUDA -> D3D12 memory copy method to GstCudaD3D12Interop

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7529>
2024-10-02 02:02:08 +09:00
Mengkejiergeli Ba
5bf85229e5 msdkenc: Guard the read of thiz->initialized with the modification of this value
This is to avoid wrongly read/write thiz->initialized when multi-thread
invoking encoder init function, it is possible when user apps deploy
multi-thread to dynamically change encoder's settings.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7578>
2024-09-29 01:07:39 +00:00
Sebastian Dröge
be6eba3e9e ntv2: Update to AJA NTV2 SDK 17.1.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7568>
2024-09-27 16:43:37 +00:00
Sebastian Dröge
b7b24573ce common: Use more efficient versions of GstCapsFeatures API where possible
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432>
2024-09-26 19:26:18 +03:00