indeo3.c File Reference

This is a decoder for Intel Indeo Video v3. More...

#include "libavutil/imgutils.h"
#include "libavutil/intreadwrite.h"
#include "avcodec.h"
#include "copy_block.h"
#include "bytestream.h"
#include "get_bits.h"
#include "hpeldsp.h"
#include "internal.h"
#include "indeo3data.h"
Include dependency graph for indeo3.c:

Go to the source code of this file.

Data Structures

struct  Plane
 
struct  Cell
 
struct  Indeo3DecodeContext
 

Macros

#define BS_8BIT_PEL   (1 << 1)
 8bit pixel bitdepth indicator More...
 
#define BS_KEYFRAME   (1 << 2)
 intra frame indicator More...
 
#define BS_MV_Y_HALF   (1 << 4)
 vertical mv halfpel resolution indicator More...
 
#define BS_MV_X_HALF   (1 << 5)
 horizontal mv halfpel resolution indicator More...
 
#define BS_NONREF   (1 << 8)
 nonref (discardable) frame indicator More...
 
#define BS_BUFFER   9
 indicates which of two frame buffers should be used More...
 
#define CELL_STACK_MAX   20
 
#define AVG_32(dst, src, ref)   AV_WN32A(dst, ((AV_RN32A(src) + AV_RN32A(ref)) >> 1) & 0x7F7F7F7FUL)
 
#define AVG_64(dst, src, ref)   AV_WN64A(dst, ((AV_RN64A(src) + AV_RN64A(ref)) >> 1) & 0x7F7F7F7F7F7F7F7FULL)
 
#define BUFFER_PRECHECK
 
#define RLE_BLOCK_COPY
 
#define RLE_BLOCK_COPY_8
 
#define RLE_LINES_COPY   copy_block4(dst, ref, row_offset, row_offset, num_lines << v_zoom)
 
#define RLE_LINES_COPY_M10
 
#define APPLY_DELTA_4
 
#define APPLY_DELTA_8
 
#define APPLY_DELTA_1011_INTER
 
#define SPLIT_CELL(size, new_size)   (new_size) = ((size) > 2) ? ((((size) + 2) >> 2) << 1) : 1
 
#define UPDATE_BITPOS(n)
 
#define RESYNC_BITSTREAM
 
#define CHECK_CELL
 
#define OS_HDR_ID   MKBETAG('F', 'R', 'M', 'H')
 

Typedefs

typedef struct Plane Plane
 
typedef struct Cell Cell
 
typedef struct Indeo3DecodeContext Indeo3DecodeContext
 

Enumerations

enum  {
  RLE_ESC_F9 = 249, RLE_ESC_FA = 250, RLE_ESC_FB = 251, RLE_ESC_FC = 252,
  RLE_ESC_FD = 253, RLE_ESC_FE = 254, RLE_ESC_FF = 255
}
 
enum  {
  IV3_NOERR = 0, IV3_BAD_RLE = 1, IV3_BAD_DATA = 2, IV3_BAD_COUNTER = 3,
  IV3_UNSUPPORTED = 4, IV3_OUT_OF_DATA = 5
}
 
enum  { H_SPLIT = 0, V_SPLIT = 1, INTRA_NULL = 2, INTER_DATA = 3 }
 

Functions

static av_cold void build_requant_tab (void)
 
static av_cold int allocate_frame_buffers (Indeo3DecodeContext *ctx, AVCodecContext *avctx, int luma_width, int luma_height)
 
static av_cold void free_frame_buffers (Indeo3DecodeContext *ctx)
 
static int copy_cell (Indeo3DecodeContext *ctx, Plane *plane, Cell *cell)
 Copy pixels of the cell(x + mv_x, y + mv_y) from the previous frame into the cell(x, y) in the current frame. More...
 
static uint64_t replicate64 (uint64_t a)
 
static uint32_t replicate32 (uint32_t a)
 
static void fill_64 (uint8_t *dst, const uint64_t pix, int32_t n, int32_t row_offset)
 
static int decode_cell_data (Indeo3DecodeContext *ctx, Cell *cell, uint8_t *block, uint8_t *ref_block, int pitch, int h_zoom, int v_zoom, int mode, const vqEntry *delta[2], int swap_quads[2], const uint8_t **data_ptr, const uint8_t *last_ptr)
 
static int decode_cell (Indeo3DecodeContext *ctx, AVCodecContext *avctx, Plane *plane, Cell *cell, const uint8_t *data_ptr, const uint8_t *last_ptr)
 Decode a vector-quantized cell. More...
 
static int parse_bintree (Indeo3DecodeContext *ctx, AVCodecContext *avctx, Plane *plane, int code, Cell *ref_cell, const int depth, const int strip_width)
 
static int decode_plane (Indeo3DecodeContext *ctx, AVCodecContext *avctx, Plane *plane, const uint8_t *data, int32_t data_size, int32_t strip_width)
 
static int decode_frame_headers (Indeo3DecodeContext *ctx, AVCodecContext *avctx, const uint8_t *buf, int buf_size)
 
static void output_plane (const Plane *plane, int buf_sel, uint8_t *dst, int dst_pitch, int dst_height)
 Convert and output the current plane. More...
 
static av_cold int decode_init (AVCodecContext *avctx)
 
static int decode_frame (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
 
static av_cold int decode_close (AVCodecContext *avctx)
 

Variables

static uint8_t requant_tab [8][128]
 
AVCodec ff_indeo3_decoder
 

Detailed Description

This is a decoder for Intel Indeo Video v3.

It is based on vector quantization, run-length coding and motion compensation. Known container formats: .avi and .mov Known FOURCCs: 'IV31', 'IV32'

See also
http://wiki.multimedia.cx/index.php?title=Indeo_3

Definition in file indeo3.c.

Macro Definition Documentation

#define APPLY_DELTA_1011_INTER
Value:
if (mode == 10) { \
(AV_RN32A(dst ) + delta_tab->deltas_m10[dyad1]) & 0x7F7F7F7F);\
AV_WN32A(dst + 4 , \
(AV_RN32A(dst + 4 ) + delta_tab->deltas_m10[dyad2]) & 0x7F7F7F7F);\
AV_WN32A(dst + row_offset , \
(AV_RN32A(dst + row_offset ) + delta_tab->deltas_m10[dyad1]) & 0x7F7F7F7F);\
AV_WN32A(dst + row_offset + 4, \
(AV_RN32A(dst + row_offset + 4) + delta_tab->deltas_m10[dyad2]) & 0x7F7F7F7F);\
} else { \
(AV_RN16A(dst ) + delta_tab->deltas[dyad1]) & 0x7F7F);\
AV_WN16A(dst + 2 , \
(AV_RN16A(dst + 2 ) + delta_tab->deltas[dyad2]) & 0x7F7F);\
AV_WN16A(dst + row_offset , \
(AV_RN16A(dst + row_offset ) + delta_tab->deltas[dyad1]) & 0x7F7F);\
AV_WN16A(dst + row_offset + 2, \
(AV_RN16A(dst + row_offset + 2) + delta_tab->deltas[dyad2]) & 0x7F7F);\
}
#define AV_WN32A(p, v)
Definition: intreadwrite.h:530
#define AV_RN32A(p)
Definition: intreadwrite.h:518
mode
Definition: f_perms.c:27
#define AV_WN16A(p, v)
Definition: intreadwrite.h:526
else dst[i][x+y *dst_stride[i]]
Definition: vf_mcdeint.c:160
#define AV_RN16A(p)
Definition: intreadwrite.h:514

Definition at line 403 of file indeo3.c.

Referenced by decode_cell_data().

#define APPLY_DELTA_4
Value:
AV_WN16A(dst + line_offset ,\
(AV_RN16A(ref ) + delta_tab->deltas[dyad1]) & 0x7F7F);\
AV_WN16A(dst + line_offset + 2,\
(AV_RN16A(ref + 2) + delta_tab->deltas[dyad2]) & 0x7F7F);\
if (mode >= 3) {\
if (is_top_of_cell && !cell->ypos) {\
AV_COPY32(dst, dst + row_offset);\
} else {\
AVG_32(dst, ref, dst + row_offset);\
}\
}
FIXME Range Coding of cr are ref
Definition: snow.txt:367
#define AV_COPY32(d, s)
Definition: intreadwrite.h:578
initialize output if(nPeaks >3)%at least 3 peaks in spectrum for trying to find f0 nf0peaks
mode
Definition: f_perms.c:27
#define AVG_32(dst, src, ref)
Definition: indeo3.c:285
#define AV_WN16A(p, v)
Definition: intreadwrite.h:526
else dst[i][x+y *dst_stride[i]]
Definition: vf_mcdeint.c:160
#define AV_RN16A(p)
Definition: intreadwrite.h:514
In the ELBG jargon, a cell is the set of points that are closest to a codebook entry.
Definition: elbg.c:39

Definition at line 368 of file indeo3.c.

Referenced by decode_cell_data().

#define APPLY_DELTA_8
Value:
/* apply two 32-bit VQ deltas to next even line */\
if (is_top_of_cell) { \
AV_WN32A(dst + row_offset , \
(replicate32(AV_RN32A(ref )) + delta_tab->deltas_m10[dyad1]) & 0x7F7F7F7F);\
AV_WN32A(dst + row_offset + 4, \
(replicate32(AV_RN32A(ref + 4)) + delta_tab->deltas_m10[dyad2]) & 0x7F7F7F7F);\
} else { \
AV_WN32A(dst + row_offset , \
(AV_RN32A(ref ) + delta_tab->deltas_m10[dyad1]) & 0x7F7F7F7F);\
AV_WN32A(dst + row_offset + 4, \
(AV_RN32A(ref + 4) + delta_tab->deltas_m10[dyad2]) & 0x7F7F7F7F);\
} \
/* odd lines are not coded but rather interpolated/replicated */\
/* first line of the cell on the top of image? - replicate */\
/* otherwise - interpolate */\
if (is_top_of_cell && !cell->ypos) {\
AV_COPY64(dst, dst + row_offset);\
AVG_64(dst, ref, dst + row_offset);
FIXME Range Coding of cr are ref
Definition: snow.txt:367
#define AVG_64(dst, src, ref)
Definition: indeo3.c:288
#define AV_WN32A(p, v)
Definition: intreadwrite.h:530
initialize output if(nPeaks >3)%at least 3 peaks in spectrum for trying to find f0 nf0peaks
#define AV_RN32A(p)
Definition: intreadwrite.h:518
#define AV_COPY64(d, s)
Definition: intreadwrite.h:582
static uint32_t replicate32(uint32_t a)
Definition: indeo3.c:307
else dst[i][x+y *dst_stride[i]]
Definition: vf_mcdeint.c:160
In the ELBG jargon, a cell is the set of points that are closest to a codebook entry.
Definition: elbg.c:39

Definition at line 381 of file indeo3.c.

Referenced by decode_cell_data().

#define AVG_32 (   dst,
  src,
  ref 
)    AV_WN32A(dst, ((AV_RN32A(src) + AV_RN32A(ref)) >> 1) & 0x7F7F7F7FUL)

Definition at line 285 of file indeo3.c.

#define AVG_64 (   dst,
  src,
  ref 
)    AV_WN64A(dst, ((AV_RN64A(src) + AV_RN64A(ref)) >> 1) & 0x7F7F7F7F7F7F7F7FULL)

Definition at line 288 of file indeo3.c.

#define BS_8BIT_PEL   (1 << 1)

8bit pixel bitdepth indicator

Definition at line 56 of file indeo3.c.

Referenced by decode_frame_headers().

#define BS_BUFFER   9

indicates which of two frame buffers should be used

Definition at line 61 of file indeo3.c.

Referenced by decode_frame().

#define BS_KEYFRAME   (1 << 2)

intra frame indicator

Definition at line 57 of file indeo3.c.

Referenced by decode_frame().

#define BS_MV_X_HALF   (1 << 5)

horizontal mv halfpel resolution indicator

Definition at line 59 of file indeo3.c.

Referenced by decode_frame_headers().

#define BS_MV_Y_HALF   (1 << 4)

vertical mv halfpel resolution indicator

Definition at line 58 of file indeo3.c.

Referenced by decode_frame_headers().

#define BS_NONREF   (1 << 8)

nonref (discardable) frame indicator

Definition at line 60 of file indeo3.c.

Referenced by decode_frame().

#define BUFFER_PRECHECK
Value:
if (*data_ptr >= last_ptr) \
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame This method is called when a frame is wanted on an output For an it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return it should return

Definition at line 339 of file indeo3.c.

Referenced by decode_cell_data().

#define CELL_STACK_MAX   20

Definition at line 72 of file indeo3.c.

Referenced by decode_plane().

#define CHECK_CELL
Value:
if (curr_cell.xpos + curr_cell.width > (plane->width >> 2) || \
curr_cell.ypos + curr_cell.height > (plane->height >> 2)) { \
av_log(avctx, AV_LOG_ERROR, "Invalid cell: x=%d, y=%d, w=%d, h=%d\n", \
curr_cell.xpos, curr_cell.ypos, curr_cell.width, curr_cell.height); \
}
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
Definition: error.h:59
void av_log(void *avcl, int level, const char *fmt,...)
Definition: log.c:246
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
Definition: log.h:148
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame This method is called when a frame is wanted on an output For an it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return it should return

Definition at line 744 of file indeo3.c.

Referenced by parse_bintree().

#define OS_HDR_ID   MKBETAG('F', 'R', 'M', 'H')

Definition at line 893 of file indeo3.c.

Referenced by decode_frame_headers().

#define RESYNC_BITSTREAM
Value:
if (ctx->need_resync && !(get_bits_count(&ctx->gb) & 7)) { \
skip_bits_long(&ctx->gb, ctx->skip_bits); \
ctx->skip_bits = 0; \
ctx->need_resync = 0; \
}
static void skip_bits_long(GetBitContext *s, int n)
Definition: get_bits.h:198
static int get_bits_count(const GetBitContext *s)
Definition: get_bits.h:193

Definition at line 737 of file indeo3.c.

Referenced by parse_bintree().

#define RLE_BLOCK_COPY
Value:
if (cell->mv_ptr || !skip_flag) \
copy_block4(dst, ref, row_offset, row_offset, 4 << v_zoom)
FIXME Range Coding of cr are ref
Definition: snow.txt:367
static void copy_block4(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
Definition: copy_block.h:37
else dst[i][x+y *dst_stride[i]]
Definition: vf_mcdeint.c:160
In the ELBG jargon, a cell is the set of points that are closest to a codebook entry.
Definition: elbg.c:39

Definition at line 343 of file indeo3.c.

Referenced by decode_cell_data().

#define RLE_BLOCK_COPY_8
Value:
pix64 = AV_RN64A(ref);\
if (is_first_row) {/* special prediction case: top line of a cell */\
pix64 = replicate64(pix64);\
fill_64(dst + row_offset, pix64, 7, row_offset);\
AVG_64(dst, ref, dst + row_offset);\
fill_64(dst, pix64, 8, row_offset)
FIXME Range Coding of cr are ref
Definition: snow.txt:367
#define AVG_64(dst, src, ref)
Definition: indeo3.c:288
initialize output if(nPeaks >3)%at least 3 peaks in spectrum for trying to find f0 nf0peaks
static uint64_t replicate64(uint64_t a)
Definition: indeo3.c:296
static void fill_64(uint8_t *dst, const uint64_t pix, int32_t n, int32_t row_offset)
Definition: indeo3.c:320
else dst[i][x+y *dst_stride[i]]
Definition: vf_mcdeint.c:160
#define AV_RN64A(p)
Definition: intreadwrite.h:522

Definition at line 347 of file indeo3.c.

Referenced by decode_cell_data().

#define RLE_LINES_COPY   copy_block4(dst, ref, row_offset, row_offset, num_lines << v_zoom)

Definition at line 356 of file indeo3.c.

Referenced by decode_cell_data().

#define RLE_LINES_COPY_M10
Value:
pix64 = AV_RN64A(ref);\
if (is_top_of_cell) {\
pix64 = replicate64(pix64);\
fill_64(dst + row_offset, pix64, (num_lines << 1) - 1, row_offset);\
AVG_64(dst, ref, dst + row_offset);\
fill_64(dst, pix64, num_lines << 1, row_offset)
FIXME Range Coding of cr are ref
Definition: snow.txt:367
#define AVG_64(dst, src, ref)
Definition: indeo3.c:288
initialize output if(nPeaks >3)%at least 3 peaks in spectrum for trying to find f0 nf0peaks
static uint64_t replicate64(uint64_t a)
Definition: indeo3.c:296
static void fill_64(uint8_t *dst, const uint64_t pix, int32_t n, int32_t row_offset)
Definition: indeo3.c:320
else dst[i][x+y *dst_stride[i]]
Definition: vf_mcdeint.c:160
#define AV_RN64A(p)
Definition: intreadwrite.h:522

Definition at line 359 of file indeo3.c.

Referenced by decode_cell_data().

#define SPLIT_CELL (   size,
  new_size 
)    (new_size) = ((size) > 2) ? ((((size) + 2) >> 2) << 1) : 1

Definition at line 731 of file indeo3.c.

Referenced by parse_bintree().

#define UPDATE_BITPOS (   n)
Value:
ctx->skip_bits += (n); \
ctx->need_resync = 1

Definition at line 733 of file indeo3.c.

Referenced by parse_bintree().

Typedef Documentation

typedef struct Cell Cell
typedef struct Plane Plane

Enumeration Type Documentation

anonymous enum
Enumerator
RLE_ESC_F9 

same as RLE_ESC_FA + do the same with next block

RLE_ESC_FA 

INTRA: skip block, INTER: copy data from reference.

RLE_ESC_FB 

apply null delta to N blocks / skip N blocks

RLE_ESC_FC 

same as RLE_ESC_FD + do the same with next block

RLE_ESC_FD 

apply null delta to all remaining lines of this block

RLE_ESC_FE 

apply null delta to all lines up to the 3rd line

RLE_ESC_FF 

apply null delta to all lines up to the 2nd line

Definition at line 44 of file indeo3.c.

anonymous enum
Enumerator
IV3_NOERR 
IV3_BAD_RLE 
IV3_BAD_DATA 
IV3_BAD_COUNTER 
IV3_UNSUPPORTED 
IV3_OUT_OF_DATA 

Definition at line 329 of file indeo3.c.

anonymous enum
Enumerator
H_SPLIT 
V_SPLIT 
INTRA_NULL 
INTER_DATA 

Definition at line 723 of file indeo3.c.

Function Documentation

static av_cold int allocate_frame_buffers ( Indeo3DecodeContext ctx,
AVCodecContext avctx,
int  luma_width,
int  luma_height 
)
static

Definition at line 151 of file indeo3.c.

Referenced by decode_frame_headers(), and decode_init().

static av_cold void build_requant_tab ( void  )
static

Definition at line 119 of file indeo3.c.

Referenced by decode_init().

static int copy_cell ( Indeo3DecodeContext ctx,
Plane plane,
Cell cell 
)
static

Copy pixels of the cell(x + mv_x, y + mv_y) from the previous frame into the cell(x, y) in the current frame.

Parameters
ctxpointer to the decoder context
planepointer to the plane descriptor
cellpointer to the cell descriptor

Definition at line 229 of file indeo3.c.

Referenced by decode_cell(), and parse_bintree().

static int decode_cell ( Indeo3DecodeContext ctx,
AVCodecContext avctx,
Plane plane,
Cell cell,
const uint8_t data_ptr,
const uint8_t last_ptr 
)
static

Decode a vector-quantized cell.

It consists of several routines, each of which handles one or more "modes" with which a cell can be encoded.

Parameters
ctxpointer to the decoder context
avctxptr to the AVCodecContext
planepointer to the plane descriptor
cellpointer to the cell descriptor
data_ptrpointer to the compressed data
last_ptrpointer to the last byte to catch reads past end of buffer
Returns
number of consumed bytes or negative number in case of error

Definition at line 582 of file indeo3.c.

Referenced by parse_bintree().

static int decode_cell_data ( Indeo3DecodeContext ctx,
Cell cell,
uint8_t block,
uint8_t ref_block,
int  pitch,
int  h_zoom,
int  v_zoom,
int  mode,
const vqEntry delta[2],
int  swap_quads[2],
const uint8_t **  data_ptr,
const uint8_t last_ptr 
)
static

Definition at line 425 of file indeo3.c.

Referenced by decode_cell().

static av_cold int decode_close ( AVCodecContext avctx)
static

Definition at line 1125 of file indeo3.c.

static int decode_frame ( AVCodecContext avctx,
void data,
int *  got_frame,
AVPacket avpkt 
)
static

Definition at line 1063 of file indeo3.c.

static int decode_frame_headers ( Indeo3DecodeContext ctx,
AVCodecContext avctx,
const uint8_t buf,
int  buf_size 
)
static

Definition at line 895 of file indeo3.c.

Referenced by decode_frame().

static av_cold int decode_init ( AVCodecContext avctx)
static

Definition at line 1048 of file indeo3.c.

static int decode_plane ( Indeo3DecodeContext ctx,
AVCodecContext avctx,
Plane plane,
const uint8_t data,
int32_t  data_size,
int32_t  strip_width 
)
static

Definition at line 854 of file indeo3.c.

Referenced by decode_frame().

static void fill_64 ( uint8_t dst,
const uint64_t  pix,
int32_t  n,
int32_t  row_offset 
)
inlinestatic

Definition at line 320 of file indeo3.c.

static av_cold void free_frame_buffers ( Indeo3DecodeContext ctx)
static

Definition at line 206 of file indeo3.c.

Referenced by decode_close(), and decode_frame_headers().

static void output_plane ( const Plane plane,
int  buf_sel,
uint8_t dst,
int  dst_pitch,
int  dst_height 
)
static

Convert and output the current plane.

All pixel values will be upsampled by shifting right by one bit.

Parameters
[in]planepointer to the descriptor of the plane being processed
[in]buf_selindicates which frame buffer the input data stored in
[out]dstpointer to the buffer receiving converted pixels
[in]dst_pitchpitch for moving to the next y line
[in]dst_heightoutput plane height

Definition at line 1023 of file indeo3.c.

Referenced by decode_frame(), and render_slice().

static int parse_bintree ( Indeo3DecodeContext ctx,
AVCodecContext avctx,
Plane plane,
int  code,
Cell ref_cell,
const int  depth,
const int  strip_width 
)
static

Definition at line 753 of file indeo3.c.

Referenced by decode_plane().

static uint32_t replicate32 ( uint32_t  a)
inlinestatic

Definition at line 307 of file indeo3.c.

static uint64_t replicate64 ( uint64_t  a)
inlinestatic

Definition at line 296 of file indeo3.c.

Variable Documentation

AVCodec ff_indeo3_decoder
Initial value:
= {
.name = "indeo3",
.priv_data_size = sizeof(Indeo3DecodeContext),
.capabilities = CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("Intel Indeo 3"),
}
static av_cold int init(AVCodecContext *avctx)
Definition: avrndec.c:35
struct Indeo3DecodeContext Indeo3DecodeContext
static av_cold int decode_close(AVCodecContext *avctx)
Definition: indeo3.c:1125
#define CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
static void close(AVCodecParserContext *s)
Definition: h264_parser.c:375
static av_cold int decode_init(AVCodecContext *avctx)
Definition: indeo3.c:1048
static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
Definition: indeo3.c:1063
static int decode(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
Definition: crystalhd.c:868

Definition at line 1132 of file indeo3.c.

uint8_t requant_tab[8][128]
static

Definition at line 112 of file indeo3.c.

Referenced by build_requant_tab(), and decode_cell().