diff options
author | Matthew Hoops | 2012-03-30 13:27:20 -0400 |
---|---|---|
committer | Matthew Hoops | 2012-03-30 13:39:48 -0400 |
commit | 7c4787e0dcef994999185faf594faf748d5f2ad8 (patch) | |
tree | 9827e5012d1316a31ebbde0f62b74c618ac4494f | |
parent | 8a4da1e6b09db504bb7a376d3d2f8d95a4c6096c (diff) | |
download | scummvm-rg350-7c4787e0dcef994999185faf594faf748d5f2ad8.tar.gz scummvm-rg350-7c4787e0dcef994999185faf594faf748d5f2ad8.tar.bz2 scummvm-rg350-7c4787e0dcef994999185faf594faf748d5f2ad8.zip |
COMMON: Read in QuickTime extra data for SVQ3
-rw-r--r-- | common/quicktime.cpp | 13 | ||||
-rw-r--r-- | common/quicktime.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/common/quicktime.cpp b/common/quicktime.cpp index fb01e8de28..ae009da805 100644 --- a/common/quicktime.cpp +++ b/common/quicktime.cpp @@ -164,6 +164,7 @@ void QuickTimeParser::initParseTable() { { &QuickTimeParser::readCMOV, MKTAG('c', 'm', 'o', 'v') }, { &QuickTimeParser::readWAVE, MKTAG('w', 'a', 'v', 'e') }, { &QuickTimeParser::readESDS, MKTAG('e', 's', 'd', 's') }, + { &QuickTimeParser::readSMI, MKTAG('S', 'M', 'I', ' ') }, { 0, 0 } }; @@ -761,6 +762,18 @@ int QuickTimeParser::readESDS(Atom atom) { return 0; } +int QuickTimeParser::readSMI(Atom atom) { + if (_tracks.empty()) + return 0; + + Track *track = _tracks.back(); + + // This atom just contains SVQ3 extra data + track->extraData = _fd->readStream(atom.size); + + return 0; +} + void QuickTimeParser::close() { for (uint32 i = 0; i < _tracks.size(); i++) delete _tracks[i]; diff --git a/common/quicktime.h b/common/quicktime.h index efd2adbd21..12d79beb7b 100644 --- a/common/quicktime.h +++ b/common/quicktime.h @@ -205,6 +205,7 @@ protected: int readCMOV(Atom atom); int readWAVE(Atom atom); int readESDS(Atom atom); + int readSMI(Atom atom); }; } // End of namespace Common |