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
This commit is contained in:
Arun Raghavan 2010-10-05 19:40:50 +01:00 committed by Tim-Philipp Müller
parent bb9a8a9b7d
commit 4a244e0d55

View file

@ -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);
}