| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
In gst_video_info_to_caps(), make sure we end up with an RGB matrix for
RGB formats and warn when the GstVideoInfo colorimetry is wrong.
In gst_video_info_from_caps(), fix the GstVideoInfo with an RGB matrix
for RGB formats and warn about inconsistent caps.
See https://bugzilla.gnome.org/show_bug.cgi?id=759624
|
|
|
|
|
|
|
|
| |
For RGB formats, the matrix in the colorimetry (conversion from YUV to
RGB) is irrelevant and we should ignore it and assume the identity
transform for everything we do.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=759624
|
|
|
|
|
|
| |
It was never actually supported or used
https://bugzilla.gnome.org/show_bug.cgi?id=760666
|
|
|
|
|
|
|
|
|
| |
This reverts commit 63517d0ed348784cce4ab4b295c2c0f1b78baa81.
It was wrong ref counting wise and we decided to deprecated DROPPED
return value
https://bugzilla.gnome.org/show_bug.cgi?id=760666
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[..] when resetting group start time. In GES, we are usually connected
to the streamsynchronizer on one audio and one video pad.
When seeking the timeline, both nlecompositions often output their flush_start
before any of them has output its flush_stop.
The current code, when receiving the first flush stop was using the
running time of the start of the second composition, which could
be pretty much anything, and means nothing at that point.
This patch is thread-safe, as STREAM_SYNCHRONIZER_LOCK is taken
both when setting flushing and when checking it.
https://bugzilla.gnome.org/show_bug.cgi?id=750013
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=760666
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When blocking input pads, we also need to properly set the appropriate
pending flag.
Without this, when switching stream types after initial configuration
(like going from Audio+Video to Audio+Video+Sub) playsink would never
wait for *all* input streams to be blocked (it would just wait for the
new input pad (text in this case) to be blocked).
Since the reconfiguration might introduce unlinking/relinking of elements,
we need to ensure that *ALL* input streams are blocked.
Failure to do so would result in having some input streams pushing data
to inactive elements (returning GST_FLOW_FLUSHING) or unlinked pads
(returning GST_FLOW_NOT_LINKED).
A later optimization could involve only blocking the input pads that
might be involved in reconfiguration. But better be safe than sorry for
now :)
|
|
|
|
|
|
|
| |
Otherwise, pool could be negotiated with a size which will be different
from the one used in allocation which is the GstVideoInfo.
https://bugzilla.gnome.org/show_bug.cgi?id=760222
|
|
|
|
|
|
|
|
|
| |
typefinder
We would otherwise read beyond the array bounds and crash every now and then.
This was introduced with 5640ba17c8db80976b7718904e4024dcfe9ee1a0.
https://bugzilla.gnome.org/show_bug.cgi?id=759910
|
|
|
|
|
|
| |
The filters' floating references are sinked during set_property() already,
which means that GstBin takes a new reference when adding the filter to it.
Get rid of the additional reference after adding the filter to the bin.
|
|
|
|
| |
And also recreate the chains if the filter is changing.
|
| |
|
|
|
|
|
|
|
|
|
| |
The EOS event can be propagated to the downstream elements when
is_eos flag remains set even after leaving the flushing state.
This fix allows this element to normally restart the streaming
after receiving the flush event by clearing the is_eos flag.
https://bugzilla.gnome.org/show_bug.cgi?id=759110
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Depayloaders will look at rtpbuffer->buffer for the discont flag.
When we set the discont flag on a buffer in the rtp base depayloader
and we have to make the buffer writable, make sure the rtpbuffer
actually contains the newly-flagged buffer, not the original input
buffer. This was introduced with the addition of the process_rtp_packet
vfunc, but would only trigger if the input buffer wasn't flagged
already and was not writable already.
|
|
|
|
|
|
|
|
|
|
|
| |
When we detect a discont and the input buffer isn't already flagged
as discont, handle_buffer() does a gst_buffer_make_writable() on the
input buffer in order to set the flag. This assumed it had ownership
of the input buffer though, which it didn't. This would still work
fine in most scenarios, but could lead to crashes or mini object
unref criticals in some cases when a discont is detected, e.g. when
using pcapparse in front of a depayloader. This problem was
introduced in bc14cdf529e.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
buffering pending
Otherwise we'll remove that element while keeping its buffering message in our
list, and because of that never ever report buffering 100% as that element
will always be at a lower percentage.
This fixes e.g. seeking over Period boundaries in DASH and various other
issues when buffering happens between group switches.
Also use a new mutex for protecting the buffering messages. The object lock is
already used by gst_object_has_as_ancestor() and we need to use it now for
checking if the buffering message sender has the to-be-removed element as
ancestor.
|
|
|
|
|
|
|
| |
Some servers incorrectly parse header names with strict case-sensitivity. For
compatibility with these systems change X-Sessioncookie to x-sessioncookie.
https://bugzilla.gnome.org/show_bug.cgi?id=758921
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=758204
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Just setting the ghostpad as flushing wasn't enough. It needs to be
consistent on the internal proxypad also, otherwise you end up in
situations where:
* a pending buffer on the target pad triggers the sticky event
propagation
* the default implementation sees that the proxypad is not flushing,
so it tries to push it to the other pad (the actual ghostpad)
* the ghostpad is flushing, so returns FALSE
* the push_event function sees that pushing the event failed...
* ... and pending buffer push returns GST_FLOW_ERROR, instead of
GST_FLOW_FLUSHING
By using gst_pad_set_active(FALSE), we ensure that both the ghostpad
and the proxypad are flushing/deactivated. The situation above will
no longer occur, and a GST_FLOW_FLUSHING will be returned.
|
|
|
|
|
|
|
|
|
|
| |
sample
In some conditions we might process empty buffers, calling
gst_control_binding_get_value_array in that case will lead
to the assertion:
(lt-ges-launch-1.0:18859): GStreamer-CRITICAL **: gst_control_binding_get_value_array: assertion 'values' failed
|
|
|
|
|
|
|
|
|
|
|
| |
bindings
The client-removed signal used G_INT_TYPE instead of G_SOCKET_TYPE
in its definition leading to problems on platforms where the size
of a pointer is larger than the size of an integer, It would also
not work at all with dynamic language bindings.
https://bugzilla.gnome.org/show_bug.cgi?id=757155
|
|
|
|
|
|
|
|
| |
Due to a typo, videotestsrc did not handle the Bayer
format 'gbrg' properly and reported it as invalid,
causing negotiation errors.
https://bugzilla.gnome.org/show_bug.cgi?id=757264
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Fix the 8-pole noise shaping error update. We were mixing errors from
different channels.
|
|
|
|
|
|
|
|
| |
This makes sure that they will always get SEEK events, even if we're currently
in the middle of a group switch (i.e. switching to another
representation/bitrate/etc).
https://bugzilla.gnome.org/show_bug.cgi?id=606382
|
|
|
|
|
|
|
|
|
|
| |
As stated in GST_PAD_PROBE_HANDLED's documentation, we are
supposed to unref the event before returning.
Fixes an event leak in the validate.hls.playback.play_15s.hls_bibbop
validate scenario.
https://bugzilla.gnome.org/show_bug.cgi?id=754459
|
|
|
|
|
|
|
|
|
|
|
| |
Send event directly to playsink instead of letting GstBin iterate
over all sink elements. The latter might send the event multiple times
in case the SEEK causes a reconfiguration of the pipeline, as can easily
happen with adaptive streaming demuxers.
What would then happen is that the iterator would be reset, we send the
event again, and on the second time it will fail in the majority of cases
because the pipeline is still being reconfigured
|
|
|
|
|
|
| |
Closing parenthesis was missing in two cases.
https://bugzilla.gnome.org/show_bug.cgi?id=756893
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Encrypted RTP buffers may contain encrypted padding, hence it's
necessary to have an option to relax the validation in order to
successfully map the buffer.
When the flag GST_RTP_BUFFER_MAP_FLAG_SKIP_PADDING is set
gst_rtp_buffer_map() will map the buffer like if padding is not
present.
https://bugzilla.gnome.org/show_bug.cgi?id=752705
|
|
|
|
|
|
|
|
|
|
|
| |
If the flush-start is arrived during _eos_wait() in basesink,
the 'eos' flag is overwritten to TRUE after exiting the _eos_wait().
To resolve the overwritten issue,
the subclass doing the _eos_wait() call should return the right value.
If the eos flag is set to TRUE again, it will cause error(enter the eos flow)
of the following state changing from PAUSED to PLAYING in basesink.
https://bugzilla.gnome.org/show_bug.cgi?id=754980
|
|
|
|
|
|
|
|
| |
pipeline
Not only if the base class told us, but also if one of our own elements did.
https://bugzilla.gnome.org/show_bug.cgi?id=756611
|
|
|
|
|
|
| |
failures
https://bugzilla.gnome.org/show_bug.cgi?id=756611
|
|
|
|
|
|
|
| |
Otherwise we chain up to the parent class' change_state function and might
override the failure with SUCCESS.
https://bugzilla.gnome.org/show_bug.cgi?id=756611
|
|
|
|
|
|
| |
gst_video_calculate_display_ratio()
https://bugzilla.gnome.org/show_bug.cgi?id=754567
|
|
|
|
|
|
|
|
| |
In case sink implements a streamvolume interface, volume element is being got
from the sink. But this is transfer full. So the memory should be freed before
setting it to NULL. This was resulting in major memory leaks
https://bugzilla.gnome.org/show_bug.cgi?id=755867
|
|
|
|
|
|
|
|
|
|
|
| |
Usually these loops only run once, so there's no problem here. But sometimes
they run twice, and by adding the number of bytes to a 16 bit pointer type we
would advance twice as much as we should.
Also use snd_pcm_frames_to_bytes() in alsasrc to calculate
the number of bytes to skip, same as we do in alsasink.
Thanks to Lucio A. Hernandez <lucio.a.hernandez@gmail.com> for reporting.
|
|
|
|
| |
away
|
|
|
|
|
|
|
| |
hidden groups should be freed at time of switching groups to avoid memory use
from balloning up.
https://bugzilla.gnome.org/show_bug.cgi?id=755770
|
|
|
|
|
|
| |
</ i> should be handled like </i>
https://bugzilla.gnome.org/show_bug.cgi?id=755875
|
|
|
|
|
|
|
|
| |
gir include search directories should respect PKG_CONFIG_PATH,
just like we do everywhere else. Makes g-i pick up the right
paths when using ./configure --with-pkg-config-path=
https://bugzilla.gnome.org/show_bug.cgi?id=755494
|