Go to the documentation of this file.
21 #ifndef LIBVLC_CONFIGURATION_H
22 # define LIBVLC_CONFIGURATION_H 1
37 #define config_LoadCmdLine(a,b,c,d) config_LoadCmdLine(VLC_OBJECT(a),b,c,d)
38 #define config_LoadConfigFile(a) config_LoadConfigFile(VLC_OBJECT(a))
44 #define CONFIG_CLASS(x) ((x) & ~0x1F)
46 #define IsConfigStringType(type) \
47 (((type) & CONFIG_ITEM_STRING) != 0)
48 #define IsConfigIntegerType(type) \
49 (((type) & CONFIG_ITEM_INTEGER) != 0)
50 #define IsConfigFloatType(type) \
51 ((type) == CONFIG_ITEM_FLOAT)
59 #define CONFIG_FILE "vlcrc"
const char * config_ChainParseOptions(config_chain_t **pp_cfg, const char *psz_opts)
This function will parse a configuration string (psz_opts) and.
Definition: chain.c:180
const char * psz_name
Definition: vlc_configuration.h:71
struct vlc_common_members obj
Definition: vlc_filter.h:67
const char * name
Definition: vlc_getopt.h:92
static void aout_RestartNotify(audio_output_t *aout, unsigned mode)
Definition: output.c:149
unsigned aout_CheckChannelReorder(const uint32_t *chans_in, const uint32_t *chans_out, uint32_t mask, uint8_t *restrict table)
Definition: common.c:253
atomic_uint buffers_lost
Definition: aout_internal.h:94
bool aout_ChangeFilterString(vlc_object_t *p_obj, vlc_object_t *p_aout, const char *psz_variable, const char *psz_name, bool b_add)
Definition: common.c:538
#define VLC_CODEC_F64B
Definition: vlc_fourcc.h:506
#define AOUT_MAX_PTS_DELAY
Maximum delay of actual audio playback time from coded PTS, above which upsampling will be performed.
Definition: vlc_aout.h:55
#define AOUT_CHAN_RIGHT
Definition: vlc_es.h:120
#define AOUT_CHAN_MIDDLERIGHT
Definition: vlc_es.h:125
size_t count
Definition: core.c:461
static void PauseDefault(audio_output_t *aout, bool pause, mtime_t date)
Definition: output.c:621
Definition: aout_internal.h:35
filter_t * tab[10]
Configured user filters (e.g.
Definition: filters.c:352
int aout_OutputNew(audio_output_t *aout, audio_sample_format_t *restrict fmt, aout_filters_cfg_t *filters_cfg)
Starts an audio output stream.
Definition: output.c:516
static int var_Copy(vlc_object_t *src, const char *name, vlc_value_t prev, vlc_value_t value, void *data)
Definition: output.c:57
int aout_volume_Amplify(aout_volume_t *, block_t *)
Applies replay gain and software volume to an audio buffer.
Definition: volume.c:132
static bool IsEscapeNeeded(char c)
Definition: chain.c:44
#define VLC_VAR_SETVALUE
Set the value of this variable without triggering any callbacks.
Definition: vlc_variables.h:87
config_chain_t * p_next
Pointer on the next config_chain_t element.
Definition: vlc_configuration.h:158
#define AOUT_VAR_CHAN_RIGHT
Definition: vlc_aout.h:96
#define INTERLEAVE_TYPE(type)
void aout_OutputFlush(audio_output_t *aout, bool wait)
Flushes or drains the audio output buffers.
Definition: output.c:649
#define VLC_VAR_CLEARCHOICES
Definition: vlc_variables.h:98
#define AUDIO_REPLAY_GAIN_MAX
audio replay gain description
Definition: vlc_es.h:53
#define var_SetBool(a, b, c)
Definition: vlc_variables.h:257
static int aout_OutputTryLock(audio_output_t *aout)
Definition: output.c:680
static void aout_VolumeNotify(audio_output_t *aout, float volume)
Supply or update the current custom ("hardware") volume.
Definition: output.c:85
bool discontinuity
Definition: aout_internal.h:83
int vlc_mutex_trylock(vlc_mutex_t *p_mutex)
Tries to acquire a mutex.
Definition: thread.c:129
static unsigned aout_FormatNbChannels(const audio_sample_format_t *fmt)
Definition: vlc_aout.h:280
int strcasecmp(const char *, const char *)
static void aout_FiltersPipelineDestroy(filter_t *const *filters, unsigned n)
Destroys a chain of audio filters.
Definition: filters.c:111
aout_volume_t * aout_volume_New(vlc_object_t *parent, const audio_replay_gain_t *gain)
Creates a software amplifier.
Definition: volume.c:52
int config_LoadCmdLine(vlc_object_t *p_this, int i_argc, const char *ppsz_argv[], int *pindex)
Parse command line for configuration options.
Definition: cmdline.c:58
int vlc_getopt_long(int argc, char *const *argv, const char *optstring, const struct vlc_option *restrict longopts, int *longind, vlc_getopt_t *restrict state)
Definition: getopt.c:145
char * name
Definition: output.c:42
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 thei...
Definition: common.c:459
#define VLC_VAR_SETTEXT
Definition: vlc_variables.h:89
Definition: aout_internal.h:49
#define CONFIG_ITEM_FLOAT
Definition: vlc_plugin.h:120
Definition: vlc_aout.h:191
#define CONFIG_ITEM_STRING
Definition: vlc_plugin.h:124
#define AOUT_DEC_CHANGED
Definition: aout_internal.h:149
#define AOUT_DEC_SUCCESS
Definition: aout_internal.h:148
void aout_DecFlush(audio_output_t *aout, bool wait)
Definition: dec.c:448
module_t * p_module
Definition: vlc_filter.h:70
vlc_mutex_t lock
Definition: aout_internal.h:51
#define VLC_VAR_DOINHERIT
Creation flag.
Definition: vlc_variables.h:69
const char ** list_text
Definition: vlc_configuration.h:89
#define VLC_CODEC_U24B
Definition: vlc_fourcc.h:496
static block_t * filter_DrainAudio(filter_t *p_filter)
This function will drain, then flush an audio filter.
Definition: vlc_filter.h:192
#define var_TriggerCallback(a, b)
Definition: vlc_variables.h:166
#define AOUT_RESTART_STEREOMODE
Definition: vlc_aout.h:231
int opt
Definition: vlc_getopt.h:66
#define VLC_CODEC_S32N
Definition: vlc_fourcc.h:584
size_t i_buffer
Payload length.
Definition: vlc_block.h:116
#define msg_Info(p_this,...)
Definition: vlc_messages.h:80
#define AOUT_CHAN_CENTER
Definition: vlc_es.h:118
VLC plugin.
Definition: modules.h:32
aout_request_vout_t request_vout
Definition: aout_internal.h:91
#define AOUT_RESTART_OUTPUT
Definition: vlc_aout.h:230
aout_filters_t * filters
Definition: aout_internal.h:53
int(* time_get)(audio_output_t *, mtime_t *delay)
Estimates playback buffer latency (optional, may be NULL).
Definition: vlc_aout.h:131
mtime_t i_dts
Definition: vlc_block.h:124
#define config_LoadCmdLine(a, b, c, d)
Definition: configuration.h:36
#define AUDIO_REPLAY_GAIN_TRACK
Definition: vlc_es.h:54
#define var_DecInteger(a, b)
Definition: vlc_variables.h:393
#define VLC_VAR_ADDCHOICE
Definition: vlc_variables.h:96
audio_replay_gain_t replay_gain
Definition: volume.c:57
void aout_FormatPrepare(audio_sample_format_t *p_format)
Definition: common.c:86
Definition: aout_internal.h:39
#define AOUT_CHAN_REARCENTER
Definition: vlc_es.h:121
int(* gain_request)(audio_output_t *, float)
Definition: vlc_aout.h:184
void aout_RequestRestart(audio_output_t *, unsigned)
Marks the audio output for restart, to update any parameter of the output plug-in (e....
Definition: dec.c:197
#define aout_volume_New(o, g)
Definition: aout_internal.h:115
static void aout_FiltersPipelineFlush(filter_t *const *filters, unsigned count)
Flush the chain of filters.
Definition: filters.c:327
int config_GetType(const char *psz_name)
Definition: core.c:52
void aout_OutputPause(audio_output_t *aout, bool pause, mtime_t date)
Notifies the audio output (if any) of pause/resume events.
Definition: output.c:635
struct filter_owner_sys_t filter_owner_sys_t
Definition: vlc_filter.h:39
static int VisualizationCallback(vlc_object_t *obj, const char *var, vlc_value_t oldval, vlc_value_t newval, void *data)
Callback for visualization selection.
Definition: filters.c:357
#define INPUT_CHAN_MAX
Definition: vlc_es.h:156
void * p_address
Definition: vlc_common.h:331
#define var_InheritBool(o, n)
Definition: vlc_variables.h:601
void aout_volume_Delete(aout_volume_t *)
Destroys a software amplifier.
Definition: volume.c:107
bool module_exists(const char *psz_name)
Tell if a module exists.
Definition: modules.c:415
#define AOUT_MAX_FILTERS
Definition: filters.c:342
es_format_t fmt_in
Definition: vlc_filter.h:74
#define VLC_VAR_BOOL
Definition: vlc_variables.h:49
struct audio_output::@142 event
char * psz_name
Option name.
Definition: vlc_configuration.h:160
Definition: aout_internal.h:34
float pf_peak[(2)]
Definition: vlc_es.h:61
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:86
void aout_FiltersChangeViewpoint(aout_filters_t *filters, const vlc_viewpoint_t *vp)
Definition: filters.c:777
#define _(str)
Definition: vlc_fixups.h:371
#define AOUT_VOLUME_DEFAULT
Definition: vlc_aout.h:292
static void ExtractChannel(uint8_t *pi_dst, int i_dst_channels, const uint8_t *pi_src, int i_src_channels, int i_sample_count, const int *pi_selection, int i_bytes)
Definition: common.c:427
#define AOUT_VAR_CHAN_STEREO
Definition: vlc_aout.h:93
int ind
Definition: vlc_getopt.h:62
void aout_ChangeViewpoint(audio_output_t *aout, const vlc_viewpoint_t *p_viewpoint)
Definition: dec.c:469
static block_t * aout_FiltersPipelineDrain(filter_t *const *filters, unsigned count)
Drain the chain of filters.
Definition: filters.c:296
static int aout_FiltersPipelineCreate(vlc_object_t *obj, filter_t **filters, unsigned *count, unsigned max, const audio_sample_format_t *restrict infmt, const audio_sample_format_t *restrict outfmt, bool headphones)
Allocates audio format conversion filters.
Definition: filters.c:147
#define VLC_CODEC_S32B
Definition: vlc_fourcc.h:500
#define AUDIO_REPLAY_GAIN_ALBUM
Definition: vlc_es.h:55
unsigned resamp_start_drift
Resampler drift absolute value.
Definition: aout_internal.h:81
void aout_Interleave(void *restrict dst, const void *const *srcv, unsigned samples, unsigned chans, vlc_fourcc_t fourcc)
Interleaves audio samples within a block of samples.
Definition: common.c:363
#define VLC_CODEC_S24L32
Definition: vlc_fourcc.h:497
vlc_fourcc_t format
Audio samples format.
Definition: vlc_aout_volume.h:49
unsigned count
Number of filters.
Definition: filters.c:351
Viewpoints.
Definition: vlc_viewpoint.h:44
vout_thread_t * aout_filter_RequestVout(filter_t *filter, vout_thread_t *vout, const video_format_t *fmt)
Definition: filters.c:383
static void aout_InputRequestRestart(audio_output_t *aout)
Definition: aout_internal.h:161
bool has_arg
Definition: vlc_getopt.h:93
void aout_Deinterleave(void *restrict dst, const void *restrict src, unsigned samples, unsigned chans, vlc_fourcc_t fourcc)
Deinterleaves audio samples within a block of samples.
Definition: common.c:399
#define VLC_VAR_ADDRESS
Definition: vlc_variables.h:53
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:162
module_config_t * config_FindConfig(const char *name)
Definition: core.c:514
#define vlc_dialog_display_error(a, b, c,...)
Definition: vlc_dialog.h:72
#define var_Get(a, b, c)
Definition: vlc_variables.h:136
void aout_volume_Delete(aout_volume_t *vol)
Destroys a software amplifier.
Definition: volume.c:107
#define CONFIG_CLASS(x)
Definition: configuration.h:43
static const char * ChainGetEnd(const char *psz_string)
This function will return a pointer after the end of a string element.
Definition: chain.c:70
#define VLC_VAR_INTEGER
Definition: vlc_variables.h:50
#define VLC_VAR_STRING
Definition: vlc_variables.h:51
#define AOUT_DEC_FAILED
Definition: aout_internal.h:150
char id[1]
Definition: output.c:43
#define VLC_VAR_FLOAT
Definition: vlc_variables.h:52
#define AOUT_FILTERS_CFG_INIT
Definition: vlc_aout.h:379
static int aout_OutputMuteSet(audio_output_t *aout, bool mute)
Definition: output.c:661
static void filter_Flush(filter_t *p_filter)
Flush a filter.
Definition: vlc_filter.h:176
int val
Definition: vlc_getopt.h:95
#define VLC_CODEC_ALAW
Definition: vlc_fourcc.h:508
static aout_owner_t * aout_owner(audio_output_t *aout)
Definition: aout_internal.h:105
#define var_InheritString(o, n)
Definition: vlc_variables.h:639
static int aout_OutputDeviceSet(audio_output_t *aout, const char *id)
Definition: output.c:667
void * p_private
Definition: aout_internal.h:43
bool config_IsSafe(const char *)
Definition: core.c:77
char * vlc_gettext(const char *msgid)
In-tree plugins share their gettext domain with LibVLC.
Definition: textdomain.c:89
int asprintf(char **, const char *,...)
bool config_dirty
Definition: core.c:41
vlc_atomic_float gain_factor
Definition: volume.c:58
struct audio_output::@141 current_sink_info
Current sink informations set by the module from the start() function.
mtime_t i_pts
Definition: vlc_block.h:123
int64_t i_int
Definition: vlc_common.h:327
#define var_Create(a, b, c)
Definition: vlc_variables.h:121
#define var_DelCallback(a, b, c, d)
Definition: vlc_variables.h:165
#define VLC_CODEC_F32L
Definition: vlc_fourcc.h:503
static void aout_FiltersPipelineChangeViewpoint(filter_t *const *filters, unsigned count, const vlc_viewpoint_t *vp)
Definition: filters.c:334
char * strndup(const char *, size_t)
#define VLC_VAR_SETMINMAX
Definition: vlc_variables.h:102
static bool IsSpace(char c)
Definition: chain.c:54
#define AOUT_VAR_CHAN_HEADPHONES
Definition: vlc_aout.h:98
#define VLC_CODEC_S24B32
Definition: vlc_fourcc.h:498
int aout_OutputNew(audio_output_t *, audio_sample_format_t *, aout_filters_cfg_t *filters_cfg)
es_format_t fmt_out
Definition: vlc_filter.h:77
struct aout_owner_t::@6 req
vlc_fourcc_t vlc_fourcc_GetCodec(int cat, vlc_fourcc_t fourcc)
It returns the codec associated to a fourcc within an ES category.
Definition: fourcc.c:113
mtime_t i_length
Definition: vlc_block.h:125
void aout_OutputFlush(audio_output_t *p_aout, bool)
Flushes or drains the audio output buffers.
Definition: output.c:649
#define AOUT_FMT_LINEAR(p_format)
Definition: vlc_aout.h:73
#define VLC_CODEC_U32L
Definition: vlc_fourcc.h:501
#define AOUT_VAR_CHAN_UNSET
Definition: vlc_aout.h:92
#define var_GetFloat(a, b)
Definition: vlc_variables.h:657
int initial_stereo_mode
Initial stereo mode set by options.
Definition: aout_internal.h:86
int config_SortConfig(void)
Index the configuration items by name for faster lookups.
Definition: core.c:467
vlc_object_t * parent
Parent object.
Definition: vlc_common.h:448
void aout_DecGetResetStats(audio_output_t *aout, unsigned *restrict lost, unsigned *restrict played)
Definition: dec.c:422
#define CLOCK_FREQ
Definition: vlc_config.h:45
Definition: filters.c:344
char * arg
Definition: vlc_getopt.h:48
void aout_FormatPrint(vlc_object_t *obj, const char *psz_text, const audio_sample_format_t *p_format)
Prints an audio sample format in a human-readable form.
Definition: common.c:226
void aout_OutputUnlock(audio_output_t *)
Definition: output.c:687
#define VLC_CODEC_S16N
Definition: vlc_fourcc.h:580
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:84
Audio output object.
Definition: vlc_aout.h:114
bool b_bool
Definition: vlc_common.h:328
struct vlc_common_members obj
Definition: vlc_aout_volume.h:47
#define VLC_CODEC_U16B
Definition: vlc_fourcc.h:491
#define vlc_object_release(a)
Definition: vlc_objects.h:63
#define AOUT_CHAN_MIDDLELEFT
Definition: vlc_es.h:124
char * config_StringEscape(const char *str)
This function will escape a string that can be unescaped by config_StringUnescape.
Definition: chain.c:473
#define AOUT_FMTS_IDENTICAL(p_first, p_second)
Definition: vlc_aout.h:62
void(* pause)(audio_output_t *, bool pause, mtime_t date)
Pauses or resumes playback (optional, may be NULL).
Definition: vlc_aout.h:142
atomic_uint_least32_t vlc_atomic_float
Definition: vlc_atomic.h:194
static void aout_HotplugNotify(audio_output_t *aout, const char *id, const char *name)
Definition: output.c:105
void aout_DecChangePause(audio_output_t *aout, bool paused, mtime_t date)
Definition: dec.c:431
#define DEINTERLEAVE_TYPE(type)
Definition: vlc_configuration.h:155
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.
Definition: common.c:441
int i_type
Definition: httpd.c:1250
#define AOUT_CHANMODE_DOLBYSTEREO
Definition: vlc_es.h:160
vlc_plugin_t * vlc_plugins
List of all plug-ins.
Definition: bank.c:101
static void aout_SetWavePhysicalChannels(audio_sample_format_t *fmt)
Definition: aout_internal.h:166
#define AOUT_CHAN_LFE
Definition: vlc_es.h:126
float aout_VolumeGet(audio_output_t *aout)
Gets the volume of the audio output stream (independent of mute).
Definition: output.c:727
int config_AutoSaveConfigFile(vlc_object_t *)
Definition: file.c:522
void aout_OutputUnlock(audio_output_t *aout)
Definition: output.c:687
struct vout_thread_t *(* pf_request_vout)(void *, struct vout_thread_t *, const video_format_t *, bool)
Definition: aout_internal.h:41
Internal module descriptor.
Definition: modules.h:79
static void block_ChainAppend(block_t **pp_list, block_t *p_block)
Definition: vlc_block.h:312
#define VLC_TS_INVALID
Definition: vlc_config.h:42
static const char unset_str[1]
Definition: output.c:37
Structure describing a filter.
Definition: vlc_filter.h:65
module_value_t max
Definition: vlc_configuration.h:78
float f_float
Definition: vlc_common.h:329
char * config_StringUnescape(char *psz_string)
This function will unescape a string in place and will return a pointer on the given string.
Definition: chain.c:455
bool pb_peak[(2)]
Definition: vlc_es.h:59
#define AOUT_MAX_ADVANCE_TIME
Definition: vlc_aout.h:38
audio_output_t * aout_New(vlc_object_t *parent)
Creates an audio output object and initializes an output module.
Definition: output.c:196
void aout_OutputDelete(audio_output_t *p_aout)
Stops the audio output stream (undoes aout_OutputNew()).
Definition: output.c:586
void * sys
Definition: vlc_filter.h:43
uint32_t i_flags
Definition: vlc_block.h:120
#define var_Set(a, b, c)
Definition: vlc_variables.h:133
static void aout_DeviceNotify(audio_output_t *aout, const char *id)
Definition: output.c:100
void vlc_assert_locked(vlc_mutex_t *p_mutex)
Definition: thread.c:117
static block_t * aout_FiltersPipelinePlay(filter_t *const *filters, unsigned count, block_t *block)
Filters an audio buffer through a chain of filters.
Definition: filters.c:277
int resamp_type
Resampler mode (FIXME: redundant / resampling)
Definition: aout_internal.h:82
void(* flush)(audio_output_t *, bool wait)
Flushes or drains the playback buffers (mandatory, cannot be NULL).
Definition: vlc_aout.h:148
static void aout_StopResampling(audio_output_t *aout)
Definition: dec.c:208
static char * ChainGetValue(const char **ppsz_string)
It will extract an option value (=...
Definition: chain.c:118
#define SKIPTRAILINGSPACE(p, e)
Definition: chain.c:60
bool headphones
Default to false, set it to true if the current sink is using headphones.
Definition: vlc_aout.h:173
char * psz_value
Option value.
Definition: vlc_configuration.h:161
#define VLC_CODEC_U16L
Definition: vlc_fourcc.h:490
signed char mute
Definition: aout_internal.h:61
int aout_MuteSet(audio_output_t *aout, bool mute)
Sets the audio output stream mute flag.
Definition: output.c:791
#define var_SetFloat(a, b, c)
Definition: vlc_variables.h:258
unsigned i_nb_samples
Definition: vlc_block.h:121
#define vlc_object_set_destructor(a, b)
Definition: libvlc.h:120
static void aout_Destructor(vlc_object_t *p_this)
Destroys the audio output lock used (asynchronously) by interface functions.
Definition: output.c:383
static void aout_RestartRequest(audio_output_t *aout, unsigned mode)
Definition: vlc_aout.h:358
void config_Free(module_config_t *, size_t)
Destroys an array of configuration items.
Definition: core.c:529
static void block_Release(block_t *block)
Releases a block.
Definition: vlc_block.h:181
block_t *(* pf_audio_filter)(filter_t *, block_t *)
Filter an audio block (audio filter)
Definition: vlc_filter.h:91
static void aout_DecSynchronize(audio_output_t *aout, mtime_t dec_pts, int input_rate)
Definition: dec.c:236
int resampling
Current resampling (Hz)
Definition: filters.c:349
void aout_DecDelete(audio_output_t *aout)
Stops all plugins involved in the audio output.
Definition: dec.c:124
void aout_OutputPlay(audio_output_t *, block_t *)
Plays a decoded audio buffer.
Definition: output.c:608
static block_t * block_ChainGather(block_t *p_list)
Definition: vlc_block.h:388
int(* device_select)(audio_output_t *, const char *id)
Selects an audio output device (optional, may be NULL).
Definition: vlc_aout.h:165
mtime_t end
Last seen PTS.
Definition: aout_internal.h:80
static int StereoModeCallback(vlc_object_t *obj, const char *varname, vlc_value_t oldval, vlc_value_t newval, void *data)
Definition: output.c:173
static int AppendRemapFilter(vlc_object_t *obj, aout_filters_t *restrict filters, audio_sample_format_t *restrict infmt, const audio_sample_format_t *restrict outfmt, const int *wg4_remap)
Definition: filters.c:438
#define CONFIG_ITEM_INTEGER
Definition: vlc_plugin.h:121
#define VLC_CODEC_S32L
Definition: vlc_fourcc.h:499
void(* hotplug_report)(audio_output_t *, const char *, const char *)
Definition: vlc_aout.h:183
const char * psz_name
Definition: vlc_codecs.h:315
#define AOUT_MAX_INPUT_RATE
Definition: aout_internal.h:31
audio_volume_t object
Definition: volume.c:56
int aout_volume_SetFormat(aout_volume_t *vol, vlc_fourcc_t format)
Selects the current sample format for software amplification.
Definition: volume.c:80
static void aout_MuteNotify(audio_output_t *aout, bool mute)
Definition: output.c:90
Definition: vlc_getopt.h:90
void(* play)(audio_output_t *, block_t *)
Queues a block of samples for playback (mandatory, cannot be NULL).
Definition: vlc_aout.h:138
static int aout_OutputVolumeSet(audio_output_t *aout, float vol)
Definition: output.c:655
#define AOUT_CHAN_MAX
Definition: vlc_es.h:154
void vlc_mutex_init(vlc_mutex_t *p_mutex)
Initializes a fast mutex.
Definition: thread.c:85
float pf_gain[(2)]
Definition: vlc_es.h:66
struct aout_owner_t::@9 sync
char * psz_string
Definition: vlc_common.h:330
const char * aout_FormatPrintChannels(const audio_sample_format_t *p_format)
Definition: common.c:103
aout_dev_t * list
Definition: aout_internal.h:67
void aout_volume_SetVolume(aout_volume_t *vol, float factor)
Definition: volume.c:121
#define var_GetInteger(a, b)
Definition: vlc_variables.h:655
bool headphones
If true, a filter will be inserted to add a headphones effect (like a binauralizer audio filter).
Definition: vlc_aout.h:376
aout_dev_t * next
Definition: output.c:41
filter_t * resampler
The resampler.
Definition: filters.c:348
int aout_OutputTimeGet(audio_output_t *aout, mtime_t *delay)
Definition: output.c:594
#define var_SetInteger(a, b, c)
Definition: vlc_variables.h:256
void(* stop)(audio_output_t *)
Stops the existing stream (optional, may be NULL).
Definition: vlc_aout.h:127
void aout_OutputPlay(audio_output_t *aout, block_t *block)
Plays a decoded audio buffer.
Definition: output.c:608
void(* amplify)(audio_volume_t *, block_t *, float)
Amplifier.
Definition: vlc_aout_volume.h:50
#define AOUT_VAR_CHAN_MONO
Definition: vlc_aout.h:99
int aout_DecPlay(audio_output_t *aout, block_t *block, int input_rate)
Definition: dec.c:356
#define static_assert
Definition: vlc_fixups.h:367
static filter_t * FindResampler(vlc_object_t *obj, const audio_sample_format_t *infmt, const audio_sample_format_t *outfmt)
Definition: filters.c:100
#define AOUT_CHAN_REARRIGHT
Definition: vlc_es.h:123
void aout_FiltersDelete(vlc_object_t *obj, aout_filters_t *filters)
Destroys a chain of audio filters.
Definition: filters.c:672
block_t * aout_FiltersDrain(aout_filters_t *filters)
Definition: filters.c:737
#define aout_FormatsPrint(o, t, a, b)
Definition: aout_internal.h:142
#define AOUT_CHAN_LEFT
Definition: vlc_es.h:119
int(* volume_set)(audio_output_t *, float volume)
Changes playback volume (optional, may be NULL).
Definition: vlc_aout.h:154
#define VLC_CODEC_S8
Definition: vlc_fourcc.h:485
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.
Definition: common.c:239
char * config_ChainCreate(char **ppsz_name, config_chain_t **pp_cfg, const char *psz_chain)
This function will parse a configuration string (psz_string) and.
Definition: chain.c:225
#define aout_FiltersDelete(o, f)
Definition: vlc_aout.h:395
aout_volume_t * volume
Definition: aout_internal.h:54
#define VLC_CODEC_F64L
Definition: vlc_fourcc.h:505
#define CONFIG_ITEM_BOOL
Definition: vlc_plugin.h:123
int remap[AOUT_CHANIDX_MAX]
If the remap order differs from the WG4 order, a remap audio filter will be inserted to remap channel...
Definition: vlc_aout.h:371
#define aout_FiltersNew(o, inf, outf, rv, remap)
Definition: vlc_aout.h:392
static void aout_DecSilence(audio_output_t *aout, mtime_t length, mtime_t pts)
Definition: dec.c:216
#define AOUT_VAR_CHAN_LEFT
Definition: vlc_aout.h:95
#define likely(p)
Definition: vlc_common.h:113
void config_UnsortConfig(void)
Definition: core.c:501
#define AOUT_MAX_PTS_ADVANCE
Maximum advance of actual audio playback time to coded PTS, above which downsampling will be performe...
Definition: vlc_aout.h:51
void aout_OutputLock(audio_output_t *)
Definition: output.c:673
static void vlc_atomic_store_float(vlc_atomic_float *atom, float f)
Helper to store a single precision into an atom.
Definition: vlc_atomic.h:212
config_chain_t * config_ChainDuplicate(const config_chain_t *p_src)
This function will duplicate a linked list of config_chain_t.
Definition: chain.c:435
void(* restart_request)(audio_output_t *, unsigned)
Definition: vlc_aout.h:185
The main vlc_object_t structure.
Definition: vlc_objects.h:39
static int AppendFilter(vlc_object_t *obj, const char *type, const char *name, aout_filters_t *restrict filters, const void *owner, audio_sample_format_t *restrict infmt, const audio_sample_format_t *restrict outfmt, config_chain_t *cfg)
Definition: filters.c:400
int aout_volume_SetFormat(aout_volume_t *, vlc_fourcc_t)
Selects the current sample format for software amplification.
Definition: volume.c:80
#define VLC_CODEC_F32B
Definition: vlc_fourcc.h:504
Definition: vlc_configuration.h:60
#define var_GetNonEmptyString(a, b)
Definition: vlc_variables.h:659
unsigned b_removed
Definition: vlc_configuration.h:68
#define AOUT_VAR_CHAN_DOLBYS
Definition: vlc_aout.h:97
static filter_t * TryFormat(vlc_object_t *obj, vlc_fourcc_t codec, audio_sample_format_t *restrict fmt)
Definition: filters.c:122
#define VLC_UNUSED(x)
Definition: vlc_common.h:912
static int ReplayGainCallback(vlc_object_t *, char const *, vlc_value_t, vlc_value_t, void *)
Definition: volume.c:194
#define VLC_CODEC_U24L
Definition: vlc_fourcc.h:495
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:349
void(* policy_report)(audio_output_t *, bool)
Definition: vlc_aout.h:181
void aout_OutputPause(audio_output_t *p_aout, bool, mtime_t)
Notifies the audio output (if any) of pause/resume events.
Definition: output.c:635
#define FREENULL(a)
Definition: vlc_common.h:766
char * strdup(const char *)
module_value_t min
Definition: vlc_configuration.h:77
audio_sample_format_t input_format
Definition: aout_internal.h:88
char psz_value[8]
Definition: vout_intf.c:91
union module_config_t::@147 list
bool aout_FiltersCanResample(aout_filters_t *filters)
Definition: filters.c:682
#define AOUT_CHANS_7_1
Definition: vlc_es.h:144
#define var_InheritFloat(o, n)
Definition: vlc_variables.h:623
bool aout_FiltersCanResample(aout_filters_t *filters)
Definition: filters.c:682
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:108
Definition: vlc_aout.h:193
void(* mute_report)(audio_output_t *, bool)
Definition: vlc_aout.h:180
struct aout_owner_t::@8 vp
#define SKIPSPACE(p)
Definition: chain.c:59
const char name[16]
Definition: httpd.c:1249
#define VLC_CODEC_U32B
Definition: vlc_fourcc.h:502
int aout_MuteGet(audio_output_t *aout)
Gets the audio output stream mute flag.
Definition: output.c:782
module_t * module
Definition: volume.c:60
#define VLC_CODEC_FL64
Definition: vlc_fourcc.h:587
static const uint32_t pi_vlc_chan_order_wg4[]
It describes the audio channel order VLC expect.
Definition: vlc_aout.h:221
bool config_PrintHelp(vlc_object_t *)
Checks for help command line options such as –help or –version.
Definition: help.c:94
#define VLC_CODEC_S16L
Definition: vlc_fourcc.h:487
audio_sample_format_t mixer_format
Definition: aout_internal.h:89
#define VLC_CODEC_S16B
Definition: vlc_fourcc.h:489
int aout_DecNew(audio_output_t *p_aout, const audio_sample_format_t *p_format, const audio_replay_gain_t *p_replay_gain, const aout_request_vout_t *p_request_vout)
Creates an audio output.
Definition: dec.c:43
pthread_rwlock_t vlc_rwlock_t
Read/write lock.
Definition: vlc_threads.h:304
#define VLC_CODEC_S24L
Definition: vlc_fourcc.h:493
char * aout_DeviceGet(audio_output_t *aout)
Gets the currently selected device.
Definition: output.c:809
static filter_t * FindConverter(vlc_object_t *obj, const audio_sample_format_t *infmt, const audio_sample_format_t *outfmt)
Definition: filters.c:92
static int aout_GainNotify(audio_output_t *aout, float gain)
Definition: output.c:154
#define VLC_TS_0
Definition: vlc_config.h:43
int64_t i
Definition: vlc_configuration.h:51
#define VLC_CODEC_MULAW
Definition: vlc_fourcc.h:509
void vlc_mutex_destroy(vlc_mutex_t *p_mutex)
Deinitializes a mutex.
Definition: thread.c:110
static int ViewpointCallback(vlc_object_t *obj, const char *var, vlc_value_t prev, vlc_value_t cur, void *data)
Definition: output.c:183
float f
Definition: vlc_configuration.h:52
int(* mute_set)(audio_output_t *, bool mute)
Changes muting (optinal, may be NULL).
Definition: vlc_aout.h:160
int aout_DeviceSet(audio_output_t *aout, const char *id)
Selects an audio output device.
Definition: output.c:819
#define var_SetString(a, b, c)
Definition: vlc_variables.h:259
static int FilterOrder(const char *psz_name)
Definition: common.c:519
bool aout_FiltersAdjustResampling(aout_filters_t *filters, int adjust)
Definition: filters.c:687
unsigned int aout_BitsPerSample(vlc_fourcc_t i_format)
Definition: common.c:41
atomic_uint buffers_played
Definition: aout_internal.h:95
vlc_rwlock_t config_lock
Definition: core.c:40
long long int strtoll(const char *, char **, int)
block_t * aout_FiltersPlay(aout_filters_t *filters, block_t *block, int rate)
Definition: filters.c:699
void aout_FiltersFlush(aout_filters_t *filters)
Definition: filters.c:769
void vlc_mutex_unlock(vlc_mutex_t *p_mutex)
Releases a mutex.
Definition: thread.c:138
#define unlikely(p)
Definition: vlc_common.h:114
void aout_ChannelReorder(void *ptr, size_t bytes, uint8_t channels, const uint8_t *restrict chans_table, vlc_fourcc_t fourcc)
Reorders audio samples within a block of linear audio interleaved samples.
Definition: common.c:297
uint16_t list_count
Definition: vlc_configuration.h:81
#define var_GetString(a, b)
Definition: vlc_variables.h:658
atomic_uchar restart
Definition: aout_internal.h:96
int config_CreateDir(vlc_object_t *, const char *)
Definition: file.c:263
#define var_AddCallback(a, b, c, d)
Definition: vlc_variables.h:164
block_t * block_Alloc(size_t size)
Allocates a block.
Definition: block.c:119
uint8_t i_type
Definition: vlc_configuration.h:62
Definition: aout_internal.h:36
const char ** psz
Definition: vlc_configuration.h:84
static void aout_PrepareStereoMode(audio_output_t *aout, audio_sample_format_t *restrict fmt, aout_filters_cfg_t *filters_cfg, audio_channel_type_t input_chan_type, unsigned i_nb_input_channels, int i_forced_stereo_mode)
Definition: output.c:402
void aout_volume_SetVolume(aout_volume_t *, float)
Definition: volume.c:121
#define AOUT_CHAN_REARLEFT
Definition: vlc_es.h:122
char * device
Definition: aout_internal.h:59
static void filter_ChangeViewpoint(filter_t *p_filter, const vlc_viewpoint_t *vp)
Definition: vlc_filter.h:182
static void aout_OutputAssertLocked(audio_output_t *aout)
Definition: output.c:48
int(* start)(audio_output_t *, audio_sample_format_t *fmt)
Starts a new stream (mandatory, cannot be NULL).
Definition: vlc_aout.h:120
#define REORDER_TYPE(type)
filter_t * rate_filter
The filter adjusting samples count (either the scaletempo filter or a resampler)
Definition: filters.c:346
void aout_Destroy(audio_output_t *aout)
Deinitializes an audio output module and destroys an audio output object.
Definition: output.c:358
atomic_bool update
Definition: aout_internal.h:73
static float vlc_atomic_load_float(vlc_atomic_float *atom)
Helper to retrieve a single precision from an atom.
Definition: vlc_atomic.h:204
#define vlc_assert_unreachable()
Definition: vlc_common.h:118
int aout_OutputTimeGet(audio_output_t *, mtime_t *)
Definition: output.c:594
int aout_volume_Amplify(aout_volume_t *vol, block_t *block)
Applies replay gain and software volume to an audio buffer.
Definition: volume.c:132
int64_t mtime_t
High precision date or time interval.
Definition: vlc_common.h:150
char i_short
Definition: vlc_configuration.h:63
static void aout_PolicyNotify(audio_output_t *aout, bool cork)
Definition: output.c:95
uint8_t * p_buffer
Payload start.
Definition: vlc_block.h:115
#define AOUT_VAR_CHAN_RSTEREO
Definition: vlc_aout.h:94
void(* volume_report)(audio_output_t *, float)
Definition: vlc_aout.h:179
char * strsep(char **, const char *)
static filter_t * CreateFilter(vlc_object_t *obj, const char *type, const char *name, filter_owner_sys_t *owner, const audio_sample_format_t *infmt, const audio_sample_format_t *outfmt, config_chain_t *cfg, bool const_fmt)
Definition: filters.c:45
static void vlc_viewpoint_init(vlc_viewpoint_t *p_vp)
Definition: vlc_viewpoint.h:51
Video output thread descriptor.
Definition: vlc_vout.h:70
int aout_VolumeSet(audio_output_t *aout, float vol)
Sets the volume of the audio output stream.
Definition: output.c:737
static bool IsEscape(const char *psz)
Definition: chain.c:48
#define BLOCK_FLAG_DISCONTINUITY
The content doesn't follow the last block, possible some blocks in between have been lost.
Definition: vlc_block.h:66
Definition: vlc_aout.h:365
void aout_ChangeViewpoint(audio_output_t *aout, const vlc_viewpoint_t *p_viewpoint)
Definition: dec.c:469
double us_atof(const char *str)
us_atof() has the same prototype as ANSI C atof() but it expects a dot as decimal separator,...
Definition: charset.c:87
static int aout_CheckReady(audio_output_t *aout)
Definition: dec.c:139
int aout_DevicesList(audio_output_t *aout, char ***ids, char ***names)
Enumerates possible audio output devices.
Definition: output.c:853
Definition: vlc_aout.h:192
aout_filters_t * aout_FiltersNew(vlc_object_t *obj, const audio_sample_format_t *restrict infmt, const audio_sample_format_t *restrict outfmt, const aout_request_vout_t *request_vout, const aout_filters_cfg_t *cfg)
Sets a chain of audio filters up.
Definition: filters.c:500
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:948
mtime_t mdate(void)
Precision monotonic clock.
Definition: thread.c:406
void aout_OutputDelete(audio_output_t *aout)
Stops the audio output stream (undoes aout_OutputNew()).
Definition: output.c:586
vlc_viewpoint_t value
Definition: aout_internal.h:75
#define module_unneed(a, b)
Definition: vlc_modules.h:49
void config_ChainParse(vlc_object_t *p_this, const char *psz_prefix, const char *const *ppsz_options, config_chain_t *cfg)
This function will.
Definition: chain.c:270
#define AOUT_CHANS_STEREO
Definition: vlc_es.h:133
Definition: vlc_getopt.h:24
static float aout_ReplayGainSelect(vlc_object_t *obj, const char *str, const audio_replay_gain_t *replay_gain)
Definition: volume.c:145
#define config_LoadConfigFile(a)
Definition: configuration.h:37
int * flag
Definition: vlc_getopt.h:94
Definition: aout_internal.h:99
struct vlc_common_members obj
Definition: vlc_aout.h:116
void(* device_report)(audio_output_t *, const char *)
Definition: vlc_aout.h:182
VLC value structure.
Definition: vlc_common.h:325
#define var_IncInteger(a, b)
Definition: vlc_variables.h:378
aout_filters_cfg_t filters_cfg
Definition: aout_internal.h:92
static int var_CopyDevice(vlc_object_t *src, const char *name, vlc_value_t prev, vlc_value_t value, void *data)
Definition: output.c:66
module_t * module
Output plugin (or NULL if inactive)
Definition: aout_internal.h:52
audio_channel_type_t
Audio channel type.
Definition: vlc_es.h:73
void vlc_mutex_lock(vlc_mutex_t *p_mutex)
Acquires a mutex.
Definition: thread.c:123
int aout_VolumeUpdate(audio_output_t *aout, int value, float *volp)
Raises the volume.
Definition: output.c:756
Definition: vlc_block.h:111
void config_ChainDestroy(config_chain_t *p_cfg)
This function will release a linked list of config_chain_t (Including the head)
Definition: chain.c:253
#define msg_Err(p_this,...)
Definition: vlc_messages.h:82
bool pb_gain[(2)]
Definition: vlc_es.h:64
Definition: vlc_aout.h:201
void aout_OutputLock(audio_output_t *aout)
Definition: output.c:673
Audio volume.
Definition: vlc_aout_volume.h:45
unsigned count
Definition: aout_internal.h:68
#define CONFIG_ITEM(x)
Definition: vlc_plugin.h:136
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....
Definition: dec.c:197
#define AOUT_CHANMODE_DUALMONO
Definition: vlc_es.h:159
struct aout_owner_t::@7 dev
#define module_need(a, b, c, d)
Definition: vlc_modules.h:47
#define VLC_CODEC_FL32
Definition: vlc_fourcc.h:586
#define aout_FormatPrint(o, t, f)
Definition: vlc_aout.h:289
#define VLC_CODEC_U8
Definition: vlc_fourcc.h:486
float output_factor
Definition: volume.c:59
config_chain_t * p_cfg
Definition: vlc_filter.h:83
uint32_t vlc_fourcc_t
Definition: fourcc_gen.c:32
static int FilterCallback(vlc_object_t *obj, const char *var, vlc_value_t prev, vlc_value_t cur, void *data)
Definition: output.c:164
filter_owner_t owner
Definition: vlc_filter.h:151
#define VLC_CODEC_S24B
Definition: vlc_fourcc.h:494
#define var_Change(a, b, c, d, e)
Definition: vlc_variables.h:127