summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Converse <aconverse@google.com>2015-09-14 11:43:38 -0700
committerAlex Converse <aconverse@google.com>2015-09-14 13:55:30 -0700
commit575e81f7c9c39ea0e5d4a61485a5f88073784dc9 (patch)
treee299a1ce26daa5c3abb2f15831b92866fbef3145
parent48f0168e955f8f79c99a02681b45ccab122721c4 (diff)
downloadlibvpx-575e81f7c9c39ea0e5d4a61485a5f88073784dc9.tar
libvpx-575e81f7c9c39ea0e5d4a61485a5f88073784dc9.tar.gz
libvpx-575e81f7c9c39ea0e5d4a61485a5f88073784dc9.tar.bz2
libvpx-575e81f7c9c39ea0e5d4a61485a5f88073784dc9.zip
CR: Don't attempt to read qindex_delta for segments CR is unaware of.
Found by the remoting VideoEncoderVpxTest.Vp9LossyUnchangedFrame unit test under asan. Change-Id: Icac63051bf37c7355e661837b57c257d58c764fc
-rw-r--r--vp9/encoder/vp9_aq_cyclicrefresh.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_aq_cyclicrefresh.c b/vp9/encoder/vp9_aq_cyclicrefresh.c
index ebef1a202..625c3d060 100644
--- a/vp9/encoder/vp9_aq_cyclicrefresh.c
+++ b/vp9/encoder/vp9_aq_cyclicrefresh.c
@@ -232,10 +232,12 @@ void vp9_cyclic_refresh_update_segment(VP9_COMP *const cpi,
// don't update the map for them. For cases where motion is non-zero or
// the reference frame isn't the previous frame, the previous value in
// the map for this spatial location is not entirely correct.
- if (!is_inter_block(mbmi) || !skip)
+ if ((!is_inter_block(mbmi) || !skip) &&
+ mbmi->segment_id <= CR_SEGMENT_ID_BOOST2) {
cr->last_coded_q_map[map_offset] = clamp(
cm->base_qindex + cr->qindex_delta[mbmi->segment_id], 0, MAXQ);
- else if (is_inter_block(mbmi) && skip) {
+ } else if (is_inter_block(mbmi) && skip &&
+ mbmi->segment_id <= CR_SEGMENT_ID_BOOST2) {
cr->last_coded_q_map[map_offset] = VPXMIN(
clamp(cm->base_qindex + cr->qindex_delta[mbmi->segment_id],
0, MAXQ),