diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c index 16483b7e50..a83b06879f 100644 --- a/gst/wavparse/gstwavparse.c +++ b/gst/wavparse/gstwavparse.c @@ -59,15 +59,6 @@ GST_DEBUG_CATEGORY_STATIC (wavparse_debug); #define GST_CAT_DEFAULT (wavparse_debug) -#define GST_RIFF_TAG_Fake GST_MAKE_FOURCC ('F','a','k','e') - -#define GST_BWF_TAG_iXML GST_MAKE_FOURCC ('i','X','M','L') -#define GST_BWF_TAG_qlty GST_MAKE_FOURCC ('q','l','t','y') -#define GST_BWF_TAG_mext GST_MAKE_FOURCC ('m','e','x','t') -#define GST_BWF_TAG_levl GST_MAKE_FOURCC ('l','e','v','l') -#define GST_BWF_TAG_link GST_MAKE_FOURCC ('l','i','n','k') -#define GST_BWF_TAG_axml GST_MAKE_FOURCC ('a','x','m','l') - /* Data size chunk of RF64, * see http://tech.ebu.ch/docs/tech/tech3306-2009.pdf */ #define GST_RS64_TAG_DS64 GST_MAKE_FOURCC ('d','s','6','4') @@ -1091,11 +1082,10 @@ gst_wavparse_stream_headers (GstWavParse * wav) gint64 upstream_size = 0; GstStructure *s; - /* search for "_fmt" chunk, which should be first */ + /* search for "_fmt" chunk, which must be before "data" */ while (!wav->got_fmt) { GstBuffer *extra; - /* The header starts with a 'fmt ' tag */ if (wav->streaming) { if (!gst_wavparse_peek_chunk (wav, &tag, &size)) return res; @@ -1117,21 +1107,6 @@ gst_wavparse_stream_headers (GstWavParse * wav) return res; } - if (tag == GST_RIFF_TAG_JUNK || tag == GST_RIFF_TAG_JUNQ || - tag == GST_RIFF_TAG_bext || tag == GST_RIFF_TAG_BEXT || - tag == GST_RIFF_TAG_LIST || tag == GST_RIFF_TAG_ID32 || - tag == GST_RIFF_TAG_id3 || tag == GST_RIFF_TAG_IDVX || - tag == GST_BWF_TAG_iXML || tag == GST_BWF_TAG_qlty || - tag == GST_BWF_TAG_mext || tag == GST_BWF_TAG_levl || - tag == GST_BWF_TAG_link || tag == GST_BWF_TAG_axml || - tag == GST_RIFF_TAG_Fake) { - GST_DEBUG_OBJECT (wav, "skipping %" GST_FOURCC_FORMAT " chunk", - GST_FOURCC_ARGS (tag)); - gst_buffer_unref (buf); - buf = NULL; - continue; - } - if (tag == GST_RS64_TAG_DS64) { if (!parse_ds64 (wav, buf)) goto fail; @@ -1139,8 +1114,13 @@ gst_wavparse_stream_headers (GstWavParse * wav) continue; } - if (tag != GST_RIFF_TAG_fmt) - goto invalid_wav; + if (tag != GST_RIFF_TAG_fmt) { + GST_DEBUG_OBJECT (wav, "skipping %" GST_FOURCC_FORMAT " chunk", + GST_FOURCC_ARGS (tag)); + gst_buffer_unref (buf); + buf = NULL; + continue; + } if (!(gst_riff_parse_strf_auds (GST_ELEMENT_CAST (wav), buf, &header, &extra))) @@ -1718,13 +1698,6 @@ fail: res = GST_FLOW_ERROR; goto exit; } -invalid_wav: - { - GST_ELEMENT_ERROR (wav, STREAM, TYPE_NOT_FOUND, (NULL), - ("Invalid WAV header (no fmt at start): %" - GST_FOURCC_FORMAT, GST_FOURCC_ARGS (tag))); - goto fail; - } parse_header_error: { GST_ELEMENT_ERROR (wav, STREAM, DEMUX, (NULL),