| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
As it's recursive, gst_pad_get_allowed_caps() may also return
empty for anything incompatible downstream. EMPTY is not valid caps
value for gst_caps_fixate(). This lead to assertion and then crash.
Ideally, the negotiate function should be re-factored to have a return
value, and we could make the negotiation fails earlier.
https://bugzilla.gnome.org/show_bug.cgi?id=754122
|
|
|
|
|
|
|
|
|
|
| |
The obscured check in compositor was using the dimensions of the pad to clamp
the h/w of the pad instead of the output resolution, and was doing an incorrect
calculation to do so. Fix that by simplifying the whole calculation by using
corner coordinates. Also add a test for this bug which fell through the cracks,
and just skip all the obscured tests if the pad's alpha is 0.0.
https://bugzilla.gnome.org/show_bug.cgi?id=754107
|
|
|
|
|
|
|
|
|
|
|
|
| |
The tsdemux latency should always be added to the minimum
latency (which is always a valid clock time value). The
"cleanup" in commit a1f709c2 made it so that it would not
be added if upstream reported 0 as minimum latency (as
e.g. udpsrc would). This broke playback of live mpeg-ts
streaming in some cases, leading to playback stutter due
to a too-small configured latency for the pipeline.
https://bugzilla.gnome.org/show_bug.cgi?id=751508
|
|
|
|
|
|
|
|
|
|
|
| |
In gst_live_adder_chain() function, calls to gst_buffer_copy_region() can lead
to assertion as 'offset + size <= bufsize' is not respected.
Indeed 'offset' and 'size' parameters are calculated through calling gst_live_adder_length_from_duration(),
and thus gst_util_uint64_scale_int_round().
Depending on the nearest integers, rounded values 'offset' and 'size' can then trigger the assertion.
This case mainly occurs when 'skip' value is > 0 in chain function process.
https://bugzilla.gnome.org/show_bug.cgi?id=753759
|
|
|
|
|
|
|
| |
It is faster than doing a query that propagates downstream and
should be enough
Elements: openjpegenc, schroenc, webpenc, pnmenc
|
|
|
|
|
|
|
| |
It is faster than doing a query that propagates downstream and
should be enough
Elements: faac, gsmenc, opusenc, sbcenc, voamrwbenc, adpcmenc, sirenenc
|
|
|
|
|
|
| |
Instead of squashing all upstream tags
https://bugzilla.gnome.org/show_bug.cgi?id=679768
|
|
|
|
|
|
|
| |
A variable can't be two values at once. We want to stop if it's not the
actual ts *AND* not the other ts
CID #1316475
|
|
|
|
|
|
|
|
| |
Avoids useless check of downstream caps when handling an
accept-caps query
Elements: dtsdec, faad, gsmdec, mpg123audiodec, opusdec,
sbcdec, adpcmdec, sirendec
|
|
|
|
|
|
|
|
| |
Avoids useless check of downstream caps when handling an
accept-caps query
Elements: daaladec, libde265dec, openjpegdec, rsvgdec, schrodec,
webpdec, pnmdec, vmncdec, openexrdec
|
|
|
|
|
|
|
| |
Call handle_nal for each NAL in the STAP-A RTP packet. This makes sure
we correctly extract the SPS and PPS.
https://bugzilla.gnome.org/show_bug.cgi?id=730999
|
|
|
|
|
|
|
|
| |
The payloader didn't copy anything so far, the depayloader copied every
possible meta. Let's make it consistent and just copy all metas without
tags or with only the video tag.
https://bugzilla.gnome.org/show_bug.cgi?id=751774
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=753228
|
|
|
|
|
|
|
|
|
|
| |
A race condition in the state change function may cause buffers to be
unreffed while they are still used by the streaming thread in
gst_rtp_h265_pay_send_vps_sps_pps() resulting in a crash. Chain up to the
parent class first in the state change function to make sure streaming
has stopped and only then free those buffers.
https://bugzilla.gnome.org/show_bug.cgi?id=741381
|
|
|
|
|
|
|
|
|
|
|
| |
The SPS struct might be filled out by a call to
gst_h264_parser_parse_subset_sps, which fills out
dynamically allocated data and requires a call
to gst_h264_sps_clear() to free it. Also make sure
to clear out any allocated SPS data when returning
an error.
https://bugzilla.gnome.org/show_bug.cgi?id=753306
|
|
|
|
|
|
|
| |
Do a quick check with the pad template caps as it is enough. Users
should have figured the appropriate full caps on a previous caps query
https://bugzilla.gnome.org/show_bug.cgi?id=753623
|
|
|
|
|
|
|
| |
Do a quick check with the pad template caps as it is enough. Users
should have figured the appropriate full caps on a previous caps query
https://bugzilla.gnome.org/show_bug.cgi?id=753623
|
|
|
|
|
|
|
| |
Fixes a buffer leak that would occur if the pipeline was shutdown while a
SPS/PPS header was being created.
https://bugzilla.gnome.org/show_bug.cgi?id=741271
|
|
|
|
|
|
|
|
| |
The payloader didn't copy anything so far, the depayloader copied every
possible meta. Let's make it consistent and just copy all metas without
tags or with only the video tag.
https://bugzilla.gnome.org/show_bug.cgi?id=751774
|
|
|
|
|
|
|
|
|
| |
When playing mts files with embedded subtitles, the buffer is mapped,
but not unmapped at the end resulting in a memory leak.
Also unref event in handle_dvd_event as it takes ownership of the event.
https://bugzilla.gnome.org/show_bug.cgi?id=753539
|
|
|
|
|
|
|
|
| |
When playing mts files with embedded subtitles, there are few event leaks.
Events are supposed to be transfer full. So if not forwarding the event,
they need to be freed.
https://bugzilla.gnome.org/show_bug.cgi?id=753539
|
|
|
|
|
|
| |
Related to: https://bugzilla.gnome.org/show_bug.cgi?id=753430
https://bugzilla.gnome.org/show_bug.cgi?id=753228
|
|
|
|
|
|
|
|
|
|
| |
codec_data changed
h264parse and gstrtph264depay do the same, let's keep the behaviour
consistent. As we now include the codec_data inside the stream, this causes
less caps renegotiation.
https://bugzilla.gnome.org/show_bug.cgi?id=753228
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=753228
|
|
|
|
|
|
|
|
|
| |
rtph264depay does the same and this fixes decoding of some streams with 32
SPS (or 256 PPS). It is allowed to have SPS ID 0 to 31 (or PPS ID 0 to 255),
but the field in the codec_data for the number of SPS or PPS is only 5
(or 8) bit. As such, 32 SPS (or 256 PPS) are interpreted as 0 everywhere.
This looks like a mistake in the part of the spect about the codec_data.
|
|
|
|
|
|
|
|
|
|
| |
For more optimised RTP packet handling: means we don't need to map the
input buffer again but can just re-use the mapping the base class has
already done.
Based on: https://bugzilla.gnome.org/show_bug.cgi?id=750235
https://bugzilla.gnome.org/show_bug.cgi?id=753228
|
|
|
|
| |
Switching to GST_BUFFER_TIMESTAMP() to be consistent with other rtp code.
|
|
|
|
|
|
|
|
| |
This causes an assertion and would lead to getting a NULL instead
of a buffer. Without proper checking this would easily lead to a
segfault.
Related to rpth264depay: https://bugzilla.gnome.org/show_bug.cgi?id=737199
|
|
|
|
|
|
|
|
|
|
|
| |
String parameters are expected to be passed as (f0r_param_string *),
which actually map to char**. In the filters this is evaluated as
(*(char**)param) which currently lead to crash when passing char*.
Remove the special case for string, all types, including char* as
passed as a reference.
https://phabricator.freedesktop.org/T83
|
|
|
|
|
|
|
| |
Check slice headers in between GST_H265_NAL_SLICE_TRAIL_N
and GST_H265_NAL_SLICE_RASL_R for frame start detection.
https://bugzilla.gnome.org/show_bug.cgi?id=753497
|
|
|
|
|
|
|
| |
EndOfSequence and EndOfBitstream nal units have size of 2 bytes.
Don't consider them as broken nals.
https://bugzilla.gnome.org/show_bug.cgi?id=753497
|
|
|
|
|
|
|
|
|
| |
Check if downstream is seekable via a SEEKING query and output a
BYTE segment if we want to seek back to fix up the headers later,
but if we're streaming send a TIME segment instead (which goes
down better with e.g. asfmux ! rtpasfpay).
https://bugzilla.gnome.org/show_bug.cgi?id=719553
|
|
|
|
|
|
|
|
|
| |
Some video bitstreams report a too restrictive set of profiles. If a video
decoder was to strictly follow the indicated profile, it wouldn't support that
stream, whereas it could in theory and in practice. So we should relax the
profile restriction for allowing the decoder to get connected with parser.
https://bugzilla.gnome.org/show_bug.cgi?id=747613
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Instead we would use cur_ts which matches the last TS store
in the buffer list.
https://bugzilla.gnome.org/show_bug.cgi?id=753037
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=753241
|
|
|
|
|
|
|
| |
GstFormat variable are duplicated in handle_seek_pull function.
So we need to move this variable in condition statement.
https://bugzilla.gnome.org/show_bug.cgi?id=753243
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=745768
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=745768
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the case where you have a source giving the GstAggregator smaller
buffers than it uses, when it reaches a timeout, it will consume the
first buffer, then try to read another buffer for the pad. If the
previous element is not fast enough, it may get the next buffer even
though it may be queued just before. To prevent that race, the easiest
solution is to move the queue inside the GstAggregatorPad itself. It
also means that there is no need for strange code cause by increasing
the min latency without increasing the max latency proportionally.
This also means queuing the synchronized events and possibly acting
on them on the src task.
https://bugzilla.gnome.org/show_bug.cgi?id=745768
|
|
|
|
|
|
|
|
| |
VPS is not mandatory, and need not check for its presence before setting
the caps. Because of the check, in streams which don't have VPS,
sticky event mishandling happens.
https://bugzilla.gnome.org/show_bug.cgi?id=752807
|
|
|
|
|
|
|
|
| |
In media to caps function, reserved_keys array is being used for variable i,
leading to GLib-CRITICAL **: g_ascii_strcasecmp: assertion 's1 != NULL' failed
changed it to variable j
https://bugzilla.gnome.org/show_bug.cgi?id=753009
|
|
|
|
|
| |
Value set to ret will be overwritten at least once at the end of the while
loop, removing assignment.
|
| |
|
|
|
|
|
| |
Value of p is already set below just before being used. Removing this
first assignment that will be ignored.
|
|
|
|
|
| |
No need to check if done is True since break will already terminate the for
loop.
|
| |
|