flacparse: ignore bad headers if we have a valid STREAMINFO header
authorTim-Philipp Müller <tim.muller@collabora.co.uk>
Tue, 23 Oct 2012 12:45:17 +0000 (13:45 +0100)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Tue, 23 Oct 2012 12:56:54 +0000 (13:56 +0100)
If we run into any header parsing issues and we have a valid
STREAMINFO header already, don't error out, but just stop
header parsing and try to find some audio frames.

https://bugzilla.gnome.org/show_bug.cgi?id=684701

gst/audioparsers/gstflacparse.c

index f04917f..7fddca0 100644 (file)
@@ -1551,7 +1551,13 @@ gst_flac_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame,
       GST_MEMDUMP_OBJECT (parse, "bad header data", map.data, size);
 
       gst_buffer_unref (sbuffer);
-      goto header_parsing_error;
+
+      /* error out unless we have a STREAMINFO header */
+      if (flacparse->samplerate == 0 || flacparse->bps == 0)
+        goto header_parsing_error;
+
+      /* .. in which case just stop header parsing and try to find audio */
+      is_last = TRUE;
     }
 
     if (is_last) {