288 Commits

Author SHA1 Message Date
Nicolas Dufresne
33d0170d6e docs: Update documentation cache for new RGB 10bit support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9460>
2025-07-31 21:34:35 +00:00
Olivier Crête
9fb3df1422 analyticsoverlay: Add expire-overlay property
If there has been no new data for this amount of time, just
expire the overlay and don't send one. Otherwise, it keeps sending
the old one for the following frames.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9409>
2025-07-22 23:31:23 +00:00
Philippe Normand
6db20592ef dtls: Use ECDSA private key for default certificate
ECDSA is widely used in browsers and SFUs, some servers such as the ones using
BouncyCastle only accept certificates signed with ECDSA.

Based on closed MR https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2458

Fixes #4516

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9323>
2025-07-18 00:57:40 +00:00
raghu447
d868357270 tensordecoder: rename facedetector element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9344>
2025-07-16 20:35:04 +00:00
Nicolas Dufresne
5ac6d2b635 gtkwaylandsink: Make the rotate property GST_PARAM_MUTABLE_PLAYING
This matches the change we made to waylandsink.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9283>
2025-07-07 21:11:44 +00:00
Michael Olbrich
0a524ca115 gstwaylandsink: add GST_PARAM_MUTABLE_PLAYING flag for more properties
The fullscreen state and rotate method can be changed while the element is
playing, so add the GST_PARAM_MUTABLE_PLAYING flag to those properties to
indicate this.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9283>
2025-07-07 21:11:44 +00:00
Víctor Manuel Jáquez Leal
41ff02c349 vulkanh264enc: add Vulkan H264 encoder
Add an element to encode h264 content using the vulkan API.

Co-authored-by: Stéphane Cerveau <scerveau@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>
2025-07-03 13:41:32 +02:00
Víctor Manuel Jáquez Leal
d81726f8d2 vulkan: h264encoder: introduce base class
H.264 base class oriented for hardware accelerated encoders, such as Vulkan, VA
and others.

1. It can be parametrized for hardware limits, such as lists size, b-frames
   supports, etc.
2. It produces a GOP structure map [IDR, R/I/B, ...)
3. It proposes parameters set and other strucures such as bitrate limites.
   Subclases can modify those structures.
4. It calls the subclass encode virtual method implementation.

It doesn't handle rate control algorithms or other encoding quality mechanisms.

For a deeper introduction to the class there was a lighting talk in the GstConf
2024: <https://www.youtube.com/watch?v=-fQY54KHH38>

Co-authored-by: He Junyan <junyan.he@intel.com>
Co-authored-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Co-authored-by: Stéphane Cerveau <scerveau@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>
2025-07-03 13:41:32 +02:00
Edward Hervey
efb22b550c mpegtsdemux: Add property to disable skew corrections
This is for cases where:
* We *do* want to refer to the PCR stream to figure out global positioning, gap
  detection, wrapover correction.
* But we do not want to apply any skew correction to the output

This is useful for cases where:
* the input stream has already been clock-corrected (for example with
mpegtslivesrc)
* or where the output doesn't require synchronization against a clock (ex: for
  storage)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9301>
2025-07-02 14:10:55 +00:00
Michael Olbrich
31f3e73066 waylandsink: Add force-aspect-ratio property
Similar to and inspired by glimagesink, xvimagesink and others.

The waylandsink never transform the buffer in any way but delegates this to the
Wayland compositor with the Wayland buffer transform API.
Rotation and window size are already supported, so this just changes the video
surface geometry that is communicated to the Wayland compositor.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9210>
2025-06-25 18:38:54 +00:00
Seungha Yang
67031a508c hip: Add plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>
2025-06-25 01:17:27 +09:00
raghu447
251d74ca69 tensordecoder: add facedetector tensor decoding support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8600>
2025-06-03 18:48:36 -04:00
Daniel Morin
ec60daa66d tensordecoder: add general classifier tensor-decoder
- Classification output is more standard compare to other tensor-decoder.
- This tensor-decoder implement a standard classification tensor-decoder.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8548>
2025-05-10 19:18:40 +00:00
Xavier Claessens
352a8a8b12 unifxfdsink: Add an property to allow copying
By design, unixfd is meant to be used for zero-copy and failing when the data is
not FD based memory is wanted to help debug pipelines. Though, there exists
cases, notably with RTP payloader and demuxers, where its not possible
to get all the data into FD memory through allocation queries.

To allow using unixfd for these cases, introduce a property on the unixfdsink
that enable copying the non FD data into freshly allocated memfd.

Co-authored-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8861>
2025-05-05 19:15:56 +00:00
Víctor Manuel Jáquez Leal
16d34468fb y4m: move y4mdec to good to have a single y4m plugin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719>
2025-05-05 11:53:46 +00:00
Nicolas Dufresne
8c7ad20e4e doc: Update cache for plugins automatically picks NV16_10LE40
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5612>
2025-04-17 15:36:06 +00:00
Daniel Morin
55e9e3cb13 tensordecoders: updating element classification
- `TensorDecoder` is clashing with media decoder which cause decodebin use it.
  Replacing with `Tensordecoder` to avoid clash

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8819>
2025-04-15 00:30:06 +00:00
Daniel Morin
8af086038a analyticsoverlay: add filled-box mode
- Add filled-box-mode property, when set region where detection is happening is
  filled

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8592>
2025-04-04 22:40:58 +00:00
Olivier Crête
bf8af7ac20 bad: Update va docs, adding new elements
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>
2025-04-04 14:06:35 -04:00
Olivier Crête
7ed5c10751 va: Remove GstVaFeature marking as a plugin API
It's part of the libgstva library and it's documented there, no need
to duplicate it as it confuses hotdoc.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>
2025-04-04 14:06:35 -04:00
Olivier Crête
afaf1723fe bad: Update wpesrc docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>
2025-04-04 14:06:35 -04:00
Olivier Crête
68489f2362 bad: Update qsv docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>
2025-04-04 14:06:34 -04:00
Olivier Crête
ecf9a035eb bad: Add onnxinference to the docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>
2025-04-04 13:05:51 -04:00
Jordan Yelloz
a1876eee74 mse: Updated documentation cache
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>
2025-03-26 21:44:13 +00:00
Eric
4e4f8b7a79 webrtc: fix hangup when duplicate sctp association IDs chosen
Fixes an issue where the webrtcbin would hangup when finalizing due
to the sctpenc hanging up when finalizing. This occurred when the
webrtcbin chose to use a sctp association ID already in use.

The sctpenc would fail to reach the paused state, but startup a task
anyways that was never stopped.

This commit modifies the behavior to not choose sctp association IDs
randomly, and instead only choose one that is free. It also prevents the
sctpenc from starting up that task if it fails to reach the paused state.

Fixes: #4188
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8607>
2025-03-25 23:07:51 +00:00
Christopher Degawa
6bdfaa4606 svtav1enc: update to use SVT-AV1 3.0.0 API changes
Signed-off-by: Christopher Degawa <ccom@randomderp.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8539>
2025-03-05 13:18:26 +00:00
Stéphane Cerveau
a7a3a80344 dashsink: cleanup the teardown process
The stream was keeping a reference to the sink, preventing
it to be removed properly by the pipleline bin.
Clean up and simplify the code to get the stream from the pad.
Add more mutex protection against add/remove requested pad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7916>
2025-03-03 12:19:09 +01:00
Nicolas Dufresne
33aafc4a91 v4l2codecs: Sort formats to avoid quality lost
When the driver prefered format is not picked by downstream, the
decoders needs to select another format from the list. The selection
was currently unsorted, resulting in 10bit data often being stripped
to 8bit.

To solve this, reorder the formats in an HW preference order. This order
deviates slightly from the preferred order in libgstvideo. This is to
prefer bandwidth saving over better CPU alignment. As an example NV15 is
prefered over P010. We also prefer tiled over linear.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8522>
2025-02-21 19:11:47 +00:00
Nicolas Dufresne
5e48b89686 kmssink: Add NV12_10LE40 / NV15 support
This is needed until kmssink is ported to use libgstvideo mapping.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8525>
2025-02-21 16:37:55 +00:00
Seungha Yang
5c974980ef closedcaption: Add h264/h265 ccinserter docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8496>
2025-02-21 15:00:02 +00:00
Seungha Yang
d17e8707c9 nvencoder: Add extern-cuda-bufferpool property
Add new property to support application allocated GstCudaMemory.

CUDA memory alloc/free is a global device synchronization point
as if launching CUDA kernel on default CUDA stream. To avoid the global
synchronization, we added stream-ordered allocation support
which allocates CUDA memory asynchronously.
However, NVENC does not allow registering the stream-ordered
allocated memory. Thus encoder was allocating normal CUDA
memory in case that input CUDA memory is stream-ordered type.

In this commit, newly introduced property will allow application
to provide encoder with GstCudaBufferPool. Application can
preallocate sufficient amount of CUDA memory in advance
to avoid global device synchronization while pipeline is running.

For now, this pool is used only if input CUDA memory is allocated
via stream-ordered-allocation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8516>
2025-02-21 10:10:53 +00:00
Seungha Yang
9baff8e4e0 closedcaption: Add h265ccextractor element
This element will collect closed caption meta from H.265 stream
and output caption buffers in display order

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8500>
2025-02-19 11:10:30 +00:00
Benjamin Gaignard
fab7e43fe2 debugutils: videocodectestsink: Add GBR_10LE as supported pixel format
Add GBR_10LE in the list of supported format of the element.
GBR_10LE is used as output format in Fluster ARGON tests suite.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8502>
2025-02-18 13:01:14 +00:00
Seungha Yang
54a0ad7161 closedcaption: Add closed caption extractor element for H.264 stream
Adding new h264ccextractor element. This element will extract
closed caption meta from H.264 stream, and output in display order.
For the frame reordering, this element is implemented as a subclass
of h264decoder but without actual frame decoding.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6580>
2025-02-14 13:43:01 +00:00
Carlos Bentzen
b848c91dec mpegtsmux: add support for VVC/H.266 video
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8435>
2025-02-10 20:57:40 +00:00
Nirbheek Chauhan
73da2edbba opencv: Fix hand detect profile paths
This is the same mechanism used by facedetect

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8403>
2025-02-09 14:25:32 +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
Kévin Commaille
fcd2e61330 zbar: allow to enable binary mode
Added in zbar 0.23.1, it is a mode that prevents zbar from trying to
convert the binary data of QR codes to text by guessing the encoding.

Add a property that changes the configuration of the zbar image scanner
accordingly.

<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4688>

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4688>
2025-02-07 20:53:50 +00:00
Carlos Bentzen
5fad23d26b h266parse: enable vvc1 and vvi1 stream formats
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Seungha Yang
5dd695f81f docs: Add nvdswrapper docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8425>
2025-02-06 17:48:47 +00:00
Nicolas Dufresne
ec8e2d6a31 doc: Push v4l2codecs documentation cache
These are normally autogenerated for the platform GStreamer runs on,
though it is convenient to have everything listed in the doc. This
was created with the new GST_V4L2_CODEC_GEN_DOC=1 environment.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
7edb6a5634 waylandsink: Prefer DMABuf over system memory
Swap the template and caps query around to that the sink can describe a
preference for DMAbuf over system memory.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8404>
2025-02-05 18:57:29 -05:00
Jan Alexander Steffens (heftig)
3c5f03dce1 cccombiner: Clean up property mutability
Most settings are copied from properties on the READY → PAUSED state
change. The recently added properties violate this scheme, and are
probably unsafe to change.

Make these properties consistently MUTABLE_READY. Also remove the unused
`output_padding` field.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7996>
2025-01-28 14:51:19 +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
06afe8aa8f docs: Add nvcomp plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8325>
2025-01-20 19:31:36 +00:00
Stéphane Cerveau
538747907d vkh264dec: support h264 extended profile
Extended is identical to main but allows 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/7854>
2025-01-16 19:18:21 +00:00
Carlos Bentzen
7405866c84 tsdemux: add support for VVC/H.266
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4940>
2025-01-15 13:55:25 +01:00
Seungha Yang
ee0afa29d1 d3d12: Update docs for max-mip-levels property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290>
2025-01-15 03:03:52 +09:00
Tim-Philipp Müller
22bb73b796 docs: update vampeg2dec docs with new rank
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8295>
2025-01-13 19:26:26 +00:00
Tim-Philipp Müller
79a04e936d docs: add svtjpegxs plugin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8295>
2025-01-13 19:26:26 +00:00