summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorZdenek Kabelac <kabi@informatics.muni.cz>2002-05-27 08:39:04 +0000
committerZdenek Kabelac <kabi@informatics.muni.cz>2002-05-27 08:39:04 +0000
commit6fea8454acff29735ea46184cb183ca6ff42e514 (patch)
treee5c470c43b6035599c9370082fed67c794735b40 /tests
parente5f3d22d352176e308106fd8532e83c8ed88eeeb (diff)
* 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
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile15
-rw-r--r--tests/dsptest.c57
2 files changed, 49 insertions, 23 deletions
diff --git a/tests/Makefile b/tests/Makefile
index 610084a69b..2c4762d80f 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 09a22ff4f2..0b3a397de6 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);