diff options
author | clone2727 | 2012-12-13 15:49:40 -0800 |
---|---|---|
committer | clone2727 | 2012-12-13 15:49:40 -0800 |
commit | 91317c3630f9bff164d8c747ef886b52a85e3a9b (patch) | |
tree | bb66e8e1acf7bd9315dc7307184b77209adb8d51 /common | |
parent | a0863dfb3f3998f34c591f3007efe9f9f0f7f311 (diff) | |
parent | 17f923532533c8a094e1bf0a0efa7369b20ef48a (diff) | |
download | scummvm-rg350-91317c3630f9bff164d8c747ef886b52a85e3a9b.tar.gz scummvm-rg350-91317c3630f9bff164d8c747ef886b52a85e3a9b.tar.bz2 scummvm-rg350-91317c3630f9bff164d8c747ef886b52a85e3a9b.zip |
Merge pull request #293 from clone2727/qtmidi
Add support for QuickTime Music playback
Diffstat (limited to 'common')
-rw-r--r-- | common/quicktime.cpp | 6 | ||||
-rw-r--r-- | common/quicktime.h | 5 |
2 files changed, 8 insertions, 3 deletions
diff --git a/common/quicktime.cpp b/common/quicktime.cpp index 173d3c6a97..5b3659b0d5 100644 --- a/common/quicktime.cpp +++ b/common/quicktime.cpp @@ -165,6 +165,8 @@ void QuickTimeParser::initParseTable() { { &QuickTimeParser::readWAVE, MKTAG('w', 'a', 'v', 'e') }, { &QuickTimeParser::readESDS, MKTAG('e', 's', 'd', 's') }, { &QuickTimeParser::readSMI, MKTAG('S', 'M', 'I', ' ') }, + { &QuickTimeParser::readDefault, MKTAG('g', 'm', 'h', 'd') }, + { &QuickTimeParser::readLeaf, MKTAG('g', 'm', 'i', 'n') }, { 0, 0 } }; @@ -477,6 +479,8 @@ int QuickTimeParser::readHDLR(Atom atom) { track->codecType = CODEC_TYPE_VIDEO; else if (type == MKTAG('s', 'o', 'u', 'n')) track->codecType = CODEC_TYPE_AUDIO; + else if (type == MKTAG('m', 'u', 's', 'i')) + track->codecType = CODEC_TYPE_MIDI; _fd->readUint32BE(); // component manufacture _fd->readUint32BE(); // component flags @@ -540,7 +544,7 @@ int QuickTimeParser::readSTSD(Atom atom) { _fd->readUint16BE(); // reserved _fd->readUint16BE(); // index - track->sampleDescs[i] = readSampleDesc(track, format); + track->sampleDescs[i] = readSampleDesc(track, format, size - 16); debug(0, "size=%d 4CC= %s codec_type=%d", size, tag2str(format), track->codecType); diff --git a/common/quicktime.h b/common/quicktime.h index 641718e13a..caa92578b1 100644 --- a/common/quicktime.h +++ b/common/quicktime.h @@ -120,7 +120,8 @@ protected: enum CodecType { CODEC_TYPE_MOV_OTHER, CODEC_TYPE_VIDEO, - CODEC_TYPE_AUDIO + CODEC_TYPE_AUDIO, + CODEC_TYPE_MIDI }; struct Track { @@ -161,7 +162,7 @@ protected: byte objectTypeMP4; }; - virtual SampleDesc *readSampleDesc(Track *track, uint32 format) = 0; + virtual SampleDesc *readSampleDesc(Track *track, uint32 format, uint32 descSize) = 0; uint32 _timeScale; uint32 _duration; |