valid_start = ftell(mp3->file); if((l = get_header(mp3->file,&h))) {
ungetc(c,mp3->file); valid_start=ftell(mp3->file); if((l=get_header(mp3->file,&h))) {
int get_first_header(mp3info *mp3, long startpos) {  int k, l=0,c;  mp3header h, h2;  long valid_start=0;    fseek(mp3->file,startpos,SEEK_SET);  while (1) {     while((c=fgetc(mp3->file)) != 255 && (c != EOF));     if(c == 255) {        valid_start = ftell(mp3->file);        if((l = get_header(mp3->file,&h))) {          fseek(mp3->file,l-FRAME_HEADER_SIZE,SEEK_CUR);	  for(k=1; (k < MIN_CONSEC_GOOD_FRAMES) && ((mp3->datasize - ftell(mp3->file)) >= FRAME_HEADER_SIZE); k++) {	    if(!(l=get_header(mp3->file,&h2)))                break;	    if (!sameConstant(&h,&h2))                break;	    fseek(mp3->file,l-FRAME_HEADER_SIZE,SEEK_CUR);	  }	  if(k == MIN_CONSEC_GOOD_FRAMES) {		fseek(mp3->file,valid_start,SEEK_SET);		memcpy(&(mp3->header), &h2, sizeof(mp3header));		mp3->header_isvalid = 1;		return 1;	  }         }     } else {	return 0;     }   }  return 0;  }