diff options
author | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2009-09-25 19:21:32 +0200 |
---|---|---|
committer | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2009-09-25 19:23:15 +0200 |
commit | 0fac7b5347d1cd1f727b697d5be4782de1f56152 (patch) | |
tree | fddbaba9116f2ce5e9672c9ed9f1835104ff5cf6 | |
parent | e21d16a4f8fa4d58c103f372f2de8c9c16abeea5 (diff) |
qtdemux: some optional QT specified stsd MPEG-4 atoms also apply to H264
Fixes #596319.
-rw-r--r-- | gst/qtdemux/qtdemux.c | 10 |
1 files changed, 10 insertions, 0 deletions
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); |