* faad: fix SBR handling.
authorLaurent Aimar <fenrir@videolan.org>
Sat, 23 Aug 2003 16:15:47 +0000 (16:15 +0000)
committerLaurent Aimar <fenrir@videolan.org>
Sat, 23 Aug 2003 16:15:47 +0000 (16:15 +0000)
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
  * 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>
  *
  *
  * 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 )||
 
         /* **** 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 )
             {
         {
             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_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,
 
             aout_DateInit( &p_adec->date, p_adec->output_format.i_rate );
             p_adec->p_aout_input = aout_DecNew( p_adec->p_fifo,