Commit graph

119422 commits

Author SHA1 Message Date
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
Sebastian Dröge 9854c79ad6 ci: Update to Rust 1.77.1
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6482>
2024-03-29 19:55:09 +00:00
Hou Qi 1e70dea347 encodebin: Add the parser before timestamper to tosync list
Also need to sync the state of the parser before timestamper with
parent.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6481>
2024-03-29 07:59:06 +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
Tim-Philipp Müller ef5b8dc96a tests: rtpred: fix out-of-bound writes
Don't write more data to the buffer than we allocated
space for.

Fixes #3312

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6474>
2024-03-28 19:51:47 +00:00
Haihua Hu 37e3a38ba9 v4l2src: need maintain the caps order in caps compare when fixate
if the calculated "distance" of caps A and B from the preference are
equal, need to keep the original order instead of swap them

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6451>
2024-03-28 12:53:01 +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
Seungha Yang fd3617bfef subprojects: Add Microsoft WebView2 SDK
Add WebView2 NuGet package downloader and meson file

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
Sebastian Dröge 6d3ed65179 basesrc: Clear submitted buffer lists consistently with buffers
And handle the case of a NULL buffer being returned cleanly, which is
valid as long as a buffer list is returned instead. Previously this
would cause an assertion because of calling gst_buffer_unref() with
NULL.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6460>
2024-03-27 16:16:10 +00:00
Taruntej Kanakamalla 6a67ae1bfa net/gstptpclock: fix double free of domain data during deinit
The attempt to free the domain data is happeing twice during the ptp deinit.
Once while iterating through the list domain_data and second while iterating
through the list domain_clocks, so this is crashing the application
trying to gst_ptp_deinit

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6443>
2024-03-27 17:54:46 +05:30
Jan Schmidt 351936aeac rtpmp4adepay: Set duration on outgoing buffers
If we can calculate timestamps for buffers, then set the duration
on outgoing buffers based on the number of samples depayloaded.

This can fix the muxing to mp4, where otherwise the last packet
in a muxed file will have 0 duration in the mp4 file.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6447>
2024-03-27 10:53:38 +00:00
Arnaud Vrac 258e9d2bca inputselector: fix possible clock leak on shutdown
Avoid leaking a GstClock object on shutdown, bail out before taking the ref when
not playing.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6442>
2024-03-27 10:10:14 +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
L. E. Segovia 31baaf8906 Android tutorials: add outputs to gitignore
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6419>
2024-03-27 08:20:27 +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
Tim-Philipp Müller 9e2cc83f23 ges: add check to make sure headers are C++ compiler clean
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3421

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6440>
2024-03-26 14:21:34 +00:00
Thibault Saunier 324c211283 ges: frame-composition-meta: Stop using keyword 'operator' for field in C++
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3421

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6440>
2024-03-26 14:21:34 +00:00
Sebastian Dröge e0dfb3d974 rtphdrext-ntp: Fix typo of the RFC number in the element metadata
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3417

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6439>
2024-03-26 14:37:47 +02: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