ext/ogg/gstoggdemux.c: Fix position for discont if we're close as well. Nitpicking...
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>
Thu, 25 Nov 2004 20:31:22 +0000 (20:31 +0000)
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>
Thu, 25 Nov 2004 20:31:22 +0000 (20:31 +0000)
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_push):
Fix position for discont if we're close as well. Nitpicking, but
saves a few milliseconds of extra waiting or skipping.

ChangeLog
ext/ogg/gstoggdemux.c

index 34df79b..e6cf91c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2004-11-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
 
+       * ext/ogg/gstoggdemux.c: (gst_ogg_demux_push):
+         Fix position for discont if we're close as well. Nitpicking, but
+         saves a few milliseconds of extra waiting or skipping.
+
+2004-11-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
+
        * gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter):
          We sometimes need parsers for playback, so add those too.
 
index b8d88e5..af07f9b 100644 (file)
@@ -614,10 +614,12 @@ gst_ogg_demux_src_event (GstPad * pad, GstEvent * event)
 
       GST_OGG_SET_STATE (ogg, GST_OGG_STATE_SEEK);
       FOR_PAD_IN_CURRENT_CHAIN (ogg, pad,
-          pad->flags |= GST_OGG_PAD_NEEDS_DISCONT;);
+          pad->flags |= GST_OGG_PAD_NEEDS_DISCONT;
+          );
       if (GST_EVENT_SEEK_FLAGS (event) & GST_SEEK_FLAG_FLUSH) {
         FOR_PAD_IN_CURRENT_CHAIN (ogg, pad,
-            pad->flags |= GST_OGG_PAD_NEEDS_FLUSH;);
+            pad->flags |= GST_OGG_PAD_NEEDS_FLUSH;
+            );
       }
       GST_DEBUG_OBJECT (ogg,
           "initiating seeking to format %d, offset %" G_GUINT64_FORMAT, format,
@@ -692,7 +694,8 @@ gst_ogg_demux_handle_event (GstPad * pad, GstEvent * event)
       gst_event_unref (event);
       GST_FLAG_UNSET (ogg, GST_OGG_FLAG_WAIT_FOR_DISCONT);
       FOR_PAD_IN_CURRENT_CHAIN (ogg, pad,
-          pad->flags |= GST_OGG_PAD_NEEDS_DISCONT;);
+          pad->flags |= GST_OGG_PAD_NEEDS_DISCONT;
+          );
       break;
     default:
       gst_pad_event_default (pad, event);
@@ -978,7 +981,8 @@ _find_chain_get_unknown_part (GstOggDemux * ogg, gint64 * start, gint64 * end)
   *end = G_MAXINT64;
 
   g_assert (ogg->current_chain >= 0);
-  FOR_PAD_IN_CURRENT_CHAIN (ogg, pad, *start = MAX (*start, pad->end_offset););
+  FOR_PAD_IN_CURRENT_CHAIN (ogg, pad, *start = MAX (*start, pad->end_offset);
+      );
 
   if (ogg->setup_state == SETUP_FIND_LAST_CHAIN) {
     *end = gst_file_pad_get_length (ogg->sinkpad);
@@ -1107,7 +1111,8 @@ _find_streams_check (GstOggDemux * ogg)
   } else {
     endpos = G_MAXINT64;
     FOR_PAD_IN_CHAIN (ogg, pad, ogg->chains->len - 1,
-        endpos = MIN (endpos, pad->start_offset););
+        endpos = MIN (endpos, pad->start_offset);
+        );
   }
   if (!ogg->seek_skipped || gst_ogg_demux_position (ogg) >= endpos) {
     /* have we found the endposition for all streams yet? */
@@ -1404,6 +1409,7 @@ gst_ogg_demux_push (GstOggDemux * ogg, ogg_page * page)
         if (diff < GST_SECOND) {
           GST_DEBUG ("Close enough (%" GST_TIME_FORMAT " seconds off)",
               GST_TIME_ARGS (diff));
+          ogg->seek_to = position;
           goto play;
         }