Mengkejiergeli Ba
956dc40fb8
msdkenc: Directly import dmabuf memory as mfx surface
...
When input buffer is of dmabuf memory but not a msdk buffer (i.e., the
allocator is not msdk_allocator), then we can try to get fd of this mem,
create the corresponding va surface and wrap it as mfx surface.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
b2e18f7f88
msdkenc: Directly import va memory as mfx surface
...
If input buffer is of va memory, we can directly obtain va surface from
the buffer and wrap it as mfx surface.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
a8c1cec051
msdk: Use va libs API to get VA surface from buffer
...
Direct apply gst_va_buffer_get_surface to get VASurface from a buffer,
so remove corresponding functions which are not used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Thibault Saunier
6a4425e46a
meson: Call pkgconfig.generate in the loop where we declare plugins dependencies
...
Removing some copy pasted code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970 >
2022-09-01 21:17:35 +00:00
Seungha Yang
c3cf9521a5
d3d11: Update library doc
...
* Private header name is changed to gstd3d11-private.h to follow
naming convention
* Add Since mark everywhere
* Update member variable names to be consistent with the other
object implementations in this library
* Correct outdated documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2945 >
2022-08-27 22:40:34 +09:00
Piotr Brzeziński
0d72a6209c
avfvideosrc: Fix wrong default framerate value
...
Current default G_MAXINT is not a correct value under any circumstances.
This creates an issue with screen capture, during which we currently do
not get any framerate info causing G_MAXINT to show up, where elements
downstream can possibly misbehave - for example, `vtenc` causes
a kernel panic.
Replace with 30/1 to avoid such scenarios.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2944 >
2022-08-25 14:24:57 +00:00
He Junyan
67eb1223c0
jpegdecoder: return the real error of decode_scan and decode_frame.
...
The current handle_frame() does not return the real error that happens
in decode_scan and decode_frame, which makes the pipeline continue with
the error and may trigger asserting later.
We also return the error when decode_quant_table or decode_huffman_table
fails.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2938 >
2022-08-25 17:42:55 +08:00
Seungha Yang
0a65aaa6d2
d3d11videosink: Add display-format property
...
Make swapchian's display format configurable, since some DXGI formats
we can use for swapchain are not API interop compatible.
For instance, BGRA format should be used for Direct2D interop.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2923 >
2022-08-24 17:44:49 +00:00
Seungha Yang
470436d7e6
d3d11videosink: Add present signal
...
The "present" signal will be emitted just before the
IDXGISwapChain::Present() call. The client can perform additional
GPU operation with given GstD3D11Device object and
ID3D11RenderTargetView handle. Or, the client can read back
the scene to be displayed on window using the signal.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2923 >
2022-08-24 17:44:49 +00:00
He Junyan
42838c3b9e
va: h265dec: Enable the scc_main_4:4:4_10 profile.
...
We should enable this profile which is already allown in vaprofile.c
after libva 1.8 version.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2909 >
2022-08-19 00:50:53 +00:00
U. Artie Eoff
135edee484
kmssink: add fd property
...
This allows an application to provide their own opened DRM device
fd handle to kmssink. For example, an application can lease
multiple fd's from a DRM master to display on different CRTC
outputs at the same time with multiple kmssink instances.
Specifying the fd property is not allowed when driver-name
and/or bus-id properties are specified.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2807 >
2022-08-18 18:31:59 +00:00
Seungha Yang
7bcfccd0bd
d3d11: Use CRITICAL_SECTION instead of GRecMutex
...
The GRecMutex abstraction (and heap allocation happens in GLib)
is unnecessary for this plugin.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2914 >
2022-08-18 17:48:57 +00:00
Seungha Yang
75e8f80999
cuda: Hide runtime compiler related header and symbols
...
That's already abstracted via gst_cuda_nvrtc_compile() method
and therefore, we do not need to expose such symbols yet.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2884 >
2022-08-18 05:20:08 +09:00
Víctor Manuel Jáquez Leal
b10fc4d8db
vajpegdec: Fix memory leak.
...
Free value content.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2899 >
2022-08-17 18:34:10 +00:00
Víctor Manuel Jáquez Leal
a075e57c61
vajpegdec: Fix 4:2:2 for i965.
...
Since i965 uses NV12 either for 4:2:0 and 4:2:2 chroma (using an
internal color conversion) the chroma validation has to be shortcut.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2899 >
2022-08-17 18:34:10 +00:00
Víctor Manuel Jáquez Leal
4dd6728ed5
va: Validate JPEG subsampling configurations.
...
There are Mesa Gallium drivers that report subsampling but without
any pixel format. So, strip out these subsamplings.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2899 >
2022-08-17 18:34:10 +00:00
Víctor Manuel Jáquez Leal
0446e35a14
va: gst_va_create_raw_caps_from_config() may return NULL.
...
This patch verifies if the function returns NULL in the caller.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2899 >
2022-08-17 18:34:10 +00:00
Eric Knapp
45408db258
decklink: Validate video input format
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2892 >
2022-08-17 13:29:55 -04:00
Eric Knapp
0c42c4801c
decklink: Auto-detect 10-bit YUV
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2892 >
2022-08-17 13:29:55 -04:00
Seungha Yang
df64226e71
d3d11decoder: Do timer based DecoderBeginFrame retry
...
... instead of retry count based one, because the precision of Sleep()
varies depending on system and application configuration.
Also, don't retry DecoderBeginFrame if decoder is doing flush.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2886 >
2022-08-15 19:16:16 +00:00
Seungha Yang
812bb14f28
cudaupload,cudadownload: Don't simplify caps in transform_caps
...
The simplified caps might not be a subset of filter caps
and basetransform will complain about it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2883 >
2022-08-15 18:44:14 +00:00
Seungha Yang
9b4fafb882
d3d11decoder: Do not use miniobject qdata
...
The miniobject qdata uses global mutex.
Use ID3D11DeviceChild::{Set,Get}PrivateData methods instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2885 >
2022-08-15 02:50:18 +09:00
Corentin Damman
0d07ff60c9
d3d11window: fix DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING swap chain flag for full screen
...
Fixes #1372 (regression introduced in 5eeec165
)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2866 >
2022-08-12 09:35:40 +00:00
Corentin Damman
0d5d94aabd
nvcodec: fix caps leaks in nvh264/h265encoder
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2850 >
2022-08-10 12:24:37 +00:00
Víctor Manuel Jáquez Leal
ad15fc9169
vah264enc: Set codec frame sync point if IDR
...
This flag is used by GstVideoEncoder base class for certain configurations.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2852 >
2022-08-10 08:00:18 +00:00
Víctor Manuel Jáquez Leal
c4706ed219
vah264enc: Packed headers can be zero.
...
A driver can report back no packed header support (VA_ENC_PACKED_HEADER_NONE).
This patch removes that false verification.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2851 >
2022-08-10 04:31:27 +00:00
Seungha Yang
05dae94352
d3d11: Use WIN32 API directly for locking with RAII pattern
...
Such abstraction is unnecessary for this library/plugin.
Use WIN32 API directly instead of GLib wrappers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2848 >
2022-08-08 20:13:51 +00:00
Víctor Manuel Jáquez Leal
ecb12a05b8
vah264enc: Fix caps for mesa gallium.
...
Radeon mesa gallium driver has a bug which adds P010_10LE sink caps
format. This patch removes formats which arent 420 chroma.
gst_caps_set_format_array() wasn't used because the fix traverse
several structures with potential different formats.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2844 >
2022-08-08 17:47:56 +00:00
Víctor Manuel Jáquez Leal
8c59ee29c2
vah264dec: Complete profiles in decoder.
...
Instead of specifying all the H.264 "supported" profiles in the global
hash table (used either by decoders and encoders), just complete them
in the decoder only, since the encoder doesn't support them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2844 >
2022-08-08 17:47:56 +00:00
Seungha Yang
66d504ee58
d3d11: Don't find global default allocator
...
We were using global default allocator already. Pass null
allocator object to *_alloc() methods then the method will
use default allocator.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2843 >
2022-08-06 23:55:18 +09:00
Seungha Yang
74f56632c3
d3d11: Use std::call_once()
...
g_once_init_enter() always takes global mutex for non-GCC build.
Use C++ once call implementation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2843 >
2022-08-06 23:27:23 +09:00
Víctor Manuel Jáquez Leal
67ce55f33e
vah264enc: Lock properties read/write.
...
This is a first step for changing properties at runtime.
And add missing bitrate upate and notification.
Fixes : #1258
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2836 >
2022-08-04 14:26:00 +00:00
Víctor Manuel Jáquez Leal
cc9d69cb66
vah264enc: Use guint32 for rc_ctrl as it's for rc_ctrl_mode.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2836 >
2022-08-04 14:26:00 +00:00
Víctor Manuel Jáquez Leal
7e95a8fc92
vah264enc: Split aud property and its usage.
...
Just as other property variables, it's split for ease it usage,
particularly after adding access locks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2836 >
2022-08-04 14:26:00 +00:00
Víctor Manuel Jáquez Leal
c9f2108b43
va: baseenc: Untabbify and format.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2836 >
2022-08-04 14:26:00 +00:00
Seungha Yang
b8010e41a1
d3d11compositor: Add gamma-mode and primaries-mode properties
...
Allows controlling gamma remap and/or chromatic adaptation behavior.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2831 >
2022-08-04 03:19:42 +09:00
Seungha Yang
f89cb98495
d3d11videosink: Add gamma-mode and primaries-mode properties
...
Allows controlling gamma remap and/or chromatic adaptation behavior.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2831 >
2022-08-04 02:48:57 +09:00
Seungha Yang
0ac7077d2d
d3d11convert: Add gamma-mode and primaries-mode properties
...
Allows controlling gamma remap and/or chromatic adaptation behavior.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2831 >
2022-08-04 02:48:57 +09:00
Víctor Manuel Jáquez Leal
ce7070bf5b
vapostproc: Check for colorimetry changes.
...
It uses what's merged in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2765
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2777 >
2022-08-02 17:39:24 +00:00
Seungha Yang
bc065d2cc2
d3d11videosink: Translate mouse position
...
Converts mouse cursor position represented in display coordinates to
stream coordinates.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2824 >
2022-08-02 14:24:22 +00:00
Seungha Yang
7d4a1a5beb
d3d11videosink: Early terminate mouse/keyboard event handling
...
... and add missing null check (plus coding style fix)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2824 >
2022-08-02 14:24:22 +00:00
Nirbheek Chauhan
b2d22c0f00
meson: Don't pass -Werror to vendored code
...
Do it the correct way with libusrsctp -- override the option so that
it's done in a compiler-agnostic and future-proof way.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2494 >
2022-07-30 11:27:12 +00:00
Seungha Yang
8fee6bf785
wasapi2: Fix initial mute/volume setting
...
Fix up volume/mute change flag setting
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2809 >
2022-07-29 02:37:29 +09:00
Eric Knapp
d11a0d04ec
va: h264enc: Make AUD the first NAL unit
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2796 >
2022-07-27 06:46:21 +00:00
Seungha Yang
cf94045dbf
qsvencoder: Add support for D3D11 shared texture
...
Although input texture belongs to the other d3d11 device,
we can do GPU copy when its physical device is identical.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2790 >
2022-07-23 16:53:14 +00:00
Seungha Yang
6fff608f27
d3d11: Port to GstD3D11Fence
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2790 >
2022-07-23 16:53:14 +00:00
Nicolas Dufresne
316b182a86
v4l2codecs: h264: Reset the number of slices on picture start
...
This way, if we aborted a frame in the middle, we don't endup thinking
there is multiple slices to send.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:03 -04:00
Nicolas Dufresne
c2144ec586
v4l2codecs: h264: Fix initialization of the slice array
...
The function g_array_sized_new() leaves the len to 0, but the slice
implementation assumes it would be set to 4. Sending multiple slices is
not yet support for H.264 as no driver needed it yet, but if that code
was to be used it would have overflowed as the array would never grow as
multiple 0 by 2 always results in 0.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:03 -04:00
Nicolas Dufresne
a707d984ae
v4l2codecs: h264: Rename count variable to num_controls
...
This is the counter for the used control slot. The term num_controls was
introduced in the HEVC decoder and felt like a better choice.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:02 -04:00
Nicolas Dufresne
a2b219c7e1
v4l2codecs: hevc: Add an API check
...
This adds an API check and bump recommended base kernel version to 5.20.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079 >
2022-07-22 10:21:02 -04:00