swscale-test: add CRC output
authorRamiro Polla <ramiro.polla@gmail.com>
Thu, 19 Aug 2010 14:36:16 +0000 (14:36 +0000)
committerRamiro Polla <ramiro.polla@gmail.com>
Thu, 19 Aug 2010 14:36:16 +0000 (14:36 +0000)
Originally committed as revision 31982 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale

libswscale/swscale-test.c

index 643c17b..51de670 100644 (file)
@@ -28,6 +28,7 @@
 #include "libavcore/imgutils.h"
 #include "libavutil/mem.h"
 #include "libavutil/avutil.h"
 #include "libavcore/imgutils.h"
 #include "libavutil/mem.h"
 #include "libavutil/avutil.h"
+#include "libavutil/crc.h"
 #include "libavutil/pixdesc.h"
 #include "libavutil/lfg.h"
 #include "swscale.h"
 #include "libavutil/pixdesc.h"
 #include "libavutil/lfg.h"
 #include "swscale.h"
@@ -83,6 +84,7 @@ static int doTest(uint8_t *ref[4], int refStride[4], int w, int h,
     int i;
     uint64_t ssdY, ssdU=0, ssdV=0, ssdA=0;
     struct SwsContext *dstContext = NULL, *outContext = NULL;
     int i;
     uint64_t ssdY, ssdU=0, ssdV=0, ssdA=0;
     struct SwsContext *dstContext = NULL, *outContext = NULL;
+    uint32_t crc = 0;
     int res = 0;
 
     av_fill_image_linesizes(dstStride, dstFormat, dstW);
     int res = 0;
 
     av_fill_image_linesizes(dstStride, dstFormat, dstW);
@@ -135,6 +137,10 @@ static int doTest(uint8_t *ref[4], int refStride[4], int w, int h,
     sws_scale(dstContext, src, srcStride, 0, srcH, dst, dstStride);
     sws_scale(outContext, dst, dstStride, 0, dstH, out, refStride);
 
     sws_scale(dstContext, src, srcStride, 0, srcH, dst, dstStride);
     sws_scale(outContext, dst, dstStride, 0, dstH, out, refStride);
 
+    for (i = 0; i < 4 && dstStride[i]; i++) {
+        crc = av_crc(av_crc_get_table(AV_CRC_32_IEEE), crc, dst[i], dstStride[i] * dstH);
+    }
+
     ssdY= getSSD(ref[0], out[0], refStride[0], refStride[0], w, h);
     if (hasChroma(srcFormat) && hasChroma(dstFormat)) {
         //FIXME check that output is really gray
     ssdY= getSSD(ref[0], out[0], refStride[0], refStride[0], w, h);
     if (hasChroma(srcFormat) && hasChroma(dstFormat)) {
         //FIXME check that output is really gray
@@ -149,8 +155,8 @@ static int doTest(uint8_t *ref[4], int refStride[4], int w, int h,
     ssdV/= w*h/4;
     ssdA/= w*h;
 
     ssdV/= w*h/4;
     ssdA/= w*h;
 
-    printf(" SSD=%5"PRId64",%5"PRId64",%5"PRId64",%5"PRId64"\n",
-           ssdY, ssdU, ssdV, ssdA);
+    printf(" CRC=%08x SSD=%5"PRId64",%5"PRId64",%5"PRId64",%5"PRId64"\n",
+           crc, ssdY, ssdU, ssdV, ssdA);
 
 end:
 
 
 end: