summaryrefslogtreecommitdiff
path: root/vp8/decoder
diff options
context:
space:
mode:
authorScott LaVarnway <slavarnway@google.com>2012-09-11 09:14:02 -0700
committerScott LaVarnway <slavarnway@google.com>2012-09-11 09:14:02 -0700
commit818b10396dce15081b6cb74d76a3b050a3296910 (patch)
treeff7ac6341736885008466b73c9569ef106a8638b /vp8/decoder
parent488ba1ab9ca875e48e6ea8f0f30a6bca6b730664 (diff)
downloadlibvpx-818b10396dce15081b6cb74d76a3b050a3296910.tar
libvpx-818b10396dce15081b6cb74d76a3b050a3296910.tar.gz
libvpx-818b10396dce15081b6cb74d76a3b050a3296910.tar.bz2
libvpx-818b10396dce15081b6cb74d76a3b050a3296910.zip
valgrind found motion vectors which exceeded frame boundaries
Bug introduced in I02d034c70cd97b65025d59dd67c695e1db529f0b Change-Id: Ifb74ab659f3b3cf5f5b95046bacffb202d5b4d64
Diffstat (limited to 'vp8/decoder')
-rw-r--r--vp8/decoder/decodemv.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/vp8/decoder/decodemv.c b/vp8/decoder/decodemv.c
index 6306eb19b..f0daf55c1 100644
--- a/vp8/decoder/decodemv.c
+++ b/vp8/decoder/decodemv.c
@@ -293,26 +293,24 @@ static void decode_split_mv(vp8_reader *const bc, MODE_INFO *mi,
blockmv.as_mv.row += best_mv.as_mv.row;
blockmv.as_mv.col = read_mvcomponent(bc, &mvc[1]) << 1;
blockmv.as_mv.col += best_mv.as_mv.col;
-
- mbmi->need_to_clamp_mvs |= vp8_check_mv_bounds(&blockmv,
- mb_to_left_edge,
- mb_to_right_edge,
- mb_to_top_edge,
- mb_to_bottom_edge);
}
}
else
{
blockmv.as_int = abovemv.as_int;
- mbmi->need_to_clamp_mvs |= above_mb->mbmi.need_to_clamp_mvs;
}
}
else
{
blockmv.as_int = leftmv.as_int;
- mbmi->need_to_clamp_mvs |= left_mb->mbmi.need_to_clamp_mvs;
}
+ mbmi->need_to_clamp_mvs |= vp8_check_mv_bounds(&blockmv,
+ mb_to_left_edge,
+ mb_to_right_edge,
+ mb_to_top_edge,
+ mb_to_bottom_edge);
+
{
/* Fill (uniform) modes, mvs of jth subset.
Must do it here because ensuing subsets can