From 9dde5e29da8a1c72f49dec629aeb830c994f6fe1 Mon Sep 17 00:00:00 2001 From: Stefan Sauer Date: Mon, 6 Jan 2014 13:32:58 +0100 Subject: [PATCH] avidemux, waveparse: more logging for unhandled chunks Always print a warning with the tag and if possible do a memdump. --- gst/avi/gstavidemux.c | 34 ++++++++++++++++++++++++++++++---- gst/wavparse/gstwavparse.c | 12 +++++++++--- 2 files changed, 39 insertions(+), 7 deletions(-) diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 3daba2a..2dc5631 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -2239,6 +2239,15 @@ gst_avi_demux_parse_stream (GstAviDemux * avi, GstBuffer * buf) GST_WARNING_OBJECT (avi, "Unknown stream header tag %" GST_FOURCC_FORMAT ", ignoring", GST_FOURCC_ARGS (tag)); + /* Only get buffer for debugging if the memdump is needed */ + if (gst_debug_category_get_threshold (GST_CAT_DEFAULT) >= 9) { + GstMapInfo map; + + gst_buffer_map (sub, &map, GST_MAP_READ); + GST_MEMDUMP_OBJECT (avi, "Unknown stream header tag", map.data, + map.size); + gst_buffer_unmap (sub, &map); + } /* fall-through */ case GST_RIFF_TAG_JUNQ: case GST_RIFF_TAG_JUNK: @@ -2503,6 +2512,14 @@ gst_avi_demux_parse_odml (GstAviDemux * avi, GstBuffer * buf) GST_WARNING_OBJECT (avi, "Unknown tag %" GST_FOURCC_FORMAT " in ODML header", GST_FOURCC_ARGS (tag)); + /* Only get buffer for debugging if the memdump is needed */ + if (gst_debug_category_get_threshold (GST_CAT_DEFAULT) >= 9) { + GstMapInfo map; + + gst_buffer_map (sub, &map, GST_MAP_READ); + GST_MEMDUMP_OBJECT (avi, "Unknown ODML tag", map.data, map.size); + gst_buffer_unmap (sub, &map); + } /* fall-through */ case GST_RIFF_TAG_JUNQ: case GST_RIFF_TAG_JUNK: @@ -3364,8 +3381,16 @@ gst_avi_demux_stream_header_push (GstAviDemux * avi) goto next; default: GST_WARNING_OBJECT (avi, - "Unknown off %d tag %" GST_FOURCC_FORMAT " in AVI header", - offset, GST_FOURCC_ARGS (tag)); + "Unknown tag %" GST_FOURCC_FORMAT " in AVI header", + GST_FOURCC_ARGS (tag)); + /* Only get buffer for debugging if the memdump is needed */ + if (gst_debug_category_get_threshold (GST_CAT_DEFAULT) >= 9) { + GstMapInfo map; + + gst_buffer_map (sub, &map, GST_MAP_READ); + GST_MEMDUMP_OBJECT (avi, "Unknown tag", map.data, map.size); + gst_buffer_unmap (sub, &map); + } /* fall-through */ case GST_RIFF_TAG_JUNQ: case GST_RIFF_TAG_JUNK: @@ -3892,6 +3917,7 @@ gst_avi_demux_parse_ncdt (GstAviDemux * avi, GstBuffer * buf, GST_WARNING_OBJECT (avi, "Unknown ncdt (metadata) tag entry %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (tag)); + GST_MEMDUMP_OBJECT (avi, "Unknown ncdt", ptr, tsize); break; } @@ -4057,8 +4083,8 @@ gst_avi_demux_stream_header_pull (GstAviDemux * avi) goto next; default: GST_WARNING_OBJECT (avi, - "Unknown tag %" GST_FOURCC_FORMAT " in AVI header at off %d", - GST_FOURCC_ARGS (tag), offset); + "Unknown tag %" GST_FOURCC_FORMAT " in AVI header", + GST_FOURCC_ARGS (tag)); GST_MEMDUMP_OBJECT (avi, "Unknown tag", map.data, map.size); /* fall-through */ case GST_RIFF_TAG_JUNQ: diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c index b3e0547..4a10ee1 100644 --- a/gst/wavparse/gstwavparse.c +++ b/gst/wavparse/gstwavparse.c @@ -695,7 +695,8 @@ gst_wavparse_other (GstWavParse * wav) break; default: - GST_DEBUG_OBJECT (wav, "skipping tag (%08x) %4.4s", tag, (gchar *) & tag); + GST_WARNING_OBJECT (wav, "skipping tag %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (tag)); if (!gst_riff_read_skip (wav)) return FALSE; break; @@ -1315,6 +1316,9 @@ gst_wavparse_adtl_chunk (GstWavParse * wav, const guint8 * data, guint32 size) gst_wavparse_note_chunk (wav, data + offset, size); break; default: + GST_WARNING_OBJECT (wav, "Unknowm adtl %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (ltag)); + GST_MEMDUMP_OBJECT (wav, "Unknowm adtl", &data[offset], lsize); break; } offset += 8 + GST_ROUND_UP_2 (lsize); @@ -1484,7 +1488,7 @@ gst_wavparse_stream_headers (GstWavParse * wav) 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_RIFF_TAG_id3 || tag == GST_RIFF_TAG_IDVX) { GST_DEBUG_OBJECT (wav, "skipping %" GST_FOURCC_FORMAT " chunk", GST_FOURCC_ARGS (tag)); gst_buffer_unref (buf); @@ -1858,7 +1862,7 @@ gst_wavparse_stream_headers (GstWavParse * wav) break; } default: - GST_INFO_OBJECT (wav, "Ignoring LIST chunk %" GST_FOURCC_FORMAT, + GST_WARNING_OBJECT (wav, "Ignoring LIST chunk %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (ltag)); if (!gst_waveparse_ignore_chunk (wav, buf, tag, size)) /* need more data */ @@ -1956,6 +1960,8 @@ gst_wavparse_stream_headers (GstWavParse * wav) break; } default: + GST_WARNING_OBJECT (wav, "Ignoring chunk %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (tag)); if (!gst_waveparse_ignore_chunk (wav, buf, tag, size)) /* need more data */ goto exit; -- 2.7.4