ResidualVM logo ResidualVM website - Forums - Contact us BuildBot - Doxygen - Wiki curved edge

Intel Indeo 4 decoder. More...

#include <indeo4.h>

Inheritance diagram for Image::Indeo4Decoder:
Collaboration diagram for Image::Indeo4Decoder:

List of all members.

Classes

struct  Transform

Public Member Functions

 Indeo4Decoder (uint16 width, uint16 height, uint bitsPerPixel=16)
virtual ~Indeo4Decoder ()
virtual const Graphics::SurfacedecodeFrame (Common::SeekableReadStream &stream)
 Decode the frame for the given data and return a pointer to a surface containing the decoded frame.

Static Public Member Functions

static bool isIndeo4 (Common::SeekableReadStream &stream)

Protected Member Functions

virtual int decodePictureHeader ()
 Decode the Indeo 4 picture header.
virtual void switchBuffers ()
 Rearrange decoding and reference buffers.
virtual bool isNonNullFrame () const
virtual int decodeBandHeader (IVIBandDesc *band)
 Decode Indeo 4 band header.
virtual int decodeMbInfo (IVIBandDesc *band, IVITile *tile)
 Decode information (block type, cbp, quant delta, motion vector) for all macroblocks in the current tile.
int decodeRLETransparency (VLC_TYPE(*table)[2])
 Decodes huffman + RLE-coded transparency data within Indeo4 frames.
virtual int decodeTransparency ()
 Decodes optional transparency data within Indeo4 frames.

Private Member Functions

int scaleTileSize (int defSize, int sizeFactor)
int decodePlaneSubdivision ()
 Decode subdivision of a plane.

Static Private Attributes

static const uint _ivi4_common_pic_sizes [14]
 Standard picture dimensions.
static Transform _transforms [18]
 Transformations list.
static const uint8 *const _scan_index_to_tab [15]
static const uint16 _ivi4_quant_8x8_intra [9][64]
 Indeo 4 dequant tables.
static const uint16 _ivi4_quant_8x8_inter [9][64]
static const uint16 _ivi4_quant_4x4_intra [5][16]
static const uint16 _ivi4_quant_4x4_inter [5][16]
static const uint8 _quant_index_to_tab [22]
 Table for mapping quant matrix index from the bitstream into internal quant table number.

Detailed Description

Intel Indeo 4 decoder.

Used by AVI.

Used in video:

  • AVIDecoder

Definition at line 48 of file indeo4.h.


Constructor & Destructor Documentation

Image::Indeo4Decoder::Indeo4Decoder ( uint16  width,
uint16  height,
uint  bitsPerPixel = 16 
)

Definition at line 43 of file indeo4.cpp.

virtual Image::Indeo4Decoder::~Indeo4Decoder (  )  [inline, virtual]

Definition at line 56 of file indeo4.h.


Member Function Documentation

int Image::Indeo4Decoder::decodeBandHeader ( IVIBandDesc band  )  [protected, virtual]

Decode Indeo 4 band header.

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

Implements Image::Indeo::IndeoDecoderBase.

Definition at line 279 of file indeo4.cpp.

const Graphics::Surface * Image::Indeo4Decoder::decodeFrame ( Common::SeekableReadStream stream  )  [virtual]

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.

Definition at line 68 of file indeo4.cpp.

int Image::Indeo4Decoder::decodeMbInfo ( IVIBandDesc band,
IVITile tile 
) [protected, virtual]

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

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

Implements Image::Indeo::IndeoDecoderBase.

Definition at line 455 of file indeo4.cpp.

int Image::Indeo4Decoder::decodePictureHeader (  )  [protected, virtual]

Decode the Indeo 4 picture header.

Returns:
0 = Ok, negative number = error

Implements Image::Indeo::IndeoDecoderBase.

Definition at line 95 of file indeo4.cpp.

int Image::Indeo4Decoder::decodePlaneSubdivision (  )  [private]

Decode subdivision of a plane.

This is a simplified version that checks for two supported subdivisions:

  • 1 wavelet band per plane, size factor 1:1, code pattern: 3
  • 4 wavelet bands per plane, size factor 1:4, code pattern: 2,3,3,3,3 Anything else is either unsupported or corrupt.
Parameters:
[in,out] gb The GetBit context
Returns:
Number of wavelet bands or 0 on error

Definition at line 828 of file indeo4.cpp.

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

Decodes huffman + RLE-coded transparency data within Indeo4 frames.

Definition at line 607 of file indeo4.cpp.

int Image::Indeo4Decoder::decodeTransparency (  )  [protected, virtual]

Decodes optional transparency data within Indeo4 frames.

Reimplemented from Image::Indeo::IndeoDecoderBase.

Definition at line 701 of file indeo4.cpp.

bool Image::Indeo4Decoder::isIndeo4 ( Common::SeekableReadStream stream  )  [static]

Definition at line 51 of file indeo4.cpp.

bool Image::Indeo4Decoder::isNonNullFrame (  )  const [protected, virtual]

Implements Image::Indeo::IndeoDecoderBase.

Definition at line 275 of file indeo4.cpp.

int Image::Indeo4Decoder::scaleTileSize ( int  defSize,
int  sizeFactor 
) [private]

Definition at line 824 of file indeo4.cpp.

void Image::Indeo4Decoder::switchBuffers (  )  [protected, virtual]

Rearrange decoding and reference buffers.

Implements Image::Indeo::IndeoDecoderBase.

Definition at line 245 of file indeo4.cpp.


Member Data Documentation

Initial value:
 {
    640, 480, 320, 240, 160, 120, 704, 480, 352, 240, 352, 288, 176, 144
}

Standard picture dimensions.

Definition at line 121 of file indeo4.h.

Definition at line 139 of file indeo4.h.

Definition at line 137 of file indeo4.h.

Definition at line 135 of file indeo4.h.

Indeo 4 dequant tables.

Definition at line 133 of file indeo4.h.

Initial value:
 {
    0, 1, 0, 2, 1, 3, 0, 4, 1, 5, 0, 1, 6, 7, 8, 
    0, 1, 2, 2, 3, 3, 4                          
}

Table for mapping quant matrix index from the bitstream into internal quant table number.

Definition at line 145 of file indeo4.h.

const uint8 *const Image::Indeo4Decoder::_scan_index_to_tab [static, private]
Initial value:
 {
    
    ffZigZagDirect,
    ivi4AlternateScan8x8,
    _ffIviHorizontalScan8x8,
    _ffIviVerticalScan8x8,
    ffZigZagDirect,

    
    _ffIviDirectScan4x4,
    ivi4AlternateScan4x4,
    ivi4VerticalScan4x4,
    ivi4HorizontalScan4x4,
    _ffIviDirectScan4x4,

    
    _ffIviHorizontalScan8x8,
    _ffIviHorizontalScan8x8,
    _ffIviHorizontalScan8x8,
    _ffIviHorizontalScan8x8,
    _ffIviHorizontalScan8x8
}

Definition at line 128 of file indeo4.h.

Initial value:
 {
    { IndeoDSP::ffIviInverseHaar8x8,  IndeoDSP::ffIviDcHaar2d,       1 },
    { IndeoDSP::ffIviRowHaar8,         IndeoDSP::ffIviDcHaar2d,       0 },
    { IndeoDSP::ffIviColHaar8,         IndeoDSP::ffIviDcHaar2d,       0 },
    { IndeoDSP::ffIviPutPixels8x8,    IndeoDSP::ffIviPutDcPixel8x8, 1 },
    { IndeoDSP::ffIviInverseSlant8x8, IndeoDSP::ffIviDcSlant2d,      1 },
    { IndeoDSP::ffIviRowSlant8,        IndeoDSP::ffIviDcRowSlant,     1 },
    { IndeoDSP::ffIviColSlant8,        IndeoDSP::ffIviDcColSlant,     1 },
    { NULL, NULL, 0 }, 
    { NULL, NULL, 0 }, 
    { NULL, NULL, 0 }, 
    { IndeoDSP::ffIviInverseHaar4x4,  IndeoDSP::ffIviDcHaar2d,       1 },
    { IndeoDSP::ffIviInverseSlant4x4, IndeoDSP::ffIviDcSlant2d,      1 },
    { NULL, NULL, 0 }, 
    { IndeoDSP::ffIviRowHaar4,         IndeoDSP::ffIviDcHaar2d,       0 },
    { IndeoDSP::ffIviColHaar4,         IndeoDSP::ffIviDcHaar2d,       0 },
    { IndeoDSP::ffIviRowSlant4,        IndeoDSP::ffIviDcRowSlant,     0 },
    { IndeoDSP::ffIviColSlant4,        IndeoDSP::ffIviDcColSlant,     0 },
    { NULL, NULL, 0 }, 
}

Transformations list.

Definition at line 126 of file indeo4.h.


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


Generated on Sat Jan 12 2019 05:04:47 for ResidualVM by doxygen 1.7.1
curved edge   curved edge