summaryrefslogtreecommitdiffstats
path: root/gst/qtdemux/qtdemux.c
diff options
context:
space:
mode:
authorEdward Hervey <bilboed@bilboed.com>2009-06-14 10:36:17 +0200
committerEdward Hervey <bilboed@bilboed.com>2009-06-24 12:37:38 +0200
commit279be9432175396943e900ea4d42b721fa6771c8 (patch)
tree583bdf6795c5ce00d32531f79588c1a7ce61b101 /gst/qtdemux/qtdemux.c
parent810c60a6f30d2a70a73951fb58c599f1404597b6 (diff)
qtdemux: Add GST_MEMDUMP statements for unknown atoms.
This is to help developers track down and implement unhandled atoms faster.
Diffstat (limited to 'gst/qtdemux/qtdemux.c')
-rw-r--r--gst/qtdemux/qtdemux.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c
index 0b7eaf9a..639338a9 100644
--- a/gst/qtdemux/qtdemux.c
+++ b/gst/qtdemux/qtdemux.c
@@ -1509,9 +1509,18 @@ gst_qtdemux_loop_state_header (GstQTDemux * qtdemux)
}
default:
{
+ GstBuffer *unknown;
+
GST_LOG_OBJECT (qtdemux,
- "unknown %08x '%" GST_FOURCC_FORMAT "' at %" G_GUINT64_FORMAT, fourcc,
- GST_FOURCC_ARGS (fourcc), cur_offset);
+ "unknown %08x '%" GST_FOURCC_FORMAT "' of size %" G_GUINT64_FORMAT
+ " at %" G_GUINT64_FORMAT, fourcc, GST_FOURCC_ARGS (fourcc), length,
+ cur_offset);
+ ret = gst_pad_pull_range (qtdemux->sinkpad, cur_offset, length, &unknown);
+ if (ret != GST_FLOW_OK)
+ goto beach;
+ GST_MEMDUMP ("Unknown tag", GST_BUFFER_DATA (unknown),
+ GST_BUFFER_SIZE (unknown));
+ gst_buffer_unref (unknown);
cur_offset += length;
qtdemux->offset += length;
break;
@@ -3136,6 +3145,8 @@ qtdemux_parse_node (GstQTDemux * qtdemux, GNode * node, guint8 * buffer,
break;
}
default:
+ if (!strcmp (type->name, "unknown"))
+ GST_MEMDUMP ("Unknown tag", buffer + 4, end - buffer - 4);
break;
}
}