mirror of
https://github.com/mpv-player/mpv
synced 2025-02-14 19:07:14 +00:00
Improved mp3 detection (don't detect mpeg1/2 as mp3 anymore)
Added resync_audio call git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4701 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
d056e71d6c
commit
d535bf801d
@ -25,6 +25,7 @@ typedef struct da_priv {
|
|||||||
|
|
||||||
extern int mp_decode_mp3_header(unsigned char* hbuf);
|
extern int mp_decode_mp3_header(unsigned char* hbuf);
|
||||||
extern void free_sh_audio(sh_audio_t* sh);
|
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) {
|
int demux_audio_open(demuxer_t* demuxer) {
|
||||||
@ -82,8 +83,18 @@ int demux_audio_open(demuxer_t* demuxer) {
|
|||||||
switch(frmt) {
|
switch(frmt) {
|
||||||
case MP3:
|
case MP3:
|
||||||
sh_audio->format = 0x55;
|
sh_audio->format = 0x55;
|
||||||
stream_seek(s,st_pos);
|
|
||||||
demuxer->movi_start = 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) {
|
if(s->end_pos) {
|
||||||
char tag[4];
|
char tag[4];
|
||||||
stream_seek(s,s->end_pos-128);
|
stream_seek(s,s->end_pos-128);
|
||||||
@ -197,7 +208,7 @@ int demux_audio_fill_buffer(demux_stream_t *ds) {
|
|||||||
ds_add_packet(ds,dp);
|
ds_add_packet(ds,dp);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
} break;
|
||||||
case WAV : {
|
case WAV : {
|
||||||
int l = sh_audio->wf->nAvgBytesPerSec;
|
int l = sh_audio->wf->nAvgBytesPerSec;
|
||||||
demux_packet_t* dp = new_demux_packet(l);
|
demux_packet_t* dp = new_demux_packet(l);
|
||||||
@ -246,4 +257,6 @@ void demux_audio_seek(demuxer_t *demuxer,float rel_seek_secs,int flags){
|
|||||||
|
|
||||||
stream_seek(s,pos);
|
stream_seek(s,pos);
|
||||||
|
|
||||||
|
resync_audio_stream(sh_audio);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user