oggdemux: don't do math with invalid granulepos
authorWim Taymans <wim.taymans@collabora.co.uk>
Fri, 4 Dec 2009 13:01:11 +0000 (14:01 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Fri, 4 Dec 2009 13:01:11 +0000 (14:01 +0100)
When the current granulepos is unknown and set to -1, don't try to add durations
to it.

ext/ogg/gstoggdemux.c

index a5b047c..5b1e6f1 100644 (file)
@@ -521,7 +521,8 @@ gst_ogg_demux_chain_peer (GstOggPad * pad, ogg_packet * packet)
     GST_BUFFER_OFFSET (buf) = 0;
     GST_BUFFER_OFFSET_END (buf) = -1;
   } else {
-    pad->current_granule += duration;
+    if (pad->current_granule != -1)
+      pad->current_granule += duration;
     if (packet->granulepos != -1) {
       pad->current_granule = gst_ogg_stream_granulepos_to_granule (&pad->map,
           packet->granulepos);