22 #ifndef ACCESS_VIDEO_MOVIE_DECODER_H 23 #define ACCESS_VIDEO_MOVIE_DECODER_H 25 #include "video/video_decoder.h" 26 #include "audio/audiostream.h" 29 class SeekableReadStream;
39 kVIDMovieChunkId_FullFrame = 0x00,
40 kVIDMovieChunkId_FullFrameCompressed = 0x01,
41 kVIDMovieChunkId_Palette = 0x02,
42 kVIDMovieChunkId_FullFrameCompressedFill = 0x03,
43 kVIDMovieChunkId_PartialFrameCompressed = 0x04,
44 kVIDMovieChunkId_EndOfFile = 0x14,
45 kVIDMovieChunkId_AudioFirstChunk = 0x7C,
46 kVIDMovieChunkId_Audio = 0x7D
59 void close()
override;
62 void readNextPacket()
override;
65 bool streamSkipFullFrameCompressedFill();
68 int32 _streamSeekOffset;
69 uint32 _streamVideoIndex;
70 uint32 _streamAudioIndex;
72 struct IndexCacheEntry {
82 StreamVideoTrack(uint32 width, uint32 height, uint16 regularFrameDelay);
83 ~StreamVideoTrack()
override;
85 bool endOfTrack()
const override;
87 uint16 getWidth()
const override {
return _width; }
88 uint16 getHeight()
const override {
return _height; }
90 int getCurFrame()
const override {
return _curFrame; }
91 void setNextFrameStartTime(uint32 nextFrameStartTime) { _nextFrameStartTime = nextFrameStartTime; }
92 uint32 getNextFrameStartTime()
const override {
return _nextFrameStartTime; }
95 const byte *getPalette()
const override;
96 bool hasDirtyPalette()
const override;
103 void setEndOfTrack() { _endOfTrack =
true; }
109 uint32 _nextFrameStartTime;
111 byte _palette[3 * 256];
112 mutable bool _dirtyPalette;
113 uint16 _width, _height;
115 uint16 _regularFrameDelay;
122 ~StreamAudioTrack()
override;
132 uint32 _totalAudioQueued;
135 uint32 getTotalAudioQueued()
const {
return _totalAudioQueued; }
138 int16 decodeSample(uint8 dataNibble);
145 StreamVideoTrack *_videoTrack;
146 StreamAudioTrack *_audioTrack;
Definition: video_decoder.h:700
SoundType
Definition: mixer.h:62
Definition: video_decoder.h:52
Definition: algorithm.h:29
Definition: audiostream.h:50
Definition: audiostream.h:370
Definition: movie_decoder.h:32
Definition: movie_decoder.h:53
Definition: video_decoder.h:571