Add workaround for some broken avi files with 0 length chunks. See issue 4620

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33261 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
David McPaul
2009-09-24 10:13:20 +00:00
parent e9503e26f5
commit d88759d47a
@@ -359,7 +359,14 @@ OpenDMLParser::Parse()
size = maxsize;
}
if (size == 0 && fourcc == FOURCC('R','I','F','F')) {
//Calculate size from filesize
size = fSize - 8;
ERROR("OpenDMLParser::Parse: Warning chunk '"FOURCC_FORMAT"', size is 0 calculating as %lu\n", FOURCC_PARAM(fourcc), size);
}
if (size == 0) {
// size is still 0
ERROR("OpenDMLParser::Parse: Error: chunk of size 0 found\n");
return B_ERROR;
}
@@ -455,8 +462,8 @@ OpenDMLParser::ParseChunk_AVI(int number, uint64 start, uint32 size)
}
if (Chunksize == 0) {
TRACE("OpenDMLParser::ParseChunk_AVI: chunk '"FOURCC_FORMAT"' has size 0\n", FOURCC_PARAM(Chunkfcc));
return B_OK;
ERROR("OpenDMLParser::ParseChunk_AVI: chunk '"FOURCC_FORMAT"' has size 0 assuming %lu\n", FOURCC_PARAM(Chunkfcc), maxsize);
Chunksize = maxsize; // Assume maxsize
}
if (Chunkfcc == FOURCC('L','I','S','T')) {