tests/tiny_psnr: do not ignore errors from run_psnr
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 23 Apr 2015 02:25:40 +0000 (04:25 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 23 Apr 2015 13:39:36 +0000 (15:39 +0200)
failure to calculate psnr should not result in tiny_psnr returning success

Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tests/tiny_psnr.c

index e09f394..5f791c1 100644 (file)
@@ -150,16 +150,16 @@ static int run_psnr(FILE *f[2], int len, int shift, int skip_bytes)
         for (i = 0; i < 2; i++) {
             uint8_t *p = buf[i];
             if (fread(p, 1, 12, f[i]) != 12)
-                return 1;
+                return -1;
             if (!memcmp(p, "RIFF", 4) &&
                 !memcmp(p + 8, "WAVE", 4)) {
                 if (fread(p, 1, 8, f[i]) != 8)
-                    return 1;
+                    return -1;
                 while (memcmp(p, "data", 4)) {
                     int s = p[4] | p[5] << 8 | p[6] << 16 | p[7] << 24;
                     fseek(f[i], s, SEEK_CUR);
                     if (fread(p, 1, 8, f[i]) != 8)
-                        return 1;
+                        return -1;
                 }
             } else {
                 fseek(f[i], -12, SEEK_CUR);
@@ -315,6 +315,9 @@ int main(int argc, char *argv[])
             max_psnr_shift = shift;
         }
     }
+    if (max_psnr < 0)
+        return 2;
+
     if (shift_last > shift_first)
         printf("Best PSNR is %3d.%02d for shift %i\n", (int)(max_psnr / F), (int)(max_psnr % F), max_psnr_shift);
     return 0;