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