Browse Source

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>
tags/n1.1
Mashiat Sarker Shakkhar Derek Buitenhuis 13 years ago
parent
commit
7cc3c4e1d4
1 changed files with 1 additions and 1 deletions
  1. +1
    -1
      libavcodec/vc1dec.c

+ 1
- 1
libavcodec/vc1dec.c View File

@@ -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);


Loading…
Cancel
Save