Commit graph

8254 commits

Author SHA1 Message Date
Sebastian Dröge
f590e815fe av1parse: Add video codec tag to the tag list
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8156>
2024-12-19 23:30:31 +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
Stéphane Cerveau
97d62d2291 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>
2024-12-19 19:49:06 +00:00
Stéphane Cerveau
f618270c59 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>
2024-12-19 19:49:06 +00:00
Tim-Philipp Müller
f4733d0af7 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>
2024-12-19 15:47:13 +00:00
Carlos Falgueras García
1dd4a6e832 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>
2024-12-19 11:55:29 +00:00
Matthew Waters
dbf4915abd 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>
2024-12-19 00:33:03 +00:00
Matthew Waters
d6563016ca cuda: add CuGet/SetCtxLimit()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8158>
2024-12-19 00:33:03 +00:00
Nicolas Dufresne
0fb5d8afa8 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>
2024-12-18 23:34:08 +00:00
Nicolas Dufresne
3ee04883ee 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>
2024-12-18 23:34:08 +00:00
Nicolas Dufresne
3ec1feb88f 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>
2024-12-18 23:34:08 +00:00
Nicolas Dufresne
77744c3d63 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>
2024-12-18 23:34:08 +00:00
Nicolas Dufresne
58b196d62b 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>
2024-12-18 23:34:08 +00:00
Nicolas Dufresne
8860eadffd 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>
2024-12-18 23:34:08 +00:00
Nicolas Dufresne
14b5df4850 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>
2024-12-18 23:34:08 +00:00
Nicolas Dufresne
50bb74e0c1 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>
2024-12-18 23:34:08 +00:00
Robert Mader
b687b9527b 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>
2024-12-18 22:31:02 +00:00
Nicolas Dufresne
a6be74786e 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>
2024-12-18 13:38:42 -05:00
Sebastian Dröge
4b1954b490 avcodecmap: Add some more channel position mappings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8173>
2024-12-18 11:22:12 +00:00
Guillaume Desmottes
219bf89159 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>
2024-12-18 09:13:22 +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
Sebastian Dröge
88a36b53c5 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>
2024-12-17 12:05:54 +00:00
Emil Ljungdahl
f28a7b6ef3 webrtcbin: Tear down src and sink bins before removing them from webrtc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7900>
2024-12-17 09:48:46 +00:00
Emil Ljungdahl
df8b8f9692 webrtcbin: Fix potential deadlock on bin elements cleanup
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7900>
2024-12-17 09:48:46 +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
dc5594c575 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>
2024-12-16 18:52:20 +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
Nirbheek Chauhan
88cb48108a 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>
2024-12-16 18:52:20 +00:00
Mathieu Duponchelle
7be4d09f14 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>
2024-12-16 15:43:20 +00:00
Nirbheek Chauhan
0c17efafa3 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>
2024-12-16 14:47:23 +00:00
Sebastian Dröge
8e0f0c5ae3 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>
2024-12-16 13:28:13 +00:00
Seungha Yang
9962c57b5b 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>
2024-12-16 09:47:21 +00:00
Thibault Saunier
1dd8085254 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>
2024-12-16 08:49:41 +00:00
Thibault Saunier
a7ccbb073a ges: project: Add missing API guards
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8145>
2024-12-16 08:49:41 +00:00
Thibault Saunier
1aa3777d2e 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>
2024-12-16 08:49:41 +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
Seungha Yang
e3348ea402 d3dshader: Add YADIF deinterlacing compute shader code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8140>
2024-12-14 12:09:23 +00:00
Max Romanov
477d330dee 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>
2024-12-13 17:24:44 +00:00
Thibault Saunier
5aadb25d0e 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>
2024-12-13 16:37:54 +00:00
Dean Zhang (张安迪)
58696d57f9 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>
2024-12-13 13:14:01 +00:00
Edward Hervey
2d92a2ee54 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>
2024-12-13 09:42:01 +00:00
Guillaume Desmottes
a29591978b 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>
2024-12-12 10:43:26 +01:00
Matthew Waters
c3cc8205b2 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>
2024-12-12 12:06:13 +11:00
Oskar Fiedot
a3a7acdd0a analytics: add rotation to object detection mtd
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7938>
2024-12-11 11:54:15 +01:00
Philippe Normand
ed28bde0a6 webrtc: Simplify fmtp handling in codec stats
Parsing the whole caps as SDP media only to retrieve the fmtp field afterwards
seems a bit superfluous. By looking up the a-fmtp attribute directly the number
of allocations in this function gets down a bit.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8125>
2024-12-11 09:23:41 +00:00
Tim-Philipp Müller
7d793d8836 meson: unset GST_TRACERS for g-ir-scanner to avoid warnings
People might have GST_TRACERS=leaks set in their environment
by default, which will now trigger criticals during the build
when calling g-ir-scanner, because we unset GST_PLUGIN_SYSTEM_PATH
so that the scanner doesn't load any plugins.

Fixes #4093

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8121>
2024-12-10 23:07:06 +00:00
Víctor Manuel Jáquez Leal
060563c357 vkoperation: enable inline query only if it's a video operation
This commit enables the usage of inline queries, if and only if, the
provided
pNext structure, in gst_vulkan_opeation_enable_query(), chains a
VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR typed structure.

Also it guards "gstvkvideo-private.h" include

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8112>
2024-12-10 15:52:21 +00:00
Stéphane Cerveau
fd1946c26b vkvideo: add video_maintenance1 check
Add gst_vulkan_video_maintenance1_supported
to check if the video session needs
VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8112>
2024-12-10 15:52:21 +00:00
Thibault Saunier
4aa6b35639 avviddec: Renegotiate srcpad caps on framerate change
We avoid resetting the internal FFmpeg decoder on framerate changes,
but in turn this means we were not updating the framerate on the srcpad,
which was clearly incorrect. This change keeps the optimization but ensures
that we renegotiate downstream when framerate changes occur.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8118>
2024-12-10 12:11:22 +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
Thibault Saunier
b08b49d548 doc: Add some missing doc strings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>
2024-12-10 09:35:36 +00:00
Thibault Saunier
b6d0c57087 docs: Do not try to generate cuda documentation when gir is not generated
On macos it is not

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>
2024-12-10 09:35:36 +00:00
Thibault Saunier
10f31c1f10 tracers: leak: Fix some docstrings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>
2024-12-10 09:35:36 +00:00
Thibault Saunier
9d9d5a6c5b doc: Add tracer objects information
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>
2024-12-10 09:35:36 +00:00
Thibault Saunier
00eac85e58 tracers: latency: Port to using property based configuration
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>
2024-12-10 09:35:36 +00:00
Thibault Saunier
1dbd8353cd gst-inspect: Document tracer properties
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>
2024-12-10 09:35:36 +00:00
Thibault Saunier
ff037ca484 typos: Fix avalaible/available typos
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>
2024-12-10 09:35:35 +00:00
Thibault Saunier
7ab58c8586 tracers: rusage: Mark as set_use_structure_params
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>
2024-12-10 09:35:35 +00:00
Thibault Saunier
619b1df389 gst-plugin-scanner: Do not create tracers when inspecting plugins
Ensuring that GST_TRACERS is not set in that process

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>
2024-12-10 09:35:35 +00:00
Thibault Saunier
d929df61dd leaks: Port to using object property based parameters
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>
2024-12-10 09:35:35 +00:00
Thibault Saunier
5e18499372 tracers: Simplify params handling using GstStructure and object properties
Instead of having each tracer implement its own parameter parsing,
centralize the handling in the tracer subsystem using GstStructure.
This simplifies tracer implementations and provides a consistent way
to handle properties.

It also allows for much better documentation by forcing tracer object
to expose properties

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>
2024-12-10 09:35:35 +00:00
Edward Hervey
18d83192be uridecodebin3: Don't use decodebin3 static sink pad
Makes the code leaner, and fixes the issue which would happen when the
urisourcebin stream that was linked to the sink pad goes away (without any
replacement).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7949>
2024-12-10 08:47:43 +00:00
Edward Hervey
eb24c0eabc decodebin3: Make usage of static sink pad optional
There is no reason why we should mandate people to "at least" use the static
sink pad. This caused issues, like mandating that it should always have valid
content linked to it (problematic in case of upstream stream changes).

Instead we only use it if it's actually linked to, in which case it gets added
to the list of inputs.

This actually simplifies the code too.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7949>
2024-12-10 08:47:43 +00:00
Edward Hervey
93e432bccb urisourcebin: Fix issue re-using outputs
When checking whether a no-longer used output could be re-used for another slot,
we only want to do that for streams which are not still used.

Otherwise we end up potentially re-assigning a demuxer stream to a completely
different one

Furthermore, if we *are* re-using an output slot, indicate what the replacement
GstStream will be so slot matching can work properly (which can happen in the
case of demuxers which add/remove all pads even if only a single one changed)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7949>
2024-12-10 08:47:43 +00:00
Daniel Morin
a1e623d200 analytics: add _N_TO_N relation type
This relation type define relations between each components of two groups.
First component of first group relate to first component of second group,
Second component of second group relate to second component of second group,
and so on. It's a denser way to express relations in this context.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8087>
2024-12-09 18:18:30 +00:00
Seungha Yang
ebd4ec93b1 vecdeque: Fix documentation of push_tail_struct()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8111>
2024-12-09 14:00:33 +00:00
Philippe Normand
eb07c4e6b3 rtpsession: Fix twcc stats structure leaks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8073>
2024-12-09 10:02:23 +00:00
Peter Stensson
4d2e27dcf3 curlhttpsink: Set auth any for http_proxy and https_proxy
There was different behaviour if the proxy was configured through
properties or environment. For properties libcurl would be configured
with any auth, but for environment libcurl would default to using basic.
Now any auth is set for both configuration methods.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7935>
2024-12-09 08:40:19 +00:00
Peter Stensson
e9d32abf98 curlhttpsink: Don't set Content-Length to 0 for proxy
The Content-Length header would unconditionally be included when the
proxy property was set. This would result in requests with both
Content-Length and Transfer-Encoding header. Now we rely on the
use-content-length property in the proxy case aswell. This also makes
sure that Content-Type is set correctly, since before that would be
skipped if proxy was used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7935>
2024-12-09 08:40:19 +00:00
Daniel Morin
89c23137d3 onnx: disable onnxruntime telemetry
Disable the telemetry feautre on onnxruntime.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8092>
2024-12-07 00:23:33 -05:00
Qian Hu
507db9cee5 v4l2object: move height setting outside of per-plane loop
In the V4L2 format, the height parameter
is an attribute of the entire image, not of an individual plane.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8088>
2024-12-06 20:28:17 +00:00
Qian Hu (胡骞)
66e21d1e70 gstvalue: fix crash in transform allocation params to string
when gst_buffer_pool_config_set_allocator (config, alloc, NULL);
gst_structure_to_string or GST_DEBUG (pool, "config %" GST_PTR_FORMAT,
config) will crash. this patch fix that

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7943>
2024-12-06 12:38:53 +00:00
Sebastian Dröge
818f64a641 splitmuxsrc: Calculate the end offset of a fragment once known
If a new fragment is added with a valid duration but no offset then the start
offset is set later based on the end offset of the previous fragment. At that
point the end offset of this fragment can also be calculated and not doing so
would give the next fragment the same start offset.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8069>
2024-12-05 23:28:24 +00:00
Nicolas Dufresne
6b6fb4c8b8 build: gl: Properly add sub-package to gst_libraries
GstGLEGL/Wayland/X11/Viv was actually never written into any of the gir_targets,
as a side effect, their gir was never copied into girs/ and not used to generate
the documentation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8061>
2024-12-05 15:42:54 -05:00
Francisco Javier Velázquez-García
55dc51004c zxing: Update decode hints usage for compatibility with ZXing >= 2.2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7879>
2024-12-05 15:12:00 +00:00
Sebastian Dröge
f9845d0266 flacparse: Improve header validity checks
Allow sample rate, number of channels and bps to change and in that case update
the caps accordingly.

Also move (non-fatal) validity checks and storing of the header values outside
the actual parsing once we actually know that a valid frame is available.

And also don't warn on the last frame with fixed block size blocking strategy
that the block size has changed: the last frame is allowed to be smaller.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8075>
2024-12-05 14:14:51 +00:00
Aaron Boxer
ea1b043047 h265parse: reset nalparser to NULL after it is freed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8074>
2024-12-05 13:19:48 +00:00
sachin gadag
3f6020ddb5 h264parse: set nalparser to NULL after it is freed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8074>
2024-12-05 13:19:48 +00:00
Aaron Boxer
c03fb74469 h265parse: remove useless NULL setting in gst_h265_parser_free
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8082>
2024-12-05 06:41:35 -05:00
Aaron Boxer
95151af803 h264parse: remove useless NULL setting in gst_h264_nal_parser_free
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8082>
2024-12-05 06:39:06 -05:00
Cheung Yik Pang
acc1309cdf video: fix AV12 format lacking the GST_VIDEO_FORMAT_FLAG_ALPHA flag
The GST_VIDEO_FORMAT_FLAG_ALPHA indicates whether a video format has an
alpha channel.  AV12 does have an alpha plane.  Switching from
MAKE_YUV_FORMAT to MAKE_YUVA_FORMAT to generate GST_VIDEO_FORMAT_AV12.

Fixes #4081

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8067>
2024-12-05 10:07:54 +00:00
Edward Hervey
abb11ad8b4 urisourcebin: Fix collection leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8080>
2024-12-05 09:22:00 +01:00
Aniket Hande
37087f129f tsparse: Extract and fill m2ts header for each packet
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7625>
2024-12-05 01:20:19 +00:00
Stéphane Cerveau
6790093fe6 vkoperation: use inline query with video maintenance1
When video_maintenance1 is supported,
gst_vulkan_operation_begin_query will now use
the inline query mechanism instead of vkCmdBeginQuery
API.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7995>
2024-12-04 22:01:02 +00:00
Stéphane Cerveau
59cb6e6869 vkdevice: enable VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7995>
2024-12-04 22:01:02 +00:00
Víctor Manuel Jáquez Leal
a26b348351 vkphysicaldevice: dump if video maintenance1 is supported
Dump if VK_KHR_video_maintenance1 features is supported by the driver.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7995>
2024-12-04 22:01:02 +00:00
Stéphane Cerveau
7d916c7377 libav: free protocol info in gst_ffmpeg_pipe_close
When the media is not seekable, we are calling gst_ffmpeg_pipe_close
which does free the info.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8070>
2024-12-04 20:37:07 +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
Sebastian Dröge
0d674d3abc subprojects: ntv2: Add check for libudev
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4079

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8068>
2024-12-04 18:29:34 +00:00
Sebastian Dröge
19e3617dc0 h264parse: Free SEI if parsing succeeds but alignment afterwards fails
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8056>
2024-12-04 16:05:44 +00:00
Sebastian Dröge
8830c65b8f h265parse: Free SEI if parsing succeeds but alignment afterwards fails
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4076

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8056>
2024-12-04 16:05:44 +00:00
Jan Alexander Steffens (heftig)
6b0efe5453 meson: Drop max version bound from neon
Neon 0.34.0 broke the build again, but the API+ABI has been stable since
0.27 and the library is so-versioned.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8008>
2024-12-04 15:04:14 +00:00
Guillaume Desmottes
bfda0f4858 h265parse: parse unregistered SEI without user data
Same change as in h264parse.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7931>
2024-12-04 13:56:13 +00:00
Guillaume Desmottes
082a8fcd5e h264parse: parse unregistered SEI without user data
We get loads of warnings when parsing videos from users:

gsth264parser.c:1115:gst_h264_parser_parse_user_data_unregistered: No more remaining payload data to store
gsth264parse.c:646:gst_h264_parse_process_sei:<h264parse0> failed to parse one or more SEI message

Those are raised because of unregistered SEI without user data.

The spec does not explicitly state that unregistered SEI needs to have
data and I suppose the UUID by itself can carry valuable information.
FFmpeg also parses and exposes such SEI so there is no reason for us no
too as well.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7931>
2024-12-04 13:56:13 +00:00
L. E. Segovia
e67c997970 examples: iOS: Remove frei0r plugin as we do not ship its plugins
See https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1651#note_2681739

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8024>
2024-12-04 11:00:48 +00:00