]> git.sesse.net Git - vlc/blobdiff - include/vlc_aout.h
Improved config_chain parsing by using escape for \ " and ' (close #1952)
[vlc] / include / vlc_aout.h
index 7d119845ccc52ab48a7a52923f668f0c6dfd6ae5..39e1ca1a6b3d6f93687f9b115b9b0006e55af4aa 100644 (file)
 #ifndef VLC_AOUT_H
 #define VLC_AOUT_H 1
 
+/**
+ * \file
+ * This file defines functions, structures and macros for audio output object
+ */
+
 # ifdef __cplusplus
 extern "C" {
 # endif
@@ -46,11 +51,13 @@ extern "C" {
 #   define AOUT_FMT_S16_NE VLC_FOURCC('s','1','6','b')
 #   define AOUT_FMT_U16_NE VLC_FOURCC('u','1','6','b')
 #   define AOUT_FMT_S24_NE VLC_FOURCC('s','2','4','b')
+#   define AOUT_FMT_S32_NE VLC_FOURCC('s','3','2','b')
 #   define AOUT_FMT_SPDIF_NE VLC_FOURCC('s','p','d','b')
 #else
 #   define AOUT_FMT_S16_NE VLC_FOURCC('s','1','6','l')
 #   define AOUT_FMT_U16_NE VLC_FOURCC('u','1','6','l')
 #   define AOUT_FMT_S24_NE VLC_FOURCC('s','2','4','l')
+#   define AOUT_FMT_S32_NE VLC_FOURCC('s','3','2','l')
 #   define AOUT_FMT_SPDIF_NE VLC_FOURCC('s','p','d','i')
 #endif
 
@@ -86,7 +93,6 @@ typedef int32_t vlc_fixed_t;
 #define FIXED32_MAX ((vlc_fixed_t) +0x7fffffffL)
 #define FIXED32_ONE ((vlc_fixed_t) 0x10000000)
 
-
 /*
  * Channels descriptions
  */
@@ -350,6 +356,17 @@ struct aout_instance_t
     aout_output_t           output;
 };
 
+/**
+ * It describes the audio channel order VLC except.
+ */
+static const uint32_t pi_vlc_chan_order_wg4[] =
+{
+    AOUT_CHAN_LEFT, AOUT_CHAN_RIGHT,
+    AOUT_CHAN_MIDDLELEFT, AOUT_CHAN_MIDDLERIGHT,
+    AOUT_CHAN_REARLEFT, AOUT_CHAN_REARRIGHT, AOUT_CHAN_REARCENTER,
+    AOUT_CHAN_CENTER, AOUT_CHAN_LFE, 0
+};
+
 /*****************************************************************************
  * Prototypes
  *****************************************************************************/
@@ -363,7 +380,13 @@ VLC_EXPORT( mtime_t, aout_DateIncrement, ( audio_date_t *, uint32_t ) );
 
 VLC_EXPORT( aout_buffer_t *, aout_OutputNextBuffer, ( aout_instance_t *, mtime_t, bool ) );
 
-VLC_EXPORT( int, aout_CheckChannelReorder, ( const uint32_t *, const uint32_t *, uint32_t, int, int * ) );
+/**
+ * This function computes the reordering needed to go from pi_chan_order_in to
+ * pi_chan_order_out.
+ * If pi_chan_order_in or pi_chan_order_out is NULL, it will assume that vlc
+ * internal (WG4) order is requested.
+ */
+VLC_EXPORT( int, aout_CheckChannelReorder, ( const uint32_t *pi_chan_order_in, const uint32_t *pi_chan_order_out, uint32_t i_channel_mask, int i_channels, int *pi_chan_table ) );
 VLC_EXPORT( void, aout_ChannelReorder, ( uint8_t *, int, int, const int *, int ) );
 
 VLC_EXPORT( unsigned int, aout_FormatNbChannels, ( const audio_sample_format_t * p_format ) );