Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-09-14 16:07:21 +0400
committerMichael Niedermayer <michaelni@gmx.at>2012-09-14 16:13:38 +0400
commit509f502902e3760358d5c0c189f3d288652406e5 (patch)
treec577f55e9db991afa1d1aaa0df4d6626e5155b10 /libavresample/arm/audio_convert_init.c
parent363307813e834314e85ac833dc17b4a8527c8559 (diff)
parent58139e141bfd7116e527bae6a9f71c3b43fc8ff2 (diff)
Merge remote-tracking branch 'qatar/master'
* qatar/master: x86: dsputil: Move Xvid IDCT put/add functions to a more suitable place trasher: Include all the necessary headers x86: Remove some leftover declarations for non-existent functions ARM: libavresample: NEON optimised generic fltp to s16 conversion ARM: libavresample: NEON optimised stereo fltp to s16 conversion ARM: libavresample: NEON optimised flat float to s16 conversion Conflicts: libavcodec/x86/dsputil_mmx.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavresample/arm/audio_convert_init.c')
-rw-r--r--libavresample/arm/audio_convert_init.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/libavresample/arm/audio_convert_init.c b/libavresample/arm/audio_convert_init.c
new file mode 100644
index 0000000000..3d19a0e0e5
--- /dev/null
+++ b/libavresample/arm/audio_convert_init.c
@@ -0,0 +1,49 @@
+/*
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdint.h>
+
+#include "config.h"
+#include "libavutil/attributes.h"
+#include "libavutil/cpu.h"
+#include "libavutil/arm/cpu.h"
+#include "libavutil/samplefmt.h"
+#include "libavresample/audio_convert.h"
+
+void ff_conv_flt_to_s16_neon(int16_t *dst, const float *src, int len);
+void ff_conv_fltp_to_s16_neon(int16_t *dst, float *const *src,
+ int len, int channels);
+void ff_conv_fltp_to_s16_2ch_neon(int16_t *dst, float *const *src,
+ int len, int channels);
+
+av_cold void ff_audio_convert_init_arm(AudioConvert *ac)
+{
+ int cpu_flags = av_get_cpu_flags();
+
+ if (have_neon(cpu_flags)) {
+ ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_FLT,
+ 0, 16, 8, "NEON",
+ ff_conv_flt_to_s16_neon);
+ ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_FLTP,
+ 0, 16, 8, "NEON",
+ ff_conv_fltp_to_s16_neon);
+ ff_audio_convert_set_func(ac, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_FLTP,
+ 2, 16, 8, "NEON",
+ ff_conv_fltp_to_s16_2ch_neon);
+ }
+}