diff options
Diffstat (limited to 'ffmpeg/libavcodec/ppc/fmtconvert_altivec.c')
| -rw-r--r-- | ffmpeg/libavcodec/ppc/fmtconvert_altivec.c | 21 |
1 files changed, 16 insertions, 5 deletions
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 */ } |
