aboutsummaryrefslogtreecommitdiff
path: root/common/quicktime.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime.h')
-rw-r--r--common/quicktime.h93
1 files changed, 46 insertions, 47 deletions
diff --git a/common/quicktime.h b/common/quicktime.h
index 2bd461e389..cb2bed1202 100644
--- a/common/quicktime.h
+++ b/common/quicktime.h
@@ -88,23 +88,23 @@ protected:
DisposeAfterUse::Flag _disposeFileHandle;
- struct MOVatom {
+ struct Atom {
uint32 type;
uint32 offset;
uint32 size;
};
struct ParseTable {
- int (QuickTimeParser::*func)(MOVatom atom);
+ int (QuickTimeParser::*func)(Atom atom);
uint32 type;
};
- struct MOVstts {
+ struct TimeToSampleEntry {
int count;
int duration;
};
- struct MOVstsc {
+ struct SampleToChunkEntry {
uint32 first;
uint32 count;
uint32 id;
@@ -116,17 +116,17 @@ protected:
Common::Rational mediaRate;
};
- struct MOVStreamContext;
+ struct Track;
class SampleDesc {
public:
- SampleDesc(MOVStreamContext *parentStream, uint32 codecTag);
+ SampleDesc(Track *parentTrack, uint32 codecTag);
virtual ~SampleDesc() {}
uint32 getCodecTag() const { return _codecTag; }
protected:
- MOVStreamContext *_parentStream;
+ Track *_parentTrack;
uint32 _codecTag;
};
@@ -136,77 +136,76 @@ protected:
CODEC_TYPE_AUDIO
};
- struct MOVStreamContext {
- MOVStreamContext();
- ~MOVStreamContext();
-
- uint32 chunk_count;
- uint32 *chunk_offsets;
- int stts_count;
- MOVstts *stts_data;
- uint32 sample_to_chunk_sz;
- MOVstsc *sample_to_chunk;
- uint32 sample_size;
- uint32 sample_count;
- uint32 *sample_sizes;
- uint32 keyframe_count;
+ struct Track {
+ Track();
+ ~Track();
+
+ uint32 chunkCount;
+ uint32 *chunkOffsets;
+ int timeToSampleCount;
+ TimeToSampleEntry *timeToSample;
+ uint32 sampleToChunkCount;
+ SampleToChunkEntry *sampleToChunk;
+ uint32 sampleSize;
+ uint32 sampleCount;
+ uint32 *sampleSizes;
+ uint32 keyframeCount;
uint32 *keyframes;
- int32 time_scale;
+ int32 timeScale;
uint16 width;
uint16 height;
- CodecType codec_type;
+ CodecType codecType;
Common::Array<SampleDesc *> sampleDescs;
uint32 editCount;
EditListEntry *editList;
- Common::SeekableReadStream *extradata;
+ Common::SeekableReadStream *extraData;
- uint32 nb_frames;
+ uint32 frameCount;
uint32 duration;
- uint32 start_time;
+ uint32 startTime;
Common::Rational scaleFactorX;
Common::Rational scaleFactorY;
byte objectTypeMP4;
};
- virtual SampleDesc *readSampleDesc(MOVStreamContext *st, uint32 format) = 0;
+ virtual SampleDesc *readSampleDesc(Track *track, uint32 format) = 0;
const ParseTable *_parseTable;
bool _foundMOOV;
uint32 _timeScale;
uint32 _duration;
- uint32 _numStreams;
Common::Rational _scaleFactorX;
Common::Rational _scaleFactorY;
- MOVStreamContext *_streams[20];
+ Common::Array<Track *> _tracks;
uint32 _beginOffset;
Common::MacResManager *_resFork;
void initParseTable();
void init();
- int readDefault(MOVatom atom);
- int readLeaf(MOVatom atom);
- int readELST(MOVatom atom);
- int readHDLR(MOVatom atom);
- int readMDHD(MOVatom atom);
- int readMOOV(MOVatom atom);
- int readMVHD(MOVatom atom);
- int readTKHD(MOVatom atom);
- int readTRAK(MOVatom atom);
- int readSTCO(MOVatom atom);
- int readSTSC(MOVatom atom);
- int readSTSD(MOVatom atom);
- int readSTSS(MOVatom atom);
- int readSTSZ(MOVatom atom);
- int readSTTS(MOVatom atom);
- int readCMOV(MOVatom atom);
- int readWAVE(MOVatom atom);
- int readESDS(MOVatom atom);
+ int readDefault(Atom atom);
+ int readLeaf(Atom atom);
+ int readELST(Atom atom);
+ int readHDLR(Atom atom);
+ int readMDHD(Atom atom);
+ int readMOOV(Atom atom);
+ int readMVHD(Atom atom);
+ int readTKHD(Atom atom);
+ int readTRAK(Atom atom);
+ int readSTCO(Atom atom);
+ int readSTSC(Atom atom);
+ int readSTSD(Atom atom);
+ int readSTSS(Atom atom);
+ int readSTSZ(Atom atom);
+ int readSTTS(Atom atom);
+ int readCMOV(Atom atom);
+ int readWAVE(Atom atom);
+ int readESDS(Atom atom);
};
} // End of namespace Common