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"
29class 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
65 bool streamSkipFullFrameCompressedFill();
68 int32 _streamSeekOffset;
69 uint32 _streamVideoIndex;
70 uint32 _streamAudioIndex;
72 struct IndexCacheEntry {
80 class StreamVideoTrack :
public VideoTrack {
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; }
103 void setEndOfTrack() { _endOfTrack =
true; }
109 uint32 _nextFrameStartTime;
111 byte _palette[3 * 256];
112 mutable bool _dirtyPalette;
113 uint16 _width, _height;
115 uint16 _regularFrameDelay;
119 class StreamAudioTrack :
public AudioTrack {
122 ~StreamAudioTrack()
override;
132 uint32 _totalAudioQueued;
135 uint32 getTotalAudioQueued()
const {
return _totalAudioQueued; }
138 int16 decodeSample(uint8 dataNibble);
145 StreamVideoTrack *_videoTrack;
146 StreamAudioTrack *_audioTrack;
Definition: movie_decoder.h:53
void readNextPacket() override
bool loadStream(Common::SeekableReadStream *stream) override
Definition: audiostream.h:50
SoundType
Definition: mixer.h:73
Definition: audiostream.h:370
Definition: video_decoder.h:53
Graphics::PixelFormat getPixelFormat() const
bool hasDirtyPalette() const
Definition: video_decoder.h:337
virtual uint16 getHeight() const
const byte * getPalette()
virtual const Graphics::Surface * decodeNextFrame()
virtual uint16 getWidth() const
Definition: algorithm.h:29