#include "avcodec.h"
#include "bitstream.h"
#include "golomb.h"
#include "cavs.h"
#include "cavsdata.h"
Go to the source code of this file.
Defines | |
#define | SET_PARAMS |
#define | LOWPASS(ARRAY, INDEX) (( ARRAY[(INDEX)-1] + 2*ARRAY[(INDEX)] + ARRAY[(INDEX)+1] + 2) >> 2) |
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) |
Definition in file cavs.c.
#define LOWPASS | ( | ARRAY, | |||
INDEX | ) | (( ARRAY[(INDEX)-1] + 2*ARRAY[(INDEX)] + ARRAY[(INDEX)+1] + 2) >> 2) |
Definition at line 255 of file cavs.c.
Referenced by intra_pred_down_left(), intra_pred_down_right(), intra_pred_lp(), intra_pred_lp_left(), and intra_pred_lp_top().
#define SET_PARAMS |
int ff_cavs_end | ( | AVCodecContext * | avctx | ) |
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().
int ff_cavs_init | ( | AVCodecContext * | avctx | ) |
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().
void ff_cavs_init_pic | ( | AVSContext * | h | ) |
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().
void ff_cavs_inter | ( | AVSContext * | h, | |
enum mb_t | mb_type | |||
) |
void ff_cavs_load_intra_pred_chroma | ( | AVSContext * | h | ) |
void ff_cavs_load_intra_pred_luma | ( | AVSContext * | h, | |
uint8_t * | top, | |||
uint8_t ** | left, | |||
int | block | |||
) |
void ff_cavs_modify_mb_i | ( | AVSContext * | h, | |
int * | pred_mode_uv | |||
) |
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 | |||
) |
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().
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] |
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] |
static void mv_pred_median | ( | AVSContext * | h, | |
vector_t * | mvP, | |||
vector_t * | mvA, | |||
vector_t * | mvB, | |||
vector_t * | mvC | |||
) | [inline, static] |
static void scale_mv | ( | AVSContext * | h, | |
int * | d_x, | |||
int * | d_y, | |||
vector_t * | src, | |||
int | distp | |||
) | [inline, static] |