22#ifndef GRIM_SMUSH_DECODER_H
23#define GRIM_SMUSH_DECODER_H
25#include "audio/audiostream.h"
27#include "video/video_decoder.h"
29#include "graphics/surface.h"
32class QueuingAudioStream;
46 int getX()
const {
return _videoTrack->_x; }
47 int getY()
const {
return _videoTrack->_y; }
48 void setLooping(
bool l);
57 void handleFrameDemo();
59 bool handleFramesHeader();
66 SmushVideoTrack(
int width,
int height,
int fps,
int numFrames,
bool is16Bit);
69 uint16
getWidth()
const override {
return _width; }
70 uint16
getHeight()
const override {
return _height; }
73 void setCurFrame(
int frame) { _curFrame = frame; }
76 void setMsPerFrame(
int ms);
81 void setFrameStart(
int frame);
88 const byte *
getPalette()
const override { _dirtyPalette =
false;
return _palette; }
91 byte *getPal() { _dirtyPalette =
true;
return _palette; }
94 void convertDemoFrame();
98 int16 _deltaPal[0x300];
99 mutable bool _dirtyPalette;
119 void skipSamples(
int samples);
120 inline int getRate()
const {
return _queueStream->
getRate(); }
127 byte _IACToutput[4096];
136 SmushAudioTrack *_audioTrack;
137 SmushVideoTrack *_videoTrack;
Definition: audiostream.h:50
virtual int getRate() const =0
SoundType
Definition: mixer.h:73
Definition: audiostream.h:370
Definition: timestamp.h:83
Definition: rational.h:40
Definition: blocky16.h:29
Definition: smush_decoder.h:111
Audio::AudioStream * getAudioStream() const override
Definition: smush_decoder.h:116
bool isSeekable() const override
Definition: smush_decoder.h:117
bool seek(const Audio::Timestamp &time) override
Definition: smush_decoder.h:64
Common::Rational getFrameRate() const override
Definition: smush_decoder.h:75
const byte * getPalette() const override
Definition: smush_decoder.h:88
int getCurFrame() const override
Definition: smush_decoder.h:72
uint16 getWidth() const override
Definition: smush_decoder.h:69
bool isSeekable() const override
Definition: smush_decoder.h:79
bool hasDirtyPalette() const override
Definition: smush_decoder.h:89
Graphics::PixelFormat getPixelFormat() const override
Definition: smush_decoder.h:71
Graphics::Surface * decodeNextFrame() override
int getFrameCount() const override
Definition: smush_decoder.h:74
uint16 getHeight() const override
Definition: smush_decoder.h:70
bool seek(const Audio::Timestamp &time) override
Definition: smush_decoder.h:80
Definition: smush_decoder.h:41
bool isRewindable() const override
Definition: smush_decoder.h:49
bool loadStream(Common::SeekableReadStream *stream) override
bool seekIntern(const Audio::Timestamp &time) override
const Graphics::Surface * decodeNextFrame() override
bool isSeekable() const override
Definition: smush_decoder.h:50
Definition: video_decoder.h:759
Definition: video_decoder.h:734
Definition: video_decoder.h:53