diff options
-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 |