diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index a3f9e76ac8..57608b1f9c 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -1119,12 +1119,21 @@ static int load_input_picture(MpegEncContext *s, const AVFrame *pic_arg) if (src_stride == dst_stride) memcpy(dst, src, src_stride * h); else { - while (h--) { - memcpy(dst, src, w); - dst += dst_stride; + int h2 = h; + uint8_t *dst2 = dst; + while (h2--) { + memcpy(dst2, src, w); + dst2 += dst_stride; src += src_stride; } } + if ((s->width & 15) || (s->height & 15)) { + s->dsp.draw_edges(dst, dst_stride, + w, h, + 16>>h_shift, + 16>>v_shift, + EDGE_BOTTOM); + } } } }