* 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>
*
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 );
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,
{
/* 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
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,