Sebastian Dröge
0ef396359c
gst: Move GstQueueArray as GstVecDeque to core
...
And change lengths and indices from guint to gsize for a more correct type.
Also deprecate GstQueueArray and implement it in terms of GstVecDeque.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6779 >
2024-05-06 18:25:42 +00:00
6fd1900d54
pbutils: AV1 mime codec
...
Add basic AV1 mime codec param generation based on the spec at https://aomediacodec.github.io/av1-isobmff/#codecsparam
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6696 >
2024-05-06 12:43:27 +00:00
Philippe Normand
1c87cda56d
glcolorconvert: Fix caps negotiation with upstream DMABuf
...
The uninitialized texture target was leading to a NULL texture-target string
added to the output caps.
Fixes #3519
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6805 >
2024-05-05 17:48:32 +01:00
Thibault Saunier
41f8276c2b
glvideomixer: Handle pads which have no caps set on mouse events
...
And directly use the pad vinfo instead of getting current caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6265 >
2024-05-05 12:37:05 +00:00
Seungha Yang
c8d01d7d1a
video: Add Y216 and Y416 formats
...
The same memory layout as Y212 and Y412 formats, respectively
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6745 >
2024-05-03 17:02:34 +00:00
Loïc Le Page
d5734159d1
videorate: add validate tests
...
Add tests with different reverse playback speeds.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6247 >
2024-05-01 20:12:01 +00:00
Sebastian Dröge
ec42cedf63
encoding-profile: Fix nullability of (de)serialization functions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6775 >
2024-05-01 09:51:35 +00:00
Matthew Waters
184d94305c
glcolorconvert: add support for planar yuv->planar yuv conversions
...
Currently only supported by keeping the same colorimetry and is only
a repacking operation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6596 >
2024-04-30 05:58:55 +00:00
Matthew Waters
674e643428
glcolorconvert: use color matrices
...
Allows programatically supporting whatever new formats are added to
libgstvideo.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6596 >
2024-04-30 05:58:55 +00:00
Sebastian Dröge
e68eccff10
exiftag: Prevent integer overflows and out of bounds reads when handling undefined tags
...
Fixes ZDI-CAN-23896
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3483
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6766 >
2024-04-29 20:06:22 +00:00
Shengqi Yu
a92167ea6e
glmixer: Add GL_SYNC_META option to bufferpool
...
when pipline is
glvideomixerelement->glcolorconvertelement->gldownloadelement and
glcolorconvertelement is not passthrough, the gl bufferpool between
glvideomixerelement and glcolorconvertelement will not add gl sync meta
during allocating buffer. This will cause that glcolorconvert's inbuf
has no sync meta to wait for.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6756 >
2024-04-29 19:15:39 +00:00
François Laignel
59e17fa931
rtp: add value annotation for GST_RTP_VALID_VALUE
...
... otherwise its value is not available to bindings.
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1425#note_2384464
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6762 >
2024-04-29 18:27:40 +00:00
Tim-Philipp Müller
7074849c5c
exif: add debug category
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6741 >
2024-04-27 00:19:30 +00:00
Edward Hervey
8737b9ca84
playbin3: Handle combiner update in case of errors
...
The assertion that was present before is a bit too harsh, since there is now
a (understandable) use-case where this could happen.
In gapless use-case, with two files containing the same type (ex:audio). The
first one *does* expose a collection with an audio stream, but decoding
fails (for whatever reason).
That would cause us to have configured a audio combiner, which was never
used (i.e. not active).
Then the second file plays and we (wrongly) assume it should be activated
... whereas the combiner was indeed present.
Demote the assertion to a warning and properly handle it
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3389
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6737 >
2024-04-26 11:31:32 +00:00
Edward Hervey
2aba1c86e9
videodecoder: Use a frame duration for QoS
...
We prefer to use the frame stop position for checking for QoS since we don't
want to drop a frame which is only partially late.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6689 >
2024-04-24 09:19:22 +00:00
Edward Hervey
ad8c42ba06
encoding-profile: Make (de)serialization functions public
...
This is more convenient and cheaper than going through the `g_value_convert()`
hoops
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6712 >
2024-04-23 14:27:00 +00:00
Edward Hervey
376aaa828d
decodebin3: Remove custom stream-start field if present
...
This field is added by urisourcebin so that we can avoid double-parsing. It's no
longer needed after.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6690 >
2024-04-23 07:09:21 +00:00
Edward Hervey
049665ccaa
urisourcebin2: Adaptive demuxers don't require another parsebin
...
By setting the same field on the GST_EVENT_STREAM_START decodebin3 will be able
to avoid plugging in an extra parsebin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6690 >
2024-04-23 07:09:21 +00:00
Loïc Le Page
8fb96253be
audioconvert: add possibility to reorder input channels
...
When audioconvert has unpositionned audio channels as input
it can now use reordering configurations to automatically
position those channels.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5923 >
2024-04-22 12:06:11 +02:00
Elliot Chen
824c70d35a
subparse: forward seek event first and return if succeeded
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4889 >
2024-04-19 15:24:36 +00:00
Seungha Yang
e1910d2be1
navigation: Define mouse double click event
...
Windows and UI toolkits define mouse double click events
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6491 >
2024-04-18 20:19:38 +00:00
Edward Hervey
f33ce4fe8b
encodebin: Fix pad removal for encodebin vs encodebin2
...
Clarify the fact that `encodebasebin->src_pad` is set when using a static source
pad (`encodebin`) and when not set it's dynamically added source
pads (`encodebin2`).
Fixes usage of encodebin2 when profiles are updated
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6667 >
2024-04-18 09:11:58 +00:00
Xavier Claessens
686f74e4a4
format: Allow GST_AUDIO/VIDEO_FORMAT_UNKNOWN in _to_string() function
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6630 >
2024-04-17 01:19:58 +00:00
F. Duncanh
ac40e6b592
ximagesink: initialize mask for XISelectEvents
...
Fixes #3470
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6631 >
2024-04-16 00:13:43 -04:00
Matthew Waters
7016a96bfe
glcolorconvert: don't overread the end of an array
...
Reverse index iteration needs a - 1 for the initial value.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6595 >
2024-04-10 13:32:57 +00:00
Matthew Waters
97b45246d1
glcolorconvert: remove unused swizzling using "rgba" chars
...
We use indices now instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6595 >
2024-04-10 13:32:57 +00:00
Sanchayan Maity
a9c4289da7
video-converter: Fix set config not having effect after start
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6594 >
2024-04-10 09:47:52 +00:00
Edward Hervey
24c0dc9602
parsebin: Ensure non-time subtitle streams get "parsed"
...
Since https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6153 ,
subtitle "decoders" (i.e. which decode to raw text) are no longer auto-plugged
by parsebin.
But if a given format does not have a parser at all, we would end up outputting
non-time/non-parsed outputs.
In order to mitigate the issue, until such parsers are available, we check if
the subtitle stream is in TIME format or not (i.e. whether it comes from a
parser or demuxer). If not, we attempt to plug in a subtitle "decoder".
Fixes #3463
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6592 >
2024-04-10 09:40:54 +02:00
Håvard Graff
b57944efda
examples/gl/cocoa: add an example of a failing scenario with glimagesink
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5708 >
2024-04-07 21:03:23 +00:00
Sebastian Dröge
2dde87710c
typefind: Handle WavPack block sizes > 131072
...
These are valid nowadays.
Also handle ID_ODD_SIZE and ID_WVX_NEW_BITSTREAM. The parser already
handles the former but not the latter.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3440
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6498 >
2024-04-04 15:10:02 +00:00
Sebastian Dröge
4b5a265571
pbutils: descriptions: Don't warn on MPEG-1 audio caps without layer field
...
While this is not ideal and won't give too accurate codec descriptions,
it is what tsdemux produces.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6511 >
2024-04-04 09:39:49 +00:00
Robert Rosengren
8c5203ba0e
audioringbuffer: set waiting to 0 when signaling
...
Reset the waiting thread counter in all places to be consistent
when sending signal for the audio ring buffer. This fix applies it to
pause, stop and release, which are states that will go into a callback
of the subclass. Having the waiting counter reset will avoid having
executing thread of the same subclass trying to take the mutex when
callong gst_audio_ring_buffer_advance.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6195 >
2024-04-03 15:09:00 +00:00
Matthew Waters
2a02107c8d
glcaopengllayer: NULL some fields when freed
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6504 >
2024-04-02 23:50:41 +00:00
Matthew Waters
b080d01b68
glwindow/cocoa: keep a window reference across an async callback
...
Esnures that the window is alive when the callback is fired.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6504 >
2024-04-02 23:50:41 +00:00
Matthew Waters
3f29c897f8
glimagesink: avoid a possible critical on shutdown
...
It is possible that the close callback can be called after glimagesink
is changing state to NULL. Protect against that by taking the glimagesink
lock and some NULL checking.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6504 >
2024-04-02 23:50:41 +00:00
Matthew Waters
d9b563e9b2
glimagesink: unref the potential last ref outside of the glimagesink lock
...
Avoids a deadlock between the state change removing the last ref and
the destructer calling the window's on_close handler and trying to
take the glimagesink lock.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6504 >
2024-04-02 23:50:41 +00:00
Matthew Waters
3c5bb4bf5d
glbufferpool: protect release_buffer from multiple concurrent access
...
If two different threads attempt to release buffers at the same time, then the
keep-alive-slightly-longer GQueue may become corrupted. Guard against that with
some locking.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6504 >
2024-04-02 23:50:41 +00:00
Matthew Waters
49a7424d1e
gl/context/cocoa: ensure pixel format lives as long as the context
...
Under some circumstances, the CGLPixelFormatObj was being destroyed too
early which could lead to potential use-after-frees.
Fix by returning a reference when asked for the pixel format.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3154
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6504 >
2024-04-02 23:50:41 +00:00
Xavier Claessens
74b171e745
videorate: Reset last_ts when a new segment is received
...
This fix all buffers being droped when a new segment is received and
average-period property is set.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6502 >
2024-04-02 21:06:21 +00:00
Alexander Slobodeniuk
b18b3d00b7
navigation: add missing sanity checks
...
On practice a failure happened due to a race condition, the instance
already have been freed, but it could also happen if the instance
would be null.
Instead of crashing this sanity check is a more suitable option,
since with G_DEBUG=fatal-warnings it will crash too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6475 >
2024-04-02 14:17:53 +00:00
Chao Guo
69f4d98844
glcolorconvert: Ensure glcolorconvert does not miss supported RGB formats
...
Add RGB16 and other RGB formats to rgb_formats to ensure glcolorconvert
does not miss the RGB formats it supports
Signed-off-by: Chao Guo <chao.guo@nxp.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6497 >
2024-04-02 17:14:27 +09: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
Tim-Philipp Müller
4790a44d10
Revert "audiobasesink: Don't wait on gap events"
...
This reverts commit 8e923a8e2d
.
This caused regressions, see #3303 .
Without this commit, osxaudiosrc ! osxaudiosink won't work
right, but since that hasn't really been a huge problem
for years it's probably best to revert this until a proper
solution can be figured out.
(cherry picked from commit f04f86f3ee
)
(cherry picked from commit 93255efece
)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6405 >
2024-03-21 03:19:03 +00:00
Edward Hervey
42e24c32e5
uridecodebin3: Don't hold lock when posting messages or signals
...
There's a very good chance that the receiver might react on those synchronously
and call back into uridecodebin3 (ex: for setting the next URI).
Make sure we release the lock if we need to do that.
Fixes #3400
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6402 >
2024-03-19 09:34:18 +01:00
Edward Hervey
c1ac015325
uridecodebin3: Handle potential double redirection errors
...
Some elements (like qtdemux) might post a redirection error message twice. We
only want to handle it once.
Fixes #3390
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6389 >
2024-03-18 13:30:24 +00:00
Edward Hervey
b1f4dcb068
decodebin3: Post error messages if there are no streams to output
...
This could happen because:
* No streams were selected
* Or we end up with no stream selected
Also post a warning message if we are missing plugins but there are other
streams to output
Fixes #3360
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6323 >
2024-03-14 18:15:33 +00:00
Edward Hervey
11b1f70aea
decodebin3: Remove failing stream from active selection also
...
It gets added in get_output_slot()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6323 >
2024-03-14 18:15:33 +00:00
Thomas Klausner
4632c623bf
shmallocator: fix build on Illumos
...
Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3370
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6321 >
2024-03-13 18:48:27 +00:00
Michiel Westerbeek
a4aa9e197e
gstcudaconvertscale, gstvavpp, videoconvertscale: downgrade 'Can't keep DAR' to debug
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5730 >
2024-03-13 16:06:56 +00:00
Nicolas Dufresne
bcad005d05
glupload: Do not propose allocators with sysmem
...
None of the GL allocators actually offer a generic alloc() implementation. As a
side effect, they cannot be offered as they don't work with generic video
buffer pool.
Our specialized buffer pool can be dropped by tee or alphacombine as sharing the
same buffer pool over two branch is not supported by the pool API.
Fixes #3372
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6327 >
2024-03-12 19:02:54 +00:00