+2007-08-21 Wim Taymans <wim.taymans@gmail.com>
+
+ * ext/ogg/gstoggdemux.c: (gst_ogg_demux_read_chain),
+ (gst_ogg_demux_collect_chain_info):
+ Also submit the eos page when trying to find the first timestamp.
+ See #466717.
+
2007-08-17 Sebastian Dröge <slomo@circular-chaos.org>
* gst-libs/gst/audio/audio.h:
if (pad->serialno == serial) {
known_serial = TRUE;
+ /* submit the page now, this will fill in the start_time when the
+ * internal decoder finds it */
+ gst_ogg_pad_submit_page (pad, &op);
+
if (!pad->is_skeleton && pad->start_time == -1 && ogg_page_eos (&op)) {
/* got EOS on a pad before we could find its start_time.
* We have no chance of finding a start_time for every pad so
done = TRUE;
break;
}
- gst_ogg_pad_submit_page (pad, &op);
}
/* the timestamp will be filled in when we submit the pages */
if (!pad->is_skeleton)
done &= (pad->start_time != GST_CLOCK_TIME_NONE);
+
GST_LOG_OBJECT (ogg, "done %08x now %d", pad->serialno, done);
}
gboolean res = TRUE;
chain->total_time = GST_CLOCK_TIME_NONE;
- chain->segment_start = G_MAXINT64;
+ chain->segment_start = G_MAXUINT64;
GST_DEBUG_OBJECT (ogg, "trying to collect chain info");
}
if (chain->segment_stop != GST_CLOCK_TIME_NONE
- && chain->segment_start != G_MAXINT64)
+ && chain->segment_start != G_MAXUINT64)
chain->total_time = chain->segment_stop - chain->segment_start;
GST_DEBUG_OBJECT (ogg, "return %d", res);