Thibault Saunier
2a4b9c8dc1
validate: reporter: Use an MT safe weak ref to reporter for GLog handling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6412 >
2024-03-20 16:45:34 +00:00
Piotr Brzeziński
982c73dfdd
vtdec: Ignore output loop errors in drain() if we're flushing
...
In an early non-linked scenario, this was causing a ton of criticals about the queue array,
because the output callback would still fire for leftover frames that were still being processed by VT
at the time the output loop stopped. This makes sure they're flushed correctly as well.
Also renames gst_vtdec_loop to gst_vtdec_output_loop for consistency with related functions.
wip
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6397 >
2024-03-20 13:07:25 +00:00
Piotr Brzeziński
112951ce55
vtdec: Fix a deadlock during ProRes playback
...
Sometimes a call to negotiate (and thus drain) can happen from the output loop
(via finish_frame()), which will tell VT to output all internal frames, but that won't succeed
if we happen to decide to wait for the queue to empty (because the loop is waiting for draining to finish and
will not make space in the queue!). This commit adds an override for the queue size limit if we're draining/flushing.
This bug could happen for any formats, but was especially obvious for ProRes, which has dpb_size of 0.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6397 >
2024-03-20 13:07:25 +00:00
Seungha Yang
17f92ab400
asio: Add support for MinGW build
...
Drop MSVC specific bits and remove unused dependency
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6404 >
2024-03-20 10:53:16 +00:00
Seungha Yang
f0761a7358
asio: Drop external SDK header dependency
...
Build ASIO plugin using our tiny SDK header
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6404 >
2024-03-20 10:53:16 +00:00
Edward Hervey
5280f0b733
adaptivedemux2: Add libsoup tracing debug
...
Provides more information for debugging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6409 >
2024-03-20 09:48:12 +00:00
He Junyan
3b57825ca6
va: Implement the vavp9enc plugin
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3293 >
2024-03-20 08:53:11 +00:00
He Junyan
802a0eb9df
test: add vp9 bitwriter test case
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3293 >
2024-03-20 08:53:11 +00:00
He Junyan
142448bbed
vp9bitwriter: Add the VP9 bit writer helper functions
...
In this first version, we only implement the "show existing frame"
and super frame writting. Other frame header types writting can
be added when needed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3293 >
2024-03-20 08:53:11 +00:00
Edward Hervey
3d500636a9
adaptivedemux2: Don't use g_str_equal on potentially NULL strings
...
It is only meant to be used as a callback. The fallback macro uses strcmp which
doesn't handle NULL strings gracefully. Instead use g_strcmp0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6392 >
2024-03-19 13:25:41 +00:00
Edward Hervey
ab11c20d59
hlsdemux2: Avoid NULL pointer usage
...
The pending/current variant are both NULL when the demuxer is resetted.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6392 >
2024-03-19 13:25:41 +00:00
Edward Hervey
46bb0bfa57
adaptivedemux2: Handle context going away
...
This issue can happen when the scheduler loop was stopped (and context went
away). We no longer want to push/pop main context threads.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6392 >
2024-03-19 13:25:41 +00:00
Edward Hervey
8438c3f567
hlsdemux2: Improve detection of playlist updates
...
In the case we are not updating an existing playlist, we only want to reset the
download error count if the URI we are downloading was not the previous one we
were trying to load
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6392 >
2024-03-19 13:25:41 +00:00
Seungha Yang
b417c62940
d3d12device: Set debugging friendly object name
...
Build object name with DXGI adapter index
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6395 >
2024-03-19 12:03:55 +00:00
Seungha Yang
6de5eab1e4
d3d12: Suppress expected leak reports
...
Such leaks are expected and intended ones
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6395 >
2024-03-19 12:03:55 +00:00
Seungha Yang
a1c8fc6163
d3d12device: Keep device object permanently
...
Because ID3D12Device objects are singletons per adapter,
GstD3D12Device was following the API design, that is, keep track
of global GstD3D12Device objects and reuses it.
That means ID3D12Device object can be released at the time
when GstD3D12Device is destroyed.
But exetrnal APIs such as NVENC does not seem to be happy
with the released ID3D12Device, that could be a driver bug though.
Let's hold already opened ID3D12Device permanently without releasing
it for now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6395 >
2024-03-19 12:03:55 +00:00
Seungha Yang
17d6c7350c
d3d12commandqueue: Add drain method
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6395 >
2024-03-19 12:03:55 +00:00
Seungha Yang
393fb4733c
d3d12: Use native device handle if possible
...
Various abstraction objects such as command queue/list/allocator
can be constructed without GstD3D12Device
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6395 >
2024-03-19 12:03:55 +00:00
Seungha Yang
331522210f
d3d12commandqueue: Allow empty command list
...
Just increase fence value and signal the queue in that case
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6395 >
2024-03-19 12:03:54 +00:00
Seungha Yang
3e912a2214
examples: d3d11: Add inter-device synchronization example
...
Adding an example to demonstrate resource sharing between
D3D11 device and GPU synchronization
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6303 >
2024-03-19 10:55:19 +00:00
Edward Hervey
42e24c32e5
uridecodebin3: Don't hold lock when posting messages or signals
...
There's a very good chance that the receiver might react on those synchronously
and call back into uridecodebin3 (ex: for setting the next URI).
Make sure we release the lock if we need to do that.
Fixes #3400
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6402 >
2024-03-19 09:34:18 +01:00
Ruijing Dong
bc858976db
va: enc : checking surface alignment attribute
...
Apply surface alignment attribute when availalbe,
also fix frame cropping issue for va h265 encoder.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6282 >
2024-03-18 16:34:42 +00:00
L. E. Segovia
1f119b2035
soundtouch: Fix build failure with Apple Clang caused by missing cpp_std
...
Apple Clang sets C++98 by default. I'm applying C++14 to account for Meson's
lack of support/fallback for `cpp_std=c++11`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6374 >
2024-03-18 14:28:38 +00:00
Edward Hervey
c1ac015325
uridecodebin3: Handle potential double redirection errors
...
Some elements (like qtdemux) might post a redirection error message twice. We
only want to handle it once.
Fixes #3390
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6389 >
2024-03-18 13:30:24 +00:00
Mark Nauwelaerts
324563b158
dvdspu: avoid null dereference
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6386 >
2024-03-18 09:49:13 +00:00
Philippe Normand
76d1bd05b2
play: Fix a critical warning in error callback
...
`on_error()` can be called with a NULL details structure, so in that situation
the `gst_structure_copy()` would raise a critical warning. Create an empty
structure instead of attempting to copy a NULL one.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6385 >
2024-03-17 11:18:37 +00:00
Seungha Yang
8acf844fed
d3d12: Fix SDK debug layer activation
...
Debug layer must be enabled before creating device. Otherwise
already opened devices before the activation will be removed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6382 >
2024-03-16 21:25:38 +09:00
Piotr Brzeziński
2ec7f9f9b3
avaudenc: Add simple 16 channel encoding test
...
Used to be crashing because of a double-free introduced years ago and never really noticed, so let's add a test to
make sure it doesn't happen again.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6373 >
2024-03-15 12:30:04 +00:00
Edward Hervey
b1f4dcb068
decodebin3: Post error messages if there are no streams to output
...
This could happen because:
* No streams were selected
* Or we end up with no stream selected
Also post a warning message if we are missing plugins but there are other
streams to output
Fixes #3360
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6323 >
2024-03-14 18:15:33 +00:00
Edward Hervey
11b1f70aea
decodebin3: Remove failing stream from active selection also
...
It gets added in get_output_slot()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6323 >
2024-03-14 18:15:33 +00:00
Robert Mader
5189e8b956
v4l2codecs: decoders: Add DMA_DRM caps support
...
In order to simplify caps negotiations for clients and, notably, be more
compatible with va* decoders.
Crucially this allows clients to know ahead of time whether buffers will
actually be DMABufs.
Similar to GstVaBaseDec we only announce system memory caps if the peer
has ANY caps. Further more, and again like va decoders, we fail in
`decide_allocation()` if DMA_DRM caps are used without VideoMeta.
Apart from buggy peers this can happen e.g. when a peer with ANY caps
is used in combination with caps filters.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5890 >
2024-03-14 17:32:13 +00:00
Robert Mader
513d0d8cbb
v4l2codecs: decoders: Introduce and use set_output_state helper class
...
Allowing us to avoid some code duplication. This will become more
important with upcoming changes to caps generation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5890 >
2024-03-14 17:32:13 +00:00
Robert Mader
a95acbcc11
v4l2codecs: decoder: Clean up select_src_format()
...
Most importantly rely on video info helpers instead of manual parsing
of caps, which will allow us to use additional helpers in the future.
While on it, tighen the check for supported formats - failing that
indicates a bug in caps negotiation - and make some style changes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5890 >
2024-03-14 17:32:13 +00:00
Robert Mader
73b69d8ca0
v4l2codecs: decoder: Generalize size enumeration caps
...
By reducing the generated caps to the minimal number of fields and
using intersections instead of merges. This will allow us to reuse the
result in the future.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5890 >
2024-03-14 17:32:13 +00:00
Robert Mader
65896dab75
v4l2codecs: decoders: Use src template for negotiation filter
...
This ensures we don't create filter caps that are not supported by the
individual codec implementations, as well as that the resulting caps
have the required fields so they can be turned into a GstVideoFormat.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5890 >
2024-03-14 17:32:13 +00:00
Piotr Brzeziński
55136c30c4
avaudenc: Avoid double-freeing frame's extended data
...
This occured when attempting to encode 16 channel audio, would crash on the first buffer.
We only need to store ext_data, old ext_data_array (frame->extended_data) is already freed by `av_frame_unref`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6359 >
2024-03-14 16:35:21 +00:00
Piotr Brzeziński
a53ea3c61c
avcodecmap: Increase max AAC channels to 16
...
This is the maximum amount supported by aacenc. 8-channel output fully works.
16-channel also encodes fine, but codec-utils isn't able to parse its channel config,
so output level will not be shown in caps. For that to work, GASpecificConfig parsing
needs to be implemented. It's not a critical issue and can be worked on at a later date.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6359 >
2024-03-14 16:35:21 +00:00
Seungha Yang
7aff9c8600
asio: Fix {input,output}-channels property handling
...
Fixing regression introduced by the commit 06dc931b52
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6370 >
2024-03-14 21:01:40 +09:00
Sebastian Dröge
6c3d09e279
ptp: Initialize expected DELAY_REQ seqnum to an invalid value
...
This allows distinguishing pending syncs that didn't have a DELAY_REQ
sent from ones that did but used a seqnum of 0, like the very first one.
Specifically, if the first one or more syncs are still pending and we
send the first DELAY_REQ for a later pending sync, then the DELAY_RESP
would've been wrongly associated to the very first pending sync because
of the seqnum.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3383
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6361 >
2024-03-13 22:24:56 +00:00
Seungha Yang
1d8138fd18
d3d11device: Fix adapter LUID comparison in wrapped device mode
...
Fix integer type mismatching
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3382
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6358 >
2024-03-13 20:18:29 +00:00
Alexander Slobodeniuk
650534c940
rtspsrc: remove 'deprecated' flag from the 'push-backchannel-sample' signal
...
It seems that it was added by accident when copying from push-backchannel-buffer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6355 >
2024-03-13 19:32:46 +00:00
Thomas Klausner
4632c623bf
shmallocator: fix build on Illumos
...
Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3370
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6321 >
2024-03-13 18:48:27 +00:00
Alexander Slobodeniuk
6a6a4bf1a4
d3d11device: raise 'device-removed' signal on DXGI_ERROR_DEVICE_REMOVED
...
When this error gets caught the GstD3D11Device object raises the new
"device-removed" signal. This allows to handle the error from outside:
stop the playback, re-create the player, replace the catched GstContext by
the new one.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6193 >
2024-03-13 17:25:31 +00:00
Michiel Westerbeek
a4aa9e197e
gstcudaconvertscale, gstvavpp, videoconvertscale: downgrade 'Can't keep DAR' to debug
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5730 >
2024-03-13 16:06:56 +00:00
Sebastian Dröge
38011a01dc
mpg123audiodec: Correctly handle the case of clipping all decoded samples
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3365
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6318 >
2024-03-13 12:48:36 +00:00
He Junyan
a953dc3b1a
test: Correct the API return type of {h264,h265,av1}bitwriter
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6354 >
2024-03-13 18:49:13 +08:00
Seungha Yang
94dfef68e1
d3d12device: Fix IDXGIFactory2 leak
...
factory passed to gst_d3d12_device_find_adapter() method is valid
handle already
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6340 >
2024-03-12 22:06:01 +00:00
Sebastian Dröge
121e52886b
videoparsers: Don't verbosely warn about CEA_708_PROCESS_EM_DATA_FLAG not being set
...
And the same for CEA_708_PROCESS_CC_DATA_FLAG. This is not really a
problem and was polluting logs with warnings for every single frame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6336 >
2024-03-12 21:26:18 +00:00
L. E. Segovia
71510860af
meson: Require tinyalsa >= 1.1.0 when building its plugin
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6311 >
2024-03-12 20:30:11 +00:00
L. E. Segovia
9c8549c31c
tinyalsasink: Fix missing const and deprecations with tinyalsa v2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6311 >
2024-03-12 20:30:11 +00:00