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