VLC  4.0.0-dev
Data Structures | Macros | Typedefs | Enumerations | Functions
aout_internal.h File Reference
Include dependency graph for aout_internal.h:

Go to the source code of this file.

Data Structures

struct  aout_owner_t
 
struct  aout_instance_t
 

Macros

#define AOUT_MAX_INPUT_RATE   (4)
 
#define aout_volume_New(o, g)   aout_volume_New(VLC_OBJECT(o), g)
 
#define aout_New(a)   aout_New(VLC_OBJECT(a))
 
#define aout_FormatsPrint(o, t, a, b)    aout_FormatsPrint(VLC_OBJECT(o), t, a, b)
 
#define AOUT_DEC_SUCCESS   0
 
#define AOUT_DEC_CHANGED   1
 
#define AOUT_DEC_FAILED   VLC_EGENERIC
 

Typedefs

typedef struct aout_volume aout_volume_t
 

Enumerations

enum  { AOUT_RESAMPLING_NONE =0 , AOUT_RESAMPLING_UP , AOUT_RESAMPLING_DOWN }
 

Functions

static aout_owner_taout_owner (audio_output_t *aout)
 
aout_volume_taout_volume_New (vlc_object_t *, const audio_replay_gain_t *)
 Creates a software amplifier. More...
 
int aout_volume_SetFormat (aout_volume_t *, vlc_fourcc_t)
 Selects the current sample format for software amplification. More...
 
void aout_volume_SetVolume (aout_volume_t *, float)
 
int aout_volume_Amplify (aout_volume_t *, block_t *)
 Applies replay gain and software volume to an audio buffer. More...
 
void aout_volume_Delete (aout_volume_t *)
 Destroys a software amplifier. More...
 
audio_output_taout_New (vlc_object_t *)
 Creates an audio output object and initializes an output module. More...
 
void aout_Destroy (audio_output_t *)
 Deinitializes an audio output module and destroys an audio output object. More...
 
int aout_OutputNew (audio_output_t *)
 Starts an audio output stream. More...
 
void aout_OutputDelete (audio_output_t *p_aout)
 Stops the audio output stream (undoes aout_OutputNew()). More...
 
vlc_audio_meter_pluginaout_AddMeterPlugin (audio_output_t *aout, const char *chain, const struct vlc_audio_meter_plugin_owner *owner)
 
void aout_RemoveMeterPlugin (audio_output_t *aout, vlc_audio_meter_plugin *plugin)
 
void aout_FormatsPrint (vlc_object_t *, const char *, const audio_sample_format_t *, const audio_sample_format_t *)
 Prints two formats in a human-readable form. More...
 
int aout_DecNew (audio_output_t *, const audio_sample_format_t *, int profile, struct vlc_clock_t *clock, const audio_replay_gain_t *)
 Creates an audio output. More...
 
void aout_DecDelete (audio_output_t *)
 Stops all plugins involved in the audio output. More...
 
int aout_DecPlay (audio_output_t *aout, block_t *block)
 
void aout_DecGetResetStats (audio_output_t *, unsigned *, unsigned *)
 
void aout_DecChangePause (audio_output_t *, bool b_paused, vlc_tick_t i_date)
 
void aout_DecChangeRate (audio_output_t *aout, float rate)
 
void aout_DecChangeDelay (audio_output_t *aout, vlc_tick_t delay)
 
void aout_DecFlush (audio_output_t *)
 
void aout_DecDrain (audio_output_t *)
 
void aout_RequestRestart (audio_output_t *, unsigned)
 Marks the audio output for restart, to update any parameter of the output plug-in (e.g. More...
 
void aout_RequestRetiming (audio_output_t *aout, vlc_tick_t system_ts, vlc_tick_t audio_ts)
 
static void aout_InputRequestRestart (audio_output_t *aout)
 
static void aout_SetWavePhysicalChannels (audio_sample_format_t *fmt)
 
aout_filters_taout_FiltersNewWithClock (vlc_object_t *, const vlc_clock_t *, const audio_sample_format_t *, const audio_sample_format_t *, const aout_filters_cfg_t *cfg)
 
void aout_FiltersResetClock (aout_filters_t *filters)
 
void aout_FiltersSetClockDelay (aout_filters_t *filters, vlc_tick_t delay)
 
bool aout_FiltersCanResample (aout_filters_t *filters)
 
filter_taout_filter_Create (vlc_object_t *obj, const filter_owner_t *restrict owner, const char *type, const char *name, const audio_sample_format_t *infmt, const audio_sample_format_t *outfmt, config_chain_t *cfg, bool const_fmt)
 

Macro Definition Documentation

◆ AOUT_DEC_CHANGED

#define AOUT_DEC_CHANGED   1

◆ AOUT_DEC_FAILED

#define AOUT_DEC_FAILED   VLC_EGENERIC

◆ AOUT_DEC_SUCCESS

#define AOUT_DEC_SUCCESS   0

◆ aout_FormatsPrint

#define aout_FormatsPrint (   o,
  t,
  a,
 
)     aout_FormatsPrint(VLC_OBJECT(o), t, a, b)

◆ AOUT_MAX_INPUT_RATE

#define AOUT_MAX_INPUT_RATE   (4)

◆ aout_New

#define aout_New (   a)    aout_New(VLC_OBJECT(a))

◆ aout_volume_New

#define aout_volume_New (   o,
 
)    aout_volume_New(VLC_OBJECT(o), g)

Typedef Documentation

◆ aout_volume_t

typedef struct aout_volume aout_volume_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
AOUT_RESAMPLING_NONE 
AOUT_RESAMPLING_UP 
AOUT_RESAMPLING_DOWN 

Function Documentation

◆ aout_AddMeterPlugin()

vlc_audio_meter_plugin* aout_AddMeterPlugin ( audio_output_t aout,
const char *  chain,
const struct vlc_audio_meter_plugin_owner owner 
)

◆ aout_DecChangeDelay()

void aout_DecChangeDelay ( audio_output_t aout,
vlc_tick_t  delay 
)

◆ aout_DecChangePause()

void aout_DecChangePause ( audio_output_t aout,
bool  b_paused,
vlc_tick_t  i_date 
)

◆ aout_DecChangeRate()

void aout_DecChangeRate ( audio_output_t aout,
float  rate 
)

◆ aout_DecDelete()

void aout_DecDelete ( audio_output_t aout)

◆ aout_DecDrain()

void aout_DecDrain ( audio_output_t aout)

◆ aout_DecFlush()

void aout_DecFlush ( audio_output_t aout)

◆ aout_DecGetResetStats()

void aout_DecGetResetStats ( audio_output_t ,
unsigned *  ,
unsigned *   
)

◆ aout_DecNew()

int aout_DecNew ( audio_output_t p_aout,
const audio_sample_format_t p_format,
int  profile,
struct vlc_clock_t clock,
const audio_replay_gain_t p_replay_gain 
)

◆ aout_DecPlay()

int aout_DecPlay ( audio_output_t aout,
block_t block 
)

◆ aout_Destroy()

void aout_Destroy ( audio_output_t aout)

◆ aout_filter_Create()

filter_t* aout_filter_Create ( vlc_object_t obj,
const filter_owner_t *restrict  owner,
const char *  type,
const char *  name,
const audio_sample_format_t infmt,
const audio_sample_format_t outfmt,
config_chain_t cfg,
bool  const_fmt 
)

◆ aout_FiltersCanResample()

bool aout_FiltersCanResample ( aout_filters_t filters)

References aout_filters::resampler.

Referenced by aout_RequestRetiming().

◆ aout_FiltersNewWithClock()

aout_filters_t* aout_FiltersNewWithClock ( vlc_object_t ,
const vlc_clock_t ,
const audio_sample_format_t ,
const audio_sample_format_t ,
const aout_filters_cfg_t cfg 
)

Referenced by aout_CheckReady(), and aout_DecNew().

◆ aout_FiltersResetClock()

void aout_FiltersResetClock ( aout_filters_t filters)

◆ aout_FiltersSetClockDelay()

void aout_FiltersSetClockDelay ( aout_filters_t filters,
vlc_tick_t  delay 
)

◆ aout_FormatsPrint()

void aout_FormatsPrint ( vlc_object_t obj,
const char *  psz_text,
const audio_sample_format_t p_format1,
const audio_sample_format_t p_format2 
)

Prints two formats in a human-readable form.

References aout_FormatPrintChannels(), audio_format_t::i_format, audio_format_t::i_rate, and msg_Dbg.

◆ aout_InputRequestRestart()

static void aout_InputRequestRestart ( audio_output_t aout)
inlinestatic

◆ aout_New()

audio_output_t* aout_New ( vlc_object_t parent)

◆ aout_OutputDelete()

void aout_OutputDelete ( audio_output_t aout)

Stops the audio output stream (undoes aout_OutputNew()).

Note
This can only be called after a successful aout_OutputNew().
Warning
The caller must NOT hold the audio output lock.

References aout_owner(), aout_owner_t::lock, audio_output::stop, vlc_mutex_lock(), and vlc_mutex_unlock().

Referenced by aout_CheckReady(), aout_DecDelete(), and aout_DecNew().

◆ aout_OutputNew()

int aout_OutputNew ( audio_output_t aout)

Starts an audio output stream.

Parameters
output_codeccodec accepted by the module, it can be different than the codec from the mixer_format in case of DTSHD/DTS or EAC3/AC3 fallback
Warning
The caller must NOT hold the audio output lock.

References AOUT_CHANS_7_1, AOUT_CHANS_STEREO, AOUT_FMT_LINEAR, aout_FormatNbChannels(), aout_FormatPrepare(), aout_FormatPrint, aout_HasMixModeChoice(), aout_HasStereoMode(), AOUT_MIX_MODE_BINAURAL, aout_owner(), aout_PrepareStereoMode(), aout_SetupMixModeChoices(), aout_SetWavePhysicalChannels(), aout_UpdateMixMode(), aout_UpdateStereoMode(), AOUT_VAR_CHAN_UNSET, ARRAY_SIZE, AUDIO_CHANNEL_TYPE_AMBISONICS, AUDIO_CHANNEL_TYPE_BITMAP, audio_format_t::channel_type, audio_output::current_sink_info, aout_owner_t::filter_format, aout_owner_t::filters_cfg, audio_output::flush, audio_output::headphones, audio_format_t::i_bitspersample, audio_format_t::i_bytes_per_frame, audio_format_t::i_channels, audio_format_t::i_format, audio_format_t::i_frame_length, audio_format_t::i_physical_channels, aout_owner_t::input_profile, aout_owner_t::lock, aout_owner_t::mixer_format, msg_Err, msg_Warn, audio_output::pause, audio_output::play, aout_owner_t::requested_mix_mode, audio_output::start, audio_output::time_get, var_Change(), VLC_CODEC_A52, VLC_CODEC_DTS, VLC_CODEC_DTSHD, VLC_CODEC_EAC3, VLC_CODEC_FL32, VLC_CODEC_S16N, VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), VLC_SUCCESS, and VLC_VAR_CLEARCHOICES.

Referenced by aout_CheckReady(), and aout_DecNew().

◆ aout_owner()

static aout_owner_t* aout_owner ( audio_output_t aout)
inlinestatic

◆ aout_RemoveMeterPlugin()

void aout_RemoveMeterPlugin ( audio_output_t aout,
vlc_audio_meter_plugin plugin 
)

◆ aout_RequestRestart()

void aout_RequestRestart ( audio_output_t aout,
unsigned  mode 
)

Marks the audio output for restart, to update any parameter of the output plug-in (e.g.

output device or channel mapping).

References aout_owner(), msg_Dbg, and aout_owner_t::restart.

Referenced by aout_InputRequestRestart(), and aout_RestartNotify().

◆ aout_RequestRetiming()

void aout_RequestRetiming ( audio_output_t aout,
vlc_tick_t  system_ts,
vlc_tick_t  audio_ts 
)

◆ aout_SetWavePhysicalChannels()

static void aout_SetWavePhysicalChannels ( audio_sample_format_t fmt)
inlinestatic

◆ aout_volume_Amplify()

int aout_volume_Amplify ( aout_volume_t vol,
block_t block 
)

Applies replay gain and software volume to an audio buffer.

References audio_volume::amplify, aout_volume::gain_factor, aout_volume::module, aout_volume::object, aout_volume::output_factor, and unlikely.

Referenced by aout_DecPlay().

◆ aout_volume_Delete()

void aout_volume_Delete ( aout_volume_t vol)

◆ aout_volume_New()

aout_volume_t* aout_volume_New ( vlc_object_t parent,
const audio_replay_gain_t gain 
)

◆ aout_volume_SetFormat()

int aout_volume_SetFormat ( aout_volume_t vol,
vlc_fourcc_t  format 
)

Selects the current sample format for software amplification.

References audio_volume::format, aout_volume::module, module_need, module_unneed, msg_Dbg, aout_volume::object, and unlikely.

Referenced by aout_CheckReady(), and aout_DecNew().

◆ aout_volume_SetVolume()

void aout_volume_SetVolume ( aout_volume_t vol,
float  factor 
)