Sebastian Dröge
90728a1166
avviddec: Unlock video decoder stream lock temporarily while finishing frames
...
Temporarily release the video decoder stream lock so that other
threads can continue decoding (e.g. call get_frame()) while data
is being pushed downstream.
At this point it is locked twice, we release one, and then the base class
releases the last one just before pushing the data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7576 >
2024-09-29 12:55:10 +00:00
Sebastian Dröge
bbd3d6f4f6
qtdemux: Check fourcc of a second CEA608 atom instead of assuming it's cdt2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7575 >
2024-09-29 06:18:56 +00:00
Mengkejiergeli Ba
5bf85229e5
msdkenc: Guard the read of thiz->initialized with the modification of this value
...
This is to avoid wrongly read/write thiz->initialized when multi-thread
invoking encoder init function, it is possible when user apps deploy
multi-thread to dynamically change encoder's settings.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7578 >
2024-09-29 01:07:39 +00:00
Sebastian Dröge
be6eba3e9e
ntv2: Update to AJA NTV2 SDK 17.1.0
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7568 >
2024-09-27 16:43:37 +00:00
Sebastian Dröge
e758ffa2cf
girs: Update Gst-1.0.gir with new API and deprecations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:26:18 +03:00
Sebastian Dröge
275134c883
base: audio: video: Use more efficient caps/structure API in various places
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:26:18 +03:00
Sebastian Dröge
21af7061eb
gst: caps: Add API for creating caps / setting caps fields from static strings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:26:18 +03:00
Sebastian Dröge
ba552fb76f
gst: Remove gstquark.c / gstquark.h
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:26:18 +03:00
Sebastian Dröge
b7b24573ce
common: Use more efficient versions of GstCapsFeatures API where possible
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:26:18 +03:00
Sebastian Dröge
3b9f050600
common: Stop using GQuark-based GstCapsFeatures API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:21:29 +03:00
Sebastian Dröge
eed7c9c66a
gst: capsfeatures: Use GstIdStr for caps features
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:21:29 +03:00
Sebastian Dröge
6233eb0ff3
common: Stop using GQuark-based GstStructure field name API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:21:29 +03:00
Sebastian Dröge
2df9c4739e
gst: structure: Use GstIdStr for structure field names
...
And add corresponding API with GstIdStr parameters, static string parameters and
deprecate the old GQuark based API.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3567
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:21:29 +03:00
Sebastian Dröge
0c1611d31d
common: Stop using GQuark-based GstStructure name API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:21:29 +03:00
Sebastian Dröge
8cbc76b180
gst: structure: Use GstIdStr for structure names
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:21:29 +03:00
Sebastian Dröge
0ee18781f9
gst: Add GstIdStr for holding structure names and field names
...
This is an efficient string storage for short strings without heap allocations,
and falling back to the heap for bigger allocations. Almost all structure fields
and structure names in use nowadays are short enough to not require a heap
allocation.
As structure names and fields are sometimes dynamically created, storing them in
a GQuark can create a memory leak and potentially a DoS attack by continously
triggering creating of new quarks.
Thanks to Tim for coming up with the name!
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:21:29 +03:00
Sebastian Dröge
0823c639cc
gst: structure: Stop using private structure name quark field
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:21:29 +03:00
Seungha Yang
2d91521dfc
d3d12: Fix resource allocation on old Windows version
...
D3D12_HEAP_FLAG_CREATE_NOT_ZEROED flag was introduced as of
Windows 10 May 2020 Update, and older versions don't understand
the heap flag. Checks the feature support and enables the
D3D12_HEAP_FLAG_CREATE_NOT_ZEROED only if it's supported by OS
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7573 >
2024-09-26 12:48:55 +00:00
Weijian Pan
df23724b96
avfdeviceprovider: Fix caps leak
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6966 >
2024-09-26 11:48:19 +00:00
Guillaume Desmottes
7e3f9df9a5
wpe: initialize threading.ready before reading it
...
Fix Valgrind warning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7377 >
2024-09-25 11:12:28 +02:00
Michael Grzeschik
4670e1c809
uvcsink: make gst_v4l2uvc_fourcc_to_bare_struct work with more raw formats
...
The uvcsink was limited to only transfer YUY2 and MJPEG. For the
uncompressed formats there is no technical reason not to support them.
Since gst_video_format_to_string is already supporting more fourcc than
only YUY2 we use the default path in gst_v4l2uvc_fourcc_to_bare_struct
to create structures for more formats and bail out if the returned
format is not from the uncompressed type.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6037 >
2024-09-24 20:07:40 +00:00
Hugues Fruchet
5801e17160
kmsallocator: fix stride with planar formats
...
This fixes a regression introduced by the merge request
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3801
The extrapolated stride was computed but not used, resulting in the same
stride being applied to all planes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7566 >
2024-09-24 12:57:16 -04:00
Seungha Yang
86af5a5f20
d3d12: Add colorconvert and scale elements
...
In addition to existing d3d12convert element which supports
color conversion and rescale at once, adding
separate color-conversion-only and scale-only elements
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7560 >
2024-09-24 20:58:47 +09:00
Sebastian Dröge
d4bab55077
qtdemux: Skip zero-sized boxes instead of stopping to look at further boxes
...
A zero-sized box is not really a problem and can be skipped to look at any
possibly following ones.
BMD ATEM devices specifically write a zero-sized bmdc box in the sample
description, followed by the avcC box in case of h264. Previously the avcC box
would simply not be read at all and the file would be unplayable.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7564 >
2024-09-24 11:21:19 +03:00
Nicolas Dufresne
66f1c9fd13
doc: good: Update documentation cache
...
video4linux2 plugin now maps RGB15 which his didn't before.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540 >
2024-09-23 16:50:43 -04:00
Nicolas Dufresne
09e23e325c
v4l2object: Fix a gvalue leak on error
...
In case we failed enumerating the supported interlacing mode, we leaked the
gvalue.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540 >
2024-09-23 19:58:52 +00:00
Nicolas Dufresne
a6959f3738
v4l2: dec/enc: Flag leaked caps
...
We never free class held template caps, so flag the one that wasn't already
flagged.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540 >
2024-09-23 19:58:52 +00:00
Nicolas Dufresne
d35f348af3
v4l2: object: Fix condition check to emit error
...
The check was reversed, so we could only emit a pipeline error
if there was no element associated with the object.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540 >
2024-09-23 19:58:52 +00:00
Nicolas Dufresne
86dddfa61c
v4l2object: Always tell capture queue that we want to set the CSC
...
Not all drivers supports it, but in general we want to try and match the
negotiated caps, so lets always try to set the CSC.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540 >
2024-09-23 19:58:52 +00:00
Nicolas Dufresne
2fe83fa2de
v4l2: object: Fix support for format:Interlaced in caps probe
...
This notably follow the way we order the template and keeps the
format:Interlaced caps at the end. This change also fixes
an early skip check, that would skip if a driver only supports
alternate interlacing for a specific format. It also fixes
a bug where only the last resolution of a discrete frame size
was allowed to use format:Interlaced. Finally, similar to template
caps code, simplify the caps for earch featurs, making the debug output
manageable and (marginally) improve negotiation speed.
This change will make it easier to introduce memory:DMABuf.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540 >
2024-09-23 19:58:52 +00:00
Nicolas Dufresne
e97a954008
v4l2: Move M2M template caps probe into v4l2object
...
This allow reusing the code that produces output and capture devices
templates. This fixes the lack of Interlaced caps feature for M2M
devices such as decoder, encoder or converters.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540 >
2024-09-23 19:58:52 +00:00
Nicolas Dufresne
7fb16f0b11
v4l2: object: Remove over indentation
...
This is a style fix, no functional changes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540 >
2024-09-23 19:58:52 +00:00
Nicolas Dufresne
746977b6d3
v4l2: object: Map GST/V4L2 formats in a C array
...
This makes it easier to add new format in the future without
forgetting to update one of the numerous switch case. This
will also help mapping DRM formats.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540 >
2024-09-23 19:58:51 +00:00
Nicolas Dufresne
b7d4e576ea
v4l2object: Expose convertion from v4l2 fourcc to GstVideoFormat
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540 >
2024-09-23 19:58:51 +00:00
Nicolas Dufresne
87398e1f8b
v4l2object: Change dimensions format desc field to flag
...
The boolean naming wasn't obvious, and having this as a flag makes
the structure a little more compact.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540 >
2024-09-23 19:58:51 +00:00
Nicolas Dufresne
03cf7f6445
qml6glsrc: Reduce capture delay
...
In qml6glsrc, we capture the application by copying the back buffer into
our own FBO. The afterRendering() signal is too soon as from the apitrace, the
application has been rendered into a QT internal buffer, to be used as a cache
for refresh.
Use afterFrameEnd() signal instead. This works with no delay on GLES. With GL
it seems to reduce from 2 to 1 frame delay (this may be platform specific). A
different recording technique would need to be used to completely remove this
delay.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7351 >
2024-09-23 18:53:33 +00:00
Arun Raghavan
90e58aec3c
gstreamer: parse: Use child proxy for deferred property setting
...
We use that mechanism for the non-deferred path, and this makes sure we are
consistent for deferred set too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7519 >
2024-09-23 17:47:20 +00:00
Arun Raghavan
92d8da92dc
gstreamer: parse: Minor whitespace fixups
...
Mostly replacing some tabs with spaces.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7519 >
2024-09-23 17:47:20 +00:00
Arun Raghavan
ba69987114
gstreamer: parse: Make sure children are bins before recursing in
...
A deferred set of the form parentbin::childelement::pad works in the
non-deferred property setting path, but the deferred path assumes that all
non-root non-leaf children specify bins. We already have a bin check on the
root, so let's add one for other non-leaves to avoid a critical.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3806
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7519 >
2024-09-23 17:47:19 +00:00
Sebastian Dröge
389302eb96
dynamictypefactory: Fix name of the class cast macro
...
And deprecate the old name.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3814
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7541 >
2024-09-23 15:04:31 +00:00
Seungha Yang
cef201734c
d3d12: Add d3d12mipmapping element
...
Adding a new element for texture conversion from single mip level
texture to mipmapping enabled RGBA texture
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7555 >
2024-09-23 13:52:37 +00:00
Seungha Yang
51e1834e81
d3d12: Use D3D12_FILTER_MIN_MAG_MIP_LINEAR filter by default
...
... instead of D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT, since we supports
mipmap texture now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7555 >
2024-09-23 13:52:37 +00:00
Seungha Yang
8550ed5888
d3d12: Add support for mipmap texture
...
Consider D3D12_RESOURCE_DESC.MipLevels > 1 or zero case
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7555 >
2024-09-23 13:52:37 +00:00
Jan Alexander Steffens (heftig)
f1aedd65f4
ges: Fix name of GESFrameCompositionMeta API type
...
g-ir-scanner 1.82.0 failed with a fatal error due to the wrong
namespace.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3800
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7554 >
2024-09-21 00:42:36 +02:00
Seungha Yang
eb6d083ebe
d3d12converter: Fix crash on pso update
...
Allocates D3D12_INPUT_ELEMENT_DESC memory on heap instead of using
stack memory for later reuse
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7550 >
2024-09-20 19:19:15 +00:00
Seungha Yang
71d26ee4f8
d3d12swapchainsink: Add auto-resize mode
...
Automatically resize swapchain backbuffer to be identical to
stream resolution if user calls resize() signal with zero resolution
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7550 >
2024-09-20 19:19:15 +00:00
Seungha Yang
9dee102867
d3d12swapchainsink: Add support for MSAA
...
Adding "msaa" property and enable MSAA if supported by device
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7550 >
2024-09-20 19:19:15 +00:00
Seungha Yang
ce5321be68
d3d12videosink: Use converter config for initial MSAA setup
...
Avoid redundant pso creation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7550 >
2024-09-20 19:19:15 +00:00
Seungha Yang
7cf27c456b
d3d12converter: Add support initial pso DXGI_SAMPLE_DESC setting
...
Add more options for pso, in order to avoid redundant pso
creation when MSAA is used
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7550 >
2024-09-20 19:19:15 +00:00
Seungha Yang
965d898deb
d3d12swapchainsink: Add sampling-method property
...
Allow setting sampler filter method to use
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7550 >
2024-09-20 19:19:15 +00:00