qtdemux: fix aac channel override based on codec data for 7.1 case
authorTim-Philipp Müller <tim.muller@collabora.co.uk>
Thu, 30 Sep 2010 11:44:52 +0000 (12:44 +0100)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Fri, 1 Oct 2010 10:42:15 +0000 (11:42 +0100)
gst/qtdemux/qtdemux.c

index ffd5e60..bd2e089 100644 (file)
@@ -7499,9 +7499,12 @@ gst_qtdemux_handle_esds (GstQTDemux * qtdemux, QtDemuxStream * stream,
       if (data_ptr && data_len == 2) {
         guint channels, rateindex, rate;
 
+        /* FIXME: add gst_codec_utils_aac_get_{channels|sample_rate}()? */
         channels = (data_ptr[1] & 0x7f) >> 3;
-        if (channels <= 7) {
+        if (channels > 0 && channels < 7) {
           stream->n_channels = channels;
+        } else if (channels == 7) {
+          stream->n_channels = 8;
         }
 
         rateindex = ((data_ptr[0] & 0x7) << 1) | ((data_ptr[1] & 0x80) >> 7);