vc1: Make INIT_LUT() self contained

Move the local variables it uses into the macro, enclosing them
in a do {} while (0) scope.

Signed-off-by: Martin Storsjö <martin@martin.st>
pull/18/head
Michael Niedermayer 12 years ago committed by Martin Storsjö
parent 37f2ac36a9
commit 6ce2c3106d
  1. 8
      libavcodec/vc1.c

@ -571,7 +571,8 @@ int ff_vc1_decode_entry_point(AVCodecContext *avctx, VC1Context *v, GetBitContex
} }
/* fill lookup tables for intensity compensation */ /* fill lookup tables for intensity compensation */
#define INIT_LUT(lumscale, lumshift, luty, lutuv) \ #define INIT_LUT(lumscale, lumshift, luty, lutuv) do { \
int scale, shift, i; \
if (!lumscale) { \ if (!lumscale) { \
scale = -64; \ scale = -64; \
shift = (255 - lumshift * 2) << 6; \ shift = (255 - lumshift * 2) << 6; \
@ -587,7 +588,8 @@ int ff_vc1_decode_entry_point(AVCodecContext *avctx, VC1Context *v, GetBitContex
for (i = 0; i < 256; i++) { \ for (i = 0; i < 256; i++) { \
luty[i] = av_clip_uint8((scale * i + shift + 32) >> 6); \ luty[i] = av_clip_uint8((scale * i + shift + 32) >> 6); \
lutuv[i] = av_clip_uint8((scale * (i - 128) + 128*64 + 32) >> 6); \ lutuv[i] = av_clip_uint8((scale * (i - 128) + 128*64 + 32) >> 6); \
} } \
} while(0)
int ff_vc1_parse_frame_header(VC1Context *v, GetBitContext* gb) int ff_vc1_parse_frame_header(VC1Context *v, GetBitContext* gb)
{ {
@ -687,7 +689,6 @@ int ff_vc1_parse_frame_header(VC1Context *v, GetBitContext* gb)
lowquant = (v->pq > 12) ? 0 : 1; lowquant = (v->pq > 12) ? 0 : 1;
v->mv_mode = ff_vc1_mv_pmode_table[lowquant][get_unary(gb, 1, 4)]; v->mv_mode = ff_vc1_mv_pmode_table[lowquant][get_unary(gb, 1, 4)];
if (v->mv_mode == MV_PMODE_INTENSITY_COMP) { if (v->mv_mode == MV_PMODE_INTENSITY_COMP) {
int scale, shift, i;
v->mv_mode2 = ff_vc1_mv_pmode_table2[lowquant][get_unary(gb, 1, 3)]; v->mv_mode2 = ff_vc1_mv_pmode_table2[lowquant][get_unary(gb, 1, 3)];
v->lumscale = get_bits(gb, 6); v->lumscale = get_bits(gb, 6);
v->lumshift = get_bits(gb, 6); v->lumshift = get_bits(gb, 6);
@ -809,7 +810,6 @@ int ff_vc1_parse_frame_header_adv(VC1Context *v, GetBitContext* gb)
int pqindex, lowquant; int pqindex, lowquant;
int status; int status;
int mbmodetab, imvtab, icbptab, twomvbptab, fourmvbptab; /* useful only for debugging */ int mbmodetab, imvtab, icbptab, twomvbptab, fourmvbptab; /* useful only for debugging */
int scale, shift, i; /* for initializing LUT for intensity compensation */
int field_mode, fcm; int field_mode, fcm;
v->p_frame_skipped = 0; v->p_frame_skipped = 0;

Loading…
Cancel
Save