[SCM] libav/experimental: * yet a bit more extended * fixed busy loop test bug on mmx-only machine

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:32:09 UTC 2013


The following commit has been merged in the experimental branch:
commit 6fea8454acff29735ea46184cb183ca6ff42e514
Author: Zdenek Kabelac <kabi at informatics.muni.cz>
Date:   Mon May 27 08:39:04 2002 +0000

    * yet a bit more extended
    * fixed busy loop test bug on mmx-only machine
    
    Originally committed as revision 613 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/tests/Makefile b/tests/Makefile
index 610084a..2c4762d 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -19,7 +19,7 @@ test mpeg4 mpeg: vsynth1/0.pgm asynth1.sw
 libavtest: vsynth1/0.pgm asynth1.sw
 	@$(SRC_PATH)/tests/regression.sh $@ $(LIBAV_REFFILE)
 
-# video generation 
+# video generation
 
 vsynth1/0.pgm: videogen
 	@mkdir -p vsynth1
@@ -37,12 +37,19 @@ audiogen: audiogen.c
 	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $<
 
 DSPDEPS = $(SRC_PATH)/libavcodec/i386/dsputil_mmx.c \
- $(SRC_PATH)/libavcodec/i386/dsputil_mmx_avg.h 
+ $(SRC_PATH)/libavcodec/i386/dsputil_mmx_avg.h \
+ $(SRC_PATH)/libavcodec/i386/fdct_mmx.c \
+ $(SRC_PATH)/libavcodec/i386/idct_mmx.c \
+ $(SRC_PATH)/libavcodec/i386/motion_est_mmx.c \
+ $(SRC_PATH)/libavcodec/i386/simple_idct_mmx.c \
+ $(SRC_PATH)/libavcodec/dsputil.c \
+ $(SRC_PATH)/libavcodec/dsputil.h \
+ $(SRC_PATH)/libavcodec/simple_idct.c
 
 dsptestpic: dsptest.c $(DSPDEPS)
-	$(CC) -fPIC -DPIC -O4 -fomit-frame-pointer -DHAVE_AV_CONFIG_H -I.. -I$(SRC_PATH)/libavcodec/i386 -I$(SRC_PATH)/libavcodec/ -o $@ $<
+	$(CC) -fPIC -DPIC -O4 -fomit-frame-pointer -DHAVE_AV_CONFIG_H -I.. -I$(SRC_PATH)/libavcodec/i386 -I$(SRC_PATH)/libavcodec/ -o $@ $< -lm
 dsptest: dsptest.c $(DSPDEPS)
-	$(CC) -O4 -fomit-frame-pointer -DHAVE_AV_CONFIG_H -I.. -I$(SRC_PATH)/libavcodec/i386 -I$(SRC_PATH)/libavcodec/ -o $@ $<
+	$(CC) -O4 -fomit-frame-pointer -DHAVE_AV_CONFIG_H -I.. -I$(SRC_PATH)/libavcodec/i386 -I$(SRC_PATH)/libavcodec/ -o $@ $< -lm
 
 clean:
 	rm -rf vsynth1
diff --git a/tests/dsptest.c b/tests/dsptest.c
index 09a22ff..0b3a397 100644
--- a/tests/dsptest.c
+++ b/tests/dsptest.c
@@ -17,10 +17,22 @@
  * 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);

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list