From 0fac7b5347d1cd1f727b697d5be4782de1f56152 Mon Sep 17 00:00:00 2001 From: Mark Nauwelaerts Date: Fri, 25 Sep 2009 19:21:32 +0200 Subject: qtdemux: some optional QT specified stsd MPEG-4 atoms also apply to H264 Fixes #596319. --- gst/qtdemux/qtdemux.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'gst/qtdemux') diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index f980a015..dc61faf3 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -3236,6 +3236,12 @@ qtdemux_parse_node (GstQTDemux * qtdemux, GNode * node, const guint8 * buffer, } break; } + case FOURCC_avc1: + { + GST_MEMDUMP_OBJECT (qtdemux, "avc1", buffer, end - buffer); + qtdemux_parse_container (qtdemux, node, buffer + 0x56, end); + break; + } case FOURCC_mjp2: { qtdemux_parse_container (qtdemux, node, buffer + 86, end); @@ -4298,6 +4304,10 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) esds = NULL; pasp = NULL; mp4v = qtdemux_tree_get_child_by_type (stsd, FOURCC_mp4v); + /* H264 is MPEG-4 after all, + * and qt seems to put MPEG-4 stuff in there as well */ + if (!mp4v) + mp4v = qtdemux_tree_get_child_by_type (stsd, FOURCC_avc1); if (mp4v) { esds = qtdemux_tree_get_child_by_type (mp4v, FOURCC_esds); pasp = qtdemux_tree_get_child_by_type (mp4v, FOURCC_pasp); -- cgit