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
Sebastian Dröge
2d9cd86587
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 >
2024-12-04 08:03:41 +00:00
Víctor Manuel Jáquez Leal
44b8a50879
vkencoder-private: add gst_vulkan_encoder_is_started()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
549404ccaa
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 >
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
e03b124c10
vkencoder-private: implement callback to chain control rate structures
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
b99276a7f9
vkencoder-private: implement callback to chain codec specific structures
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
ab6aafb076
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 >
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
d63ec09b5e
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 >
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
200484a84b
vkencoder-private: shuffle down VkVideoBeginCodingInfoKHR initialization
...
to make it more cohesive
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
fbeb012617
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 >
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
8fc2af44c8
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 >
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
d4de932664
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 >
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
75a6ddf2be
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 >
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
d9e9d2ff72
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 >
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
c1e364ecdc
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 >
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
eef9717478
vkencoder-private: replace packed headers with offset handling
...
Instead of holding all headers in an external array and add them into the
bitstream buffer before the encoding operation, adding extra memory and extra
copy operations, the encoder picture should specify the offset where the Vulkan
will start to add the bitstream slices/frame, because the element has written
already the headers until that offset.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
48b2c3cf74
vkencoder-private: remove nb_refs from GstVulkanEncoderPicture
...
That's the number of references that gst_vulkan_encoder_encode() receives to
process, so it has to go as a parameter, because it's part of the reference
list, not of the picture.
This commit also modified unit tests accordingly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
87db136cc7
vkencoder-private: remove pic_num and pic_order_cnt from GstVulkanEncoderPicture
...
Since they aren't semantically part of the codec-independent encoding operation.
And modify unit tests accordingly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
a8e676a0da
vkencoder-private: remove is_ref member from GstVulkanEncoderPicture
...
It's not used. Modified the unit test accordingly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
4a221aad8a
vkencoder-private: don't store output data size
...
There's no need to store in encoder helper the output data size, that's
responsibility of the caller when an output buffer is allocated.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
091fe0c1e7
vkencoder-private: enhance capabilities logging
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
1df99ec0d4
vulkan: store in GstVulkanVideoCapabilities encoder and decoder caps
...
The structure already stored the generic video capabilities and the specific
codec capabilities both for encoding an decoding. The generic decoder
capabilities weren't stored because it was only used internally in the decoder
helper object. Nonetheless, for the encoder, the elements will need the generic
encoder capabilities to configure the encoding. That's why it's required to
expose it as part of GstVulkanVideoCapabilities. And the generic decoder is
included for the sake of symmetry.
While updating the API vkvideoencodeh265 test got some code-style fixes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
cf9cc5ec1b
vkencoder-private: rename GstVulkanEncoderPicture
...
GstVulkanEncodePicture breaks the namespace. This commit fixes it by renaming it
to GstVulkanEncoderPicture, also new() and free() signature functions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:44 +00:00
Seungha Yang
a830c58139
nvdswrapper: Add NVIDIA DeepStream wrapper plugin
...
Adding a NVIDIA DeepStream SDK based plugin with a dewarp element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7357 >
2024-12-04 01:19:19 +00:00
Sebastian Dröge
519d86d9f3
qtdemux: Add size check for parsing SMI / SEQH atom
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-244
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3853
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059 >
2024-12-03 21:01:41 +00:00
Sebastian Dröge
bfebca8307
qtdemux: Check for invalid atom length when extracting Closed Caption data
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-243
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3849
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059 >
2024-12-03 21:01:41 +00:00
Sebastian Dröge
7d3f221d87
qtdemux: Actually handle errors returns from various functions instead of ignoring them
...
Ignoring them might cause the element to continue as if all is fine despite the
internal state being inconsistent. This can lead to all kinds of follow-up
issues, including memory safety issues.
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-245
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3847
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059 >
2024-12-03 21:01:41 +00:00
Sebastian Dröge
19359e2b25
qtdemux: Make sure there are enough offsets to read when parsing samples
...
While this specific case is also caught when initializing co_chunk, the error
is ignored in various places and calling into the function would lead to out of
bounds reads if the error message doesn't cause the pipeline to be shut down
fast enough.
To avoid this, no matter what, make sure enough offsets are available when
parsing them. While this is potentially slower, the same is already done in the
non-chunks_are_samples case.
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-245
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3847
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059 >
2024-12-03 21:01:41 +00:00
Sebastian Dröge
4a0e8bf92b
qtdemux: Fix error handling when parsing cenc sample groups fails
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-238, GHSL-2024-239, GHSL-2024-240
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3846
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059 >
2024-12-03 21:01:41 +00:00
Sebastian Dröge
98f3934c48
qtdemux: Fix length checks and offsets in stsd entry parsing
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-242
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3845
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059 >
2024-12-03 21:01:41 +00:00
Sebastian Dröge
c1cd838706
qtdemux: Make sure enough data is available before reading wave header node
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-236
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3843
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059 >
2024-12-03 21:01:41 +00:00
Sebastian Dröge
1d534ac209
qtdemux: Make sure only an even number of bytes is processed when handling CEA608 data
...
An odd number of bytes would lead to out of bound reads and writes, and doesn't
make any sense as CEA608 comes in byte pairs.
Strip off any leftover bytes and assume everything before that is valid.
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-195
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3841
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059 >
2024-12-03 21:01:41 +00:00
Sebastian Dröge
5a9e80c01b
qtdemux: Check sizes of stsc/stco/stts before trying to merge entries
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-246
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3854
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059 >
2024-12-03 21:01:41 +00:00
Sebastian Dröge
0f4dae9b01
qtdemux: Don't iterate over all trun entries if none of the flags are set
...
Nothing would be printed anyway.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059 >
2024-12-03 21:01:41 +00:00
Sebastian Dröge
cbd659c58f
qtdemux: Fix debug output during trun parsing
...
Various integers are unsigned so print them as such. Also print the actual
allocation size if allocation fails, not only parts of it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059 >
2024-12-03 21:01:41 +00:00
Antonio Morales
ae61a604c0
qtdemux: Fix integer overflow when allocating the samples table for fragmented MP4
...
This can lead to out of bounds writes and NULL pointer dereferences.
Fixes GHSL-2024-094, GHSL-2024-237, GHSL-2024-241
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3839
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059 >
2024-12-03 21:01:41 +00:00
Sebastian Dröge
474eb62d85
matroskademux: Put a copy of the codec data into the A_MS/ACM caps
...
The original codec data buffer is owned by matroskademux and does not
necessarily live as long as the caps.
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-280
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3894
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8057 >
2024-12-03 20:02:52 +00:00
Sebastian Dröge
b84a0f3263
matroskademux: Skip over zero-sized Xiph stream headers
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-251
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3867
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8057 >
2024-12-03 20:02:52 +00:00
Sebastian Dröge
c20eff779d
matroskademux: Skip over laces directly when postprocessing the frame fails
...
Otherwise NULL buffers might be handled afterwards.
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-249
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3865
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8057 >
2024-12-03 20:02:52 +00:00
Sebastian Dröge
395f2b3ffd
matroskademux: Don't take data out of an empty adapter when processing WavPack frames
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-249
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3865
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8057 >
2024-12-03 20:02:52 +00:00
Sebastian Dröge
8aa1c185cf
matroskademux: Check for big enough WavPack codec private data before accessing it
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-250
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3866
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8057 >
2024-12-03 20:02:52 +00:00
Sebastian Dröge
b7ad9a2c5d
matroskademux: Fix off-by-one when parsing multi-channel WavPack
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8057 >
2024-12-03 20:02:52 +00:00
Sebastian Dröge
c0dceda8e9
matroskademux: Only unmap GstMapInfo in WavPack header extraction error paths if previously mapped
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-197
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3863
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8057 >
2024-12-03 20:02:51 +00:00
Sebastian Dröge
0870e87c7c
avisubtitle: Fix size checks and avoid overflows when checking sizes
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-262
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3890
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8043 >
2024-12-03 18:57:06 +00:00
Sebastian Dröge
4f381d1501
wavparse: Check size before reading ds64 chunk
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-261
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3889
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8042 >
2024-12-03 18:03:43 +00:00
Sebastian Dröge
526d0eef0d
wavparse: Fix clipping of size to the file size
...
The size does not include the 8 bytes tag and length, so an additional 8 bytes
must be removed here. 8 bytes are always available at this point because
otherwise the parsing of the tag and length right above would've failed.
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-260
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3888
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8042 >
2024-12-03 18:03:43 +00:00
Sebastian Dröge
93d79c22a8
wavparse: Check that at least 32 bytes are available before parsing smpl chunks
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-259
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3887
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8042 >
2024-12-03 18:03:43 +00:00
Sebastian Dröge
c72025cabd
wavparse: Check that at least 4 bytes are available before parsing cue chunks
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8042 >
2024-12-03 18:03:43 +00:00
Sebastian Dröge
296e17b4ea
wavparse: Fix parsing of acid chunk
...
Simply casting the bytes to a struct can lead to crashes because of unaligned
reads, and is also missing the endianness swapping that is necessary on big
endian architectures.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8042 >
2024-12-03 18:03:43 +00:00
Sebastian Dröge
4c198f4891
wavparse: Make sure enough data for the tag list tag is available before parsing
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-258
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3886
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8042 >
2024-12-03 18:03:43 +00:00
Sebastian Dröge
13b48016b3
wavparse: Check for short reads when parsing headers in pull mode
...
And also return the actual flow return to the caller instead of always returning
GST_FLOW_ERROR.
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-258, GHSL-2024-260
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3886
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3888
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8042 >
2024-12-03 18:03:43 +00:00
Sebastian Dröge
1d1c9d63be
gdkpixbufdec: Check if initializing the video info actually succeeded
...
Otherwise a 0-byte buffer would be allocated, which gives NULL memory when
mapped.
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-118
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3876
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8041 >
2024-12-03 16:46:04 +00:00
Sebastian Dröge
3cdf206f4f
jpegdec: Directly error out on negotiation failures
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-247
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3862
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8040 >
2024-12-03 15:26:04 +00:00
Sebastian Dröge
5093691ef2
vorbisdec: Set at most 64 channels to NONE position
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-115
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3869
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8035 >
2024-12-03 14:30:41 +00:00
Sebastian Dröge
4c40f73b70
subparse: Check for NULL return of strchr() when parsing LRC subtitles
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-263
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3892
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8039 >
2024-12-03 13:13:40 +00:00
Sebastian Dröge
403b10eba0
ssaparse: Don't use strstr() on strings that are potentially not NULL-terminated
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8036 >
2024-12-03 12:03:49 +00:00
Sebastian Dröge
15bb318416
ssaparse: Search for closing brace after opening brace
...
Otherwise removing anything between the braces leads to out of bound writes if
there is a closing brace before the first opening brace.
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-228
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3870
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8036 >
2024-12-03 12:03:49 +00:00
Sebastian Dröge
aa07d94c10
discoverer: Don't print channel layout for more than 64 channels
...
64+ channels are always unpositioned / unknown layout.
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-248
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3864
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8034 >
2024-12-03 10:33:22 +00:00
Mathieu Duponchelle
e633ec6428
oggstream: review and fix per-format min_packet_size
...
This addresses all manually detected invalid reads in setup functions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8038 >
2024-12-03 08:59:25 +00:00
Mathieu Duponchelle
006047a23a
vorbis_parse: check writes to GstOggStream.vorbis_mode_sizes
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-117 Fixes gstreamer#3875
Also perform out-of-bounds check for accesses to op->packet
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8038 >
2024-12-03 08:59:25 +00:00
Sebastian Dröge
2838374d6e
opusdec: Set at most 64 channels to NONE position
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-116
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3871
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8037 >
2024-12-03 08:09:09 +00:00
Sebastian Dröge
537161868f
id3v2: Don't try parsing extended header if not enough data is available
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-235
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3842
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8033 >
2024-12-03 03:29:34 +00:00
Sebastian Dröge
f8e398c46f
qtdemux: Avoid integer overflow when parsing Theora extension
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-166
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3851
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8032 >
2024-12-03 02:24:16 +00:00
Sebastian Dröge
f1cdc6f243
allocator: Avoid integer overflow when allocating sysmem
...
Thanks to Antonio Morales for finding and reporting the issue.
Fixes GHSL-2024-166
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3851
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8032 >
2024-12-03 02:24:16 +00:00
Jakub Adam
2209d4382f
gldownload: warn on fallback from DMABuf to system memory
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8013 >
2024-12-02 20:25:37 +00:00
Nicolas Dufresne
85969fdaa7
level: Fix integer overflow when filling LevelMeta
...
The level in GstAudioLevelMeta is represented as a signed 8bit value from 0 to
127 (with 127 meaning silence). When converting from double, make sure to clip
the value, this also prevent integer overflow in the conversion. This fixes an
issue where a lower then -127db is reported and random level with near silent
streams (due to integer overflow).
Fixes #4068
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8012 >
2024-12-02 19:08:49 +00:00
Pablo Sun
4507f92b0d
kmssink: Add mediatek auto-detection
...
Add MediaTek display controller into list of
auto-detected modules.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8023 >
2024-12-02 16:43:45 +00:00
Xavier Claessens
fa57d776d8
videorate: convert next_ts to new segment instead of restarting from 0
...
When receiving a new segment we should not restart PTS from the new
segment' start. Instead convert current position into the new segment if
possible.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7977 >
2024-12-02 15:45:20 +00:00
Xavier Claessens
bfc4812bbe
audiorate: convert next_ts to new segment instead of restarting from 0
...
When receiving a new segment we should not restart PTS from the new
segment' start. Instead convert current position into the new segment if
possible.
Fixes : #4060
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7977 >
2024-12-02 15:45:20 +00:00
Xavier Claessens
0d8bdaaf17
audiorate: Always push updated segment
...
Convert segment to TIME format immediately instead of waiting for
_chain() to be called. This fixes converted segment never being pushed
downstream.
Fix the convert function that was copying some fields in the wrong
direction. Add fast copy if segment is already in TIME format.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7977 >
2024-12-02 15:45:20 +00:00
Alicia Boya García
fbad7b593d
validate-scenario: Fix busy waiting, missing lock
...
execute_next_action_full() logs that it removes the source when an
action returns ASYNC, but the code for that was incomplete, as it was
setting source_id to zero but not actually removing the source.
This lead to execute_next_action_full() being run continuously, only
alliviated by the default 10ms interval in the GSource from
`scenario->priv->action_execution_interval`.
This patch fixes that. As a drive-by fix it also adds locking to one
remaining unlocked usage of `priv->execute_actions_source_id`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8014 >
2024-12-02 14:36:59 +00:00
Philippe Normand
c683cdc914
rtp: Fix precision loss in gst_rtcp_ntp_to_unix()
...
Without this patch the UNIX timestamp resulting from the translation from NTP
would be off by one nano-second.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8010 >
2024-12-02 10:24:01 +00:00
Sebastian Dröge
1ee349f986
systemclock: Don't keep the clock entry locked while getting the time from the clock
...
gst_clock_get_time() will take the clock mutex, which would then result in a lock
order violation and possible deadlocks. If both mutexes are to be locked, the
clock must always be locked first.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7994 >
2024-12-02 08:21:59 +00:00
Sebastian Dröge
ec698179a9
systemclock: Get rid of conditional unlocking of the clock entries
...
At every point it is known whether the entry needs to be unlocked or not.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7994 >
2024-12-02 08:21:59 +00:00
Sebastian Dröge
4447114713
systemclock: Remove confusing conditional unlock
...
At this point the entry is always locked and needs to be unlocked.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7994 >
2024-12-02 08:21:59 +00:00
Sebastian Dröge
37b9bfdd2e
systemclock: Use a flag while waiting for the async thread to start
...
Otherwise there can be spurious wakeups.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7994 >
2024-12-02 08:21:59 +00:00
Sebastian Dröge
3cdc14df99
flvmux: Fix off-by-one in month/day-of-the-week array
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4074
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8017 >
2024-12-01 09:49:29 +00:00
Sebastian Dröge
f7aac1cc07
rtsp: Fix off-by-one in month/day-of-the-week array
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8017 >
2024-12-01 09:49:29 +00:00
Alicia Boya García
835bc0eef2
validate.py: Fix warning about wrong escape
...
There were a couple strings containing \(. That is not a valid escape
sequence in Python. The escape sequence was meant for GStreamer, and as
such either the backslash should be doubled or a raw string must be
used. This patch uses the latter for readability.
Python 3.13 will print a warning when a invalid escape sequence in a
string is found.
As a drive-by fix, this patch fixes fixes whitespace issues in the file
to make the Python linter happy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8015 >
2024-11-30 15:22:08 +00:00
Olivier Crête
f2c08099fd
v4l2src: Handle framerate not being a range
...
The framerate can be a range or a fraction, one now needs to handle both
cases. If it's not a range, then the framerate needs to be exactly the same.
Also avoid leaking the GstStructure
Fixes a regression introduced by https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7850
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8000 >
2024-11-29 19:45:31 +00:00
Sebastian Dröge
73ab6adaf5
rtspsrc: Update version of tcp-timestamp property to 1.24.10
...
It was backported to 1.24.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8005 >
2024-11-29 11:12:04 +00:00
Sebastian Dröge
4a040aa11d
shout2send: Unref event at the end of the event function
...
The function takes ownership of it and should get rid of it at the end.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7992 >
2024-11-29 10:12:00 +00:00
Edward Hervey
acf1efbf8d
gl: Add missing Since marker
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8001 >
2024-11-29 08:44:30 +00:00
Víctor Manuel Jáquez Leal
1cc0a7d2bb
vkencoder-private: keep only one DPB view for layered DPB
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993 >
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
133011c9ba
vkencoder-private: increase reference slots array
...
H264 has the maximum number of refs (36) of any supported codec.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993 >
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
479defdcf9
vkencoder_private: move view creation to picture init
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993 >
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
15a3ebf01e
vkencoder-private: shuffle up operation and query creation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993 >
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
83cd24a30d
vkencoder-private: shuffle up get format to bail out better
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993 >
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
98d30cc30a
vkencoder-private: define encoded feedback flags by removing override bit
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993 >
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
984956a6fe
vkencoder-private: fix parameters overrides
...
First remove validations since they will fail if there isn't a write operation.
It's valid to pass data without write operations.
Finally, it should check for hasOverride in feedback info. Nonetheless, there's
a NVIDIA bug returning always FALSE for hasOverride, that's why we currently
force it to TRUE.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993 >
2024-11-29 06:36:52 +00:00
Philipp Zabel
c024c5e3bf
gstgldmabufbufferpool: use gsteglimagecache
...
Store the imported GstEGLImage in a GstEGLImageCache. Since this passes
ownership to the cache, stop unreffing the images from the GstMemory.
Free the cache when the buffer pool is stopped.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 15:25:28 -05:00
Philipp Zabel
f18d6fcb40
glupload/egl: Extract EGL image cache and make it public
...
Extract the EGLImage cache from gstglupload.c, place it in a separate
source file gsteglimagecache.c, and make the API public, so it can be
reused by the gldownload element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 15:25:28 -05:00
Nicolas Dufresne
a18f1af1a4
gldownload: Implement importing RGBA with modifiers
...
For single plane RGBA based formats, implement support for modifiers.
This fixes issues where linear is actually configured in GL causing
visual artifacts.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 15:25:28 -05:00
Jakub Adam
b7970a4d95
gldownload: enumerate emulated video formats
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 15:25:28 -05:00
Jakub Adam
1ef9f6ab26
glcontext/egl: Fix use of uninitialized memory
...
At least some Mesa drivers (see llvmpipe_query_dmabuf_modifiers()) don't
initialize the provided external_only array, so some format/modifier
combinations could get incorrectly marked as only external.
Make sure we zerofill the array before passing it to
eglQueryDmaBufModifiersEXT().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 15:25:28 -05:00
Nicolas Dufresne
5b55930db8
gldmabufbufferpool: allow the dmabuf_pool configuration to change
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 15:25:27 -05:00
Jakub Adam
533d115659
downloadelement: support dma_drm caps in try_export_dmabuf
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 15:25:27 -05:00
Jakub Adam
188b626ffc
gldownload: import DMABufs from downstream pool
...
* if downstream provides us with a pool that can allocate DMA buffers,
gldownload wraps it into a GL buffer pool that uses
glEGLImageTargetTexture2DOES() to import dmabuf into textures
* upstream GL elements can allocate from that pool
* gldownload unwraps DMA buffers from incoming GL buffers and passes
them downstream
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 15:25:27 -05:00
Jakub Adam
270e186311
glcontext_egl: add method to check if format supports a modifier
...
Makes _check_modifier from glupload reusable.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 15:25:27 -05:00
Jakub Adam
d80477d769
glupload: make _dma_buf_transform_* functions public API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 15:25:27 -05:00
Jakub Adam
57f36ed9d9
glupload: rename GstGLUploadDrmFormatFlags -> GstGLDrmFormatFlags
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 13:46:08 -05:00
Nirbheek Chauhan
75848859f1
kms: Bump libdrm requirement to 2.4.108
...
DRM modifier support requires drmModeFormatModifierBlobIterNext()
which was added in 2.4.108. See:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174#note_2673883
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7991 >
2024-11-28 15:43:42 +00:00
wbartel
de41680f78
gstreamer: prefix debug dot node names to prevent splitting
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7979 >
2024-11-28 15:38:56 +00:00
Jan Alexander Steffens (heftig)
4586260191
cccombiner: Improve get_next_time to avoid spinning
...
Avoid aggregate getting called in a loop when timed out but we're not in
a state where we can produce a buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1746 >
2024-11-28 14:37:07 +00:00
Jan Alexander Steffens (heftig)
0f2583d286
cccombiner: Add caption_pad field to avoid get_static_pad
...
Save a reference to the caption pad as well. This will make the
`get_next_time` implementation cheaper.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1746 >
2024-11-28 14:37:07 +00:00
Jan Alexander Steffens (heftig)
49ecde573c
cccombiner: Pass caption_pad to schedule_caption
...
Avoid having to find this pad again.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1746 >
2024-11-28 14:37:07 +00:00
Jan Alexander Steffens (heftig)
9ef06d77a7
cccombiner: Add video_pad field to avoid pad get/ref/unref
...
Saving a reference to this always-present pad simplifies the code and
avoids a lot of pad list scans and refcounting.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1746 >
2024-11-28 14:37:07 +00:00
Mathieu Duponchelle
9cb2eb4b9b
x264enc: expose nal-hrd property
...
It can be used to force true CBR, and will cause the encoder
to output null padding packets.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/908 >
2024-11-28 13:32:56 +00:00
Sebastian Dröge
05985247d1
streamsynchronizer: Only send GAP events out of source pads
...
If streamsynchronizer is waiting on the stream's sinkpad and srcpad at the same
time, it can happen that the GAP event is otherwise sent out of the sinkpad,
which is in the wrong direction.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7950 >
2024-11-28 12:38:07 +00:00
Tim-Philipp Müller
13f2b7dd74
discoverer: fix build with older glib versions
...
Follow-up to !7969
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7988 >
2024-11-28 11:40:38 +00:00
Sebastian Dröge
835e232e8c
rtspsrc: Use a flow combiner at the source pads instead of custom logic
...
Most importantly, this ensures that UDP streams still continue to run even if
they are not linked for a while. With decodebin3 the pads will all be unlinked
unless selected, and selecting a stream at a later time would otherwise switch
to a stream with a stopped udpsrc.
Apart from that this also ensures that actual errors from handling RTP packets
between udpsrc and the source pads are not silently ignored but considered
errors like they would be for TCP/interleaved.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7946 >
2024-11-28 09:40:21 +00:00
Sebastian Dröge
f880abba46
rtspsrc: Don't set pad event/query function twice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7946 >
2024-11-28 09:40:21 +00:00
Víctor Manuel Jáquez Leal
603e7c3e5f
vulkan: add gst_vulkan_video_image_create_view()
...
This function is moved from gstvkdecoder-private so it could be used by
gstvkencoder-private too, removing there what it should be duplicated code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7984 >
2024-11-28 07:05:40 +01:00
Víctor Manuel Jáquez Leal
3389347467
vkencoder-private: fix documentation
...
The function doesn't take the reference from caller, it keeps it's own
reference, so transfer is none.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
b88f15406f
vkencoder-private: fix code style and use gpointer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
20a0a46676
vkencoder-private: fix and complete public functions prechecks
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
e9ef5e0c36
vkencoder-private: check for layered buffer when new picture
...
And balance `if` curly brackets.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
066144f78c
vkencoder-private: early return if dpb pool or dpb buffer already exist
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
52bd1931b8
vkencoder-private: usage structure is provided by caller
...
As all the profile structure, it's not intended to be filled in
gst_vulkan_encoder_start() function, but by the caller.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
a12daaca28
vkencoder-private: fix how to get bitstream buffer size
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
7a9bd2c9d4
vkencoder-private: doc: fix function name
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
e79ff5a4f1
vkencoder-private: use gst_clear_object()
...
Instead of g_clear_object() for sake of coherence.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
5e78ffe87a
vkencoder-private: fix return value to gst_vulkan_encoder_encode()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
751d628160
vkencoder-private: doc: remove (in) annotation
...
because it's the default one
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
af0e15e9be
vkencoder-private: move out indent macros
...
Outside of the structures whenever is possible, given indent limitations. In this way
the code has a better readability.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Jonas Rebmann
225d6b7e11
v4l2videodec: fix freeze race condition
...
This fixes a possible deadlock between gst_v4l2_video_dec_change_state
and gst_v4l2_video_dec_loop on the buffer pool.
When stopping capture, the flushing state of the v4l2 capture buffer
pool gets reverted in the processing loop after it was set via
gst_v4l2_object_unlock (self->v4l2capture) (in
gst_v4l2_video_dec_change_state). As a result, gst_v4l2_video_dec_loop
does not return and consequently, gst_pad_stop_task gets stuck waiting
for the GST_PAD_STREAM_LOCK. To circumvent this, skip acquiring the
buffer pool if stopping capture.
Suggested-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7958 >
2024-11-27 17:42:11 +00:00
Sebastian Dröge
ccb40ca7d0
discoverer: Fix formatting of a debug log string
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7969 >
2024-11-27 16:48:55 +00:00
Sebastian Dröge
27a2fa73bc
discoverer: Move cache file tracking from GstDiscovererInfo into GstDiscoverer
...
It's only used temporarily during discovery and makes no sense as part of the
resulting info.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7969 >
2024-11-27 16:48:55 +00:00
Sebastian Dröge
9e4c173c3c
discoverer: Move stream counter from GstDiscovererInfo into GstDiscoverer
...
It's only used temporarily during discovery and makes no sense as part of the
resulting info.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7969 >
2024-11-27 16:48:55 +00:00
Sebastian Dröge
dc3f2c6721
discoverer: Also copy missing element details when copying a GstDiscovererInfo
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7969 >
2024-11-27 16:48:55 +00:00
Sebastian Dröge
d553448b95
discoverer: Make sure the missing elements details array is NULL-terminated in a thread-safe way
...
And also avoid a possible out-of-bounds read if the array contains no elements.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7969 >
2024-11-27 16:48:55 +00:00
Xi Ruoyao
ee3802cf71
x265: Allow building with x265-4.1
...
In x265-4.1 masteringDisplayColorVolume is changed from a pointer to a
character array embedded in struct x265_param.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7968 >
2024-11-27 13:04:57 +00:00
Nirbheek Chauhan
23a006c64f
meson: Don't unconditionally invoke the libsoup subproject
...
fallback: kwarg will invoke the specified subproject even if required:
false, which is not what we want here.
Reported at https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4045#note_2674340
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7965 >
2024-11-27 12:12:36 +00:00
Tomáš Polomský
fa1ed5d210
appsink: fix timeout logic for gst_app_sink_try_pull_sample
...
In case of gst_app_sink_try_pull_object returns an object instead of a sample,
the whole process must be restarted with the reduced timeout, otherwise requested
timeout could be easily exceeded.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7962 >
2024-11-27 11:09:47 +00:00
Mathieu Duponchelle
b433d72a4d
cccombiner: expose input-meta-processing property
...
It can be used to discard closed captions from the input pad if the
matching video buffer already held closed captions.
It is useful in a scenario where captions are generated for an AV
stream, but the incoming stream already has embedded captions for
some intervals, and those original captions should be preferred.
It can also be used to make sure input CC meta is always dropped,
the default behavior remains to append aggregated CC to whatever
CC meta was already present on the input video buffer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6072 >
2024-11-27 10:02:22 +00:00
Matthew Waters
e2d388000c
qt(6)/material: ensure that we always update the context in setBuffer()
...
Scenario is that there are two (or more) GstGLContext's wrapping Qt's GL
context from either multiple qml(6)glsink or qml(6)glsrc elements. Call flow is this:
1. material 1 setBuffer()
2. material 1 bind()
3. material 2 setBuffer()
4. material 2 bind()
If the call to setBuffer() reuses the same buffer as previous call, then the
qt context is not updated in the material. If however the previously used qt
context by the material had been deactivated or freed, then bind() would fail
and could result in a critical like so:
gst_gl_context_thread_add: assertion 'context->priv->active_thread == g_thread_self ()' failed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7970 >
2024-11-26 22:57:51 +00:00
Nirbheek Chauhan
3540b33597
meson: Use new has_tools kwarg to avoid unnecessary lrelease dependency
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7937 >
2024-11-26 18:32:44 +00:00
Seungha Yang
6bcedb0d8b
d3d12converter: Gamma LUT related enhancements
...
* Build gamma LUT using shader, instead of CPU side math then uploading
* Make gamma LUT sharable across multiple converters
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7951 >
2024-11-26 16:06:08 +00:00
Seungha Yang
f3191aca58
d3dshader: Add shader for building gamma LUT
...
Newly added shader will be used by converter to construct
gamma encode/decode LUT texture
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7951 >
2024-11-26 16:06:08 +00:00
Jan Alexander Steffens (heftig)
59d98aa4ac
ccutils: Rename wrote_first to write_field1
...
This better describes what we're doing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7967 >
2024-11-26 14:02:24 +00:00
Jan Alexander Steffens (heftig)
9a3b4dff24
ccutils: Fix a typo in cc_buffer_take_cea608_field2
...
There are no users of cc_buffer_take_cea608_field2, so this never was a
problem.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7967 >
2024-11-26 14:02:24 +00:00
Jan Alexander Steffens (heftig)
a6a5401891
ccutils: Fix a typo in max_buffer_time handling
...
All users set max_buffer_time to GST_CLOCK_TIME_NONE, effectively
infinite, so this never was a problem.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7967 >
2024-11-26 14:02:24 +00:00
Jan Alexander Steffens (heftig)
3a119b20b3
ccutils: Remove broken branch
...
This branch was added in dd00dab5e9
but is
never actually taken, as it requires `cc_data` to be null but
`cc_data_len` to be non-null. It would then dereference the null
`cc_data`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7967 >
2024-11-26 14:02:24 +00:00
Philippe Normand
5a6594dea5
meson: Check for libsoup only if required
...
LibSoup is needed for the soup and adaptivedemux2 plugins, so there is no need
to do the lookup if none of those plugins is enabled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7964 >
2024-11-26 12:40:45 +00:00
Albert Sjolund
c31cbda5de
webrtc: don't crash on invalid bundle id
...
If the bundle id forwarded to connect_rtpfunnel is not valid,
the assertion fails and crashes the program. This is now instead
an error.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7963 >
2024-11-26 09:27:20 +01:00
Tomáš Polomský
7008e76c62
v4l2object: Fixed incorrect maximum value for int range
...
There are objects where maximum is not multiplication of the step,
e.g. there was a combination where max was 65535 with step 2.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7953 >
2024-11-25 19:33:40 +01:00
wbartel
6f20cd69fe
tracers: unlock leaks tracer if already tracking
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7954 >
2024-11-25 17:58:47 +00:00
Sebastien Cote
5b5c4147d3
vtenc: add support for the HLG color transfer
...
Fixes #4047
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7947 >
2024-11-25 16:45:20 +00:00
Stéphane Cerveau
7dfed55929
vkoperation: update doc to skip barriers array methods
...
Some methods are using arrays of element which type can
vary at compile time. These methods should not
be introspectable as it's not possible to determine
the final type.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7880 >
2024-11-25 15:24:17 +00:00
Sebastian Dröge
025b4a2f8d
splitmuxsrc: Convert part reader to a bin with a non-async bus
...
A pipeline always has an async bus, which involves allocating an fd pair. As
splitmuxsrc only uses the bus' sync handler, this is not required and can easily
cause splitmuxsrc to exceed the fd limit for no good reason.
The other features of GstPipeline are also not needed here, e.g. clock selection.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7952 >
2024-11-25 15:55:50 +02:00
Edward Hervey
18b941dfd5
decodebin3: Unify collection switching checks
...
We only want to switch to a selection of an output collection if all streams are
present.
This was previously only done in one place (when triggering by new incoming
streams) but not when triggered by user/application.
Avoid this by moving the check to handle_stream_switch()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7941 >
2024-11-25 08:03:38 +00:00
Zhong Hongcheng
821754e2d5
tests: Add the VVC(H266) parser test cases
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5003 >
2024-11-24 16:49:25 +00:00
He Junyan
24944fd153
libs: codecparsers: Implement the VVC(H266) parser part II
...
Implement the picture header, slice header and SEI parsing functions.
Co-authored-by: spartazhc <spartazhc@gmail.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5003 >
2024-11-24 16:49:25 +00:00
He Junyan
5005d555a1
libs: codecparsers: Implement the VVC(H266) parser part I
...
Implement all the VPS, SPS and APS parsing functions.
Co-authored-by: spartazhc <spartazhc@gmail.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5003 >
2024-11-24 16:49:25 +00:00
He Junyan
1ec9f829d1
libs: codecparsers: Add the VVC(H266) parser header file
...
Co-authored-by: spartazhc <spartazhc@gmail.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5003 >
2024-11-24 16:49:25 +00:00
He Junyan
df7a0d0fec
utils: Add gst_util_floor_log2 helper function
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5003 >
2024-11-24 16:49:24 +00:00
Diego Nieto
c10c55bc5a
rtpsource: include config.h header to avoid g_memdup2 link issue
...
Without adding the header a link issue related g_memdup2 might happen.
In versions below 2.67.4 that symbol is manually introduced in the
meson config files.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7933 >
2024-11-21 01:11:22 +00:00
Andoni Morales Alastruey
7b408bae69
discoverer: fix segfault in race condition adding a new uri's
...
There is a race condition adding new uri's right after receiving
the `discovered` event. We must wait until we have cleaned-up
the last discovery to start processing the new one
Fix #3758
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7930 >
2024-11-20 21:36:30 +00:00
Thibault Saunier
f8d9412e4b
hlsdemux2: Handle needing more data when draining segment
...
Some streams in the wild have empty segments at the beginning and
hlsdemux2 use to stall forever while we can handle it by processing
the following ones. The gap handling mechanism in adaptivedemux2
works properly and pushes the required gaps.
Update validate medias so the hls stream is present.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6034 >
2024-11-20 20:55:19 +00:00
Nicolas Dufresne
dccddf203f
qmlgl6src: Use downstream pool when available
...
This make use of the pool that has been negotiated with downstream in the
decide_allocation function.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7904 >
2024-11-20 19:30:39 +00:00
Nirbheek Chauhan
c1a8ee9655
meson: Don't use libdrm_dep in cc.has_header()
...
It can't handle subproject dependencies. Pointed out in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4033#note_2665974
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7927 >
2024-11-20 17:47:01 +00:00
L. E. Segovia
51c6aa9e2f
cmake: Add Android libvulkan to the ignored system libraries
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7861 >
2024-11-20 16:45:44 +00:00
L. E. Segovia
5154f43b58
examples: Port Android examples to CMake
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7861 >
2024-11-20 16:45:44 +00:00
L. E. Segovia
da0e6c62ac
examples: webrtc: Update Android example to libsoup 3.0
...
Cerbero 1.26 no longer ships 2.4, this wasn't ported earlier because the examples aren't built in CI.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7861 >
2024-11-20 16:45:44 +00:00
Seungha Yang
44cb3025ff
d3d12: Add gst_d3d12_flush_all_devices() method
...
... and removing implicit flushing behavior on GstD3D12Device::finalize
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7929 >
2024-11-20 15:44:58 +00:00
Sebastian Dröge
8a88cd541d
aja: Fix infinite loop in device provider
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7928 >
2024-11-20 08:48:31 +00:00
Nicolas Dufresne
a966f03cd7
wayland: dmabuf: Translate tiled strides
...
GStreamer uses a different representation of tiled strides that needs
to be translated before being sent to wayland.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7849 >
2024-11-19 21:22:38 +00:00
Nicolas Dufresne
9f707f6c64
glupload: dmabuf: Only pass padded size for indirect tiled handling
...
We only require out_info to hold on padded width/height when
using our internal detiling shaders. Doing so for direct upload
leads to the image being scaled down in a way that the padding
is displayed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7849 >
2024-11-19 21:22:38 +00:00
Nicolas Dufresne
e9b2e98ef7
v4l2codecs: Use new helpers for DRM handling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7849 >
2024-11-19 21:22:38 +00:00
Nicolas Dufresne
bd40057130
v4l2codecs: Fix caps string leak in v4l2codecs
...
Unlike gst_video_format_to_string(), gst_video_dma_drm_fourcc_to_string()
return a freshly allocated string which needs to be free.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7849 >
2024-11-19 21:22:38 +00:00
Nicolas Dufresne
61d2231c58
v4l2codecs: decoder: Fixed unset dimension in caps
...
When the driver does not implement ENUM_FRMESIZE for some specific
formats, the caps limiting the sizes may endup empty, which results in
assuming the driver can scale to any sizes.
Ensure that the original size is in the caps to prevent this assumption.
This happens with Hantro drive, since it only reply to that call if the
format is postprocessed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7849 >
2024-11-19 21:22:38 +00:00