Philipp Zabel
f18d6fcb40
glupload/egl: Extract EGL image cache and make it public
...
Extract the EGLImage cache from gstglupload.c, place it in a separate
source file gsteglimagecache.c, and make the API public, so it can be
reused by the gldownload element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 15:25:28 -05:00
Jakub Adam
b7970a4d95
gldownload: enumerate emulated video formats
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 15:25:28 -05:00
Jakub Adam
1ef9f6ab26
glcontext/egl: Fix use of uninitialized memory
...
At least some Mesa drivers (see llvmpipe_query_dmabuf_modifiers()) don't
initialize the provided external_only array, so some format/modifier
combinations could get incorrectly marked as only external.
Make sure we zerofill the array before passing it to
eglQueryDmaBufModifiersEXT().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 15:25:28 -05:00
Jakub Adam
270e186311
glcontext_egl: add method to check if format supports a modifier
...
Makes _check_modifier from glupload reusable.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 15:25:27 -05:00
Jakub Adam
d80477d769
glupload: make _dma_buf_transform_* functions public API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 15:25:27 -05:00
Jakub Adam
57f36ed9d9
glupload: rename GstGLUploadDrmFormatFlags -> GstGLDrmFormatFlags
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6792 >
2024-11-28 13:46:08 -05:00
Tim-Philipp Müller
13f2b7dd74
discoverer: fix build with older glib versions
...
Follow-up to !7969
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7988 >
2024-11-28 11:40:38 +00:00
Sebastian Dröge
ccb40ca7d0
discoverer: Fix formatting of a debug log string
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7969 >
2024-11-27 16:48:55 +00:00
Sebastian Dröge
27a2fa73bc
discoverer: Move cache file tracking from GstDiscovererInfo into GstDiscoverer
...
It's only used temporarily during discovery and makes no sense as part of the
resulting info.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7969 >
2024-11-27 16:48:55 +00:00
Sebastian Dröge
9e4c173c3c
discoverer: Move stream counter from GstDiscovererInfo into GstDiscoverer
...
It's only used temporarily during discovery and makes no sense as part of the
resulting info.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7969 >
2024-11-27 16:48:55 +00:00
Sebastian Dröge
dc3f2c6721
discoverer: Also copy missing element details when copying a GstDiscovererInfo
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7969 >
2024-11-27 16:48:55 +00:00
Sebastian Dröge
d553448b95
discoverer: Make sure the missing elements details array is NULL-terminated in a thread-safe way
...
And also avoid a possible out-of-bounds read if the array contains no elements.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7969 >
2024-11-27 16:48:55 +00:00
Tomáš Polomský
fa1ed5d210
appsink: fix timeout logic for gst_app_sink_try_pull_sample
...
In case of gst_app_sink_try_pull_object returns an object instead of a sample,
the whole process must be restarted with the reduced timeout, otherwise requested
timeout could be easily exceeded.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7962 >
2024-11-27 11:09:47 +00:00
Andoni Morales Alastruey
7b408bae69
discoverer: fix segfault in race condition adding a new uri's
...
There is a race condition adding new uri's right after receiving
the `discovered` event. We must wait until we have cleaned-up
the last discovery to start processing the new one
Fix #3758
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7930 >
2024-11-20 21:36:30 +00:00
Nicolas Dufresne
9f707f6c64
glupload: dmabuf: Only pass padded size for indirect tiled handling
...
We only require out_info to hold on padded width/height when
using our internal detiling shaders. Doing so for direct upload
leads to the image being scaled down in a way that the padding
is displayed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7849 >
2024-11-19 21:22:38 +00:00
Benjamin Gaignard
0847f7fbe1
video: dma-drm: Add DRM vendor modifiers list
...
Copy DRM vendor modifier IDs from drm_fourcc.h
Add Vivante modifier definition and map GST_VIDEO_FORMAT_NV12_4L4 and
GST_VIDEO_FORMAT_NV12_10LE40_4L4 accordingly. Also add Samsung 64Z32 tiled
format mapping.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7849 >
2024-11-19 21:22:38 +00:00
Benjamin Gaignard
18a90f9180
video: dma-drm: Add NV15, NV20 and NV30 DRM formats definitions
...
Cherry pick DRM NV15, NV20 and NV30 formats definitions from drm_fourcc.h
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7849 >
2024-11-19 21:22:38 +00:00
Nicolas Dufresne
80a4d36522
video: dma drm: Fix modifier definition on 32bit
...
The modifiers are 64bit, add missing ULL suffix so that the compiler does
not complain on 32bit platforms.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7849 >
2024-11-19 21:22:38 +00:00
Benjamin Gaignard
afd8bf807d
video: dma-drm: Add modifier field to FormatMap
...
A GST_VIDEO_FORMAT_* could be mapped to only one pair of DRM_FORMAT_*
and DRM_FORMAT_MOD_*. Until now only DRM_FORMAT_MOD_LINEAR was used.
To be able to add other modifiers add a modidier field in struct FormatMap.
Create a helper functions the allow turning a GstVideoFormat into a pair
of DRM fourcc and modifier and vis-versa.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7849 >
2024-11-19 21:22:38 +00:00
Philippe Normand
b6c7280868
sdp: Add debug categories for message and mikey modules
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7924 >
2024-11-19 18:54:32 +00:00
Qian Hu (胡骞)
53007b5d83
docs: update fields about gst video aligment
...
1) add stride align fields in allocation.md
2) add stride align fields in gstvideometa.h
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7201 >
2024-11-19 15:27:38 +00:00
Qian Hu (胡骞)
6335c5d005
meta: add aggregation function for allocation meta api params
...
since tee do allocation query for each downstream element, and
get allocation query params from them. this function will aggregate
all params, and propose it for upstream element of tee
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7201 >
2024-11-19 15:27:38 +00:00
Nicolas Dufresne
be95be4b31
video: pool: Make structure const when getting video alignment
...
Downgrade to const, this is backward compatible make makes the API compatible
wit more usages.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7201 >
2024-11-19 15:27:38 +00:00
Thibault Saunier
45806c4d66
gl: colorconvert: Add support for I422_10XX and I422_12XX
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7919 >
2024-11-19 12:39:01 +00:00
Nicolas Dufresne
000a7650fc
glupload: Upgrade uploader selection message to INFO
...
This allow using INFO log to quickly see what uploader we
picked. This is very useful as the DEBUG category has became
very noisy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7891 >
2024-11-16 12:30:34 +00:00
Nicolas Dufresne
3c8b1427ca
glupload: dmabuf: Fix emulated tiled import
...
The added check for LINEAR modifier broke dmabuf import for
NV12 emulation (R8/RG88) of all sort (linear and tiled).
Fixes !5461
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7891 >
2024-11-16 12:30:34 +00:00
Sebastian Dröge
dce0cdf548
audiostreamalign: Don't report disconts for every buffer if alignment-threshold is too small
...
If it is too small, the maximum allowed diff becomes 0 samples which would then
trigger if there is no discontinuity at all.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7888 >
2024-11-16 00:10:51 +00:00
Thibault Saunier
6ed0d547a7
gl: colorconvert: Add support for Y444_10XX and Y444_16XX
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7858 >
2024-11-12 11:31:37 -03:00
Sebastian Dröge
e57bd3b0dc
riff: Add support for M101 Matrox uncompressed SD video codec
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7823 >
2024-11-11 08:47:41 +00:00
Diego Nieto
0d85cdafd5
exiftag: handle GST_TAG_CAPTURING_LIGHT_SOURCE tag
...
This exif tag allows to specify the different light conditions
when taking a picture. This tag is defined in:
https://exiftool.org/TagNames/EXIF.html#LightSource
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5571 >
2024-11-10 12:57:36 +00:00
Jan Schmidt
75fcfdb12d
video-converter: Set TIME segment format on appsrc
...
Combine the appsrc and appsink settings into one place and ensure that
the appsrc will output a TIME segment, to avoid incorrect segment format
criticals in some situations.
The D3D11 path was already setting the segment format correctly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7839 >
2024-11-06 19:30:11 +11:00
Andoni Morales Alastruey
5a3dd943fe
cocoa: fix rendering artefacts in retina displays
...
Set the correct contentsScale in the CALayer instead of using
the default (1.0) which causes rendering artefacts in retina
displays due to using a smaller bitamp than the display size.
See: https://developer.apple.com/documentation/quartzcore/calayer/1410746-contentsscale?language=objc
Fix : #3942
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7828 >
2024-11-05 13:40:23 +00:00
Andreas Wittmann
41ad50fb48
qmlgloverlay: make depth buffer optional
...
allow dropping depth/stencil buffer for
qmlgloverlay element. Shows considerable
drop in memory bandwidth consumption of
the element on windows platforms.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7677 >
2024-11-01 02:37:57 +00:00
Albert Sjolund
ae6ac2a659
appsrc: Fix use-after-free when making buffer / buffer-lists writable
...
make_writable can cause a reallocation of the buffer, meaning that obj
would point to an invalid object, both for buffer and for bufferlist.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7803 >
2024-11-01 00:03:48 +00:00
Thibault Saunier
ec2b3cb200
discoverer: Fix typos
...
discovererd / discoverered -> discovered
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7733 >
2024-10-29 00:17:58 +00:00
Thibault Saunier
5ed2af5083
discoverer: Fix serializing tags StreamInfo on disc
...
When `use-cache` is used, we were serializing the StreamInfo **before**
_ensure_info_tags was called, meaning we were always missing that information.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7733 >
2024-10-29 00:17:58 +00:00
Diego Nieto
fe61bc3cee
video-format: reduce the number of memcpy if possible
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7694 >
2024-10-26 07:02:50 +00:00
Edward Hervey
38c07a2d01
all: Fix closure annotations
...
This was misused almost everywhere.
See
https://gi.readthedocs.io/en/latest/annotations/giannotations.html#support-for-gobject-closures
and: https://www.bassi.io/articles/2023/02/20/bindable-api-2023/
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7725 >
2024-10-25 08:58:29 +00:00
Carlos Falgueras García
561ca94916
video: Add GRAY10_LE16 support
...
This adds a 10-bit variant of grayscale packed into 16 bits little-endian
words. The MSB 6 bits are padding and should be ignored. This format is
used by Fraunhofer VVC encoder and decoder libraries.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7706 >
2024-10-25 05:53:22 +00:00
François Laignel
0f7be28eb1
rtspsrc: client-managed MIKEY KeyMgmt
...
Some servers (e.g. Axis cameras) expect the client to propose the encryption
key(s) to be used for SRTP / SRTCP. This is required to allow re-keying so
as to evade cryptanalysis. Note that the behaviour is not specified by the
RFCs. By setting the 'client-managed-mikey-mode' property to 'true', rtspsrc
acts as follows:
* For a secured profile (RTP/SAVP or RTP/SAVPF), any media in the SDP
returned by the server for which a MIKEY key management applies is
elligible for client managed mode. The MIKEY from the server is then
ignored.
* rtspsrc sends a SETUP with a MIKEY payload proposed by the user. The
payload is formed by calling the 'request-rtp-key' signal for each
elligible stream. During initialisation, 'request-rtcp-key' is also
called as usual. The keys returned by both signals should be the same
for a single stream, but the mechanism allows a different approach.
* The user can start re-keying of a stream by calling SET_PARAMETER.
The convenience signal 'set-mikey-parameter' can be used to build a
'KeyMgmt' parameter with a MIKEY payload.
* After the server accepts the new parameter, the user can call
'remove-key' and prepare for the new key(s) to be served by signals
'request-rtp-key' & 'request-rtcp-key'.
* The signals 'soft-limit' & 'hard-limit' are called when a key
reaches the limits of its utilisation.
This commit adds support for:
* client-managed MIKEY mode to srtpsrc.
* Master Key Index (MKI) parsing and encoding to GstMIKEYMessage.
* re-keying using the signals 'set-mikey-parameter' & 'remove-key' and
then by serving the new key via 'request-rtp-key' & 'request-rtcp-key'.
* 'soft-limit' & 'hard-limit' signals, similar to those provided by srtpdec.
See also:
* https://www.rfc-editor.org/rfc/rfc3830
* https://www.rfc-editor.org/rfc/rfc4567
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7587 >
2024-10-24 12:43:11 +00:00
James Cowgill
8cf0d5a65c
exiftag: Check the result of gst_date_time_new_local_time
...
Fixes a critical warning when parsing a JPEG containing a malformed
`DateTime` tag (like `0000:00:00 00:00:00`).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7709 >
2024-10-23 05:34:30 +00:00
Scott Moreau
6846746a0e
gst-plugins-base: Set swap interval to 0 for wayland EGL windows
...
This allows the stream to drive the buffers submitted to the display server.
If the application does not receive frame events for a period of time due to
minimization or tty switch for example, instead of waiting to process and
then catching up when frame events resume, the stream will resume instantly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7691 >
2024-10-20 14:03:11 +00:00
Nicolas Dufresne
64c6ff97c4
glcontext: egl: Unrestrict the support base DRM formats
...
There is no requirement for a base DRM format to be supported by libgstvideo
in order to be uploaded to. Don't limite to DRM fourcc that have a libgstvideo
format mapping. This notably enabled AFBC support, which uses an opaque based
format that does not have a linear definition. This also adds R8/RG88 and
simimlar other formats that are not yet mapped in libgstvideo.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7689 >
2024-10-19 23:59:58 +00:00
François Laignel
375acaed51
gst: hamonise recent Caps function names with Structure counterparts
...
These functions were introduced as part of the GstIdStr MR:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7644 >
2024-10-16 23:14:50 +00:00
Diego Nieto
1032450a0e
pbutils: descriptions: add H.266/VVC descriptions
...
Add H.266 descriptions supporting different codec profiles as well
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7652 >
2024-10-15 08:19:27 +00:00
Diego Nieto
6b4caacd19
codec-utils: add H.266/vvc mime type
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7652 >
2024-10-15 08:19:27 +00:00
valadaptive
6198c7fba2
riff: Add support for Lagarith fourcc tag
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6831 >
2024-10-10 03:55:04 +00:00
Olivier Crête
78775079c6
pbutils: Add LCEVC information to H.264 description
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7330 >
2024-10-02 20:33:13 +00:00
Nicolas Dufresne
fd5e62a317
allocators: drmdump: Add NV15 supports
...
This is a packed version of P010, names NV14_10LE40 in GStreamer. This
format is used on all Rockchip SoC variants.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7580 >
2024-09-30 16:11:09 +00:00
Nicolas Dufresne
f42ce6ef35
allocators: drmdumb: Fix bpp value for P010
...
P010 uses 16 bits per pixel, with least significant being padding. This
code worked with Intel display driver since they roundup that value, but
does not work with the generic DRM helpers which also support NV15,
which does not have any padding.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7580 >
2024-09-30 16:11:09 +00:00