X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_aout.h;h=dbe1102bfd85506f73c7f54686742e7195b30783;hb=36e37a19e99fff3c0dbfe83ab49f3efa6fa4de59;hp=30f144ef43ff5a2d7cdfe6a822a3b53ce8e0e7e8;hpb=a8af64458655e9f803cb2f754cfa04affaf944b8;p=vlc diff --git a/include/vlc_aout.h b/include/vlc_aout.h index 30f144ef43..dbe1102bfd 100644 --- a/include/vlc_aout.h +++ b/include/vlc_aout.h @@ -21,8 +21,13 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ -#ifndef _VLC_AOUT_H -#define _VLC_AOUT_H 1 +#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" { @@ -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 */ @@ -140,7 +146,7 @@ struct aout_buffer_t size_t i_size, i_nb_bytes; unsigned int i_nb_samples; mtime_t start_date, end_date; - bool b_discontinuity; /* Set on discontinuity (for non pcm stream) */ + bool b_discontinuity; /* Set on discontinuity (for non pcm stream) */ struct aout_buffer_t * p_next; @@ -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 *****************************************************************************/ @@ -358,22 +375,28 @@ struct aout_instance_t VLC_EXPORT( void, aout_DateInit, ( audio_date_t *, uint32_t ) ); VLC_EXPORT( void, aout_DateSet, ( audio_date_t *, mtime_t ) ); VLC_EXPORT( void, aout_DateMove, ( audio_date_t *, mtime_t ) ); -VLC_EXPORT( mtime_t, aout_DateGet, ( const audio_date_t * ) ); +VLC_EXPORT( mtime_t, aout_DateGet, ( const audio_date_t * ) LIBVLC_USED); 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( aout_buffer_t *, aout_OutputNextBuffer, ( aout_instance_t *, mtime_t, bool ) LIBVLC_USED ); -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 ) ); -VLC_EXPORT( unsigned int, aout_BitsPerSample, ( vlc_fourcc_t i_format ) ); +VLC_EXPORT( unsigned int, aout_FormatNbChannels, ( const audio_sample_format_t * p_format ) LIBVLC_USED ); +VLC_EXPORT( unsigned int, aout_BitsPerSample, ( vlc_fourcc_t i_format ) LIBVLC_USED ); VLC_EXPORT( void, aout_FormatPrepare, ( audio_sample_format_t * p_format ) ); VLC_EXPORT( void, aout_FormatPrint, ( aout_instance_t * p_aout, const char * psz_text, const audio_sample_format_t * p_format ) ); -VLC_EXPORT( const char *, aout_FormatPrintChannels, ( const audio_sample_format_t * ) ); +VLC_EXPORT( const char *, aout_FormatPrintChannels, ( const audio_sample_format_t * ) LIBVLC_USED ); -VLC_EXPORT( mtime_t, aout_FifoFirstDate, ( aout_instance_t *, aout_fifo_t * ) ); -VLC_EXPORT( aout_buffer_t *, aout_FifoPop, ( aout_instance_t * p_aout, aout_fifo_t * p_fifo ) ); +VLC_EXPORT( mtime_t, aout_FifoFirstDate, ( aout_instance_t *, aout_fifo_t * ) LIBVLC_USED ); +VLC_EXPORT( aout_buffer_t *, aout_FifoPop, ( aout_instance_t * p_aout, aout_fifo_t * p_fifo ) LIBVLC_USED ); /* From intf.c : */ VLC_EXPORT( void, aout_VolumeSoftInit, ( aout_instance_t * ) );