VLC 4.0.0-dev

Audio output modules interface. More...

Include dependency graph for vlc_aout.h:

Go to the source code of this file.

Data Structures

struct  vlc_audio_output_events
 
struct  audio_output
 Audio output object. More...
 
struct  aout_filters_cfg_t
 
struct  vlc_audio_loudness
 Audio loudness measurement. More...
 
struct  vlc_audio_meter_cbs
 Audio meter callback. More...
 
struct  vlc_audio_meter_plugin_owner
 Audio meter plugin owner structure. More...
 
struct  vlc_audio_meter
 Audio meter structure. More...
 

Macros

#define AOUT_MAX_ADVANCE_TIME   (AOUT_MAX_PREPARE_TIME + VLC_TICK_FROM_SEC(1))
 
#define AOUT_MAX_PREPARE_TIME   VLC_TICK_FROM_SEC(2)
 
#define AOUT_MIN_PREPARE_TIME   AOUT_MAX_PTS_ADVANCE
 
#define AOUT_MAX_PTS_ADVANCE   VLC_TICK_FROM_MS(40)
 Maximum advance of actual audio playback time to coded PTS, above which downsampling will be performed. More...
 
#define AOUT_MAX_PTS_DELAY   VLC_TICK_FROM_MS(60)
 Maximum delay of actual audio playback time from coded PTS, above which upsampling will be performed. More...
 
#define AOUT_MAX_RESAMPLING   10
 
#define AOUT_FMTS_IDENTICAL(p_first, p_second)
 
#define AOUT_FMTS_SIMILAR(p_first, p_second)
 
#define AOUT_FMT_LINEAR(p_format)    (aout_BitsPerSample((p_format)->i_format) != 0)
 
#define VLC_CODEC_SPDIFL   VLC_FOURCC('s','p','d','i')
 
#define VLC_CODEC_SPDIFB   VLC_FOURCC('s','p','d','b')
 
#define AOUT_FMT_SPDIF(p_format)
 
#define AOUT_FMT_HDMI(p_format)
 
#define AOUT_VAR_CHAN_UNSET   0 /* must be zero */
 
#define AOUT_VAR_CHAN_STEREO   1
 
#define AOUT_VAR_CHAN_RSTEREO   2
 
#define AOUT_VAR_CHAN_LEFT   3
 
#define AOUT_VAR_CHAN_RIGHT   4
 
#define AOUT_VAR_CHAN_DOLBYS   5
 
#define AOUT_VAR_CHAN_MONO   7
 
#define AOUT_MIX_MODE_UNSET   0
 
#define AOUT_MIX_MODE_STEREO   1
 
#define AOUT_MIX_MODE_BINAURAL   2
 
#define AOUT_MIX_MODE_4_0   3
 
#define AOUT_MIX_MODE_5_1   4
 
#define AOUT_MIX_MODE_7_1   5
 
#define AOUT_SPDIF_SIZE   6144
 
#define A52_FRAME_NB   1536
 
#define AOUT_RESTART_FILTERS   0x1
 
#define AOUT_RESTART_OUTPUT   (AOUT_RESTART_FILTERS|0x2)
 
#define AOUT_RESTART_STEREOMODE   (AOUT_RESTART_OUTPUT|0x4)
 
#define aout_FormatPrint(o, t, f)   aout_FormatPrint(VLC_OBJECT(o), t, f)
 
#define AOUT_VOLUME_DEFAULT   256
 
#define AOUT_VOLUME_MAX   512
 
#define AOUT_CHAN_REMAP_INIT
 
#define AOUT_FILTERS_CFG_INIT
 
#define aout_FiltersNew(o, inf, outf, remap)    aout_FiltersNew(VLC_OBJECT(o),inf,outf,remap)
 
#define aout_FiltersDelete(o, f)    aout_FiltersDelete(VLC_OBJECT(o),f)
 
#define vlc_audio_meter_Init(a, b)   vlc_audio_meter_Init(a, VLC_OBJECT(b))
 

Typedefs

typedef struct aout_filters aout_filters_t
 
typedef struct vlc_audio_meter_plugin vlc_audio_meter_plugin
 Audio meter plugin opaque structure. More...
 

Enumerations

enum  vlc_chan_order_idx_t {
  AOUT_CHANIDX_DISABLE = -1 , AOUT_CHANIDX_LEFT , AOUT_CHANIDX_RIGHT , AOUT_CHANIDX_MIDDLELEFT ,
  AOUT_CHANIDX_MIDDLERIGHT , AOUT_CHANIDX_REARLEFT , AOUT_CHANIDX_REARRIGHT , AOUT_CHANIDX_REARCENTER ,
  AOUT_CHANIDX_CENTER , AOUT_CHANIDX_LFE , AOUT_CHANIDX_MAX
}
 

Functions

static void aout_TimingReport (audio_output_t *aout, vlc_tick_t system_ts, vlc_tick_t audio_ts)
 Report a new timing point. More...
 
static void aout_DrainedReport (audio_output_t *aout)
 Report than the stream is drained (after a call to aout->drain_async) More...
 
static void aout_VolumeReport (audio_output_t *aout, float volume)
 Report change of configured audio volume to the core and UI. More...
 
static void aout_MuteReport (audio_output_t *aout, bool mute)
 Report change of muted flag to the core and UI. More...
 
static void aout_PolicyReport (audio_output_t *aout, bool cork)
 Report audio policy status. More...
 
static void aout_DeviceReport (audio_output_t *aout, const char *id)
 Report change of output device. More...
 
static void aout_HotplugReport (audio_output_t *aout, const char *id, const char *name)
 Report a device hot-plug event. More...
 
static int aout_GainRequest (audio_output_t *aout, float gain)
 Request a change of software audio amplification. More...
 
static void aout_RestartRequest (audio_output_t *aout, unsigned mode)
 
static void aout_PauseDefault (audio_output_t *aout, bool paused, vlc_tick_t date)
 Default implementation for audio_output_t.pause. More...
 
unsigned aout_CheckChannelReorder (const uint32_t *, const uint32_t *, uint32_t mask, uint8_t *table)
 This function computes the reordering needed to go from pi_chan_order_in to pi_chan_order_out. More...
 
void aout_ChannelReorder (void *, size_t, uint8_t, const uint8_t *, vlc_fourcc_t)
 Reorders audio samples within a block of linear audio interleaved samples. More...
 
bool aout_CheckChannelExtraction (int *pi_selection, uint32_t *pi_layout, int *pi_channels, const uint32_t pi_order_dst[9], const uint32_t *pi_order_src, int i_channels)
 This function will compute the extraction parameter into pi_selection to go from i_channels with their type given by pi_order_src[] into the order describe by pi_order_dst. More...
 
void aout_ChannelExtract (void *p_dst, int i_dst_channels, const void *p_src, int i_src_channels, int i_sample_count, const int *pi_selection, int i_bits_per_sample)
 Do the actual channels extraction using the parameters created by aout_CheckChannelExtraction. More...
 
void aout_Interleave (void *dst, const void *const *planes, unsigned samples, unsigned channels, vlc_fourcc_t fourcc)
 
void aout_Deinterleave (void *dst, const void *src, unsigned samples, unsigned channels, vlc_fourcc_t fourcc)
 
static unsigned aout_FormatNbChannels (const audio_sample_format_t *fmt)
 
unsigned int aout_BitsPerSample (vlc_fourcc_t i_format)
 
void aout_FormatPrepare (audio_sample_format_t *p_format)
 
void aout_FormatPrint (vlc_object_t *, const char *, const audio_sample_format_t *)
 Prints an audio sample format in a human-readable form. More...
 
const char * aout_FormatPrintChannels (const audio_sample_format_t *)
 
float aout_VolumeGet (audio_output_t *)
 Gets the volume of the audio output stream (independent of mute). More...
 
int aout_VolumeSet (audio_output_t *, float)
 Sets the volume of the audio output stream. More...
 
int aout_VolumeUpdate (audio_output_t *, int, float *)
 Raises the volume. More...
 
int aout_MuteGet (audio_output_t *)
 Gets the audio output stream mute flag. More...
 
int aout_MuteSet (audio_output_t *, bool)
 Sets the audio output stream mute flag. More...
 
char * aout_DeviceGet (audio_output_t *)
 Gets the currently selected device. More...
 
int aout_DeviceSet (audio_output_t *, const char *)
 Selects an audio output device. More...
 
int aout_DevicesList (audio_output_t *, char ***, char ***)
 Enumerates possible audio output devices. More...
 
int aout_EnableFilter (audio_output_t *aout, const char *name, bool add)
 Enable or disable an audio filter ("audio-filter") More...
 
aout_filters_taout_FiltersNew (vlc_object_t *, const audio_sample_format_t *, const audio_sample_format_t *, const aout_filters_cfg_t *cfg)
 
void aout_FiltersDelete (vlc_object_t *, aout_filters_t *)
 Destroys a chain of audio filters. More...
 
bool aout_FiltersAdjustResampling (aout_filters_t *, int)
 
block_taout_FiltersPlay (aout_filters_t *, block_t *, float rate)
 
block_taout_FiltersDrain (aout_filters_t *)
 
void aout_FiltersFlush (aout_filters_t *)
 
void aout_FiltersChangeViewpoint (aout_filters_t *, const vlc_viewpoint_t *vp)
 
vout_thread_taout_filter_GetVout (filter_t *, const video_format_t *)
 Create a vout from an "visualization" audio filter. More...
 
void vlc_audio_meter_Init (struct vlc_audio_meter *meter, vlc_object_t *parent)
 Initialize the audio meter structure. More...
 
void vlc_audio_meter_Destroy (struct vlc_audio_meter *meter)
 Free allocated resource from the audio meter structure. More...
 
int vlc_audio_meter_Reset (struct vlc_audio_meter *meter, const audio_sample_format_t *fmt)
 Set or reset the audio format. More...
 
vlc_audio_meter_pluginvlc_audio_meter_AddPlugin (struct vlc_audio_meter *meter, const char *chain, const struct vlc_audio_meter_plugin_owner *owner)
 Add an "audio meter" plugin. More...
 
void vlc_audio_meter_RemovePlugin (struct vlc_audio_meter *meter, vlc_audio_meter_plugin *plugin)
 Remove an "audio meter" plugin. More...
 
void vlc_audio_meter_Process (struct vlc_audio_meter *meter, block_t *block, vlc_tick_t date)
 Process an audio block. More...
 
void vlc_audio_meter_Flush (struct vlc_audio_meter *meter)
 Flush all "audio meter" plugins. More...
 

Variables

static const uint32_t pi_vlc_chan_order_wg4 []
 It describes the audio channel order VLC expect. More...
 

Detailed Description

Audio output modules interface.