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

#include <indeo.h>

Inheritance diagram for Image::Indeo::IndeoDecoderBase:
Collaboration diagram for Image::Indeo::IndeoDecoderBase:

List of all members.

Public Member Functions

 IndeoDecoderBase (uint16 width, uint16 height, uint bitsPerPixel)
virtual ~IndeoDecoderBase ()

Protected Member Functions

virtual Graphics::PixelFormat getPixelFormat () const
 Returns the pixel format for the decoder's surface.
virtual int decodePictureHeader ()=0
 Decode the Indeo picture header.
virtual void switchBuffers ()=0
 Rearrange decoding and reference buffers.
virtual bool isNonNullFrame () const =0
virtual int decodeBandHeader (IVIBandDesc *band)=0
 Decode Indeo band header.
virtual int decodeMbInfo (IVIBandDesc *band, IVITile *tile)=0
 Decode information (block type, _cbp, quant delta, motion vector) for all macroblocks in the current tile.
virtual int decodeTransparency ()
 Decodes optional transparency data within Indeo frames.
int decodeIndeoFrame ()
 Decodes the Indeo frame from the bit reader already loaded into the context.
int scaleMV (int mv, int mvScale)
 scale motion vector

Protected Attributes

IVI45DecContext _ctx
Graphics::PixelFormat _pixelFormat
Graphics::Surface _surface

Static Protected Attributes

static const uint8 _ffIviVerticalScan8x8 [64]
 Scan patterns shared between indeo4 and indeo5.
static const uint8 _ffIviHorizontalScan8x8 [64]
static const uint8 _ffIviDirectScan4x4 [16]

Private Member Functions

int decode_band (IVIBandDesc *band)
 Decode an Indeo 4 or 5 band.
void recomposeHaar (const IVIPlaneDesc *plane, uint8 *dst, const int dstPitch)
 Haar wavelet recomposition filter for Indeo 4.
void recompose53 (const IVIPlaneDesc *plane, uint8 *dst, const int dstPitch)
 5/3 wavelet recomposition filter for Indeo5
void outputPlane (IVIPlaneDesc *plane, uint8 *dst, int dstPitch)
int processEmptyTile (IVIBandDesc *band, IVITile *tile, int32 mvScale)
 Handle empty tiles by performing data copying and motion compensation respectively.
int decodeTileDataSize (GetBits *gb)
int decodeBlocks (GetBits *gb, IVIBandDesc *band, IVITile *tile)
int iviMc (IVIBandDesc *band, IviMCFunc mc, IviMCAvgFunc mcAvg, int offs, int mvX, int mvY, int mvX2, int mvY2, int mcType, int mcType2)
int decodeCodedBlocks (GetBits *gb, IVIBandDesc *band, IviMCFunc mc, IviMCAvgFunc mcAvg, int mvX, int mvY, int mvX2, int mvY2, int32 *prevDc, int isIntra, int mcType, int mcType2, uint32 quant, int offs)
int iviDcTransform (IVIBandDesc *band, int32 *prevDc, int bufOffs, int blkSize)

Detailed Description

Definition at line 436 of file indeo.h.


Constructor & Destructor Documentation

Image::Indeo::IndeoDecoderBase::IndeoDecoderBase ( uint16  width,
uint16  height,
uint  bitsPerPixel 
)

Definition at line 467 of file indeo.cpp.

Image::Indeo::IndeoDecoderBase::~IndeoDecoderBase (  )  [virtual]

Definition at line 495 of file indeo.cpp.


Member Function Documentation

int Image::Indeo::IndeoDecoderBase::decode_band ( IVIBandDesc band  )  [private]

Decode an Indeo 4 or 5 band.

Parameters:
[in,out] band ptr to the band descriptor
Returns:
result code: 0 = OK, -1 = error

Definition at line 623 of file indeo.cpp.

virtual int Image::Indeo::IndeoDecoderBase::decodeBandHeader ( IVIBandDesc band  )  [protected, pure virtual]

Decode Indeo band header.

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

Implemented in Image::Indeo4Decoder, and Image::Indeo5Decoder.

int Image::Indeo::IndeoDecoderBase::decodeBlocks ( GetBits gb,
IVIBandDesc band,
IVITile tile 
) [private]

Definition at line 1063 of file indeo.cpp.

int Image::Indeo::IndeoDecoderBase::decodeCodedBlocks ( GetBits gb,
IVIBandDesc band,
IviMCFunc  mc,
IviMCAvgFunc  mcAvg,
int  mvX,
int  mvY,
int  mvX2,
int  mvY2,
int32 prevDc,
int  isIntra,
int  mcType,
int  mcType2,
uint32  quant,
int  offs 
) [private]

Definition at line 1238 of file indeo.cpp.

int Image::Indeo::IndeoDecoderBase::decodeIndeoFrame (  )  [protected]

Decodes the Indeo frame from the bit reader already loaded into the context.

Definition at line 506 of file indeo.cpp.

virtual int Image::Indeo::IndeoDecoderBase::decodeMbInfo ( IVIBandDesc band,
IVITile tile 
) [protected, pure 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

Implemented in Image::Indeo4Decoder, and Image::Indeo5Decoder.

virtual int Image::Indeo::IndeoDecoderBase::decodePictureHeader (  )  [protected, pure virtual]

Decode the Indeo picture header.

Returns:
0 = Ok, negative number = error

Implemented in Image::Indeo4Decoder, and Image::Indeo5Decoder.

int Image::Indeo::IndeoDecoderBase::decodeTileDataSize ( GetBits gb  )  [private]

Definition at line 1048 of file indeo.cpp.

virtual int Image::Indeo::IndeoDecoderBase::decodeTransparency (  )  [inline, protected, virtual]

Decodes optional transparency data within Indeo frames.

Reimplemented in Image::Indeo4Decoder.

Definition at line 571 of file indeo.h.

virtual Graphics::PixelFormat Image::Indeo::IndeoDecoderBase::getPixelFormat (  )  const [inline, protected, virtual]

Returns the pixel format for the decoder's surface.

Implements Image::Codec.

Definition at line 535 of file indeo.h.

virtual bool Image::Indeo::IndeoDecoderBase::isNonNullFrame (  )  const [protected, pure virtual]
int Image::Indeo::IndeoDecoderBase::iviDcTransform ( IVIBandDesc band,
int32 prevDc,
int  bufOffs,
int  blkSize 
) [private]

Definition at line 1334 of file indeo.cpp.

int Image::Indeo::IndeoDecoderBase::iviMc ( IVIBandDesc band,
IviMCFunc  mc,
IviMCAvgFunc  mcAvg,
int  offs,
int  mvX,
int  mvY,
int  mvX2,
int  mvY2,
int  mcType,
int  mcType2 
) [private]

Definition at line 1202 of file indeo.cpp.

void Image::Indeo::IndeoDecoderBase::outputPlane ( IVIPlaneDesc plane,
uint8 dst,
int  dstPitch 
) [private]

Definition at line 922 of file indeo.cpp.

int Image::Indeo::IndeoDecoderBase::processEmptyTile ( IVIBandDesc band,
IVITile tile,
int32  mvScale 
) [private]

Handle empty tiles by performing data copying and motion compensation respectively.

Parameters:
[in] band Pointer to the band descriptor
[in] tile Pointer to the tile descriptor
[in] mvScale Scaling factor for motion vectors

Definition at line 937 of file indeo.cpp.

void Image::Indeo::IndeoDecoderBase::recompose53 ( const IVIPlaneDesc plane,
uint8 dst,
const int  dstPitch 
) [private]

5/3 wavelet recomposition filter for Indeo5

Parameters:
[in] plane Pointer to the descriptor of the plane being processed
[out] dst Pointer to the destination buffer
[in] dstPitch Pitch of the destination buffer

Definition at line 769 of file indeo.cpp.

void Image::Indeo::IndeoDecoderBase::recomposeHaar ( const IVIPlaneDesc plane,
uint8 dst,
const int  dstPitch 
) [private]

Haar wavelet recomposition filter for Indeo 4.

Parameters:
[in] plane Pointer to the descriptor of the plane being processed
[out] dst pointer to the destination buffer
[in] dstPitch Pitch of the destination buffer

Definition at line 727 of file indeo.cpp.

int Image::Indeo::IndeoDecoderBase::scaleMV ( int  mv,
int  mvScale 
) [protected]

scale motion vector

Definition at line 1198 of file indeo.cpp.

virtual void Image::Indeo::IndeoDecoderBase::switchBuffers (  )  [protected, pure virtual]

Rearrange decoding and reference buffers.

Implemented in Image::Indeo4Decoder, and Image::Indeo5Decoder.


Member Data Documentation

Definition at line 521 of file indeo.h.

Initial value:
 {
    0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15
}

Definition at line 530 of file indeo.h.

Initial value:
 {
    0,  1,  2,  3,  4,  5,  6,  7,
    8,  9, 10, 11, 12, 13, 14, 15,
    16, 17, 18, 19, 20, 21, 22, 23,
    24, 25, 26, 27, 28, 29, 30, 31,
    32, 33, 34, 35, 36, 37, 38, 39,
    40, 41, 42, 43, 44, 45, 46, 47,
    48, 49, 50, 51, 52, 53, 54, 55,
    56, 57, 58, 59, 60, 61, 62, 63
}

Definition at line 529 of file indeo.h.

Initial value:
 {
    0,  8, 16, 24, 32, 40, 48, 56,
    1,  9, 17, 25, 33, 41, 49, 57,
    2, 10, 18, 26, 34, 42, 50, 58,
    3, 11, 19, 27, 35, 43, 51, 59,
    4, 12, 20, 28, 36, 44, 52, 60,
    5, 13, 21, 29, 37, 45, 53, 61,
    6, 14, 22, 30, 38, 46, 54, 62,
    7, 15, 23, 31, 39, 47, 55, 63
}

Scan patterns shared between indeo4 and indeo5.

Definition at line 528 of file indeo.h.

Definition at line 523 of file indeo.h.


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


Generated on Sat Jul 13 2019 05:04:33 for ResidualVM by doxygen 1.7.1
curved edge   curved edge