summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorRonald S. Bultje <rsbultje@gmail.com>2011-12-16 21:42:04 +0000
committerMans Rullgard <mans@mansr.com>2011-12-17 14:03:41 +0000
commit8cfbbd928cc94b4de6ad0a937cb818e999c7d75d (patch)
tree554918ba1509d4c296738f7e4a7313685ee92c41 /configure
parenta1e98f198e9db4e5ddfc2f777014179d3d7bc4d2 (diff)
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 'configure')
-rwxr-xr-xconfigure5
1 files changed, 5 insertions, 0 deletions
diff --git a/configure b/configure
index 974e75f91b..22542afbe7 100755
--- a/configure
+++ b/configure
@@ -113,6 +113,9 @@ Configuration options:
--disable-dxva2 disable DXVA2 code
--enable-runtime-cpudetect detect cpu capabilities at runtime (bigger binary)
--enable-hardcoded-tables use hardcoded tables instead of runtime generation
+ --disable-safe-bitstream-reader
+ disable buffer boundary checking in bitreaders
+ (faster, but may crash)
--enable-memalign-hack emulate memalign, interferes with memory debuggers
--disable-everything disable all components listed below
--disable-encoder=NAME disable encoder NAME
@@ -976,6 +979,7 @@ CONFIG_LIST="
rdft
rtpdec
runtime_cpudetect
+ safe_bitstream_reader
shared
sinewin
small
@@ -1679,6 +1683,7 @@ enable doc
enable fastdiv
enable network
enable optimizations
+enable safe_bitstream_reader
enable static
enable swscale_alpha