@@ -21,6 +21,7 @@ | |||||
*/ | */ | ||||
#include "config.h" | #include "config.h" | ||||
#include "libavutil/cpu.h" | |||||
#include "libavutil/ppc/types_altivec.h" | #include "libavutil/ppc/types_altivec.h" | ||||
#include "libavutil/ppc/util_altivec.h" | #include "libavutil/ppc/util_altivec.h" | ||||
#include "libavcodec/fft.h" | #include "libavcodec/fft.h" | ||||
@@ -142,6 +143,9 @@ static void imdct_calc_altivec(FFTContext *s, FFTSample *output, const FFTSample | |||||
av_cold void ff_fft_init_ppc(FFTContext *s) | av_cold void ff_fft_init_ppc(FFTContext *s) | ||||
{ | { | ||||
#if HAVE_GNU_AS && HAVE_ALTIVEC | #if HAVE_GNU_AS && HAVE_ALTIVEC | ||||
if (!(av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC)) | |||||
return; | |||||
s->fft_calc = ff_fft_calc_interleave_altivec; | s->fft_calc = ff_fft_calc_interleave_altivec; | ||||
if (s->mdct_bits >= 5) { | if (s->mdct_bits >= 5) { | ||||
s->imdct_calc = imdct_calc_altivec; | s->imdct_calc = imdct_calc_altivec; | ||||
@@ -20,6 +20,7 @@ | |||||
#include "config.h" | #include "config.h" | ||||
#include "libavutil/attributes.h" | #include "libavutil/attributes.h" | ||||
#include "libavutil/cpu.h" | |||||
#include "libavutil/mem.h" | #include "libavutil/mem.h" | ||||
#include "libavutil/ppc/util_altivec.h" | #include "libavutil/ppc/util_altivec.h" | ||||
#include "libavcodec/fmtconvert.h" | #include "libavcodec/fmtconvert.h" | ||||
@@ -164,6 +165,9 @@ av_cold void ff_fmt_convert_init_ppc(FmtConvertContext *c, | |||||
AVCodecContext *avctx) | AVCodecContext *avctx) | ||||
{ | { | ||||
#if HAVE_ALTIVEC | #if HAVE_ALTIVEC | ||||
if (!(av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC)) | |||||
return; | |||||
c->int32_to_float_fmul_scalar = int32_to_float_fmul_scalar_altivec; | c->int32_to_float_fmul_scalar = int32_to_float_fmul_scalar_altivec; | ||||
if (!(avctx->flags & CODEC_FLAG_BITEXACT)) { | if (!(avctx->flags & CODEC_FLAG_BITEXACT)) { | ||||
c->float_to_int16 = float_to_int16_altivec; | c->float_to_int16 = float_to_int16_altivec; | ||||
@@ -21,6 +21,7 @@ | |||||
#include "config.h" | #include "config.h" | ||||
#include "libavutil/attributes.h" | #include "libavutil/attributes.h" | ||||
#include "libavutil/cpu.h" | |||||
#include "libavutil/internal.h" | #include "libavutil/internal.h" | ||||
#include "libavutil/ppc/util_altivec.h" | #include "libavutil/ppc/util_altivec.h" | ||||
#include "libavcodec/mpegaudiodsp.h" | #include "libavcodec/mpegaudiodsp.h" | ||||
@@ -132,6 +133,9 @@ static void apply_window_mp3(float *in, float *win, int *unused, float *out, | |||||
av_cold void ff_mpadsp_init_ppc(MPADSPContext *s) | av_cold void ff_mpadsp_init_ppc(MPADSPContext *s) | ||||
{ | { | ||||
#if HAVE_ALTIVEC | #if HAVE_ALTIVEC | ||||
if (!(av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC)) | |||||
return; | |||||
s->apply_window_float = apply_window_mp3; | s->apply_window_float = apply_window_mp3; | ||||
#endif /* HAVE_ALTIVEC */ | #endif /* HAVE_ALTIVEC */ | ||||
} | } |