vc1: Fix intensity compensation performance regression
Introduced by 28243b0d35
Intensity compensation is always used once it was encountered, because
v->next_use_ic is never set back to zero.
Reset v->next_use_ic, when resetting v->next_luty/uv.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This commit is contained in:
committed by
Luca Barbato
parent
7398e0516f
commit
61ae993957
@@ -614,6 +614,10 @@ static void rotate_luts(VC1Context *v)
|
|||||||
INIT_LUT(32, 0, v->curr_luty[0], v->curr_lutuv[0], 0);
|
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);
|
INIT_LUT(32, 0, v->curr_luty[1], v->curr_lutuv[1], 0);
|
||||||
v->curr_use_ic = 0;
|
v->curr_use_ic = 0;
|
||||||
|
if (v->curr_luty == v->next_luty) {
|
||||||
|
// If we just initialized next_lut, clear next_use_ic to match.
|
||||||
|
v->next_use_ic = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int ff_vc1_parse_frame_header(VC1Context *v, GetBitContext* gb)
|
int ff_vc1_parse_frame_header(VC1Context *v, GetBitContext* gb)
|
||||||
|
Reference in New Issue
Block a user