summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibaut Mattern <tmattern@users.sourceforge.net>2006-01-05 21:34:55 +0000
committerThibaut Mattern <tmattern@users.sourceforge.net>2006-01-05 21:34:55 +0000
commiteebe40e45c021ad8eac59277e63baa1d24a01c02 (patch)
treea774d1aaa4e8fe7cc11a39c1ffa2832b06c20ad5
parentfeb563384bc37729b57086bbf6cc1170f1e63eae (diff)
downloadxine-lib-eebe40e45c021ad8eac59277e63baa1d24a01c02.tar.gz
xine-lib-eebe40e45c021ad8eac59277e63baa1d24a01c02.tar.bz2
Don't stop when an empty chunk is encountered.
CVS patchset: 7830 CVS date: 2006/01/05 21:34:55
-rw-r--r--src/demuxers/demux_avi.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/demuxers/demux_avi.c b/src/demuxers/demux_avi.c
index 4cf6c5b31..4f8f01e30 100644
--- a/src/demuxers/demux_avi.c
+++ b/src/demuxers/demux_avi.c
@@ -19,7 +19,7 @@
*/
/*
- * $Id: demux_avi.c,v 1.221 2005/11/28 12:24:57 valtri Exp $
+ * $Id: demux_avi.c,v 1.222 2006/01/05 21:34:55 tmattern Exp $
*
* demultiplexer for avi streams
*
@@ -782,15 +782,10 @@ static avi_t *AVI_init(demux_avi_t *this) {
n = PAD_EVEN(n);
next_chunk = this->idx_grow.nexttagoffset + 8 + n;
- if (n == 0) {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG, "invalid chunk length (0 byte)\n");
- break;
- }
-
lprintf("chunk: %c%c%c%c, size: %" PRId64 "\n",
data[0], data[1], data[2], data[3], (int64_t)n);
- if(strncasecmp(data,"LIST",4) == 0) {
+ if((strncasecmp(data,"LIST",4) == 0) && (n >= 4)) {
if( this->input->read(this->input, data,4) != 4 ) ERR_EXIT(AVI_ERR_READ);
n -= 4;