From 1e78679768b3a1ef336c5b52aa5027d8a50fcf0d Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 16 Feb 2013 10:44:38 +0100 Subject: [PATCH] mpegvideo_enc: draw edges on input Improves Motion estimation, avoids using out of picture areas for %16 != 0 Signed-off-by: Michael Niedermayer --- libavcodec/mpegvideo_enc.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) 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); + } } } }