avidemux, waveparse: more logging for unhandled chunks
authorStefan Sauer <ensonic@users.sf.net>
Mon, 6 Jan 2014 12:32:58 +0000 (13:32 +0100)
committerStefan Sauer <ensonic@users.sf.net>
Mon, 6 Jan 2014 12:55:36 +0000 (13:55 +0100)
Always print a warning with the tag and if possible do a memdump.

gst/avi/gstavidemux.c
gst/wavparse/gstwavparse.c

index 3daba2a..2dc5631 100644 (file)
@@ -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:
index b3e0547..4a10ee1 100644 (file)
@@ -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;