* audio_output.c : audio output instance
*****************************************************************************
* Copyright (C) 2002 VideoLAN
- * $Id: audio_output.c,v 1.90 2002/08/07 21:36:56 massiot Exp $
+ * $Id: audio_output.c,v 1.91 2002/08/09 23:47:23 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
}
/*****************************************************************************
- * aout_FormatToBytes : return the number bytes/sample for format
- * (didn't know where else to put it)
+ * aout_FormatTo : compute the number of bytes/sample for format (used for
+ * aout_FormatToByterate and aout_FormatToSize)
*****************************************************************************/
-int aout_FormatToBytes( audio_sample_format_t * p_format )
+int aout_FormatTo( audio_sample_format_t * p_format, int i_multiplier )
{
int i_result;
i_result = 4;
break;
- case AOUT_FMT_A52:
- i_result = 1; /* This is a bit special... sample == byte */
- break;
+ case AOUT_FMT_SPDIF:
+ case AOUT_FMT_A52: /* Actually smaller and variable, but who cares ? */
+ case AOUT_FMT_DTS: /* Unimplemented and untested */
+ /* Please note that we don't multiply by multiplier, because i_rate
+ * and i_nb_samples do not have any sense for S/PDIF (yes, it
+ * _is_ kludgy). --Meuuh */
+ return AOUT_SPDIF_FRAME;
default:
- i_result = 0; /* will segfault much sooner... */
+ return 0; /* will segfault much sooner... */
}
- return i_result * p_format->i_channels;
+ return i_result * p_format->i_channels * i_multiplier;
}