diff options
author | richiesams | 2013-08-17 09:50:55 -0500 |
---|---|---|
committer | richiesams | 2013-08-18 19:52:55 -0500 |
commit | f2477610cf1c776936e7c959e490120823845897 (patch) | |
tree | d14842b353640c0c8b39b5e754956abdb040a160 /video | |
parent | bbb8598a3e62e80b1a5efc5de4598276770ca6f1 (diff) | |
download | scummvm-rg350-f2477610cf1c776936e7c959e490120823845897.tar.gz scummvm-rg350-f2477610cf1c776936e7c959e490120823845897.tar.bz2 scummvm-rg350-f2477610cf1c776936e7c959e490120823845897.zip |
VIDEO: Add AVI LIST handling for ZVision custom types
Diffstat (limited to 'video')
-rw-r--r-- | video/avi_decoder.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/video/avi_decoder.cpp b/video/avi_decoder.cpp index ff41099e69..beb68fc969 100644 --- a/video/avi_decoder.cpp +++ b/video/avi_decoder.cpp @@ -65,9 +65,10 @@ namespace Video { #define ID_VEDT MKTAG('v','e','d','t') #define ID_IDX1 MKTAG('i','d','x','1') #define ID_STRD MKTAG('s','t','r','d') -//#define ID_INFO MKTAG('I','N','F','O') +#define ID_INFO MKTAG('I','N','F','O') #define ID_ISFT MKTAG('I','S','F','T') #define ID_DISP MKTAG('D','I','S','P') +#define ID_PRMI MKTAG('P','R','M','I') // Codec tags #define ID_RLE MKTAG('R','L','E',' ') @@ -174,15 +175,25 @@ void AVIDecoder::handleList(uint32 listSize) { debug(0, "Found LIST of type %s", tag2str(listType)); - if (listType == ID_MOVI) { - // If we found the movie block + switch (listType) { + case ID_MOVI: // Movie List + // We found the movie block _foundMovieList = true; _movieListStart = curPos; _fileStream->skip(listSize); return; - } else if (listType == ID_HDRL) { + case ID_HDRL: // Header List // Mark the header as decoded _decodedHeader = true; + break; + case ID_INFO: // Metadata + case ID_PRMI: // Unknown (ZEngine) + // Ignore metadata + _fileStream->skip(listSize); + return; + case ID_STRL: // Stream list + default: // (Just hope we can parse it!) + break; } while ((_fileStream->pos() - curPos) < listSize) |