Permalink
Browse files

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>
  • Loading branch information...
2 parents 3633078 + 58139e1 commit 509f502902e3760358d5c0c189f3d288652406e5 @michaelni michaelni committed Sep 14, 2012
@@ -57,7 +57,6 @@ void ff_bfin_fdct(DCTELEM *block);
// ALTIVEC
void ff_fdct_altivec(DCTELEM *block);
-//void ff_idct_altivec(DCTELEM *block);?? no routine
// ARM
void ff_j_rev_dct_arm(DCTELEM *data);
@@ -2291,30 +2291,6 @@ static void ff_libmpeg2mmx2_idct_add(uint8_t *dest, int line_size,
}
#endif
-static void ff_idct_xvid_mmx_put(uint8_t *dest, int line_size, DCTELEM *block)
-{
- ff_idct_xvid_mmx(block);
- ff_put_pixels_clamped_mmx(block, dest, line_size);
-}
-
-static void ff_idct_xvid_mmx_add(uint8_t *dest, int line_size, DCTELEM *block)
-{
- ff_idct_xvid_mmx(block);
- ff_add_pixels_clamped_mmx(block, dest, line_size);
-}
-
-static void ff_idct_xvid_mmx2_put(uint8_t *dest, int line_size, DCTELEM *block)
-{
- ff_idct_xvid_mmx2(block);
- ff_put_pixels_clamped_mmx(block, dest, line_size);
-}
-
-static void ff_idct_xvid_mmx2_add(uint8_t *dest, int line_size, DCTELEM *block)
-{
- ff_idct_xvid_mmx2(block);
- ff_add_pixels_clamped_mmx(block, dest, line_size);
-}
-
static void vorbis_inverse_coupling_3dnow(float *mag, float *ang, int blocksize)
{
int i;
@@ -44,6 +44,7 @@
#include "config.h"
#include "libavcodec/avcodec.h"
#include "libavutil/mem.h"
+#include "dsputil_mmx.h"
#include "idct_xvid.h"
#if HAVE_INLINE_ASM
@@ -529,4 +530,28 @@ __asm__ volatile(
:: "r"(block), "r"(rounder_0), "r"(tab_i_04_xmm), "r"(tg_1_16));
}
+void ff_idct_xvid_mmx_put(uint8_t *dest, int line_size, DCTELEM *block)
+{
+ ff_idct_xvid_mmx(block);
+ ff_put_pixels_clamped_mmx(block, dest, line_size);
+}
+
+void ff_idct_xvid_mmx_add(uint8_t *dest, int line_size, DCTELEM *block)
+{
+ ff_idct_xvid_mmx(block);
+ ff_add_pixels_clamped_mmx(block, dest, line_size);
+}
+
+void ff_idct_xvid_mmx2_put(uint8_t *dest, int line_size, DCTELEM *block)
+{
+ ff_idct_xvid_mmx2(block);
+ ff_put_pixels_clamped_mmx(block, dest, line_size);
+}
+
+void ff_idct_xvid_mmx2_add(uint8_t *dest, int line_size, DCTELEM *block)
+{
+ ff_idct_xvid_mmx2(block);
+ ff_add_pixels_clamped_mmx(block, dest, line_size);
+}
+
#endif /* HAVE_INLINE_ASM */
@@ -28,8 +28,16 @@
#include <stdint.h>
+#include "libavcodec/dsputil.h"
+
void ff_idct_xvid_mmx(short *block);
+void ff_idct_xvid_mmx_put(uint8_t *dest, int line_size, DCTELEM *block);
+void ff_idct_xvid_mmx_add(uint8_t *dest, int line_size, DCTELEM *block);
+
void ff_idct_xvid_mmx2(short *block);
+void ff_idct_xvid_mmx2_put(uint8_t *dest, int line_size, DCTELEM *block);
+void ff_idct_xvid_mmx2_add(uint8_t *dest, int line_size, DCTELEM *block);
+
void ff_idct_xvid_sse2(short *block);
void ff_idct_xvid_sse2_put(uint8_t *dest, int line_size, short *block);
void ff_idct_xvid_sse2_add(uint8_t *dest, int line_size, short *block);
@@ -0,0 +1,2 @@
+OBJS += arm/audio_convert_init.o
+NEON-OBJS += arm/audio_convert_neon.o
@@ -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);
+ }
+}
Oops, something went wrong.

0 comments on commit 509f502

Please sign in to comment.