X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavutil%2Fsamplefmt.c;h=a9c12ed6fd06802764edc5ea79f8c2efb1a7663d;hb=85044358f63f0158fb83712f659f6db5b454a7aa;hp=ae192ff3d46996d2d37eace3e21608f3b2442f16;hpb=31f3c94760b42e16e998dcc0b34e677d1aa431bc;p=ffmpeg diff --git a/libavutil/samplefmt.c b/libavutil/samplefmt.c index ae192ff3d46..a9c12ed6fd0 100644 --- a/libavutil/samplefmt.c +++ b/libavutil/samplefmt.c @@ -208,8 +208,13 @@ int av_samples_copy(uint8_t **dst, uint8_t * const *src, int dst_offset, dst_offset *= block_align; src_offset *= block_align; - for (i = 0; i < planes; i++) - memcpy(dst[i] + dst_offset, src[i] + src_offset, data_size); + if((dst[0] < src[0] ? src[0] - dst[0] : dst[0] - src[0]) >= data_size) { + for (i = 0; i < planes; i++) + memcpy(dst[i] + dst_offset, src[i] + src_offset, data_size); + } else { + for (i = 0; i < planes; i++) + memmove(dst[i] + dst_offset, src[i] + src_offset, data_size); + } return 0; }