Index: ext/faad/gstfaad.c =================================================================== RCS file: /cvs/gstreamer/gst-plugins-bad/ext/faad/gstfaad.c,v retrieving revision 1.61 diff -u -r1.61 gstfaad.c --- ext/faad/gstfaad.c 20 Apr 2007 15:31:32 -0000 1.61 +++ ext/faad/gstfaad.c 7 Mar 2008 20:39:45 -0000 @@ -1114,22 +1114,21 @@ static gboolean looks_like_valid_header (guint8 * input_data, guint input_size) { - guint32 rate; - guint32 channels; - - if (input_size < 2) - return FALSE; - - rate = ((input_data[0] & 0x7) << 1) | ((input_data[1] & 0x80) >> 7); - channels = (input_data[1] & 0x78) >> 3; - - if (rate == 0xd || rate == 0xe) /* Reserved values */ + if (input_size < 4) return FALSE; - if (channels == 0) /* Extended specifier: never seen one of these */ - return FALSE; + if (input_data[0] == 'A' + && input_data[1] == 'D' + && input_data[2] == 'I' + && input_data[3] == 'F') + /* ADIF type header */ + return TRUE; + + if (input_data[0] == 0xff && (input_data[1] >> 4) == 0xf) + /* ADTS type header */ + return TRUE; - return TRUE; + return FALSE; } /*