ScummVM API documentation
Video::ThreeDOMovieDecoder Class Reference

#include <3do_decoder.h>

Inheritance diagram for Video::ThreeDOMovieDecoder:
Video::VideoDecoder

Public Member Functions

bool loadStream (Common::SeekableReadStream *stream) override
 
void close () override
 
- 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
 
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
 
uint32 getTimeToNextFrame () const
 
bool needsUpdate () const
 
virtual const Graphics::SurfacedecodeNextFrame ()
 
bool setReverse (bool reverse)
 
bool setDitheringPalette (const byte *palette)
 
bool setOutputPixelFormat (const Graphics::PixelFormat &format)
 
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 () override
 
bool supportsAudioTrackSwitching () const override
 
AudioTrackgetAudioTrack (int index) override
 
- Protected Member Functions inherited from Video::VideoDecoder
void resetPauseStartTime ()
 
void addTrack (Track *track, bool isExternal=false)
 
virtual bool useAudioSync () const
 
TrackgetTrack (uint track)
 
const TrackgetTrack (uint track) const
 
bool endOfVideoTracks () const
 
VideoTrackfindNextVideoTrack ()
 
TrackListIterator getTrackListBegin ()
 
TrackListIterator getTrackListEnd ()
 
void eraseTrack (Track *track)
 
virtual bool seekIntern (const Audio::Timestamp &time)
 
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
 

Detailed Description

Decoder for 3DO videos.

Video decoder used in engines:

  • sherlock
  • plumbers

Member Function Documentation

◆ loadStream()

bool Video::ThreeDOMovieDecoder::loadStream ( Common::SeekableReadStream stream)
overridevirtual

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.

Parameters
streamthe stream to load
Returns
whether loading the stream succeeded

Implements Video::VideoDecoder.

◆ close()

void Video::ThreeDOMovieDecoder::close ( )
overridevirtual

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.

◆ readNextPacket()

void Video::ThreeDOMovieDecoder::readNextPacket ( )
overrideprotectedvirtual

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.

◆ supportsAudioTrackSwitching()

bool Video::ThreeDOMovieDecoder::supportsAudioTrackSwitching ( ) const
inlineoverrideprotectedvirtual

Does this video format support switching between audio tracks?

Returning true implies this format supports multiple audio tracks, can switch tracks, and defaults to playing the first found audio track.

Reimplemented from Video::VideoDecoder.

◆ getAudioTrack()

AudioTrack* Video::ThreeDOMovieDecoder::getAudioTrack ( int  index)
overrideprotectedvirtual

Get the audio track for the given index.

This is used only if supportsAudioTrackSwitching() returns true.

Parameters
indexThe index of the track, whose meaning is dependent on the container
Returns
The audio track for the index, or 0 if not found

Reimplemented from Video::VideoDecoder.


The documentation for this class was generated from the following file: