From 0fe3094ae744af10bbb2ca6de9a48f824a4853af Mon Sep 17 00:00:00 2001 From: michael Date: Sun, 16 Dec 2001 00:31:44 +0000 Subject: 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 --- liba52/compare.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 liba52/compare.c (limited to 'liba52') 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 + +// 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 \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 -- cgit v1.2.3