diff options
author | Mark Nauwelaerts <mnauw@users.sourceforge.net> | 2013-02-23 14:34:35 +0100 |
---|---|---|
committer | Mark Nauwelaerts <mnauw@users.sourceforge.net> | 2013-02-24 19:55:19 +0100 |
commit | f49bf31c6b700306f2a096b83e201ac2f7da43b4 (patch) | |
tree | ee4c4bc5a427fca00ad6986af92f6822f37fcf74 | |
parent | a158d6111f1d42024bc314d65633615869a5fdcd (diff) |
avidemux: push mode: handle some more 0-size buffer cases
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684944
-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 4b118bfa8..4bdde678b 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -3387,7 +3387,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 { @@ -3397,7 +3399,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 { |