# HG changeset patch # User albeu # Date 1013711853 0 # Node ID 30131db5dfbb52e13a4f931db2ce81b8e8acee65 # Parent 406d7fc6be4e14d02916922388f897e980552e30 Improved mp3 detection (don't detect mpeg1/2 as mp3 anymore) Added resync_audio call diff -r 406d7fc6be4e -r 30131db5dfbb libmpdemux/demux_audio.c --- a/libmpdemux/demux_audio.c Thu Feb 14 18:17:14 2002 +0000 +++ b/libmpdemux/demux_audio.c Thu Feb 14 18:37:33 2002 +0000 @@ -25,6 +25,7 @@ extern int mp_decode_mp3_header(unsigned char* hbuf); extern void free_sh_audio(sh_audio_t* sh); +extern void resync_audio_stream(sh_audio_t *sh_audio); int demux_audio_open(demuxer_t* demuxer) { @@ -82,8 +83,18 @@ switch(frmt) { case MP3: sh_audio->format = 0x55; - stream_seek(s,st_pos); demuxer->movi_start = st_pos; + for(n = 0; n < 5 ; n++) { + pos = mp_decode_mp3_header(hdr); + if(pos < 0) + return 0; + stream_skip(s,pos-4); + if(s->eof) + return 0; + stream_read(s,hdr,4); + if(s->eof) + return 0; + } if(s->end_pos) { char tag[4]; stream_seek(s,s->end_pos-128); @@ -197,7 +208,7 @@ ds_add_packet(ds,dp); return 1; } - } + } break; case WAV : { int l = sh_audio->wf->nAvgBytesPerSec; demux_packet_t* dp = new_demux_packet(l); @@ -246,4 +257,6 @@ stream_seek(s,pos); + resync_audio_stream(sh_audio); + }