view liba52/compare.c @ 14802:63b1cc62fc9b

MEncoder multiple files patch by Oded Shimon (ods15) Seems to work, or at least not to cause problems with existing functionality (encoding single files). Please test and report bugs, if there are any!
author rfelker
date Fri, 25 Feb 2005 02:32:29 +0000
parents aed9850ca011
children 6ade61b852eb
line wrap: on
line source

// 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(;;)
	{
		short c0;
		short c1;
		int d;
		
		int e0= fread(&c0, 2, 1, f0);
		int e1= fread(&c1, 2, 1, f1);
		
		d=c0-c1;
		if(e0==0 && e1==0) break;
		if(e0==0 || e1==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 (%d)!\n", d);
			exit(1);
		}
		
		if(d) dif++;
	}
	
	fclose(f0);
	fclose(f1);
	
	printf("%d (+/-1)differences found\n", dif);
	exit(0);
}