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
Declare inverse transform function types.
Definition at line 66 of file indeo.h.
max number of bits of the ivi's huffman codes
Definition at line 70 of file indeo.h.
Enumeration Type Documentation
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.
- 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:
-
- 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.
Swap the order of the bytes in the passed value.
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 Feb 16 2019 05:05:37 for ResidualVM by 1.7.1
|
|