Albert Sjolund
f068b3bf5c
gstpad: specialize gst_pad_chain_list_default
...
In the case where the bufferlist is writable, send the
buffers immediately without adding to the refcount. This
allows writable buffers to maintain their writability, even
without implementing a chain_list function on the element.
Adds a test to verify this property, where a writable list
maintains refcount 1, but a readonly list increases it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7894 >
2024-11-18 10:59:34 +00:00
Robert Rosengren
6fff1ef971
gstdeviceprovider: fix leaking hidden providers
...
Free list of hidden providers upon stop and dispose.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7912 >
2024-11-18 09:20:34 +01:00
Matthew Waters
5b32fe7b24
ci: add an ABI check job
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:11:57 +11:00
Matthew Waters
c3d4d500e0
vaapi/display_wayland: silence a maybe-unitialized warning
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:58 +11:00
Matthew Waters
26d581041a
vaapi/display_drm: silence a maybe-unitialized warning
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:58 +11:00
Matthew Waters
e993e0e981
vaapi/encoder: silence a maybe-unitialized warning
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:58 +11:00
Matthew Waters
1814d7ae11
rtph26xpay: silence some maybe-unitialized warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:58 +11:00
Matthew Waters
c7ee7c65ae
validate/gapplication: silence a maybe-unitialized warning
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:58 +11:00
Matthew Waters
995dcb04e0
tests/onvif: silence a maybe-unitialized warning
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:58 +11:00
Matthew Waters
c0f4a855cc
ges/clip: silence some maybe-unitiailized warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:57 +11:00
Matthew Waters
a566dfd339
uvcgadget: silence a maybe-uninitialized warning
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:57 +11:00
Matthew Waters
6eee4a513b
fdkaacenc: silence a maybe-unitialized warning
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:57 +11:00
Matthew Waters
bf22f282eb
encodebin: silence a maybe-unitialized warning
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:57 +11:00
Matthew Waters
741f935bbf
ristrtxsend: silence a maybe-uninitialized warning
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:57 +11:00
Matthew Waters
382ed4630e
av12json: silence a maybe-unitialized warning
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:57 +11:00
Matthew Waters
e2d143f65d
oggdemux: silence a maybe-unitialized warning
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:57 +11:00
Matthew Waters
3743f69c85
souphttpsrc: silence some maybe-uninitialized warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:57 +11:00
Matthew Waters
d98c83b297
v4l2videodec: silennce some maybe-uninitialized warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:57 +11:00
Matthew Waters
7b526775b4
rtsp-server-media-factory: silence some maybe-unused warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:57 +11:00
Matthew Waters
605cff0642
vulkan/videoutils: silence some maybe-unitialized warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:57 +11:00
Matthew Waters
8e758c715b
value: silence a maybe-unitialized warning
...
gstvalue.c:376:8: error: ‘s_val’ may be used uninitialized [-Werror=maybe-uninitialized]
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:57 +11:00
Albert Sjolund
72edd65710
rtpmanager: don't map READWRITE in twcc header ext
...
There is no need to map the buffer as writable, as there is
only a read performed on the mapped buffer. This is in line
with other header extensions, as no other extensions maps
it as readwrite.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7895 >
2024-11-17 10:00:12 +00:00
Philippe Normand
827caa662c
playbackutils: Fix caps leak in get_n_common_capsfeatures()
...
The gst_static_caps_get() return value is transfer-full.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7908 >
2024-11-16 18:24:23 +00:00
Nicolas Dufresne
000a7650fc
glupload: Upgrade uploader selection message to INFO
...
This allow using INFO log to quickly see what uploader we
picked. This is very useful as the DEBUG category has became
very noisy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7891 >
2024-11-16 12:30:34 +00:00
Nicolas Dufresne
3c8b1427ca
glupload: dmabuf: Fix emulated tiled import
...
The added check for LINEAR modifier broke dmabuf import for
NV12 emulation (R8/RG88) of all sort (linear and tiled).
Fixes !5461
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7891 >
2024-11-16 12:30:34 +00:00
He Junyan
347393be36
Doc: Update the kmssink caps after adding DMA support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174 >
2024-11-16 13:20:16 +08:00
Jakub Adam
34a400cc0e
kmsbufferpool: Accept DMA_DRM caps in the config
...
Only linear modifier is supported due to the dumb allocator's
limitation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174 >
2024-11-16 13:19:13 +08:00
Jakub Adam
9e81a6517b
kmssink: ensure we have a valid vinfo_drm after set_caps
...
Consequently drop the check in import_dmabuf
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174 >
2024-11-16 13:19:13 +08:00
Jakub Adam
d04a03d176
kmssink: enumerate drm formats when IN_FORMATS not present
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174 >
2024-11-16 13:19:13 +08:00
He Junyan
6ad6b765ab
kmssink: Do not provide DMA buffer pool for non-linear caps
...
The dumb allocator does not support modifiers, so we can not allocate
non-linear buffers by ourself.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174 >
2024-11-16 13:19:13 +08:00
He Junyan
e4d7ac5989
kmssink: Handle the DMA buffer importing correctly
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174 >
2024-11-16 13:19:13 +08:00
He Junyan
a925630d87
kmssink: Add DMA kind caps into sink caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174 >
2024-11-16 13:19:13 +08:00
He Junyan
6f78e1c3e0
kmssink: Add helper functions to create DMA and raw caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174 >
2024-11-16 13:19:13 +08:00
He Junyan
3f510d1296
kmssink: Add a helper function to collect formats and modifiers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174 >
2024-11-16 13:19:13 +08:00
He Junyan
9df377efc1
kmssink: Add modifier to gst_kms_allocator_dmabuf_import
...
Use the new drmModeAddFB2WithModifiers() API for binding the
non-linear BO.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174 >
2024-11-16 13:19:13 +08:00
Thibault Saunier
7010efc8ed
meson: Bump minimum version to 1.3
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4025
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7899 >
2024-11-16 03:02:27 +00:00
Sebastian Dröge
dce0cdf548
audiostreamalign: Don't report disconts for every buffer if alignment-threshold is too small
...
If it is too small, the maximum allowed diff becomes 0 samples which would then
trigger if there is no discontinuity at all.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7888 >
2024-11-16 00:10:51 +00:00
Benjamin Gaignard
da02191411
v4l2codecs: Test ioctl return value and errno
...
Fix error testing when using V4L2_FMTDESC_FLAG_ENUM_ALL by using
both errno and the return value.
Fixes !7686 (merged)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7873 >
2024-11-15 23:22:30 +00:00
Sebastian Dröge
2bbf095e5b
matroskamux: Simplify timestamp comparison logic in find_best_pad()
...
If a buffer has no timestamp it is immediately muxed so we can directly break
the loop and simplify comparisons in the other cases.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7872 >
2024-11-15 22:33:53 +00:00
Sebastian Dröge
a391728ad4
matroskamux: Don't time out in live mode if no timestamped next buffer is available
...
The muxer can only advance the time if it has a timestamped buffer that can be
output, otherwise it will just busy-wait and use up a lot of CPU.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7872 >
2024-11-15 22:33:53 +00:00
Philippe Normand
701f563996
matroskamux: Delay stream-header until all sink pads have caps
...
If we don't wait, an incomplete header might be generated due to a race between
the _aggregate thread and the sink pad setcaps.
Fixes #3929
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7872 >
2024-11-15 22:33:53 +00:00
Marianna Smidth Buschle
2766e4816a
v4l2object: Fixed framerate negotiation
...
We had a problem with negotiation of the framerate.
Gstreamer was querying the FRAMEINTERVALS based on the max frame size
instead of the desired frame size.
This was resulting in non-negotiated errors when trying to run with a
smaller frame size and fps higher than the max for the max image size.
Fx the max framerate for 1024x1024 RGB on CMOSIS4000 is 28.292
While for 1024x100 RGB it is 280.867
But Gstreamer would allow any framerates bigger than 28.292 no matter
the frame size used...
I have fixed it by 1st changing the CAPS query to use the minimum frame
size instead of maximum.
This however has the downside of allowing gstreamer to negotiate
framerates that are too high if the image size is bigger than the
minimum.
This is not a huge problem since our driver just CLAMPS the fps value to
the max then.
However gstreamer was not being properly notified of this change, and
would therefore report a wrong fps in the CAPS structure.
Note that the fps would be correct inside the buffer info.
Since gstreamer was reading the fps back after setting it.
It was just not being "propagated" to the CAPS structure.
I have also added a WARNING to this point so we can see if the fps that
gstreamer tries to apply was accepted or not.
And the next part of the fix was to add a framerate check after the
frame size has been established.
I did this inside the fixate_caps function of the v4l2src, which was
calling the TRY_FMT in order to check if the format was correct.
So I just added a check for the ENUM_FRAMEINTERVALS in there.
And now we get the non-negotiated again if the fps is too high for the
selected frame size.
Also added a couple of warnings so it is easy to see that this was the
cause.
See:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3037
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7850 >
2024-11-15 22:29:56 +00:00
Stéphane Cerveau
0dd706a420
vkutils: add gst_vulkan_ensure_element_device
...
In order to keep the same device across
the elements in the pipeline, use either the device id
to create the device or get the device from the context
set by the peer elements.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7843 >
2024-11-15 20:32:24 +00:00
Stéphane Cerveau
9a771b6909
vkinstance: add gst_vulkan_instance_create_device_with_index
...
This method will allow to create a device with its device_index
preparing the support of multiple device.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7843 >
2024-11-15 20:32:24 +00:00
Víctor Manuel Jáquez Leal
46f4dbe57b
codecparser: remove unused headers
...
Mainly <string.h> but also <stdlib.h> in jpegparse
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7869 >
2024-11-15 19:33:10 +00:00
Víctor Manuel Jáquez Leal
e60efa4b9a
codecparsers: avoid libc math library
...
Instead of the libc ceil() and pow() machinery for double types, since the
library uses it for unsigned integers use a simple math function for for ceil
division and bit left shift for integer power of two.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7869 >
2024-11-15 19:33:10 +00:00
Stéphane Cerveau
ff9100eb4d
h265parser/bitwriter: add some comments for ceil_log2 use
...
Validate that the length of field must be calculate with
ceil_logs2 and not bit storage.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7429 >
2024-11-15 16:52:29 +00:00
Stéphane Cerveau
8f9ed667cd
h264parse: use of ceil_log2 instead of bit_storage
...
According to the specification:
The length of the slice_group_id[ i ] syntax element is Ceil( Log2(
num_slice_groups_minus1 + 1 ) ) bits
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7429 >
2024-11-15 16:52:29 +00:00
Stéphane Cerveau
a6f82ba590
utils: improve gst_util_ceil_log2
...
According to the following comparison of algorithms, the value
for 0 and 1 was giving an incorrect result.
https://gist.github.com/ceyusa/6061b33ac109a68bcd222f6919968c9a
More information here:
https://github.com/rofrol/codeforces/blob/master/ceil_log2.c
Use a different algorithm which offers better result and keep the
performance.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7429 >
2024-11-15 16:52:29 +00:00
Jan Alexander Steffens (heftig)
65e071c1c8
flvmux: Mux timestampless buffers immediately
...
Instead of leaving them queued indefinitely, or until we're timing out
and it's the only buffer queued.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7871 >
2024-11-15 15:58:07 +00:00