Quickfix for wrong timestamps... No final solution yet

Original commit message from CVS:
Quickfix for wrong timestamps... No final solution yet
This commit is contained in:
Ronald S. Bultje 2003-12-19 16:07:00 +00:00
parent 5345dd61ec
commit 69482984d5

View file

@ -1652,6 +1652,8 @@ gst_matroska_demux_parse_blockgroup (GstMatroskaDemux *demux,
/* time (relative to cluster time) */
time = (* (gint16 *) data) * demux->time_scale;
/* I think this is mis-documented in the matroska sources, we should
* probably shift values (EBML-style) on this value... */
time = GINT16_FROM_BE (time);
data += 2; size -= 2;
flags = * (guint8 *) data;
@ -1734,9 +1736,12 @@ gst_matroska_demux_parse_blockgroup (GstMatroskaDemux *demux,
GST_BUFFER_SIZE (buf) - size,
lace_size[n]);
if (cluster_time != GST_CLOCK_TIME_NONE)
if (cluster_time != GST_CLOCK_TIME_NONE) {
if (time < 0 && (-time) > cluster_time)
GST_BUFFER_TIMESTAMP (sub) = cluster_time;
else
GST_BUFFER_TIMESTAMP (sub) = cluster_time + time;
}
/* FIXME: duration */
gst_pad_push (demux->src[stream]->pad, GST_DATA (sub));