diff options
| author | Tim Redfern <tim@eclectronics.org> | 2013-12-29 12:19:38 +0000 |
|---|---|---|
| committer | Tim Redfern <tim@eclectronics.org> | 2013-12-29 12:19:38 +0000 |
| commit | f7813a5324be39d13ab536c245d15dfc602a7849 (patch) | |
| tree | fad99148b88823d34a5df2f0a25881a002eb291b /ffmpeg/libswscale/ppc/yuv2yuv_altivec.c | |
| parent | b7a5a477b8ff4d4e3028b9dfb9a9df0a41463f92 (diff) | |
basic type mechanism working
Diffstat (limited to 'ffmpeg/libswscale/ppc/yuv2yuv_altivec.c')
| -rw-r--r-- | ffmpeg/libswscale/ppc/yuv2yuv_altivec.c | 22 |
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 */ } |
