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"
36class RewindableAudioStream;
37class SeekableAudioStream;
41class SeekableReadStream;
1036 uint getNumTracks() {
return _tracks.
size(); }
1051 mutable bool _dirtyPalette;
1052 const byte *_palette;
1056 bool _canSetDefaultFormat;
1064 bool hasFramesLeft()
const;
1065 bool hasAudio()
const;
1070 VideoTrack *_nextVideoTrack;
1072 Image::CodecAccuracy _videoCodecAccuracy;
1076 uint32 _pauseStartTime;
1081 AudioTrack *_mainAudioTrack;
Definition: audiostream.h:50
SoundType
Definition: mixer.h:73
Definition: audiostream.h:109
Definition: audiostream.h:212
Definition: timestamp.h:83
iterator end()
Definition: array.h:380
Track * * iterator
Definition: array.h:54
size_type size() const
Definition: array.h:316
iterator begin()
Definition: array.h:375
Definition: rational.h:40
Definition: video_decoder.h:759
byte getVolume() const
Definition: video_decoder.h:783
virtual Audio::AudioStream * getAudioStream() const =0
void setRate(Common::Rational rate)
void pauseIntern(bool shouldPause) override
bool endOfTrack() const override
void setBalance(int8 balance)
Audio::Mixer::SoundType getSoundType() const
Definition: video_decoder.h:819
uint32 getRunningTime() const
int8 getBalance() const
Definition: video_decoder.h:809
void setSoundType(Audio::Mixer::SoundType soundType)
Definition: video_decoder.h:824
void setVolume(byte volume)
void setRate(uint32 rate)
bool getMute()
Definition: video_decoder.h:835
TrackType getTrackType() const override
Definition: video_decoder.h:764
uint32 getRate() const
Definition: video_decoder.h:793
Definition: video_decoder.h:734
virtual Common::Rational getFrameRate() const =0
uint getFrameAtTime(const Audio::Timestamp &time) const
Audio::Timestamp getDuration() const override
Audio::Timestamp getFrameTime(uint frame) const override
uint32 getNextFrameStartTime() const override
Definition: video_decoder.h:863
virtual Audio::RewindableAudioStream * getRewindableAudioStream() const =0
bool isRewindable() const override
Definition: video_decoder.h:868
Audio::AudioStream * getAudioStream() const override
Definition: video_decoder.h:885
bool seek(const Audio::Timestamp &time) override
Audio::AudioStream * getAudioStream() const override
bool isSeekable() const override
Definition: video_decoder.h:890
virtual Audio::SeekableAudioStream * getSeekableAudioStream() const =0
Audio::Timestamp getDuration() const override
Definition: video_decoder.h:909
bool loadFromFile(const Common::Path &baseName)
Audio::SeekableAudioStream * getSeekableAudioStream() const override
Definition: video_decoder.h:924
Definition: video_decoder.h:532
virtual bool isRewindable() const
virtual bool isSeekable() const
Definition: video_decoder.h:577
void pause(bool shouldPause)
virtual bool endOfTrack() const =0
virtual void pauseIntern(bool shouldPause)
Definition: video_decoder.h:607
virtual Audio::Timestamp getDuration() const
virtual bool seek(const Audio::Timestamp &time)
Definition: video_decoder.h:584
TrackType
Definition: video_decoder.h:540
virtual TrackType getTrackType() const =0
bool isPaused() const
Definition: video_decoder.h:594
Definition: video_decoder.h:616
virtual bool canDither() const
Definition: video_decoder.h:721
virtual const byte * getPalette() const
Definition: video_decoder.h:688
virtual int getCurFrame() const =0
virtual uint16 getWidth() const =0
virtual Audio::Timestamp getFrameTime(uint frame) const
virtual bool setReverse(bool reverse)
Definition: video_decoder.h:711
TrackType getTrackType() const override
Definition: video_decoder.h:621
virtual bool setOutputPixelFormat(const Graphics::PixelFormat &format)
Definition: video_decoder.h:642
virtual int getFrameCount() const
Definition: video_decoder.h:672
bool endOfTrack() const override
virtual const Graphics::Surface * decodeNextFrame()=0
virtual int getCurFrameDelay() const
Definition: video_decoder.h:661
virtual void setCodecAccuracy(Image::CodecAccuracy accuracy)
Definition: video_decoder.h:647
virtual bool hasDirtyPalette() const
Definition: video_decoder.h:693
virtual uint16 getHeight() const =0
virtual void setDither(const byte *palette)
Definition: video_decoder.h:726
virtual bool isReversed() const
Definition: video_decoder.h:716
virtual uint32 getNextFrameStartTime() const =0
virtual Graphics::PixelFormat getPixelFormat() const =0
Definition: video_decoder.h:53
virtual void readNextPacket()
Definition: video_decoder.h:939
void delayMillis(uint msecs)
const Track * getTrack(uint track) const
TrackListIterator getTrackListEnd()
Definition: video_decoder.h:1001
virtual bool seekToFrame(uint frame)
bool seek(const Audio::Timestamp &time)
virtual bool seekIntern(const Audio::Timestamp &time)
int getCurFrameDelay() const
bool addStreamFileTrack(const Common::Path &baseName)
int8 getBalance() const
Definition: video_decoder.h:456
Common::Rational getRate() const
Definition: video_decoder.h:133
void pauseVideo(bool pause)
Track * getTrack(uint track)
void setSoundType(Audio::Mixer::SoundType soundType)
Graphics::PixelFormat getPixelFormat() const
bool hasDirtyPalette() const
Definition: video_decoder.h:337
virtual uint16 getHeight() const
bool setAudioTrack(int index)
bool setReverse(bool reverse)
bool isPaused() const
Definition: video_decoder.h:204
const byte * getPalette()
bool isVideoLoaded() const
void addTrack(Track *track, bool isExternal=false)
Audio::Timestamp getEndTime() const
Definition: video_decoder.h:229
virtual void setVideoCodecAccuracy(Image::CodecAccuracy accuracy)
void setVolume(byte volume)
void setEndTime(const Audio::Timestamp &endTime)
bool endOfVideoTracks() const
virtual AudioTrack * getAudioTrack(int index)
Definition: video_decoder.h:1034
void setEndFrame(uint frame)
bool addStreamTrack(Audio::SeekableAudioStream *stream)
virtual bool loadStream(Common::SeekableReadStream *stream)=0
bool setDitheringPalette(const byte *palette)
virtual bool isSeekable() const
bool setOutputPixelFormat(const Graphics::PixelFormat &format)
bool setAudioTrackMute(int index, bool muted)
bool setOutputPixelFormats(const Common::List< Graphics::PixelFormat > &formatList)
virtual const Graphics::Surface * decodeNextFrame()
virtual bool isRewindable() const
byte getVolume() const
Definition: video_decoder.h:441
virtual bool supportsAudioTrackSwitching() const
Definition: video_decoder.h:1024
uint getAudioTrackCount() const
void eraseTrack(Track *track)
virtual bool loadFile(const Common::Path &filename)
virtual Audio::Timestamp getDuration() const
void setRate(const Common::Rational &rate)
void setBalance(int8 balance)
uint32 getTimeToNextFrame() const
uint32 getFrameCount() const
bool getAudioTrackMute(int index)
Common::Array< Track * > TrackList
Definition: video_decoder.h:990
virtual bool useAudioSync() const
Definition: video_decoder.h:956
TrackListIterator getTrackListBegin()
Definition: video_decoder.h:996
Audio::Mixer::SoundType getSoundType() const
VideoTrack * findNextVideoTrack()
virtual uint16 getWidth() const
void resetPauseStartTime()
Definition: algorithm.h:29
Definition: formatinfo.h:28