[FFmpeg-cvslog] vc1: Fix intensity compensation performance regression
Mason Carter
git at videolan.org
Sun Dec 22 21:52:27 CET 2013
ffmpeg | branch: master | Mason Carter <void.main.argc.argv at gmail.com> | Sat Dec 21 17:27:18 2013 -0800| [61ae993957f8ff7e12c5983a1b21d5ec1965b328] | committer: Luca Barbato
vc1: Fix intensity compensation performance regression
Introduced by 28243b0d35b47bbf9abbd454fc444a6e0a9e7b71
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 at gentoo.org>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=61ae993957f8ff7e12c5983a1b21d5ec1965b328
---
libavcodec/vc1.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c
index 6d89e71..319230a 100644
--- a/libavcodec/vc1.c
+++ b/libavcodec/vc1.c
@@ -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[1], v->curr_lutuv[1], 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)
More information about the ffmpeg-cvslog
mailing list