aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/vc1.h
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-04-24 20:40:12 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-04-24 21:07:26 +0200
commit782ebd611824c95201123aeccc85809ce1554e6e (patch)
tree1e0d981915f02ac5ff3e52dd2ea83802e8d84bb9 /libavcodec/vc1.h
parent73050df2402cbe09f490145991442dd2baa83ec7 (diff)
downloadffmpeg-782ebd611824c95201123aeccc85809ce1554e6e.tar.gz
vc1dec: redesign the intensity compensation
The existing implementation had little to do with VC1. This could be implemented by adjusting the reference frames ithemselfs but that would make frame multi-threading difficult. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/vc1.h')
-rw-r--r--libavcodec/vc1.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/libavcodec/vc1.h b/libavcodec/vc1.h
index 596d4d35e5..9e2ec687ba 100644
--- a/libavcodec/vc1.h
+++ b/libavcodec/vc1.h
@@ -296,8 +296,11 @@ typedef struct VC1Context{
int dmb_is_raw; ///< direct mb plane is raw
int fmb_is_raw; ///< forward mb plane is raw
int skip_is_raw; ///< skip mb plane is not coded
- uint8_t luty[256], lutuv[256]; ///< lookup tables used for intensity compensation
- int use_ic; ///< use intensity compensation in B-frames
+ uint8_t last_luty[2][256], last_lutuv[2][256]; ///< lookup tables used for intensity compensation
+ 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 rnd; ///< rounding control
/** Frame decoding info for S/M profiles only */
@@ -340,7 +343,6 @@ typedef struct VC1Context{
int intcomp;
uint8_t lumscale2; ///< for interlaced field P picture
uint8_t lumshift2;
- uint8_t luty2[256], lutuv2[256]; // lookup tables used for intensity compensation
VLC* mbmode_vlc;
VLC* imv_vlc;
VLC* twomvbp_vlc;