Seungha Yang
c2531853fc
d3d12commandallocatorpool: Remove unused methods
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7108 >
2024-06-29 20:47:39 +09:00
Seungha Yang
c013e88295
d3d12decoder: Use sub-allocated bitstream buffer
...
Since a buffer resource will occupy at least 64KB,
allocating upload resource per decoding command might not be
an optimal approach. Instead, use sub-region of a upload resource
for multiple decoding command if sub-regions are not overlapped
each other.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7108 >
2024-06-29 20:47:39 +09:00
Jordan Petridis
60454336c8
validate: Remove G_REGEX_OPTIMIZE usage
...
It's not needed and causes issues with valgrind (which doesn't support jit)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7112 >
2024-06-28 14:13:31 +00:00
Tim-Philipp Müller
b4ebf52f06
subprojects: update liblc3 wrap to 1.1.1
...
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6407#note_2472538
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7111 >
2024-06-28 13:38:36 +01:00
Guillaume Desmottes
037d36f28d
rtmp2: guard against calling gst_amf_node_get_type() with NULL
...
gst_amf_node_get_type() raises a CRITICAL if called with a NULL node.
All callers were checking for this except those.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7103 >
2024-06-28 07:18:29 +00:00
Xavier Claessens
84b3a0950d
build: Add missing common options that are yielding in subprojects
...
- Align `glib_debug`, `glib_assert` and `glib_checks` options with GLib,
otherwise glib subproject won't inherit their value. Previous names
and values are preserved using Meson's deprecation mechanism.
- Add `extra-checks` and `benchmarks` options in the main project so it
can be inherited in GStreamer subprojects.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1165 >
2024-06-27 15:53:46 +00:00
He Junyan
77f779e86a
vaav1enc: Move repeat header data to a dedicated buffer
...
When enable parallel encoding, it is possible that the unshown frame
is not output but it is already be marked as a repeated frame header.
So we need to use a dedicated buffer to hold the repeat frame header,
don't mix it with the orignal frame data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6867 >
2024-06-27 12:48:37 +00:00
Seungha Yang
fca7e5aa23
video: convertframe: Add support for d3d12 conversion
...
Use d3d12convert in case of d3d12 memory
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7095 >
2024-06-26 17:56:41 +00:00
Seungha Yang
76fd732d42
qsv: Check d3d shared resource tier using D3D11 API
...
We can check the tier using d3d11 API. Thus, don't need to
create d3d12 device
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7099 >
2024-06-26 16:25:06 +00:00
Jan Schmidt
73480e60d0
adaptivedemux: Fix handling closed caption streams
...
Fix a typo "CLOSED_CAPTION" -> "CLOSED-CAPTION" and
a broken if statement that always bailed out for
closed captions
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6985 >
2024-06-26 13:44:27 +00:00
Jan Schmidt
2bd682d326
webrtcdsp: Enable multi_channel processing
...
Enable multi_channel processing in webrtc-audio-processing when the
input or output has multiple channels.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3220
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7100 >
2024-06-25 22:29:21 +10:00
Piotr Brzeziński
32d4e5f73c
vtenc: Fix redistribute latency spam
...
Just a quick fix to only report the maximum noticed delay (measured by frames inside the encoder) instead of changing
the reported latency every time the number there changes, which is way too often.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7094 >
2024-06-24 16:08:37 +02:00
Seungha Yang
e71ffe978a
d3d12converter: Make sure data upload before executing compute shader
...
Use read d3d12 map, so that upload can happen if needed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7093 >
2024-06-24 20:49:19 +09:00
Seungha Yang
245e15eab0
d3d12: Add ARGB64_LE format support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7093 >
2024-06-24 20:11:21 +09:00
Seungha Yang
8c538c8122
d3d12: Add AV12 format support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7093 >
2024-06-24 20:11:13 +09:00
Seungha Yang
2703f41da6
d3d12: Add NV16, NV61, and NV24 format support
...
Can reuse NV12 shader for the formats
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7093 >
2024-06-24 20:10:50 +09:00
Seungha Yang
bb0f95a67f
d3d12: Add A420, A422 and A444 format support
...
Adding A420/A422/A444 and its 10/12/16 bits format support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7093 >
2024-06-24 20:10:50 +09:00
Seungha Yang
52bc28c93d
d3d12: Add YUV 4:1:0 and 4:1:1 format support
...
Adding Y41B, YUV9, and YVU9 format support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7093 >
2024-06-24 20:10:50 +09:00
Seungha Yang
69ea20b739
d3d12videosink: Present on GstVideoOverlay::expose()
...
... so that updated backbuffer can be swapped and presented
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7079 >
2024-06-24 08:46:24 +00:00
Seungha Yang
25514c8fc1
d3d12: Add v216, v210, r210, v308, IYU2, RGB, BGR format support
...
Reuse the compute shader implemented for d3d11
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7092 >
2024-06-23 22:30:40 +09:00
Seungha Yang
c1498851b3
d3d12: Add support for UYVY, VYUY, and YVYU
...
Use already implemented compute shaders
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7092 >
2024-06-23 22:30:40 +09:00
Seungha Yang
6fcb5f6ae7
d3d12: Add RGB{16,15} and BGR{16,15} format support
...
d3d12 device can support B5G6R5_UNORM and B5G5R5A1_UNORM formats
in pixel shader. If the format is not supported by device,
U16_UINT format with compute shader will be used, like d3d11converter
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7092 >
2024-06-23 22:30:40 +09:00
Seungha Yang
94bb9fec58
d3d12: Add BGRA64 and BGR10A2 format support
...
Map BGRA64 and BGR10A2 to Y416 and Y410, respectively,
since it's possible RGB space decoder output
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7092 >
2024-06-23 22:30:30 +09:00
Seungha Yang
66cc3ff84e
d3d12: Add support for DXGI native packed YUV formats
...
Adding YUY2, Y210, Y216, and Y416 format support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7092 >
2024-06-23 22:11:32 +09:00
Seungha Yang
dd4d85272e
d3d12converter: Fix Y410 conversion
...
Adding format conversion helper and use compute shader in case that
output format does not support RTV.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7088 >
2024-06-23 10:53:18 +00:00
Seungha Yang
f432e61bdc
d3d12memory: Add support for UAV descriptor cache
...
Cache shader invisible UAV descriptor in memory
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7088 >
2024-06-23 10:53:18 +00:00
Seungha Yang
ec06b0445e
d3d12: Format table refactoring
...
Hide format table from header. This is a preparation for compute
shader based format support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7088 >
2024-06-23 10:53:18 +00:00
George Hazan
9e1abc0797
parsebin: fix compilation problem with Visual C++ 2017
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7089 >
2024-06-22 20:56:03 +03:00
Tim-Philipp Müller
03a60c9950
subprojects: bump opus wrap to 1.5.2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7085 >
2024-06-22 12:26:22 +01:00
Seungha Yang
5d18d8a109
d3d12converter: Upload shader buffer resources earlier
...
Schedule (semi-)static resource upload at converter creation time.
And use single resource for all vertex, index, and constant
buffers, since separate resources will waste GPU memory.
Note that size and address of a committed resource are 64K aligned
even if requested buffer size is small.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7081 >
2024-06-21 20:16:19 +09:00
Edward Hervey
a20569b1ba
basesink: Remove field not used
...
It was never actually used since it was introduced as part of the commit
introducing support for instant rate
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7077 >
2024-06-21 09:29:48 +02:00
Seungha Yang
c5785fbeec
d3d12converter: Make gamma remap work as intended
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7073 >
2024-06-20 17:54:12 +00:00
Sebastian Dröge
8117ee4fa3
queue, queue2, multiqueue: Timestamps of gap events must be valid
...
This is checked in gst_event_new_gap() so doesn't have to be checked again here,
but simply can be asserted with a g_return_if_fail().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7071 >
2024-06-20 20:02:43 +03:00
Sebastian Dröge
909cd6d865
queue: queue2: multiqueue: Don't work with segment.position if buffers have no timestamps
...
If the first buffers have no timestamp then the sink position would be
initialized to 0. The source pad might output this buffer, which would then
initialize the source position to 0 too.
Afterwards two buffers with a valid but huge timestamp might arrive before any
of them are output on the source pad. The first one would set the sink position
to a huge value, the second one would notice that the difference between the
huge value and 0 is certainly larger than max-size-time and consider the queue
as full.
Instead, simply don't update the times from buffers without timestamps and
assume whatever was set before is still valid, i.e. the buffer has the same
timestamp as the previous one.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7071 >
2024-06-20 20:02:43 +03:00
Seungha Yang
e90880e988
d3d12device: Don't warn for out of range device index
...
It can happen during enumeration as well, and it's expected error
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7070 >
2024-06-20 14:23:13 +00:00
Seungha Yang
2983c50a9f
d3d12device: Dump device feature support
...
... and use CD3DX12FeatureSupport helper class in d3dx12.h
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7070 >
2024-06-20 14:23:13 +00:00
Edward Hervey
11ff2b2835
decodebin3: Fix keyframe drop probe handling
...
We were storing the probe id in a different structure (DecodebinOutputStream)
than the pad it is targetting (which is in MultiQueueSlot).
The problem is that when re-targetting outputs (to a different slot)... we would
end up having an invalid probe id, or not have a reference to an existing one.
Instead, store the probe id in the same structure as the pad it's targetting
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7069 >
2024-06-20 12:56:46 +00:00
Edward Hervey
6aa0c8442d
decodebin3: Fix detection of selection done
...
We should not assert if there are still some old streams that are waiting to be
deactivated.
Instead wait for them to be gone before posting the selection done message
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7069 >
2024-06-20 12:56:46 +00:00
Seungha Yang
bdb12db5c6
d3d12device: Prevent too many in-flight GPU commands
...
Even if each element is checking its own in-flight commands,
total number of commands can get larger in case of complex pipeline.
Limits total number of in-flight commands at command queue level
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7066 >
2024-06-20 00:58:45 +09:00
Seungha Yang
143efa2f86
d3d12commandqueue: Detect device removed event
...
Early return if device removed event is detected
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7066 >
2024-06-20 00:07:41 +09:00
Seungha Yang
327fb9924c
d3d12basefilter: Add adapter property
...
Allows initial GPU adapter selection
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7066 >
2024-06-20 00:03:28 +09:00
Seungha Yang
2ec7d82bd7
d3d12: Move fence setter helper method to gst-libs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:48 +00:00
Seungha Yang
fa7c4a2e39
d3d12converter: Update API signature
...
Always use device's main direct queue, and control gpu waiting
behavior by using boolean value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:48 +00:00
Seungha Yang
f6eb3a01c0
d3d12memory: Hide fence value from header
...
Instead of exposing fence value to wait in header, user setter/getter
methods.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:47 +00:00
Seungha Yang
49c4247cb3
d3d12device: Add helper method for getting fence handle
...
Add get_fence_handle() method so that caller can get command queue's
dedicated fence handle from device
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:47 +00:00
Seungha Yang
289bc1d440
d3d12: Remove notify_com and notify_mini_object helper methods
...
Use private macros instead of exposing multiple APIs for the same thing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:47 +00:00
Seungha Yang
6942868bda
d3d12commandqueue: Update API name and arguments
...
Accepts multiple fences since single command list may have
multiple dependent resources which are associated with
different GPU engines
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:47 +00:00
Seungha Yang
713ea313f8
d3d12device: Use HRESULT return code if possible
...
Make function signature consistent with that of command queue
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:47 +00:00
Stéphane Cerveau
a4c976dd20
vkdecoder: support layered and non dedicated DPB
...
As NVIDIA Amperium. In this case the each output buffer is also a DPB,
but using a different view layer.
Still pending a validation layer issue:
VUID-VkVideoBeginCodingInfoKHR-flags-07244
Co-authored-by: Victor Jaquez <vjaquez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6954 >
2024-06-19 10:37:32 +00:00
Tim-Philipp Müller
8d845d4a02
rtpdtmfsrc: minor logging clean-up
...
Only serialise event structure for debug logging purposes
if logging is actually enabled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7060 >
2024-06-19 07:32:49 +00:00