diff options
Diffstat (limited to 'liba52')
-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 |