From 4a244e0d552f01d17b04de2cfcfb270ecd848521 Mon Sep 17 00:00:00 2001 From: Arun Raghavan Date: Tue, 5 Oct 2010 19:40:50 +0100 Subject: [PATCH] qtdemux: AAC codec_data can be > 2 bytes long This fixes the assumption that DecoderSpecificInfo must be 2 bytes long for AAC files. The specification allows HE-AAC to be explicitly signalled in a backward compatible way. This is done by means of an additional information after the regular AAC header. It is expected that decoders that can play AAC but not HE-AAC will parse the header normally and ignore extended bits, much as they do for the HE-AAC specific payload in the actual stream. https://bugzilla.gnome.org/show_bug.cgi?id=612313 --- gst/qtdemux/qtdemux.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index 673777c35e..1595db9ed2 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -7421,7 +7421,10 @@ gst_qtdemux_handle_esds (GstQTDemux * qtdemux, QtDemuxStream * stream, rate = gst_codec_utils_aac_get_sample_rate_from_index (rateindex); if (rate > 0) stream->rate = rate; + } + /* Set level and profile if possible */ + if (data_ptr != NULL && data_len >= 2) { gst_codec_utils_aac_caps_set_level_and_profile (stream->caps, data_ptr, data_len); }