50 #ifndef VIDEO_CODECS_XMVWMV2_H 51 #define VIDEO_CODECS_XMVWMV2_H 65 struct WMV2ACCoefficientTable;
87 bool isSet(
int block)
const;
89 void set(
int block,
bool coded);
268 #endif // VIDEO_CODECS_XMVWMV2_H void decodeIMacroBlock(DecodeContext &ctx)
Decode an I-Frame (intra frame) macro block.
Parameters for decoding the motion vectors.
Common::ScopedPtr< Common::Huffman > _huffDC[2][2]
Huffman code for DCT DC coefficients, [luma/chroma][low/high motion].
uint32 _lumaHeight
Height of the luma portion of a decoded frame.
Common::ScopedPtr< Common::Huffman > _huffCBP[4]
Huffman codes for coded block pattern.
bool _hasLoopFilter
Does the video use the loop filter?
uint32 _height
Height of a frame.
Common::Huffman * huffDC[2]
void decodePFrame(DecodeContext &ctx)
Decode a P-Frame (inter frame).
Parameters for decoding the DCT AC coefficients.
bool isSet(int block) const
static const uint32 kMacroBlockSize
Size of a macro block.
const WMV2ACCoefficientTable * parameters
Which block pattern are coded?
uint32 _lumaWidth
Width of the luma portion of a decoded frame.
void initDecodeContext(DecodeContext &ctx)
Common::ScopedPtr< Common::Huffman > huffman
A simple scoped smart pointer template.
bool _hasJFrames
Does the video have j-frames (IntraX8)?
static uint8 getTrit(Common::BitStream &bits)
Decode a "tri-state".
MVDecoder _decoderMV[2]
Huffman code for the motion vectors [low/high motion].
Common::Huffman ** huffDC
int32 acQuantLeft[4][kBlockSize]
void decodeIBlock(DecodeContext &ctx, BlockContext &block)
Decode an I-Frame (intra frame) block.
void setQScale(int32 qS)
Set the quantizer scale and calculate the DC step size and default predictor.
void startMacroBlock(uint32 cbp)
Decode a Huffman'd bitstream.
Common::ScopedArray< int32 > _predAC[3]
AC predictors, previous row.
void decodeIFrame(DecodeContext &ctx)
Decode an I-Frame (intra frame).
uint32 _width
Width of a frame.
XMVWMV2Codec(uint32 width, uint32 height, Common::SeekableReadStream &extraData)
Low-level type definitions to handle fixed width types portably.
Context for decoding a block.
void parseExtraData(Common::SeekableReadStream &extraData)
Parse the extra data containing video encoding properties.
Common::ScopedArray< CBP > _cbp
Coded block pattern, previous row.
bool _hasACPerMacroBlock
Are the AC selected per macro block instead of per frame?
DecodeContext(Common::BitStream &b)
void decodeJFrame(DecodeContext &ctx)
Decode a J-Frame (intra X8 frame).
Common::ScopedArray< byte > _curPlanes[3]
The 3 color planes, YUV, current frame.
ACDecoder _decoderAC[2][3]
Decoders for DCT AC coefficients [luma/chroma][low motion/high motion/MPEG4].
uint32 _mbCountWidth
Width of a frame in macro blocks.
Common::ScopedArray< byte > _oldPlanes[3]
The 3 color planes, YUV, last frame.
bool _hasVarSizeTrans
Does the video have variable sized transforms?
uint32 _chromaHeight
Height of the chroma portion of a decoded frame.
bool _hasHybridMV
Does the video have hybrid motion vectors?
void decodeFrame(Graphics::Surface &surface, Common::SeekableReadStream &dataStream)
Decoder for motion vectors.
Context for decoding a frame.
bool _hasMixedPelMC
Does the video have mixed pel motion compensation?
Decoders for DCT AC coefficients.
uint32 _mbCountHeight
Height of a frame in macro blocks.
const WMV2MVTable * parameters
static const uint32 kBlockSize
Size of a block.
void init()
Init the decoder.
Interface for a seekable & readable data stream.
Common::ScopedPtr< Common::Huffman > huffman
uint32 _chromaWidth
Width of the chroma portion of a decoded frame.
void IDCTPut(byte *dest, int32 *block, uint32 pitch)
uint8 _sliceCount
Number of slices per frame.