X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fmpegvideo_motion.c;h=a310bd46905ade46d5c2ede7619acd26bbf6000e;hb=2b202900618d82030384d46c8d9c3dbf3fe1d7ed;hp=c29810f5986df6147c64050462eb5ecfaa9f793d;hpb=166f2c52ace4d969482bcf56e7f0f06942eaf71d;p=ffmpeg diff --git a/libavcodec/mpegvideo_motion.c b/libavcodec/mpegvideo_motion.c index c29810f5986..a310bd46905 100644 --- a/libavcodec/mpegvideo_motion.c +++ b/libavcodec/mpegvideo_motion.c @@ -326,7 +326,9 @@ void mpeg_motion_internal(MpegEncContext *s, ptr_y = s->sc.edge_emu_buffer; if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { uint8_t *ubuf = s->sc.edge_emu_buffer + 18 * s->linesize; - uint8_t *vbuf = ubuf + 9 * s->uvlinesize; + uint8_t *vbuf = ubuf + 10 * s->uvlinesize; + if (s->workaround_bugs & FF_BUG_IEDGE) + vbuf -= s->uvlinesize; uvsrc_y = (unsigned)uvsrc_y << field_based; s->vdsp.emulated_edge_mc(ubuf, ptr_cb, s->uvlinesize, s->uvlinesize, @@ -549,7 +551,9 @@ static inline void qpel_motion(MpegEncContext *s, ptr_y = s->sc.edge_emu_buffer; if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { uint8_t *ubuf = s->sc.edge_emu_buffer + 18 * s->linesize; - uint8_t *vbuf = ubuf + 9 * s->uvlinesize; + uint8_t *vbuf = ubuf + 10 * s->uvlinesize; + if (s->workaround_bugs & FF_BUG_IEDGE) + vbuf -= s->uvlinesize; s->vdsp.emulated_edge_mc(ubuf, ptr_cb, s->uvlinesize, s->uvlinesize, 9, 9 + field_based,