aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/arm/rv40dsp_init_neon.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-12-07 02:04:00 +0100
committerMichael Niedermayer <michaelni@gmx.at>2011-12-07 02:04:00 +0100
commitff4800c16bae15817b35eaa22d0113849849114b (patch)
tree123864d2f3118a00ba05995aa956838dde208a04 /libavcodec/arm/rv40dsp_init_neon.c
parentd9ced9fec63e7363a52e4b2e7c3f7d2197256f38 (diff)
parent4d9ec050a21c953f5a6e31483cf5ebd344afa3fd (diff)
downloadffmpeg-ff4800c16bae15817b35eaa22d0113849849114b.tar.gz
Merge remote-tracking branch 'qatar/master'
* qatar/master: Code cleanup - mpegvideo.c - 500-1000line rv40: NEON optimised weighted prediction rv40: NEON optimised chroma MC ARM: move NEON H264 chroma mc to a separate file rv34: NEON optimised inverse transform functions Conflicts: libavcodec/mpegvideo.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/arm/rv40dsp_init_neon.c')
-rw-r--r--libavcodec/arm/rv40dsp_init_neon.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/libavcodec/arm/rv40dsp_init_neon.c b/libavcodec/arm/rv40dsp_init_neon.c
new file mode 100644
index 0000000000..3a863e1916
--- /dev/null
+++ b/libavcodec/arm/rv40dsp_init_neon.c
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 Janne Grunau <janne-libav@jannau.net>
+ *
+ * This file is part of Libav.
+ *
+ * Libav 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.
+ *
+ * Libav 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 Libav; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdint.h>
+
+#include "libavcodec/avcodec.h"
+#include "libavcodec/rv34dsp.h"
+
+void ff_put_rv40_chroma_mc8_neon(uint8_t *, uint8_t *, int, int, int, int);
+void ff_put_rv40_chroma_mc4_neon(uint8_t *, uint8_t *, int, int, int, int);
+
+void ff_avg_rv40_chroma_mc8_neon(uint8_t *, uint8_t *, int, int, int, int);
+void ff_avg_rv40_chroma_mc4_neon(uint8_t *, uint8_t *, int, int, int, int);
+
+void ff_rv40_weight_func_16_neon(uint8_t *, uint8_t *, uint8_t *, int, int, int);
+void ff_rv40_weight_func_8_neon(uint8_t *, uint8_t *, uint8_t *, int, int, int);
+
+void ff_rv40dsp_init_neon(RV34DSPContext *c, DSPContext* dsp)
+{
+ c->put_chroma_pixels_tab[0] = ff_put_rv40_chroma_mc8_neon;
+ c->put_chroma_pixels_tab[1] = ff_put_rv40_chroma_mc4_neon;
+ c->avg_chroma_pixels_tab[0] = ff_avg_rv40_chroma_mc8_neon;
+ c->avg_chroma_pixels_tab[1] = ff_avg_rv40_chroma_mc4_neon;
+
+ c->rv40_weight_pixels_tab[0] = ff_rv40_weight_func_16_neon;
+ c->rv40_weight_pixels_tab[1] = ff_rv40_weight_func_8_neon;
+}