22 #ifndef VIDEO_DECODER_H 23 #define VIDEO_DECODER_H 25 #include "audio/mixer.h" 26 #include "audio/timestamp.h" 27 #include "common/array.h" 28 #include "common/path.h" 29 #include "common/rational.h" 30 #include "common/str.h" 31 #include "graphics/pixelformat.h" 32 #include "image/codec-options.h" 36 class RewindableAudioStream;
37 class SeekableAudioStream;
41 class SeekableReadStream;
96 bool isVideoLoaded()
const;
143 bool isPlaying()
const;
149 virtual bool isRewindable()
const;
159 virtual bool rewind();
165 virtual bool isSeekable()
const;
186 virtual bool seekToFrame(uint frame);
199 void pauseVideo(
bool pause);
224 void setEndFrame(uint frame);
234 void resetStartTime();
245 bool endOfVideo()
const;
251 int getCurFrame()
const;
257 int getCurFrameDelay()
const;
263 uint32 getFrameCount()
const;
279 uint32 getTime()
const;
295 virtual uint16 getWidth()
const;
306 virtual uint16 getHeight()
const;
332 const byte *getPalette();
343 void delayMillis(uint msecs);
348 uint32 getTimeToNextFrame()
const;
355 bool needsUpdate()
const;
384 bool setReverse(
bool reverse);
403 bool setDitheringPalette(
const byte *palette);
431 virtual void setVideoCodecAccuracy(Image::CodecAccuracy accuracy);
450 void setVolume(byte volume);
465 void setBalance(int8 balance);
499 bool setAudioTrack(
int index);
504 uint getAudioTrackCount()
const;
528 virtual TrackType getTrackType()
const = 0;
533 virtual bool endOfTrack()
const = 0;
541 virtual bool isRewindable()
const;
551 virtual bool rewind();
568 void pause(
bool shouldPause);
601 virtual bool endOfTrack()
const;
606 virtual uint16 getWidth()
const = 0;
611 virtual uint16 getHeight()
const = 0;
633 virtual int getCurFrame()
const = 0;
657 virtual uint32 getNextFrameStartTime()
const = 0;
718 uint32 getNextFrameStartTime()
const;
745 virtual bool endOfTrack()
const;
767 void setVolume(byte volume);
777 void setRate(uint32 rate);
793 void setBalance(int8 balance);
809 uint32 getRunningTime()
const;
814 void setMute(
bool mute);
817 void pauseIntern(
bool shouldPause);
904 void resetPauseStartTime();
923 void addTrack(
Track *track,
bool isExternal =
false);
937 Track *getTrack(uint track);
944 const Track *getTrack(uint track)
const;
952 bool endOfVideoTracks()
const;
980 void eraseTrack(
Track *track);
1010 uint getNumTracks() {
return _tracks.size(); }
1015 TrackList _internalTracks;
1016 TrackList _externalTracks;
1025 mutable bool _dirtyPalette;
1026 const byte *_palette;
1030 bool _canSetDefaultFormat;
1038 bool hasFramesLeft()
const;
1039 bool hasAudio()
const;
1046 Image::CodecAccuracy _videoCodecAccuracy;
1050 uint32 _pauseStartTime;
virtual AudioTrack * getAudioTrack(int index)
Definition: video_decoder.h:1008
byte getVolume() const
Definition: video_decoder.h:441
TrackListIterator getTrackListBegin()
Definition: video_decoder.h:970
Definition: video_decoder.h:511
byte getVolume() const
Definition: video_decoder.h:762
virtual bool hasDirtyPalette() const
Definition: video_decoder.h:672
int8 getBalance() const
Definition: video_decoder.h:456
Definition: video_decoder.h:713
Common::Array< Track * > TrackList
Definition: video_decoder.h:964
virtual bool useAudioSync() const
Definition: video_decoder.h:930
virtual int getFrameCount() const
Definition: video_decoder.h:651
Definition: video_decoder.h:738
T * iterator
Definition: array.h:54
Definition: timestamp.h:83
virtual bool supportsAudioTrackSwitching() const
Definition: video_decoder.h:998
virtual bool isSeekable() const
Definition: video_decoder.h:556
Definition: rational.h:40
Definition: video_decoder.h:883
virtual int getCurFrameDelay() const
Definition: video_decoder.h:640
Audio::Timestamp getEndTime() const
Definition: video_decoder.h:229
Definition: audiostream.h:212
virtual bool setReverse(bool reverse)
Definition: video_decoder.h:690
uint32 getRate() const
Definition: video_decoder.h:772
void setSoundType(Audio::Mixer::SoundType soundType)
Definition: video_decoder.h:803
SoundType
Definition: mixer.h:73
TrackType getTrackType() const
Definition: video_decoder.h:600
Definition: video_decoder.h:53
virtual void pauseIntern(bool shouldPause)
Definition: video_decoder.h:586
bool isPaused() const
Definition: video_decoder.h:573
Definition: algorithm.h:29
Definition: formatinfo.h:28
TrackType
Definition: video_decoder.h:519
Definition: audiostream.h:50
bool hasDirtyPalette() const
Definition: video_decoder.h:337
virtual void setDither(const byte *palette)
Definition: video_decoder.h:705
virtual void setCodecAccuracy(Image::CodecAccuracy accuracy)
Definition: video_decoder.h:626
Definition: video_decoder.h:837
virtual bool isReversed() const
Definition: video_decoder.h:695
bool isRewindable() const
Definition: video_decoder.h:842
TrackListIterator getTrackListEnd()
Definition: video_decoder.h:975
bool isSeekable() const
Definition: video_decoder.h:864
Definition: audiostream.h:109
virtual bool seek(const Audio::Timestamp &time)
Definition: video_decoder.h:563
virtual bool canDither() const
Definition: video_decoder.h:700
int8 getBalance() const
Definition: video_decoder.h:788
Audio::Mixer::SoundType getSoundType() const
Definition: video_decoder.h:798
virtual bool setOutputPixelFormat(const Graphics::PixelFormat &format)
Definition: video_decoder.h:621
virtual void readNextPacket()
Definition: video_decoder.h:913
bool isPaused() const
Definition: video_decoder.h:204
TrackType getTrackType() const
Definition: video_decoder.h:743
Audio::SeekableAudioStream * getSeekableAudioStream() const
Definition: video_decoder.h:898
Definition: animation.h:37
Definition: video_decoder.h:859
Common::Rational getRate() const
Definition: video_decoder.h:133
virtual const byte * getPalette() const
Definition: video_decoder.h:667
Definition: video_decoder.h:595