diff --git a/libavcodec/mss2.c b/libavcodec/mss2.c index 09b7abd44d..505c981a45 100644 --- a/libavcodec/mss2.c +++ b/libavcodec/mss2.c @@ -421,8 +421,8 @@ static int decode_wmv9(AVCodecContext *avctx, const uint8_t *buf, int buf_size, if (v->respic == 3) { ctx->dsp.upsample_plane(f->data[0], f->linesize[0], w, h); - ctx->dsp.upsample_plane(f->data[1], f->linesize[1], w >> 1, h >> 1); - ctx->dsp.upsample_plane(f->data[2], f->linesize[2], w >> 1, h >> 1); + ctx->dsp.upsample_plane(f->data[1], f->linesize[1], w+1 >> 1, h+1 >> 1); + ctx->dsp.upsample_plane(f->data[2], f->linesize[2], w+1 >> 1, h+1 >> 1); } else if (v->respic) avpriv_request_sample(v->s.avctx, "Asymmetric WMV9 rectangle subsampling"); diff --git a/tests/ref/fate/mss2-wmv b/tests/ref/fate/mss2-wmv index 8ca58509a7..c54cff62b4 100644 --- a/tests/ref/fate/mss2-wmv +++ b/tests/ref/fate/mss2-wmv @@ -70,7 +70,7 @@ 0, 74, 74, 1, 230400, 0xfe47e3c4 0, 75, 75, 1, 230400, 0xa2e0e721 0, 76, 76, 1, 230400, 0xde974a42 -0, 77, 77, 1, 230400, 0xe86a376b +0, 77, 77, 1, 230400, 0x87bf38ba 0, 78, 78, 1, 230400, 0xd52318fd 0, 79, 79, 1, 230400, 0x0bbb1526 0, 80, 80, 1, 230400, 0xa22c5e5e