#include "avcodec.h"
#include "get_bits.h"
#include "dsputil.h"
#include "ivi_dsp.h"
#include "ivi_common.h"
#include "indeo4data.h"
Go to the source code of this file.
Defines | |
#define | BITSTREAM_READER_LE |
#define | IVI4_PIC_SIZE_ESC 7 |
Enumerations | |
enum | { FRAMETYPE_INTRA = 0, FRAMETYPE_BIDIR1 = 1, FRAMETYPE_INTER = 2, FRAMETYPE_BIDIR = 3, FRAMETYPE_INTER_NOREF = 4, FRAMETYPE_NULL_FIRST = 5, FRAMETYPE_NULL_LAST = 6 } |
Indeo 4 frame types. More... | |
Functions | |
static int | decode_plane_subdivision (GetBitContext *gb) |
Decode subdivision of a plane. | |
static int | scale_tile_size (int def_size, int size_factor) |
static int | decode_pic_hdr (IVI45DecContext *ctx, AVCodecContext *avctx) |
Decode Indeo 4 picture header. | |
static int | decode_band_hdr (IVI45DecContext *ctx, IVIBandDesc *band, AVCodecContext *avctx) |
Decode Indeo 4 band header. | |
static int | decode_mb_info (IVI45DecContext *ctx, IVIBandDesc *band, IVITile *tile, AVCodecContext *avctx) |
Decode information (block type, cbp, quant delta, motion vector) for all macroblocks in the current tile. | |
static void | switch_buffers (IVI45DecContext *ctx) |
Rearrange decoding and reference buffers. | |
static int | is_nonnull_frame (IVI45DecContext *ctx) |
static av_cold int | decode_init (AVCodecContext *avctx) |
Variables | |
struct { | |
InvTransformPtr * inv_trans | |
DCTransformPtr * dc_trans | |
int is_2d_trans | |
} | transforms [18] |
AVCodec | ff_indeo4_decoder |
Indeo 4 data is usually transported within .avi or .mov files. Known FOURCCs: 'IV41'
Definition in file indeo4.c.
#define IVI4_PIC_SIZE_ESC 7 |
anonymous enum |
static int decode_band_hdr | ( | IVI45DecContext * | ctx, | |
IVIBandDesc * | band, | |||
AVCodecContext * | avctx | |||
) | [static] |
Decode Indeo 4 band header.
[in,out] | ctx | pointer to the decoder context |
[in,out] | band | pointer to the band descriptor |
[in] | avctx | pointer to the AVCodecContext |
Definition at line 282 of file indeo4.c.
Referenced by decode_init().
static av_cold int decode_init | ( | AVCodecContext * | avctx | ) | [static] |
static int decode_mb_info | ( | IVI45DecContext * | ctx, | |
IVIBandDesc * | band, | |||
IVITile * | tile, | |||
AVCodecContext * | avctx | |||
) | [static] |
Decode information (block type, cbp, quant delta, motion vector) for all macroblocks in the current tile.
[in,out] | ctx | pointer to the decoder context |
[in,out] | band | pointer to the band descriptor |
[in,out] | tile | pointer to the tile descriptor |
[in] | avctx | pointer to the AVCodecContext |
Definition at line 418 of file indeo4.c.
Referenced by decode_init().
static int decode_pic_hdr | ( | IVI45DecContext * | ctx, | |
AVCodecContext * | avctx | |||
) | [static] |
Decode Indeo 4 picture header.
[in,out] | ctx | pointer to the decoder context |
[in] | avctx | pointer to the AVCodecContext |
Definition at line 118 of file indeo4.c.
Referenced by decode_init().
static int decode_plane_subdivision | ( | GetBitContext * | gb | ) | [static] |
Decode subdivision of a plane.
This is a simplified version that checks for two supported subdivisions:
[in,out] | gb | the GetBit context |
Definition at line 89 of file indeo4.c.
Referenced by decode_pic_hdr().
static int is_nonnull_frame | ( | IVI45DecContext * | ctx | ) | [static] |
static int scale_tile_size | ( | int | def_size, | |
int | size_factor | |||
) | [inline, static] |
static void switch_buffers | ( | IVI45DecContext * | ctx | ) | [static] |
Rearrange decoding and reference buffers.
[in,out] | ctx | pointer to the decoder context |
Definition at line 543 of file indeo4.c.
Referenced by decode_init().
Initial value:
{ .name = "indeo4", .type = AVMEDIA_TYPE_VIDEO, .id = CODEC_ID_INDEO4, .priv_data_size = sizeof(IVI45DecContext), .init = decode_init, .close = ff_ivi_decode_close, .decode = ff_ivi_decode_frame, .long_name = NULL_IF_CONFIG_SMALL("Intel Indeo Video Interactive 4"), }
int is_2d_trans |
struct { ... } transforms[18] [static] |
Referenced by decode_band_hdr().