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
Philippe Normand
ce0b60b5c9
meson: Declare dav1d dependency in subproject
...
Fixes this error:
dav1d| Subproject dav1d finished.
gst-plugins-rs| WARNING: Subproject 'dav1d' did not override 'dav1d' dependency and no variable name specified
gst-plugins-rs| Dependency dav1d from subproject subprojects/dav1d-1.4.1 found: NO
subprojects/gst-plugins-rs/meson.build:382:14: ERROR: Dependency 'dav1d' is required but not found.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6436 >
2024-03-25 10:14:13 +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
Nirbheek Chauhan
0faff6fb5e
meson: Bump pixman.wrap to latest version
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6351 >
2024-03-23 13:08:15 +00:00
Nirbheek Chauhan
3885efea03
meson: Add the name of the provided dependency to pixman.wrap
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6351 >
2024-03-23 13:08:15 +00:00
Nirbheek Chauhan
ab7e253667
meson: Fix various build issues with opus-1.5.1
...
All taken from upstream, can be removed on bump.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6351 >
2024-03-23 13:08:15 +00:00
Nirbheek Chauhan
bd753822c4
ci: Enable opus and vpx plugins everywhere by default
...
Ensure that they are build-tested on the CI.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6351 >
2024-03-23 13:08:15 +00:00
Nirbheek Chauhan
492d3afad3
meson: Make wrap downloads smaller
...
Make all git clones depth=1 and switch opus to the tarball.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6351 >
2024-03-23 13:08:15 +00: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
Sebastian Dröge
cfe55115c3
ci: Update to Rust 1.77 / cargo-c 0.31 / rustup 1.27
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6426 >
2024-03-22 21:31:03 +00:00
Hou Qi
024d3ab051
v4l2: Also set max_width/max_height if enum framesize fail
...
Some driver doesn't implement enum_framesize. The maximum supported
size can be got by trying format with a very large size. Also need
to set max_width/max_height for this case, otherwise default encoded
buffer size 256kB is too small.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6416 >
2024-03-22 16:02:51 +00: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
Wojciech Kapsa
71e879236f
webrtc: Change requirement to libnice 0.1.22
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6424 >
2024-03-22 08:49:32 +00:00
Philippe Normand
f8e524842b
subprojects: Bump to dav1d 1.4.1
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6420 >
2024-03-21 20:32:27 +00:00
Tim-Philipp Müller
4790a44d10
Revert "audiobasesink: Don't wait on gap events"
...
This reverts commit 8e923a8e2d
.
This caused regressions, see #3303 .
Without this commit, osxaudiosrc ! osxaudiosink won't work
right, but since that hasn't really been a huge problem
for years it's probably best to revert this until a proper
solution can be figured out.
(cherry picked from commit f04f86f3ee
)
(cherry picked from commit 93255efece
)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6405 >
2024-03-21 03:19:03 +00:00
Thomas Goodwin
fde2495218
gst-inspect: fix --atleast-version to be implicitly applied to --exists
...
The --atleast-version implies --exists, but the implementation in
earlier commits had the version check applied any time the --exists was
checked, and the default value of the major and minor versions were set
to the GStreamer major and minor versions. The resulting behavior would
have gst-inspect return '1' if the plugin's version didn't match
gstreamer's even when --atleast-version was not specified in the command
line args. The change in this patch removes that behavior and adds
tests to verify that if --exists is specified WITHOUT --atleast-version
the version check will NOT be applied. If both arguments are specified
and the version does not match the arg-supplied version number, a new
return code of '2' is used to uniquely identify the failure.
Fixes #3246
Signed-off-by: Thomas Goodwin <thomas.goodwin@laerdal.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6191 >
2024-03-20 21:19:07 +00:00
Thibault Saunier
2a4b9c8dc1
validate: reporter: Use an MT safe weak ref to reporter for GLog handling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6412 >
2024-03-20 16:45:34 +00: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
Edward Hervey
5280f0b733
adaptivedemux2: Add libsoup tracing debug
...
Provides more information for debugging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6409 >
2024-03-20 09:48:12 +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
Edward Hervey
3d500636a9
adaptivedemux2: Don't use g_str_equal on potentially NULL strings
...
It is only meant to be used as a callback. The fallback macro uses strcmp which
doesn't handle NULL strings gracefully. Instead use g_strcmp0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6392 >
2024-03-19 13:25:41 +00:00
Edward Hervey
ab11c20d59
hlsdemux2: Avoid NULL pointer usage
...
The pending/current variant are both NULL when the demuxer is resetted.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6392 >
2024-03-19 13:25:41 +00:00
Edward Hervey
46bb0bfa57
adaptivedemux2: Handle context going away
...
This issue can happen when the scheduler loop was stopped (and context went
away). We no longer want to push/pop main context threads.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6392 >
2024-03-19 13:25:41 +00:00
Edward Hervey
8438c3f567
hlsdemux2: Improve detection of playlist updates
...
In the case we are not updating an existing playlist, we only want to reset the
download error count if the URI we are downloading was not the previous one we
were trying to load
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6392 >
2024-03-19 13:25:41 +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
Edward Hervey
42e24c32e5
uridecodebin3: Don't hold lock when posting messages or signals
...
There's a very good chance that the receiver might react on those synchronously
and call back into uridecodebin3 (ex: for setting the next URI).
Make sure we release the lock if we need to do that.
Fixes #3400
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6402 >
2024-03-19 09:34:18 +01: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
Edward Hervey
c1ac015325
uridecodebin3: Handle potential double redirection errors
...
Some elements (like qtdemux) might post a redirection error message twice. We
only want to handle it once.
Fixes #3390
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6389 >
2024-03-18 13:30:24 +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