From 205fdd4ea5e1264946917a26fde01e137a485f5a Mon Sep 17 00:00:00 2001 From: Diego Biurrun Date: Thu, 5 Jun 2014 08:45:59 -0700 Subject: ppc: Fix runtime CPU detection for apedsp, huffyuvdsp, svq1enc --- libavcodec/ppc/apedsp_altivec.c | 5 +++++ libavcodec/ppc/huffyuvdsp_altivec.c | 5 +++++ libavcodec/ppc/svq1enc_altivec.c | 5 +++++ 3 files changed, 15 insertions(+) (limited to 'libavcodec/ppc') diff --git a/libavcodec/ppc/apedsp_altivec.c b/libavcodec/ppc/apedsp_altivec.c index de9df45c6c..d8bf4bd167 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 7ff871be79..7c34a67ea4 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 005239f430..564f12986b 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 */ } -- cgit v1.2.3