]> git.sesse.net Git - vlc/blobdiff - src/audio_output/output.c
* modules/demux/mpeg: Added DVB stream type for A/52 streams (0x6),
[vlc] / src / audio_output / output.c
index 0a0a6031af0684cb3c3d4a637b175b9ec7e42421..058aa503d04e04263e387529fd4f62aea8476177 100644 (file)
@@ -2,7 +2,7 @@
  * output.c : internal management of output streams for the audio output
  *****************************************************************************
  * Copyright (C) 2002 VideoLAN
- * $Id: output.c,v 1.15 2002/09/26 22:40:25 massiot Exp $
+ * $Id: output.c,v 1.18 2002/10/20 12:23:48 massiot Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
@@ -50,14 +50,21 @@ int aout_OutputNew( aout_instance_t * p_aout,
     if ( i_channels != -1 ) p_aout->output.output.i_channels = i_channels;
     if ( AOUT_FMT_NON_LINEAR(&p_aout->output.output) )
     {
-        p_aout->output.output.i_format = AOUT_FMT_SPDIF;
+        p_aout->output.output.i_format = VLC_FOURCC('s','p','d','i');
     }
     else
     {
         /* Non-S/PDIF mixer only deals with float32 or fixed32. */
         p_aout->output.output.i_format
-                     = (p_aout->p_vlc->i_cpu & CPU_CAPABILITY_FPU) ?
-                        AOUT_FMT_FLOAT32 : AOUT_FMT_FIXED32;
+                     = (p_aout->p_libvlc->i_cpu & CPU_CAPABILITY_FPU) ?
+                        VLC_FOURCC('f','l','3','2') :
+                        VLC_FOURCC('f','i','3','2');
+
+        if ( p_aout->output.output.i_channels == AOUT_CHAN_DOLBY )
+        {
+            /* Do not do Dolby surround unless the user requests it. */
+            p_aout->output.output.i_channels = AOUT_CHAN_STEREO;
+        }
     }
     aout_FormatPrepare( &p_aout->output.output );
 
@@ -80,9 +87,7 @@ int aout_OutputNew( aout_instance_t * p_aout,
 
     vlc_mutex_unlock( &p_aout->output_fifo_lock );
 
-    msg_Dbg( p_aout, "output format=%d rate=%d channels=%d",
-             p_aout->output.output.i_format, p_aout->output.output.i_rate,
-             p_aout->output.output.i_channels );
+    aout_FormatPrint( p_aout, "output", &p_aout->output.output );
 
     /* Calculate the resulting mixer output format. */
     memcpy( &p_aout->mixer.mixer, &p_aout->output.output,
@@ -91,8 +96,9 @@ int aout_OutputNew( aout_instance_t * p_aout,
     {
         /* Non-S/PDIF mixer only deals with float32 or fixed32. */
         p_aout->mixer.mixer.i_format
-                     = (p_aout->p_vlc->i_cpu & CPU_CAPABILITY_FPU) ?
-                        AOUT_FMT_FLOAT32 : AOUT_FMT_FIXED32;
+                     = (p_aout->p_libvlc->i_cpu & CPU_CAPABILITY_FPU) ?
+                        VLC_FOURCC('f','l','3','2') :
+                        VLC_FOURCC('f','i','3','2');
         aout_FormatPrepare( &p_aout->mixer.mixer );
     }
     else
@@ -100,9 +106,7 @@ int aout_OutputNew( aout_instance_t * p_aout,
         p_aout->mixer.mixer.i_format = p_format->i_format;
     }
 
-    msg_Dbg( p_aout, "mixer format=%d rate=%d channels=%d",
-             p_aout->mixer.mixer.i_format, p_aout->mixer.mixer.i_rate,
-             p_aout->mixer.mixer.i_channels );
+    aout_FormatPrint( p_aout, "mixer", &p_aout->output.output );
 
     /* Create filters. */
     if ( aout_FiltersCreatePipeline( p_aout, p_aout->output.pp_filters,