22 #ifndef AVCODEC_CAVS_H
23 #define AVCODEC_CAVS_H
32 #define SLICE_MAX_START_CODE 0x000001af
33 #define EXT_START_CODE 0x000001b5
34 #define USER_START_CODE 0x000001b2
35 #define CAVS_START_CODE 0x000001b0
36 #define PIC_I_START_CODE 0x000001b3
37 #define PIC_PB_START_CODE 0x000001b6
47 #define ESCAPE_CODE 59
58 #define MV_BWD_OFFS 12
void(* intra_pred_c[7])(uint8_t *d, uint8_t *top, uint8_t *left, int stride)
This structure describes decoded (raw) audio or video data.
uint8_t * edge_emu_buffer
int direct_den[2]
for scaling in direct B block
const cavs_vector ff_cavs_intra_mv
mark block as using intra prediction
int mbidx
macroblock coordinates
const uint8_t ff_cavs_chroma_qp[64]
#define DECLARE_ALIGNED(n, t, v)
void ff_cavs_modify_mb_i(AVSContext *h, int *pred_mode_uv)
void ff_cavs_init_mb(AVSContext *h)
initialise predictors for motion vectors and intra prediction
int ff_cavs_init(AVCodecContext *avctx)
uint8_t intern_border_y[26]
void ff_cavs_load_intra_pred_luma(AVSContext *h, uint8_t *top, uint8_t **left, int block)
uint8_t * top_border_y
intra prediction is done with un-deblocked samples they are saved here before deblocking the MB ...
cavs_vector mv[2 *4 *3]
mv motion vector cache 0: D3 B2 B3 C2 4: A1 X0 X1 - 8: A3 X2 X3 -
bitstream reader API header.
int dist[2]
temporal distances from current frame to ref frames
int ff_cavs_next_mb(AVSContext *h)
save predictors for later macroblocks and increase macroblock address
void ff_cavs_load_intra_pred_chroma(AVSContext *h)
int scale_den[2]
for scaling neighbouring MVs
int ff_cavs_end(AVCodecContext *avctx)
AVSFrame cur
currently decoded frame
int ff_cavs_init_top_lines(AVSContext *h)
some predictions require data from the top-neighbouring macroblock.
uint8_t left_border_y[26]
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)
int skip_mode_flag
select between skip_count or one skip_flag per MB
uint8_t * cv
current MB sample pointers
int stream_revision
0 for samples from 2006, 1 for rm52j encoder
uint8_t left_border_u[10]
typedef void(APIENTRY *FF_PFNGLACTIVETEXTUREPROC)(GLenum texture)
const uint8_t ff_cavs_partition_flags[30]
void(* intra_pred_l[8])(uint8_t *d, uint8_t *top, uint8_t *left, int stride)
const cavs_vector ff_cavs_dir_mv
mark block as "no prediction from this direction" e.g.
uint8_t left_border_v[10]
static const int8_t mv[256][2]
void ff_cavs_inter(AVSContext *h, enum cavs_mb mb_type)
main external API structure.
int sym_factor
for scaling in symmetrical B block
int pred_mode_Y[3 *3]
luma pred mode cache 0: – B2 B3 3: A1 X0 X1 6: A3 X2 X3
void ff_cavs_filter(AVSContext *h, enum cavs_mb mb_type)
in-loop deblocking filter for a single macroblock
static int ref[MAX_W *MAX_W]
int flags
availability flags of neighbouring macroblocks
Core video DSP helper functions.
Decoded Picture Buffer (DPB).
static void set_mvs(cavs_vector *mv, enum cavs_block size)
H264ChromaContext h264chroma
int ff_cavs_init_pic(AVSContext *h)