aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Conrad <lessen42@gmail.com>2009-05-23 18:36:20 +0000
committerDavid Conrad <lessen42@gmail.com>2009-05-23 18:36:20 +0000
commit6db8697a396c101ce67a8ab7a030aa233b1f7ecf (patch)
tree415f4917e91ecae33fed3071ea4f844575433912
parent45e5feda68668758758ba8773d9ebf9dd17eb949 (diff)
downloadffmpeg-6db8697a396c101ce67a8ab7a030aa233b1f7ecf.tar.gz
ARM: NEON VP3 Loop Filter
Originally committed as revision 18916 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/Makefile4
-rw-r--r--libavcodec/arm/dsputil_neon.c8
2 files changed, 12 insertions, 0 deletions
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 551576a7bb..461cb41844 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -495,11 +495,15 @@ OBJS-$(HAVE_ARMVFP) += arm/dsputil_vfp.o \
OBJS-$(HAVE_IWMMXT) += arm/dsputil_iwmmxt.o \
arm/mpegvideo_iwmmxt.o \
+NEON-OBJS-$(CONFIG_THEORA_DECODER) += arm/vp3dsp_neon.o
+NEON-OBJS-$(CONFIG_VP3_DECODER) += arm/vp3dsp_neon.o
+
OBJS-$(HAVE_NEON) += arm/dsputil_neon.o \
arm/dsputil_neon_s.o \
arm/h264dsp_neon.o \
arm/h264idct_neon.o \
arm/simple_idct_neon.o \
+ $(NEON-OBJS-yes)
OBJS-$(ARCH_BFIN) += bfin/dsputil_bfin.o \
bfin/fdct_bfin.o \
diff --git a/libavcodec/arm/dsputil_neon.c b/libavcodec/arm/dsputil_neon.c
index 9b9513001a..20425c1b6f 100644
--- a/libavcodec/arm/dsputil_neon.c
+++ b/libavcodec/arm/dsputil_neon.c
@@ -150,6 +150,9 @@ void ff_h264_idct_add8_neon(uint8_t **dest, const int *block_offset,
DCTELEM *block, int stride,
const uint8_t nnzc[6*8]);
+void ff_vp3_v_loop_filter_neon(uint8_t *, int, int *);
+void ff_vp3_h_loop_filter_neon(uint8_t *, int, int *);
+
void ff_vector_fmul_neon(float *dst, const float *src, int len);
void ff_vector_fmul_window_neon(float *dst, const float *src0,
const float *src1, const float *win,
@@ -255,6 +258,11 @@ void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx)
c->h264_idct_add16intra = ff_h264_idct_add16intra_neon;
c->h264_idct_add8 = ff_h264_idct_add8_neon;
+ if (CONFIG_VP3_DECODER || CONFIG_THEORA_DECODER) {
+ c->vp3_v_loop_filter = ff_vp3_v_loop_filter_neon;
+ c->vp3_h_loop_filter = ff_vp3_h_loop_filter_neon;
+ }
+
c->vector_fmul = ff_vector_fmul_neon;
c->vector_fmul_window = ff_vector_fmul_window_neon;