| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Check the right variable when checking if there's
enough data left to read the frame size.
Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/876
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1067>
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
From 59cb678 to a825d27
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
using them
On macOS, for example, "text/*" can be returned as mimetype for
plaintext files but we don't allow '*' in structure names and this would
cause critical warnings.
It's a valid mimetype but not a valid structure name.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/616
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/879>
|
|
|
|
|
|
|
|
|
|
| |
We validate the header extensions length of an RTP buffer by comparing
it against the block size. Since we multiply the length in words by 4 to
get the length in bytes, a suitably large length could cause a wrapround
of the uint16, giving a lower length which erroneously passes the check
and allows the buffer to be mapped.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/866>
|
|
|
|
|
|
| |
Fields really should alternate in this mode.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/862>
|
|
|
|
|
|
|
|
|
|
|
| |
When user is passing the actual interlace-mode when calling
gst_video_decoder_set_interlaced_output_state() it should not be
overidden by the input interlace-mode.
Needed to fix #825 as we want to keep interlace-mode=interleaved from
parsers and have the OMX decoder producing interlace-mode=alternate.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/862>
|
|
|
|
| |
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/862>
|
|
|
|
|
|
|
|
|
|
|
| |
The initial streams-selected message might not match any select-streams,
in which case it is currently overriden with GST_SEQNUM_INVALID.
Related to:
- https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/601
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/863>
|
|
|
|
| |
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/833>
|
|
|
|
|
|
|
|
|
| |
didn't negotiate with downstream yet
If we already negotiated with downstream there is not point in checking
if the caps are supported. We already know that this is the case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/834>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
support the upstream rate
Otherwise it might happen that downstream prefers a different rate (i.e.
puts it into the first structure) and also supports other rates, but
audioaggregator would then fail negotiation.
Also this now correctly handles downstream returning a range of
supported rates.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/795
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/834>
|
|
|
|
| |
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/826>
|
|
|
|
|
|
| |
This format has 3 components, just like NV12.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/827>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch was taken from #629#note_178766, the comment made
at the time was:
The root issue is a mismatch between the initialization of render_rect
in GstGLWindowX11Private and what's expected in the draw_cb function.
Because render_rect is not explicitly initialized to a width and height
of -1 (unlike gstglwindow_wayland_egl.c which does initialize to -1),
the less-than check for explicitly-set render_rect at gstglwindow_x11.c:453-454
always fails, even when the parent_win has been set and the render rectangle
has never been set.
Maybe this came from copying the similar check in the wayland code? Regardless,
I think the correct inequality should be '<= 0' (on both lines).
Alternatively initialization could be changed, but other sinks, e.g.
xvimagesink don't appear to use -1 to mean "unset" render_rect this way.
The issue can be reproduced by running the example in
tests/examples/gl/qt/videooverlay/ on X11, and resizing the output
window
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/829>
|
|
|
|
|
|
|
|
|
|
| |
fixate_caps() are actually fixated
If there is some other field than the ones we care about left and not
fixated yet then basetransform will just error out. So instead just pass
the result through gst_caps_fixate() in the very end.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/832>
|
|
|
|
|
|
| |
The spec now list 6, 6.1 and 6.2.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/831>
|
|
|
|
|
|
|
|
| |
get_allowed_caps() will return NULL, which is not a problem in itself.
Just take the template caps for negotiation in that case instead of
erroring out.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/830>
|
|
|
|
|
|
|
|
|
|
| |
gst_element_class_set_metadata is meant to only be used with
static or inlined strings, which isn't the case for this element
resulting in use-after-free later on.
https://gstreamer.freedesktop.org/documentation/gstreamer/gstelement.html?gi-language=c#gst_element_class_set_static_metadata
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/828>
|
|
|
|
|
|
| |
Otherwise we would error out without releasing the caps first.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/825>
|
|
|
|
|
|
| |
to is_subtitle_caps()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/825>
|
|
|
|
|
|
|
|
|
|
|
| |
back to a caps query
The negotiated caps will be more accurate and are fixed caps in any
case.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/498
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/825>
|
|
|
|
|
|
|
|
|
|
| |
Include the Program Stream Map packet type 0xBC in the
set of packets we treat as PES. This fixes typefinding
on MPEG-PS streams with PSM, where the PSM would previously
be considered a loss-of-sync and cause the typefind
to require more data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/824>
|
|
|
|
|
|
| |
https://www.w3.org/TR/webvtt1/#webvtt-timestamp
mm:ss,000 is a valid WebVTT timestamp
|
|
|
|
|
|
|
| |
Fix the check for whether the element is operating in ARGB mode. It
was incorrectly checking if the output format has an alpha channel,
which is true for both ARGB and AYUV, leading to the element
incorrectly outputting ARGB values into AYUV caps.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
checking for wayland-scanner... wayland-scanner
./configure: 28389: test: xyes: unexpected operator
checking libdrm/drm_fourcc.h usability... yes
checking libdrm/drm_fourcc.h presence... yes
checking for libdrm/drm_fourcc.h... yes
checking for glTexDirectVIV in -lGLESv2... no
./configure: 28530: test: xyes: unexpected operator
./configure: 28533: test: x: unexpected operator
Causes build failure:
make[6]: *** No rule to make target '/stable/xdg-shell/xdg-shell.xml',
needed by 'xdg-shell-client-protocol.c'. Stop.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Without this fix, it is possible that outbuf is not initialized, which
will result in segfault when call gst_buffer_replace (&outbuf, NULL). In
addition, the patch fixes potential memory leak in restart path.
The segfault can be reproduced by the pipeline below:
GST_GL_PLATFORM=egl \
gst-launch-1.0 videotestsrc ! msdkh265enc ! msdkh265dec ! \
'video/x-raw(memory:DMABuf)' ! glimagesink
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/619
|
|
|
|
|
|
|
|
| |
In the situation that the direct dmabuf path is chosen, but with an
unsupported texture format, this causes accept to fail rather than
continue and fail at the upload stage. It is also possibly necessary to
reconfigure after falling back from direct to non-direct dmabuf upload
paths.
|
|
|
|
|
|
| |
Previously the "squares" were twice as wide.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/732
|
|
|
|
|
|
|
|
| |
xBGR/xRGB
Otherwise we'll create a cyan or yellow checkerboard.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/736
|
| |
|
|
|
|
|
|
|
| |
GST_VIDEO_FRAME_FLAG_BOTTOM_FIELD is a subset of
GST_VIDEO_FRAME_FLAG_TOP_FIELD so needs to be checked accordingly.
Fix #726
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously we would simply use them without any locking at all, while
using the object lock for setting them. Nothing prevented new callbacks
to be set in the meantime, potentially calling a callback with already
freed user_data.
To prevent this move the callbacks into a reference counted struct and
use the appsrc/appsink mutex to protect access to it, which is used in
all functions calling the callbacks already anyway.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/729
|
|
|
|
|
| |
When using the cache, we were not using the right GMainContext to setup
next URI to discovery, fix that.
|
| |
|
|
|
|
| |
Fixes segfault when the display changes
|
|
|
|
|
| |
We need to remove GL resources from the old context instead of the new
GL context. The two GL context may not even be shared.
|
|
|
|
| |
Fixes a possible memory leak on renegotiation
|
|
|
|
|
|
|
| |
If there's no known value in the best caps then the functions to convert
them to strings will return NULL. Having the fields not in the caps is
not a problem, having them with a NULL value however will cause
negotiation failures.
|
|
|
|
|
|
| |
gst_gl_shader_string_get_highest_precision needs to make an OpenGL call
so execution outside the OpenGL thread and context results in undefined
behaviour.
|
|
|
|
|
|
|
|
| |
The default values were not being set on element initialization. This
was a problem for buffer_duration and buffer_size since they would be
zero initialized, rather then being set to -1. This would cause the
underlaying queue2 element to have no limits and depending on the
streamed file, could cause queue2 to allocate massive amounts of memory.
|
|
|
|
|
|
|
| |
Similarily to the Theora mapping, process 0:N, N:0 and 0:0 pixel aspect ratios
as 1:1.
Fixes #719
|
|
|
|
|
|
|
| |
This fixes thread-safety issues and various other minor issues. Our
previous version was about 13 years old.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/715
|
|
|
|
| |
Segment event was leaked if format != _TIME.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are in the wild (mp4) streams that basically contain no tracks
but do have a redirect info[0], in which case, qtdemux won't be able
to expose any pad (there are no tracks) so can't post anything but
an error on the bus, as:
- it can't send EOS downstream, it has no pad,
- posting an EOS message will be useless as PAUSED state can't be
reached and there is no sink in the pipeline meaning GstBin will
simply ignore it
In that case, currently the application could try to handle that but it
is pretty complex as it will get the REDIRECT message on the bus at
which point it could set the URL but playbin will ignore it, as
it will only be for the next EOS, it thus need to set the pipeline to
NULL (READY won't do as it is already in READY at that point). And it
needs to figure out the following ERROR message on the bus needs to be
ignored, which is not really simple.
The approach here is to allow element to add details to the ERROR
message with a `redirect-location` field which elements like playbin handle
and use right away.
We could also use the element 'redirect' message in playbin, but the
issue with that approach is that the element will still emit the ERROR
message on the bus, leading to wrong behaviour. That can't be avoided
since in the case the app/parent pipeline is not handling the redirect
instruction, the ERROR message is necessary (and there is no way to
detect that the message has been "handled" from the element emitting the
redirect).
[0]: http://movietrailers.apple.com/movies/paramount/terminator-dark-fate/terminator-dark-fate-trailer-2_480p.mov
|
| |
|
| |
|