summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-04-26 15:28:09 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-04-26 15:39:32 +0200
commitee4c01bef65dc714c55178fa240951407c36ec1a (patch)
tree3113f6a88cdca56e05803202166ed5898f5c319a /libavcodec
parentba323d67fa5554e83a907ac81b623c0539e37e03 (diff)
vc1dec: factor lut clean code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/vc1.c48
1 files changed, 23 insertions, 25 deletions
diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c
index bd56425b15..2d4411f5bf 100644
--- a/libavcodec/vc1.c
+++ b/libavcodec/vc1.c
@@ -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) {