From 64b98df38910bfb921988a0be89da3038274232e Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sun, 22 Dec 2013 14:37:30 +0100 Subject: [PATCH] vc1: simplify *_use_ic initialization Signed-off-by: Michael Niedermayer --- libavcodec/vc1.c | 16 ++++++---------- libavcodec/vc1.h | 2 +- libavcodec/vc1dec.c | 6 +++--- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index 5391e85c09..fb33e6ffb5 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -596,24 +596,20 @@ static void rotate_luts(VC1Context *v) C = A; \ } else { \ DEF; \ - memcpy(&tmp, &L , sizeof(tmp)); \ - memcpy(&L , &N , sizeof(tmp)); \ - memcpy(&N , &tmp, sizeof(tmp)); \ + memcpy(&tmp, L , sizeof(tmp)); \ + memcpy(L , N , sizeof(tmp)); \ + memcpy(N , &tmp, sizeof(tmp)); \ C = N; \ } \ } 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_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[1], v->curr_lutuv[1], 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; - } + *v->curr_use_ic = 0; } 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->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 { 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); diff --git a/libavcodec/vc1.h b/libavcodec/vc1.h index 0d23b44353..662b58b4d9 100644 --- a/libavcodec/vc1.h +++ b/libavcodec/vc1.h @@ -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 next_luty[2][256], next_lutuv[2][256]; ///< lookup tables used for intensity compensation 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 /** Frame decoding info for S/M profiles only */ diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index 50c7b2dcb3..efcb169c8f 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -377,7 +377,7 @@ static void vc1_mc_1mv(VC1Context *v, int dir) srcV = s->current_picture.f.data[2]; luty = v->curr_luty; lutuv = v->curr_lutuv; - use_ic = v->curr_use_ic; + use_ic = *v->curr_use_ic; } else { srcY = s->last_picture.f.data[0]; 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) { srcY = s->current_picture.f.data[0]; luty = v->curr_luty; - use_ic = v->curr_use_ic; + use_ic = *v->curr_use_ic; } else { srcY = s->last_picture.f.data[0]; 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]; srcV = s->current_picture.f.data[2]; lutuv = v->curr_lutuv; - use_ic = v->curr_use_ic; + use_ic = *v->curr_use_ic; } else { srcU = s->last_picture.f.data[1]; srcV = s->last_picture.f.data[2];