qtdemux: Gracefully handle mov files misusing the WAVE atoms

Check that the WAVEHEADER node is present instead of blindly using it.
If not present we won't be able to provide a more refined caps, but at
least we won't crash.

https://bugzilla.gnome.org/show_bug.cgi?id=640028
This commit is contained in:
Edward Hervey 2011-01-20 11:45:47 +01:00
parent 9acda034f8
commit 6d545e29ad

View file

@ -7004,6 +7004,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
guint32 headerlen;
waveheadernode = qtdemux_tree_get_child_by_type (wavenode, fourcc);
if (waveheadernode) {
waveheader = (const guint8 *) waveheadernode->data;
headerlen = QT_UINT32 (waveheader);
@ -7029,6 +7030,8 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
gst_buffer_unref (extra);
}
}
} else
GST_DEBUG ("Didn't find waveheadernode for this codec");
}
g_node_destroy (wavenode);
}