Commit 566716e3 authored by Yaowu Xu's avatar Yaowu Xu Committed by Gerrit Code Review
Browse files

Merge "configure: add --enable-coefficient-range-checking"

Showing with 15 additions and 0 deletions
...@@ -46,6 +46,9 @@ Advanced options: ...@@ -46,6 +46,9 @@ Advanced options:
${toggle_realtime_only} enable this option while building for real-time encoding ${toggle_realtime_only} enable this option while building for real-time encoding
${toggle_onthefly_bitpacking} enable on-the-fly bitpacking in real-time encoding ${toggle_onthefly_bitpacking} enable on-the-fly bitpacking in real-time encoding
${toggle_error_concealment} enable this option to get a decoder which is able to conceal losses ${toggle_error_concealment} enable this option to get a decoder which is able to conceal losses
${toggle_coefficient_range_checking}
enable decoder to check if intermediate
transform coefficients are in valid range
${toggle_runtime_cpu_detect} runtime cpu detection ${toggle_runtime_cpu_detect} runtime cpu detection
${toggle_shared} shared library support ${toggle_shared} shared library support
${toggle_static} static library support ${toggle_static} static library support
...@@ -327,6 +330,7 @@ CONFIG_LIST=" ...@@ -327,6 +330,7 @@ CONFIG_LIST="
encode_perf_tests encode_perf_tests
multi_res_encoding multi_res_encoding
temporal_denoising temporal_denoising
coefficient_range_checking
experimental experimental
size_limit size_limit
${EXPERIMENT_LIST} ${EXPERIMENT_LIST}
...@@ -384,6 +388,7 @@ CMDLINE_SELECT=" ...@@ -384,6 +388,7 @@ CMDLINE_SELECT="
encode_perf_tests encode_perf_tests
multi_res_encoding multi_res_encoding
temporal_denoising temporal_denoising
coefficient_range_checking
experimental experimental
" "
......
...@@ -81,6 +81,16 @@ static const int sinpi_4_9 = 15212; ...@@ -81,6 +81,16 @@ static const int sinpi_4_9 = 15212;
static INLINE int dct_const_round_shift(int input) { static INLINE int dct_const_round_shift(int input) {
int rv = ROUND_POWER_OF_TWO(input, DCT_CONST_BITS); int rv = ROUND_POWER_OF_TWO(input, DCT_CONST_BITS);
#if CONFIG_COEFFICIENT_RANGE_CHECKING
// For valid VP9 input streams, intermediate stage coefficients should always
// stay within the range of a signed 16 bit integer. Coefficients can go out
// of this range for invalid/corrupt VP9 streams. However, strictly checking
// this range for every intermediate coefficient can burdensome for a decoder,
// therefore the following assertion is only enabled when configured with
// --enable-coefficient-range-checking.
assert(INT16_MIN <= rv);
assert(rv <= INT16_MAX);
#endif
return (int16_t)rv; return (int16_t)rv;
} }
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment