cavs: Move inline functions only used in one file out of the header

pull/28/head
Diego Biurrun 12 years ago
parent ef07ac1e12
commit a6d9f9e60e
  1. 9
      libavcodec/cavs.c
  2. 48
      libavcodec/cavs.h
  3. 39
      libavcodec/cavsdec.c

@ -328,6 +328,15 @@ static void intra_pred_lp_top(uint8_t *d,uint8_t *top,uint8_t *left,int stride)
#undef LOWPASS
static inline void modify_pred(const int8_t *mod_table, int *mode)
{
*mode = mod_table[*mode];
if(*mode < 0) {
av_log(NULL, AV_LOG_ERROR, "Illegal intra prediction mode\n");
*mode = 0;
}
}
void ff_cavs_modify_mb_i(AVSContext *h, int *pred_mode_uv) {
/* save pred modes before they get modified */
h->pred_mode_Y[3] = h->pred_mode_Y[5];

@ -229,25 +229,6 @@ extern const uint8_t ff_cavs_partition_flags[30];
extern const cavs_vector ff_cavs_intra_mv;
extern const cavs_vector ff_cavs_dir_mv;
static inline void modify_pred(const int8_t *mod_table, int *mode)
{
*mode = mod_table[*mode];
if(*mode < 0) {
av_log(NULL, AV_LOG_ERROR, "Illegal intra prediction mode\n");
*mode = 0;
}
}
static inline void set_intra_mode_default(AVSContext *h) {
if(h->stream_revision > 0) {
h->pred_mode_Y[3] = h->pred_mode_Y[6] = NOT_AVAIL;
h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = NOT_AVAIL;
} else {
h->pred_mode_Y[3] = h->pred_mode_Y[6] = INTRA_L_LP;
h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = INTRA_L_LP;
}
}
static inline void set_mvs(cavs_vector *mv, enum cavs_block size) {
switch(size) {
case BLK_16X16:
@ -262,35 +243,6 @@ static inline void set_mvs(cavs_vector *mv, enum cavs_block size) {
}
}
static inline void set_mv_intra(AVSContext *h) {
h->mv[MV_FWD_X0] = ff_cavs_intra_mv;
set_mvs(&h->mv[MV_FWD_X0], BLK_16X16);
h->mv[MV_BWD_X0] = ff_cavs_intra_mv;
set_mvs(&h->mv[MV_BWD_X0], BLK_16X16);
if(h->pic_type != AV_PICTURE_TYPE_B)
h->col_type_base[h->mbidx] = I_8X8;
}
static inline int dequant(AVSContext *h, DCTELEM *level_buf, uint8_t *run_buf,
DCTELEM *dst, int mul, int shift, int coeff_num) {
int round = 1 << (shift - 1);
int pos = -1;
const uint8_t *scantab = h->scantable.permutated;
/* inverse scan and dequantization */
while(--coeff_num >= 0){
pos += run_buf[coeff_num];
if(pos > 63) {
av_log(h->s.avctx, AV_LOG_ERROR,
"position out of block bounds at pic %d MB(%d,%d)\n",
h->picture.poc, h->mbx, h->mby);
return -1;
}
dst[scantab[pos]] = (level_buf[coeff_num]*mul + round) >> shift;
}
return 0;
}
void ff_cavs_filter(AVSContext *h, enum cavs_mb mb_type);
void ff_cavs_load_intra_pred_luma(AVSContext *h, uint8_t *top, uint8_t **left,
int block);

@ -511,6 +511,26 @@ static inline int get_ue_code(GetBitContext *gb, int order) {
return get_ue_golomb(gb);
}
static inline int dequant(AVSContext *h, DCTELEM *level_buf, uint8_t *run_buf,
DCTELEM *dst, int mul, int shift, int coeff_num) {
int round = 1 << (shift - 1);
int pos = -1;
const uint8_t *scantab = h->scantable.permutated;
/* inverse scan and dequantization */
while(--coeff_num >= 0){
pos += run_buf[coeff_num];
if(pos > 63) {
av_log(h->s.avctx, AV_LOG_ERROR,
"position out of block bounds at pic %d MB(%d,%d)\n",
h->picture.poc, h->mbx, h->mby);
return -1;
}
dst[scantab[pos]] = (level_buf[coeff_num]*mul + round) >> shift;
}
return 0;
}
/**
* decode coefficients from one 8x8 block, dequantize, inverse transform
* and add them to sample block
@ -597,6 +617,15 @@ static inline int decode_residual_inter(AVSContext *h) {
*
****************************************************************************/
static inline void set_mv_intra(AVSContext *h) {
h->mv[MV_FWD_X0] = ff_cavs_intra_mv;
set_mvs(&h->mv[MV_FWD_X0], BLK_16X16);
h->mv[MV_BWD_X0] = ff_cavs_intra_mv;
set_mvs(&h->mv[MV_BWD_X0], BLK_16X16);
if(h->pic_type != AV_PICTURE_TYPE_B)
h->col_type_base[h->mbidx] = I_8X8;
}
static int decode_mb_i(AVSContext *h, int cbp_code) {
GetBitContext *gb = &h->s.gb;
unsigned pred_mode_uv;
@ -664,6 +693,16 @@ static int decode_mb_i(AVSContext *h, int cbp_code) {
return 0;
}
static inline void set_intra_mode_default(AVSContext *h) {
if(h->stream_revision > 0) {
h->pred_mode_Y[3] = h->pred_mode_Y[6] = NOT_AVAIL;
h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = NOT_AVAIL;
} else {
h->pred_mode_Y[3] = h->pred_mode_Y[6] = INTRA_L_LP;
h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = INTRA_L_LP;
}
}
static void decode_mb_p(AVSContext *h, enum cavs_mb mb_type) {
GetBitContext *gb = &h->s.gb;
int ref[4];

Loading…
Cancel
Save