From 4e9508e2ec9db9a7eb8cccf1b8fef8bd80d1d779 Mon Sep 17 00:00:00 2001 From: Vincent Penquerc'h Date: Mon, 22 Aug 2011 14:55:59 +0100 Subject: [PATCH] oggdemux: do not ignore sparse streams' start time But do not wait for them either, if we don't have a packet for them. https://bugzilla.gnome.org/show_bug.cgi?id=657062 --- ext/ogg/gstoggdemux.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c index ff05c82120..2e349a22e1 100644 --- a/ext/ogg/gstoggdemux.c +++ b/ext/ogg/gstoggdemux.c @@ -679,13 +679,18 @@ gst_ogg_demux_collect_start_time (GstOggDemux * ogg, GstOggChain * chain) for (i = 0; i < chain->streams->len; i++) { GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i); - if (pad->map.is_sparse) + if (pad->map.is_skeleton) continue; /* can do this if the pad start time is not defined */ + GST_DEBUG_OBJECT (ogg, "Pad %08x (%s) start time is %" GST_TIME_FORMAT, + pad->map.serialno, gst_ogg_stream_get_media_type (&pad->map), + GST_TIME_ARGS (pad->start_time)); if (pad->start_time == GST_CLOCK_TIME_NONE) { - start_time = G_MAXUINT64; - break; + if (!pad->map.is_sparse) { + start_time = G_MAXUINT64; + break; + } } else { start_time = MIN (start_time, pad->start_time); }