Jan Schmidt
1821b52dd5
splitmuxsrc: Add num-open-fragments property
...
Add a property to limit the number of parts splitmux will open
simultaneously. Modify the part handling to support deactivating
and reactivating the demuxing for each part.
The default is '0', to preserve the existing behaviour of opening
all parts at the beginning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053 >
2024-08-02 15:30:04 +10:00
Jan Schmidt
eeb5a42b5d
splitmuxsrc: Report minimum timestamp for each media stream
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053 >
2024-08-02 15:30:04 +10:00
Matthew Waters
8dac91537d
cuda/nvcodec: Add support for importing and producing embedded NVMM memory
...
As produced on the Nvidia Jetson series of devices.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7274 >
2024-08-02 01:59:07 +00:00
Nicolas Dufresne
adcc6c8d38
xv: imagepool: Improve error logging
...
The shm creation function can return a GError, use this to improve the error
reporting.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7285 >
2024-08-01 16:42:35 +00:00
Nicolas Dufresne
ab70aa60e2
xvimagesink: Fix crash in pool on error
...
The set_config() virtual function is not support to free the config. As a side
effect, when there is protocol error of some sort, we endup with a crash.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7285 >
2024-08-01 16:42:35 +00:00
Nicolas Dufresne
5df658cfdd
qt6: glwindow: Don't leak previously rendered buffer
...
If the consumer reads the buffers too slowily, simply unref the
previously rendered buffer instead of leaking it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7286 >
2024-08-01 12:44:06 +00:00
Víctor Manuel Jáquez Leal
28e16f897e
vkimagebufferpool: fix documentation grammar
...
Original-patch-by: Matthew Waters <matthew@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7288 >
2024-08-01 10:09:34 +00:00
Carlos Bentzen
48ae40f477
webrtcbin: create and associate transceivers earlier in negotation
...
According to https://w3c.github.io/webrtc-pc/#set-the-session-description
(steps in 4.6.10.), we should be creating and associating transceivers when
setting session descriptions.
Before this commit, webrtcbin deviated from the spec:
1. Transceivers from sink pads where created when the sink pad was
requested, but not associated after setting local description, only
when signaling is STABLE.
2. Transceivers from remote offers were not created after applying the
the remote description, only when the answer is created, and were then
only associated once signaling is STABLE.
This commit makes webrtcbin follow the spec more closely with regards to
timing of transceivers creation and association.
A unit test is added, checking that the transceivers are created and
associated after every session description is set.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7156 >
2024-08-01 07:38:46 +00:00
Víctor Manuel Jáquez Leal
ef9875640e
vulkanupload: honor downstream pool allocation parameters
...
If a downstream buffer pool is offered, vulkanupload checks its allocation
parameters to honor them. Only adds to usage the TRANSFER bits, which are
required to upload buffers.
Also, fail if the buffer pool cannot be configured with the current parameters.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7219 >
2024-07-31 12:15:43 +00:00
Víctor Manuel Jáquez Leal
baac191d13
vkimagebufferpool: expose config_get_allocation_params()
...
Also enhanced the documentation and added a config parameter check for
gst_vulkan_image_buffer_pool_config_set_allocation_params()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7219 >
2024-07-31 12:15:43 +00:00
Shengqi Yu
7576d14762
v4l2object: append non colorimetry structure to probed caps
...
If the stream has a special colorimetry that is not in the colorimetry
list, it will cause negotiation to fail. We should allow passing any
colorimetry, so add an extra structure without the colorimetry field.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7029 >
2024-07-31 09:28:18 +00:00
Hou Qi
5dffbd492c
v4l2: Fix colorimetry mismatch for encoded format with RGB color-matrix
...
video-info supports encoded format to have RGB color-matrix, while
v4l2object just leave the v4l2 matrix to default when mapping
GST_VIDEO_COLOR_MATRIX_RGB. It causes gst matrix changed to be
GST_VIDEO_COLOR_MATRIX_BT601 when mapping v4l2 colorimetry.
So add support for encoded format with RGB color-matrix in v4l2object.
Note that for M2M encoders, we should in theory assume that that we can
transfer this value from OUTPUT to CAPTURE queues, though its only true
if the drivers does not do CSC. For now, we don't support any RGB
codecs, but leaving a note for the future.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3952 >
2024-07-30 20:26:06 +00:00
Nicolas Dufresne
1ddb8797b5
v4l2object: SRGB colorspace is documented limited-range
...
Split JPEG and SRGB so that we can follow the specified difference. The
SRGB definition in V4L2 does not follow the standard, and is document
so. This is also why JPEG colorspace exists.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3952 >
2024-07-30 20:26:06 +00:00
Nicolas Dufresne
20eb14b85b
v4l2object: Fix size of plane_size array calculation
...
Due to missing parenthesys, only the first element of the array was
being cleared. As it is a staticly sized array in the object, this
code could also be simplified.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3952 >
2024-07-30 20:26:06 +00:00
Nicolas Dufresne
152df21644
v4l2object: Fix translation of quantization
...
The V4L2_MAP_QUANTIZATION macro has been fixed to something a lot saner,
fix our replica accordingly. The new macro now simply set the quantization
to full range is the pixel formats is RGB based, or if the JPEG
colorspace is used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3952 >
2024-07-30 20:26:06 +00:00
Guillaume Desmottes
beb1cef3d4
rsvgoverlay: add debug category
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7246 >
2024-07-30 17:51:51 +00:00
David Rosca
6fe5d9013d
vaapi: Fix sps_max_dec_pic_buffering_minus1 value in h265 decoder
...
Fixes decoding SLPPLP_A_VIDYO_2 sample.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7242 >
2024-07-30 17:31:07 +00:00
Daniel Morin
4ff98d66bb
onnx: fix formating
...
Code alignement was not alway consistent
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7205 >
2024-07-30 16:50:15 +00:00
Víctor Manuel Jáquez Leal
43edff4e29
vaapi: tests: fix uninitialized variable compiler warning
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7279 >
2024-07-30 15:06:25 +00:00
Edward Hervey
b7828d237b
nlecomposition: Don't leak QoS events
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7276 >
2024-07-30 14:22:54 +00:00
Edward Hervey
a38e244794
vulkan: Add missing since markers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7277 >
2024-07-30 13:46:42 +00:00
Edward Hervey
30c2f67e49
bad: Add missing plugin since
...
These predate current stable release. Was never spotted since they weren't built
on the CI
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7277 >
2024-07-30 13:46:42 +00:00
Nirbheek Chauhan
fa25dd4de5
vtenc: Do not set the CRF/Quality parameter with ProRes
...
It's not supported with ProRes, setting the property will fail.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7232 >
2024-07-30 12:42:17 +00:00
Nirbheek Chauhan
cbadb0b4ae
vtenc: Log warnings when setting a property fails
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7232 >
2024-07-30 12:42:17 +00:00
Nirbheek Chauhan
f8711239e4
vtenc: Add max-frame-delay property
...
This controls the number of frames allowed in the compression window.
Not all encoders and implementations support it; I've only managed to
successfully use it with ProRes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7232 >
2024-07-30 12:42:17 +00:00
Nirbheek Chauhan
30d2b8895a
vtenc: Support emulating CBR mode with data rate limits
...
CBR is only supported on Apple Silicon, and this "emulation" works
surprisingly well. We set the window size to a single frame, and don't
set ABR at all.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7232 >
2024-07-30 12:42:17 +00:00
Nirbheek Chauhan
d327105228
vtenc: Add new property for setting data rate limits
...
This proxies kVTCompressionPropertyKey_DataRateLimits, except it
only supports a single limit for now.
https://developer.apple.com/documentation/videotoolbox/kvtcompressionpropertykey_dataratelimits
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7232 >
2024-07-30 12:42:17 +00:00
Nirbheek Chauhan
4207b4e281
vtenc: Add support for constant bitrate encoding
...
Only supported on macOS 13.0+ and iOS 16.0+ on Apple Silicon.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7232 >
2024-07-30 12:42:17 +00:00
Nirbheek Chauhan
2e39aefe22
vtenc: Eliminate some needless complex code
...
We do not need a helper that takes a lock to fetch the values of these
properties. There is no race being prevented.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7232 >
2024-07-30 12:42:17 +00:00
Nirbheek Chauhan
3621b82c63
vtenc: Fix setting of quality property
...
gst_vtenc_set_quality() will never actually set the VT compression
property, because it tries to set it on self->session which is not
initialized at this point.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7232 >
2024-07-30 12:42:17 +00:00
Edward Hervey
c623f2db21
validate: reporter: Don't pollute logs
...
There was a stray g_printerr introduced by 2a4b9c8dc1
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7275 >
2024-07-30 11:39:02 +02:00
Jan Schmidt
0faec707a0
adaptivedemux: Fail cleanly if parsebin is not installed
...
Detect a failure to construct a parsebin and error out
cleanly instead of trying to operate on a null pointer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6969 >
2024-07-30 00:06:50 +00:00
Jan Schmidt
213726ca41
adaptivedemux2: Post a bus error when failing to start download
...
If a download completely fails to start, due to malformed URI or so,
post a bus error instead of just stalling out with no indication
why.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6969 >
2024-07-30 00:06:50 +00:00
Jan Schmidt
f2a18ab277
adaptivedemux2: Implement file:// URI handling
...
Add the ability to play HLS and DASH from local files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6969 >
2024-07-30 00:06:50 +00:00
Jan Schmidt
9dc1d68e2f
codec-utils: Recognise mjpg mime type
...
Add mjpg to gst_codec_utils_caps_from_mime_codec_single()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6969 >
2024-07-30 00:06:50 +00:00
Jan Schmidt
ef0e822559
hlsng: Check caps are not null after parsing HLS CODECS tag
...
If the mime codec wasn't recognised, caps will be NULL and cause
a critical
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6969 >
2024-07-30 00:06:50 +00:00
Jan Schmidt
7bd51afd04
gsturi: Ensure file:// URIs retain //
...
Add the // back after the scheme for file URIs so 'file:///path/to/file'
doesn't become 'file:/path/to/file' in gst_uri_to_string()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6969 >
2024-07-30 00:06:50 +00:00
Víctor Manuel Jáquez Leal
bff24e5ab7
vulkanupload: comment zero value usage with VK_ACCESS_NONE
...
Zero is used only for Vulkan version prior to 1.3, because it wasn't defined
before.
Just for readability.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7247 >
2024-07-29 17:10:15 +02:00
Víctor Manuel Jáquez Leal
fad06c9b6f
vkimagebufferpool: refactor how image usage is set
...
Now that driver version is expected to be equal or superior to 1.3.275 the bug
in NVIDIA and RADV regarding usage is solved, we can revert commit b7ded81f7b
.
Also this patch sets the internal usage variable after all the validation are
run, thus the state don't keep an invalid usage.
Finally, the now unused supported_usage variable is dropped.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7247 >
2024-07-29 17:10:15 +02:00
Víctor Manuel Jáquez Leal
bb9eb6f477
vkimagebufferpool: add encoding usage as video usage
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7247 >
2024-07-29 17:10:15 +02:00
Víctor Manuel Jáquez Leal
541e2e93ca
vkimagebufferpool: reset the number of profiles at set_config()
...
Virtual method set_config() can be called several times, and if the number of
profiles counter isn't reset the pool will reach an error state.
The purpose of number of profiles is to check the number of valid vulkan video
profiles (two in the case of transcoding use-case, for example) so it's local to
set_config() virtual method.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7247 >
2024-07-29 17:10:14 +02:00
Víctor Manuel Jáquez Leal
d8e384085a
vulkan: encoder and decoder runtime check for driver version 1.3.275
...
Which is the one checked in meson. See commit 21ee264d65
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7247 >
2024-07-29 17:10:14 +02:00
Philippe Normand
bd64374174
parsebin: accept-caps handling for elements with unusual pad names
...
In case the last element of the parse chain doesn´t have a sink pad named
"sink", send the accept-caps query to the first sink pad of the element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7255 >
2024-07-29 12:41:33 +00:00
Víctor Manuel Jáquez Leal
8faefccfd5
va: refactor dmabuf handle close
...
Moved the close loop into a function guarded for non-win32 platforms.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7254 >
2024-07-29 10:34:56 +02:00
Seungha Yang
080a838fca
qsv: Fix critical warnings
...
Fixing warnings
GStreamer-CRITICAL **: 01:21:25.862: gst_value_set_int_range_step:
assertion 'start < end' failed
Although when QSV runtime reports a codec is supported, resolution query
fails sometimes, espeically VP9 encoder case on Windows.
Don't try to register an element if resolution query returned an error
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7250 >
2024-07-27 19:33:52 +00:00
Nirbheek Chauhan
0bb336f34c
svtav1enc: Fix segfault when flushing
...
gst_video_encoder_get_oldest_frame() is nullable, and will signal that
all frames are handled by returning NULL.
Fixes #3650
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7249 >
2024-07-27 19:21:37 +01:00
Seungha Yang
f04f6f43c3
d3d12frame: Fix frame copy method
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7243 >
2024-07-27 04:18:47 +09:00
Seungha Yang
28a7adf4dd
d3d12memory: Check heap flag before trying to create NT handle
...
CreateSharedHandle() will fail eventually if the resource was created
with non-shared heap. Instead of trying to create handle blindly,
validate resource first.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7243 >
2024-07-27 04:17:03 +09:00
Seungha Yang
1c8c5ed457
dwrite: Prefer d3d12 resource allocated with shared heap
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7243 >
2024-07-27 03:39:22 +09:00
Seungha Yang
4a6daad517
d3d12: Suppress fence data object leak report
...
We don't release GstD3D12Device intentionally, thus
a GstD3D12FenceDataPool owned by a device will not be released
but that's expected leak.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7243 >
2024-07-27 03:23:22 +09:00