22#ifndef SHERLOCK_SCALPEL_3DO_MOVIE_DECODER_H
23#define SHERLOCK_SCALPEL_3DO_MOVIE_DECODER_H
25#include "common/rect.h"
26#include "video/video_decoder.h"
30class QueuingAudioStream;
34class SeekableReadStream;
64 int32 _streamVideoOffset;
65 int32 _streamAudioOffset;
70 StreamVideoTrack(uint32 width, uint32 height, uint32 codecTag, uint32 frameCount);
71 ~StreamVideoTrack()
override;
73 bool endOfTrack()
const override;
75 uint16
getWidth()
const override {
return _width; }
76 uint16
getHeight()
const override {
return _height; }
79 int getCurFrame()
const override {
return _curFrame; }
81 void setNextFrameStartTime(uint32 nextFrameStartTime) { _nextFrameStartTime = nextFrameStartTime; }
82 uint32 getNextFrameStartTime()
const override {
return _nextFrameStartTime; }
92 uint32 _nextFrameStartTime;
95 uint16 _width, _height;
98 class StreamAudioTrack :
public AudioTrack {
100 StreamAudioTrack(uint32 codecTag, uint32 sampleRate, uint32 channels,
Audio::Mixer::SoundType soundType, uint32 trackId);
101 ~StreamAudioTrack()
override;
105 bool matchesId(uint trackId);
112 uint32 _totalAudioQueued;
115 uint32 getTotalAudioQueued()
const {
return _totalAudioQueued; }
118 int16 decodeSample(uint8 dataNibble);
130 StreamVideoTrack *_videoTrack;
Definition: audiostream.h:50
SoundType
Definition: mixer.h:73
Definition: audiostream.h:370
Definition: 3do_decoder.h:50
bool supportsAudioTrackSwitching() const override
Definition: 3do_decoder.h:60
bool loadStream(Common::SeekableReadStream *stream) override
void readNextPacket() override
AudioTrack * getAudioTrack(int index) override
Definition: video_decoder.h:759
Definition: video_decoder.h:616
Definition: video_decoder.h:53
Graphics::PixelFormat getPixelFormat() const
virtual uint16 getHeight() const
bool setOutputPixelFormat(const Graphics::PixelFormat &format)
virtual const Graphics::Surface * decodeNextFrame()
uint32 getFrameCount() const
virtual uint16 getWidth() const
Definition: algorithm.h:29