[FFmpeg-cvslog] ppc: Add missing AltiVec cpuflag detection invocations

Diego Biurrun git at videolan.org
Thu Aug 29 15:09:31 CEST 2013


ffmpeg | branch: master | Diego Biurrun <diego at biurrun.de> | Fri Aug 23 18:48:17 2013 +0200| [6af2c351b3ae61e4478950ffddd0dfcad06188b8] | committer: Diego Biurrun

ppc: Add missing AltiVec cpuflag detection invocations

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6af2c351b3ae61e4478950ffddd0dfcad06188b8
---

 libavcodec/ppc/fft_altivec.c          |    4 ++++
 libavcodec/ppc/fmtconvert_altivec.c   |    4 ++++
 libavcodec/ppc/mpegaudiodsp_altivec.c |    4 ++++
 3 files changed, 12 insertions(+)

diff --git a/libavcodec/ppc/fft_altivec.c b/libavcodec/ppc/fft_altivec.c
index b9dd4a2..2885d3f 100644
--- a/libavcodec/ppc/fft_altivec.c
+++ b/libavcodec/ppc/fft_altivec.c
@@ -21,6 +21,7 @@
  */
 
 #include "config.h"
+#include "libavutil/cpu.h"
 #include "libavutil/ppc/types_altivec.h"
 #include "libavutil/ppc/util_altivec.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)
 {
 #if HAVE_GNU_AS && HAVE_ALTIVEC
+    if (!(av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC))
+        return;
+
     s->fft_calc   = ff_fft_calc_interleave_altivec;
     if (s->mdct_bits >= 5) {
         s->imdct_calc = imdct_calc_altivec;
diff --git a/libavcodec/ppc/fmtconvert_altivec.c b/libavcodec/ppc/fmtconvert_altivec.c
index 08e7dce..1359259 100644
--- a/libavcodec/ppc/fmtconvert_altivec.c
+++ b/libavcodec/ppc/fmtconvert_altivec.c
@@ -20,6 +20,7 @@
 
 #include "config.h"
 #include "libavutil/attributes.h"
+#include "libavutil/cpu.h"
 #include "libavutil/mem.h"
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/fmtconvert.h"
@@ -164,6 +165,9 @@ av_cold void ff_fmt_convert_init_ppc(FmtConvertContext *c,
                                      AVCodecContext *avctx)
 {
 #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;
     if (!(avctx->flags & CODEC_FLAG_BITEXACT)) {
         c->float_to_int16 = float_to_int16_altivec;
diff --git a/libavcodec/ppc/mpegaudiodsp_altivec.c b/libavcodec/ppc/mpegaudiodsp_altivec.c
index 64a6d03..6855c0b 100644
--- a/libavcodec/ppc/mpegaudiodsp_altivec.c
+++ b/libavcodec/ppc/mpegaudiodsp_altivec.c
@@ -21,6 +21,7 @@
 
 #include "config.h"
 #include "libavutil/attributes.h"
+#include "libavutil/cpu.h"
 #include "libavutil/internal.h"
 #include "libavutil/ppc/util_altivec.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)
 {
 #if HAVE_ALTIVEC
+    if (!(av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC))
+        return;
+
     s->apply_window_float = apply_window_mp3;
 #endif /* HAVE_ALTIVEC */
 }



More information about the ffmpeg-cvslog mailing list