mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
vc1dec: factor lut clean code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
ba323d67fa
commit
ee4c01bef6
@ -576,25 +576,6 @@ int ff_vc1_decode_entry_point(AVCodecContext *avctx, VC1Context *v, GetBitContex
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void rotate_luts(VC1Context *v)
|
||||
{
|
||||
#define ROTATE(DEF, L, N, C, A) do {\
|
||||
if (v->s.pict_type == AV_PICTURE_TYPE_BI || v->s.pict_type == AV_PICTURE_TYPE_B) {\
|
||||
C = A;\
|
||||
} else {\
|
||||
DEF;\
|
||||
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(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);
|
||||
}
|
||||
|
||||
/* fill lookup tables for intensity compensation */
|
||||
#define INIT_LUT(lumscale, lumshift, luty, lutuv, chain) do {\
|
||||
int scale, shift, i; \
|
||||
@ -619,6 +600,29 @@ static void rotate_luts(VC1Context *v)
|
||||
}while(0)
|
||||
|
||||
|
||||
static void rotate_luts(VC1Context *v)
|
||||
{
|
||||
#define ROTATE(DEF, L, N, C, A) do {\
|
||||
if (v->s.pict_type == AV_PICTURE_TYPE_BI || v->s.pict_type == AV_PICTURE_TYPE_B) {\
|
||||
C = A;\
|
||||
} else {\
|
||||
DEF;\
|
||||
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(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;
|
||||
}
|
||||
|
||||
int ff_vc1_parse_frame_header(VC1Context *v, GetBitContext* gb)
|
||||
{
|
||||
int pqindex, lowquant, status;
|
||||
@ -709,9 +713,6 @@ int ff_vc1_parse_frame_header(VC1Context *v, GetBitContext* gb)
|
||||
|
||||
if(v->first_pic_header_flag) {
|
||||
rotate_luts(v);
|
||||
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;
|
||||
}
|
||||
|
||||
switch (v->s.pict_type) {
|
||||
@ -986,9 +987,6 @@ int ff_vc1_parse_frame_header_adv(VC1Context *v, GetBitContext* gb)
|
||||
|
||||
if(v->first_pic_header_flag) {
|
||||
rotate_luts(v);
|
||||
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;
|
||||
}
|
||||
|
||||
switch (v->s.pict_type) {
|
||||
|
Loading…
Reference in New Issue
Block a user