[FFmpeg-cvslog] swr: use memcpy when input and output match

Michael Niedermayer git at videolan.org
Sun Apr 29 15:45:13 CEST 2012


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Apr 29 15:28:16 2012 +0200| [9f98a8e9bc9b669f348834908dce927a2a5d9b90] | committer: Michael Niedermayer

swr: use memcpy when input and output match

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9f98a8e9bc9b669f348834908dce927a2a5d9b90
---

 libswresample/audioconvert.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/libswresample/audioconvert.c b/libswresample/audioconvert.c
index 529c911..1cdd80f 100644
--- a/libswresample/audioconvert.c
+++ b/libswresample/audioconvert.c
@@ -107,6 +107,10 @@ static conv_func_type * const fmt_pair_to_conv_functions[AV_SAMPLE_FMT_NB*AV_SAM
     FMT_PAIR_FUNC(AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_DBL),
 };
 
+static void cpy(uint8_t **dst, const uint8_t **src, int len){
+    memcpy(*dst, *src, len);
+}
+
 AudioConvert *swri_audio_convert_alloc(enum AVSampleFormat out_fmt,
                                        enum AVSampleFormat in_fmt,
                                        int channels, const int *ch_map,
@@ -126,6 +130,9 @@ AudioConvert *swri_audio_convert_alloc(enum AVSampleFormat out_fmt,
     if (in_fmt == AV_SAMPLE_FMT_U8)
         memset(ctx->silence, 0x80, sizeof(ctx->silence));
 
+    if(out_fmt == in_fmt && !ch_map)
+        ctx->simd_f = cpy;
+
     if(HAVE_YASM && HAVE_MMX) swri_audio_convert_init_x86(ctx, out_fmt, in_fmt, channels);
 
     return ctx;



More information about the ffmpeg-cvslog mailing list