Robert Mader
75b7e5fcb3
v4l2codecs/av1decoder: Allow output caps to be updated
...
To bring AV1 in line - needed for the next commit.
See: d3c5fc815e
("v4l2codecs: Allow output caps to be updated")
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5896 >
2024-01-09 17:29:52 +00:00
Stéphane Cerveau
97ebaa0bc1
gstutils: add gst_util_ceil_log2
...
Move ceil_log2 from nalutils.* to gstutils.*
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5888 >
2024-01-09 15:34:10 +00:00
Seungha Yang
a242b93f33
d3d12decoder: Release decoder and heap on stop
...
Sometimes driver crash happens if ID3D12VideoDevice got closed first,
and then ID3D12VideoDecoderHeap/ID3D12VideoDecoder are released.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5895 >
2024-01-09 13:52:44 +00:00
Seungha Yang
6ffed9b3dc
d3d12videosink: Fix crash on set_buffer()
...
set_buffer() can be called with null buffer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5895 >
2024-01-09 13:52:44 +00:00
Seungha Yang
7f2b4b6b09
d3d12: Fix warnings reported by debug layer
...
Fixing below debug layer report
ID3D12Device::CreateCommittedResource: Ignoring InitialState D3D12_RESOURCE_STATE_COPY_DEST.
Buffers are effectively created in state D3D12_RESOURCE_STATE_COMMON.
Buffer resource will be automatically promoted to D3D12_RESOURCE_STATE_COPY_DEST
at the very first COPY operation time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5895 >
2024-01-09 13:52:44 +00:00
Seungha Yang
e1ecd1de2f
d3d12: Simplify fence data setup
...
Adding COM and GstMiniObject specific methods to skip passing
free function pointer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5895 >
2024-01-09 13:52:44 +00:00
Seungha Yang
2c3f3c0cb6
d3d12device: Print live objects on finalize()
...
The report from debug layer can help tracing resource leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5895 >
2024-01-09 13:52:44 +00:00
Seungha Yang
0077c4beb0
d3d12decoder: Set buffer flag on output buffer
...
... and remove unnecessary condition check
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5891 >
2024-01-07 13:38:44 +00:00
Seungha Yang
02563605e8
d3d12videosink: Add gamma, primaries and sampling filter properties
...
Add properties to control conversion methods
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5891 >
2024-01-07 13:38:44 +00:00
Seungha Yang
368d8b9252
d3d12videosink: Add support for 3D transformation
...
Add x, y, and z axis rotation with scaling support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5891 >
2024-01-07 13:38:44 +00:00
Seungha Yang
72237d2563
d3d12videosink: Add support for MSAA
...
Adding "msaa" property to support MSAA rendering
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5891 >
2024-01-07 13:38:44 +00:00
Seungha Yang
de331217aa
d3d12videosink: Add support for fullscreen mode
...
Adding "fullscreen-on-alt-enter" and "fullscreen" properties so that
use can control fullscreen mode switch
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5891 >
2024-01-07 13:38:44 +00:00
Seungha Yang
24d515f57d
d3d11screencapturesrc: Hide symbols
...
Fix potential linking error in case of static build
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5883 >
2024-01-05 21:27:35 +09:00
Seungha Yang
ae3ed20f41
d3d12: Add screen capture element
...
Since DXGI desktop duplication API does not work with Direct3D12 device,
this element will use Direct3D11 device to acquire frame.
Then other rendering operations (e.g., texture copy, render pipeline) will
happen using Direct3D12 API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5883 >
2024-01-05 21:27:35 +09:00
Olivier Crête
6482514737
onnxinference: Fix leak of the output tensors
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5884 >
2024-01-04 19:11:20 +00:00
Olivier Crête
06d477a89d
onnx: Fix leak in ssdobjectdetector decoder
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5884 >
2024-01-04 19:11:20 +00:00
Mengkejiergeli Ba
5d488c444e
msdkvpp: Remove passthrough condition in propose_allocation
...
According to basetransform func: gst_base_transform_do_bufferpool,
it is the upstream to decide if it needs a bufferpool from vpp, so
we don't need passthrough condition in subclass propose_allocation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5879 >
2024-01-04 04:35:40 +00:00
Daniel Morin
90a3b63eed
h264parse: use AUD to detect first VCL NAL
...
- Fix skipsize on _update_backlog failure.
- Add robustness to AU completion detection by using AUD when present. If we've
received a AUD we overwrite the first VCL NAL detection when the result was
negative. VCL following AUD is the first VCL of next AU.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5862 >
2024-01-03 20:43:34 +00:00
Sebastian Dröge
3cd00da0bc
h2652json: Fix mix-up of different enum types
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5873 >
2024-01-03 09:03:30 +00:00
Seungha Yang
1b86c9d370
d3d12decoder: Try zero-copy in case of reverse playback too
...
In case of tier 1 decoder, always use reference-only picture to avoid
fixed-size pool limitation and output decoded picture without
copy even for negative rate. Also do not use copy queue for GPU to GPU
copy. Copy queue is specialized for upload/download and may occupy
PCIE bandwidth. Use direct queue as recommended by vendors.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5877 >
2024-01-03 02:08:53 +09:00
Seungha Yang
1fb44b8160
d3d12decoder: Fix crash on flush
...
On flush event, baseclass will discard all pictures from DPB
but there can be still in-flight commands not finished yet.
Use our command queue, allocator and fence data helper objects
to keep resource available during command execution.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5877 >
2024-01-03 01:36:42 +09:00
Seungha Yang
d3b3a1c00a
d3d12: Add {set,get}_user_data() methods to command allocator
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5877 >
2024-01-03 01:19:39 +09:00
Seungha Yang
9d5277e70e
d3d12decoder: Fix barrier usage
...
Common state promotion and decay does not seem to be applied to
decoder commands. Use barriers explicitly
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5877 >
2024-01-03 01:17:32 +09:00
Edward Hervey
583fadc051
dvdspu: Support all video caps for "ANY" feature
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5827 >
2024-01-02 14:13:04 +00:00
Arnaud Vrac
705ab7e35a
dvdspu: handle frame size event from upstream
...
An IDX file or codec_data normally contains the original frame size of
the video. Allow upstream to provide this information by sending a
custom event, which will allow scaling the overlay correctly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5827 >
2024-01-02 14:13:04 +00:00
Arnaud Vrac
559c4b8429
dvdspu: cache overlay composition
...
This avoids rendering the overlay buffer for each video frame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5827 >
2024-01-02 14:13:04 +00:00
Arnaud Vrac
5919bfec5e
dvdspu: negotiate overlay composition meta with downstream
...
This allows attaching the overlay composition as a meta on the video
buffer instead of blending with the video.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5827 >
2024-01-02 14:13:04 +00:00
Arnaud Vrac
85081cbef7
dvdspu: render to ARGB overlay instead of AYUV
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5827 >
2024-01-02 14:13:03 +00:00
Arnaud Vrac
b0ce390d50
dvdspu: render to AYUV overlay
...
Instead of only supporting writing SPU data directly to YUV frames,
render the SPU data to an intermediate AYUV overlay buffer. The overlay
data is then blended to the video frame.
For the PGS format, the overlay buffer size is set to the size of the
Composition Window, and its position in the overlay composition is set
to the window position. The objects to render are now cropped when the
cropping flag is set.
For the Vobsub format, the overlay buffer size is set to the size of the
Display Area.
Once rendered, the overlay composition rectangle is now moved and scaled
to fit the video output size, to avoid clipping.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5827 >
2024-01-02 14:13:03 +00:00
Seungha Yang
087e39564d
d3d12videosink: Fix buffer leak
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5875 >
2024-01-02 13:02:47 +00:00
Seungha Yang
b0ef890726
d3d12device: Store adapter index
...
... and remove unused fence object
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5875 >
2024-01-02 13:02:47 +00:00
Seungha Yang
0577d1c9de
d3d12: Reduce shader visible descriptor size
...
Shader visible descriptors occupy GPU resource and there are hardware
limits. Thus, in order to minimize the amount of shader visible heaps,
only non shader visible descriptor heap (staging) will be held by d3d12memory.
Then converter will copy the staging descriptor to shader visible
descriptor heap per draw.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5875 >
2024-01-02 13:02:47 +00:00
Seungha Yang
0ce6e752e4
d3d12: Use CREATE_NOT_ZEROED heap flag if possible
...
Zero initialization would have overhead and it's not required
most cases except for textures. Use CREATE_NOT_ZEROED flag
in case of buffer resource or if a texture will be rendered without any
prior read operation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5875 >
2024-01-02 13:02:47 +00:00
Seungha Yang
a1ba38cd64
d3d12: Add compositor element
...
Adding d3d12compositor element. d3d12compositor will build GPU commands
asynchronously and each command is serialized at final render stage.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5875 >
2024-01-02 13:02:47 +00:00
Seungha Yang
996346f8d3
d3d12converter: Don't map output buffer with write flag
...
Conversion will happen when constructed command list is executed,
not by converter element. Thus this object should not map output buffer
with write flag which will result in error if multiple threads
are building commands for the same output target frame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5875 >
2024-01-02 13:02:47 +00:00
Seungha Yang
bffbf0d951
d3d12converter: Add support for texture upload
...
If buffer is not a d3d12 memory or allocated by other device,
upload to internal d3d12 memory
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5875 >
2024-01-02 13:02:47 +00:00
Seungha Yang
f4fe17d8d2
d3d12converter: Add support for blending
...
Create new PSO if blend state update is required
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5875 >
2024-01-02 13:02:47 +00:00
Seungha Yang
7c701058ed
d3d12: Add testsrc element
...
Adding testsrc element with d2d interop support via d3d11on12
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5875 >
2024-01-02 13:02:46 +00:00
Seungha Yang
abe1f5044d
cuda: Prefer CUBIN over PTX
...
System installed NVRTC library might be newer version than
driver, then generate PTX can be incompatible with the driver.
Instead of the intermediate code PTX, use actual assembly code
directly.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3108
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5639 >
2024-01-02 10:10:09 +00:00
Seungha Yang
7d210af46c
docs: Update Windows plugins cache
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00
Seungha Yang
2f091e7118
d3d12: Add video sink element
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00
Seungha Yang
660f2d7d27
d3d12: Add convert element
...
Implement converter object with convert element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00
Seungha Yang
4198bd6932
d3d12: Add helper object for fence operation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00
Seungha Yang
eeb57061d2
d3d12: Enable plugin only for Windows8 or newer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00
Seungha Yang
3e49d6a75f
d3d12: Define more formats
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00
Seungha Yang
48cfca413d
d3d12: Add header containing core features
...
... and include the single header instead of listing many ones
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00
Seungha Yang
41d8a12649
d3d12: Remove unused methods
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00
Seungha Yang
5ce2a7f64f
d3d12bufferpool: Don't pre-allocate memory for size calculation
...
Unlike d3d11, we can know CPU accessible memory layout without
allocation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00
Seungha Yang
d316356bf2
d3d12memory: Add alloc_wrapped() method
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00
Seungha Yang
3308a976bd
d3d12: Add upload element
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00