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

Image::Indeo Namespace Reference

Classes

class  GetBits
 Intel Indeo Bitstream reader. More...
struct  IVIHuffDesc
 huffman codebook descriptor More...
struct  IVIHuffTab
 Macroblock/block huffman table descriptor. More...
struct  RVMapDesc
 run-value (RLE) table descriptor More...
struct  IVIMbInfo
 information for Indeo macroblock (16x16, 8x8 or 4x4) More...
struct  IVITile
 information for Indeo tile More...
struct  IVIBandDesc
 information for Indeo wavelet band More...
struct  IVIPicConfig
struct  IVIPlaneDesc
 color plane (luma or chroma) information More...
struct  AVFrame
struct  IVI45DecContext
class  IndeoDecoderBase
class  IndeoDSP
struct  VLCcode
struct  VLC

Typedefs

typedef void( InvTransformPtr )(const int32 *in, int16 *out, uint32 pitch, const uint8 *flags)
 Declare inverse transform function types.
typedef void( DCTransformPtr )(const int32 *in, int16 *out, uint32 pitch, int blkSize)
typedef void(* IviMCFunc )(int16 *buf, const int16 *refBuf, uint32 pitch, int mcType)
typedef void(* IviMCAvgFunc )(int16 *buf, const int16 *refBuf1, const int16 *refBuf2, uint32 pitch, int mcType, int mcType2)
 max number of bits of the ivi's huffman codes

Enumerations

enum  {
  IVI4_FRAMETYPE_INTRA = 0, IVI4_FRAMETYPE_INTRA1 = 1, IVI4_FRAMETYPE_INTER = 2, IVI4_FRAMETYPE_BIDIR = 3,
  IVI4_FRAMETYPE_INTER_NOREF = 4, IVI4_FRAMETYPE_NULL_FIRST = 5, IVI4_FRAMETYPE_NULL_LAST = 6
}
 

Indeo 4 frame types.

More...
enum  { IVI_MB_HUFF = 0, IVI_BLK_HUFF = 1 }
enum  VLCFlag { INIT_VLC_LE = 2, INIT_VLC_USE_NEW_STATIC = 4 }

Functions

static int avSizeMult (size_t a, size_t b, size_t *r)
 Multiply two `size_t` values checking for overflow.
void avFreeP (void *arg)
 Free a memory block which has been allocated with a function of av_malloc() or av_realloc() family, and set the pointer pointing to it to `NULL`.
void * avReallocF (void *ptr, size_t nelem, size_t elsize)
 Allocate, reallocate, or free a block of memory.
uint32 bitswap32 (uint32 x)
 Swap the order of the bytes in the passed value.
uint16 invertBits (uint16 val, int nbits)
 Reverse "nbits" bits of the value "val" and return the result in the least significant bits.
uint8 avClipUint8 (int a)
 Clip a signed integer value into the 0-255 range.
unsigned avClipUintp2 (int a, int p)
 Clip a signed integer to an unsigned power of two range.

Variables

static const IVIHuffDesc ivi_mb_huff_desc [8]
 These are 2x8 predefined Huffman codebooks for coding macroblock/block signals.
static const IVIHuffDesc ivi_blk_huff_desc [8]
 static block huffman tables
const uint8 ffReverse [256]
const uint8 ffZigZagDirect [64]

Typedef Documentation

typedef void( Image::Indeo::DCTransformPtr)(const int32 *in, int16 *out, uint32 pitch, int blkSize)

Definition at line 67 of file indeo.h.

typedef void( Image::Indeo::InvTransformPtr)(const int32 *in, int16 *out, uint32 pitch, const uint8 *flags)

Declare inverse transform function types.

Definition at line 66 of file indeo.h.

typedef void(* Image::Indeo::IviMCAvgFunc)(int16 *buf, const int16 *refBuf1, const int16 *refBuf2, uint32 pitch, int mcType, int mcType2)

max number of bits of the ivi's huffman codes

Definition at line 70 of file indeo.h.

typedef void(* Image::Indeo::IviMCFunc)(int16 *buf, const int16 *refBuf, uint32 pitch, int mcType)

Definition at line 69 of file indeo.h.


Enumeration Type Documentation

anonymous enum

Indeo 4 frame types.

Enumerator:
IVI4_FRAMETYPE_INTRA 
IVI4_FRAMETYPE_INTRA1 

intra frame with slightly different bitstream coding

IVI4_FRAMETYPE_INTER 

non-droppable P-frame

IVI4_FRAMETYPE_BIDIR 

bidirectional frame

IVI4_FRAMETYPE_INTER_NOREF 

droppable P-frame

IVI4_FRAMETYPE_NULL_FIRST 

empty frame with no data

IVI4_FRAMETYPE_NULL_LAST 

empty frame with no data

Definition at line 48 of file indeo.h.

anonymous enum
Enumerator:
IVI_MB_HUFF 
IVI_BLK_HUFF 

Huffman table is used for coding macroblocks.

Definition at line 58 of file indeo.h.

Enumerator:
INIT_VLC_LE 
INIT_VLC_USE_NEW_STATIC 

Definition at line 41 of file vlc.h.


Function Documentation

uint8 Image::Indeo::avClipUint8 ( int  a  )  [inline]

Clip a signed integer value into the 0-255 range.

Parameters:
a value to clip
Returns:
clipped value

Definition at line 85 of file mem.h.

unsigned Image::Indeo::avClipUintp2 ( int  a,
int  p 
) [inline]

Clip a signed integer to an unsigned power of two range.

Parameters:
a value to clip
p bit position to clip at
Returns:
clipped value

Definition at line 98 of file mem.h.

void Image::Indeo::avFreeP ( void *  arg  ) 

Free a memory block which has been allocated with a function of av_malloc() or av_realloc() family, and set the pointer pointing to it to `NULL`.

Parameters:
ptr Pointer to the pointer to the memory block which should be freed
Note:
`*ptr = NULL` is safe and leads to no action.
void * Image::Indeo::avReallocF ( void *  ptr,
size_t  nelem,
size_t  elsize 
)

Allocate, reallocate, or free a block of memory.

This function does the same thing as av_realloc(), except:

  • It takes two size arguments and allocates `nelem * elsize` bytes, after checking the result of the multiplication for integer overflow.
  • It frees the input block in case of failure, thus avoiding the memory leak with the classic
     {.c}
       buf = realloc(buf);
       if (!buf)
           return -1;
    
    pattern.
static int Image::Indeo::avSizeMult ( size_t  a,
size_t  b,
size_t *  r 
) [inline, static]

Multiply two `size_t` values checking for overflow.

Parameters:
[in] a,b Operands of multiplication
[out] r Pointer to the result of the operation
Returns:
0 on success, AVERROR(EINVAL) on overflow

Definition at line 73 of file mem.cpp.

uint32 Image::Indeo::bitswap32 ( uint32  x  ) 

Swap the order of the bytes in the passed value.

uint16 Image::Indeo::invertBits ( uint16  val,
int  nbits 
)

Reverse "nbits" bits of the value "val" and return the result in the least significant bits.


Variable Documentation

Initial value:
 {
    0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,
    0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8, 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8,
    0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4, 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4,
    0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC, 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC,
    0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2, 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2,
    0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA, 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA,
    0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6, 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6,
    0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE, 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE,
    0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1, 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1,
    0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9, 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9,
    0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5, 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5,
    0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED, 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD,
    0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3, 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3,
    0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB, 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB,
    0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7, 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7,
    0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF, 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF,
}

Definition at line 34 of file mem.cpp.

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

Definition at line 53 of file mem.cpp.

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

static block huffman tables

Definition at line 64 of file indeo.cpp.

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

These are 2x8 predefined Huffman codebooks for coding macroblock/block signals.

They are specified using "huffman descriptors" in order to avoid huge static tables. The decoding tables will be generated at startup from these descriptors. Static macroblock huffman tables

Definition at line 50 of file indeo.cpp.



Generated on Sat Nov 16 2019 05:03:24 for ResidualVM by doxygen 1.7.1
curved edge   curved edge