mirror of https://github.com/mpv-player/mpv
demux_audio: improve WAV format detection
Make WAV format detection more restrictive so it does not incorrectly grab qcp files. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@34343 b3059339-0415-0410-9bf9-f77b7e298cf2 Author: reimar
This commit is contained in:
parent
e687d1e51a
commit
6259df5313
|
@ -330,6 +330,7 @@ static int demux_audio_open(demuxer_t* demuxer) {
|
||||||
mp3_hdr_t *mp3_hdrs = NULL, *mp3_found = NULL;
|
mp3_hdr_t *mp3_hdrs = NULL, *mp3_found = NULL;
|
||||||
da_priv_t* priv;
|
da_priv_t* priv;
|
||||||
double duration;
|
double duration;
|
||||||
|
int found_WAVE = 0;
|
||||||
|
|
||||||
s = demuxer->stream;
|
s = demuxer->stream;
|
||||||
|
|
||||||
|
@ -359,7 +360,7 @@ static int demux_audio_open(demuxer_t* demuxer) {
|
||||||
len = (hdr[0]<<21) | (hdr[1]<<14) | (hdr[2]<<7) | hdr[3];
|
len = (hdr[0]<<21) | (hdr[1]<<14) | (hdr[2]<<7) | hdr[3];
|
||||||
stream_skip(s,len);
|
stream_skip(s,len);
|
||||||
step = 4;
|
step = 4;
|
||||||
} else if( hdr[0] == 'f' && hdr[1] == 'm' && hdr[2] == 't' && hdr[3] == ' ' ) {
|
} else if( found_WAVE && hdr[0] == 'f' && hdr[1] == 'm' && hdr[2] == 't' && hdr[3] == ' ' ) {
|
||||||
frmt = WAV;
|
frmt = WAV;
|
||||||
break;
|
break;
|
||||||
} else if((mp3_flen = mp_get_mp3_header(hdr, &mp3_chans, &mp3_freq,
|
} else if((mp3_flen = mp_get_mp3_header(hdr, &mp3_chans, &mp3_freq,
|
||||||
|
@ -375,6 +376,7 @@ static int demux_audio_open(demuxer_t* demuxer) {
|
||||||
if (!mp3_hdrs || mp3_hdrs->cons_hdrs < 3)
|
if (!mp3_hdrs || mp3_hdrs->cons_hdrs < 3)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
found_WAVE = hdr[0] == 'W' && hdr[1] == 'A' && hdr[2] == 'V' && hdr[3] == 'E';
|
||||||
// Add here some other audio format detection
|
// Add here some other audio format detection
|
||||||
if(step < HDR_SIZE)
|
if(step < HDR_SIZE)
|
||||||
memmove(hdr,&hdr[step],HDR_SIZE-step);
|
memmove(hdr,&hdr[step],HDR_SIZE-step);
|
||||||
|
|
Loading…
Reference in New Issue