}
uint8_t mpegAudioIdentify(uint8_t *ptr, uint32_t maxLookUp, WAVHeader *header, uint8_t *tokens){  MpegAudioInfo info;  uint32_t offset=0;          memset(&info,0,sizeof(info));        if(!getMpegFrameInfo(ptr,maxLookUp,&info,NULL,&offset))        {          printf("Could not get sync in MP2/3 audio header\n");          return 0;         }        // Fill up wavheader        if(info.mode==3)  header->channels=1;        else    header->channels=2;                header->frequency = info.samplerate;        header->byterate = (1000 * info.bitrate) >> 3;           header->bitspersample=16;        header->blockalign = 4;        if(info.layer==3) header->encoding=WAV_MP3;                else header->encoding=WAV_MP2;                tokens[0]=ptr[offset+1];                tokens[1]=ptr[offset+2]&0xfd;                tokens[2]=ptr[offset+3];#define DUMPX(x) printf(#x": %d\n",info.x);                DUMPX( level);                                    DUMPX( layer);                DUMPX( samplerate);                DUMPX( bitrate);                DUMPX( level);                                       return 1; }