aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Hoops2012-03-30 13:27:20 -0400
committerMatthew Hoops2012-03-30 13:39:48 -0400
commit7c4787e0dcef994999185faf594faf748d5f2ad8 (patch)
tree9827e5012d1316a31ebbde0f62b74c618ac4494f
parent8a4da1e6b09db504bb7a376d3d2f8d95a4c6096c (diff)
downloadscummvm-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.cpp13
-rw-r--r--common/quicktime.h1
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