[MPlayer-cvslog] r34343 - trunk/libmpdemux/demux_audio.c

reimar subversion at mplayerhq.hu
Fri Nov 11 18:29:14 CET 2011


Author: reimar
Date: Fri Nov 11 18:29:14 2011
New Revision: 34343

Log:
Make WAV format detection more restrictive so it does not incorrectly
grab qcp files.

Modified:
   trunk/libmpdemux/demux_audio.c

Modified: trunk/libmpdemux/demux_audio.c
==============================================================================
--- trunk/libmpdemux/demux_audio.c	Fri Nov 11 18:15:13 2011	(r34342)
+++ trunk/libmpdemux/demux_audio.c	Fri Nov 11 18:29:14 2011	(r34343)
@@ -333,6 +333,7 @@ static int demux_audio_open(demuxer_t* d
   mp3_hdr_t *mp3_hdrs = NULL, *mp3_found = NULL;
   da_priv_t* priv;
   double duration;
+  int found_WAVE = 0;
 
   s = demuxer->stream;
 
@@ -362,7 +363,7 @@ static int demux_audio_open(demuxer_t* d
       len = (hdr[0]<<21) | (hdr[1]<<14) | (hdr[2]<<7) | hdr[3];
       stream_skip(s,len);
       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;
       break;
     } else if((mp3_flen = mp_get_mp3_header(hdr, &mp3_chans, &mp3_freq,
@@ -378,6 +379,7 @@ static int demux_audio_open(demuxer_t* d
       if (!mp3_hdrs || mp3_hdrs->cons_hdrs < 3)
         break;
     }
+    found_WAVE = hdr[0] == 'W' && hdr[1] == 'A' && hdr[2] == 'V' && hdr[3] == 'E';
     // Add here some other audio format detection
     if(step < HDR_SIZE)
       memmove(hdr,&hdr[step],HDR_SIZE-step);


More information about the MPlayer-cvslog mailing list