Go to the documentation of this file.
54 unsigned frame_rate,
unsigned frame_rate_base,
161 unsigned frame_rate,
unsigned frame_rate_base);
void aout_RequestRetiming(audio_output_t *aout, vlc_tick_t system_ts, vlc_tick_t audio_ts)
Definition: dec.c:323
void vlc_cond_broadcast(vlc_cond_t *cond)
Wakes up all threads waiting on a condition variable.
Definition: threads.c:280
static void vlc_viewpoint_init(vlc_viewpoint_t *p_vp)
Definition: vlc_viewpoint.h:48
vout_thread_t * vout_Create(vlc_object_t *object)
Creates a video output.
Definition: video_output.c:1966
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
void vlc_clock_main_SetFirstPcr(vlc_clock_main_t *main_clock, vlc_tick_t system_now, vlc_tick_t ts)
Definition: clock.c:413
static void aout_RestartNotify(audio_output_t *aout, unsigned mode)
Definition: output.c:146
unsigned aout_CheckChannelReorder(const uint32_t *chans_in, const uint32_t *chans_out, uint32_t mask, uint8_t *restrict table)
Definition: common.c:256
atomic_uint buffers_lost
Definition: aout_internal.h:100
#define VLC_CODEC_F64B
Definition: vlc_fourcc.h:564
void vlc_clock_main_Delete(vlc_clock_main_t *main_clock)
Destroy the clock main.
Definition: clock.c:473
#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:57
#define AOUT_CHAN_RIGHT
Definition: vlc_es.h:119
#define AOUT_CHAN_MIDDLERIGHT
Definition: vlc_es.h:124
size_t count
Definition: core.c:401
int input_profile
Definition: aout_internal.h:84
vlc_tick_t vlc_clock_UpdateVideo(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts, double rate, unsigned frame_rate, unsigned frame_rate_base)
This function will update the video clock drift and returns the drift.
Definition: clock.c:485
@ AOUT_RESAMPLING_UP
Definition: aout_internal.h:39
vlc_tick_t stream
Definition: clock_internal.h:58
filter_t * tab[10]
Configured user filters (e.g.
Definition: filters.c:358
void vlc_clock_main_ChangePause(vlc_clock_main_t *clock, vlc_tick_t system_now, bool paused)
This function allows changing the pause status.
Definition: clock.c:443
static int var_Copy(vlc_object_t *src, const char *name, vlc_value_t prev, vlc_value_t value, void *data)
Definition: output.c:48
int() var_Create(vlc_object_t *p_this, const char *psz_name, int i_type)
Creates a VLC object variable.
Definition: variables.c:291
int aout_volume_Amplify(aout_volume_t *, block_t *)
Applies replay gain and software volume to an audio buffer.
Definition: volume.c:133
@ VIDEO_ES
Definition: vlc_es.h:603
vlc_clock_master_source
Definition: clock.h:23
vlc_tick_t offset
Definition: clock.c:67
vlc_mutex_t lock
Definition: clock.c:51
#define VLC_VAR_SETVALUE
Set the value of this variable without triggering any callbacks.
Definition: vlc_variables.h:87
struct vlc_audio_meter meter
Definition: aout_internal.h:98
@ AUDIO_CHANNEL_TYPE_BITMAP
Definition: vlc_es.h:74
module_config_t * config_FindConfig(const char *name)
Looks up a configuration item.
Definition: core.c:452
#define AOUT_VAR_CHAN_RIGHT
Definition: vlc_aout.h:99
#define INTERLEAVE_TYPE(type)
#define VLC_VAR_CLEARCHOICES
Definition: vlc_variables.h:98
int vlc_audio_meter_Reset(struct vlc_audio_meter *meter, const audio_sample_format_t *fmt)
Set or reset the audio format.
Definition: meter.c:152
#define AUDIO_REPLAY_GAIN_MAX
audio replay gain description
Definition: vlc_es.h:52
unsigned int aout_BitsPerSample(vlc_fourcc_t i_format)
Definition: common.c:41
static bool var_InheritBool(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:675
int aout_DeviceSet(audio_output_t *aout, const char *id)
Selects an audio output device.
Definition: output.c:732
struct audio_output::@181 current_sink_info
Current sink informations set by the module from the start() function.
static vlc_tick_t vlc_clock_master_update(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t original_ts, double rate, unsigned frame_rate, unsigned frame_rate_base)
Definition: clock.c:113
static void aout_VolumeNotify(audio_output_t *aout, float volume)
Supply or update the current custom ("hardware") volume.
Definition: output.c:81
bool discontinuity
Definition: aout_internal.h:73
This structure holds long term moving average.
Definition: clock_internal.h:36
static unsigned aout_FormatNbChannels(const audio_sample_format_t *fmt)
Definition: vlc_aout.h:377
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:115
const char * psz_name
Definition: text_style.c:53
aout_volume_t * aout_volume_New(vlc_object_t *parent, const audio_replay_gain_t *gain)
Creates a software amplifier.
Definition: volume.c:53
void aout_RemoveMeterPlugin(audio_output_t *aout, vlc_audio_meter_plugin *plugin)
Definition: output.c:824
char * name
Definition: output.c:61
#define VLC_VAR_GETCHOICES
Definition: vlc_variables.h:99
void vlc_clock_main_SetDejitter(vlc_clock_main_t *main_clock, vlc_tick_t dejitter)
This function sets the dejitter delay to absorb the clock jitter.
Definition: clock.c:435
#define VLC_VAR_SETTEXT
Definition: vlc_variables.h:89
@ VLC_CLOCK_MASTER_AUDIO
Definition: clock.h:44
Definition: aout_internal.h:45
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
static int64_t var_DecInteger(vlc_object_t *p_obj, const char *psz_name)
Decrement an integer variable.
Definition: vlc_variables.h:487
void() var_DelCallback(vlc_object_t *p_this, const char *psz_name, vlc_callback_t pf_callback, void *p_data)
Deregisters a callback from a variable.
Definition: variables.c:854
float aout_VolumeGet(audio_output_t *aout)
Gets the volume of the audio output stream (independent of mute).
Definition: output.c:645
struct vlc_list node
Definition: output.c:60
@ AOUT_CHANIDX_DISABLE
Definition: vlc_aout.h:287
vlc_clock_t * vlc_clock_main_CreateInputMaster(vlc_clock_main_t *main_clock)
This function creates a new input master vlc_clock_t interface.
Definition: clock.c:583
#define AOUT_DEC_CHANGED
Definition: aout_internal.h:155
int vout_Request(const vout_configuration_t *cfg, vlc_video_context *vctx, input_thread_t *input)
Returns a suitable vout or release the given one.
Definition: video_output.c:2120
#define AOUT_DEC_SUCCESS
Definition: aout_internal.h:154
module_t * p_module
Definition: vlc_filter.h:220
vlc_mutex_t lock
Definition: aout_internal.h:47
#define VLC_VAR_DOINHERIT
Creation flag.
Definition: vlc_variables.h:69
const char ** list_text
Human-readable names for list values.
Definition: vlc_configuration.h:102
void aout_FiltersChangeViewpoint(aout_filters_t *filters, const vlc_viewpoint_t *vp)
Definition: filters.c:802
char * name
Definition: meter.c:52
#define VLC_CODEC_U24B
Definition: vlc_fourcc.h:554
static clock_point_t clock_point_Create(vlc_tick_t system, vlc_tick_t stream)
Definition: clock_internal.h:61
static vlc_tick_t vlc_clock_monotonic_to_system_locked(vlc_clock_t *clock, vlc_tick_t now, vlc_tick_t ts, double rate)
Definition: clock.c:226
#define vlc_mutex_assert(m)
Asserts that a mutex is locked by the calling thread.
Definition: vlc_threads.h:328
vlc_object_t * parent
Definition: vlc_aout.h:610
static block_t * filter_DrainAudio(filter_t *p_filter)
This function will drain, then flush an audio filter.
Definition: vlc_filter.h:320
const struct filter_audio_callbacks * audio
Definition: vlc_filter.h:70
#define AOUT_RESTART_STEREOMODE
Definition: vlc_aout.h:327
void vlc_clock_Delete(vlc_clock_t *clock)
This function free the resources allocated by vlc_clock*Create*()
Definition: clock.c:650
vlc_tick_t vlc_clock_SetDelay(vlc_clock_t *clock, vlc_tick_t ts_delay)
This functions change the clock delay.
Definition: clock.c:497
vlc_tick_t vlc_clock_Update(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts, double rate)
This function will update the clock drift and returns the drift.
Definition: clock.c:479
#define VLC_CODEC_S32N
Definition: vlc_fourcc.h:648
vlc_tick_t vlc_clock_SetDelay(vlc_clock_t *clock, vlc_tick_t delay)
This functions change the clock delay.
Definition: clock.c:497
size_t i_buffer
Payload length.
Definition: vlc_block.h:122
static vlc_tick_t vlc_clock_slave_update(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts, double rate, unsigned frame_rate, unsigned frame_rate_base)
Definition: clock.c:289
vlc_tick_t delay
Definition: clock.c:68
#define msg_Info(p_this,...)
Definition: vlc_messages.h:100
#define AOUT_CHAN_CENTER
Definition: vlc_es.h:117
#define module_need_var(a, b, c)
Definition: vlc_modules.h:123
vlc_tick_t vlc_clock_ConvertToSystem(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts, double rate)
This function converts a timestamp from stream to system.
Definition: clock.c:502
struct aout_owner_t::@6 dev
vlc_tick_t input_dejitter
Definition: clock.c:76
vlc_clock_t * input_master
Definition: clock.c:55
static vlc_tick_t vlc_clock_master_to_system_locked(vlc_clock_t *clock, vlc_tick_t now, vlc_tick_t ts, double rate)
Definition: clock.c:273
#define AOUT_RESTART_OUTPUT
Definition: vlc_aout.h:326
aout_filters_t * filters
Definition: aout_internal.h:49
vlc_clock_t * vlc_clock_main_CreateSlave(vlc_clock_main_t *main_clock, enum es_format_category_e cat, const struct vlc_clock_cbs *cbs, void *cbs_data)
This function creates a new slave vlc_clock_t interface.
Definition: clock.c:609
@ VLC_CLOCK_MASTER_INPUT
Definition: clock.h:45
#define AUDIO_REPLAY_GAIN_TRACK
Definition: vlc_es.h:53
#define VLC_VAR_ADDCHOICE
Definition: vlc_variables.h:96
audio_replay_gain_t replay_gain
Definition: volume.c:59
@ AUDIO_CHANNEL_TYPE_AMBISONICS
Definition: vlc_es.h:75
static vlc_tick_t vlc_tick_from_samples(int64_t samples, int samp_rate)
Definition: vlc_tick.h:101
#define AOUT_CHAN_REARCENTER
Definition: vlc_es.h:120
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:225
#define aout_volume_New(o, g)
Definition: aout_internal.h:124
static void aout_FiltersPipelineFlush(filter_t *const *filters, unsigned count)
Flush the chain of filters.
Definition: filters.c:332
static void vlc_list_init(struct vlc_list *restrict head)
Initializes an empty list head.
Definition: vlc_list.h:57
const struct vlc_clock_cbs * cbs
Definition: clock.c:76
void(* play)(audio_output_t *, block_t *block, vlc_tick_t date)
Queues a block of samples for playback (mandatory, cannot be NULL).
Definition: vlc_aout.h:199
static bool vlc_atomic_rc_dec(vlc_atomic_rc_t *rc)
Decrement the RC and return true if it reaches 0.
Definition: vlc_atomic.h:61
void aout_FiltersFlush(aout_filters_t *filters)
Definition: filters.c:794
struct vlc_audio_meter_plugin_owner owner
Definition: meter.c:57
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:363
#define INPUT_CHAN_MAX
Definition: vlc_es.h:155
void AvgUpdate(average_t *avg, double value)
Definition: clock_internal.c:50
void AvgReset(average_t *avg)
Definition: clock_internal.c:44
static char * var_GetNonEmptyString(vlc_object_t *p_obj, const char *psz_name)
Definition: vlc_variables.h:447
void * p_address
Definition: vlc_common.h:463
Definition: vlc_aout.h:117
void aout_volume_Delete(aout_volume_t *)
Destroys a software amplifier.
Definition: volume.c:108
bool aout_FiltersAdjustResampling(aout_filters_t *filters, int adjust)
Definition: filters.c:713
void() var_AddCallback(vlc_object_t *p_this, const char *psz_name, vlc_callback_t pf_callback, void *p_data)
Registers a callback for a variable.
Definition: variables.c:801
bool module_exists(const char *psz_name)
Checks if a module exists.
Definition: modules.c:332
#define AOUT_MAX_FILTERS
Definition: filters.c:347
es_format_t fmt_in
Definition: vlc_filter.h:224
#define VLC_VAR_BOOL
Definition: vlc_variables.h:49
audio_sample_format_t filter_format
Definition: aout_internal.h:91
vlc_tick_t(* update)(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts, double rate, unsigned frame_rate, unsigned frame_rate_base)
Definition: clock.c:64
Definition: clock_internal.h:55
#define MS_FROM_VLC_TICK(vtk)
Definition: vlc_tick.h:123
void vlc_clock_Reset(vlc_clock_t *clock)
This function resets the clock drift.
Definition: clock.c:492
static int64_t var_IncInteger(vlc_object_t *p_obj, const char *psz_name)
Increment an integer variable.
Definition: vlc_variables.h:473
vlc_clock_main_t * owner
Definition: clock.c:72
@ AOUT_RESAMPLING_NONE
Definition: aout_internal.h:38
aout_filters_t * aout_FiltersNewWithClock(vlc_object_t *obj, const vlc_clock_t *clock, const audio_sample_format_t *restrict infmt, const audio_sample_format_t *restrict outfmt, const aout_filters_cfg_t *cfg)
Definition: filters.c:495
float pf_peak[(2)]
Definition: vlc_es.h:60
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
vout_thread_t * vout
Definition: vout_internal.h:44
#define vlc_tick_sleep(d)
Definition: vlc_threads.h:902
static vlc_tick_t vlc_clock_master_set_delay(vlc_clock_t *clock, vlc_tick_t delay)
Definition: clock.c:198
#define _(str)
Definition: vlc_fixups.h:374
#define AOUT_VOLUME_DEFAULT
Definition: vlc_aout.h:389
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:431
static void vlc_audio_meter_OnLoudnessChanged(filter_t *filter, const struct vlc_audio_loudness *loudness)
Definition: meter.c:62
#define AOUT_VAR_CHAN_STEREO
Definition: vlc_aout.h:96
static block_t * aout_FiltersPipelineDrain(filter_t *const *filters, unsigned count)
Drain the chain of filters.
Definition: filters.c:301
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:152
static char * var_InheritString(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:705
#define VLC_CODEC_S32B
Definition: vlc_fourcc.h:558
const config_chain_t * p_cfg
Definition: vlc_filter.h:235
#define AUDIO_REPLAY_GAIN_ALBUM
Definition: vlc_es.h:54
void vlc_clock_ConvertArrayToSystem(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t *ts_array, size_t ts_count, double rate)
This functon converts an array of timestamp from stream to system.
Definition: clock.c:512
unsigned wait_sync_ref_priority
Definition: clock.c:72
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:366
#define VLC_CODEC_S24L32
Definition: vlc_fourcc.h:555
vlc_fourcc_t format
Audio samples format.
Definition: vlc_aout_volume.h:49
unsigned count
Number of filters.
Definition: filters.c:357
Viewpoints.
Definition: vlc_viewpoint.h:41
struct vlc_list * prev
Definition: vlc_list.h:45
static void aout_InputRequestRestart(audio_output_t *aout)
Definition: aout_internal.h:172
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
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:402
#define VLC_VAR_ADDRESS
Definition: vlc_variables.h:53
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:178
#define vlc_dialog_display_error(a, b, c,...)
Definition: vlc_dialog.h:73
void aout_volume_Delete(aout_volume_t *vol)
Destroys a software amplifier.
Definition: volume.c:108
#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:156
block_t * aout_FiltersPlay(aout_filters_t *filters, block_t *block, float rate)
Definition: filters.c:725
Audio meter plugin owner structure.
Definition: vlc_aout.h:594
char id[1]
Definition: output.c:62
void(* on_update)(vlc_tick_t system_ts, vlc_tick_t ts, double rate, unsigned frame_rate, unsigned frame_rate_base, void *data)
Called when a clock is updated.
Definition: clock.h:53
vlc_tick_t i_length
Definition: vlc_block.h:131
Doubly-linked list node.
Definition: vlc_list.h:43
#define VLC_VAR_FLOAT
Definition: vlc_variables.h:52
#define AOUT_FILTERS_CFG_INIT
Definition: vlc_aout.h:511
static void filter_Flush(filter_t *p_filter)
Flush a filter.
Definition: vlc_filter.h:279
vlc_tick_t system
Definition: clock_internal.h:57
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)
Definition: output.c:400
static void video_format_AdjustColorSpace(video_format_t *p_fmt)
Definition: vlc_es.h:428
#define VLC_CODEC_ALAW
Definition: vlc_fourcc.h:566
void vlc_clock_main_SetDejitter(vlc_clock_main_t *main_clock, vlc_tick_t dejitter)
This function sets the dejitter delay to absorb the clock jitter.
Definition: clock.c:435
const char * vlc_gettext(const char *msgid)
In-tree plugins share their gettext domain with LibVLC.
Definition: textdomain.c:79
static aout_owner_t * aout_owner(audio_output_t *aout)
Definition: aout_internal.h:113
void aout_DecChangeRate(audio_output_t *aout, float rate)
Definition: dec.c:544
double coeff
Definition: clock.c:66
static filter_t * vlc_audio_meter_CreatePluginFilter(struct vlc_audio_meter *meter, vlc_audio_meter_plugin *plugin)
Definition: meter.c:72
void vlc_clock_main_Abort(vlc_clock_main_t *main_clock)
Abort all the pending vlc_clock_Wait.
Definition: clock.c:395
int asprintf(char **, const char *,...)
static void vlc_clock_set_master_callbacks(vlc_clock_t *clock)
Definition: clock.c:524
int() var_Change(vlc_object_t *p_this, const char *psz_name, int i_action,...)
Performs a special action on a variable.
Definition: variables.c:423
vlc_tick_t delay
Definition: clock.c:73
void vlc_clock_Wait(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts, double rate, vlc_tick_t max_duration)
Wait for a timestamp expressed in stream time.
Definition: clock.c:340
int64_t i_int
Definition: vlc_common.h:459
static void vlc_clock_set_slave_callbacks(vlc_clock_t *clock)
Definition: clock.c:532
vlc_mutex_t lock
Definition: vlc_aout.h:609
vlc_clock_main_t * vlc_clock_main_New(void)
This function creates the vlc_clock_main_t of the program.
Definition: clock.c:362
Mutex.
Definition: vlc_threads.h:225
#define VLC_CODEC_F32L
Definition: vlc_fourcc.h:561
filter_t * filter
Definition: meter.c:54
static void aout_FiltersPipelineChangeViewpoint(filter_t *const *filters, unsigned count, const vlc_viewpoint_t *vp)
Definition: filters.c:339
struct vlc_list list
Definition: aout_internal.h:56
const audio_sample_format_t * fmt
Definition: vlc_aout.h:611
vlc_clock_t * vlc_clock_main_CreateMaster(vlc_clock_main_t *main_clock, const struct vlc_clock_cbs *cbs, void *cbs_data)
This function creates a new master vlc_clock_t interface.
Definition: clock.c:559
static void aout_DecSilence(audio_output_t *aout, vlc_tick_t length, vlc_tick_t pts)
Definition: dec.c:247
#define AOUT_VAR_CHAN_HEADPHONES
Definition: vlc_aout.h:101
#define VLC_CODEC_S24B32
Definition: vlc_fourcc.h:556
void aout_Release(audio_output_t *aout)
Definition: output.c:382
void(* pause)(audio_output_t *, bool pause, vlc_tick_t date)
Pauses or resumes playback (mandatory, cannot be NULL).
Definition: vlc_aout.h:214
vlc_tick_t pause_date
Definition: clock.c:70
int aout_MuteSet(audio_output_t *aout, bool mute)
Sets the audio output stream mute flag.
Definition: output.c:706
void() var_TriggerCallback(vlc_object_t *p_this, const char *psz_name)
Triggers callbacks on a variable.
Definition: variables.c:864
es_format_t fmt_out
Definition: vlc_filter.h:228
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:112
Vout configuration.
Definition: vout_internal.h:43
#define AOUT_FMT_LINEAR(p_format)
Definition: vlc_aout.h:75
es_format_category_e
ES Categories.
Definition: vlc_es.h:600
#define VLC_CODEC_U32L
Definition: vlc_fourcc.h:559
static block_t * block_ChainGather(block_t *p_list)
Definition: vlc_block.h:409
vlc_tick_t delay
Definition: aout_internal.h:75
#define AOUT_VAR_CHAN_UNSET
Definition: vlc_aout.h:95
void vlc_clock_main_SetInputDejitter(vlc_clock_main_t *main_clock, vlc_tick_t delay)
Definition: clock.c:427
void aout_DecGetResetStats(audio_output_t *aout, unsigned *restrict lost, unsigned *restrict played)
Definition: dec.c:520
Definition: filters.c:349
#define VLC_CODEC_S16N
Definition: vlc_fourcc.h:644
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
Audio output object.
Definition: vlc_aout.h:141
void aout_DecFlush(audio_output_t *aout)
Definition: dec.c:558
static void filter_Close(filter_t *p_filter)
Definition: vlc_filter.h:244
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:228
static const struct vlc_audio_output_events aout_events
Definition: output.c:161
void vlc_clock_main_Reset(vlc_clock_main_t *main_clock)
Reset the vlc_clock_main_t.
Definition: clock.c:404
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
static char * var_GetString(vlc_object_t *p_obj, const char *psz_name)
Get a string value.
Definition: vlc_variables.h:437
int aout_EnableFilter(audio_output_t *p_aout, const char *psz_name, bool b_add)
Enable or disable an audio filter ("audio-filter")
Definition: common.c:539
const char * aout_FormatPrintChannels(const audio_sample_format_t *p_format)
Definition: common.c:105
double rate
Definition: clock.c:65
#define VLC_CODEC_U16B
Definition: vlc_fourcc.h:549
Definition: vlc_filter.h:65
#define DEFAULT_PTS_DELAY
Definition: vlc_config.h:69
#define AOUT_CHAN_MIDDLELEFT
Definition: vlc_es.h:123
#define AOUT_FMTS_IDENTICAL(p_first, p_second)
Definition: vlc_aout.h:64
static int var_SetString(vlc_object_t *p_obj, const char *psz_name, const char *psz_string)
Set the value of a string variable.
Definition: vlc_variables.h:345
static int AppendFilter(vlc_object_t *obj, const char *type, const char *name, aout_filters_t *restrict filters, audio_sample_format_t *restrict infmt, const audio_sample_format_t *restrict outfmt, config_chain_t *cfg)
Definition: filters.c:409
vlc_tick_t vlc_tick_now(void)
Precision monotonic clock.
Definition: thread.c:261
void vout_Close(vout_thread_t *vout)
Destroys a vout.
Definition: video_output.c:1885
static void aout_HotplugNotify(audio_output_t *aout, const char *id, const char *name)
Definition: output.c:101
Audio meter structure.
Definition: vlc_aout.h:607
#define DEINTERLEAVE_TYPE(type)
void(* reset)(vlc_clock_t *clock)
Definition: clock.c:67
float rate
Play-out speed rate.
Definition: aout_internal.h:70
int requested_stereo_mode
Requested stereo mode set by the user.
Definition: aout_internal.h:80
Definition: vlc_configuration.h:331
#define AOUT_CHANMODE_DOLBYSTEREO
Definition: vlc_es.h:173
static void aout_SetWavePhysicalChannels(audio_sample_format_t *fmt)
Definition: aout_internal.h:177
#define AOUT_CHAN_LFE
Definition: vlc_es.h:125
void(* on_changed)(filter_t *, const struct vlc_audio_loudness *loudness)
Definition: vlc_filter.h:55
void vlc_audio_meter_Flush(struct vlc_audio_meter *meter)
Flush all "audio meter" plugins.
Definition: meter.c:212
unsigned rc
Definition: clock.c:57
Internal module descriptor.
Definition: modules.h:78
static void vlc_atomic_rc_inc(vlc_atomic_rc_t *rc)
Increment the RC.
Definition: vlc_atomic.h:52
Structure describing a filter.
Definition: vlc_filter.h:215
static void vlc_clock_master_reset(vlc_clock_t *clock)
Definition: clock.c:168
void(* on_loudness)(vlc_tick_t date, const struct vlc_audio_loudness *loudness, void *data)
Called when new loudness measurements are available.
Definition: vlc_aout.h:577
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
void aout_FiltersSetClockDelay(aout_filters_t *filters, vlc_tick_t delay)
Definition: filters.c:668
void vlc_clock_Reset(vlc_clock_t *clock)
This function resets the clock drift.
Definition: clock.c:492
bool pb_peak[(2)]
Definition: vlc_es.h:58
audio_output_t * aout_New(vlc_object_t *parent)
Creates an audio output object and initializes an output module.
Definition: output.c:211
static void vlc_list_remove(struct vlc_list *restrict node)
Removes an element from a list.
Definition: vlc_list.h:135
static void vlc_list_append(struct vlc_list *restrict node, struct vlc_list *head)
Appends an element into a list.
Definition: vlc_list.h:110
block_t * block_Alloc(size_t size)
Allocates a block.
Definition: block.c:108
void aout_OutputDelete(audio_output_t *p_aout)
Stops the audio output stream (undoes aout_OutputNew()).
Definition: output.c:632
void * sys
Definition: vlc_filter.h:78
uint32_t i_flags
Definition: vlc_block.h:126
static void aout_DeviceNotify(audio_output_t *aout, const char *id)
Definition: output.c:96
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:282
vlc_tick_t resamp_start_drift
Resampler drift absolute value.
Definition: aout_internal.h:71
int resamp_type
Resampler mode (FIXME: redundant / resampling)
Definition: aout_internal.h:72
static void aout_StopResampling(audio_output_t *aout)
Definition: dec.c:236
bool headphones
Default to false, set it to true if the current sink is using headphones.
Definition: vlc_aout.h:277
Definition: vlc_filter.h:51
#define VLC_CODEC_U16L
Definition: vlc_fourcc.h:548
void AvgInit(average_t *avg, int range)
Definition: clock_internal.c:33
unsigned i_nb_samples
Definition: vlc_block.h:127
vlc_clock_t * vlc_clock_CreateSlave(const vlc_clock_t *clock, enum es_format_category_e cat)
This function creates a new slave vlc_clock_t interface.
Definition: clock.c:644
#define VLC_TICK_INVALID
Definition: vlc_config.h:44
static void aout_RestartRequest(audio_output_t *aout, unsigned mode)
Definition: vlc_aout.h:455
static void aout_TimingNotify(audio_output_t *aout, vlc_tick_t system_ts, vlc_tick_t audio_ts)
Definition: output.c:66
vlc_tick_t(* set_delay)(vlc_clock_t *clock, vlc_tick_t delay)
Definition: clock.c:68
void vlc_audio_meter_RemovePlugin(struct vlc_audio_meter *meter, vlc_audio_meter_plugin *plugin)
Remove an "audio meter" plugin.
Definition: meter.c:130
const struct vlc_filter_operations * ops
Definition: vlc_filter.h:238
int resampling
Current resampling (Hz)
Definition: filters.c:354
void aout_DecDelete(audio_output_t *aout)
Stops all plugins involved in the audio output.
Definition: dec.c:143
vout_thread_t * aout_filter_GetVout(filter_t *filter, const video_format_t *fmt)
Definition: filters.c:389
int(* device_select)(audio_output_t *, const char *id)
Selects an audio output device (optional, may be NULL).
Definition: vlc_aout.h:267
static int StereoModeCallback(vlc_object_t *obj, const char *varname, vlc_value_t oldval, vlc_value_t newval, void *data)
Definition: output.c:181
static void vlc_clock_slave_reset(vlc_clock_t *clock)
Definition: clock.c:315
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:449
#define VLC_CODEC_S32L
Definition: vlc_fourcc.h:557
audio_volume_t object
Definition: volume.c:58
void aout_DecChangePause(audio_output_t *aout, bool paused, vlc_tick_t date)
Definition: dec.c:531
static int var_SetBool(vlc_object_t *p_obj, const char *psz_name, bool b)
Set the value of an boolean variable.
Definition: vlc_variables.h:308
int aout_volume_SetFormat(aout_volume_t *vol, vlc_fourcc_t format)
Selects the current sample format for software amplification.
Definition: volume.c:81
static void aout_MuteNotify(audio_output_t *aout, bool mute)
Definition: output.c:86
@ VLC_CLOCK_MASTER_MONOTONIC
Definition: clock.h:46
#define AOUT_CHAN_MAX
Definition: vlc_es.h:153
float pf_gain[(2)]
Definition: vlc_es.h:65
static void aout_ChangeViewpoint(audio_output_t *, const vlc_viewpoint_t *)
Definition: output.c:803
void * sys
Definition: vlc_aout.h:597
char * psz_string
Definition: vlc_common.h:462
void vlc_clock_Delete(vlc_clock_t *clock)
This function free the resources allocated by vlc_clock*Create*()
Definition: clock.c:650
void aout_volume_SetVolume(aout_volume_t *vol, float factor)
Definition: volume.c:122
#define vlc_audio_meter_Init(a, b)
Definition: vlc_aout.h:624
bool headphones
If true, a filter will be inserted to add a headphones effect (like a binauralizer audio filter).
Definition: vlc_aout.h:508
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:445
vlc_tick_t i_pts
Definition: vlc_block.h:129
filter_t * resampler
The resampler.
Definition: filters.c:353
block_t *(* filter_audio)(filter_t *, block_t *)
Filter an audio block (audio filter)
Definition: vlc_filter.h:92
vlc_clock_main_t * vlc_clock_main_New(void)
This function creates the vlc_clock_main_t of the program.
Definition: clock.c:362
void vlc_clock_main_ChangePause(vlc_clock_main_t *main_clock, vlc_tick_t now, bool paused)
This function allows changing the pause status.
Definition: clock.c:443
void(* stop)(audio_output_t *)
Stops the existing stream (mandatory, cannot be NULL).
Definition: vlc_aout.h:164
void(* amplify)(audio_volume_t *, block_t *, float)
Amplifier.
Definition: vlc_aout_volume.h:50
#define AOUT_VAR_CHAN_MONO
Definition: vlc_aout.h:102
vlc_clock_t * vlc_clock_main_CreateMaster(vlc_clock_main_t *main_clock, const struct vlc_clock_cbs *cbs, void *cbs_data)
This function creates a new master vlc_clock_t interface.
Definition: clock.c:559
clock_point_t last
Linear function system = ts * coeff / rate + offset.
Definition: clock.c:63
static float var_GetFloat(vlc_object_t *p_obj, const char *psz_name)
Get a float value.
Definition: vlc_variables.h:421
static vlc_clock_t * vlc_clock_main_Create(vlc_clock_main_t *main_clock, unsigned priority, const struct vlc_clock_cbs *cbs, void *cbs_data)
Definition: clock.c:540
double AvgGet(average_t *avg)
Definition: clock_internal.c:70
#define static_assert
Definition: vlc_fixups.h:370
static filter_t * FindResampler(vlc_object_t *obj, const audio_sample_format_t *infmt, const audio_sample_format_t *outfmt)
Definition: filters.c:101
void vlc_audio_meter_Destroy(struct vlc_audio_meter *meter)
Free allocated resource from the audio meter structure.
Definition: meter.c:54
#define AOUT_CHAN_REARRIGHT
Definition: vlc_es.h:122
unsigned priority
Definition: clock.c:74
struct filter_audio_callbacks::@210 meter_loudness
#define VLC_CODEC_DTS
Definition: vlc_fourcc.h:466
#define aout_FormatsPrint(o, t, a, b)
Definition: aout_internal.h:150
#define AOUT_CHAN_LEFT
Definition: vlc_es.h:118
@ AUDIO_ES
Definition: vlc_es.h:604
bool abort
Definition: clock.c:77
int(* volume_set)(audio_output_t *, float volume)
Changes playback volume (optional, may be NULL).
Definition: vlc_aout.h:246
#define VLC_CODEC_S8
Definition: vlc_fourcc.h:543
void vlc_clock_main_Delete(vlc_clock_main_t *main_clock)
Destroy the clock main.
Definition: clock.c:473
void aout_DecChangeDelay(audio_output_t *aout, vlc_tick_t delay)
Definition: dec.c:551
const struct vlc_audio_output_events * events
Definition: vlc_aout.h:282
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:241
audio_output_t * aout_Hold(audio_output_t *aout)
Definition: output.c:348
static vlc_tick_t main_stream_to_system(vlc_clock_main_t *main_clock, vlc_tick_t ts)
Definition: clock.c:80
#define aout_FiltersDelete(o, f)
Definition: vlc_aout.h:525
vlc_tick_t vlc_clock_UpdateVideo(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts, double rate, unsigned frame_rate, unsigned frame_rate_base)
This function will update the video clock drift and returns the drift.
Definition: clock.c:485
aout_volume_t * volume
Definition: aout_internal.h:50
#define VLC_CODEC_F64L
Definition: vlc_fourcc.h:563
vlc_tick_t output_dejitter
Definition: clock.c:75
void vlc_clock_main_Reset(vlc_clock_main_t *main_clock)
Reset the vlc_clock_main_t.
Definition: clock.c:404
Callbacks for the owner of the main clock.
Definition: clock.h:37
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:503
struct vlc_list node
Definition: meter.c:59
vlc_cond_t cond
Definition: clock.c:52
static void block_ChainAppend(block_t **pp_list, block_t *p_block)
Definition: vlc_block.h:333
#define AOUT_VAR_CHAN_LEFT
Definition: vlc_aout.h:98
#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:53
VLC object common members.
Definition: vlc_objects.h:43
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
int aout_volume_SetFormat(aout_volume_t *, vlc_fourcc_t)
Selects the current sample format for software amplification.
Definition: volume.c:81
int aout_VolumeSet(audio_output_t *aout, float vol)
Sets the volume of the audio output stream.
Definition: output.c:655
#define VLC_CODEC_F32B
Definition: vlc_fourcc.h:562
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:476
vlc_clock_t * clock
Definition: filters.c:355
vlc_tick_t(* to_system_locked)(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts, double rate)
Definition: clock.c:69
Configuration item.
Definition: vlc_configuration.h:76
void(* drain)(audio_output_t *)
Drain the playback buffers (can be NULL).
Definition: vlc_aout.h:239
static int64_t samples_from_vlc_tick(vlc_tick_t t, int samp_rate)
Definition: vlc_tick.h:105
#define AOUT_VAR_CHAN_DOLBYS
Definition: vlc_aout.h:100
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
static filter_t * TryFormat(vlc_object_t *obj, vlc_fourcc_t codec, audio_sample_format_t *restrict fmt)
Definition: filters.c:127
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
int aout_MuteGet(audio_output_t *aout)
Gets the audio output stream mute flag.
Definition: output.c:697
static int ReplayGainCallback(vlc_object_t *, char const *, vlc_value_t, vlc_value_t, void *)
Definition: volume.c:194
#define VLC_CODEC_DTSHD
Definition: vlc_fourcc.h:468
void vlc_clock_ConvertArrayToSystem(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t *ts_array, size_t ts_count, double rate)
This functon converts an array of timestamp from stream to system.
Definition: clock.c:512
#define VLC_CODEC_U24L
Definition: vlc_fourcc.h:553
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
static int var_SetFloat(vlc_object_t *p_obj, const char *psz_name, float f)
Set the value of a float variable.
Definition: vlc_variables.h:331
#define VLC_CODEC_A52
Definition: vlc_fourcc.h:463
char * strdup(const char *)
audio_sample_format_t input_format
Definition: aout_internal.h:85
vlc_atomic_rc_t rc
Definition: aout_internal.h:104
bool aout_FiltersCanResample(aout_filters_t *filters)
Definition: filters.c:708
#define AOUT_CHANS_7_1
Definition: vlc_es.h:143
bool aout_FiltersCanResample(aout_filters_t *filters)
Definition: filters.c:708
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:117
@ AOUT_CHANIDX_RIGHT
Definition: vlc_aout.h:289
void aout_RequestRetiming(audio_output_t *aout, vlc_tick_t system_ts, vlc_tick_t audio_ts)
Definition: dec.c:323
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
const char name[16]
Definition: httpd.c:1268
#define VLC_CODEC_U32B
Definition: vlc_fourcc.h:560
int aout_OutputNew(audio_output_t *)
Starts an audio output stream.
Definition: output.c:525
void aout_FiltersDelete(vlc_object_t *obj, aout_filters_t *filters)
Destroys a chain of audio filters.
Definition: filters.c:697
module_t * module
Definition: volume.c:62
#define VLC_CODEC_FL64
Definition: vlc_fourcc.h:651
union module_config_t::@194 list
Possible choices.
static const uint32_t pi_vlc_chan_order_wg4[]
It describes the audio channel order VLC expect.
Definition: vlc_aout.h:317
int aout_VolumeUpdate(audio_output_t *aout, int value, float *volp)
Raises the volume.
Definition: output.c:671
void vlc_clock_main_Abort(vlc_clock_main_t *main_clock)
Abort all the pending vlc_clock_Wait.
Definition: clock.c:395
@ VLC_CLOCK_MASTER_AUTO
Definition: clock.h:43
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:463
#define VLC_CODEC_S16L
Definition: vlc_fourcc.h:545
audio_sample_format_t mixer_format
Definition: aout_internal.h:94
bool bitexact
Definition: aout_internal.h:51
#define VLC_CODEC_S16B
Definition: vlc_fourcc.h:547
void aout_FiltersResetClock(aout_filters_t *filters)
Definition: filters.c:662
int aout_DevicesList(audio_output_t *aout, char ***ids, char ***names)
Enumerates possible audio output devices.
Definition: output.c:754
#define VLC_CODEC_S24L
Definition: vlc_fourcc.h:551
Condition variable.
Definition: vlc_threads.h:349
void aout_FormatPrepare(audio_sample_format_t *p_format)
Definition: common.c:87
static filter_t * FindConverter(vlc_object_t *obj, const audio_sample_format_t *infmt, const audio_sample_format_t *outfmt)
Definition: filters.c:93
struct aout_owner_t::@7 vp
static int aout_GainNotify(audio_output_t *aout, float gain)
Definition: output.c:151
static int aout_TimeGet(audio_output_t *aout, vlc_tick_t *delay)
Definition: vlc_aout.h:535
struct aout_owner_t::@8 sync
int aout_DecNew(audio_output_t *p_aout, const audio_sample_format_t *p_format, int profile, vlc_clock_t *clock, const audio_replay_gain_t *p_replay_gain)
Creates an audio output.
Definition: dec.c:56
#define VLC_CODEC_MULAW
Definition: vlc_fourcc.h:567
vlc_clock_t * vlc_clock_main_CreateSlave(vlc_clock_main_t *main_clock, enum es_format_category_e cat, const struct vlc_clock_cbs *cbs, void *cbs_data)
This function creates a new slave vlc_clock_t interface.
Definition: clock.c:609
@ SPU_ES
Definition: vlc_es.h:605
void * cbs_data
Definition: clock.c:77
_Atomic float gain_factor
Definition: volume.c:60
static int ViewpointCallback(vlc_object_t *obj, const char *var, vlc_value_t prev, vlc_value_t cur, void *data)
Definition: output.c:198
int(* mute_set)(audio_output_t *, bool mute)
Changes muting (optinal, may be NULL).
Definition: vlc_aout.h:260
static int FilterOrder(const char *psz_name)
Definition: common.c:523
static void aout_Drain(audio_output_t *aout)
Definition: dec.c:41
void vlc_clock_main_SetFirstPcr(vlc_clock_main_t *main_clock, vlc_tick_t system_now, vlc_tick_t ts)
Definition: clock.c:413
atomic_uint buffers_played
Definition: aout_internal.h:101
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)
Definition: filters.c:43
void aout_FiltersResetClock(aout_filters_t *filters)
Definition: filters.c:662
static int64_t var_GetInteger(vlc_object_t *p_obj, const char *psz_name)
Get an integer value.
Definition: vlc_variables.h:374
const struct vlc_audio_meter_cbs * cbs
Definition: vlc_aout.h:596
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:300
uint16_t list_count
Choices count.
Definition: vlc_configuration.h:96
atomic_uchar restart
Definition: aout_internal.h:102
int(* time_get)(audio_output_t *, vlc_tick_t *delay)
Estimates playback buffer latency (mandatory, cannot be NULL).
Definition: vlc_aout.h:173
#define vlc_list_foreach(pos, head, member)
List iteration macro.
Definition: vlc_list.h:261
char * aout_DeviceGet(audio_output_t *aout)
Gets the currently selected device.
Definition: output.c:722
@ AOUT_RESAMPLING_DOWN
Definition: aout_internal.h:40
const char ** psz
Table of possible string choices.
Definition: vlc_configuration.h:99
#define vlc_object_parent(o)
Definition: vlc_objects.h:158
static void vlc_clock_main_reset(vlc_clock_main_t *main_clock)
Definition: clock.c:89
void aout_volume_SetVolume(aout_volume_t *, float)
Definition: volume.c:122
#define AOUT_CHAN_REARLEFT
Definition: vlc_es.h:121
static void filter_ChangeViewpoint(filter_t *p_filter, const vlc_viewpoint_t *vp)
Definition: vlc_filter.h:285
block_t *(* drain_audio)(filter_t *)
Drain (audio filter)
Definition: vlc_filter.h:113
vlc_tick_t i_dts
Definition: vlc_block.h:130
block_t * aout_FiltersDrain(aout_filters_t *filters)
Definition: filters.c:762
int(* start)(audio_output_t *, audio_sample_format_t *fmt)
Starts a new stream (mandatory, cannot be NULL).
Definition: vlc_aout.h:147
vlc_audio_meter_plugin * vlc_audio_meter_AddPlugin(struct vlc_audio_meter *meter, const char *chain, const struct vlc_audio_meter_plugin_owner *owner)
Add an "audio meter" plugin.
Definition: meter.c:88
#define REORDER_TYPE(type)
filter_t * rate_filter
The filter adjusting samples count (either the scaletempo filter or a resampler)
Definition: filters.c:351
int() var_Set(vlc_object_t *p_this, const char *psz_name, vlc_value_t val)
Sets a variable value.
Definition: variables.c:721
void aout_Destroy(audio_output_t *aout)
Deinitializes an audio output module and destroys an audio output object.
Definition: output.c:359
atomic_bool update
Definition: aout_internal.h:62
clock_point_t wait_sync_ref
Definition: clock.c:73
int aout_volume_Amplify(aout_volume_t *vol, block_t *block)
Applies replay gain and software volume to an audio buffer.
Definition: volume.c:133
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)
Definition: filters.c:43
#define vlc_object_delete(obj)
Definition: vlc_objects.h:136
#define likely(p)
Predicted true condition.
Definition: vlc_common.h:218
static void aout_PolicyNotify(audio_output_t *aout, bool cork)
Definition: output.c:91
void aout_DecDrain(audio_output_t *aout)
Definition: dec.c:593
void vlc_audio_meter_Process(struct vlc_audio_meter *meter, block_t *block, vlc_tick_t date)
Process an audio block.
Definition: meter.c:190
uint8_t * p_buffer
Payload start.
Definition: vlc_block.h:121
#define AOUT_VAR_CHAN_RSTEREO
Definition: vlc_aout.h:97
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
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_objects.h:70
char * strsep(char **, const char *)
Video output thread descriptor.
Definition: vlc_vout.h:55
#define BLOCK_FLAG_DISCONTINUITY
The content doesn't follow the last block, possible some blocks in between have been lost.
Definition: vlc_block.h:67
Definition: vlc_aout.h:497
void vlc_cond_init(vlc_cond_t *cond)
Initializes a condition variable.
Definition: threads.c:234
static int aout_CheckReady(audio_output_t *aout)
Definition: dec.c:158
vlc_clock_t * vlc_clock_main_CreateInputMaster(vlc_clock_main_t *main_clock)
This function creates a new input master vlc_clock_t interface.
Definition: clock.c:583
@ AOUT_CHANIDX_LEFT
Definition: vlc_aout.h:288
static float var_InheritFloat(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:695
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:1144
void(* flush)(audio_output_t *)
Flushes the playback buffers (mandatory, cannot be NULL).
Definition: vlc_aout.h:231
void aout_OutputDelete(audio_output_t *aout)
Stops the audio output stream (undoes aout_OutputNew()).
Definition: output.c:632
vlc_viewpoint_t value
Definition: aout_internal.h:64
void() vlc_audio_meter_Init(struct vlc_audio_meter *meter, vlc_object_t *obj)
Initialize the audio meter structure.
Definition: meter.c:45
int vlc_cond_timedwait(vlc_cond_t *cond, vlc_mutex_t *mutex, vlc_tick_t deadline)
Waits on a condition variable up to a certain date.
Definition: threads.c:349
#define module_unneed(a, b)
Definition: vlc_modules.h:126
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_filters_cfg_t *cfg)
Sets a chain of audio filters up.
Definition: filters.c:683
#define AOUT_CHANS_STEREO
Definition: vlc_es.h:132
static float aout_ReplayGainSelect(vlc_object_t *obj, const char *str, const audio_replay_gain_t *replay_gain)
Definition: volume.c:145
int aout_DecPlay(audio_output_t *aout, block_t *block)
Definition: dec.c:429
static void vlc_atomic_rc_init(vlc_atomic_rc_t *rc)
Init the RC to 1.
Definition: vlc_atomic.h:46
vlc_audio_meter_plugin * aout_AddMeterPlugin(audio_output_t *aout, const char *chain, const struct vlc_audio_meter_plugin_owner *meter_plugin_owner)
Definition: output.c:815
vlc_clock_t * vlc_clock_CreateSlave(const vlc_clock_t *clock, enum es_format_category_e cat)
This function creates a new slave vlc_clock_t interface.
Definition: clock.c:644
void block_Release(block_t *block)
Releases a block.
Definition: block.c:135
Definition: aout_internal.h:107
void vlc_clock_Wait(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts, double rate, vlc_tick_t max_duration)
Wait for a timestamp expressed in stream time.
Definition: clock.c:340
vlc_tick_t vlc_clock_Update(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts, double rate)
This function will update the clock drift and returns the drift.
Definition: clock.c:479
void aout_FiltersSetClockDelay(aout_filters_t *filters, vlc_tick_t delay)
Definition: filters.c:668
VLC value structure.
Definition: vlc_common.h:457
struct vlc_clock_t * clock
Definition: aout_internal.h:69
vlc_clock_t * master
Definition: clock.c:54
aout_filters_cfg_t filters_cfg
Definition: aout_internal.h:96
static int var_CopyDevice(vlc_object_t *src, const char *name, vlc_value_t prev, vlc_value_t value, void *data)
Definition: output.c:57
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
module_t * module
Output plugin (or NULL if inactive)
Definition: aout_internal.h:48
vlc_tick_t vlc_clock_ConvertToSystem(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts, double rate)
This function converts a timestamp from stream to system.
Definition: clock.c:502
static void vlc_clock_on_update(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts, double rate, unsigned frame_rate, unsigned frame_rate_base)
Definition: clock.c:102
audio_channel_type_t
Audio channel type.
Definition: vlc_es.h:72
#define VLC_CODEC_EAC3
Definition: vlc_fourcc.h:464
struct aout_dev aout_dev_t
static void aout_DecSynchronize(audio_output_t *aout, vlc_tick_t system_now, vlc_tick_t dec_pts)
Definition: dec.c:272
const char var[sizeof("video")]
Definition: player.c:1732
Definition: vlc_block.h:117
vlc_tick_t original_pts
Definition: aout_internal.h:78
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
bool pb_gain[(2)]
Definition: vlc_es.h:63
@ AOUT_CHANIDX_MAX
Definition: vlc_aout.h:297
Audio volume.
Definition: vlc_aout_volume.h:45
unsigned count
Definition: aout_internal.h:57
vlc_tick_t request_delay
Definition: aout_internal.h:74
average_t coeff_avg
Definition: clock.c:64
vlc_tick_t last_date
Definition: meter.c:55
clock_point_t first_pcr
Definition: clock.c:74
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:225
#define AOUT_CHANMODE_DUALMONO
Definition: vlc_es.h:172
void vlc_clock_main_SetInputDejitter(vlc_clock_main_t *main_clock, vlc_tick_t delay)
Definition: clock.c:427
#define module_need(a, b, c, d)
Definition: vlc_modules.h:111
static vlc_tick_t vlc_clock_slave_set_delay(vlc_clock_t *clock, vlc_tick_t delay)
Definition: clock.c:328
#define VLC_CODEC_FL32
Definition: vlc_fourcc.h:650
#define aout_FormatPrint(o, t, f)
Definition: vlc_aout.h:386
config_chain_t * cfg
Definition: meter.c:53
#define VLC_CODEC_U8
Definition: vlc_fourcc.h:544
struct vlc_list plugins
Definition: vlc_aout.h:613
Audio loudness measurement.
Definition: vlc_aout.h:549
float output_factor
Definition: volume.c:61
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)
uint32_t vlc_fourcc_t
Definition: fourcc_gen.c:33
static vlc_tick_t vlc_clock_slave_to_system_locked(vlc_clock_t *clock, vlc_tick_t now, vlc_tick_t ts, double rate)
Definition: clock.c:254
int aout_OutputNew(audio_output_t *aout)
Starts an audio output stream.
Definition: output.c:525
static int FilterCallback(vlc_object_t *obj, const char *var, vlc_value_t prev, vlc_value_t cur, void *data)
Definition: output.c:172
filter_owner_t owner
Private structure for the owner of the filter.
Definition: vlc_filter.h:241
#define VLC_CODEC_S24B
Definition: vlc_fourcc.h:552