]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/ppc/fdct_altivec.c
FATE: add a test for the overlay filter
[ffmpeg] / libavcodec / ppc / fdct_altivec.c
index 41bebd184a83594ddd829a68cc948681085f4e90..b1e70d624f02b81a150ce833bfd0fb6492ce27a5 100644 (file)
@@ -1,29 +1,29 @@
 /*
  * Copyright (C) 2003  James Klicman <james@klicman.org>
  *
- * This file is part of FFmpeg.
+ * This file is part of Libav.
  *
- * FFmpeg is free software; you can redistribute it and/or
+ * Libav is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.
  *
- * FFmpeg is distributed in the hope that it will be useful,
+ * Libav is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
+ * License along with Libav; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-
+#include "config.h"
+#if HAVE_ALTIVEC_H
+#include <altivec.h>
+#endif
 #include "libavutil/common.h"
-#include "libavcodec/dsputil.h"
-#include "dsputil_ppc.h"
-#include "gcc_fixes.h"
-
+#include "dsputil_altivec.h"
 
 #define vs16(v) ((vector signed short)(v))
 #define vs32(v) ((vector signed int)(v))
@@ -194,9 +194,8 @@ static vector float fdctconsts[3] = {
 
 /* two dimensional discrete cosine transform */
 
-void fdct_altivec(int16_t *block)
+void ff_fdct_altivec(int16_t *block)
 {
-POWERPC_PERF_DECLARE(altivec_fdct, 1);
     vector signed short *bp;
     vector float *cp;
     vector float b00, b10, b20, b30, b40, b50, b60, b70;
@@ -204,9 +203,6 @@ POWERPC_PERF_DECLARE(altivec_fdct, 1);
     vector float mzero, cnst, cnsts0, cnsts1, cnsts2;
     vector float x0, x1, x2, x3, x4, x5, x6, x7, x8;
 
-    POWERPC_PERF_START_COUNT(altivec_fdct, 1);
-
-
     /* setup constants {{{ */
     /* mzero = -0.0 */
     mzero = ((vector float)vec_splat_u32(-1));
@@ -268,7 +264,6 @@ POWERPC_PERF_DECLARE(altivec_fdct, 1);
  * conversion to vector float.  The following code section takes advantage
  * of this.
  */
-#if 1
     /* fdct rows {{{ */
     x0 = ((vector float)vec_add(vs16(b00), vs16(b70)));
     x7 = ((vector float)vec_sub(vs16(b00), vs16(b70)));
@@ -392,29 +387,6 @@ POWERPC_PERF_DECLARE(altivec_fdct, 1);
     b31 = vec_add(b31, x2);
     b11 = vec_add(b11, x3);
     /* }}} */
-#else
-    /* convert to float {{{ */
-#define CTF(n) \
-    vs32(b##n##1) = vec_unpackl(vs16(b##n##0)); \
-    vs32(b##n##0) = vec_unpackh(vs16(b##n##0)); \
-    b##n##1 = vec_ctf(vs32(b##n##1), 0); \
-    b##n##0 = vec_ctf(vs32(b##n##0), 0); \
-
-    CTF(0);
-    CTF(1);
-    CTF(2);
-    CTF(3);
-    CTF(4);
-    CTF(5);
-    CTF(6);
-    CTF(7);
-
-#undef CTF
-    /* }}} */
-
-    FDCTROW(b00, b10, b20, b30, b40, b50, b60, b70);
-    FDCTROW(b01, b11, b21, b31, b41, b51, b61, b71);
-#endif
 
 
     /* 8x8 matrix transpose (vector float[8][2]) {{{ */
@@ -485,8 +457,6 @@ POWERPC_PERF_DECLARE(altivec_fdct, 1);
 
 #undef CTS
     /* }}} */
-
-POWERPC_PERF_STOP_COUNT(altivec_fdct, 1);
 }
 
 /* vim:set foldmethod=marker foldlevel=0: */