From 7c4787e0dcef994999185faf594faf748d5f2ad8 Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Fri, 30 Mar 2012 13:27:20 -0400 Subject: COMMON: Read in QuickTime extra data for SVQ3 --- common/quicktime.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'common/quicktime.cpp') 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]; -- cgit v1.2.3 From 68e1a0418347ed79e3fe1bc9797b4ac32365b960 Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Fri, 30 Mar 2012 14:40:14 -0400 Subject: AUDIO: Fix QDM2 extra data parsing --- common/quicktime.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'common/quicktime.cpp') diff --git a/common/quicktime.cpp b/common/quicktime.cpp index ae009da805..5176f83a35 100644 --- a/common/quicktime.cpp +++ b/common/quicktime.cpp @@ -688,7 +688,7 @@ int QuickTimeParser::readWAVE(Atom atom) { return -1; if (track->sampleDescs[0]->getCodecTag() == MKTAG('Q', 'D', 'M', '2')) // Read extra data for QDM2 - track->extraData = _fd->readStream(atom.size - 8); + track->extraData = _fd->readStream(atom.size); else if (atom.size > 8) return readDefault(atom); else -- cgit v1.2.3