From: Sebastian Sandberg Date: Thu, 31 Jan 2013 17:04:21 +0000 (+0100) Subject: vc1dec: fieldtx is only valid for interlaced frames X-Git-Tag: android-x86-4.4-r1~6063 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=c6779c513117a347214a47f7bda0a3b0b93a5884;p=android-x86%2Fexternal-ffmpeg.git vc1dec: fieldtx is only valid for interlaced frames the fieldtx_plane is not cleared for interlaced fields Signed-off-by: Michael Niedermayer --- diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index 01fe1ec848..05307c1342 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -80,7 +80,7 @@ static void vc1_put_signed_blocks_clamped(VC1Context *v) { MpegEncContext *s = &v->s; int topleft_mb_pos, top_mb_pos; - int stride_y, fieldtx; + int stride_y, fieldtx = 0; int v_dist; /* The put pixels loop is always one MB row behind the decoding loop, @@ -93,7 +93,8 @@ static void vc1_put_signed_blocks_clamped(VC1Context *v) if (!s->first_slice_line) { if (s->mb_x) { topleft_mb_pos = (s->mb_y - 1) * s->mb_stride + s->mb_x - 1; - fieldtx = v->fieldtx_plane[topleft_mb_pos]; + if (v->fcm == ILACE_FRAME) + fieldtx = v->fieldtx_plane[topleft_mb_pos]; stride_y = s->linesize << fieldtx; v_dist = (16 - fieldtx) >> (fieldtx == 0); s->dsp.put_signed_pixels_clamped(v->block[v->topleft_blk_idx][0], @@ -117,7 +118,8 @@ static void vc1_put_signed_blocks_clamped(VC1Context *v) } if (s->mb_x == s->mb_width - 1) { top_mb_pos = (s->mb_y - 1) * s->mb_stride + s->mb_x; - fieldtx = v->fieldtx_plane[top_mb_pos]; + if (v->fcm == ILACE_FRAME) + fieldtx = v->fieldtx_plane[top_mb_pos]; stride_y = s->linesize << fieldtx; v_dist = fieldtx ? 15 : 8; s->dsp.put_signed_pixels_clamped(v->block[v->top_blk_idx][0],