diff options
author | Mashiat Sarker Shakkhar <mashiat.sarker@gmail.com> | 2012-10-09 19:38:16 +0000 |
---|---|---|
committer | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2012-10-10 14:54:19 -0400 |
commit | 7cc3c4e1d4179aeabcd891090e31ee5e5bfd9692 (patch) | |
tree | c2e2204135916910873cc8d191e9bd9e9318bc26 | |
parent | 88058d9a994f42e4e9ed4e67baf696bbfe53128c (diff) | |
download | ffmpeg-streaming-7cc3c4e1d4179aeabcd891090e31ee5e5bfd9692.zip ffmpeg-streaming-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.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index 4127691..491e200 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); |