gst/avi/gstavidemux.c: Prevent out of bounds array access when scrubbing towards...
authorTim-Philipp Müller <tim@centricular.net>
Tue, 13 Jun 2006 09:54:26 +0000 (09:54 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Tue, 13 Jun 2006 09:54:26 +0000 (09:54 +0000)
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_handle_seek):
Prevent out of bounds array access when scrubbing towards
the end of the file between the last index entry and the
end. Fixes occasional 'start <= stop' newsegment event
assertions when scrubbing in MJPEG files.

ChangeLog
gst/avi/gstavidemux.c

index 2991b51..0973ad8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-06-13  Tim-Philipp Müller  <tim at centricular dot net>
+
+       * gst/avi/gstavidemux.c: (gst_avi_demux_handle_seek):
+         Prevent out of bounds array access when scrubbing towards
+         the end of the file between the last index entry and the
+         end. Fixes occasional 'start <= stop' newsegment event
+         assertions when scrubbing in MJPEG files.
+
 2006-06-12  Tim-Philipp Müller  <tim at centricular dot net>
 
        * tests/check/elements/.cvsignore:
index 5d26eac..392ce79 100644 (file)
@@ -2372,6 +2372,8 @@ gst_avi_demux_handle_seek (GstAviDemux * avi, gboolean update)
       GST_WARNING_OBJECT (avi,
           "Couldn't find AviIndexEntry for time:%" GST_TIME_FORMAT,
           GST_TIME_ARGS (avi->segment.start));
+      if (avi->current_entry >= avi->index_size && avi->index_size > 0)
+        avi->current_entry = avi->index_size - 1;
     }
   }