Changed the ebml reader's gst_ebml_peek_id_length() function so
that it returns the actual reason for why the peek failed, instead
of (almost) always returning GST_FLOW_UNEXPECTED. This prevents
the pulling task from sending EOS when doing a flushing seek.
matroskademux performs segment tricks to skip gaps in streams,
notably at start for non 0 based files. There may however be
cases when full presentation (including intermediate gaps) is
desired, so a property allows to configure as of which gap
to act (or not at all).
API: GstMatroskaDemux::max-gap-time
Fixes#659009.
Frame duration might vary for 1 usecond, in this case matroskamux
decides to create BLOCKGROUP instead of SIMPLEBLOCK.
Convert duration to timecodescale which is (typically) less precise, and
then also allow the difference of 1/-1 to arrange for less sensitive check.
Based on patch by Alexey Fisher <bug-track@fisher-privat.net>
Fixes#653080.
In particular, do so even if failing to read while prerolling,
such as when reading from a partial file (eg, while it is being
downloaded).
This fixes a wedge in playbin2.
https://bugzilla.gnome.org/show_bug.cgi?id=651965
Current matroska demux calculates the pixel aspect ratio only if both
DisplayHeight and DisplayWidth are set, but it is legal to use only
one variable if the other is equal to PixelWidth or PixelHeight, at
least the mkclean utility is doing that. So this makse mkcleaned
files play correctly.
https://bugzilla.gnome.org/show_bug.cgi?id=654744
Some video frames, for example alt-ref frame in VP8, will be
never displayed. This is why it has duration=0.
This patch allow to use this duration.
Bug: 654175
Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_parse_attachments
https://bugzilla.gnome.org/show_bug.cgi?id=650877
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_parse_attached_file
https://bugzilla.gnome.org/show_bug.cgi?id=650877
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_parse_metadata_id_tag
https://bugzilla.gnome.org/show_bug.cgi?id=650877
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_parse_metadata_id_simple_tag
https://bugzilla.gnome.org/show_bug.cgi?id=650877
AUTHOR only existed in an old version of the spec and ARTIST is
the new replacement for this. We are still reading both to still
be compatible with old files.
Fixes bug #644875.
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_get_seek_track
- gst_matroska_{demux,parse}_reset_streams
https://bugzilla.gnome.org/show_bug.cgi?id=650877
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_index_seek_find
- gst_matroska{demux,parse}_do_index_seek
https://bugzilla.gnome.org/show_bug.cgi?id=650877
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_tracknumber_unique
https://bugzilla.gnome.org/show_bug.cgi?id=650877
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_encoding_cmp
- gst_matroska_{demux,parse}_read_track_encodings
https://bugzilla.gnome.org/show_bug.cgi?id=650877
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_peek_id_length_pull
- gst_matroska_{demux,parse}_peek_id_length_push
https://bugzilla.gnome.org/show_bug.cgi?id=650877
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_encoding_order_unique
- gst_matroska_{demux,parse}_read_track_encoding
https://bugzilla.gnome.org/show_bug.cgi?id=650877
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_decode_content_encodings
- gst_matroska_decompress_data
https://bugzilla.gnome.org/show_bug.cgi?id=650877
Replace the following functions with their gst_matroska_read_common_*
counterparts:
- gst_matroska_{demux,parse}_parse_index
- gst_matroska_{demux,parse}_parse_skip
- gst_matroska_{demux,parse}_stream_from_num
Introduce GstMatroskaReadCommon to contain those members of
GstMatroskaDemux and GstMatroskaParse that were used by the above
functions.
https://bugzilla.gnome.org/show_bug.cgi?id=650877
Since the segment duration is given in terms of the
GST_MATROSKA_ID_TIMECODESCALE we should only convert it into
nanoseconds when we are sure that any scale specified in the file has
been read.
https://bugzilla.gnome.org/show_bug.cgi?id=650258
Since the segment duration is given in terms of the
GST_MATROSKA_ID_TIMECODESCALE we should only convert it into
nanoseconds when we are sure that any scale specified in the file has
been read.
https://bugzilla.gnome.org/show_bug.cgi?id=650258
We use -DG_DISABLE_ASSERT for the pre-releases, which makes these
warnings pop up in cases that were previously covered by g_assert_not_reached()
and the like:
tvtime/greedyh.c:801:14: warning: 'scanline' may be used uninitialized in this function
matroska-mux.c:501:19: warning: 'context' may be used uninitialized in this function