summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorYaowu Xu <yaowu@google.com>2014-10-07 11:22:09 -0700
committerYaowu Xu <yaowu@google.com>2014-10-07 11:30:13 -0700
commit9751aa1264b9cff20b729bbe825c6ff25ff47a12 (patch)
treea1c6f74f53a2ced43c2b018412fbbf2a8d7e88a2 /vp9
parenta75551585b0fb1ea8705e7e5c53433cfffabbab6 (diff)
downloadlibvpx-9751aa1264b9cff20b729bbe825c6ff25ff47a12.tar
libvpx-9751aa1264b9cff20b729bbe825c6ff25ff47a12.tar.gz
libvpx-9751aa1264b9cff20b729bbe825c6ff25ff47a12.tar.bz2
libvpx-9751aa1264b9cff20b729bbe825c6ff25ff47a12.zip
Add range checking for decoded coefficients.
The coefficient range checking is enabled when configured with --enable-debug --enable-coefficient-range-checking for vpxdec to detect ill-formed input stream. This addresses the problem raised by issue #792. Change-Id: I3f9ea541de4dc742dd64389d6c5f543fb1c4f052
Diffstat (limited to 'vp9')
-rw-r--r--vp9/decoder/vp9_detokenize.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/vp9/decoder/vp9_detokenize.c b/vp9/decoder/vp9_detokenize.c
index 577874882..421229a28 100644
--- a/vp9/decoder/vp9_detokenize.c
+++ b/vp9/decoder/vp9_detokenize.c
@@ -190,7 +190,11 @@ static int decode_coefs(VP9_COMMON *cm, const MACROBLOCKD *xd, PLANE_TYPE type,
}
}
v = (val * dqv) >> dq_shift;
+#if CONFIG_COEFFICIENT_RANGE_CHECKING
+ dqcoeff[scan[c]] = check_range(vp9_read_bit(r) ? -v : v);
+#else
dqcoeff[scan[c]] = vp9_read_bit(r) ? -v : v;
+#endif
token_cache[scan[c]] = vp9_pt_energy_class[token];
++c;
ctx = get_coef_context(nb, token_cache, c);