From 7cc3c4e1d4179aeabcd891090e31ee5e5bfd9692 Mon Sep 17 00:00:00 2001 From: Mashiat Sarker Shakkhar Date: Tue, 9 Oct 2012 19:38:16 +0000 Subject: vc1dec: Invoke edge emulation regardless of MV precision for 1-MV chroma This is required due to the way VC-1 handles chroma pull-back which may end up causing negative chroma MV for zero luma MV. Edge emulation needs to be invoked in such cases. This only affects vertical component of chroma motion vector. Signed-off-by: Derek Buitenhuis --- libavcodec/vc1dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libavcodec') diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index 4127691dc1..491e200a52 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -430,7 +430,7 @@ static void vc1_mc_1mv(VC1Context *v, int dir) if (v->rangeredfrm || (v->mv_mode == MV_PMODE_INTENSITY_COMP) || s->h_edge_pos < 22 || v_edge_pos < 22 || (unsigned)(src_x - s->mspel) > s->h_edge_pos - (mx&3) - 16 - s->mspel * 3 - || (unsigned)(src_y - s->mspel) > v_edge_pos - (my&3) - 16 - s->mspel * 3) { + || (unsigned)(src_y - 1) > v_edge_pos - (my&3) - 16 - 3) { uint8_t *uvbuf = s->edge_emu_buffer + 19 * s->linesize; srcY -= s->mspel * (1 + s->linesize); -- cgit v1.2.3