avidemux: push mode: handle some more 0-size buffer cases
authorMark Nauwelaerts <mnauw@users.sourceforge.net>
Sat, 23 Feb 2013 13:34:35 +0000 (14:34 +0100)
committerMark Nauwelaerts <mnauw@users.sourceforge.net>
Sun, 24 Feb 2013 18:28:07 +0000 (19:28 +0100)
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684944

gst/avi/gstavidemux.c

index d0df79e..49364eb 100644 (file)
@@ -3393,7 +3393,9 @@ gst_avi_demux_stream_header_push (GstAviDemux * avi)
               }
               break;
             default:
-              if (gst_avi_demux_peek_chunk (avi, &tag, &size)) {
+              if (gst_avi_demux_peek_chunk (avi, &tag, &size) || size == 0) {
+                /* accept 0 size buffer here */
+                avi->abort_buffering = FALSE;
                 avi->offset += 8 + GST_ROUND_UP_2 (size);
                 gst_adapter_flush (avi->adapter, 8 + GST_ROUND_UP_2 (size));
               } else {
@@ -3403,7 +3405,9 @@ gst_avi_demux_stream_header_push (GstAviDemux * avi)
               break;
           }
         } else {
-          if (gst_avi_demux_peek_chunk (avi, &tag, &size)) {
+          if (gst_avi_demux_peek_chunk (avi, &tag, &size) || size == 0) {
+            /* accept 0 size buffer here */
+            avi->abort_buffering = FALSE;
             avi->offset += 8 + GST_ROUND_UP_2 (size);
             gst_adapter_flush (avi->adapter, 8 + GST_ROUND_UP_2 (size));
           } else {