diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-02-16 13:44:38 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-02-16 14:08:21 +0400 |
commit | 1e78679768b3a1ef336c5b52aa5027d8a50fcf0d (patch) | |
tree | 2cbf5dc5ecfb123c88ba7f12306b7c1dd2b5f4fe | |
parent | 446f7c62a2d1358a276212300d09f9af88f9a228 (diff) |
mpegvideo_enc: draw edges on input
Improves Motion estimation, avoids using out of picture areas for %16 != 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/mpegvideo_enc.c | 15 |
1 files 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); + } } } } |