]> granicus.if.org Git - libvpx/commit
Fix invalid memory access on 2x downscale.
authorAlexander Voronov <avoronov@graphics.cs.msu.ru>
Tue, 9 Sep 2014 10:56:00 +0000 (14:56 +0400)
committerAlexander Voronov <avoronov@graphics.cs.msu.ru>
Mon, 15 Sep 2014 13:50:20 +0000 (17:50 +0400)
commit29071a418e1a12fb2f614f962c24f1417153d7fc
tree5e4397233cd86f562f35369b2380a53bae8b2bab
parentc731d6a4f19eea861ceb2ff31399420b2452eb74
Fix invalid memory access on 2x downscale.

The issue was discovered on bitstream with 2x vertical downscale. For
zero MVs, y_pad is set to 1 only when vertical convolution is
required. The original code assumes that for y_step_q4 == 32 we don't
perform vertical convolution. But vp9_setup_scale_factors_for_frame()
sets convolve functions so that when x_step and y_step are both not
equal to 16, convolve in both directions is performed. And convolve()
unconditionally subtracts one stride from source pointer when calls
convolve_horiz(). This leads to invalid memory access.

Change-Id: I882dfa6081a58e172b5ffa55842bfcd6727f10bf
vp9/common/vp9_reconinter.c