From 8506ff97c9ea4a1f52983497ecf8d4ef193403a9 Mon Sep 17 00:00:00 2001 From: Diego Biurrun Date: Sat, 6 Oct 2012 20:28:56 +0200 Subject: [PATCH] vp56: Mark VP6-only optimizations as such. Most of our VP56 optimizations are VP6-only and will stay that way. So avoid compiling them for VP5-only builds. --- libavcodec/arm/Makefile | 6 ++---- .../arm/{vp56dsp_init_arm.c => vp6dsp_init_arm.c} | 4 ++-- libavcodec/arm/{vp56dsp_neon.S => vp6dsp_neon.S} | 0 libavcodec/vp56dsp.c | 8 +++++--- libavcodec/vp56dsp.h | 4 ++-- libavcodec/x86/Makefile | 5 ++--- libavcodec/x86/{vp56dsp.asm => vp6dsp.asm} | 0 libavcodec/x86/{vp56dsp_init.c => vp6dsp_init.c} | 15 ++++++--------- 8 files changed, 19 insertions(+), 23 deletions(-) rename libavcodec/arm/{vp56dsp_init_arm.c => vp6dsp_init_arm.c} (90%) rename libavcodec/arm/{vp56dsp_neon.S => vp6dsp_neon.S} (100%) rename libavcodec/x86/{vp56dsp.asm => vp6dsp.asm} (100%) rename libavcodec/x86/{vp56dsp_init.c => vp6dsp_init.c} (80%) diff --git a/libavcodec/arm/Makefile b/libavcodec/arm/Makefile index 9c64b361f1..0e5e53a16a 100644 --- a/libavcodec/arm/Makefile +++ b/libavcodec/arm/Makefile @@ -25,8 +25,7 @@ OBJS-$(CONFIG_MPEGAUDIODSP) += arm/mpegaudiodsp_init_arm.o OBJS-$(CONFIG_MPEGVIDEO) += arm/mpegvideo_arm.o OBJS-$(CONFIG_VORBIS_DECODER) += arm/vorbisdsp_init_arm.o OBJS-$(CONFIG_VP3DSP) += arm/vp3dsp_init_arm.o -OBJS-$(CONFIG_VP5_DECODER) += arm/vp56dsp_init_arm.o -OBJS-$(CONFIG_VP6_DECODER) += arm/vp56dsp_init_arm.o +OBJS-$(CONFIG_VP6_DECODER) += arm/vp6dsp_init_arm.o OBJS-$(CONFIG_VP8_DECODER) += arm/vp8dsp_init_arm.o OBJS-$(CONFIG_RV30_DECODER) += arm/rv34dsp_init_arm.o OBJS-$(CONFIG_RV40_DECODER) += arm/rv34dsp_init_arm.o \ @@ -89,7 +88,6 @@ NEON-OBJS-$(CONFIG_RV40_DECODER) += arm/rv34dsp_neon.o \ arm/rv40dsp_neon.o NEON-OBJS-$(CONFIG_VORBIS_DECODER) += arm/vorbisdsp_neon.o NEON-OBJS-$(CONFIG_VP3DSP) += arm/vp3dsp_neon.o -NEON-OBJS-$(CONFIG_VP5_DECODER) += arm/vp56dsp_neon.o -NEON-OBJS-$(CONFIG_VP6_DECODER) += arm/vp56dsp_neon.o +NEON-OBJS-$(CONFIG_VP6_DECODER) += arm/vp6dsp_neon.o NEON-OBJS-$(CONFIG_VP8_DECODER) += arm/vp8dsp_init_neon.o \ arm/vp8dsp_neon.o diff --git a/libavcodec/arm/vp56dsp_init_arm.c b/libavcodec/arm/vp6dsp_init_arm.c similarity index 90% rename from libavcodec/arm/vp56dsp_init_arm.c rename to libavcodec/arm/vp6dsp_init_arm.c index 65e892dafa..4ec41ed9f1 100644 --- a/libavcodec/arm/vp56dsp_init_arm.c +++ b/libavcodec/arm/vp6dsp_init_arm.c @@ -28,11 +28,11 @@ void ff_vp6_edge_filter_hor_neon(uint8_t *yuv, int stride, int t); void ff_vp6_edge_filter_ver_neon(uint8_t *yuv, int stride, int t); -av_cold void ff_vp56dsp_init_arm(VP56DSPContext *s, enum AVCodecID codec) +av_cold void ff_vp6dsp_init_arm(VP56DSPContext *s, enum AVCodecID codec) { int cpu_flags = av_get_cpu_flags(); - if (codec != AV_CODEC_ID_VP5 && have_neon(cpu_flags)) { + if (have_neon(cpu_flags)) { s->edge_filter_hor = ff_vp6_edge_filter_hor_neon; s->edge_filter_ver = ff_vp6_edge_filter_ver_neon; } diff --git a/libavcodec/arm/vp56dsp_neon.S b/libavcodec/arm/vp6dsp_neon.S similarity index 100% rename from libavcodec/arm/vp56dsp_neon.S rename to libavcodec/arm/vp6dsp_neon.S diff --git a/libavcodec/vp56dsp.c b/libavcodec/vp56dsp.c index 9929530221..5e09d2414e 100644 --- a/libavcodec/vp56dsp.c +++ b/libavcodec/vp56dsp.c @@ -88,9 +88,11 @@ av_cold void ff_vp56dsp_init(VP56DSPContext *s, enum AVCodecID codec) if (CONFIG_VP6_DECODER) { s->vp6_filter_diag4 = ff_vp6_filter_diag4_c; + + if (ARCH_ARM) + ff_vp6dsp_init_arm(s, codec); + if (ARCH_X86) + ff_vp6dsp_init_x86(s, codec); } } - - if (ARCH_ARM) ff_vp56dsp_init_arm(s, codec); - if (ARCH_X86) ff_vp56dsp_init_x86(s, codec); } diff --git a/libavcodec/vp56dsp.h b/libavcodec/vp56dsp.h index 034e2e9c5b..389d35901c 100644 --- a/libavcodec/vp56dsp.h +++ b/libavcodec/vp56dsp.h @@ -36,7 +36,7 @@ void ff_vp6_filter_diag4_c(uint8_t *dst, uint8_t *src, int stride, const int16_t *h_weights, const int16_t *v_weights); void ff_vp56dsp_init(VP56DSPContext *s, enum AVCodecID codec); -void ff_vp56dsp_init_arm(VP56DSPContext *s, enum AVCodecID codec); -void ff_vp56dsp_init_x86(VP56DSPContext* c, enum AVCodecID codec); +void ff_vp6dsp_init_arm(VP56DSPContext *s, enum AVCodecID codec); +void ff_vp6dsp_init_x86(VP56DSPContext* c, enum AVCodecID codec); #endif /* AVCODEC_VP56DSP_H */ diff --git a/libavcodec/x86/Makefile b/libavcodec/x86/Makefile index e3b533d2d1..9a0c0971c6 100644 --- a/libavcodec/x86/Makefile +++ b/libavcodec/x86/Makefile @@ -27,8 +27,7 @@ OBJS-$(CONFIG_VC1_DECODER) += x86/vc1dsp_init.o OBJS-$(CONFIG_VIDEODSP) += x86/videodsp_init.o OBJS-$(CONFIG_VORBIS_DECODER) += x86/vorbisdsp_init.o OBJS-$(CONFIG_VP3DSP) += x86/vp3dsp_init.o -OBJS-$(CONFIG_VP5_DECODER) += x86/vp56dsp_init.o -OBJS-$(CONFIG_VP6_DECODER) += x86/vp56dsp_init.o +OBJS-$(CONFIG_VP6_DECODER) += x86/vp6dsp_init.o OBJS-$(CONFIG_VP8_DECODER) += x86/vp8dsp_init.o OBJS-$(CONFIG_XMM_CLOBBER_TEST) += x86/w64xmmtest.o @@ -88,5 +87,5 @@ YASM-OBJS-$(CONFIG_VC1_DECODER) += x86/vc1dsp.o YASM-OBJS-$(CONFIG_VIDEODSP) += x86/videodsp.o YASM-OBJS-$(CONFIG_VORBIS_DECODER) += x86/vorbisdsp.o YASM-OBJS-$(CONFIG_VP3DSP) += x86/vp3dsp.o -YASM-OBJS-$(CONFIG_VP6_DECODER) += x86/vp56dsp.o +YASM-OBJS-$(CONFIG_VP6_DECODER) += x86/vp6dsp.o YASM-OBJS-$(CONFIG_VP8_DECODER) += x86/vp8dsp.o diff --git a/libavcodec/x86/vp56dsp.asm b/libavcodec/x86/vp6dsp.asm similarity index 100% rename from libavcodec/x86/vp56dsp.asm rename to libavcodec/x86/vp6dsp.asm diff --git a/libavcodec/x86/vp56dsp_init.c b/libavcodec/x86/vp6dsp_init.c similarity index 80% rename from libavcodec/x86/vp56dsp_init.c rename to libavcodec/x86/vp6dsp_init.c index 1596273fdd..c4a500b28a 100644 --- a/libavcodec/x86/vp56dsp_init.c +++ b/libavcodec/x86/vp6dsp_init.c @@ -30,19 +30,16 @@ void ff_vp6_filter_diag4_mmx(uint8_t *dst, uint8_t *src, int stride, void ff_vp6_filter_diag4_sse2(uint8_t *dst, uint8_t *src, int stride, const int16_t *h_weights,const int16_t *v_weights); -av_cold void ff_vp56dsp_init_x86(VP56DSPContext* c, enum AVCodecID codec) +av_cold void ff_vp6dsp_init_x86(VP56DSPContext* c, enum AVCodecID codec) { int cpu_flags = av_get_cpu_flags(); - if (CONFIG_VP6_DECODER && codec == AV_CODEC_ID_VP6) { #if ARCH_X86_32 - if (EXTERNAL_MMX(cpu_flags)) { - c->vp6_filter_diag4 = ff_vp6_filter_diag4_mmx; - } + if (EXTERNAL_MMX(cpu_flags)) { + c->vp6_filter_diag4 = ff_vp6_filter_diag4_mmx; + } #endif - - if (EXTERNAL_SSE2(cpu_flags)) { - c->vp6_filter_diag4 = ff_vp6_filter_diag4_sse2; - } + if (EXTERNAL_SSE2(cpu_flags)) { + c->vp6_filter_diag4 = ff_vp6_filter_diag4_sse2; } }