ext/ogg/gstoggdemux.c: Fix sync on broken files. Fixes #158976
authorRonald Bultje <rbultje@ronald.bitfreak.net>
Tue, 23 Nov 2004 15:24:28 +0000 (15:24 +0000)
committerThomas Vander Stichele <thomas@apestaart.org>
Tue, 23 Nov 2004 15:24:28 +0000 (15:24 +0000)
Original commit message from CVS:
patch by: Ronald Bultje <rbultje@ronald.bitfreak.net>
* ext/ogg/gstoggdemux.c:
Fix sync on broken files.  Fixes #158976

ChangeLog
ext/ogg/gstoggdemux.c

index 71d9116b0b3133c89fc018bb434d0743ffbde089..95f2221fa6ffd337decf33a2f5d2b1598a29a33f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>
+
+       patch by: Ronald Bultje <rbultje@ronald.bitfreak.net>
+       * ext/ogg/gstoggdemux.c:
+         Fix sync on broken files.  Fixes #158976
+
 2004-11-23  Thomas Vander Stichele  <thomas at apestaart dot org>
 
        patch by: Edward Hervey <bilboed@bilboed.com>
index 70b23621768bd51572a6037bc0608ab38d8d57f8..b8d88e55479c6f4a38fc450f2f3bab32e3ceead1 100644 (file)
@@ -1387,11 +1387,6 @@ gst_ogg_demux_push (GstOggDemux * ogg, ogg_page * page)
         gint64 position, diff;
         gdouble ratio;
 
-        if (ogg->seek_try > 5) {
-          GST_DEBUG ("Seeking took too long, continuing with current page");
-          goto play;
-        }
-
         /* see if we reached the destination position when seeking */
         position = get_relative (ogg, cur, ogg_page_granulepos (page),
             GST_FORMAT_TIME);
@@ -1412,6 +1407,13 @@ gst_ogg_demux_push (GstOggDemux * ogg, ogg_page * page)
           goto play;
         }
 
+        /* not too long */
+        if (ogg->seek_try > 5) {
+          GST_DEBUG ("Seeking took too long, continuing with current page");
+          ogg->seek_to = position;
+          goto play;
+        }
+
         /* seek again! yay */
         ratio = (gdouble) ogg->seek_to / position;
         ogg->seek_offset = ogg->seek_offset * ratio;