Commit 69482984 authored by Ronald S. Bultje's avatar Ronald S. Bultje

Quickfix for wrong timestamps... No final solution yet

Original commit message from CVS:
Quickfix for wrong timestamps... No final solution yet
parent 5345dd61
...@@ -1652,6 +1652,8 @@ gst_matroska_demux_parse_blockgroup (GstMatroskaDemux *demux, ...@@ -1652,6 +1652,8 @@ gst_matroska_demux_parse_blockgroup (GstMatroskaDemux *demux,
/* time (relative to cluster time) */ /* time (relative to cluster time) */
time = (* (gint16 *) data) * demux->time_scale; 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); time = GINT16_FROM_BE (time);
data += 2; size -= 2; data += 2; size -= 2;
flags = * (guint8 *) data; flags = * (guint8 *) data;
...@@ -1734,9 +1736,12 @@ gst_matroska_demux_parse_blockgroup (GstMatroskaDemux *demux, ...@@ -1734,9 +1736,12 @@ gst_matroska_demux_parse_blockgroup (GstMatroskaDemux *demux,
GST_BUFFER_SIZE (buf) - size, GST_BUFFER_SIZE (buf) - size,
lace_size[n]); lace_size[n]);
if (cluster_time != GST_CLOCK_TIME_NONE) if (cluster_time != GST_CLOCK_TIME_NONE) {
GST_BUFFER_TIMESTAMP (sub) = cluster_time + time; if (time < 0 && (-time) > cluster_time)
GST_BUFFER_TIMESTAMP (sub) = cluster_time;
else
GST_BUFFER_TIMESTAMP (sub) = cluster_time + time;
}
/* FIXME: duration */ /* FIXME: duration */
gst_pad_push (demux->src[stream]->pad, GST_DATA (sub)); gst_pad_push (demux->src[stream]->pad, GST_DATA (sub));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment