|
|
@ -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; |
|
|
|