aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMashiat Sarker Shakkhar <mashiat.sarker@gmail.com>2012-10-09 19:38:16 +0000
committerDerek Buitenhuis <derek.buitenhuis@gmail.com>2012-10-10 14:54:19 -0400
commit7cc3c4e1d4179aeabcd891090e31ee5e5bfd9692 (patch)
treec2e2204135916910873cc8d191e9bd9e9318bc26
parent88058d9a994f42e4e9ed4e67baf696bbfe53128c (diff)
downloadffmpeg-7cc3c4e1d4179aeabcd891090e31ee5e5bfd9692.tar.gz
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 <derek.buitenhuis@gmail.com>
-rw-r--r--libavcodec/vc1dec.c2
1 files changed, 1 insertions, 1 deletions
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);