ScummVM API documentation
Image::Indeo4Decoder Class Reference

#include <indeo4.h>

Inheritance diagram for Image::Indeo4Decoder:
Image::Indeo::IndeoDecoderBase Image::Codec

Public Member Functions

 Indeo4Decoder (uint16 width, uint16 height, uint bitsPerPixel=16)
 
const Graphics::SurfacedecodeFrame (Common::SeekableReadStream &stream) override
 
- Public Member Functions inherited from Image::Indeo::IndeoDecoderBase
 IndeoDecoderBase (uint16 width, uint16 height, uint bitsPerPixel)
 
- Public Member Functions inherited from Image::Codec
virtual bool containsPalette () const
 
virtual const byte * getPalette ()
 
virtual bool hasDirtyPalette () const
 
virtual bool canDither (DitherType type) const
 
virtual void setDither (DitherType type, const byte *palette)
 

Static Public Member Functions

static bool isIndeo4 (Common::SeekableReadStream &stream)
 
- Static Public Member Functions inherited from Image::Codec
static byte * createQuickTimeDitherTable (const byte *palette, uint colorCount)
 

Protected Member Functions

int decodePictureHeader () override
 
void switchBuffers () override
 
bool isNonNullFrame () const override
 
int decodeBandHeader (IVIBandDesc *band) override
 
int decodeMbInfo (IVIBandDesc *band, IVITile *tile) override
 
int decodeRLETransparency (VLC_TYPE(*table)[2])
 
int decodeTransparency () override
 
- Protected Member Functions inherited from Image::Indeo::IndeoDecoderBase
Graphics::PixelFormat getPixelFormat () const override
 
bool setOutputPixelFormat (const Graphics::PixelFormat &format) override
 
int decodeIndeoFrame ()
 
int scaleMV (int mv, int mvScale)
 

Additional Inherited Members

- Public Types inherited from Image::Codec
enum  DitherType { kDitherTypeUnknown, kDitherTypeVFW, kDitherTypeQT }
 
- Protected Attributes inherited from Image::Indeo::IndeoDecoderBase
IVI45DecContext _ctx
 
uint16 _width
 
uint16 _height
 
uint _bitsPerPixel
 
Graphics::PixelFormat _pixelFormat
 
Graphics::Surface_surface
 
- Static Protected Attributes inherited from Image::Indeo::IndeoDecoderBase
static const uint8 _ffIviVerticalScan8x8 [64]
 
static const uint8 _ffIviHorizontalScan8x8 [64]
 
static const uint8 _ffIviDirectScan4x4 [16]
 

Detailed Description

Intel Indeo 4 decoder.

Used by AVI.

Used in video:

  • AVIDecoder

Member Function Documentation

◆ decodeFrame()

const Graphics::Surface* Image::Indeo4Decoder::decodeFrame ( Common::SeekableReadStream stream)
overridevirtual

Decode the frame for the given data and return a pointer to a surface containing the decoded frame.

Returns
a pointer to the decoded frame

Implements Image::Codec.

◆ decodePictureHeader()

int Image::Indeo4Decoder::decodePictureHeader ( )
overrideprotectedvirtual

Decode the Indeo 4 picture header.

Returns
0 = Ok, negative number = error

Implements Image::Indeo::IndeoDecoderBase.

◆ switchBuffers()

void Image::Indeo4Decoder::switchBuffers ( )
overrideprotectedvirtual

Rearrange decoding and reference buffers.

Implements Image::Indeo::IndeoDecoderBase.

◆ decodeBandHeader()

int Image::Indeo4Decoder::decodeBandHeader ( IVIBandDesc band)
overrideprotectedvirtual

Decode Indeo 4 band header.

Parameters
[in,out]bandpointer to the band descriptor
Returns
result code: 0 = OK, negative number = error

Implements Image::Indeo::IndeoDecoderBase.

◆ decodeMbInfo()

int Image::Indeo4Decoder::decodeMbInfo ( IVIBandDesc band,
IVITile tile 
)
overrideprotectedvirtual

Decode information (block type, cbp, quant delta, motion vector) for all macroblocks in the current tile.

Parameters
[in,out]bandpointer to the band descriptor
[in,out]tilepointer to the tile descriptor
Returns
result code: 0 = OK, negative number = error

Implements Image::Indeo::IndeoDecoderBase.

◆ decodeRLETransparency()

int Image::Indeo4Decoder::decodeRLETransparency ( VLC_TYPE(*)  table[2])
protected

Decodes huffman + RLE-coded transparency data within Indeo4 frames

◆ decodeTransparency()

int Image::Indeo4Decoder::decodeTransparency ( )
overrideprotectedvirtual

Decodes optional transparency data within Indeo4 frames

Reimplemented from Image::Indeo::IndeoDecoderBase.


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