diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2011-12-16 21:42:04 +0000 |
---|---|---|
committer | Mans Rullgard <mans@mansr.com> | 2011-12-17 14:03:41 +0000 |
commit | 8cfbbd928cc94b4de6ad0a937cb818e999c7d75d (patch) | |
tree | 554918ba1509d4c296738f7e4a7313685ee92c41 /libavcodec/wmavoice.c | |
parent | a1e98f198e9db4e5ddfc2f777014179d3d7bc4d2 (diff) | |
download | ffmpeg-8cfbbd928cc94b4de6ad0a937cb818e999c7d75d.tar.gz |
get_bits: introduce safe bitreading to prevent overreads.
When turned on, H264/CAVLC gets ~15% (CVPCMNL1_SVA_C.264) slower for
ultra-high-bitrate files, or ~2.5% (CVFI1_SVA_C.264) for lower-bitrate
files. Other codecs are affected to a lesser extent because they are
less optimized; e.g., VC-1 slows down by less than 1% (all on x86).
The patch generated 3 extra instructions (cmp, cmovae and mov) per
call to get_bits().
The performance penalty on ARM is within the error margin for most
files, up to 4% in extreme cases such as CVPCMNL1_SVA_C.264.
Based on work (for GCI) by Aneesh Dogra <lionaneesh@gmail.com>, and
inspired by patch in Chromium by Chris Evans <cevans@chromium.org>.
Diffstat (limited to 'libavcodec/wmavoice.c')
-rw-r--r-- | libavcodec/wmavoice.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libavcodec/wmavoice.c b/libavcodec/wmavoice.c index 00e985d230..8854e35d93 100644 --- a/libavcodec/wmavoice.c +++ b/libavcodec/wmavoice.c @@ -25,6 +25,8 @@ * @author Ronald S. Bultje <rsbultje@gmail.com> */ +#define UNCHECKED_BITSTREAM_READER 1 + #include <math.h> #include "avcodec.h" #include "get_bits.h" |