aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorclone27272012-12-13 15:49:40 -0800
committerclone27272012-12-13 15:49:40 -0800
commit91317c3630f9bff164d8c747ef886b52a85e3a9b (patch)
treebb66e8e1acf7bd9315dc7307184b77209adb8d51 /common
parenta0863dfb3f3998f34c591f3007efe9f9f0f7f311 (diff)
parent17f923532533c8a094e1bf0a0efa7369b20ef48a (diff)
downloadscummvm-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.cpp6
-rw-r--r--common/quicktime.h5
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;