diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index 0246175ad2..925ea07714 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -3331,6 +3331,7 @@ qtdemux_parse_container (GstQTDemux * qtdemux, GNode * node, const guint8 * buf, child = g_node_new ((guint8 *) buf); g_node_append (node, child); + GST_LOG_OBJECT (qtdemux, "adding new node of len %d", len); qtdemux_parse_node (qtdemux, child, buf, len); buf += len; @@ -5278,10 +5279,9 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) { gint len = QT_UINT32 (stsd_data); - if (len > 0x34) { - GstBuffer *buf = gst_buffer_new_and_alloc (len - 0x34); - - memcpy (GST_BUFFER_DATA (buf), stsd_data + 0x34, len - 0x34); + if (len >= 132) { + GstBuffer *buf = gst_buffer_new_and_alloc (36); + memcpy (GST_BUFFER_DATA (buf), stsd_data + 88, 36); gst_caps_set_simple (stream->caps, "codec_data", GST_TYPE_BUFFER, buf, NULL); gst_buffer_unref (buf); diff --git a/gst/qtdemux/qtdemux_types.c b/gst/qtdemux/qtdemux_types.c index ef79d1d26b..f740218174 100644 --- a/gst/qtdemux/qtdemux_types.c +++ b/gst/qtdemux/qtdemux_types.c @@ -86,6 +86,7 @@ static const QtNodeType qt_node_types[] = { {FOURCC_colr, "colr", 0,}, {FOURCC_fiel, "fiel", 0,}, {FOURCC_jp2x, "jp2x", 0,}, + {FOURCC_alac, "alac", 0,}, {FOURCC_wave, "wave", QT_FLAG_CONTAINER}, {FOURCC_appl, "appl", QT_FLAG_CONTAINER}, {FOURCC_esds, "esds", 0},