From f7813a5324be39d13ab536c245d15dfc602a7849 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Sun, 29 Dec 2013 12:19:38 +0000 Subject: basic type mechanism working --- ffmpeg/libavcodec/ppc/fmtconvert_altivec.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'ffmpeg/libavcodec/ppc/fmtconvert_altivec.c') diff --git a/ffmpeg/libavcodec/ppc/fmtconvert_altivec.c b/ffmpeg/libavcodec/ppc/fmtconvert_altivec.c index b29c7d4..cd32e39 100644 --- a/ffmpeg/libavcodec/ppc/fmtconvert_altivec.c +++ b/ffmpeg/libavcodec/ppc/fmtconvert_altivec.c @@ -18,14 +18,17 @@ * 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/cpu.h" #include "libavutil/mem.h" +#include "libavutil/ppc/util_altivec.h" +#include "libavcodec/fmtconvert.h" #include "dsputil_altivec.h" -static void int32_to_float_fmul_scalar_altivec(float *dst, const int *src, +#if HAVE_ALTIVEC + +static void int32_to_float_fmul_scalar_altivec(float *dst, const int32_t *src, float mul, int len) { union { @@ -156,11 +159,19 @@ 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 + 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; c->float_to_int16_interleave = float_to_int16_interleave_altivec; } +#endif /* HAVE_ALTIVEC */ } -- cgit v1.2.3