summaryrefslogtreecommitdiffstats
path: root/liba52
diff options
context:
space:
mode:
authormichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-12-16 00:31:44 +0000
committermichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-12-16 00:31:44 +0000
commit0fe3094ae744af10bbb2ca6de9a48f824a4853af (patch)
tree38fb2351275cf524d0998bc1a4aa16485f43df63 /liba52
parenta59608c8ca062a3a325863e699e10d8b142e559c (diff)
downloadmpv-0fe3094ae744af10bbb2ca6de9a48f824a4853af.tar.bz2
mpv-0fe3094ae744af10bbb2ca6de9a48f824a4853af.tar.xz
gcc -O? thinks a*0.0 != 0.0 so we need a better cmp
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3511 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'liba52')
-rw-r--r--liba52/compare.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/liba52/compare.c b/liba52/compare.c
new file mode 100644
index 0000000000..77fbc9186a
--- /dev/null
+++ b/liba52/compare.c
@@ -0,0 +1,50 @@
+// File written by Michael Niedermayer and its under GPL
+// simple file compare program, it finds the number of rounding errors
+// and dies if there is a larger error ( ABS(a-b)>1 )
+
+#include <stdio.h>
+
+// FIXME no checks but its just for debuging so who cares ;)
+
+int main(int argc, char **argv)
+{
+ FILE *f0, *f1;
+ int dif=0;
+
+ if(argc!=3)
+ {
+ printf("compare <file1> <file2>\n");
+ exit(2);
+ }
+
+ f0= fopen(argv[1], "rb");
+ f1= fopen(argv[2], "rb");
+
+ for(;;)
+ {
+ int c0= fgetc(f0);
+ int c1= fgetc(f1);
+ int d= c0-c1;
+ if(c0<0 && c1<0) break;
+ if(c0<0 || c1<0)
+ {
+ printf("FATAL error, files have different size!\n");
+ exit(1);
+ }
+
+ if(d<0) d=-d; // ABS
+ if(d>1)
+ {
+ printf("FATAL error, too large differnce found!\n");
+ exit(1);
+ }
+
+ if(d) dif++;
+ }
+
+ fclose(f0);
+ fclose(f1);
+
+ printf("%d (+/-1)differences found\n", dif);
+ exit(0);
+} \ No newline at end of file