Hou Qi
4dfdaf67db
waylandsink: config buffer pool with query size when propose_allocation
...
If propose_allocation comes before set_caps, self->video_info
has not been extracted from caps and self->video_info.size is 0.
It causes buffer pool fail to set config . So need to use info
size got from query instead when propose_allocation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6666 >
2024-04-18 18:34:30 +00:00
Sebastian Dröge
750d53d7e0
rsvgdec: Remove unused GObject::finalize implementation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6613 >
2024-04-18 17:45:43 +00:00
L. E. Segovia
b8db473955
rsvgdec: Fix uses of librsvg functions deprecated since 2.52
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6613 >
2024-04-18 17:45:43 +00:00
Sebastian Dröge
5d876ff774
rsvgdec: Negotiate resolution with downstream and scale accordingly
...
Prefer the resolution given by the input but if downstream request a
specific resolution then scale to this without regards to the aspect
ratio.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1538
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6613 >
2024-04-18 17:45:43 +00:00
Nicolas Dufresne
e34f765a7e
v4l2codecs: Don't unref allocation query caps
...
The caps obtained from parsing the allocation query is borrowed and
should not be unreffed. This fixes criticals assertion introduced in
1.24.1.
(gst-launch-1.0:242): GStreamer-CRITICAL **: 19:48:02.667:
gst_mini_object_unref: assertion 'GST_MINI_OBJECT_REFCOUNT_VALUE (mini_object) > 0' failed
Fixes: 5189e8b956
("v4l2codecs: decoders: Add DMA_DRM caps support")
Closes #3462
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6679 >
2024-04-18 06:13:17 +00:00
Mengkejiergeli Ba
49dee23e65
msdk: Add main-422-12 profile to hevc
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6591 >
2024-04-17 19:31:09 +00:00
Jan Schmidt
26acd70c74
dvbsubenc: fixed some memory leaks and a crash
...
Fix leaks of internal GstBuffers, and a crash if subtitle segments end
up empty.
Based on a patch by Jurijs Satcs <jurijs.satcs@veset.tv>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6661 >
2024-04-17 11:37:49 +00:00
Alexander Slobodeniuk
b46383bf5e
d3d11converter: fix documentation for converter_new ()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6665 >
2024-04-16 23:30:51 +02:00
Seungha Yang
a7fe79c4de
mediafoundation: Fix device enumeration
...
Do not stop device enumerate even if a device could not be opened.
Otherwise the other devices listed after the failed device will not be
reported by device provider
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3460
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6598 >
2024-04-15 14:52:32 +00:00
Tim-Philipp Müller
60ac6d0883
tests: fix possible libscpp build failure in gst-plugins-bad
...
../subprojects/gst-plugins-bad/tests/check/libs/gstlibscpp.cc:41:
fatal error: gst/mpegts/gstmpegts-enumtypes.h: No such file or directory
Could only pass the needed deps to the libscpp test, but gets
messier to maintain, so let's at it for consistency.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6643 >
2024-04-15 11:41:51 +00:00
Philippe Normand
97d4c56c8f
tests: webrtcbin: Fix repaired-stream-id handling in simulcast test
...
The test was attempting to add the same stream-id extension twice, probably some
unfinished copy/paste.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6615 >
2024-04-15 08:43:09 +00:00
Seungha Yang
15434ce51d
dwrite: D3D12 integration
...
Adding d3d12 backend text renderer/blender by using d3d11on12 interop.
And subclassing renderer object per backend (i.e., d3d11, d3d12, and bitmap)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6620 >
2024-04-14 09:55:41 +00:00
Seungha Yang
f6ec4e6256
d3d12overlaycompositor: Add support for d3d12 memory
...
Don't allocate d3d12 texture if overlay is d3d12 memory already
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6620 >
2024-04-14 09:55:41 +00:00
Seungha Yang
13d892d336
d3d12: Move gst_d3d12_buffer_copy_into method to library
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6620 >
2024-04-14 09:55:41 +00:00
Seungha Yang
b242f5d2ec
d3d12converter: Port to GstD3D12Frame
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6620 >
2024-04-14 09:55:41 +00:00
Seungha Yang
cb670f8110
d3d12: Add GstD3D12Frame struct and helper method
...
Adding GstD3D12Frame struct with map, unmap, and copy methods.
This new struct is equivalent to GstVideoFrame but gst_d3d12_frame_map()
method will extract D3D12 specific resource handles from memory.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6620 >
2024-04-14 09:55:41 +00:00
Seungha Yang
8b88fcd18b
d3d12memory: Implement copy method
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6620 >
2024-04-14 09:55:41 +00:00
Seungha Yang
e597dcdf0d
d3d12encoder: Fix buffer pool leak
...
Add missing buffer pool release
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6628 >
2024-04-13 14:55:09 +00:00
Seungha Yang
d002acdd0c
d3d11videosink: Fix rendering on keyed mutex enabled handle
...
As of the commit 69b2e1565c
,
keyed mutex will be handled by the memory object.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3468
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6600 >
2024-04-12 14:46:20 +00:00
Jordan Petridis
c4e0d19f13
fdkaac: Mark the dependency include_type as 'system'
...
When using v2.0.2 of the subproject, it triggers werror for
unused functions that come from the fdkaac headers.
This avoids errors like the following when werror is set.
```
subprojects/fdk-aac-2.0.2/fdk-aac/FDK_audio.h:757:29: error: ‘FDKlibInfo_lookup’
defined but not used [-Werror=unused-function]
757 | static FDK_AUDIO_INLINE INT FDKlibInfo_lookup(const LIB_INFO* info,
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6611 >
2024-04-12 13:18:40 +03:00
Tim-Philipp Müller
9ec99ac6f2
analyticsmeta: fix g-ir-scanner warnings
...
Fix
gstanalyticsmeta.c:134: Warning: GstAnalytics: "@instance"
parameter unexpected at this location
warning (caused by the extraneous empty line in the doc chunk)
and align function arguments with documentation and header file
(handle -> instance).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6585 >
2024-04-10 00:46:42 +00:00
Seungha Yang
ff754dca79
ccconverter: Fix caps leak and remove unnecessary code
...
The removed code does the exactly same thing as the below code
except for leaking caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6548 >
2024-04-09 18:26:18 +00:00
Seungha Yang
0cc206e939
qsvdecoder: Release too old frames
...
Release too old frames manually.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3163
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6583 >
2024-04-09 16:49:47 +00:00
Seungha Yang
448a461a40
d3d12converter: Simplify root signature build
...
D3DX12SerializeVersionedRootSignature() helper method will translate
RS 1.1 into 1.0 version if needed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6557 >
2024-04-08 13:24:20 +00:00
Daniel Morin
0c8e4d4a2c
h264parser: maintain API changes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6540 >
2024-04-07 15:25:23 +00:00
Daniel Morin
71659f2545
Revert "h264parse: test - AU align with SEI between frame slices"
...
This reverts commit 533f814fd9
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6540 >
2024-04-07 15:25:23 +00:00
Daniel Morin
e57f561a8e
Revert "h264parse: Improved AU boundary detection"
...
This reverts commit 49f200cb54
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6540 >
2024-04-07 15:25:23 +00:00
Daniel Morin
694c6e77b1
Revert "h264parse: Remove dead code"
...
This reverts commit 141cd38715
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6540 >
2024-04-07 15:25:22 +00:00
Daniel Morin
ac3272db40
Revert "h264parse: Fix AU collection"
...
This reverts commit 495390f63a
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6540 >
2024-04-07 15:25:22 +00:00
Daniel Morin
64c2c8d542
Revert "h264parse: Remove un-needed check on SPS state"
...
This reverts commit 73dedf9a51
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6540 >
2024-04-07 15:25:22 +00:00
Daniel Morin
6ff1973b5b
Revert "h264parse: use AUD to detect first VCL NAL"
...
This reverts commit 90a3b63eed
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6540 >
2024-04-07 15:25:22 +00:00
Daniel Morin
0bc5d97321
Revert "h264parse: correct NAL mode backlog processing"
...
This reverts commit b2098849dc
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6540 >
2024-04-07 15:25:22 +00:00
Edward Hervey
eedfb5e6d7
videoparsers: Demote CC warning message
...
Another warning message which isn't fatal and therefore should just be a DEBUG
line.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6550 >
2024-04-06 06:11:03 +02:00
Seungha Yang
f59c43c50f
d3d12device: Fix typo in object name
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6549 >
2024-04-06 01:14:56 +09:00
Mathieu Duponchelle
4b93581c15
ajasrc: always post details about detected format
...
.. instead of only when there is a mismatch.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6438 >
2024-04-04 18:23:31 +00:00
Robert Mader
0a26a92b2b
jpegparse: turn some bus warnings into object ones
...
For some cameras `gst_jpeg_parse_app0()` fails on a invalid segment.
While this is likely a driver or firmware bug that should be addressed
accordingly, it's not fatal and likely does not deserve a bus message on
every frame, flooding journals.
Turn down the volume of the warnings by turning them into object
warnings. If we conclude that in some cases we'd still want bus
warnings, they can be done more fine-grained in the
`gst_jpeg_parse_appX()` functions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6490 >
2024-04-04 11:35:07 +00:00
Víctor Manuel Jáquez Leal
fc0ef6ede6
vkh265dec: add missing VPS parameter
...
and fix coded size
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6400 >
2024-04-03 16:46:14 +00:00
Víctor Manuel Jáquez Leal
a6608d72e6
vkh26xdec: implement close() vmethod
...
Since a validation layer error is signaled at EOS because it's required to wait
for the last frame to be processed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6400 >
2024-04-03 16:46:14 +00:00
Víctor Manuel Jáquez Leal
316ca23cab
vkh26xdec: remove unused variables
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6400 >
2024-04-03 16:46:14 +00:00
Víctor Manuel Jáquez Leal
3dd5e0d46f
vkh265dec: fix resource info structure when layered DPB
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6400 >
2024-04-03 16:46:14 +00:00
Víctor Manuel Jáquez Leal
d18d6a70ac
examples: vaenc-dynamic: support target percentage change in QVBR
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6465 >
2024-04-03 13:51:31 +02:00
Víctor Manuel Jáquez Leal
a9d839b8a3
examples: vaenc-dynamic: ignore bitrate change with ICQ too
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6465 >
2024-04-03 13:51:31 +02:00
Víctor Manuel Jáquez Leal
4b5e930bc8
va: encoders: don't assert at target percentage when QVBR
...
Instead of asserting, just get the max value between the current value and 10,
which is the minimum required by QVBR.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6465 >
2024-04-03 13:51:31 +02:00
Víctor Manuel Jáquez Leal
cd14db923e
examples: vaenc-dynamic: add vp9, av1 and low power tests
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6465 >
2024-04-03 13:51:31 +02:00
Chris Spencer
c6a3b2ab85
vkbufferpool: correct usage flags type
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6514 >
2024-04-03 09:36:44 +00:00
Víctor Manuel Jáquez Leal
3b4b979ec4
msdk: sink context reference
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6398 >
2024-04-03 08:48:25 +00:00
Víctor Manuel Jáquez Leal
c83b69d146
gtk: sink reference of internal wayland pool
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6398 >
2024-04-03 08:48:25 +00:00
Víctor Manuel Jáquez Leal
e53c3ab5db
wayland: sink reference to internal pool
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6398 >
2024-04-03 08:48:25 +00:00
Víctor Manuel Jáquez Leal
c080e7041d
dash: sink references of all MDP objects
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6398 >
2024-04-03 08:48:25 +00:00
Víctor Manuel Jáquez Leal
0d48ede4a9
va: sink reference at instantiation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6398 >
2024-04-03 08:48:25 +00:00
Víctor Manuel Jáquez Leal
b18483a563
vulkan: sink references at instantiation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6398 >
2024-04-03 08:48:25 +00:00
eri
0f1a3b6847
play: Update video_snapshot
to support playbin3
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6516 >
2024-04-03 07:46:23 +00:00
Seungha Yang
b9ebe979ee
qsvencoder: Handle d3d12 context
...
GstD3D12Device objetct's internal resources are singletons per adapter
already though, the object itself is not a singleton.
Due to the singleton design (unlike other APIs such as d3d11),
d3d12 device context sharing is not a strict requirement
for zero-copy, but handles context ones to make things less noisy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6513 >
2024-04-03 02:05:25 +00:00
Seungha Yang
ad6670ba81
d3d12decoder: Always output sharable texture
...
Because shared heap's additional costs is not significant,
use D3D12_HEAP_FLAG_SHARED for resource can be shared over process
boundary. And enables render target for d3d11 interop in the process.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6513 >
2024-04-03 02:05:25 +00:00
Guillaume Desmottes
ed54734825
examples: set perfect-timestamp=true on opusenc
...
Fix audio streaming on Chrome, see https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1524
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6512 >
2024-04-02 22:08:31 +00:00
He Junyan
cbdc22d697
va: av1enc: Change the set_property to make it atomic
...
The inside encoder may be set in other threads, so we should make
its accessing atomic.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6471 >
2024-04-02 19:01:22 +00:00
He Junyan
db74da3f6f
va: vp9enc: Change the set_property to make it atomic
...
The inside encoder may be set in other threads, so we should make
its accessing atomic.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6471 >
2024-04-02 19:01:22 +00:00
Víctor Manuel Jáquez Leal
8bede7937c
va{vp9,av1}enc: reconfigure when properties change
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6471 >
2024-04-02 19:01:22 +00:00
He Junyan
d179fca13f
va: h265enc: Change the set_property to make it atomic
...
The inside encoder may be set in other threads, so we should make
its accessing atomic.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6471 >
2024-04-02 19:01:22 +00:00
He Junyan
33bc8d75ad
va: h265enc: set the reconf flag when cpb_size updated
...
This feature can be changed dynamically in playing state, so we
need to set reconf flag to trigger reconfig.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6471 >
2024-04-02 19:01:22 +00:00
He Junyan
045449e190
va: h264enc: Change the set_property to make it atomic
...
The inside encoder may be set in other threads, so we should make
its accessing atomic.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6471 >
2024-04-02 19:01:22 +00:00
He Junyan
812e7efb90
va: h264enc: set the reconf flag when cpb_size updated
...
This feature can be changed dynamically in playing state, so we
need to set reconf flag to trigger reconfig.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6471 >
2024-04-02 19:01:22 +00:00
Seungha Yang
4ede9fef07
dwrite: Fix crash on device update
...
Selected blend mode should not be cleared on device update
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6508 >
2024-04-02 17:36:28 +00:00
Seungha Yang
106187cc59
nvencoder: Add support for RGB formats
...
Adding RGBA, RGBx, BGRA, BGRx, VUYA and RGB10A2_LE format support for performance.
However, these formats are not still recommended if upstream can support
native YUV formats (e.g., NV12, P010) since NVENC does not expose
conversion related optiones. Note that VUYA format is 4:4:4 YUV format
already but NVENC runtime will convert it to 4:2:0 format internally
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6417 >
2024-04-02 13:07:29 +00:00
Seungha Yang
e6f496a240
cuda: Add support for VUYA format
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6417 >
2024-04-02 13:07:29 +00:00
Seungha Yang
707ac69f5f
qsv: Add support for d3d12 interop in encoder
...
Since QSV API does not support D3D12, try to import d3d12 resource
into d3d11 texture. Note that resource sharing requires
D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 for NV12 texure sharing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6501 >
2024-04-02 11:54:39 +00:00
He Junyan
78f1299ce4
va: av1enc: Avoid reopen encoder or renegotiate
...
If parameters remain similar enough to avoid either encoder reopening
or downstream renegotiation, avoid it.
This is going to be useful for dynamic parameters setting.
To check if the stream parameters changed, so the internal encoder has
to be closed and opened again, are required two steps:
1. If input caps, format, profile, chroma or rate control mode have changed.
2. If any of the calculated variables and element properties have changed.
Later on, only if the output caps also changed, the pipeline
is renegotiated.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6441 >
2024-04-02 09:06:07 +00:00
He Junyan
075937dc19
va: vp9enc: Avoid reopen encoder or renegotiate
...
If parameters remain similar enough to avoid either encoder reopening
or downstream renegotiation, avoid it.
This is going to be useful for dynamic parameters setting.
To check if the stream parameters changed, so the internal encoder has
to be closed and opened again, are required two steps:
1. If input caps, format, profile, chroma or rate control mode have changed.
2. If any of the calculated variables and element properties have changed.
Later on, only if the output caps also changed, the pipeline
is renegotiated.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6441 >
2024-04-02 09:06:07 +00:00
He Junyan
40629b84ee
va: av1enc: Improve the LAST reference assignment
...
The last frame which has the smallest diff should be consider as
the first choice rather than the golden frame. Especially when only
one reference available, this way can improve the BD rate about 5
percentage.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6379 >
2024-04-02 03:54:52 +00:00
He Junyan
1745a82516
va: av1enc: Fix the reference number setting bug
...
The current way will let the total reference number surplus the
reference number set by the "ref-frames" property.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6379 >
2024-04-02 03:54:52 +00:00
Seungha Yang
dce4067e83
meson: d3d11: Add support for MinGW DirectXMath package
...
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3428
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6495 >
2024-04-02 05:14:53 +09:00
Seungha Yang
bb268eafa1
webview2: Add support for d3d12 interop
...
Enable shared copy to D3D12 resource
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6499 >
2024-04-02 03:43:59 +09:00
Seungha Yang
d00c26cdc8
d3d12screencapturesrc: Use gst_d3d12_memory_get_d3d11_texture()
...
... and use fence to wait for GPU sync
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6499 >
2024-04-02 03:43:59 +09:00
Seungha Yang
ce34e63605
d3d12memory: Add support for d3d11 texture caching
...
Would be useful for various D3D11 interop use cases
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6499 >
2024-04-02 03:43:59 +09:00
He Junyan
e023546162
va: encoder: Fix the unit of bitrate in debug log message
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6483 >
2024-04-01 15:39:13 +00:00
He Junyan
9c3bd3950e
va: vp9enc: Adjust the coded buffer size to avoid failure
...
Some extreme case such as "videotestsrc pattern=1" can generate pure
white noise videoes, for which encoder may generate too big output
for current coded buffer size. We now consider the qindex and bitrate
to avoid that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6483 >
2024-04-01 15:39:13 +00:00
He Junyan
2560f4c581
va: vp9enc: Fix the frame size not enough issue for super frame
...
The current code forgets to add the current last frame size into
the total super frame size.
Fixes : #3427
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6483 >
2024-04-01 15:39:13 +00:00
Cheah, Vincent Beng Keat
249a086612
msdk: Fix mjpeg BGRx encode
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6401 >
2024-04-01 11:23:24 +00:00
Seungha Yang
7d0e90b7bc
d3d12: Move core part to gst-libs
...
Move buffer pool, converter, and device abstraction layer to
public library
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6494 >
2024-04-01 10:37:50 +00:00
Seungha Yang
7829315305
d3d12memory: Define new D3D12 map flags
...
Define GST_MAP_READ_D3D12 and GST_MAP_READ_D3D12 flags
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6494 >
2024-04-01 10:37:50 +00:00
Seungha Yang
abeccdd6bc
d3d12: Make resource getter methods consistent
...
Returns COM pointer directly everywhere
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6494 >
2024-04-01 10:37:49 +00:00
Seungha Yang
706d5402fa
d3d12: Remove device11on12 wrapping layer
...
It was added to avoid symbol conflict between DirectX-header project
and Windows SDK, but symbol conflict does not happen
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6494 >
2024-04-01 10:37:49 +00:00
Seungha Yang
927e249557
d3d12bufferpool: Use d3dx12.h format table
...
The format table in SDK header defines all required information
already.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6494 >
2024-04-01 10:37:49 +00:00
Seungha Yang
0527f27204
d3d12: Add a helper method for device equality check
...
GstD3D12Device object itself is not singltons anymore but
underlying private struct is singltons.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6494 >
2024-04-01 10:37:49 +00:00
Mengkejiergeli Ba
faddaa8ba5
msdkvpp: Set colorimetry for src caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6316 >
2024-04-01 02:20:50 +00:00
Mengkejiergeli Ba
72bb59b37c
msdkenc: Set VideoFullRange according to input colorimetry range
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6316 >
2024-04-01 02:20:50 +00:00
Mart Raudsepp
3649f13bb3
meson: Don't confuse voaacenc plugin with bz2 one in meson variable names
...
No actual issue was observed from the previous naming duplicating bz2 one, so
just a correctness tweak.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6496 >
2024-04-01 00:52:16 +03:00
Seungha Yang
f7bdf91ad7
webview2: Add support for javascript injection
...
Allow javascript injection for various custom use cases.
For example, scrollbars and scrolling can be disabled via
gst-launch-1.0 webview2src location=https://gstreamer.freedesktop.org \
javascript="document.querySelector('body').style.overflow='hidden'" ! ...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6487 >
2024-03-30 16:44:28 +00:00
Seungha Yang
85d422f7c6
webview2: Use IContainerVisual for offscreen rendering
...
Capturing from hidden HWND fails sometimes for some reason.
Instead of rendering to hidden HWND, render webpage to container
visual and create WGC item from the container visual object.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6487 >
2024-03-30 16:44:28 +00:00
Alexander Slobodeniuk
7b69d1758f
d3d11videosink: disconnect signals before releasing the window
...
It might happen that the key event arrives when the d3d11videosink
is stopping. In case of GstD3D11WindowWin32 it can raise a
navigation event even when the sink is already freed, because the
window object's refcount may reach 0 in the window thread. In
other words sometimes the GstD3D11WindowWin32 lives few ms more
then the GstD3D11VideoSink, because it's freed asynchronously.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6476 >
2024-03-30 16:02:12 +00:00
Ruben Gonzalez
941793c7e4
wpe: avoid crash with G_DEBUG=fatal_criticals and static build
...
No plugin filenames if static build.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6484 >
2024-03-30 07:55:40 +00:00
Mengkejiergeli Ba
41c52f5739
msdk: Fix session close failure
...
In the case of multi-channels transcoding, a context with child
sesseion can be parent for others, so we need to check if the
msdkcontext has any child session in the list to avoid session
leaks. Otherwise, we will see the failure of closing a parent
session because one of its child's child session not released.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6259 >
2024-03-29 04:20:47 +00:00
Seungha Yang
d0cfada15e
meson: d3d11: Disable library build if DirectXMath header was not found
...
DirectXMath header library is a hard dependency
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6468 >
2024-03-28 11:44:14 +00:00
Seungha Yang
4888a25bac
webview2: Add Microsoft WebView2 based web browser source
...
Adding webview2src element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4631 >
2024-03-28 10:49:39 +00:00
He Junyan
a170fa4f46
va: {av1, vp9}enc: Use g_free() to free frames
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6466 >
2024-03-28 16:29:50 +08:00
Nicolas Dufresne
cee05343f0
v4l2codecs: alphadecoder: Explicitly pass 64 bit integers as such through varargs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6452 >
2024-03-27 14:01:45 -04:00
Sebastian Dröge
276329dd5d
alphadecodebin: Explicitly pass 64 bit integers as such through varargs
...
Maybe fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3422
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6452 >
2024-03-27 17:05:33 +00:00
Piotr Brzeziński
82294fd665
vtdec: Fix caps criticals during negotiation
...
Calling gst_pad_peer_query_caps() without a filter can give us EMPTY caps, whereas all the code below
assumes that's not the case. Replacing query+intersect with a filtered query ensures we always get a subset
of the template caps back.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6429 >
2024-03-27 09:04:28 +00:00
He Junyan
7ac9d26533
va: vp9enc: Correct the flags for registering properties
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6437 >
2024-03-27 10:24:12 +08:00
He Junyan
fa50571d3b
va: av1enc: Correct the flags for registering properties
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6437 >
2024-03-27 10:21:08 +08:00
He Junyan
73c1c1fe7f
va: {vp9, av1}enc: Do not use g_slice_new() to create frames
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6437 >
2024-03-27 10:18:04 +08:00
He Junyan
fa6552b7c5
test: Fix several code style issues in vp9bitwriter test
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6437 >
2024-03-27 10:17:51 +08:00
He Junyan
2688e28438
vp9bitwriter: Fix several hotdoc related format issues
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6437 >
2024-03-27 10:17:45 +08:00
He Junyan
71eff7ce97
va: encoder: update the bitrate change correctly
...
We should update and notify the bitrate change at a common place,
no matter whether the bitrate is calculated or not.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6433 >
2024-03-26 18:15:20 +00:00
He Junyan
56703704a5
va: av1enc: enable ICQ and QVBR modes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6433 >
2024-03-26 18:15:20 +00:00
He Junyan
5c51abfa71
va: vp9enc: enable ICQ and QVBR modes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6433 >
2024-03-26 18:15:20 +00:00
He Junyan
d90f718b1a
va: h265enc: enable ICQ and QVBR modes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6433 >
2024-03-26 18:15:20 +00:00
He Junyan
f45f52a786
va: h264enc: enable ICQ and QVBR modes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6433 >
2024-03-26 18:15:20 +00:00
He Junyan
85bcea1776
va: encoder: Enable ICQ and QVBR mode in rate control map
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6433 >
2024-03-26 18:15:20 +00:00
He Junyan
3f1ce4460a
va: encoder: Set the quality_factor parameter in rate control
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6433 >
2024-03-26 18:15:20 +00:00
Víctor Manuel Jáquez Leal
ababe13f1c
jpegparse: avi1 tag can be progressive
...
AVI1 tag in APP0 is trivalue: 0 not interleaved, 1 odd, 2 even.
So if avi1 is zero then the frame is progressive.
Also, this patch adds a couple log messages.
Fixes : #3414
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6445 >
2024-03-26 16:17:02 +00:00
Tim-Philipp Müller
46355e31d7
tests: add check to make sure -bad lib headers are C++ compiler clean
...
Only non-internal libs without external deps for now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6440 >
2024-03-26 14:21:34 +00:00
Matthew Waters
91e8331b52
ccconverter: fix cdp->cea608-raw field 1 60fps conversion
...
There was a potential busy loop occuring because when we were taking
data from the internal ccbuffer, we were not resetting which field had
written data. This would mean that the next time data was retrieved
from ccbuffer, it was always from field 0 and never from field 1.
This only affects usage of cc_buffer_take_separated() which is only used
by cdp->raw cea608.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6423 >
2024-03-26 02:23:08 +00:00
Seungha Yang
bbdfa00b7b
d3d12: Add support for cross-compile
...
... and fix bunch of GCC reported warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6435 >
2024-03-25 11:41:25 +00:00
Seungha Yang
6c80d2f5f8
d3d12: Allow building without WGC support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6435 >
2024-03-25 11:41:25 +00:00
Seungha Yang
2649d2ae62
d3d12: Port to d3dshader library
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6434 >
2024-03-25 00:02:12 +09:00
Seungha Yang
cab1f3e547
d3d11: Port to d3dshader library
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6434 >
2024-03-24 22:28:14 +09:00
Seungha Yang
13c90b606a
d3dshader: Add HLSL shader library
...
Adding a new library for HLSL compile and compiled bytecode caching.
This library will be used by d3d11 and d3d12 library/plugin, in order to
reuse single HLSL code and compiled HLSL bytecode.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6434 >
2024-03-24 22:05:49 +09:00
Seungha Yang
93bb362016
d3d11: Update shader to be d3d12 compatible
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6434 >
2024-03-24 20:33:26 +09:00
Seungha Yang
43da9b4249
d3d12: Update shader to be Shader Model 5.0 compatible
...
And use fxc HLSL compiler
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6434 >
2024-03-24 17:15:22 +09:00
Ruben Gonzalez
778381fba6
ristsrc: Clean caps instead of unref
...
Fix issue unrefering null caps. Better solution than
```
if (src->caps)
gst_caps_unref (src->caps);
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6432 >
2024-03-23 10:31:57 +01:00
Seungha Yang
0c148a96db
d3d12: Add IPC elements
...
Adding d3d12ipcsink and d3d12ipcsrc elements, equivalent to D3D11 ones.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6428 >
2024-03-22 23:09:12 +09:00
Seungha Yang
0006ad1f86
d3d12: Add buffer copy helper method
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6428 >
2024-03-22 23:09:05 +09:00
Seungha Yang
c612af6d42
d3d12commandqueue: Always invoke notify asynchronously
...
Otherwise the callback thread is unpredictable
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6428 >
2024-03-22 20:45:01 +09:00
Seungha Yang
18091f0115
d3d12memory: Update for API interop
...
Add support for destroy notify in case of wrapped memory, and
allow setting external fence for interop
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6428 >
2024-03-22 20:01:16 +09:00
Seungha Yang
0d559bead9
d3d12: Make primary fence sharable
...
Create primary fence with D3D12_FENCE_FLAG_SHARED flag so that
the fence can be shared with other APIs or processes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6428 >
2024-03-22 18:57:26 +09: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
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
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
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
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
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