]> git.sesse.net Git - vlc/blobdiff - src/audio_output/audio_output.c
* Trivial resampler plug-in (resampling still non-functional)
[vlc] / src / audio_output / audio_output.c
index 3f0e4b02faa0bdde7ad7adb71c877a3d9f346110..a9633858781a04c3a44c7ad199be45986fc61e0e 100644 (file)
@@ -2,7 +2,7 @@
  * 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>
  *
@@ -159,10 +159,10 @@ void aout_BufferPlay( aout_instance_t * p_aout, aout_input_t * p_input,
 }
 
 /*****************************************************************************
- * 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;
 
@@ -185,14 +185,18 @@ int aout_FormatToBytes( audio_sample_format_t * p_format )
         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;
 }