ppc: More consistent arch initialization
authorDiego Biurrun <diego@biurrun.de>
Sun, 14 Apr 2013 12:47:30 +0000 (14:47 +0200)
committerDiego Biurrun <diego@biurrun.de>
Tue, 30 Apr 2013 10:19:45 +0000 (12:19 +0200)
21 files changed:
libavcodec/fft.c
libavcodec/fft.h
libavcodec/fmtconvert.c
libavcodec/fmtconvert.h
libavcodec/h264dsp.c
libavcodec/mpegaudiodsp.c
libavcodec/mpegaudiodsp.h
libavcodec/mpegvideo.c
libavcodec/mpegvideo.h
libavcodec/ppc/Makefile
libavcodec/ppc/fft_altivec.c
libavcodec/ppc/fmtconvert_altivec.c
libavcodec/ppc/h264dsp.c
libavcodec/ppc/mpegaudiodsp_altivec.c
libavcodec/ppc/mpegvideo_altivec.c
libavcodec/ppc/vc1dsp_altivec.c
libavcodec/ppc/vp8dsp_altivec.c
libavcodec/vc1dsp.c
libavcodec/vc1dsp.h
libavcodec/vp8dsp.c
libavcodec/vp8dsp.h

index 0983e80..5026d2e 100644 (file)
@@ -159,7 +159,7 @@ av_cold int ff_fft_init(FFTContext *s, int nbits, int inverse)
 
 #if CONFIG_FFT_FLOAT
     if (ARCH_ARM)     ff_fft_init_arm(s);
-    if (HAVE_ALTIVEC) ff_fft_init_altivec(s);
+    if (ARCH_PPC)     ff_fft_init_ppc(s);
     if (ARCH_X86)     ff_fft_init_x86(s);
     if (CONFIG_MDCT)  s->mdct_calcw = s->mdct_calc;
 #else
index dc05d77..d1425ad 100644 (file)
@@ -133,9 +133,9 @@ void ff_init_ff_cos_tabs(int index);
  */
 int ff_fft_init(FFTContext *s, int nbits, int inverse);
 
-void ff_fft_init_altivec(FFTContext *s);
 void ff_fft_init_x86(FFTContext *s);
 void ff_fft_init_arm(FFTContext *s);
+void ff_fft_init_ppc(FFTContext *s);
 
 void ff_fft_fixed_init_arm(FFTContext *s);
 
index 642e1d2..5b7ab03 100644 (file)
@@ -84,6 +84,6 @@ av_cold void ff_fmt_convert_init(FmtConvertContext *c, AVCodecContext *avctx)
     c->float_interleave           = ff_float_interleave_c;
 
     if (ARCH_ARM) ff_fmt_convert_init_arm(c, avctx);
-    if (HAVE_ALTIVEC) ff_fmt_convert_init_altivec(c, avctx);
+    if (ARCH_PPC) ff_fmt_convert_init_ppc(c, avctx);
     if (ARCH_X86) ff_fmt_convert_init_x86(c, avctx);
 }
index 1b53401..93c3401 100644 (file)
@@ -90,7 +90,7 @@ void ff_float_interleave_c(float *dst, const float **src, unsigned int len,
 void ff_fmt_convert_init(FmtConvertContext *c, AVCodecContext *avctx);
 
 void ff_fmt_convert_init_arm(FmtConvertContext *c, AVCodecContext *avctx);
-void ff_fmt_convert_init_altivec(FmtConvertContext *c, AVCodecContext *avctx);
+void ff_fmt_convert_init_ppc(FmtConvertContext *c, AVCodecContext *avctx);
 void ff_fmt_convert_init_x86(FmtConvertContext *c, AVCodecContext *avctx);
 
 #endif /* AVCODEC_FMTCONVERT_H */
index 8a70aef..6ba465b 100644 (file)
@@ -132,6 +132,6 @@ void ff_h264dsp_init(H264DSPContext *c, const int bit_depth, const int chroma_fo
     }
 
     if (ARCH_ARM) ff_h264dsp_init_arm(c, bit_depth, chroma_format_idc);
-    if (HAVE_ALTIVEC) ff_h264dsp_init_ppc(c, bit_depth, chroma_format_idc);
+    if (ARCH_PPC) ff_h264dsp_init_ppc(c, bit_depth, chroma_format_idc);
     if (ARCH_X86) ff_h264dsp_init_x86(c, bit_depth, chroma_format_idc);
 }
index cd9371b..461a9ef 100644 (file)
@@ -41,6 +41,6 @@ void ff_mpadsp_init(MPADSPContext *s)
     s->imdct36_blocks_fixed = ff_imdct36_blocks_fixed;
 
     if (ARCH_ARM)     ff_mpadsp_init_arm(s);
+    if (ARCH_PPC)     ff_mpadsp_init_ppc(s);
     if (ARCH_X86)     ff_mpadsp_init_x86(s);
-    if (HAVE_ALTIVEC) ff_mpadsp_init_altivec(s);
 }
index 1f85a15..d6aa3f5 100644 (file)
@@ -55,8 +55,8 @@ void ff_mpa_synth_filter_float(MPADSPContext *s,
                                float *sb_samples);
 
 void ff_mpadsp_init_arm(MPADSPContext *s);
+void ff_mpadsp_init_ppc(MPADSPContext *s);
 void ff_mpadsp_init_x86(MPADSPContext *s);
-void ff_mpadsp_init_altivec(MPADSPContext *s);
 
 void ff_mpa_synth_init_float(float *window);
 void ff_mpa_synth_init_fixed(int32_t *window);
index f6ec62a..06278cd 100644 (file)
@@ -180,10 +180,10 @@ av_cold int ff_dct_common_init(MpegEncContext *s)
     ff_MPV_common_init_axp(s);
 #elif ARCH_ARM
     ff_MPV_common_init_arm(s);
-#elif HAVE_ALTIVEC
-    ff_MPV_common_init_altivec(s);
 #elif ARCH_BFIN
     ff_MPV_common_init_bfin(s);
+#elif ARCH_PPC
+    ff_MPV_common_init_ppc(s);
 #endif
 
     /* load & permutate scantables
index 2474bda..307ed5f 100644 (file)
@@ -784,8 +784,8 @@ void ff_MPV_encode_init_x86(MpegEncContext *s);
 void ff_MPV_common_init_x86(MpegEncContext *s);
 void ff_MPV_common_init_axp(MpegEncContext *s);
 void ff_MPV_common_init_arm(MpegEncContext *s);
-void ff_MPV_common_init_altivec(MpegEncContext *s);
 void ff_MPV_common_init_bfin(MpegEncContext *s);
+void ff_MPV_common_init_ppc(MpegEncContext *s);
 void ff_clean_intra_table_entries(MpegEncContext *s);
 void ff_draw_horiz_band(AVCodecContext *avctx, DSPContext *dsp, Picture *cur,
                         Picture *last, int y, int h, int picture_structure,
index a7e1c87..c22a2bc 100644 (file)
@@ -1,24 +1,23 @@
 OBJS                                   += ppc/dsputil_ppc.o             \
+                                          ppc/fmtconvert_altivec.o      \
                                           ppc/videodsp_ppc.o            \
 
+FFT-OBJS-$(HAVE_GNU_AS)                += ppc/fft_altivec_s.o
+OBJS-$(CONFIG_FFT)                     += ppc/fft_altivec.o             \
+                                          $(FFT-OBJS-yes)
 OBJS-$(CONFIG_H264CHROMA)              += ppc/h264chroma_init.o
+OBJS-$(CONFIG_H264DSP)                 += ppc/h264dsp.o
 OBJS-$(CONFIG_H264QPEL)                += ppc/h264qpel.o
 OBJS-$(CONFIG_HPELDSP)                 += ppc/hpeldsp_altivec.o
+OBJS-$(CONFIG_MPEGAUDIODSP)            += ppc/mpegaudiodsp_altivec.o
+OBJS-$(CONFIG_MPEGVIDEO)               += ppc/mpegvideo_altivec.o
+OBJS-$(CONFIG_VC1_DECODER)             += ppc/vc1dsp_altivec.o
 OBJS-$(CONFIG_VORBIS_DECODER)          += ppc/vorbisdsp_altivec.o
 OBJS-$(CONFIG_VP3DSP)                  += ppc/vp3dsp_altivec.o
-
-FFT-OBJS-$(HAVE_GNU_AS)                += ppc/fft_altivec_s.o
-ALTIVEC-OBJS-$(CONFIG_FFT)             += ppc/fft_altivec.o             \
-                                          $(FFT-OBJS-yes)
-ALTIVEC-OBJS-$(CONFIG_H264DSP)         += ppc/h264dsp.o
-ALTIVEC-OBJS-$(CONFIG_MPEGAUDIODSP)    += ppc/mpegaudiodsp_altivec.o
-ALTIVEC-OBJS-$(CONFIG_MPEGVIDEO)       += ppc/mpegvideo_altivec.o
-ALTIVEC-OBJS-$(CONFIG_VC1_DECODER)     += ppc/vc1dsp_altivec.o
-ALTIVEC-OBJS-$(CONFIG_VP8_DECODER)     += ppc/vp8dsp_altivec.o
+OBJS-$(CONFIG_VP8_DECODER)             += ppc/vp8dsp_altivec.o
 
 ALTIVEC-OBJS                           += ppc/dsputil_altivec.o         \
                                           ppc/fdct_altivec.o            \
-                                          ppc/fmtconvert_altivec.o      \
                                           ppc/gmc_altivec.o             \
                                           ppc/idct_altivec.o            \
                                           ppc/int_altivec.o             \
index c85d04f..e3c8482 100644 (file)
@@ -20,6 +20,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config.h"
 #include "libavutil/ppc/types_altivec.h"
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/fft.h"
@@ -36,7 +37,7 @@
 void ff_fft_calc_altivec(FFTContext *s, FFTComplex *z);
 void ff_fft_calc_interleave_altivec(FFTContext *s, FFTComplex *z);
 
-#if HAVE_GNU_AS
+#if HAVE_GNU_AS && HAVE_ALTIVEC
 static void ff_imdct_half_altivec(FFTContext *s, FFTSample *output, const FFTSample *input)
 {
     int j, k;
@@ -136,15 +137,15 @@ static void ff_imdct_calc_altivec(FFTContext *s, FFTSample *output, const FFTSam
         p1[k]    = vec_perm(b, b, vcprm(3,2,1,0));
     }
 }
-#endif /* HAVE_GNU_AS */
+#endif /* HAVE_GNU_AS && HAVE_ALTIVEC */
 
-av_cold void ff_fft_init_altivec(FFTContext *s)
+av_cold void ff_fft_init_ppc(FFTContext *s)
 {
-#if HAVE_GNU_AS
+#if HAVE_GNU_AS && HAVE_ALTIVEC
     s->fft_calc   = ff_fft_calc_interleave_altivec;
     if (s->mdct_bits >= 5) {
         s->imdct_calc = ff_imdct_calc_altivec;
         s->imdct_half = ff_imdct_half_altivec;
     }
-#endif
+#endif /* HAVE_GNU_AS && HAVE_ALTIVEC */
 }
index 78386f6..c72d0a4 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-#include "libavcodec/fmtconvert.h"
-
-#include "libavutil/ppc/util_altivec.h"
+#include "config.h"
 #include "libavutil/attributes.h"
 #include "libavutil/mem.h"
+#include "libavutil/ppc/util_altivec.h"
+#include "libavcodec/fmtconvert.h"
 #include "dsputil_altivec.h"
 
+#if HAVE_ALTIVEC
+
 static void int32_to_float_fmul_scalar_altivec(float *dst, const int *src,
                                                float mul, int len)
 {
@@ -156,11 +158,16 @@ static void float_to_int16_interleave_altivec(int16_t *dst, const float **src,
     }
 }
 
-av_cold void ff_fmt_convert_init_altivec(FmtConvertContext *c, AVCodecContext *avctx)
+#endif /* HAVE_ALTIVEC */
+
+av_cold void ff_fmt_convert_init_ppc(FmtConvertContext *c,
+                                     AVCodecContext *avctx)
 {
+#if HAVE_ALTIVEC
     c->int32_to_float_fmul_scalar = int32_to_float_fmul_scalar_altivec;
     if (!(avctx->flags & CODEC_FLAG_BITEXACT)) {
         c->float_to_int16 = float_to_int16_altivec;
         c->float_to_int16_interleave = float_to_int16_interleave_altivec;
     }
+#endif /* HAVE_ALTIVEC */
 }
index 20549c5..49ca03e 100644 (file)
@@ -18,6 +18,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config.h"
 #include "libavutil/attributes.h"
 #include "libavutil/cpu.h"
 #include "libavutil/intreadwrite.h"
@@ -26,6 +27,8 @@
 #include "libavcodec/h264data.h"
 #include "libavcodec/h264dsp.h"
 
+#if HAVE_ALTIVEC
+
 /****************************************************************************
  * IDCT transform:
  ****************************************************************************/
@@ -721,10 +724,12 @@ static void ff_biweight_h264_pixels ## W ## _altivec(uint8_t *dst, uint8_t *src,
 
 H264_WEIGHT(16)
 H264_WEIGHT( 8)
+#endif /* HAVE_ALTIVEC */
 
 av_cold void ff_h264dsp_init_ppc(H264DSPContext *c, const int bit_depth,
                                  const int chroma_format_idc)
 {
+#if HAVE_ALTIVEC
     if (av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC) {
     if (bit_depth == 8) {
         c->h264_idct_add = ff_h264_idct_add_altivec;
@@ -745,4 +750,5 @@ av_cold void ff_h264dsp_init_ppc(H264DSPContext *c, const int bit_depth,
         c->biweight_h264_pixels_tab[1] = ff_biweight_h264_pixels8_altivec;
     }
     }
+#endif /* HAVE_ALTIVEC */
 }
index 7965183..64a6d03 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-#include "dsputil_altivec.h"
+#include "config.h"
 #include "libavutil/attributes.h"
 #include "libavutil/internal.h"
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/mpegaudiodsp.h"
+#include "dsputil_altivec.h"
+
+#if HAVE_ALTIVEC
 
 #define MACS(rt, ra, rb) rt+=(ra)*(rb)
 #define MLSS(rt, ra, rb) rt-=(ra)*(rb)
@@ -124,7 +127,11 @@ static void apply_window_mp3(float *in, float *win, int *unused, float *out,
     *out = sum;
 }
 
-av_cold void ff_mpadsp_init_altivec(MPADSPContext *s)
+#endif /* HAVE_ALTIVEC */
+
+av_cold void ff_mpadsp_init_ppc(MPADSPContext *s)
 {
+#if HAVE_ALTIVEC
     s->apply_window_float = apply_window_mp3;
+#endif /* HAVE_ALTIVEC */
 }
index f6c85fd..4ad24b9 100644 (file)
 #include <stdlib.h>
 #include <stdio.h>
 
+#include "config.h"
 #include "libavutil/attributes.h"
 #include "libavutil/cpu.h"
 #include "libavutil/ppc/types_altivec.h"
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/mpegvideo.h"
-
 #include "dsputil_altivec.h"
 
+#if HAVE_ALTIVEC
+
 /* AltiVec version of dct_unquantize_h263
    this code assumes `block' is 16 bytes-aligned */
 static void dct_unquantize_h263_altivec(MpegEncContext *s,
@@ -111,9 +113,11 @@ static void dct_unquantize_h263_altivec(MpegEncContext *s,
     }
 }
 
+#endif /* HAVE_ALTIVEC */
 
-av_cold void ff_MPV_common_init_altivec(MpegEncContext *s)
+av_cold void ff_MPV_common_init_ppc(MpegEncContext *s)
 {
+#if HAVE_ALTIVEC
     if (!(av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC)) return;
 
     if ((s->avctx->dct_algo == FF_DCT_AUTO) ||
@@ -121,4 +125,5 @@ av_cold void ff_MPV_common_init_altivec(MpegEncContext *s)
         s->dct_unquantize_h263_intra = dct_unquantize_h263_altivec;
         s->dct_unquantize_h263_inter = dct_unquantize_h263_altivec;
     }
+#endif /* HAVE_ALTIVEC */
 }
index 07bacb1..4695b1c 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config.h"
 #include "libavutil/attributes.h"
 #include "libavutil/ppc/types_altivec.h"
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/vc1dsp.h"
 
+#if HAVE_ALTIVEC
+
 // main steps of 8x8 transform
 #define STEP8(s0, s1, s2, s3, s4, s5, s6, s7, vec_rnd) \
 do { \
@@ -335,8 +338,11 @@ static void vc1_inv_trans_8x4_altivec(uint8_t *dest, int stride, int16_t *block)
 #undef OP_U8_ALTIVEC
 #undef PREFIX_no_rnd_vc1_chroma_mc8_altivec
 
-av_cold void ff_vc1dsp_init_altivec(VC1DSPContext *dsp)
+#endif /* HAVE_ALTIVEC */
+
+av_cold void ff_vc1dsp_init_ppc(VC1DSPContext *dsp)
 {
+#if HAVE_ALTIVEC
     if (!(av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC))
         return;
 
@@ -344,4 +350,5 @@ av_cold void ff_vc1dsp_init_altivec(VC1DSPContext *dsp)
     dsp->vc1_inv_trans_8x4 = vc1_inv_trans_8x4_altivec;
     dsp->put_no_rnd_vc1_chroma_pixels_tab[0] = put_no_rnd_vc1_chroma_mc8_altivec;
     dsp->avg_no_rnd_vc1_chroma_pixels_tab[0] = avg_no_rnd_vc1_chroma_mc8_altivec;
+#endif /* HAVE_ALTIVEC */
 }
index 4336453..504139d 100644 (file)
@@ -20,6 +20,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "config.h"
 #include "libavutil/cpu.h"
 #include "libavutil/mem.h"
 #include "libavutil/ppc/types_altivec.h"
@@ -27,6 +28,7 @@
 #include "libavcodec/vp8dsp.h"
 #include "dsputil_altivec.h"
 
+#if HAVE_ALTIVEC
 #define REPT4(...) { __VA_ARGS__, __VA_ARGS__, __VA_ARGS__, __VA_ARGS__ }
 
 // h subpel filter uses msum to multiply+add 4 pixel taps at once
@@ -272,8 +274,11 @@ static void put_vp8_pixels16_altivec(uint8_t *dst, ptrdiff_t stride, uint8_t *sr
     ff_put_pixels16_altivec(dst, src, stride, h);
 }
 
-av_cold void ff_vp8dsp_init_altivec(VP8DSPContext *c)
+#endif /* HAVE_ALTIVEC */
+
+av_cold void ff_vp8dsp_init_ppc(VP8DSPContext *c)
 {
+#if HAVE_ALTIVEC
     if (!(av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC))
         return;
 
@@ -301,4 +306,5 @@ av_cold void ff_vp8dsp_init_altivec(VP8DSPContext *c)
     c->put_vp8_epel_pixels_tab[2][1][1] = put_vp8_epel4_h4v4_altivec;
     c->put_vp8_epel_pixels_tab[2][1][2] = put_vp8_epel4_h6v4_altivec;
     c->put_vp8_epel_pixels_tab[2][2][1] = put_vp8_epel4_h4v6_altivec;
+#endif /* HAVE_ALTIVEC */
 }
index 0af6f8b..9ebea68 100644 (file)
@@ -854,8 +854,8 @@ av_cold void ff_vc1dsp_init(VC1DSPContext* dsp) {
     dsp->sprite_v_double_twoscale = sprite_v_double_twoscale_c;
 #endif
 
-    if (HAVE_ALTIVEC)
-        ff_vc1dsp_init_altivec(dsp);
     if (ARCH_X86)
         ff_vc1dsp_init_x86(dsp);
+    if (ARCH_PPC)
+        ff_vc1dsp_init_ppc(dsp);
 }
index 677bc37..84d4b70 100644 (file)
@@ -75,7 +75,7 @@ typedef struct VC1DSPContext {
 } VC1DSPContext;
 
 void ff_vc1dsp_init(VC1DSPContext* c);
-void ff_vc1dsp_init_altivec(VC1DSPContext* c);
+void ff_vc1dsp_init_ppc(VC1DSPContext *c);
 void ff_vc1dsp_init_x86(VC1DSPContext* dsp);
 
 #endif /* AVCODEC_VC1DSP_H */
index 78c9b12..b0e54b6 100644 (file)
@@ -523,8 +523,8 @@ av_cold void ff_vp8dsp_init(VP8DSPContext *dsp)
 
     if (ARCH_X86)
         ff_vp8dsp_init_x86(dsp);
-    if (HAVE_ALTIVEC)
-        ff_vp8dsp_init_altivec(dsp);
     if (ARCH_ARM)
         ff_vp8dsp_init_arm(dsp);
+    if (ARCH_PPC)
+        ff_vp8dsp_init_ppc(dsp);
 }
index 6fe5aff..877e264 100644 (file)
@@ -90,7 +90,7 @@ void ff_put_vp8_pixels4_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride,
 
 void ff_vp8dsp_init(VP8DSPContext *c);
 void ff_vp8dsp_init_x86(VP8DSPContext *c);
-void ff_vp8dsp_init_altivec(VP8DSPContext *c);
 void ff_vp8dsp_init_arm(VP8DSPContext *c);
+void ff_vp8dsp_init_ppc(VP8DSPContext *c);
 
 #endif /* AVCODEC_VP8DSP_H */