Browse Source

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.
tags/n2.1
Diego Biurrun 12 years ago
parent
commit
8506ff97c9
8 changed files with 19 additions and 23 deletions
  1. +2
    -4
      libavcodec/arm/Makefile
  2. +2
    -2
      libavcodec/arm/vp6dsp_init_arm.c
  3. +0
    -0
      libavcodec/arm/vp6dsp_neon.S
  4. +5
    -3
      libavcodec/vp56dsp.c
  5. +2
    -2
      libavcodec/vp56dsp.h
  6. +2
    -3
      libavcodec/x86/Makefile
  7. +0
    -0
      libavcodec/x86/vp6dsp.asm
  8. +6
    -9
      libavcodec/x86/vp6dsp_init.c

+ 2
- 4
libavcodec/arm/Makefile View File

@@ -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

libavcodec/arm/vp56dsp_init_arm.c → libavcodec/arm/vp6dsp_init_arm.c View File

@@ -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;
}

libavcodec/arm/vp56dsp_neon.S → libavcodec/arm/vp6dsp_neon.S View File


+ 5
- 3
libavcodec/vp56dsp.c View File

@@ -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);
}

+ 2
- 2
libavcodec/vp56dsp.h View File

@@ -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 */

+ 2
- 3
libavcodec/x86/Makefile View File

@@ -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

libavcodec/x86/vp56dsp.asm → libavcodec/x86/vp6dsp.asm View File


libavcodec/x86/vp56dsp_init.c → libavcodec/x86/vp6dsp_init.c View File

@@ -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;
}
}

Loading…
Cancel
Save