jpeglsenc: Check memory allocations
[ffmpeg.git] / libswscale / ppc / yuv2yuv_altivec.c
index e68cccf..08545b3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * AltiVec-enhanced yuv-to-yuv convertion routines.
+ * AltiVec-enhanced yuv-to-yuv conversion routines.
  *
  * Copyright (C) 2004 Romain Dolbeau <romain@dolbeau.org>
  * based on the equivalent C code in swscale.c
 #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 */
 }