22#ifndef VIDEO_PSX_DECODER_H
23#define VIDEO_PSX_DECODER_H
25#include "common/bitstream.h"
26#include "common/endian.h"
27#include "common/rational.h"
28#include "common/rect.h"
29#include "common/str.h"
30#include "graphics/surface.h"
31#include "video/video_decoder.h"
34class QueuingAudioStream;
38template <
class BITSTREAM>
81 ~PSXVideoTrack()
override;
83 byte getChannel()
const {
return _channel; }
84 uint16
getWidth()
const override {
return _width; }
85 uint16
getHeight()
const override {
return _height; }
88 if (format.bytesPerPixel != 2 && format.bytesPerPixel != 4)
90 _pixelFormat = format;
93 bool endOfTrack()
const override {
return _endOfTrack; }
94 int getCurFrame()
const override {
return _curFrame; }
96 uint32 getNextFrameStartTime()
const override;
99 void setEndOfTrack() { _endOfTrack =
true; }
121 uint16 _macroBlocksW, _macroBlocksH;
122 byte *_yBuffer, *_cbBuffer, *_crBuffer;
127 HuffmanDecoder *_acHuffman;
130 HuffmanDecoder *_dcHuffmanLuma, *_dcHuffmanChroma;
133 void dequantizeBlock(
int *coefficients,
float *block, uint16 scale);
134 void idct(
float *dequantData,
float *result);
138 class PSXAudioTrack :
public AudioTrack {
141 ~PSXAudioTrack()
override;
143 byte getChannel()
const {
return _channel; }
144 bool endOfTrack()
const override;
146 void setEndOfTrack() { _endOfTrack =
true; }
163 PSXVideoTrack *_videoTrack;
164 PSXAudioTrack *_audioTrack;
Definition: audiostream.h:50
SoundType
Definition: mixer.h:73
Definition: audiostream.h:370
Definition: timestamp.h:83
Definition: bitstream.h:55
Definition: bitstream.h:339
Definition: psx_decoder.h:58
bool useAudioSync() const override
bool loadStream(Common::SeekableReadStream *stream) override
void readNextPacket() override
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
Definition: formatinfo.h:28