The default implementation for packet loss handling previously
always sent a gap event.
While this is correct as long as we know the packet that was
lost was actually a media packet, with ULPFEC this becomes
a bit more complicated, as we do not know whether the packet
that was lost was a FEC packet, in which case it is better
to not actually send any gap events in the default implementation.
Some payloaders can be more clever about, for example VP8 can
use the picture-id, and the M and S bits to determine whether
the missing packet was inside an encoded frame or outside,
and thus whether if it was a media packet or a FEC packet,
which is why ulpfecdec still lets these lost events go through,
though stripping them of their seqnum, and appending a new
"might-have-been-fec" field to them.
This is all a bit terrible, but necessary to have ULPFEC
integrate properly with the rest of our RTP stack.
https://bugzilla.gnome.org/show_bug.cgi?id=794909
Otherwise decodebin won't get notified about STREAM_COLLECTION comming
from the sources and thus will never get informored about it. Without
being informed about the stream collection decodebin won't be able to
select any streams. It ends up not creating any output for the streams
defined from outside parserbin.
https://bugzilla.gnome.org/show_bug.cgi?id=795364
The newly-added build definitions for test/icles relied
on dependencies that were only defined when the examples
are enabled, thus breaking meson build -Ddisable_examples=true
the meta initialization function is provided *after* the base implementation
fields have been set so do *NOT* reset them otherwise it would result
in corrupted GstMeta.
Instead explicitely set our fields to the default values we actually want.
As we load that symbol dynamically, valgrind gets confused
when it leaks and reports the leak against an unrelated library
and an unknown (??) symbol.
To address that, put the loading and calling of that symbol
in a separate function, and ignore any malloc leak happening
in that function.
This commits add common elements for Ancillary Data and Closed
Caption support in GStreamer:
* A VBI (Video Blanking Interval) parser that supports detection
and extraction of Ancillary data according to the SMPTE S291M
specification. Currently supports the v210 and UYVY video
formats.
* A new GstMeta for Closed Caption : GstVideoCaptionMeta. This
supports the two types of CC : CEA-608 and CEA-708, along with
the 4 different ways they can be transported (other systems
are super-set of those).
https://bugzilla.gnome.org/show_bug.cgi?id=794901
* Explicitely specify which headers aren't to be included in gtkdoc-scan
This is essentially all the headers that are not installed and only
for internal/local usage. This also includes the orc-generated headers.
* Remove all symbols/sections that are no longer present (due to accurately
scanning only the headers we need).
* Add or expose sections which weren't previously exposed
* Make sure the "unified" library headers (ex: gst/video/video.h) are used
everywhere applicable. Only use the specific headers where applicable
(such as the GL-implementation-specific objects)
* Add all documentation which was not previously exposed in the right sections
* Update 'types' file to get as many runtime information as possible
This brings down the number of unused symbols to 15 (from over 300).
Instead go backwards before segment.stop based on the framerate or the
next buffers end timestamp. Otherwise the first buffer will usually be
dropped because outside the segment.
https://bugzilla.gnome.org/show_bug.cgi?id=781899
gst-play-1.0 sets STDIN to non-blocking mode to have the input
characters read as soon as they arrive.
However, when gst_play_kb_set_key_handler() gets called from
restore_terminal() it forgets to restore the STDIN blocking status.
This can result in broken behavior for cli command executed in the same
terminal after gst-play-1.0 exited.
It turns out that putting STDIN in non-blocking mode is not even the
proper way to achieve the desired effect, instead VMIN and VTIME in
struct termios should be set to 0.
Let's do that, and don't mess with the STDIN blocking mode now that it's
not necessary.
https://bugzilla.gnome.org/show_bug.cgi?id=794591