Increase default drift tolerance to 40ms to avoid glitches with decoders
or formats where there's a lot of timestamp jitter for some reason or
another (in this case: asf/wma), at least until we implement timestamp
smoothing.
It may not be uncommon for the input timestamps to experience some jitter
around the 'perfect time'. As such, instead of regularly adding and dropping
samples, optionally allow for some tolerance in a more relaxed approach.
API: GstAudioRate:tolerance
g_mapped_file_unref() was introduced in GLib 2.22, but we depend
only on GLib 2.18, so use g_mapped_file_free() when compiling
against older GLib versions until we bump the GLib dependency.
Add some utility functions for language tags and ISO-639
codes. These are useful for both GUIs and elements. The
iso-codes package is used for language name translations
if available.
API: gst_tag_get_language_codes()
API: gst_tag_get_language_name()
API: gst_tag_get_language_code()
API: gst_tag_get_language_code_iso_639_1()
API: gst_tag_get_language_code_iso_639_2B()
API: gst_tag_get_language_code_iso_639_2T()
Implement keyframe seeking in oggdemux by doing the double seek trick. First
seek to the required position, then read pages for all streams to grab the
granulepos (to know the timing of the keyframe) of each stream, then seek back
to the first keyframe.
After a seek, discard all packets before the packet with the granulepos on it so
that the output buffers contain valid timestamps.
Reorder some code so that we check the timestamps before allocating and pushing
an output buffer.
Do more checks on valid packets in ogm mode.
Do some additional checks on the granulpos timestamp before using it for
calculating the duration because oggdemux generates wrong granulepos now.
Fixes seeking somewhat again.
OGM demuxing no longer requires helper elements. It's done internally
in oggdemux. Vorbis comments are still not handled because I don't
have anything to test with.
gstoggstream.c:419: error: format ‘%lld’ expects type ‘long long int’, but argument 8 has type ‘gint64’
gstoggdemux.c:2253: error: format ‘%lld’ expects type ‘long long int’, but argument 8 has type ‘GstClockTime’
gstoggdemux.c:2333: error: format ‘%lld’ expects type ‘long long int’, but argument 8 has type ‘GstClockTime’