Go to the source code of this file.
Data Structures | |
struct | cavs_vector |
struct | dec_2dvlc |
struct | AVSContext |
Macros | |
#define | SLICE_MAX_START_CODE 0x000001af |
#define | EXT_START_CODE 0x000001b5 |
#define | USER_START_CODE 0x000001b2 |
#define | CAVS_START_CODE 0x000001b0 |
#define | PIC_I_START_CODE 0x000001b3 |
#define | PIC_PB_START_CODE 0x000001b6 |
#define | A_AVAIL 1 |
#define | B_AVAIL 2 |
#define | C_AVAIL 4 |
#define | D_AVAIL 8 |
#define | NOT_AVAIL -1 |
#define | REF_INTRA -2 |
#define | REF_DIR -3 |
#define | ESCAPE_CODE 59 |
#define | FWD0 0x01 |
#define | FWD1 0x02 |
#define | BWD0 0x04 |
#define | BWD1 0x08 |
#define | SYM0 0x10 |
#define | SYM1 0x20 |
#define | SPLITH 0x40 |
#define | SPLITV 0x80 |
#define | MV_BWD_OFFS 12 |
#define | MV_STRIDE 4 |
Enumerations | |
enum | cavs_mb { I_8X8 = 0, P_SKIP, P_16X16, P_16X8, P_8X16, P_8X8, B_SKIP, B_DIRECT, B_FWD_16X16, B_BWD_16X16, B_SYM_16X16, B_8X8 = 29 } |
enum | cavs_sub_mb { B_SUB_DIRECT, B_SUB_FWD, B_SUB_BWD, B_SUB_SYM } |
enum | cavs_intra_luma { INTRA_L_VERT, INTRA_L_HORIZ, INTRA_L_LP, INTRA_L_DOWN_LEFT, INTRA_L_DOWN_RIGHT, INTRA_L_LP_LEFT, INTRA_L_LP_TOP, INTRA_L_DC_128 } |
enum | cavs_intra_chroma { INTRA_C_LP, INTRA_C_HORIZ, INTRA_C_VERT, INTRA_C_PLANE, INTRA_C_LP_LEFT, INTRA_C_LP_TOP, INTRA_C_DC_128 } |
enum | cavs_mv_pred { MV_PRED_MEDIAN, MV_PRED_LEFT, MV_PRED_TOP, MV_PRED_TOPRIGHT, MV_PRED_PSKIP, MV_PRED_BSKIP } |
enum | cavs_block { BLK_16X16, BLK_16X8, BLK_8X16, BLK_8X8 } |
enum | cavs_mv_loc { MV_FWD_D3 = 0, MV_FWD_B2, MV_FWD_B3, MV_FWD_C2, MV_FWD_A1, MV_FWD_X0, MV_FWD_X1, MV_FWD_A3 = 8, MV_FWD_X2, MV_FWD_X3, MV_BWD_D3 = MV_BWD_OFFS, MV_BWD_B2, MV_BWD_B3, MV_BWD_C2, MV_BWD_A1, MV_BWD_X0, MV_BWD_X1, MV_BWD_A3 = MV_BWD_OFFS+8, MV_BWD_X2, MV_BWD_X3 } |
Functions | |
static void | modify_pred (const int8_t *mod_table, int *mode) |
static void | set_intra_mode_default (AVSContext *h) |
static void | set_mvs (cavs_vector *mv, enum cavs_block size) |
static void | set_mv_intra (AVSContext *h) |
static int | dequant (AVSContext *h, DCTELEM *level_buf, uint8_t *run_buf, DCTELEM *dst, int mul, int shift, int coeff_num) |
void | ff_cavs_filter (AVSContext *h, enum cavs_mb mb_type) |
in-loop deblocking filter for a single macroblock | |
void | ff_cavs_load_intra_pred_luma (AVSContext *h, uint8_t *top, uint8_t **left, int block) |
void | ff_cavs_load_intra_pred_chroma (AVSContext *h) |
void | ff_cavs_modify_mb_i (AVSContext *h, int *pred_mode_uv) |
void | ff_cavs_inter (AVSContext *h, enum cavs_mb mb_type) |
void | ff_cavs_mv (AVSContext *h, enum cavs_mv_loc nP, enum cavs_mv_loc nC, enum cavs_mv_pred mode, enum cavs_block size, int ref) |
void | ff_cavs_init_mb (AVSContext *h) |
initialise predictors for motion vectors and intra prediction | |
int | ff_cavs_next_mb (AVSContext *h) |
save predictors for later macroblocks and increase macroblock address | |
void | ff_cavs_init_pic (AVSContext *h) |
void | ff_cavs_init_top_lines (AVSContext *h) |
some predictions require data from the top-neighbouring macroblock. | |
int | ff_cavs_init (AVCodecContext *avctx) |
int | ff_cavs_end (AVCodecContext *avctx) |
Variables | |
const uint8_t | ff_cavs_dequant_shift [64] |
const uint16_t | ff_cavs_dequant_mul [64] |
struct dec_2dvlc | ff_cavs_intra_dec [7] |
struct dec_2dvlc | ff_cavs_inter_dec [7] |
struct dec_2dvlc | ff_cavs_chroma_dec [5] |
const uint8_t | ff_cavs_chroma_qp [64] |
const uint8_t | ff_cavs_scan3x3 [4] |
const uint8_t | ff_cavs_partition_flags [30] |
const int8_t | ff_left_modifier_l [8] |
const int8_t | ff_top_modifier_l [8] |
const int8_t | ff_left_modifier_c [7] |
const int8_t | ff_top_modifier_c [7] |
const cavs_vector | ff_cavs_intra_mv |
mark block as using intra prediction | |
const cavs_vector | ff_cavs_un_mv |
mark block as unavailable, i.e. | |
const cavs_vector | ff_cavs_dir_mv |
mark block as "no prediction from this direction" e.g. |
#define A_AVAIL 1 |
Definition at line 36 of file cavs.h.
Referenced by ff_cavs_filter(), ff_cavs_load_intra_pred_luma(), ff_cavs_modify_mb_i(), and ff_cavs_next_mb().
#define B_AVAIL 2 |
Definition at line 37 of file cavs.h.
Referenced by decode_slice_header(), ff_cavs_filter(), ff_cavs_init_mb(), ff_cavs_load_intra_pred_luma(), ff_cavs_modify_mb_i(), and ff_cavs_next_mb().
#define BWD0 0x04 |
Definition at line 48 of file cavs.h.
Referenced by decode_mb_b().
#define BWD1 0x08 |
Definition at line 49 of file cavs.h.
Referenced by decode_mb_b().
#define C_AVAIL 4 |
Definition at line 38 of file cavs.h.
Referenced by decode_slice_header(), ff_cavs_init_mb(), ff_cavs_load_intra_pred_luma(), and ff_cavs_next_mb().
#define CAVS_START_CODE 0x000001b0 |
Definition at line 32 of file cavs.h.
Referenced by cavs_decode_frame().
#define D_AVAIL 8 |
Definition at line 39 of file cavs.h.
Referenced by ff_cavs_init_mb().
#define ESCAPE_CODE 59 |
Definition at line 44 of file cavs.h.
Referenced by decode_residual_block().
#define EXT_START_CODE 0x000001b5 |
Definition at line 30 of file cavs.h.
Referenced by cavs_decode_frame(), decode_chunks(), ff_mpeg1_find_frame_end(), mpeg1_encode_picture_header(), mpeg1_encode_sequence_header(), and mpegvideo_extract_headers().
#define FWD0 0x01 |
Definition at line 46 of file cavs.h.
Referenced by decode_mb_b().
#define FWD1 0x02 |
Definition at line 47 of file cavs.h.
Referenced by decode_mb_b().
#define MV_BWD_OFFS 12 |
Definition at line 55 of file cavs.h.
Referenced by decode_mb_b(), get_bs(), mc_part_std(), mv_pred_direct(), and mv_pred_sym().
#define NOT_AVAIL -1 |
Definition at line 40 of file cavs.h.
Referenced by decode_mb_i(), ff_cavs_init_mb(), ff_cavs_init_pic(), ff_cavs_mv(), ff_cavs_next_mb(), and set_intra_mode_default().
#define PIC_I_START_CODE 0x000001b3 |
Definition at line 33 of file cavs.h.
Referenced by cavs_decode_frame(), and cavs_find_frame_end().
#define PIC_PB_START_CODE 0x000001b6 |
Definition at line 34 of file cavs.h.
Referenced by cavs_decode_frame(), cavs_find_frame_end(), and decode_pic().
#define SLICE_MAX_START_CODE 0x000001af |
Definition at line 29 of file cavs.h.
Referenced by cavs_decode_frame(), cavs_find_frame_end(), decode_chunks(), ff_mpeg1_find_frame_end(), and mpegvideo_extract_headers().
#define SPLITH 0x40 |
Definition at line 52 of file cavs.h.
Referenced by ff_cavs_filter().
#define SPLITV 0x80 |
Definition at line 53 of file cavs.h.
Referenced by ff_cavs_filter().
#define SYM0 0x10 |
Definition at line 50 of file cavs.h.
Referenced by decode_mb_b().
#define SYM1 0x20 |
Definition at line 51 of file cavs.h.
Referenced by decode_mb_b().
#define USER_START_CODE 0x000001b2 |
Definition at line 31 of file cavs.h.
Referenced by cavs_decode_frame(), decode_chunks(), and mpeg1_encode_picture_header().
enum cavs_block |
enum cavs_intra_chroma |
enum cavs_intra_luma |
enum cavs_mb |
enum cavs_mv_loc |
enum cavs_mv_pred |
enum cavs_sub_mb |
|
inlinestatic |
Definition at line 286 of file cavs.h.
Referenced by decode_residual_block().
int ff_cavs_end | ( | AVCodecContext * | avctx | ) |
void ff_cavs_filter | ( | AVSContext * | h, |
enum cavs_mb | mb_type | ||
) |
in-loop deblocking filter for a single macroblock
boundary strength (bs) mapping:
–4—5– 0 2 | | 6 | 7 |
Definition at line 75 of file cavs.c.
Referenced by decode_mb_b(), decode_mb_i(), and decode_mb_p().
int ff_cavs_init | ( | AVCodecContext * | avctx | ) |
void ff_cavs_init_mb | ( | AVSContext * | h | ) |
initialise predictors for motion vectors and intra prediction
Definition at line 537 of file cavs.c.
Referenced by decode_mb_b(), decode_mb_i(), and decode_mb_p().
void ff_cavs_init_pic | ( | AVSContext * | h | ) |
Definition at line 621 of file cavs.c.
Referenced by decode_pic().
void ff_cavs_init_top_lines | ( | AVSContext * | h | ) |
some predictions require data from the top-neighbouring macroblock.
this data has to be stored for one complete row of macroblocks and this storage space is allocated here
Definition at line 654 of file cavs.c.
Referenced by decode_seq_header().
void ff_cavs_inter | ( | AVSContext * | h, |
enum cavs_mb | mb_type | ||
) |
Definition at line 414 of file cavs.c.
Referenced by decode_mb_b(), and decode_mb_p().
void ff_cavs_load_intra_pred_chroma | ( | AVSContext * | h | ) |
Definition at line 197 of file cavs.c.
Referenced by decode_mb_i().
void ff_cavs_load_intra_pred_luma | ( | AVSContext * | h, |
uint8_t * | top, | ||
uint8_t ** | left, | ||
int | block | ||
) |
Definition at line 147 of file cavs.c.
Referenced by decode_mb_i().
void ff_cavs_modify_mb_i | ( | AVSContext * | h, |
int * | pred_mode_uv | ||
) |
Definition at line 301 of file cavs.c.
Referenced by decode_mb_i().
void ff_cavs_mv | ( | AVSContext * | h, |
enum cavs_mv_loc | nP, | ||
enum cavs_mv_loc | nC, | ||
enum cavs_mv_pred | mode, | ||
enum cavs_block | size, | ||
int | ref | ||
) |
Definition at line 484 of file cavs.c.
Referenced by decode_mb_b(), and decode_mb_p().
int ff_cavs_next_mb | ( | AVSContext * | h | ) |
save predictors for later macroblocks and increase macroblock address
Definition at line 577 of file cavs.c.
Referenced by decode_pic().
|
inlinestatic |
Definition at line 244 of file cavs.h.
Referenced by ff_cavs_modify_mb_i().
|
inlinestatic |
Definition at line 253 of file cavs.h.
Referenced by decode_mb_b(), and decode_mb_p().
|
inlinestatic |
Definition at line 277 of file cavs.h.
Referenced by decode_mb_i().
|
inlinestatic |
Definition at line 263 of file cavs.h.
Referenced by decode_mb_b(), ff_cavs_init_pic(), ff_cavs_mv(), mv_pred_sym(), and set_mv_intra().
struct dec_2dvlc ff_cavs_chroma_dec[5] |
Definition at line 378 of file cavsdata.h.
Referenced by decode_residual_chroma().
const uint8_t ff_cavs_chroma_qp[64] |
Definition at line 62 of file cavsdata.h.
Referenced by decode_residual_chroma().
const uint16_t ff_cavs_dequant_mul[64] |
Definition at line 80 of file cavsdata.h.
Referenced by decode_residual_block().
const uint8_t ff_cavs_dequant_shift[64] |
Definition at line 69 of file cavsdata.h.
Referenced by decode_residual_block().
const cavs_vector ff_cavs_dir_mv |
mark block as "no prediction from this direction" e.g.
forward motion vector in BWD partition
Definition at line 97 of file cavsdata.h.
Referenced by decode_mb_b(), and ff_cavs_init_pic().
struct dec_2dvlc ff_cavs_inter_dec[7] |
Definition at line 241 of file cavsdata.h.
Referenced by decode_residual_inter().
struct dec_2dvlc ff_cavs_intra_dec[7] |
Definition at line 104 of file cavsdata.h.
Referenced by decode_mb_i().
const cavs_vector ff_cavs_intra_mv |
mark block as using intra prediction
Definition at line 100 of file cavsdata.h.
Referenced by set_mv_intra().
const uint8_t ff_cavs_partition_flags[30] |
Definition at line 27 of file cavsdata.h.
Referenced by decode_mb_b(), ff_cavs_filter(), and ff_cavs_inter().
const uint8_t ff_cavs_scan3x3[4] |
Definition at line 60 of file cavsdata.h.
Referenced by decode_mb_i().
const cavs_vector ff_cavs_un_mv |
mark block as unavailable, i.e.
out of picture or not yet decoded
Definition at line 93 of file cavsdata.h.
Referenced by ff_cavs_init(), ff_cavs_init_mb(), ff_cavs_init_pic(), ff_cavs_mv(), and ff_cavs_next_mb().
const int8_t ff_left_modifier_c[7] |
Definition at line 502 of file cavsdata.h.
Referenced by ff_cavs_modify_mb_i().
const int8_t ff_left_modifier_l[8] |
Definition at line 500 of file cavsdata.h.
Referenced by ff_cavs_modify_mb_i().
const int8_t ff_top_modifier_c[7] |
Definition at line 503 of file cavsdata.h.
Referenced by ff_cavs_modify_mb_i().
const int8_t ff_top_modifier_l[8] |
Definition at line 501 of file cavsdata.h.
Referenced by ff_cavs_modify_mb_i().