1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

vc1: simplify *_use_ic initialization

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2013-12-22 14:37:30 +01:00
parent ed5bed4152
commit 64b98df389
3 changed files with 10 additions and 14 deletions

View File

@ -596,24 +596,20 @@ static void rotate_luts(VC1Context *v)
C = A; \ C = A; \
} else { \ } else { \
DEF; \ DEF; \
memcpy(&tmp, &L , sizeof(tmp)); \ memcpy(&tmp, L , sizeof(tmp)); \
memcpy(&L , &N , sizeof(tmp)); \ memcpy(L , N , sizeof(tmp)); \
memcpy(&N , &tmp, sizeof(tmp)); \ memcpy(N , &tmp, sizeof(tmp)); \
C = N; \ C = N; \
} \ } \
} while(0) } while(0)
ROTATE(int tmp, v->last_use_ic, v->next_use_ic, v->curr_use_ic, v->aux_use_ic); ROTATE(int *tmp, &v->last_use_ic, &v->next_use_ic, v->curr_use_ic, &v->aux_use_ic);
ROTATE(uint8_t tmp[2][256], v->last_luty, v->next_luty, v->curr_luty, v->aux_luty); ROTATE(uint8_t tmp[2][256], v->last_luty, v->next_luty, v->curr_luty, v->aux_luty);
ROTATE(uint8_t tmp[2][256], v->last_lutuv, v->next_lutuv, v->curr_lutuv, v->aux_lutuv); ROTATE(uint8_t tmp[2][256], v->last_lutuv, v->next_lutuv, v->curr_lutuv, v->aux_lutuv);
INIT_LUT(32, 0, v->curr_luty[0], v->curr_lutuv[0], 0); INIT_LUT(32, 0, v->curr_luty[0], v->curr_lutuv[0], 0);
INIT_LUT(32, 0, v->curr_luty[1], v->curr_lutuv[1], 0); INIT_LUT(32, 0, v->curr_luty[1], v->curr_lutuv[1], 0);
v->curr_use_ic = 0; *v->curr_use_ic = 0;
if (v->curr_luty == v->next_luty) {
// If we just initialized next_lut, clear next_use_ic to match.
v->next_use_ic = 0;
}
} }
int ff_vc1_parse_frame_header(VC1Context *v, GetBitContext* gb) int ff_vc1_parse_frame_header(VC1Context *v, GetBitContext* gb)
@ -1108,7 +1104,7 @@ int ff_vc1_parse_frame_header_adv(VC1Context *v, GetBitContext* gb)
INIT_LUT(v->lumscale2, v->lumshift2, v->curr_luty[v->cur_field_type^1], v->curr_lutuv[v->cur_field_type^1], 0); INIT_LUT(v->lumscale2, v->lumshift2, v->curr_luty[v->cur_field_type^1], v->curr_lutuv[v->cur_field_type^1], 0);
INIT_LUT(v->lumscale , v->lumshift , v->last_luty[v->cur_field_type ], v->last_lutuv[v->cur_field_type ], 1); INIT_LUT(v->lumscale , v->lumshift , v->last_luty[v->cur_field_type ], v->last_lutuv[v->cur_field_type ], 1);
} }
v->next_use_ic = v->curr_use_ic = 1; v->next_use_ic = *v->curr_use_ic = 1;
} else { } else {
INIT_LUT(v->lumscale , v->lumshift , v->last_luty[0], v->last_lutuv[0], 1); INIT_LUT(v->lumscale , v->lumshift , v->last_luty[0], v->last_lutuv[0], 1);
INIT_LUT(v->lumscale2, v->lumshift2, v->last_luty[1], v->last_lutuv[1], 1); INIT_LUT(v->lumscale2, v->lumshift2, v->last_luty[1], v->last_lutuv[1], 1);

View File

@ -315,7 +315,7 @@ typedef struct VC1Context{
uint8_t aux_luty[2][256], aux_lutuv[2][256]; ///< lookup tables used for intensity compensation uint8_t aux_luty[2][256], aux_lutuv[2][256]; ///< lookup tables used for intensity compensation
uint8_t next_luty[2][256], next_lutuv[2][256]; ///< lookup tables used for intensity compensation uint8_t next_luty[2][256], next_lutuv[2][256]; ///< lookup tables used for intensity compensation
uint8_t (*curr_luty)[256] ,(*curr_lutuv)[256]; uint8_t (*curr_luty)[256] ,(*curr_lutuv)[256];
int last_use_ic, curr_use_ic, next_use_ic, aux_use_ic; int last_use_ic, *curr_use_ic, next_use_ic, aux_use_ic;
int rnd; ///< rounding control int rnd; ///< rounding control
/** Frame decoding info for S/M profiles only */ /** Frame decoding info for S/M profiles only */

View File

@ -377,7 +377,7 @@ static void vc1_mc_1mv(VC1Context *v, int dir)
srcV = s->current_picture.f.data[2]; srcV = s->current_picture.f.data[2];
luty = v->curr_luty; luty = v->curr_luty;
lutuv = v->curr_lutuv; lutuv = v->curr_lutuv;
use_ic = v->curr_use_ic; use_ic = *v->curr_use_ic;
} else { } else {
srcY = s->last_picture.f.data[0]; srcY = s->last_picture.f.data[0];
srcU = s->last_picture.f.data[1]; srcU = s->last_picture.f.data[1];
@ -571,7 +571,7 @@ static void vc1_mc_4mv_luma(VC1Context *v, int n, int dir, int avg)
if (v->field_mode && (v->cur_field_type != v->ref_field_type[dir]) && v->second_field) { if (v->field_mode && (v->cur_field_type != v->ref_field_type[dir]) && v->second_field) {
srcY = s->current_picture.f.data[0]; srcY = s->current_picture.f.data[0];
luty = v->curr_luty; luty = v->curr_luty;
use_ic = v->curr_use_ic; use_ic = *v->curr_use_ic;
} else { } else {
srcY = s->last_picture.f.data[0]; srcY = s->last_picture.f.data[0];
luty = v->last_luty; luty = v->last_luty;
@ -873,7 +873,7 @@ static void vc1_mc_4mv_chroma(VC1Context *v, int dir)
srcU = s->current_picture.f.data[1]; srcU = s->current_picture.f.data[1];
srcV = s->current_picture.f.data[2]; srcV = s->current_picture.f.data[2];
lutuv = v->curr_lutuv; lutuv = v->curr_lutuv;
use_ic = v->curr_use_ic; use_ic = *v->curr_use_ic;
} else { } else {
srcU = s->last_picture.f.data[1]; srcU = s->last_picture.f.data[1];
srcV = s->last_picture.f.data[2]; srcV = s->last_picture.f.data[2];