platform/upstream/gstreamer.git
5 months agova: display: Optimize out some property indirection
Nicolas Dufresne [Wed, 18 Dec 2024 18:35:53 +0000 (13:35 -0500)]
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>

5 months agoavcodecmap: Add some more channel position mappings
Sebastian Dröge [Wed, 18 Dec 2024 10:21:15 +0000 (12:21 +0200)]
avcodecmap: Add some more channel position mappings

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8173>

5 months agowpe: enable console message with WPE2
Guillaume Desmottes [Tue, 17 Dec 2024 16:36:19 +0000 (17:36 +0100)]
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>

5 months agova: h264dec: Allow "extended" profile decoding
Nicolas Dufresne [Tue, 17 Dec 2024 02:41:55 +0000 (21:41 -0500)]
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>

5 months agopad: Only remove TAG events on STREAM_START if the stream-id actually changes
Sebastian Dröge [Thu, 12 Dec 2024 08:50:30 +0000 (10:50 +0200)]
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>

5 months agowebrtcbin: Tear down src and sink bins before removing them from webrtc
Emil Ljungdahl [Mon, 18 Nov 2024 06:54:55 +0000 (07:54 +0100)]
webrtcbin: Tear down src and sink bins before removing them from webrtc

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7900>

5 months agowebrtcbin: Fix potential deadlock on bin elements cleanup
Emil Ljungdahl [Fri, 15 Nov 2024 14:00:00 +0000 (15:00 +0100)]
webrtcbin: Fix potential deadlock on bin elements cleanup

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7900>

5 months agovtenc: Fix authors of encoder features
Nirbheek Chauhan [Tue, 10 Dec 2024 07:42:18 +0000 (13:12 +0530)]
vtenc: Fix authors of encoder features

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>

5 months agovtenc: Fix class hierarchy in an attempt to fix property docs
Nirbheek Chauhan [Mon, 9 Dec 2024 18:35:53 +0000 (00:05 +0530)]
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>

5 months agovtenc, osxaudio: Fix missing since markers
Nirbheek Chauhan [Mon, 9 Dec 2024 09:42:57 +0000 (15:12 +0530)]
vtenc, osxaudio: Fix missing since markers

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>

5 months agovtenc: Mark rate-control enum as plugin API, and update cache
Nirbheek Chauhan [Mon, 9 Dec 2024 09:42:57 +0000 (15:12 +0530)]
vtenc: Mark rate-control enum as plugin API, and update cache

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>

5 months agoatenc: Add missing since markers and mark plugin API
Nirbheek Chauhan [Mon, 9 Dec 2024 09:48:55 +0000 (15:18 +0530)]
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>

5 months agoavfvideosrc: Add missing since markers for screen-crop properties
Nirbheek Chauhan [Mon, 9 Dec 2024 09:42:06 +0000 (15:12 +0530)]
avfvideosrc: Add missing since markers for screen-crop properties

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>

5 months agodocs: Update macOS plugin docs again
Nirbheek Chauhan [Wed, 4 Dec 2024 19:02:37 +0000 (00:32 +0530)]
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>

5 months agomeson: Skip the plugins_doc_caches target if docs are disabled
Nirbheek Chauhan [Wed, 4 Dec 2024 18:36:58 +0000 (00:06 +0530)]
meson: Skip the plugins_doc_caches target if docs are disabled

This is a follow-up to 95eca6d91912620a8a36b55ae32f72a32bc2475b, 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>

5 months agocccombiner: expose new input-meta-processing type, force
Mathieu Duponchelle [Fri, 6 Dec 2024 18:13:50 +0000 (19:13 +0100)]
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>

5 months agomeson: Improve NVMM CUDA detection
Nirbheek Chauhan [Mon, 2 Dec 2024 11:42:00 +0000 (17:12 +0530)]
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>

5 months agoinfo: Use an RW lock to protect the log functions and their list
Sebastian Dröge [Tue, 9 Jul 2024 08:42:03 +0000 (11:42 +0300)]
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>

5 months agod3d12: Suppress misleading leak report
Seungha Yang [Sun, 15 Dec 2024 15:22:47 +0000 (00:22 +0900)]
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>

5 months agoges-launcher: return early on 'project-loaded' signal on error
Thibault Saunier [Fri, 13 Dec 2024 12:17:32 +0000 (09:17 -0300)]
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>

5 months agoges: project: Add missing API guards
Thibault Saunier [Fri, 13 Dec 2024 12:11:05 +0000 (09:11 -0300)]
ges: project: Add missing API guards

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8145>

5 months agoges: formatter: Keep a reference on the timelines
Thibault Saunier [Fri, 13 Dec 2024 12:09:15 +0000 (09:09 -0300)]
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>

6 months agod3d12: Add d3d12deinterlace element
Seungha Yang [Sun, 7 Apr 2024 10:23:52 +0000 (19:23 +0900)]
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>

6 months agod3dshader: Add YADIF deinterlacing compute shader code
Seungha Yang [Wed, 9 Oct 2024 14:02:09 +0000 (10:02 -0400)]
d3dshader: Add YADIF deinterlacing compute shader code

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8140>

6 months agoappsrc: Decrease log level for item drop
Max Romanov [Fri, 13 Dec 2024 12:51:20 +0000 (15:51 +0300)]
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>

6 months agoges-meta-container: Fix the GET_INTERFACE macro
Thibault Saunier [Fri, 13 Dec 2024 13:14:32 +0000 (10:14 -0300)]
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>

6 months agovideodecoder: set decode only flag by decode only buffer
Dean Zhang (张安迪) [Fri, 13 Dec 2024 02:07:58 +0000 (10:07 +0800)]
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>

6 months agourisourcebin: Only rewrite stream-start event once
Edward Hervey [Thu, 12 Dec 2024 04:51:09 +0000 (05:51 +0100)]
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>

6 months agogl: raise WARNING instead of ERROR when no connector is connected
Guillaume Desmottes [Thu, 12 Dec 2024 09:43:26 +0000 (10:43 +0100)]
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>

6 months agortppassthroughpay: ensure buffer is writable before mapping writable
Matthew Waters [Thu, 12 Dec 2024 01:05:04 +0000 (12:05 +1100)]
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>

6 months agoanalytics: add rotation to object detection mtd
Oskar Fiedot [Wed, 11 Dec 2024 10:53:47 +0000 (11:53 +0100)]
analytics: add rotation to object detection mtd

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7938>

6 months agowebrtc: Simplify fmtp handling in codec stats
Philippe Normand [Tue, 10 Dec 2024 16:15:09 +0000 (16:15 +0000)]
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>

6 months agomeson: unset GST_TRACERS for g-ir-scanner to avoid warnings
Tim-Philipp Müller [Tue, 10 Dec 2024 12:52:33 +0000 (12:52 +0000)]
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>

6 months agovkoperation: enable inline query only if it's a video operation
Víctor Manuel Jáquez Leal [Tue, 10 Dec 2024 12:42:41 +0000 (13:42 +0100)]
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>

6 months agovkvideo: add video_maintenance1 check
Stéphane Cerveau [Mon, 9 Dec 2024 13:45:01 +0000 (14:45 +0100)]
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>

6 months agoavviddec: Renegotiate srcpad caps on framerate change
Thibault Saunier [Mon, 9 Dec 2024 19:46:12 +0000 (16:46 -0300)]
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>

6 months agodecklink: Add missing video modes to gst_decklink_mode_get_type()
Armin Begovic [Fri, 6 Dec 2024 14:15:45 +0000 (15:15 +0100)]
decklink: Add missing video modes to gst_decklink_mode_get_type()

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8110>

6 months agodecklink: Fix copy-paste errors regarding 8K modes
Armin Begovic [Fri, 6 Dec 2024 14:15:34 +0000 (15:15 +0100)]
decklink: Fix copy-paste errors regarding 8K modes

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8110>

6 months agodoc: Add some missing doc strings
Thibault Saunier [Mon, 9 Dec 2024 21:32:34 +0000 (18:32 -0300)]
doc: Add some missing doc strings

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

6 months agodocs: Do not try to generate cuda documentation when gir is not generated
Thibault Saunier [Mon, 9 Dec 2024 15:02:01 +0000 (12:02 -0300)]
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>

6 months agotracers: leak: Fix some docstrings
Thibault Saunier [Sat, 7 Dec 2024 01:49:05 +0000 (22:49 -0300)]
tracers: leak: Fix some docstrings

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

6 months agodoc: Add tracer objects information
Thibault Saunier [Fri, 6 Dec 2024 14:38:26 +0000 (11:38 -0300)]
doc: Add tracer objects information

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

6 months agotracers: latency: Port to using property based configuration
Thibault Saunier [Fri, 6 Dec 2024 14:20:43 +0000 (11:20 -0300)]
tracers: latency: Port to using property based configuration

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

6 months agogst-inspect: Document tracer properties
Thibault Saunier [Fri, 6 Dec 2024 14:13:52 +0000 (11:13 -0300)]
gst-inspect: Document tracer properties

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

6 months agotypos: Fix avalaible/available typos
Thibault Saunier [Fri, 6 Dec 2024 12:26:29 +0000 (09:26 -0300)]
typos: Fix avalaible/available typos

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

6 months agotracers: rusage: Mark as set_use_structure_params
Thibault Saunier [Fri, 6 Dec 2024 12:17:50 +0000 (09:17 -0300)]
tracers: rusage: Mark as set_use_structure_params

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

6 months agogst-plugin-scanner: Do not create tracers when inspecting plugins
Thibault Saunier [Fri, 6 Dec 2024 12:16:57 +0000 (09:16 -0300)]
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>

6 months agoleaks: Port to using object property based parameters
Thibault Saunier [Thu, 5 Dec 2024 21:57:10 +0000 (18:57 -0300)]
leaks: Port to using object property based parameters

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

6 months agotracers: Simplify params handling using GstStructure and object properties
Thibault Saunier [Thu, 5 Dec 2024 21:52:31 +0000 (18:52 -0300)]
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>

6 months agouridecodebin3: Don't use decodebin3 static sink pad
Edward Hervey [Thu, 28 Nov 2024 10:57:57 +0000 (11:57 +0100)]
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>

6 months agodecodebin3: Make usage of static sink pad optional
Edward Hervey [Thu, 28 Nov 2024 10:55:36 +0000 (11:55 +0100)]
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>

6 months agourisourcebin: Fix issue re-using outputs
Edward Hervey [Mon, 25 Nov 2024 09:50:34 +0000 (10:50 +0100)]
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>

6 months agoanalytics: update gir
Daniel Morin [Fri, 6 Dec 2024 21:05:12 +0000 (16:05 -0500)]
analytics: update gir

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8087>

6 months agoanalytics: add _N_TO_N relation type
Daniel Morin [Fri, 6 Dec 2024 05:04:45 +0000 (00:04 -0500)]
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>

6 months agovecdeque: Fix documentation of push_tail_struct()
Seungha Yang [Mon, 9 Dec 2024 13:12:21 +0000 (22:12 +0900)]
vecdeque: Fix documentation of push_tail_struct()

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8111>

6 months agortpsession: Fix twcc stats structure leaks
Philippe Normand [Wed, 4 Dec 2024 16:10:46 +0000 (16:10 +0000)]
rtpsession: Fix twcc stats structure leaks

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8073>

6 months agocurlhttpsink: Set auth any for http_proxy and https_proxy
Peter Stensson [Tue, 19 Nov 2024 09:30:09 +0000 (10:30 +0100)]
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>

6 months agocurlhttpsink: Don't set Content-Length to 0 for proxy
Peter Stensson [Tue, 19 Nov 2024 06:31:20 +0000 (07:31 +0100)]
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>

6 months agoonnx: disable onnxruntime telemetry
Daniel Morin [Sat, 7 Dec 2024 05:23:33 +0000 (00:23 -0500)]
onnx: disable onnxruntime telemetry

Disable the telemetry feautre on onnxruntime.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8092>

6 months agov4l2object: move height setting outside of per-plane loop
Qian Hu [Wed, 4 Dec 2024 08:52:55 +0000 (16:52 +0800)]
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>

6 months agogstvalue: fix crash in transform allocation params to string
Qian Hu (胡骞) [Fri, 22 Nov 2024 13:23:10 +0000 (21:23 +0800)]
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>

6 months agosplitmuxsrc: Calculate the end offset of a fragment once known
Sebastian Dröge [Wed, 4 Dec 2024 14:42:49 +0000 (16:42 +0200)]
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>

6 months agobuild: gl: Properly add sub-package to gst_libraries
Nicolas Dufresne [Tue, 3 Dec 2024 20:16:53 +0000 (15:16 -0500)]
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>

6 months agozxing: Update decode hints usage for compatibility with ZXing >= 2.2
Francisco Javier Velázquez-García [Thu, 5 Dec 2024 12:39:38 +0000 (13:39 +0100)]
zxing: Update decode hints usage for compatibility with ZXing >= 2.2

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7879>

6 months agoflacparse: Improve header validity checks
Sebastian Dröge [Wed, 4 Dec 2024 15:13:12 +0000 (17:13 +0200)]
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>

6 months agoh265parse: reset nalparser to NULL after it is freed
Aaron Boxer [Wed, 4 Dec 2024 19:33:07 +0000 (14:33 -0500)]
h265parse: reset nalparser to NULL after it is freed

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8074>

6 months agoh264parse: set nalparser to NULL after it is freed
sachin gadag [Thu, 1 Aug 2024 14:54:11 +0000 (14:54 +0000)]
h264parse: set nalparser to NULL after it is freed

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8074>

6 months agoh265parse: remove useless NULL setting in gst_h265_parser_free
Aaron Boxer [Thu, 5 Dec 2024 11:41:35 +0000 (06:41 -0500)]
h265parse: remove useless NULL setting in gst_h265_parser_free

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8082>

6 months agoh264parse: remove useless NULL setting in gst_h264_nal_parser_free
Aaron Boxer [Thu, 5 Dec 2024 11:39:06 +0000 (06:39 -0500)]
h264parse: remove useless NULL setting in gst_h264_nal_parser_free

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8082>

6 months agovideo: fix AV12 format lacking the GST_VIDEO_FORMAT_FLAG_ALPHA flag
Cheung Yik Pang [Wed, 4 Dec 2024 10:45:30 +0000 (18:45 +0800)]
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>

6 months agourisourcebin: Fix collection leak
Edward Hervey [Thu, 5 Dec 2024 08:21:04 +0000 (09:21 +0100)]
urisourcebin: Fix collection leak

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8080>

6 months agotsparse: Extract and fill m2ts header for each packet
Aniket Hande [Wed, 16 Oct 2024 06:56:40 +0000 (15:56 +0900)]
tsparse: Extract and fill m2ts header for each packet

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7625>

6 months agoci/abi-check: update image for vulkan changes
Stéphane Cerveau [Mon, 2 Dec 2024 16:17:43 +0000 (17:17 +0100)]
ci/abi-check: update image for vulkan changes

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7995>

6 months agovkoperation: use inline query with video maintenance1
Stéphane Cerveau [Mon, 2 Dec 2024 15:42:06 +0000 (16:42 +0100)]
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>

6 months agovkdevice: enable VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME
Stéphane Cerveau [Thu, 28 Nov 2024 14:49:14 +0000 (15:49 +0100)]
vkdevice: enable VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7995>

6 months agovkphysicaldevice: dump if video maintenance1 is supported
Víctor Manuel Jáquez Leal [Mon, 29 Jul 2024 11:49:05 +0000 (13:49 +0200)]
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>

6 months agolibav: free protocol info in gst_ffmpeg_pipe_close
Stéphane Cerveau [Wed, 4 Dec 2024 15:27:54 +0000 (16:27 +0100)]
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>

6 months agov4l2codecs: Use GstVideoInfoDmaDrm more consistently
Robert Mader [Thu, 28 Nov 2024 22:17:40 +0000 (23:17 +0100)]
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>

6 months agosubprojects: ntv2: Add check for libudev
Sebastian Dröge [Wed, 4 Dec 2024 11:35:08 +0000 (13:35 +0200)]
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>

6 months agoh264parse: Free SEI if parsing succeeds but alignment afterwards fails
Sebastian Dröge [Tue, 3 Dec 2024 11:14:33 +0000 (13:14 +0200)]
h264parse: Free SEI if parsing succeeds but alignment afterwards fails

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8056>

6 months agoh265parse: Free SEI if parsing succeeds but alignment afterwards fails
Sebastian Dröge [Tue, 3 Dec 2024 11:10:04 +0000 (13:10 +0200)]
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>

6 months agomeson: Drop max version bound from neon
Jan Alexander Steffens (heftig) [Fri, 29 Nov 2024 13:41:12 +0000 (14:41 +0100)]
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>

6 months agoh265parse: parse unregistered SEI without user data
Guillaume Desmottes [Tue, 3 Dec 2024 13:44:30 +0000 (14:44 +0100)]
h265parse: parse unregistered SEI without user data

Same change as in h264parse.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7931>

6 months agoh264parse: parse unregistered SEI without user data
Guillaume Desmottes [Wed, 20 Nov 2024 13:16:23 +0000 (14:16 +0100)]
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>

6 months agoexamples: iOS: Remove frei0r plugin as we do not ship its plugins
L. E. Segovia [Mon, 2 Dec 2024 12:32:00 +0000 (09:32 -0300)]
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>

6 months agotsdemux: Lower a GST_FIXME to a GST_DEBUG
Sebastian Dröge [Fri, 15 Nov 2024 14:44:10 +0000 (16:44 +0200)]
tsdemux: Lower a GST_FIXME to a GST_DEBUG

This is not really a refcounting issue and can happen if a new program is in the
process of being activated that contains streams with the same PIDs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7898>

6 months agoci/abi-check: update image for vulkan encoder changes
Víctor Manuel Jáquez Leal [Fri, 29 Nov 2024 13:29:35 +0000 (14:29 +0100)]
ci/abi-check: update image for vulkan encoder changes

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>

6 months agovkencoder-private: add gst_vulkan_encoder_is_started()
Víctor Manuel Jáquez Leal [Tue, 20 Aug 2024 18:43:42 +0000 (20:43 +0200)]
vkencoder-private: add gst_vulkan_encoder_is_started()

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>

6 months agovkencoder-private: add again GST_TYPE_VULKAN_ENCODER_RATE_CONTROL_MODE
Víctor Manuel Jáquez Leal [Fri, 15 Nov 2024 11:41:15 +0000 (12:41 +0100)]
vkencoder-private: add again GST_TYPE_VULKAN_ENCODER_RATE_CONTROL_MODE

It was already part of the old rate control mechanism but it had wrong the
namespace.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>

6 months agovkencoder-private: implement callback to chain control rate structures
Víctor Manuel Jáquez Leal [Fri, 8 Nov 2024 17:05:55 +0000 (18:05 +0100)]
vkencoder-private: implement callback to chain control rate structures

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>

6 months agovkencoder-private: implement callback to chain codec specific structures
Víctor Manuel Jáquez Leal [Fri, 8 Nov 2024 10:44:40 +0000 (11:44 +0100)]
vkencoder-private: implement callback to chain codec specific structures

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>

6 months agovkencoder-private: handle quality level
Víctor Manuel Jáquez Leal [Thu, 19 Sep 2024 14:43:09 +0000 (16:43 +0200)]
vkencoder-private: handle quality level

It creates a new structure for passing the codec quality structure at _start(),
where it will be filled. The quality level can be set or changed according
encoder limits.

Later the quality level will be set at _update_session_parameters() and at each
frame encoding. That's why it has to be set at _start().

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>

6 months agovkencoder-private: rename first_encode_cmd to session_reset
Víctor Manuel Jáquez Leal [Thu, 19 Sep 2024 13:04:09 +0000 (15:04 +0200)]
vkencoder-private: rename first_encode_cmd to session_reset

Since it reflect better when it's needed to be used: to reset the current
session.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>

6 months agovkencoder-private: shuffle down VkVideoBeginCodingInfoKHR initialization
Víctor Manuel Jáquez Leal [Thu, 19 Sep 2024 10:47:17 +0000 (12:47 +0200)]
vkencoder-private: shuffle down VkVideoBeginCodingInfoKHR initialization

to make it more cohesive

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>

6 months agovkencoder-private: remove rate control handling
Víctor Manuel Jáquez Leal [Thu, 5 Sep 2024 12:52:31 +0000 (14:52 +0200)]
vkencoder-private: remove rate control handling

It will be reintroduced later with different approach.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>

6 months agovkencoder-private: enhance algorithm to get the slot index
Víctor Manuel Jáquez Leal [Thu, 19 Sep 2024 11:28:15 +0000 (13:28 +0200)]
vkencoder-private: enhance algorithm to get the slot index

The algorithm for generating the current slot index is a simple round robin,
nonetheless it's not assured that the next slot index it's not still used by a
still living encode picture.

This new way holds an array with the still living encode pictures and the next
slot index looks for a released index in the array.

Its downside is deallocating a picture need to be removed from the array, so the
helper has to be passed to the uninit() function

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>

6 months agovkencoder-private: add VkVideoReferenceSlotInfoKHR in GstVulkanEncoderPicture
Víctor Manuel Jáquez Leal [Thu, 19 Sep 2024 10:21:04 +0000 (12:21 +0200)]
vkencoder-private: add VkVideoReferenceSlotInfoKHR in GstVulkanEncoderPicture

And remove slotIndex since it's part of VkVideoReferenceSlotInfoKHR, simplifying
the reference slots array creation, and changing the tests accordingly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>

6 months agovkencoder-private: check for codec buffer
Víctor Manuel Jáquez Leal [Tue, 3 Dec 2024 14:39:47 +0000 (15:39 +0100)]
vkencoder-private: check for codec buffer

gst_vulkan_video_codec_buffer_new() can return NULL, so it's required to check
the returned value and bail out if needed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>

6 months agovkencoder-private: avoid GstVulkanEncoderPicture allocation
Víctor Manuel Jáquez Leal [Fri, 6 Sep 2024 09:23:40 +0000 (11:23 +0200)]
vkencoder-private: avoid GstVulkanEncoderPicture allocation

By using it as apart of the encoder picture structure that has to initialized
and uninitalized.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>

6 months agovkencoder-private: remove width, height and fps from GstVulkanEncoderPicture
Víctor Manuel Jáquez Leal [Wed, 4 Sep 2024 12:14:04 +0000 (14:14 +0200)]
vkencoder-private: remove width, height and fps from GstVulkanEncoderPicture

In GStreamer that buffer information is decoupled, holding other structures to
describe the stream: GstCaps. So, to keep the GStreamer design this patch
removes these information from GstVulkanEncoderPicture and pass to
gst_vulkan_encoder_encode() a pointer to GstVideoInfo.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>