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 uint32 getFrameCount()
const;
273 uint32 getTime()
const;
289 virtual uint16 getWidth()
const;
300 virtual uint16 getHeight()
const;
326 const byte *getPalette();
337 void delayMillis(uint msecs);
342 uint32 getTimeToNextFrame()
const;
349 bool needsUpdate()
const;
378 bool setReverse(
bool reverse);
397 bool setDitheringPalette(
const byte *palette);
425 virtual void setVideoCodecAccuracy(Image::CodecAccuracy accuracy);
444 void setVolume(byte volume);
459 void setBalance(int8 balance);
493 bool setAudioTrack(
int index);
498 uint getAudioTrackCount()
const;
522 virtual TrackType getTrackType()
const = 0;
527 virtual bool endOfTrack()
const = 0;
535 virtual bool isRewindable()
const;
545 virtual bool rewind();
562 void pause(
bool shouldPause);
595 virtual bool endOfTrack()
const;
600 virtual uint16 getWidth()
const = 0;
605 virtual uint16 getHeight()
const = 0;
627 virtual int getCurFrame()
const = 0;
642 virtual uint32 getNextFrameStartTime()
const = 0;
703 uint32 getNextFrameStartTime()
const;
730 virtual bool endOfTrack()
const;
752 void setVolume(byte volume);
762 void setRate(uint32 rate);
778 void setBalance(int8 balance);
794 uint32 getRunningTime()
const;
799 void setMute(
bool mute);
802 void pauseIntern(
bool shouldPause);
889 void resetPauseStartTime();
908 void addTrack(
Track *track,
bool isExternal =
false);
922 Track *getTrack(uint track);
929 const Track *getTrack(uint track)
const;
937 bool endOfVideoTracks()
const;
965 void eraseTrack(
Track *track);
995 uint getNumTracks() {
return _tracks.size(); }
1000 TrackList _internalTracks;
1001 TrackList _externalTracks;
1010 mutable bool _dirtyPalette;
1011 const byte *_palette;
1015 bool _canSetDefaultFormat;
1023 bool hasFramesLeft()
const;
1024 bool hasAudio()
const;
1031 Image::CodecAccuracy _videoCodecAccuracy;
1035 uint32 _pauseStartTime;
virtual AudioTrack * getAudioTrack(int index)
Definition: video_decoder.h:993
byte getVolume() const
Definition: video_decoder.h:435
TrackListIterator getTrackListBegin()
Definition: video_decoder.h:955
Definition: video_decoder.h:505
byte getVolume() const
Definition: video_decoder.h:747
virtual bool hasDirtyPalette() const
Definition: video_decoder.h:657
int8 getBalance() const
Definition: video_decoder.h:450
Definition: video_decoder.h:698
Common::Array< Track * > TrackList
Definition: video_decoder.h:949
virtual bool useAudioSync() const
Definition: video_decoder.h:915
virtual int getFrameCount() const
Definition: video_decoder.h:636
Definition: video_decoder.h:723
T * iterator
Definition: array.h:54
Definition: timestamp.h:83
virtual bool supportsAudioTrackSwitching() const
Definition: video_decoder.h:983
virtual bool isSeekable() const
Definition: video_decoder.h:550
Definition: rational.h:40
Definition: video_decoder.h:868
Audio::Timestamp getEndTime() const
Definition: video_decoder.h:229
Definition: audiostream.h:212
virtual bool setReverse(bool reverse)
Definition: video_decoder.h:675
uint32 getRate() const
Definition: video_decoder.h:757
void setSoundType(Audio::Mixer::SoundType soundType)
Definition: video_decoder.h:788
SoundType
Definition: mixer.h:62
TrackType getTrackType() const
Definition: video_decoder.h:594
Definition: video_decoder.h:53
virtual void pauseIntern(bool shouldPause)
Definition: video_decoder.h:580
bool isPaused() const
Definition: video_decoder.h:567
Definition: algorithm.h:29
Definition: formatinfo.h:28
TrackType
Definition: video_decoder.h:513
Definition: audiostream.h:50
bool hasDirtyPalette() const
Definition: video_decoder.h:331
virtual void setDither(const byte *palette)
Definition: video_decoder.h:690
virtual void setCodecAccuracy(Image::CodecAccuracy accuracy)
Definition: video_decoder.h:620
Definition: video_decoder.h:822
virtual bool isReversed() const
Definition: video_decoder.h:680
bool isRewindable() const
Definition: video_decoder.h:827
TrackListIterator getTrackListEnd()
Definition: video_decoder.h:960
bool isSeekable() const
Definition: video_decoder.h:849
Definition: audiostream.h:109
virtual bool seek(const Audio::Timestamp &time)
Definition: video_decoder.h:557
virtual bool canDither() const
Definition: video_decoder.h:685
int8 getBalance() const
Definition: video_decoder.h:773
Audio::Mixer::SoundType getSoundType() const
Definition: video_decoder.h:783
virtual bool setOutputPixelFormat(const Graphics::PixelFormat &format)
Definition: video_decoder.h:615
virtual void readNextPacket()
Definition: video_decoder.h:898
bool isPaused() const
Definition: video_decoder.h:204
TrackType getTrackType() const
Definition: video_decoder.h:728
Audio::SeekableAudioStream * getSeekableAudioStream() const
Definition: video_decoder.h:883
Definition: avi_frames.h:36
Definition: video_decoder.h:844
Common::Rational getRate() const
Definition: video_decoder.h:133
virtual const byte * getPalette() const
Definition: video_decoder.h:652
Definition: video_decoder.h:589