cavs.c File Reference


Detailed Description

Chinese AVS video (AVS1-P2, JiZhun profile) decoder.

Author:
Stefan Gehrer <stefan.gehrer@gmx.de>

Definition in file cavs.c.

Go to the source code of this file.

Functions

static int get_bs (vector_t *mvP, vector_t *mvQ, int b)
void ff_cavs_filter (AVSContext *h, enum mb_t 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)
static void intra_pred_vert (uint8_t *d, uint8_t *top, uint8_t *left, int stride)
static void intra_pred_horiz (uint8_t *d, uint8_t *top, uint8_t *left, int stride)
static void intra_pred_dc_128 (uint8_t *d, uint8_t *top, uint8_t *left, int stride)
static void intra_pred_plane (uint8_t *d, uint8_t *top, uint8_t *left, int stride)
static void intra_pred_lp (uint8_t *d, uint8_t *top, uint8_t *left, int stride)
static void intra_pred_down_left (uint8_t *d, uint8_t *top, uint8_t *left, int stride)
static void intra_pred_down_right (uint8_t *d, uint8_t *top, uint8_t *left, int stride)
static void intra_pred_lp_left (uint8_t *d, uint8_t *top, uint8_t *left, int stride)
static void intra_pred_lp_top (uint8_t *d, uint8_t *top, uint8_t *left, int stride)
void ff_cavs_modify_mb_i (AVSContext *h, int *pred_mode_uv)
static void mc_dir_part (AVSContext *h, Picture *pic, int square, int chroma_height, int delta, int list, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int src_x_offset, int src_y_offset, qpel_mc_func *qpix_op, h264_chroma_mc_func chroma_op, vector_t *mv)
static void mc_part_std (AVSContext *h, int square, int chroma_height, int delta, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int x_offset, int y_offset, qpel_mc_func *qpix_put, h264_chroma_mc_func chroma_put, qpel_mc_func *qpix_avg, h264_chroma_mc_func chroma_avg, vector_t *mv)
void ff_cavs_inter (AVSContext *h, enum mb_t mb_type)
static void scale_mv (AVSContext *h, int *d_x, int *d_y, vector_t *src, int distp)
static void mv_pred_median (AVSContext *h, vector_t *mvP, vector_t *mvA, vector_t *mvB, vector_t *mvC)
void ff_cavs_mv (AVSContext *h, enum mv_loc_t nP, enum mv_loc_t nC, enum mv_pred_t mode, enum block_t 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)


Function Documentation

static int get_bs ( vector_t mvP,
vector_t mvQ,
int  b 
) [inline, static]

Definition at line 40 of file cavs.c.

Referenced by ff_cavs_filter().

void ff_cavs_filter ( AVSContext h,
enum mb_t  mb_type 
)

in-loop deblocking filter for a single macroblock

boundary strength (bs) mapping:

--4---5-- 0 2 | | 6 | 7 | 1 3 | ---------

Definition at line 74 of file cavs.c.

Referenced by decode_mb_b(), decode_mb_i(), and decode_mb_p().

void ff_cavs_load_intra_pred_luma ( AVSContext h,
uint8_t *  top,
uint8_t **  left,
int  block 
)

Definition at line 146 of file cavs.c.

Referenced by decode_mb_i().

void ff_cavs_load_intra_pred_chroma ( AVSContext h  ) 

Definition at line 196 of file cavs.c.

Referenced by decode_mb_i().

static void intra_pred_vert ( uint8_t *  d,
uint8_t *  top,
uint8_t *  left,
int  stride 
) [static]

Definition at line 213 of file cavs.c.

Referenced by ff_cavs_init().

static void intra_pred_horiz ( uint8_t *  d,
uint8_t *  top,
uint8_t *  left,
int  stride 
) [static]

Definition at line 221 of file cavs.c.

Referenced by ff_cavs_init().

static void intra_pred_dc_128 ( uint8_t *  d,
uint8_t *  top,
uint8_t *  left,
int  stride 
) [static]

Definition at line 230 of file cavs.c.

Referenced by ff_cavs_init().

static void intra_pred_plane ( uint8_t *  d,
uint8_t *  top,
uint8_t *  left,
int  stride 
) [static]

Definition at line 237 of file cavs.c.

Referenced by ff_cavs_init().

static void intra_pred_lp ( uint8_t *  d,
uint8_t *  top,
uint8_t *  left,
int  stride 
) [static]

Definition at line 258 of file cavs.c.

Referenced by ff_cavs_init().

static void intra_pred_down_left ( uint8_t *  d,
uint8_t *  top,
uint8_t *  left,
int  stride 
) [static]

Definition at line 265 of file cavs.c.

Referenced by ff_cavs_init().

static void intra_pred_down_right ( uint8_t *  d,
uint8_t *  top,
uint8_t *  left,
int  stride 
) [static]

Definition at line 272 of file cavs.c.

Referenced by ff_cavs_init().

static void intra_pred_lp_left ( uint8_t *  d,
uint8_t *  top,
uint8_t *  left,
int  stride 
) [static]

Definition at line 284 of file cavs.c.

Referenced by ff_cavs_init().

static void intra_pred_lp_top ( uint8_t *  d,
uint8_t *  top,
uint8_t *  left,
int  stride 
) [static]

Definition at line 291 of file cavs.c.

Referenced by ff_cavs_init().

void ff_cavs_modify_mb_i ( AVSContext h,
int *  pred_mode_uv 
)

Definition at line 300 of file cavs.c.

Referenced by decode_mb_i().

static void mc_dir_part ( AVSContext h,
Picture pic,
int  square,
int  chroma_height,
int  delta,
int  list,
uint8_t *  dest_y,
uint8_t *  dest_cb,
uint8_t *  dest_cr,
int  src_x_offset,
int  src_y_offset,
qpel_mc_func qpix_op,
h264_chroma_mc_func  chroma_op,
vector_t mv 
) [inline, static]

Definition at line 326 of file cavs.c.

Referenced by mc_part_std(), and mc_part_weighted().

static void mc_part_std ( AVSContext h,
int  square,
int  chroma_height,
int  delta,
uint8_t *  dest_y,
uint8_t *  dest_cb,
uint8_t *  dest_cr,
int  x_offset,
int  y_offset,
qpel_mc_func qpix_put,
h264_chroma_mc_func  chroma_put,
qpel_mc_func qpix_avg,
h264_chroma_mc_func  chroma_avg,
vector_t mv 
) [inline, static]

Definition at line 381 of file cavs.c.

Referenced by ff_cavs_inter(), and mc_part().

void ff_cavs_inter ( AVSContext h,
enum mb_t  mb_type 
)

Definition at line 413 of file cavs.c.

Referenced by decode_mb_b(), and decode_mb_p().

static void scale_mv ( AVSContext h,
int *  d_x,
int *  d_y,
vector_t src,
int  distp 
) [inline, static]

Definition at line 450 of file cavs.c.

Referenced by mv_pred_median(), and vc1_pred_b_mv().

static void mv_pred_median ( AVSContext h,
vector_t mvP,
vector_t mvA,
vector_t mvB,
vector_t mvC 
) [inline, static]

Definition at line 457 of file cavs.c.

Referenced by ff_cavs_mv().

void ff_cavs_mv ( AVSContext h,
enum mv_loc_t  nP,
enum mv_loc_t  nC,
enum mv_pred_t  mode,
enum block_t  size,
int  ref 
)

Definition at line 482 of file cavs.c.

Referenced by decode_mb_b(), and decode_mb_p().

void ff_cavs_init_mb ( AVSContext h  ) 

initialise predictors for motion vectors and intra prediction

Definition at line 535 of file cavs.c.

Referenced by decode_mb_b(), decode_mb_i(), and decode_mb_p().

int ff_cavs_next_mb ( AVSContext h  ) 

save predictors for later macroblocks and increase macroblock address

Returns:
0 if end of frame is reached, 1 otherwise

Definition at line 577 of file cavs.c.

Referenced by decode_pic().

void ff_cavs_init_pic ( AVSContext h  ) 

Definition at line 622 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 655 of file cavs.c.

Referenced by decode_seq_header().

int ff_cavs_init ( AVCodecContext avctx  ) 

Definition at line 671 of file cavs.c.

int ff_cavs_end ( AVCodecContext avctx  ) 

Definition at line 702 of file cavs.c.


Generated on Sat Dec 18 05:15:51 2010 for MythTV by  doxygen 1.5.5