* faad: fix SBR handling.
[vlc.git] / modules / codec / faad / decoder.c
index 249a1f6..fa8f332 100644 (file)
@@ -2,7 +2,7 @@
  * decoder.c: AAC decoder using libfaad2
  *****************************************************************************
  * Copyright (C) 2001, 2002 VideoLAN
- * $Id: decoder.c,v 1.26 2003/08/17 23:02:51 fenrir Exp $
+ * $Id: decoder.c,v 1.27 2003/08/23 16:15:47 fenrir Exp $
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *
@@ -393,8 +393,8 @@ static void DecodeThread( adec_thread_t *p_adec )
 
         /* **** First check if we have a valid output **** */
         if( ( !p_adec->p_aout_input )||
-            ( p_adec->output_format.i_original_channels !=
-                 pi_channels_maps[faad_frame.channels] ) )
+            ( p_adec->output_format.i_original_channels != pi_channels_maps[faad_frame.channels] ) ||
+            ( p_adec->output_format.i_rate != faad_frame.samplerate ) )
         {
             if( p_adec->p_aout_input )
             {
@@ -406,6 +406,7 @@ static void DecodeThread( adec_thread_t *p_adec )
             p_adec->output_format.i_physical_channels =
                 p_adec->output_format.i_original_channels =
                     pi_channels_maps[faad_frame.channels];
+            p_adec->output_format.i_rate = faad_frame.samplerate;
 
             aout_DateInit( &p_adec->date, p_adec->output_format.i_rate );
             p_adec->p_aout_input = aout_DecNew( p_adec->p_fifo,