h264: add 3 pixels below for subpixel filter wait position
authorRonald S. Bultje <rsbultje@gmail.com>
Tue, 15 Jan 2013 16:38:54 +0000 (08:38 -0800)
committerLuca Barbato <lu_zero@gentoo.org>
Tue, 15 Jan 2013 21:00:34 +0000 (22:00 +0100)
commitfb845ffdd335a1efd6dfd43e8adeb530397b348e
tree9bb6f6ce35c9938a785001e941ca63aa22d53566
parentf924d52975ec5bbae41d26f79be2373a1b12046b
h264: add 3 pixels below for subpixel filter wait position

If the motion vector is at a subpixel position, we need 3 pixels below
the motion vector's wholepel position available, not 2, since the MC
filter is a sixtap filter for the hpel position, and then a bilin filter
for the qpel position.

This patch fixes highly irreproducible (0.1%) fate failures in frame 2
and 4 of h264-conformance-cama2_vtc_b (e.g. first P-frame, first field,
last line of MB x=40,y=2 and second field and last lines of MBs x=39-40,
y=3). These used pre-loopfilter instead of post-loopfilter data because
the await_progress() waited for one line too little in that field, and
the motion vector of these particular MBs happened to align exactly to a
position where that demonstrates the bug.

CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
libavcodec/h264.c