diff libmpcodecs/ad_faad.c @ 29826:4eae69f3f4f4

Add support for 8 channel audio. Where 8 channel support is non-trivial (e.g. ao_dsound), at least ensure we fail gracefully.
author tack
date Tue, 10 Nov 2009 00:45:19 +0000
parents 0f1b5b68af32
children cc27da5d7286
line wrap: on
line diff
--- a/libmpcodecs/ad_faad.c	Tue Nov 10 00:43:14 2009 +0000
+++ b/libmpcodecs/ad_faad.c	Tue Nov 10 00:45:19 2009 +0000
@@ -47,7 +47,7 @@
 
 /* configure maximum supported channels, *
  * this is theoretically max. 64 chans   */
-#define FAAD_MAX_CHANNELS 6
+#define FAAD_MAX_CHANNELS 8
 #define FAAD_BUFFLEN (FAAD_MIN_STREAMSIZE*FAAD_MAX_CHANNELS)
 
 //#define AAC_DUMP_COMPRESSED
@@ -167,7 +167,8 @@
   } else {
     mp_msg(MSGT_DECAUDIO,MSGL_V,"FAAD: Decoder init done (%dBytes)!\n", sh->a_in_buffer_len); // XXX: remove or move to debug!
     mp_msg(MSGT_DECAUDIO,MSGL_V,"FAAD: Negotiated samplerate: %ldHz  channels: %d\n", faac_samplerate, faac_channels);
-    sh->channels = faac_channels;
+    // 8 channels is aac channel order #7.
+    sh->channels = faac_channels == 7 ? 8 : faac_channels;
     if (audio_output_channels <= 2) sh->channels = faac_channels > 1 ? 2 : 1;
     sh->samplerate = faac_samplerate;
     sh->samplesize=2;