view liba52/compare.c @ 13758:25e3c54b8bcb

1.134: New translatable messages for vo_pnm 1.135: printf --> mp_msg transition in vo_yuv4mpeg 1.136: printf --> mp_msg conversion in ao_plugin 1.137: Removal of vo_pgm and vo_md5 1.138 and 1.139 were previously done by Diego (removal of unused messages) 1.140 Remove preceding newline in two lines 1.141 Added missing EOL
author kraymer
date Mon, 25 Oct 2004 17:42:13 +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);
}