Commit graph

121209 commits

Author SHA1 Message Date
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
Nirbheek Chauhan
a3d3a61490 meson: Skip the plugins_doc_caches target if docs are disabled
This is a follow-up to 95eca6d919, due
to which the target existed, but was a no-op, and it was difficult to
notice why the plugin caches are not being generated, since the doc
option is disabled by default.

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
0878a83860 analytics: update gir
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8087>
2024-12-09 18:18:30 +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