Commit graph

118346 commits

Author SHA1 Message Date
Jan Schmidt
23097e35e6 glfiter: Protect GstGLContext access
The propose and decide allocation vfuncs are called directly from
basetransform and need to use the locked accessor function for
retrieving a reliable reference to the GstGLContext (if available)

Fixes spurious crashes on shutdown during pad reconfiguration

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5437>
2023-10-18 11:22:31 +00:00
Nicolas Dufresne
41f478e97d v4l2codecs: h265: Fix entry_point_offsets array leak
This array was being leaked.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5499>
2023-10-17 15:06:26 -04:00
Detlev Casanova
5f9b24e3ba codecs: h265: Do not free slice header before using it
The v4l2codecs H.265 decoder uses the
GstH265SliceHdr::entry_point_offset_minus1 array so make sure that it is not
freed before decoding the frame.

Before this patch, some H.265 input would segfault in
gst_v4l2_codec_h265_dec_fill_slice_params() when executing the line:

guint32 entry_point_offset = slice_hdr->entry_point_offset_minus1[i] + 1;

Make sure that the array is not freed before using it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5499>
2023-10-17 15:06:10 -04:00
Seungha Yang
269ab85881 d3d11converter: Fix deadlock on taking property mutex
SRWLOCK should be zero initialized, but since we changed the private
struct to C++, use C++ mutex instead.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5498>
2023-10-17 12:50:55 +00:00
Doug Nazar
0b6268393c rtspclientsink: Don't leak previous server_ip
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5497>
2023-10-17 11:53:55 +00:00
Seungha Yang
65aa1b8faa d3d11converter: Create ID3D11Buffer with initial data
... and remove unnecessary device lock

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5492>
2023-10-17 10:48:49 +00:00
Seungha Yang
4e3d87edf5 d3d11converter: Don't set unnecessary constant buffer
Skip PSSetConstantBuffers() if it's not used by pixel shader

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5492>
2023-10-17 10:48:49 +00:00
Diego Nieto
e290555367 mpegtsdemux: Fix comment about the jitter description
According to the information provided below, the Jitter (J) is
defined by a network delay (D) + a noise(i)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5494>
2023-10-17 08:22:41 +00:00
Tim-Philipp Müller
07cea96579 subprojects: update glib wrap to 2.78.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5315>
2023-10-16 18:16:40 +00:00
Nicolas Dufresne
516073f9d0 glupload: egl: Use n_plane values from the GstVideoInfo
The number of planes is a meta we carry around in the GstVideoMeta with
DMA_DRM format. In cannot be decuded correctly from knowledge of the
base format. Notably, some compression modifier may introduce an extra
plane to store the compression parameters.

So use n_planes from GstVideoMeta and pass this explicitly when
importing to EGLImage.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5461>
2023-10-16 17:30:32 +00:00
Nicolas Dufresne
0e5f5b413c glupload: Plane size is not known for DMA_DRM
For these format, the plane size is not known, simply use 1 when
searching for the memory object in the GstBuffer array.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5461>
2023-10-16 17:30:32 +00:00
Nicolas Dufresne
e00682a4c0 egl: Fix direct dmabuf upload without DMABuf caps feature
The DMAbuf accept function was ensuring the in_dma_info values was valid if
the in_caps have change. But the check was bogus since the in_caps was being
modified without a pointer change. As a side effect, on the second accept
call, the drm_fourcc was reset to 0, which cause the uploader to fallback.

Fix this by ensuring we always have a valid dma_frm info directly in the
set_caps() function. Also remove the bogus caps changed check and remove any
modification to the info structure and always do that inner checks.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5461>
2023-10-16 17:30:32 +00:00
Nicolas Dufresne
a869760199 egl: Fix indirect dmabuf importation of none DRM formats
DRM Modifiers are not generically transferrable from a format like NV12 to
their indirect shading format (R8 / RG88). So the helper to this do needs
to be removed from our API.

To make things worse, we support indirect formats that aren't DRM format in
the first place. Notably NV12_16L32 (aka MM21) is not (yet) a DRM format. Yet,
each plane can be indirectly imported using R8/RG88 and a detiling shader.
This patch also removes this constraint restoring zero-copy playback on
Mediatek SoC.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5461>
2023-10-16 17:30:32 +00:00
Jan Alexander Steffens (heftig)
8a7d0efd96 tsmux: Fix error handling in pad_stream
Don't leak the map or the buffer if we encounter an error.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5490>
2023-10-16 15:46:00 +02:00
Jan Alexander Steffens (heftig)
b1810d83bc tsmux: Fill padding packets with stuffing bytes
Instead of leaving it uncleared, emitting probably old packet data but
potentially also random or sensitive application data.

Also fix the mapping mode.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5490>
2023-10-16 15:46:00 +02:00
Seungha Yang
e2790d635c d3d11screencapturesrc: Fix HWND capture mode
Use per-monitor-aware context to cover different DPI settings per
monitor

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2425
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5485>
2023-10-16 01:02:36 +09:00
Seungha Yang
66bb9ee866 d3d11converter: Update shader code to make 4_0_level_9_1 compatible
4_0_level_9_1 target requires float4 SV_TARGET

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5483>
2023-10-15 19:02:24 +09:00
Seungha Yang
a35c4fd5c5 d3d11converter: Fix 10/12bits planar output
Simple division can result in 10/12bits overflow.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5483>
2023-10-15 01:47:29 +09:00
Seungha Yang
5ea1f8a548 d3d11converter: Print calculated matrix for debugging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5483>
2023-10-15 00:27:27 +09:00
Seungha Yang
ba02e94dde d3d11converter: Calculate gamma LUT only once
Reuse calculated gamma lookup table and use immutable 1D texture

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5482>
2023-10-14 13:37:08 +00:00
Seungha Yang
6f8c474293 d3d11converter: Remove unused variable
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5482>
2023-10-14 13:37:08 +00:00
Seungha Yang
26e8bd1cc2 docs: Update Windows plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5481>
2023-10-14 12:32:46 +00:00
Seungha Yang
347dd37225 dxva: Build gir and remove SDK header dependency
Build gir for documentation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5481>
2023-10-14 12:32:46 +00:00
Seungha Yang
c5d60cee01 d3d12decoder: Hide non-default device from docs
... and add since marker

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5481>
2023-10-14 12:32:46 +00:00
Seungha Yang
8a35c8a2a5 d3d11compositor: Fix typo in property description
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5481>
2023-10-14 12:32:46 +00:00
Seungha Yang
0a05ba3f62 nvencoder: Add support for new preset/tune/multi-pass options
Adding new P1 ~ P7 presets and deprecate old preset values.
Also adding tune and multi-pass properties.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5428>
2023-10-14 11:03:40 +00:00
Robert Ayrapetyan
3d807d4f6d ximagesrc: add navigation support
Add a basic navigation support:
- mouse events (buttons/move)
- keyboard events (keys)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5273>
2023-10-13 23:34:54 +00:00
Tim-Philipp Müller
32f98dc855 gst-editing-services: update COPYING to LGPL v2.1
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4268>
2023-10-13 12:55:46 +00:00
Olivier Crête
892925aaf3 LICENSE: Upgrade to LGPL v2.1
Almost all of the subprojects declare the LGPL v2.1 as their license,
except for GES which has 2.0. So it makes sense to put v2.1 at the base to
avoid confusion.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4268>
2023-10-13 12:55:46 +00:00
Mart Raudsepp
bcc0885239 bs2b: Add missing space in plugin description
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5477>
2023-10-13 09:04:14 +00:00
Mart Raudsepp
6c0e5ca689 colormanagement: Fix typo in pipeline example
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5478>
2023-10-13 10:04:39 +03:00
Jordan Petridis
5f7a37f21e qt6: if def newer symbosl in QRhiTexture
version 6.4 added QRhiTexture::RGB10A2 but we depend on an older
version of qt in meson, and we can keep compiling with older Qt6
versions still.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5475>
2023-10-12 22:57:35 +00:00
Stéphane Cerveau
7c7a90b99d imagesequencesrc: fix regular image deadlock
With one regular image file path provided (without %05d),
the element was stuck in a dead loop counting the frames:

gst_image_sequence_src_count_frames

This allows to display any image file out of the element
for a given number of buffers.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5471>
2023-10-12 22:06:02 +00:00
Rahul T R
6fbe4d55c4 kmssink: Add TIDSS auto-detection
Add Texas Instruments TIDSS display controller into list of
auto-detected modules.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5469>
2023-10-12 18:25:50 +00:00
Haihua Hu
4e381b8901 playback: Support runtime change connection-speed of adaptivedemux(2)
Update connection-speed at runtime in playbin, uridecodebin and decodebin
also do the same thing in urisourcebin.

With contributions from Philippe Normand <philn@igalia.com> (build fixes and
rebase on mono-repo).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4713>
2023-10-12 16:06:42 +00:00
Matthew Waters
7b491f382c build/qt6: properly error/skip build if the qsb tool is not found
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3032

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5459>
2023-10-12 12:58:26 +00:00
Seungha Yang
ed29c23e86 d3d12, dwrite, va: Fix various msys2 build error/warning
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5454>
2023-10-12 10:53:58 +00:00
Sebastian Dröge
79ffe4f464 ci: Update image tags
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5454>
2023-10-12 10:53:58 +00:00
Sebastian Dröge
793b980740 ci: Update to cargo-c 0.9.27
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5454>
2023-10-12 10:53:58 +00:00
Sebastian Dröge
9bc9757d13 ci: Update to Rust 1.73
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5454>
2023-10-12 10:53:58 +00:00
Mengkejiergeli Ba
c14f4cda0c msdkvpp: Use filter flag to handle passthrough for tone mapping
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5449>
2023-10-12 05:02:37 +00:00
Seungha Yang
c2ed8759c8 d3d11videosink: Don't use DXGI_ALPHA_MODE_PREMULTIPLIED for HWND swapchain
It's allowed only for a swapchain type which does composition

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5464>
2023-10-11 22:22:56 +00:00
Seungha Yang
7b564619cf d3d11videosink: Fix rendering with initial fullscreen state
Change fullscreen mode once the swapchain is fully configured

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5462>
2023-10-11 21:39:11 +00:00
Seungha Yang
15248d8b84 d3d11videosink: Fix toggling between fullscreen and maximized
Use GetWindowPlacement() and SetWindowPlacement() APIs
to remember and restore window status, such as maximized, position,
restore position, etc.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3016
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5462>
2023-10-11 21:39:11 +00:00
Michael Tretter
0563a25494 v4l2videoenc: unconditionally activate the OUTPUT pool
If the v4l2videoenc receives an QUERY_ALLOCATION, it must not propose a
currently used pool, because it cannot be sure that the allocation query came
from exactly the same upstream element. The QUERY_ALLOCATION will not contain
the internal OUTPUT pool.

The upstream element (the basesrc) detects that the newly proposed pool differs
from the old pool. It deactivates the old pool and switches to the new pool.

If there was a format change, a new OUTPUT buffer pool will be allocated in
gst_v4l2_object_set_format_full() and the CAPTURE task will be stopped to switch
the format. If there hasn't been a format change,
gst_v4l2_object_set_format_full() will not be called. The old pool will be kept
and reused.

Without a format change, the processing task continues running.

This leads to the situation that the processing task is running, but the OUTPUT
buffer pool (the old pool) is deactivated. Therefore, the encoder is not able to
get buffers from the OUTPUT pool and encoding cannot continue.

This situation can be triggered by sending a RECONFIGURE event without a format
change.

Resolve this situation by ensuring that the OUTPUT buffer pool is always
activated when frames arrive at the encoder.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4235>
2023-10-11 19:35:54 +00:00
Michael Tretter
41ce99ebab v4l2videoenc: fix activation of internal pool
Fix the buffer pool activation if the driver does not support VIDIOC_CREATE_BUFS
the same way as it was fixed for the v4l2videodec.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4235>
2023-10-11 19:35:54 +00:00
Michael Tretter
5e72e1985a v4l2videoenc: rename OUTPUT pool to opool
There is a CAPTURE pool in the same function. While the CAPTURE pool is called
cpool, using pool for the OUTPUT pool is confusing.

Using opool for the OUTPUT pool makes it more obvious, which pool is used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4235>
2023-10-11 19:35:54 +00:00
Seungha Yang
f52ecb9607 d3d11converter: Add support for HLSL precompile and bytecode caching
Precompile pixel shaders for simple conversion path
(without gamma/primaries conversion) in case of MSVC build.
Even if runtime compile is required (cross-compiled or complex conversion
path), do it only once and reuse the compiled bytecode.

This precompile/caching can save about 95% of time taken by
gst_d3d11_converter_new() call.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3004
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5457>
2023-10-11 18:40:46 +00:00
Seungha Yang
83a576e854 d3d11: Reuse sampler object
The linear sampler object can be reused

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5457>
2023-10-11 18:40:46 +00:00
Seungha Yang
92cc5722c8 d3d11: Pass HLSL source size to compile function
The string size is known at build time

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5457>
2023-10-11 18:40:46 +00:00