diff options
Diffstat (limited to 'common/quicktime.h')
-rw-r--r-- | common/quicktime.h | 93 |
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 |