ext/dvdread/dvdreadsrc.c: If we can't read a nav packet, or it doesn't look like...
authorDavid Schleef <ds@schleef.org>
Mon, 25 Jun 2007 07:22:10 +0000 (07:22 +0000)
committerDavid Schleef <ds@schleef.org>
Mon, 25 Jun 2007 07:22:10 +0000 (07:22 +0000)
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c:
If we can't read a nav packet, or it doesn't look like a nav
packet, that's an error.  Previous behavior was to look at
the next packet; I can't find any justification for doing that.
Fixes: #358891.

ChangeLog
ext/dvdread/dvdreadsrc.c

index 67f01a9..b576fcd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-06-25  David Schleef  <ds@schleef.org>
+
+       * ext/dvdread/dvdreadsrc.c:
+         If we can't read a nav packet, or it doesn't look like a nav
+         packet, that's an error.  Previous behavior was to look at
+         the next packet; I can't find any justification for doing that.
+         Fixes: #358891.
+
 2007-06-24  Thomas Vander Stichele  <thomas at apestaart dot org>
 
        * po/it.po:
index c766076..38f2579 100644 (file)
@@ -777,21 +777,21 @@ again:
   }
 
   /* read NAV packet */
-nav_retry:
-
   len = DVDReadBlocks (src->dvd_title, src->cur_pack, 1, oneblock);
   if (len == 0)
     goto read_error;
 
   if (!gst_dvd_read_src_is_nav_pack (oneblock)) {
-    GST_LOG_OBJECT (src, "Skipping nav packet @ pack %d", src->cur_pack);
-    src->cur_pack++;
-    goto nav_retry;
+    GST_LOG_OBJECT (src, "Expected nav packet @ pack %d", src->cur_pack);
+    goto read_error;
   }
 
   /* parse the contained dsi packet */
   navRead_DSI (&dsi_pack, &oneblock[DSI_START_BYTE]);
-  g_assert (src->cur_pack == dsi_pack.dsi_gi.nv_pck_lbn);
+  if (src->cur_pack != dsi_pack.dsi_gi.nv_pck_lbn) {
+    GST_ERROR ("src->cur_pack = %d, dsi_pack.dsi_gi.nv_pck_lbn = %d",
+        src->cur_pack, dsi_pack.dsi_gi.nv_pck_lbn);
+  }
 
   /* determine where we go next. These values are the ones we
    * mostly care about */