FFmpeg
|
This file contains functions and data shared by both Indeo4 and Indeo5 decoders. More...
#include "libavutil/attributes.h"
#include "avcodec.h"
#include "get_bits.h"
#include "internal.h"
#include "mathops.h"
#include "ivi_common.h"
#include "ivi_dsp.h"
Go to the source code of this file.
Macros | |
#define | BITSTREAM_READER_LE |
Functions | |
static uint16_t | inv_bits (uint16_t val, int nbits) |
Reverse "nbits" bits of the value "val" and return the result in the least significant bits. More... | |
static int | ivi_create_huff_from_desc (const IVIHuffDesc *cb, VLC *vlc, int flag) |
void | ff_ivi_init_static_vlc (void) |
Initialize static codes used for macroblock and block decoding. More... | |
static void | ivi_huff_desc_copy (IVIHuffDesc *dst, const IVIHuffDesc *src) |
static int | ivi_huff_desc_cmp (const IVIHuffDesc *desc1, const IVIHuffDesc *desc2) |
int | ff_ivi_dec_huff_desc (GetBitContext *gb, int desc_coded, int which_tab, IVIHuffTab *huff_tab, AVCodecContext *avctx) |
Decode a huffman codebook descriptor from the bitstream and select specified huffman table. More... | |
static av_cold void | ivi_free_buffers (IVIPlaneDesc *planes) |
av_cold int | ff_ivi_init_planes (IVIPlaneDesc *planes, const IVIPicConfig *cfg) |
Initialize planes (prepares descriptors, allocates buffers etc). More... | |
av_cold int | ff_ivi_init_tiles (IVIPlaneDesc *planes, int tile_width, int tile_height) |
Initialize tile and macroblock descriptors. More... | |
static int | ivi_dec_tile_data_size (GetBitContext *gb) |
static int | ivi_decode_blocks (GetBitContext *gb, IVIBandDesc *band, IVITile *tile, AVCodecContext *avctx) |
static int | ivi_process_empty_tile (AVCodecContext *avctx, IVIBandDesc *band, IVITile *tile, int32_t mv_scale) |
Handle empty tiles by performing data copying and motion compensation respectively. More... | |
static void | ivi_output_plane (IVIPlaneDesc *plane, uint8_t *dst, int dst_pitch) |
static int | decode_band (IVI45DecContext *ctx, IVIBandDesc *band, AVCodecContext *avctx) |
Decode an Indeo 4 or 5 band. More... | |
int | ff_ivi_decode_frame (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt) |
av_cold int | ff_ivi_decode_close (AVCodecContext *avctx) |
Close Indeo5 decoder and clean up its context. More... | |
Variables | |
const IVIHuffDesc | ff_ivi_mb_huff_desc [8] |
static macroblock huffman tables More... | |
const IVIHuffDesc | ff_ivi_blk_huff_desc [8] |
static block huffman tables More... | |
static VLC | ivi_mb_vlc_tabs [8] |
static macroblock Huffman tables More... | |
static VLC | ivi_blk_vlc_tabs [8] |
static block Huffman tables More... | |
const uint8_t | ff_ivi_vertical_scan_8x8 [64] |
Scan patterns shared between indeo4 and indeo5. More... | |
const uint8_t | ff_ivi_horizontal_scan_8x8 [64] |
const uint8_t | ff_ivi_direct_scan_4x4 [16] |
const RVMapDesc | ff_ivi_rvmap_tabs [9] |
Run-value (RLE) tables. More... | |
Detailed Description
This file contains functions and data shared by both Indeo4 and Indeo5 decoders.
Definition in file ivi_common.c.
Macro Definition Documentation
#define BITSTREAM_READER_LE |
Definition at line 29 of file ivi_common.c.
Function Documentation
|
static |
Decode an Indeo 4 or 5 band.
- Parameters
-
[in,out] ctx ptr to the decoder context [in,out] band ptr to the band descriptor [in] avctx ptr to the AVCodecContext
- Returns
- result code: 0 = OK, -1 = error
Definition at line 737 of file ivi_common.c.
Referenced by ff_ivi_decode_frame().
int ff_ivi_dec_huff_desc | ( | GetBitContext * | gb, |
int | desc_coded, | ||
int | which_tab, | ||
IVIHuffTab * | huff_tab, | ||
AVCodecContext * | avctx | ||
) |
Decode a huffman codebook descriptor from the bitstream and select specified huffman table.
- Parameters
-
[in,out] gb the GetBit context [in] desc_coded flag signalling if table descriptor was coded [in] which_tab codebook purpose (IVI_MB_HUFF or IVI_BLK_HUFF) [out] huff_tab pointer to the descriptor of the selected table [in] avctx AVCodecContext pointer
- Returns
- zero on success, negative value otherwise
Definition at line 147 of file ivi_common.c.
Referenced by decode_band_hdr(), decode_pic_hdr(), and ivi_scale_mv().
av_cold int ff_ivi_decode_close | ( | AVCodecContext * | avctx | ) |
Close Indeo5 decoder and clean up its context.
Definition at line 931 of file ivi_common.c.
Referenced by ivi_scale_mv().
int ff_ivi_decode_frame | ( | AVCodecContext * | avctx, |
void * | data, | ||
int * | got_frame, | ||
AVPacket * | avpkt | ||
) |
Definition at line 844 of file ivi_common.c.
Referenced by ivi_scale_mv().
av_cold int ff_ivi_init_planes | ( | IVIPlaneDesc * | planes, |
const IVIPicConfig * | cfg | ||
) |
Initialize planes (prepares descriptors, allocates buffers etc).
- Parameters
-
[in,out] planes pointer to the array of the plane descriptors [in] cfg pointer to the ivi_pic_config structure describing picture layout
- Returns
- result code: 0 - OK
Definition at line 222 of file ivi_common.c.
Referenced by decode_gop_header(), decode_init(), decode_pic_hdr(), and ivi_scale_mv().
Initialize static codes used for macroblock and block decoding.
Definition at line 103 of file ivi_common.c.
Referenced by decode_init(), and ivi_scale_mv().
av_cold int ff_ivi_init_tiles | ( | IVIPlaneDesc * | planes, |
int | tile_width, | ||
int | tile_height | ||
) |
Initialize tile and macroblock descriptors.
- Parameters
-
[in,out] planes pointer to the array of the plane descriptors [in] tile_width tile width [in] tile_height tile height
- Returns
- result code: 0 - OK
Definition at line 286 of file ivi_common.c.
Referenced by decode_gop_header(), decode_pic_hdr(), and ivi_scale_mv().
|
static |
Reverse "nbits" bits of the value "val" and return the result in the least significant bits.
Definition at line 48 of file ivi_common.c.
Referenced by ivi_create_huff_from_desc().
|
static |
Definition at line 69 of file ivi_common.c.
Referenced by ff_ivi_dec_huff_desc(), and ff_ivi_init_static_vlc().
|
static |
Definition at line 366 of file ivi_common.c.
Referenced by decode_band().
|
static |
Definition at line 394 of file ivi_common.c.
Referenced by decode_band().
|
static |
Definition at line 201 of file ivi_common.c.
Referenced by ff_ivi_decode_close(), and ff_ivi_init_planes().
|
static |
Definition at line 141 of file ivi_common.c.
Referenced by ff_ivi_dec_huff_desc().
|
static |
Definition at line 128 of file ivi_common.c.
Referenced by ff_ivi_dec_huff_desc().
|
static |
Definition at line 712 of file ivi_common.c.
Referenced by ff_ivi_decode_frame().
|
static |
Handle empty tiles by performing data copying and motion compensation respectively.
- Parameters
-
[in] avctx ptr to the AVCodecContext [in] band pointer to the band descriptor [in] tile pointer to the tile descriptor [in] mv_scale scaling factor for motion vectors
Definition at line 567 of file ivi_common.c.
Referenced by decode_band().
Variable Documentation
const IVIHuffDesc ff_ivi_blk_huff_desc |
static block huffman tables
Definition at line 978 of file ivi_common.c.
const uint8_t ff_ivi_direct_scan_4x4[16] |
Definition at line 1015 of file ivi_common.c.
Referenced by decode_gop_header().
const uint8_t ff_ivi_horizontal_scan_8x8[64] |
Definition at line 1004 of file ivi_common.c.
Referenced by decode_gop_header().
const IVIHuffDesc ff_ivi_mb_huff_desc |
static macroblock huffman tables
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.
Definition at line 967 of file ivi_common.c.
const RVMapDesc ff_ivi_rvmap_tabs[9] |
const uint8_t ff_ivi_vertical_scan_8x8[64] |
Scan patterns shared between indeo4 and indeo5.
Common scan patterns (defined in ivi_common.c)
Definition at line 993 of file ivi_common.c.
Referenced by decode_gop_header().
|
static |
static block Huffman tables
Definition at line 42 of file ivi_common.c.
|
static |
static macroblock Huffman tables
Definition at line 41 of file ivi_common.c.
Generated on Mon Nov 18 2024 06:52:07 for FFmpeg by 1.8.11