summaryrefslogtreecommitdiffstats
path: root/gst/qtdemux
diff options
context:
space:
mode:
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2009-09-25 19:21:32 +0200
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2009-09-25 19:23:15 +0200
commit0fac7b5347d1cd1f727b697d5be4782de1f56152 (patch)
treefddbaba9116f2ce5e9672c9ed9f1835104ff5cf6 /gst/qtdemux
parente21d16a4f8fa4d58c103f372f2de8c9c16abeea5 (diff)
qtdemux: some optional QT specified stsd MPEG-4 atoms also apply to H264
Fixes #596319.
Diffstat (limited to 'gst/qtdemux')
-rw-r--r--gst/qtdemux/qtdemux.c10
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);