]> git.sesse.net Git - vlc/commitdiff
* modules/codec/*: make sure all audio decoders set
authorGildas Bazin <gbazin@videolan.org>
Mon, 30 Dec 2002 17:28:31 +0000 (17:28 +0000)
committerGildas Bazin <gbazin@videolan.org>
Mon, 30 Dec 2002 17:28:31 +0000 (17:28 +0000)
output_format.i_bytes_per_frame and output_format.i_frame_length
properly.

modules/codec/adpcm.c
modules/codec/araw.c
modules/codec/faad/decoder.c
modules/codec/ffmpeg/audio.c
modules/codec/lpcm.c
modules/codec/mad/libmad.c
modules/codec/mpeg_audio/decoder.c
modules/codec/vorbis.c

index 61e79df891cddd8f8fced342ab9e4efaf125ca85..80ee5d76baaac2bb853190f6a8bafca44ee8b928 100644 (file)
@@ -2,7 +2,7 @@
  * adpcm.c : adpcm variant audio decoder
  *****************************************************************************
  * Copyright (C) 2001, 2002 VideoLAN
- * $Id: adpcm.c,v 1.2 2002/12/18 14:17:10 sam Exp $
+ * $Id: adpcm.c,v 1.3 2002/12/30 17:28:31 gbazin Exp $
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *      
@@ -305,6 +305,9 @@ static int InitThread( adec_thread_t * p_adec )
     p_adec->output_format.i_physical_channels = 
         p_adec->output_format.i_original_channels =
             pi_channels_maps[p_adec->p_wf->nChannels];
+    p_adec->output_format.i_bytes_per_frame =
+        p_adec->p_wf->nChannels * 2;
+    p_adec->output_format.i_frame_length = 1;
     p_adec->p_aout = NULL;
     p_adec->p_aout_input = NULL;
 
index 7f82596896de6df69646cefc227d6863ee19b832..c5cd13be455bf4e20cab3afc9f4d9b38ed7fa29e 100644 (file)
@@ -2,7 +2,7 @@
  * araw.c: Pseudo audio decoder; for raw pcm data
  *****************************************************************************
  * Copyright (C) 2001, 2002 VideoLAN
- * $Id: araw.c,v 1.8 2002/11/28 16:32:29 fenrir Exp $
+ * $Id: araw.c,v 1.9 2002/12/30 17:28:31 gbazin Exp $
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *      
@@ -247,6 +247,8 @@ static int InitThread( adec_thread_t * p_adec )
     p_adec->output_format.i_physical_channels = 
             p_adec->output_format.i_original_channels =
             pi_channels_maps[p_adec->p_wf->nChannels];
+    p_adec->output_format.i_bytes_per_frame = p_adec->p_wf->nBlockAlign;
+    p_adec->output_format.i_frame_length = 1;
     p_adec->p_aout = NULL;
     p_adec->p_aout_input = NULL;
 
index 427ba5ea3bb4a2ce3401a7f8fb5203b3c4a27d57..837dea7c83b8fdcc3be7c307bef0b21c9d21f04b 100644 (file)
@@ -2,7 +2,7 @@
  * decoder.c: AAC decoder using libfaad2
  *****************************************************************************
  * Copyright (C) 2001, 2002 VideoLAN
- * $Id: decoder.c,v 1.14 2002/11/28 16:32:29 fenrir Exp $
+ * $Id: decoder.c,v 1.15 2002/12/30 17:28:31 gbazin Exp $
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *      
@@ -407,6 +407,9 @@ 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_bytes_per_frame =
+            faad_frame.channels * sizeof(float);
+        p_adec->output_format.i_frame_length = 1;
 
         aout_DateInit( &p_adec->date, p_adec->output_format.i_rate );
         p_adec->p_aout_input = aout_DecNew( p_adec->p_fifo,
index ca0582f3840bcbb375b81089c678138a1600f78d..15467dd6dee718cc1554272f01097e5f29f10d2f 100644 (file)
@@ -2,7 +2,7 @@
  * audio.c: audio decoder using ffmpeg library
  *****************************************************************************
  * Copyright (C) 1999-2001 VideoLAN
- * $Id: audio.c,v 1.8 2002/12/18 14:17:10 sam Exp $
+ * $Id: audio.c,v 1.9 2002/12/30 17:28:31 gbazin Exp $
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *
@@ -260,6 +260,9 @@ void  E_( DecodeThread_Audio )( adec_thread_t *p_adec )
         p_adec->output_format.i_physical_channels = 
             p_adec->output_format.i_original_channels = 
                 pi_channels_maps[p_adec->p_context->channels];
+        p_adec->output_format.i_bytes_per_frame =
+            p_adec->p_context->channels * sizeof(int16_t);
+        p_adec->output_format.i_frame_length = 1;
 
         aout_DateInit( &p_adec->date, p_adec->output_format.i_rate );
         p_adec->p_aout_input = aout_DecNew( p_adec->p_fifo,
index aa875e3932c56b5f9996726ac4e5a2882c884eac..c483e4ec34367b5fe71ff8993dd943a32f865249 100644 (file)
@@ -2,7 +2,7 @@
  * lpcm.c: lpcm decoder module
  *****************************************************************************
  * Copyright (C) 1999-2001 VideoLAN
- * $Id: lpcm.c,v 1.8 2002/12/28 02:02:18 massiot Exp $
+ * $Id: lpcm.c,v 1.9 2002/12/30 17:28:31 gbazin Exp $
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *          Henri Fallon <henri@videolan.org>
@@ -176,7 +176,7 @@ static void DecodeFrame( dec_thread_t * p_dec )
     aout_buffer_t *    p_buffer;
     mtime_t            i_pts;
     uint8_t            i_header;
-    unsigned int       i_rate, i_original_channels;
+    unsigned int       i_rate, i_original_channels, i_nb_channels;
 
     /* Look for sync word - should be 0xXX80 */
     RealignBits( &p_dec->bit_stream );
@@ -214,18 +214,22 @@ static void DecodeFrame( dec_thread_t * p_dec )
     {
     case 0:
         i_original_channels = AOUT_CHAN_CENTER;
+        i_nb_channels = 1;
         break;
     case 1:
         i_original_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
+        i_nb_channels = 2;
         break;
     case 3:
         i_original_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT
                                | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT;
+        i_nb_channels = 4;
         break;
     case 5:
         i_original_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT
                                | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT
                                | AOUT_CHAN_CENTER | AOUT_CHAN_LFE;
+        i_nb_channels = 6;
         break;
     case 2:
     case 4:
@@ -255,6 +259,8 @@ static void DecodeFrame( dec_thread_t * p_dec )
         p_dec->output_format.i_original_channels = i_original_channels;
         p_dec->output_format.i_physical_channels
                    = i_original_channels & AOUT_CHAN_PHYSMASK;
+        p_dec->output_format.i_bytes_per_frame = i_nb_channels * 2;
+        p_dec->output_format.i_frame_length = 1;
         aout_DateInit( &p_dec->end_date, i_rate );
         p_dec->p_aout_input = aout_DecNew( p_dec->p_fifo,
                                            &p_dec->p_aout,
index 33bba9bde19d221556762bb3420cc456cbed4f2b..ef41e675c4ce82bddd8b83384d45e5e6937b25a8 100644 (file)
@@ -180,6 +180,9 @@ enum mad_flow libmad_output( void *p_data, struct mad_header const *p_header,
         p_dec->output_format.i_rate = p_pcm->samplerate;
         p_dec->output_format.i_physical_channels = i_channels;
         p_dec->output_format.i_original_channels = i_channels;
+        p_dec->output_format.i_bytes_per_frame =
+            p_pcm->channels * sizeof(mad_fixed_t);
+        p_dec->output_format.i_frame_length = 1;
         aout_DateInit( &p_dec->end_date, p_pcm->samplerate );
         p_dec->p_aout_input = aout_DecNew( p_dec->p_fifo,
                                            &p_dec->p_aout,
index e53258ebde687b98b383a6cff9cd7cf8217c7516..ed252d5aaad7dbffd3eb4c63c43aded31cda8eb5 100644 (file)
@@ -2,7 +2,7 @@
  * decoder.c: MPEG audio decoder thread
  *****************************************************************************
  * Copyright (C) 1999-2001 VideoLAN
- * $Id: decoder.c,v 1.9 2002/12/06 16:34:05 sam Exp $
+ * $Id: decoder.c,v 1.10 2002/12/30 17:28:31 gbazin Exp $
  *
  * Authors: Michel Kaempf <maxx@via.ecp.fr>
  *          Michel Lespinasse <walken@via.ecp.fr>
@@ -192,6 +192,9 @@ static void DecodeThread( adec_thread_t * p_dec )
                ( sync_info.b_stereo ? AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT :
                  AOUT_CHAN_CENTER );
             p_dec->output_format.i_rate     = sync_info.sample_rate;
+            p_dec->output_format.i_bytes_per_frame =
+               ( sync_info.b_stereo ? 2 : 1 ) * sizeof(float);
+            p_dec->output_format.i_frame_length = 1;
             aout_DateInit( &p_dec->end_date, sync_info.sample_rate );
             p_dec->p_aout_input = aout_DecNew( p_dec->p_fifo,
                                                &p_dec->p_aout,
index 0a138059238a0509d5b94f6fd3d3398ae33a1915..84286c43f9918404ac310553b41fcb8382a0b6f9 100644 (file)
@@ -2,7 +2,7 @@
  * vorbis.c: vorbis decoder module making use of libvorbis.
  *****************************************************************************
  * Copyright (C) 1999-2001 VideoLAN
- * $Id: vorbis.c,v 1.9 2002/12/19 23:23:25 sigmunau Exp $
+ * $Id: vorbis.c,v 1.10 2002/12/30 17:28:31 gbazin Exp $
  *
  * Authors: Gildas Bazin <gbazin@netcourrier.com>
  *
@@ -224,6 +224,9 @@ static int RunDecoder( decoder_fifo_t * p_fifo )
         p_dec->output_format.i_original_channels =
             pi_channels_maps[p_dec->vi.channels];
     p_dec->output_format.i_rate = p_dec->vi.rate;
+    p_dec->output_format.i_bytes_per_frame =
+        p_dec->vi.channels * sizeof(float);
+    p_dec->output_format.i_frame_length = 1;
 
     aout_DateInit( &p_dec->end_date, p_dec->vi.rate );
     p_dec->p_aout = NULL;