gst/matroska/matroska-demux.c: If the duration of a block is unknown only use the timestamp for the first lace and us...

Original commit message from CVS:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_parse_blockgroup_or_simpleblock):
If the duration of a block is unknown only use the timestamp for the
first lace and use GST_CLOCK_TIME_NONE as duration for the following
laces. Otherwise every lace has the same timestamp which leads to
various problems. Really fixes bug #548831.
This commit is contained in:
Sebastian Dröge 2008-08-21 13:22:06 +00:00
parent cbccea33ec
commit 698b432673
2 changed files with 12 additions and 1 deletions

View file

@ -1,3 +1,12 @@
2008-08-21 Sebastian Dröge <sebastian.droege@collabora.co.uk>
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_parse_blockgroup_or_simpleblock):
If the duration of a block is unknown only use the timestamp for the
first lace and use GST_CLOCK_TIME_NONE as duration for the following
laces. Otherwise every lace has the same timestamp which leads to
various problems. Really fixes bug #548831.
2008-08-21 Sebastian Dröge <sebastian.droege@collabora.co.uk>
* gst/wavenc/gstwavenc.c: (gst_wavenc_chain):

View file

@ -4214,8 +4214,10 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
next_lace:
size -= lace_size[n];
if (lace_time != GST_CLOCK_TIME_NONE)
if (lace_time != GST_CLOCK_TIME_NONE && duration)
lace_time += duration / laces;
else
lace_time = GST_CLOCK_TIME_NONE;
}
}