[FFmpeg-cvslog] ppc: Fix runtime CPU detection for apedsp, huffyuvdsp, svq1enc

Diego Biurrun git at videolan.org
Wed Jun 11 02:33:51 CEST 2014


ffmpeg | branch: master | Diego Biurrun <diego at biurrun.de> | Thu Jun  5 08:45:59 2014 -0700| [205fdd4ea5e1264946917a26fde01e137a485f5a] | committer: Diego Biurrun

ppc: Fix runtime CPU detection for apedsp, huffyuvdsp, svq1enc

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

 libavcodec/ppc/apedsp_altivec.c     |    5 +++++
 libavcodec/ppc/huffyuvdsp_altivec.c |    5 +++++
 libavcodec/ppc/svq1enc_altivec.c    |    5 +++++
 3 files changed, 15 insertions(+)

diff --git a/libavcodec/ppc/apedsp_altivec.c b/libavcodec/ppc/apedsp_altivec.c
index de9df45..d8bf4bd 100644
--- a/libavcodec/ppc/apedsp_altivec.c
+++ b/libavcodec/ppc/apedsp_altivec.c
@@ -24,6 +24,8 @@
 #endif
 
 #include "libavutil/attributes.h"
+#include "libavutil/cpu.h"
+#include "libavutil/ppc/cpu.h"
 #include "libavutil/ppc/types_altivec.h"
 #include "libavcodec/apedsp.h"
 
@@ -72,6 +74,9 @@ static int32_t scalarproduct_and_madd_int16_altivec(int16_t *v1,
 av_cold void ff_apedsp_init_ppc(APEDSPContext *c)
 {
 #if HAVE_ALTIVEC
+    if (!PPC_ALTIVEC(av_get_cpu_flags()))
+        return;
+
     c->scalarproduct_and_madd_int16 = scalarproduct_and_madd_int16_altivec;
 #endif /* HAVE_ALTIVEC */
 }
diff --git a/libavcodec/ppc/huffyuvdsp_altivec.c b/libavcodec/ppc/huffyuvdsp_altivec.c
index 7ff871b..7c34a67 100644
--- a/libavcodec/ppc/huffyuvdsp_altivec.c
+++ b/libavcodec/ppc/huffyuvdsp_altivec.c
@@ -26,6 +26,8 @@
 #endif
 
 #include "libavutil/attributes.h"
+#include "libavutil/cpu.h"
+#include "libavutil/ppc/cpu.h"
 #include "libavutil/ppc/types_altivec.h"
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/huffyuvdsp.h"
@@ -52,6 +54,9 @@ static void add_bytes_altivec(uint8_t *dst, uint8_t *src, int w)
 av_cold void ff_huffyuvdsp_init_ppc(HuffYUVDSPContext *c)
 {
 #if HAVE_ALTIVEC
+    if (!PPC_ALTIVEC(av_get_cpu_flags()))
+        return;
+
     c->add_bytes = add_bytes_altivec;
 #endif /* HAVE_ALTIVEC */
 }
diff --git a/libavcodec/ppc/svq1enc_altivec.c b/libavcodec/ppc/svq1enc_altivec.c
index 005239f..564f129 100644
--- a/libavcodec/ppc/svq1enc_altivec.c
+++ b/libavcodec/ppc/svq1enc_altivec.c
@@ -26,6 +26,8 @@
 #endif
 
 #include "libavutil/attributes.h"
+#include "libavutil/cpu.h"
+#include "libavutil/ppc/cpu.h"
 #include "libavutil/ppc/types_altivec.h"
 #include "libavutil/ppc/util_altivec.h"
 #include "libavcodec/svq1enc.h"
@@ -75,6 +77,9 @@ static int ssd_int8_vs_int16_altivec(const int8_t *pix1, const int16_t *pix2,
 av_cold void ff_svq1enc_init_ppc(SVQ1EncContext *c)
 {
 #if HAVE_ALTIVEC
+    if (!PPC_ALTIVEC(av_get_cpu_flags()))
+        return;
+
     c->ssd_int8_vs_int16 = ssd_int8_vs_int16_altivec;
 #endif /* HAVE_ALTIVEC */
 }



More information about the ffmpeg-cvslog mailing list