diff options
Diffstat (limited to 'gst/avi/gstavidemux.c')
-rw-r--r-- | gst/avi/gstavidemux.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 6e24a9984..efb2f3eb9 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -3378,7 +3378,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 { @@ -3388,7 +3390,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 { |