diff options
author | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-12-16 00:31:44 +0000 |
---|---|---|
committer | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-12-16 00:31:44 +0000 |
commit | 0fe3094ae744af10bbb2ca6de9a48f824a4853af (patch) | |
tree | 38fb2351275cf524d0998bc1a4aa16485f43df63 /liba52/compare.c | |
parent | a59608c8ca062a3a325863e699e10d8b142e559c (diff) | |
download | mpv-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/compare.c')
-rw-r--r-- | liba52/compare.c | 50 |
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 |