Commit graph

16132 commits

Author SHA1 Message Date
Edward Hervey
2cf5d596ee oggstream: Fix default granuleshift usage
For stream mappers that don't set a specific granuleshift, it will
have the default value of -1.

Protect the code for that and return the granule value as-is
2017-11-04 11:50:13 +01:00
Edward Hervey
1172e5efc7 oggdemux: Protect against invalid granule positions
Only valid values are -1, 0 or positive values. Anything else is
most likely corrupted data streams
2017-11-04 11:50:10 +01:00
Mathieu Duponchelle
c493c564ba codecutils: improve input validation in opus header parsing
Invalid input files do not warrant assertions. Instead
output error messages and let the error bubble up.
2017-11-03 17:25:47 +01:00
Justin Kim
91179622eb sdpmessage: add_attribute accepts NULL value
The attribute can be defined without value regardless session-level
or media-level.
Although `gst_sdp_message_insert_attribute` can be used to set NULL,
it would be easier if `gst_sdp_message_add_attribute` accepts NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=789841
2017-11-03 17:56:39 +11:00
Edward Hervey
a23d4d1c1f typefind: Fix out-of-bound read in PNM typefinder 2017-11-02 17:59:29 +01:00
Edward Hervey
24a5a03d27 vorbistag: Fix previous comment
We already NULL-ended the string, don't use the bogus cur_size
2017-11-02 10:43:02 +01:00
Tim-Philipp Müller
6c749f75a5 typefindfunctions: fix off-by-one in webvtt typefinder
We're also checking the byte after the WEBVTT magic.
2017-11-02 09:05:47 +00:00
Edward Hervey
ee55f94ac0 riff-media: Handle strf_data being NULL
Instead of trying to get the size of a NULL buffer :)
2017-11-02 09:19:21 +01:00
Edward Hervey
62081fe583 vorbistag: Check whether tag name is valid
In the same way we check before whether the content of the tag
is UTF-8
2017-11-02 08:19:13 +01:00
Edward Hervey
7e28f6c076 discoverer: Check return values
The target pad of a ghostpad could have gone (due to shutdown taking
place for example). Check for it's existence before doing anything
with it.
2017-11-02 08:04:27 +01:00
Edward Hervey
f448cecceb decodebin2: Recheck shutdown behaviour in error case
If we can expose the main chain, recheck whether we are shutting
down or not.

decodebin2 might have been set to READY/NULL during the attempt
to expose, which would cause it to fail ... but it is not a fatal
issue.
2017-11-02 07:55:16 +01:00
Edward Hervey
39ba6427f1 discoverer: Uniquely name elements
Helps identifying actual queue/fakesink usage. There seems to be
a race in discoverer, this should help track it down.
2017-11-02 07:18:17 +01:00
Edward Hervey
33dfed5af8 oggdemux: Only track time for initialized streams
in push-mode we only can track time (or most operations on streams
for that matter) if the underlying GstOggMap was properly initialized.
2017-11-01 18:39:26 +01:00
Edward Hervey
c3006b17d1 oggstream: Add a default GstOggMap
Since the default value of a GstOggPad.map.map was 0 ... we would
end up using wrong functions from mappers() if the stream wasn't
initialized yet.

Instead of that, use a default blank/empty first entry.
2017-11-01 18:39:26 +01:00
Sebastian Dröge
9c2d5e863e rtspconnection: Allow setting a custom accept-certificate function for manually checking a TLS certificate for validity
https://bugzilla.gnome.org/show_bug.cgi?id=785024
2017-11-01 13:41:42 +02:00
Edward Hervey
f1c44332d5 ogmparse: Ensure we don't create bogus fractions
The clamping of the fraction denominator was bogus (it needs to
be >0)
2017-11-01 11:19:58 +01:00
Edward Hervey
eb8bf0f162 oggdemux: Fix chain leak in push mode
In some corner cases we end up with the building chain not being
properly tracked (and therefore not properly freed).

Add a FIXME so it can later be fixed, but for now just fix the leak
2017-11-01 11:18:12 +01:00
Edward Hervey
8e867aefe0 vorbistag: Fix leak in error case
Don't leak the vendor_string on error cases
2017-11-01 10:53:54 +01:00
Edward Hervey
0297bc2a4f ogmparse: Error out if we can't figure out the format
In some cases we might not be able to figure out the fixed format
from the header.

Properly error out in those cases.
2017-11-01 10:32:54 +01:00
Justin Kim
33709106e9 rtcpbuffer: Add XR type
RTCP XR provides supplements information of the report blocks
from SR and RR. This patch is for downgrading warnings when
XR is detected before implementing entire block types of RFC3611.

https://bugzilla.gnome.org/show_bug.cgi?id=789743
2017-11-01 10:54:10 +02:00
Justin Kim
d100180ce3 sdpmessage: do not append NULL value for session-level attr
If an attribute is defined without value, the generated text
should be 'a=key' rather than 'a=key:'. For media-level, it
has already been done.

https://bugzilla.gnome.org/show_bug.cgi?id=789742
2017-11-01 17:09:47 +11:00
Edward Hervey
cb0b73672c Update disted orc file
For latest orc fixes
2017-10-31 11:57:23 +01:00
Edward Hervey
e638f81165 ogg: Don't add tags to empty taglist 2017-10-31 11:57:19 +01:00
Edward Hervey
5bcc1e2b57 typefind: Use GST_READ_UINT32 macros
Avoids undefined behaviour with shifting
2017-10-30 11:10:11 +01:00
Edward Hervey
7b5d97e9c3 typefind: Fix out-of-bound memory access
We were not checking the proper amount of available data in several
places
2017-10-30 08:57:19 +01:00
Vivia Nikolaidou
b2be4169ee audioconvert: Fix empty mix matrix documentation typo 2017-10-27 18:29:40 +03:00
Seungha Yang
466cbef6ab decodebin3: Allow configure output stream without reassign slot
By select-streams event, current implementation of decodebin3
supports deactivate output stream (i.e., decoder element)
in reassign slot(), but cannot activate any slot without track change.

https://bugzilla.gnome.org/show_bug.cgi?id=778015
2017-10-27 09:55:59 +02:00
Seungha Yang
969ab3f48c playbin3: Use STREAMS_SELECTED message to update selected stream types
Application might choose only specific type among all available types
using select-streams event. In this case, it is desired that reconfigure
of playsink to clear unused stream path.

https://bugzilla.gnome.org/show_bug.cgi?id=778015
2017-10-27 09:55:59 +02:00
Edward Hervey
3de5fd4342 gst-play: Prevent disabling all streams
This would have bad effects :)
2017-10-27 09:51:29 +02:00
Seungha Yang
a8e05cc9cc gst-play: Support track change on playbin3
* playbin3 does not support {current,n}-{audio,video,text}
properties, and they were replaced by GstStreams API.
So, GstStreams API and select-stream event should be used
for track change in case of playbin3.
see also https://bugzilla.gnome.org/show_bug.cgi?id=769079

* By using commend line option "--use-playbin3", gst-play will
use playbin3 regardless of "USE_PLAYBIN" env variable.

https://bugzilla.gnome.org/show_bug.cgi?id=775469
2017-10-27 09:45:39 +02:00
Mathieu Duponchelle
b0c184e189 audioconvert: document passing an empty mix-matrix 2017-10-26 18:05:46 +02:00
Edward Hervey
35129b3159 check: Fix minor leak 2017-10-26 15:55:32 +02:00
Edward Hervey
90106b6bf2 oggdemux: Don't forget to reacquire lock when needed
Fixup to ef93130cf0

I overlooked the issue. There is a case when the lock is released
and we need to reacquire it
2017-10-26 10:07:15 +02:00
Mathieu Duponchelle
d3a10942e0 libgstvideo.def: add new definitions 2017-10-25 17:45:44 +02:00
Guillaume Desmottes
7950a4614c videoencoder: add qos property
This new property control if the encoder base class should gather QoS
stats and if subclasses should use them by dropping late frames.

https://bugzilla.gnome.org/show_bug.cgi?id=789467
2017-10-25 14:22:15 +02:00
Ashish Kumar
346c24dc4b gst-plugins-base: gstaudiochannels: Handled buffer mapping failure
https://bugzilla.gnome.org/show_bug.cgi?id=789458
2017-10-25 13:04:28 +02:00
Edward Hervey
6fd8d78d8b oggdemux: Don't drop sticky events
Previous commit was wrong. We should still send all events to the
pad (so that sticky events get attached to it and sent when pad
gets added).
2017-10-24 11:05:20 +02:00
Edward Hervey
e8a60b3de9 oggdemux: Improve handling of EOS without source pads
We might have a chain to use, but it might not have any active pads

Properly detect that and send an error message on EOS
2017-10-24 10:56:00 +02:00
Matthew Waters
a240880664 Revert "videoencoder: flush encoder in transition PAUSED->READY"
This reverts commit 877664a414.
2017-10-22 01:00:10 +11:00
Matthew Waters
a81b5a95ba Revert "videodecoder: flush decoder in transition PAUSED->READY"
This reverts commit 6e9edc3031.
2017-10-22 01:00:08 +11:00
Matthew Waters
06aba17d19 Revert "audioencoder: flush encoder in transition PAUSED->READY"
This reverts commit 2dcdd13512.
2017-10-22 01:00:06 +11:00
Matthew Waters
b8369ba20d Revert "audiodecoder: flush decoder in transition PAUSED->READY"
This reverts commit e7cf4c058d.
2017-10-22 01:00:03 +11:00
Edward Hervey
9d3525da4f win32: update exports file 2017-10-21 10:37:48 +02:00
Edward Hervey
f902286a26 oggdemux: Error out on EOS if we have no chains to use
There are not active and pending chains, if we get EOS we need to
inform the user via an error message
2017-10-20 18:41:52 +02:00
Edward Hervey
ef93130cf0 oggdemux: Don't double lock
The lock was already taken just before this block and is released after
2017-10-20 18:41:46 +02:00
Nicola Murino
877664a414 videoencoder: flush encoder in transition PAUSED->READY
https://bugzilla.gnome.org/show_bug.cgi?id=787311
2017-10-20 01:55:19 +11:00
Nicola Murino
6627dd3ae3 videoencoder: remove the lock from gst_video_encoder_flush
The lock is already taken before calling the flush method and can lead to
deadlock for some encoders that need to take the same lock from another
thread while flushing

https://bugzilla.gnome.org/show_bug.cgi?id=787311
2017-10-20 01:55:10 +11:00
Nicola Murino
6e9edc3031 videodecoder: flush decoder in transition PAUSED->READY
https://bugzilla.gnome.org/show_bug.cgi?id=787311
2017-10-20 01:55:07 +11:00
Nicola Murino
2dcdd13512 audioencoder: flush encoder in transition PAUSED->READY
https://bugzilla.gnome.org/show_bug.cgi?id=787311
2017-10-20 01:55:04 +11:00
Nicola Murino
e7cf4c058d audiodecoder: flush decoder in transition PAUSED->READY
https://bugzilla.gnome.org/show_bug.cgi?id=787311
2017-10-20 01:54:54 +11:00