#include <psx_decoder.h>
Public Types | |
enum | CDSpeed { kCD1x = 75, kCD2x = 150 } |
Public Member Functions | |
PSXStreamDecoder (CDSpeed speed, uint32 frameCount=0) | |
bool | loadStream (Common::SeekableReadStream *stream) |
void | close () |
Public Member Functions inherited from Video::VideoDecoder | |
virtual bool | loadFile (const Common::Path &filename) |
bool | isVideoLoaded () const |
void | start () |
void | stop () |
void | setRate (const Common::Rational &rate) |
Common::Rational | getRate () const |
bool | isPlaying () const |
virtual bool | isRewindable () const |
virtual bool | rewind () |
virtual bool | isSeekable () const |
bool | seek (const Audio::Timestamp &time) |
virtual bool | seekToFrame (uint frame) |
void | pauseVideo (bool pause) |
bool | isPaused () const |
void | setEndTime (const Audio::Timestamp &endTime) |
void | setEndFrame (uint frame) |
Audio::Timestamp | getEndTime () const |
void | resetStartTime () |
bool | endOfVideo () const |
int | getCurFrame () const |
uint32 | getFrameCount () const |
uint32 | getTime () const |
virtual uint16 | getWidth () const |
virtual uint16 | getHeight () const |
Graphics::PixelFormat | getPixelFormat () const |
virtual Audio::Timestamp | getDuration () const |
const byte * | getPalette () |
bool | hasDirtyPalette () const |
void | delayMillis (uint msecs) |
uint32 | getTimeToNextFrame () const |
bool | needsUpdate () const |
virtual const Graphics::Surface * | decodeNextFrame () |
bool | setReverse (bool reverse) |
bool | setDitheringPalette (const byte *palette) |
bool | setOutputPixelFormat (const Graphics::PixelFormat &format) |
virtual void | setVideoCodecAccuracy (Image::CodecAccuracy accuracy) |
byte | getVolume () const |
void | setVolume (byte volume) |
int8 | getBalance () const |
void | setBalance (int8 balance) |
Audio::Mixer::SoundType | getSoundType () const |
void | setSoundType (Audio::Mixer::SoundType soundType) |
bool | addStreamTrack (Audio::SeekableAudioStream *stream) |
bool | addStreamFileTrack (const Common::Path &baseName) |
bool | setAudioTrack (int index) |
uint | getAudioTrackCount () const |
Protected Member Functions | |
void | readNextPacket () |
bool | useAudioSync () const |
Protected Member Functions inherited from Video::VideoDecoder | |
void | resetPauseStartTime () |
void | addTrack (Track *track, bool isExternal=false) |
Track * | getTrack (uint track) |
const Track * | getTrack (uint track) const |
bool | endOfVideoTracks () const |
VideoTrack * | findNextVideoTrack () |
TrackListIterator | getTrackListBegin () |
TrackListIterator | getTrackListEnd () |
void | eraseTrack (Track *track) |
virtual bool | seekIntern (const Audio::Timestamp &time) |
virtual bool | supportsAudioTrackSwitching () const |
virtual AudioTrack * | getAudioTrack (int index) |
void | stopAudio () |
void | setAudioRate (Common::Rational rate) |
void | startAudio () |
void | startAudioLimit (const Audio::Timestamp &limit) |
bool | hasFramesLeft () const |
bool | hasAudio () const |
Additional Inherited Members | |
Protected Types inherited from Video::VideoDecoder | |
typedef Common::Array< Track * > | TrackList |
typedef TrackList::iterator | TrackListIterator |
Protected Attributes inherited from Video::VideoDecoder | |
Audio::Timestamp | _lastTimeChange |
int32 | _startTime |
VideoTrack * | _nextVideoTrack |
Image::CodecAccuracy | _videoCodecAccuracy |
Decoder for PSX stream videos. This currently implements the most basic PSX stream format that is used by most games on the system. Special variants are not supported at this time.
Video decoder used in engines:
|
virtual |
Load a video from a generic read stream. The ownership of the stream object transfers to this VideoDecoder instance, which is hence also responsible for eventually deleting it.
Implementations of this function are required to call addTrack() for each track in the video upon success.
stream | the stream to load |
Implements Video::VideoDecoder.
|
virtual |
Close the active video stream and free any associated resources.
All subclasses that need to close their own resources should still call the base class' close() function at the start of their function.
Reimplemented from Video::VideoDecoder.
|
protectedvirtual |
Decode enough data for the next frame and enough audio to last that long.
This function is used by this class' decodeNextFrame() function. A subclass of a Track may decide to just have its decodeNextFrame() function read and decode the frame, but only if it is the only track in the video.
Reimplemented from Video::VideoDecoder.
|
protectedvirtual |
Whether or not getTime() will sync with a playing audio track.
A subclass can override this to disable this feature.
Reimplemented from Video::VideoDecoder.