up to date regression tests
[ffmpeg.git] / tests / dsptest.c
index 09a22ff..0b3a397 100644 (file)
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 #define TESTCPU_MAIN
+#include "avcodec.h"
 #include "dsputil.h"
-//#include "../libavcodec/dsputil.c"
+#include "mpegvideo.h"
+#include "mpeg12data.h"
+#include "mpeg4data.h"
 #include "../libavcodec/i386/cputest.c"
 #include "../libavcodec/i386/dsputil_mmx.c"
+
+#include "../libavcodec/i386/fdct_mmx.c"
+#include "../libavcodec/i386/idct_mmx.c"
+#include "../libavcodec/i386/motion_est_mmx.c"
+#include "../libavcodec/i386/simple_idct_mmx.c"
+#include "../libavcodec/dsputil.c"
+#include "../libavcodec/simple_idct.c"
+#include "../libavcodec/jfdctfst.c"
+
 #undef TESTCPU_MAIN
 
 #define PAD 0x10000
@@ -62,6 +74,8 @@ static const struct pix_func {
 } pix_func[] = {
 
     PIX_FUNC_MMX(put_pixels),
+    //PIX_FUNC_MMX(get_pixels),
+    //PIX_FUNC_MMX(put_pixels_clamped),
 #if 1
     PIX_FUNC(put_pixels_x2),
     PIX_FUNC(put_pixels_y2),
@@ -75,6 +89,11 @@ static const struct pix_func {
     PIX_FUNC(avg_pixels_x2),
     PIX_FUNC(avg_pixels_y2),
     PIX_FUNC(avg_pixels_xy2),
+
+    PIX_FUNC_MMX(avg_no_rnd_pixels),
+    PIX_FUNC_MMX(avg_no_rnd_pixels_x2),
+    PIX_FUNC_MMX(avg_no_rnd_pixels_y2),
+    PIX_FUNC_MMX(avg_no_rnd_pixels_xy2),
 #endif
     { 0, 0 }
 };
@@ -104,25 +123,25 @@ static test_speed(int step)
         op_pixels_func func = pix->func;
        char* im = bu;
 
-       if (!(pix->mm_flags & mm_flags))
-            continue;
-
-       printf("%30s... ", pix->name);
-        fflush(stdout);
-       ts = rdtsc();
-       for(i=0; i<100000; i++){
-           func(im, im + 1000, linesize, 16);
-           im += step;
-           if (im > bu + 20000)
-               im = bu;
+       if (pix->mm_flags & mm_flags)
+       {
+           printf("%30s... ", pix->name);
+           fflush(stdout);
+           ts = rdtsc();
+           for(i=0; i<100000; i++){
+               func(im, im + 1000, linesize, 16);
+               im += step;
+               if (im > bu + 20000)
+                   im = bu;
+           }
+           te = rdtsc();
+           emms();
+           printf("% 9d\n", (int)(te - ts));
+           sum += (te - ts) / 100000;
+           if (pix->mm_flags & PAD)
+               puts("");
        }
-       te = rdtsc();
-        emms();
-       printf("% 9d\n", (int)(te - ts));
-        sum += (te - ts) / 100000;
-       if (pix->mm_flags & PAD)
-            puts("");
-        pix++;
+       pix++;
     }
 
     printf("Total sum: %d\n", sum);