summaryrefslogtreecommitdiff
path: root/ffmpeg/libswscale/ppc/yuv2yuv_altivec.c
diff options
context:
space:
mode:
Diffstat (limited to 'ffmpeg/libswscale/ppc/yuv2yuv_altivec.c')
-rw-r--r--ffmpeg/libswscale/ppc/yuv2yuv_altivec.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/ffmpeg/libswscale/ppc/yuv2yuv_altivec.c b/ffmpeg/libswscale/ppc/yuv2yuv_altivec.c
index 792deb9..2b1c5dd 100644
--- a/ffmpeg/libswscale/ppc/yuv2yuv_altivec.c
+++ b/ffmpeg/libswscale/ppc/yuv2yuv_altivec.c
@@ -24,9 +24,12 @@
#include <inttypes.h>
#include "config.h"
+#include "libavutil/attributes.h"
+#include "libavutil/cpu.h"
#include "libswscale/swscale.h"
#include "libswscale/swscale_internal.h"
-#include "libavutil/cpu.h"
+
+#if HAVE_ALTIVEC
static int yv12toyuy2_unscaled_altivec(SwsContext *c, const uint8_t *src[],
int srcStride[], int srcSliceY,
@@ -179,16 +182,23 @@ static int yv12touyvy_unscaled_altivec(SwsContext *c, const uint8_t *src[],
return srcSliceH;
}
-void ff_swscale_get_unscaled_altivec(SwsContext *c)
+#endif /* HAVE_ALTIVEC */
+
+av_cold void ff_get_unscaled_swscale_ppc(SwsContext *c)
{
- if ((av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC) && !(c->srcW & 15) &&
- !(c->flags & SWS_BITEXACT) && c->srcFormat == AV_PIX_FMT_YUV420P) {
+#if HAVE_ALTIVEC
+ if (!(av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC))
+ return;
+
+ if (!(c->srcW & 15) && !(c->flags & SWS_BITEXACT) &&
+ c->srcFormat == AV_PIX_FMT_YUV420P) {
enum AVPixelFormat dstFormat = c->dstFormat;
// unscaled YV12 -> packed YUV, we want speed
if (dstFormat == AV_PIX_FMT_YUYV422)
- c->swScale = yv12toyuy2_unscaled_altivec;
+ c->swscale = yv12toyuy2_unscaled_altivec;
else if (dstFormat == AV_PIX_FMT_UYVY422)
- c->swScale = yv12touyvy_unscaled_altivec;
+ c->swscale = yv12touyvy_unscaled_altivec;
}
+#endif /* HAVE_ALTIVEC */
}