--- /home/slack/VLC_SVN/modules/stream_out/transcode.c	2006-12-31 14:51:31.000000000 +1100
+++ modules/stream_out/transcode.c	2007-01-13 22:55:24.000000000 +1100
@@ -1306,7 +1306,7 @@
         audio_BitsPerSample( id->p_decoder->fmt_out.i_codec );
     fmt_last = id->p_decoder->fmt_out;
     /* FIX decoders so we don't have to do this */
-    fmt_last.audio.i_rate = id->p_decoder->fmt_in.audio.i_rate;
+//    fmt_last.audio.i_rate = id->p_decoder->fmt_in.audio.i_rate;
 
     /*
      * Open encoder
@@ -1345,6 +1345,15 @@
     id->p_encoder->fmt_in.audio.i_bitspersample =
         audio_BitsPerSample( id->p_encoder->fmt_in.i_codec );
 
+    /* Fix AAC SBR changing number of channels and sampling rate */
+    if( (id->p_decoder->fmt_in.i_codec == VLC_FOURCC('m','p','4','a')) &&
+        (fmt_last.audio.i_rate != id->p_encoder->fmt_in.audio.i_rate) &&
+        (fmt_last.audio.i_channels != id->p_encoder->fmt_in.audio.i_channels) )
+    {
+      id->p_encoder->fmt_in.audio.i_rate = fmt_last.audio.i_rate;
+      id->p_encoder->fmt_out.audio.i_rate = fmt_last.audio.i_rate;
+    }
+
     /* Load conversion filters */
     if( fmt_last.audio.i_channels != id->p_encoder->fmt_in.audio.i_channels ||
         fmt_last.audio.i_rate != id->p_encoder->fmt_in.audio.i_rate )
