VLC  4.0.0-dev
clock.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * clock.h: Output modules synchronisation clock
3  *****************************************************************************
4  * Copyright (C) 2018-2019 VLC authors, VideoLAN and Videolabs SAS
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation; either version 2.1 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
19  *****************************************************************************/
20 #ifndef VLC_CLOCK_H
21 #define VLC_CLOCK_H
22 
24 {
29 };
30 
32 typedef struct vlc_clock_t vlc_clock_t;
33 
34 /**
35  * Callbacks for the owner of the main clock
36  */
38 {
39  /**
40  * Called when a clock is updated
41  *
42  * @param system_ts system date when the ts will be rendered,
43  * VLC_TICK_INVALID when the clock is reset or INT64_MAX when the update is
44  * forced (an output was still rendered while paused for example). Note:
45  * when valid, this date can be in the future, it is not necessarily now.
46  * @param ts stream timestamp or VLC_TICK_INVALID when the clock is reset,
47  * should be subtracted with VLC_TICK_0 to get the original value
48  * @param rate rate used when updated
49  * @param frame_rate fps of the video owning the clock
50  * @param frame_rate_base fps denominator
51  * @param data opaque pointer set from vlc_clock_main_New()
52  */
53  void (*on_update)(vlc_tick_t system_ts, vlc_tick_t ts, double rate,
54  unsigned frame_rate, unsigned frame_rate_base,
55  void *data);
56 };
57 
58 /**
59  * This function creates the vlc_clock_main_t of the program
60  */
62 
63 /**
64  * Destroy the clock main
65  */
66 void vlc_clock_main_Delete(vlc_clock_main_t *main_clock);
67 
68 /**
69  * Abort all the pending vlc_clock_Wait
70  */
71 void vlc_clock_main_Abort(vlc_clock_main_t *main_clock);
72 
73 /**
74  * Reset the vlc_clock_main_t
75  */
76 void vlc_clock_main_Reset(vlc_clock_main_t *main_clock);
77 
79  vlc_tick_t system_now, vlc_tick_t ts);
81  vlc_tick_t delay);
82 
83 /**
84  * This function sets the dejitter delay to absorb the clock jitter
85  *
86  * Also used as the maximum delay before the synchro is considered to kick in.
87  */
88 void vlc_clock_main_SetDejitter(vlc_clock_main_t *main_clock, vlc_tick_t dejitter);
89 
90 
91 /**
92  * This function allows changing the pause status.
93  */
95  bool paused);
96 
97 /**
98  * This function creates a new master vlc_clock_t interface
99  *
100  * @warning There can be only one master at a given time.
101  *
102  * You must use vlc_clock_Delete to free it.
103  */
105  const struct vlc_clock_cbs *cbs,
106  void *cbs_data);
107 
108 /**
109  * This function creates a new input master vlc_clock_t interface
110  *
111  * Once the input master is created, the current or future master clock created
112  * from vlc_clock_main_CreateMaster() will be demoted as slave.
113  *
114  * @warning There can be only one input master at a given time.
115  *
116  * You must use vlc_clock_Delete to free it.
117  */
119 
120 /**
121  * This function creates a new slave vlc_clock_t interface
122  *
123  * You must use vlc_clock_Delete to free it.
124  */
126  enum es_format_category_e cat,
127  const struct vlc_clock_cbs *cbs,
128  void *cbs_data);
129 
130 /**
131  * This function creates a new slave vlc_clock_t interface
132  *
133  * You must use vlc_clock_Delete to free it.
134  */
136  enum es_format_category_e cat);
137 
138 /**
139  * This function free the resources allocated by vlc_clock*Create*()
140  */
141 void vlc_clock_Delete(vlc_clock_t *clock);
142 
143 /**
144  * This function will update the clock drift and returns the drift
145  * @param system_now valid system time or INT64_MAX is the updated point is
146  * forced (when paused for example)
147  * @return a valid drift relative time, VLC_TICK_INVALID if there is no drift
148  * (clock is master) or INT64_MAX if the clock is paused
149  */
151  vlc_tick_t ts, double rate);
152 
153 /**
154  * This function will update the video clock drift and returns the drift
155  *
156  * Same behavior than vlc_clock_Update() except that the video is passed to the
157  * clock, this will be used for clock update callbacks.
158  */
160  vlc_tick_t ts, double rate,
161  unsigned frame_rate, unsigned frame_rate_base);
162 
163 /**
164  * This function resets the clock drift
165  */
166 void vlc_clock_Reset(vlc_clock_t *clock);
167 
168 /**
169  * This functions change the clock delay
170  *
171  * It returns the amount of time the clock owner need to wait in order to reach
172  * the time introduced by the new positive delay.
173  */
175 
176 /**
177  * Wait for a timestamp expressed in stream time
178  */
179 void vlc_clock_Wait(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts,
180  double rate, vlc_tick_t max_duration);
181 
182 /**
183  * This function converts a timestamp from stream to system
184  * @return the valid system time or INT64_MAX when the clock is paused
185  */
187  vlc_tick_t ts, double rate);
188 
189 /**
190  * This functon converts an array of timestamp from stream to system
191  */
193  vlc_tick_t *ts_array, size_t ts_count,
194  double rate);
195 
196 #endif /*VLC_CLOCK_H*/
aout_RequestRetiming
void aout_RequestRetiming(audio_output_t *aout, vlc_tick_t system_ts, vlc_tick_t audio_ts)
Definition: dec.c:323
vlc_cond_broadcast
void vlc_cond_broadcast(vlc_cond_t *cond)
Wakes up all threads waiting on a condition variable.
Definition: threads.c:280
vlc_viewpoint_init
static void vlc_viewpoint_init(vlc_viewpoint_t *p_vp)
Definition: vlc_viewpoint.h:48
vout_Create
vout_thread_t * vout_Create(vlc_object_t *object)
Creates a video output.
Definition: video_output.c:1966
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
vlc_clock_main_SetFirstPcr
void vlc_clock_main_SetFirstPcr(vlc_clock_main_t *main_clock, vlc_tick_t system_now, vlc_tick_t ts)
Definition: clock.c:413
aout_RestartNotify
static void aout_RestartNotify(audio_output_t *aout, unsigned mode)
Definition: output.c:146
aout_CheckChannelReorder
unsigned aout_CheckChannelReorder(const uint32_t *chans_in, const uint32_t *chans_out, uint32_t mask, uint8_t *restrict table)
Definition: common.c:256
aout_owner_t::buffers_lost
atomic_uint buffers_lost
Definition: aout_internal.h:100
VLC_CODEC_F64B
#define VLC_CODEC_F64B
Definition: vlc_fourcc.h:564
vlc_clock_main_Delete
void vlc_clock_main_Delete(vlc_clock_main_t *main_clock)
Destroy the clock main.
Definition: clock.c:473
AOUT_MAX_PTS_DELAY
#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
AOUT_CHAN_RIGHT
#define AOUT_CHAN_RIGHT
Definition: vlc_es.h:119
AOUT_CHAN_MIDDLERIGHT
#define AOUT_CHAN_MIDDLERIGHT
Definition: vlc_es.h:124
count
size_t count
Definition: core.c:401
aout_owner_t::input_profile
int input_profile
Definition: aout_internal.h:84
vlc_clock_UpdateVideo
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
@ AOUT_RESAMPLING_UP
Definition: aout_internal.h:39
clock_point_t::stream
vlc_tick_t stream
Definition: clock_internal.h:58
aout_filters::tab
filter_t * tab[10]
Configured user filters (e.g.
Definition: filters.c:358
vlc_clock_main_ChangePause
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
var_Copy
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
var_Create
int() var_Create(vlc_object_t *p_this, const char *psz_name, int i_type)
Creates a VLC object variable.
Definition: variables.c:291
aout_volume_Amplify
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
@ VIDEO_ES
Definition: vlc_es.h:603
vlc_clock_master_source
vlc_clock_master_source
Definition: clock.h:23
vlc_clock_main_t::offset
vlc_tick_t offset
Definition: clock.c:67
vlc_clock_main_t::lock
vlc_mutex_t lock
Definition: clock.c:51
VLC_VAR_SETVALUE
#define VLC_VAR_SETVALUE
Set the value of this variable without triggering any callbacks.
Definition: vlc_variables.h:87
aout_owner_t::meter
struct vlc_audio_meter meter
Definition: aout_internal.h:98
AUDIO_CHANNEL_TYPE_BITMAP
@ AUDIO_CHANNEL_TYPE_BITMAP
Definition: vlc_es.h:74
config_FindConfig
module_config_t * config_FindConfig(const char *name)
Looks up a configuration item.
Definition: core.c:452
AOUT_VAR_CHAN_RIGHT
#define AOUT_VAR_CHAN_RIGHT
Definition: vlc_aout.h:99
INTERLEAVE_TYPE
#define INTERLEAVE_TYPE(type)
VLC_VAR_CLEARCHOICES
#define VLC_VAR_CLEARCHOICES
Definition: vlc_variables.h:98
vlc_audio_meter_Reset
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
AUDIO_REPLAY_GAIN_MAX
#define AUDIO_REPLAY_GAIN_MAX
audio replay gain description
Definition: vlc_es.h:52
aout_BitsPerSample
unsigned int aout_BitsPerSample(vlc_fourcc_t i_format)
Definition: common.c:41
var_InheritBool
static bool var_InheritBool(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:675
aout_DeviceSet
int aout_DeviceSet(audio_output_t *aout, const char *id)
Selects an audio output device.
Definition: output.c:732
audio_output::current_sink_info
struct audio_output::@181 current_sink_info
Current sink informations set by the module from the start() function.
vlc_clock_master_update
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
aout_VolumeNotify
static void aout_VolumeNotify(audio_output_t *aout, float volume)
Supply or update the current custom ("hardware") volume.
Definition: output.c:81
aout_owner_t::discontinuity
bool discontinuity
Definition: aout_internal.h:73
average_t
This structure holds long term moving average.
Definition: clock_internal.h:36
aout_FormatNbChannels
static unsigned aout_FormatNbChannels(const audio_sample_format_t *fmt)
Definition: vlc_aout.h:377
strcasecmp
int strcasecmp(const char *, const char *)
aout_FiltersPipelineDestroy
static void aout_FiltersPipelineDestroy(filter_t *const *filters, unsigned n)
Destroys a chain of audio filters.
Definition: filters.c:115
psz_name
const char * psz_name
Definition: text_style.c:53
aout_volume_New
aout_volume_t * aout_volume_New(vlc_object_t *parent, const audio_replay_gain_t *gain)
Creates a software amplifier.
Definition: volume.c:53
clock_internal.h
aout_RemoveMeterPlugin
void aout_RemoveMeterPlugin(audio_output_t *aout, vlc_audio_meter_plugin *plugin)
Definition: output.c:824
aout_dev::name
char * name
Definition: output.c:61
VLC_VAR_GETCHOICES
#define VLC_VAR_GETCHOICES
Definition: vlc_variables.h:99
vlc_clock_main_SetDejitter
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
VLC_VAR_SETTEXT
#define VLC_VAR_SETTEXT
Definition: vlc_variables.h:89
VLC_CLOCK_MASTER_AUDIO
@ VLC_CLOCK_MASTER_AUDIO
Definition: clock.h:44
aout_owner_t
Definition: aout_internal.h:45
unlikely
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
var_DecInteger
static int64_t var_DecInteger(vlc_object_t *p_obj, const char *psz_name)
Decrement an integer variable.
Definition: vlc_variables.h:487
var_DelCallback
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
aout_VolumeGet
float aout_VolumeGet(audio_output_t *aout)
Gets the volume of the audio output stream (independent of mute).
Definition: output.c:645
aout_dev::node
struct vlc_list node
Definition: output.c:60
vlc_common.h
AOUT_CHANIDX_DISABLE
@ AOUT_CHANIDX_DISABLE
Definition: vlc_aout.h:287
vlc_clock_main_CreateInputMaster
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_DEC_CHANGED
#define AOUT_DEC_CHANGED
Definition: aout_internal.h:155
vout_Request
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
AOUT_DEC_SUCCESS
#define AOUT_DEC_SUCCESS
Definition: aout_internal.h:154
filter_t::p_module
module_t * p_module
Definition: vlc_filter.h:220
aout_owner_t::lock
vlc_mutex_t lock
Definition: aout_internal.h:47
VLC_VAR_DOINHERIT
#define VLC_VAR_DOINHERIT
Creation flag.
Definition: vlc_variables.h:69
module_config_t::list_text
const char ** list_text
Human-readable names for list values.
Definition: vlc_configuration.h:102
aout_FiltersChangeViewpoint
void aout_FiltersChangeViewpoint(aout_filters_t *filters, const vlc_viewpoint_t *vp)
Definition: filters.c:802
vlc_audio_meter_plugin::name
char * name
Definition: meter.c:52
VLC_CODEC_U24B
#define VLC_CODEC_U24B
Definition: vlc_fourcc.h:554
clock_point_Create
static clock_point_t clock_point_Create(vlc_tick_t system, vlc_tick_t stream)
Definition: clock_internal.h:61
vlc_clock_monotonic_to_system_locked
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
vlc_mutex_assert
#define vlc_mutex_assert(m)
Asserts that a mutex is locked by the calling thread.
Definition: vlc_threads.h:328
vlc_audio_meter::parent
vlc_object_t * parent
Definition: vlc_aout.h:610
filter_DrainAudio
static block_t * filter_DrainAudio(filter_t *p_filter)
This function will drain, then flush an audio filter.
Definition: vlc_filter.h:320
filter_owner_t::audio
const struct filter_audio_callbacks * audio
Definition: vlc_filter.h:70
AOUT_RESTART_STEREOMODE
#define AOUT_RESTART_STEREOMODE
Definition: vlc_aout.h:327
audio_replay_gain_t
Definition: vlc_es.h:55
vlc_clock_Delete
void vlc_clock_Delete(vlc_clock_t *clock)
This function free the resources allocated by vlc_clock*Create*()
Definition: clock.c:650
vlc_clock_SetDelay
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_clock_Update
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
VLC_CODEC_S32N
#define VLC_CODEC_S32N
Definition: vlc_fourcc.h:648
vlc_clock_SetDelay
vlc_tick_t vlc_clock_SetDelay(vlc_clock_t *clock, vlc_tick_t delay)
This functions change the clock delay.
Definition: clock.c:497
block_t::i_buffer
size_t i_buffer
Payload length.
Definition: vlc_block.h:122
audio_format_t::i_bitspersample
unsigned i_bitspersample
Definition: vlc_es.h:111
vlc_clock_slave_update
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_clock_main_t::delay
vlc_tick_t delay
Definition: clock.c:68
msg_Info
#define msg_Info(p_this,...)
Definition: vlc_messages.h:100
AOUT_CHAN_CENTER
#define AOUT_CHAN_CENTER
Definition: vlc_es.h:117
module_need_var
#define module_need_var(a, b, c)
Definition: vlc_modules.h:123
vlc_clock_ConvertToSystem
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
aout_owner_t::dev
struct aout_owner_t::@6 dev
vlc_clock_main_t::input_dejitter
vlc_tick_t input_dejitter
Definition: clock.c:76
vlc_clock_main_t::input_master
vlc_clock_t * input_master
Definition: clock.c:55
vlc_clock_master_to_system_locked
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
AOUT_RESTART_OUTPUT
#define AOUT_RESTART_OUTPUT
Definition: vlc_aout.h:326
aout_owner_t::filters
aout_filters_t * filters
Definition: aout_internal.h:49
vlc_clock_main_CreateSlave
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
@ VLC_CLOCK_MASTER_INPUT
Definition: clock.h:45
AUDIO_REPLAY_GAIN_TRACK
#define AUDIO_REPLAY_GAIN_TRACK
Definition: vlc_es.h:53
VLC_VAR_ADDCHOICE
#define VLC_VAR_ADDCHOICE
Definition: vlc_variables.h:96
aout_volume::replay_gain
audio_replay_gain_t replay_gain
Definition: volume.c:59
vlc_clock_main_t
Definition: clock.c:31
AUDIO_CHANNEL_TYPE_AMBISONICS
@ AUDIO_CHANNEL_TYPE_AMBISONICS
Definition: vlc_es.h:75
vlc_tick_from_samples
static vlc_tick_t vlc_tick_from_samples(int64_t samples, int samp_rate)
Definition: vlc_tick.h:101
AOUT_CHAN_REARCENTER
#define AOUT_CHAN_REARCENTER
Definition: vlc_es.h:120
aout_RequestRestart
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
audio_format_t::i_chan_mode
uint16_t i_chan_mode
Definition: vlc_es.h:93
aout_volume_New
#define aout_volume_New(o, g)
Definition: aout_internal.h:124
aout_FiltersPipelineFlush
static void aout_FiltersPipelineFlush(filter_t *const *filters, unsigned count)
Flush the chain of filters.
Definition: filters.c:332
vlc_list_init
static void vlc_list_init(struct vlc_list *restrict head)
Initializes an empty list head.
Definition: vlc_list.h:57
vlc_clock_t::cbs
const struct vlc_clock_cbs * cbs
Definition: clock.c:76
audio_output::play
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
vlc_atomic_rc_dec
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
aout_FiltersFlush
void aout_FiltersFlush(aout_filters_t *filters)
Definition: filters.c:794
vlc_audio_meter_plugin::owner
struct vlc_audio_meter_plugin_owner owner
Definition: meter.c:57
VisualizationCallback
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
INPUT_CHAN_MAX
#define INPUT_CHAN_MAX
Definition: vlc_es.h:155
AvgUpdate
void AvgUpdate(average_t *avg, double value)
Definition: clock_internal.c:50
AvgReset
void AvgReset(average_t *avg)
Definition: clock_internal.c:44
var_GetNonEmptyString
static char * var_GetNonEmptyString(vlc_object_t *p_obj, const char *psz_name)
Definition: vlc_variables.h:447
vlc_value_t::p_address
void * p_address
Definition: vlc_common.h:463
vlc_audio_output_events
Definition: vlc_aout.h:117
aout_volume_Delete
void aout_volume_Delete(aout_volume_t *)
Destroys a software amplifier.
Definition: volume.c:108
aout_FiltersAdjustResampling
bool aout_FiltersAdjustResampling(aout_filters_t *filters, int adjust)
Definition: filters.c:713
var_AddCallback
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
module_exists
bool module_exists(const char *psz_name)
Checks if a module exists.
Definition: modules.c:332
AOUT_MAX_FILTERS
#define AOUT_MAX_FILTERS
Definition: filters.c:347
filter_t::fmt_in
es_format_t fmt_in
Definition: vlc_filter.h:224
VLC_VAR_BOOL
#define VLC_VAR_BOOL
Definition: vlc_variables.h:49
aout_owner_t::filter_format
audio_sample_format_t filter_format
Definition: aout_internal.h:91
vlc_clock_t::update
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
video_format_t
video format description
Definition: vlc_es.h:350
clock_point_t
Definition: clock_internal.h:55
MS_FROM_VLC_TICK
#define MS_FROM_VLC_TICK(vtk)
Definition: vlc_tick.h:123
vlc_clock_Reset
void vlc_clock_Reset(vlc_clock_t *clock)
This function resets the clock drift.
Definition: clock.c:492
var_IncInteger
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_t::owner
vlc_clock_main_t * owner
Definition: clock.c:72
AOUT_RESAMPLING_NONE
@ AOUT_RESAMPLING_NONE
Definition: aout_internal.h:38
aout_FiltersNewWithClock
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
audio_replay_gain_t::pf_peak
float pf_peak[(2)]
Definition: vlc_es.h:60
msg_Dbg
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
vout_configuration_t::vout
vout_thread_t * vout
Definition: vout_internal.h:44
vlc_tick_sleep
#define vlc_tick_sleep(d)
Definition: vlc_threads.h:902
vlc_clock_master_set_delay
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
AOUT_VOLUME_DEFAULT
#define AOUT_VOLUME_DEFAULT
Definition: vlc_aout.h:389
ExtractChannel
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
vlc_audio_meter_OnLoudnessChanged
static void vlc_audio_meter_OnLoudnessChanged(filter_t *filter, const struct vlc_audio_loudness *loudness)
Definition: meter.c:62
AOUT_VAR_CHAN_STEREO
#define AOUT_VAR_CHAN_STEREO
Definition: vlc_aout.h:96
aout_FiltersPipelineDrain
static block_t * aout_FiltersPipelineDrain(filter_t *const *filters, unsigned count)
Drain the chain of filters.
Definition: filters.c:301
aout_FiltersPipelineCreate
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
var_InheritString
static char * var_InheritString(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:705
VLC_CODEC_S32B
#define VLC_CODEC_S32B
Definition: vlc_fourcc.h:558
filter_t::p_cfg
const config_chain_t * p_cfg
Definition: vlc_filter.h:235
AUDIO_REPLAY_GAIN_ALBUM
#define AUDIO_REPLAY_GAIN_ALBUM
Definition: vlc_es.h:54
vlc_clock_ConvertArrayToSystem
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
vlc_clock_main_t::wait_sync_ref_priority
unsigned wait_sync_ref_priority
Definition: clock.c:72
aout_Interleave
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
VLC_CODEC_S24L32
#define VLC_CODEC_S24L32
Definition: vlc_fourcc.h:555
audio_volume::format
vlc_fourcc_t format
Audio samples format.
Definition: vlc_aout_volume.h:49
aout_filters::count
unsigned count
Number of filters.
Definition: filters.c:357
vlc_viewpoint_t
Viewpoints.
Definition: vlc_viewpoint.h:41
vlc_list::prev
struct vlc_list * prev
Definition: vlc_list.h:45
aout_InputRequestRestart
static void aout_InputRequestRestart(audio_output_t *aout)
Definition: aout_internal.h:172
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
aout_Deinterleave
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
VLC_VAR_ADDRESS
#define VLC_VAR_ADDRESS
Definition: vlc_variables.h:53
ARRAY_SIZE
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:178
vlc_dialog_display_error
#define vlc_dialog_display_error(a, b, c,...)
Definition: vlc_dialog.h:73
aout_volume_Delete
void aout_volume_Delete(aout_volume_t *vol)
Destroys a software amplifier.
Definition: volume.c:108
VLC_VAR_INTEGER
#define VLC_VAR_INTEGER
Definition: vlc_variables.h:50
VLC_VAR_STRING
#define VLC_VAR_STRING
Definition: vlc_variables.h:51
AOUT_DEC_FAILED
#define AOUT_DEC_FAILED
Definition: aout_internal.h:156
aout_FiltersPlay
block_t * aout_FiltersPlay(aout_filters_t *filters, block_t *block, float rate)
Definition: filters.c:725
vlc_audio_meter_plugin_owner
Audio meter plugin owner structure.
Definition: vlc_aout.h:594
aout_dev::id
char id[1]
Definition: output.c:62
vlc_clock_cbs::on_update
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
block_t::i_length
vlc_tick_t i_length
Definition: vlc_block.h:131
vlc_list
Doubly-linked list node.
Definition: vlc_list.h:43
VLC_VAR_FLOAT
#define VLC_VAR_FLOAT
Definition: vlc_variables.h:52
AOUT_FILTERS_CFG_INIT
#define AOUT_FILTERS_CFG_INIT
Definition: vlc_aout.h:511
filter_Flush
static void filter_Flush(filter_t *p_filter)
Flush a filter.
Definition: vlc_filter.h:279
clock_point_t::system
vlc_tick_t system
Definition: clock_internal.h:57
aout_PrepareStereoMode
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
audio_format_t::i_rate
unsigned int i_rate
audio sample-rate
Definition: vlc_es.h:84
video_format_AdjustColorSpace
static void video_format_AdjustColorSpace(video_format_t *p_fmt)
Definition: vlc_es.h:428
VLC_CODEC_ALAW
#define VLC_CODEC_ALAW
Definition: vlc_fourcc.h:566
vlc_clock_main_SetDejitter
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
vlc_gettext
const char * vlc_gettext(const char *msgid)
In-tree plugins share their gettext domain with LibVLC.
Definition: textdomain.c:79
aout_owner
static aout_owner_t * aout_owner(audio_output_t *aout)
Definition: aout_internal.h:113
audio_format_t::i_physical_channels
uint16_t i_physical_channels
Definition: vlc_es.h:88
audio_format_t
audio format description
Definition: vlc_es.h:81
aout_DecChangeRate
void aout_DecChangeRate(audio_output_t *aout, float rate)
Definition: dec.c:544
vlc_clock_main_t::coeff
double coeff
Definition: clock.c:66
vlc_audio_meter_CreatePluginFilter
static filter_t * vlc_audio_meter_CreatePluginFilter(struct vlc_audio_meter *meter, vlc_audio_meter_plugin *plugin)
Definition: meter.c:72
vlc_clock_main_Abort
void vlc_clock_main_Abort(vlc_clock_main_t *main_clock)
Abort all the pending vlc_clock_Wait.
Definition: clock.c:395
asprintf
int asprintf(char **, const char *,...)
vlc_clock_set_master_callbacks
static void vlc_clock_set_master_callbacks(vlc_clock_t *clock)
Definition: clock.c:524
var_Change
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_clock_t::delay
vlc_tick_t delay
Definition: clock.c:73
vlc_clock_Wait
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_value_t::i_int
int64_t i_int
Definition: vlc_common.h:459
vlc_clock_set_slave_callbacks
static void vlc_clock_set_slave_callbacks(vlc_clock_t *clock)
Definition: clock.c:532
vlc_audio_meter::lock
vlc_mutex_t lock
Definition: vlc_aout.h:609
vlc_clock_main_New
vlc_clock_main_t * vlc_clock_main_New(void)
This function creates the vlc_clock_main_t of the program.
Definition: clock.c:362
vlc_mutex_t
Mutex.
Definition: vlc_threads.h:225
VLC_CODEC_F32L
#define VLC_CODEC_F32L
Definition: vlc_fourcc.h:561
aout_volume
Definition: volume.c:37
vlc_audio_meter_plugin::filter
filter_t * filter
Definition: meter.c:54
aout_FiltersPipelineChangeViewpoint
static void aout_FiltersPipelineChangeViewpoint(filter_t *const *filters, unsigned count, const vlc_viewpoint_t *vp)
Definition: filters.c:339
aout_owner_t::list
struct vlc_list list
Definition: aout_internal.h:56
vlc_audio_meter::fmt
const audio_sample_format_t * fmt
Definition: vlc_aout.h:611
vlc_clock_main_CreateMaster
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
aout_DecSilence
static void aout_DecSilence(audio_output_t *aout, vlc_tick_t length, vlc_tick_t pts)
Definition: dec.c:247
audio_format_t::i_channels
uint8_t i_channels
Definition: vlc_es.h:113
AOUT_VAR_CHAN_HEADPHONES
#define AOUT_VAR_CHAN_HEADPHONES
Definition: vlc_aout.h:101
VLC_CODEC_S24B32
#define VLC_CODEC_S24B32
Definition: vlc_fourcc.h:556
aout_Release
void aout_Release(audio_output_t *aout)
Definition: output.c:382
audio_output::pause
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_clock_main_t::pause_date
vlc_tick_t pause_date
Definition: clock.c:70
aout_MuteSet
int aout_MuteSet(audio_output_t *aout, bool mute)
Sets the audio output stream mute flag.
Definition: output.c:706
var_TriggerCallback
void() var_TriggerCallback(vlc_object_t *p_this, const char *psz_name)
Triggers callbacks on a variable.
Definition: variables.c:864
filter_t::fmt_out
es_format_t fmt_out
Definition: vlc_filter.h:228
clock.h
vlc_fourcc_GetCodec
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_t
Vout configuration.
Definition: vout_internal.h:43
AOUT_FMT_LINEAR
#define AOUT_FMT_LINEAR(p_format)
Definition: vlc_aout.h:75
es_format_category_e
es_format_category_e
ES Categories.
Definition: vlc_es.h:600
VLC_CODEC_U32L
#define VLC_CODEC_U32L
Definition: vlc_fourcc.h:559
block_ChainGather
static block_t * block_ChainGather(block_t *p_list)
Definition: vlc_block.h:409
aout_owner_t::delay
vlc_tick_t delay
Definition: aout_internal.h:75
AOUT_VAR_CHAN_UNSET
#define AOUT_VAR_CHAN_UNSET
Definition: vlc_aout.h:95
vlc_clock_main_SetInputDejitter
void vlc_clock_main_SetInputDejitter(vlc_clock_main_t *main_clock, vlc_tick_t delay)
Definition: clock.c:427
aout_DecGetResetStats
void aout_DecGetResetStats(audio_output_t *aout, unsigned *restrict lost, unsigned *restrict played)
Definition: dec.c:520
aout_filters
Definition: filters.c:349
VLC_CODEC_S16N
#define VLC_CODEC_S16N
Definition: vlc_fourcc.h:644
msg_Warn
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
audio_output
Audio output object.
Definition: vlc_aout.h:141
aout_DecFlush
void aout_DecFlush(audio_output_t *aout)
Definition: dec.c:558
filter_Close
static void filter_Close(filter_t *p_filter)
Definition: vlc_filter.h:244
aout_FormatPrint
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
aout_events
static const struct vlc_audio_output_events aout_events
Definition: output.c:161
vlc_clock_main_Reset
void vlc_clock_main_Reset(vlc_clock_main_t *main_clock)
Reset the vlc_clock_main_t.
Definition: clock.c:404
vlc_assert_unreachable
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
var_GetString
static char * var_GetString(vlc_object_t *p_obj, const char *psz_name)
Get a string value.
Definition: vlc_variables.h:437
aout_EnableFilter
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
aout_FormatPrintChannels
const char * aout_FormatPrintChannels(const audio_sample_format_t *p_format)
Definition: common.c:105
vlc_clock_main_t::rate
double rate
Definition: clock.c:65
VLC_CODEC_U16B
#define VLC_CODEC_U16B
Definition: vlc_fourcc.h:549
filter_owner_t
Definition: vlc_filter.h:65
DEFAULT_PTS_DELAY
#define DEFAULT_PTS_DELAY
Definition: vlc_config.h:69
AOUT_CHAN_MIDDLELEFT
#define AOUT_CHAN_MIDDLELEFT
Definition: vlc_es.h:123
AOUT_FMTS_IDENTICAL
#define AOUT_FMTS_IDENTICAL(p_first, p_second)
Definition: vlc_aout.h:64
var_SetString
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
AppendFilter
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_now
vlc_tick_t vlc_tick_now(void)
Precision monotonic clock.
Definition: thread.c:261
vout_Close
void vout_Close(vout_thread_t *vout)
Destroys a vout.
Definition: video_output.c:1885
audio_format_t::i_bytes_per_frame
unsigned int i_bytes_per_frame
Definition: vlc_es.h:100
aout_HotplugNotify
static void aout_HotplugNotify(audio_output_t *aout, const char *id, const char *name)
Definition: output.c:101
vlc_audio_meter
Audio meter structure.
Definition: vlc_aout.h:607
DEINTERLEAVE_TYPE
#define DEINTERLEAVE_TYPE(type)
aout_dev
Definition: output.c:38
vlc_clock_t::reset
void(* reset)(vlc_clock_t *clock)
Definition: clock.c:67
aout_owner_t::rate
float rate
Play-out speed rate.
Definition: aout_internal.h:70
audio_format_t::i_format
vlc_fourcc_t i_format
audio format fourcc
Definition: vlc_es.h:83
aout_owner_t::requested_stereo_mode
int requested_stereo_mode
Requested stereo mode set by the user.
Definition: aout_internal.h:80
config_chain_t
Definition: vlc_configuration.h:331
AOUT_CHANMODE_DOLBYSTEREO
#define AOUT_CHANMODE_DOLBYSTEREO
Definition: vlc_es.h:173
aout_SetWavePhysicalChannels
static void aout_SetWavePhysicalChannels(audio_sample_format_t *fmt)
Definition: aout_internal.h:177
AOUT_CHAN_LFE
#define AOUT_CHAN_LFE
Definition: vlc_es.h:125
filter_audio_callbacks::on_changed
void(* on_changed)(filter_t *, const struct vlc_audio_loudness *loudness)
Definition: vlc_filter.h:55
vlc_audio_meter_Flush
void vlc_audio_meter_Flush(struct vlc_audio_meter *meter)
Flush all "audio meter" plugins.
Definition: meter.c:212
vlc_clock_main_t::rc
unsigned rc
Definition: clock.c:57
module_t
Internal module descriptor.
Definition: modules.h:78
vlc_atomic_rc_inc
static void vlc_atomic_rc_inc(vlc_atomic_rc_t *rc)
Increment the RC.
Definition: vlc_atomic.h:52
filter_t
Structure describing a filter.
Definition: vlc_filter.h:215
vlc_clock_master_reset
static void vlc_clock_master_reset(vlc_clock_t *clock)
Definition: clock.c:168
vlc_audio_meter_cbs::on_loudness
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
vlc_atomic.h
aout_internal.h
vlc_tick_t
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
aout_FiltersSetClockDelay
void aout_FiltersSetClockDelay(aout_filters_t *filters, vlc_tick_t delay)
Definition: filters.c:668
vlc_clock_Reset
void vlc_clock_Reset(vlc_clock_t *clock)
This function resets the clock drift.
Definition: clock.c:492
audio_replay_gain_t::pb_peak
bool pb_peak[(2)]
Definition: vlc_es.h:58
aout_New
audio_output_t * aout_New(vlc_object_t *parent)
Creates an audio output object and initializes an output module.
Definition: output.c:211
vlc_list_remove
static void vlc_list_remove(struct vlc_list *restrict node)
Removes an element from a list.
Definition: vlc_list.h:135
vlc_list_append
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_Alloc
block_t * block_Alloc(size_t size)
Allocates a block.
Definition: block.c:108
aout_OutputDelete
void aout_OutputDelete(audio_output_t *p_aout)
Stops the audio output stream (undoes aout_OutputNew()).
Definition: output.c:632
filter_owner_t::sys
void * sys
Definition: vlc_filter.h:78
block_t::i_flags
uint32_t i_flags
Definition: vlc_block.h:126
aout_DeviceNotify
static void aout_DeviceNotify(audio_output_t *aout, const char *id)
Definition: output.c:96
aout_FiltersPipelinePlay
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
aout_owner_t::resamp_start_drift
vlc_tick_t resamp_start_drift
Resampler drift absolute value.
Definition: aout_internal.h:71
aout_owner_t::resamp_type
int resamp_type
Resampler mode (FIXME: redundant / resampling)
Definition: aout_internal.h:72
aout_StopResampling
static void aout_StopResampling(audio_output_t *aout)
Definition: dec.c:236
vlc_filter.h
audio_output::headphones
bool headphones
Default to false, set it to true if the current sink is using headphones.
Definition: vlc_aout.h:277
filter_audio_callbacks
Definition: vlc_filter.h:51
VLC_CODEC_U16L
#define VLC_CODEC_U16L
Definition: vlc_fourcc.h:548
AvgInit
void AvgInit(average_t *avg, int range)
Definition: clock_internal.c:33
block_t::i_nb_samples
unsigned i_nb_samples
Definition: vlc_block.h:127
vlc_clock_CreateSlave
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
VLC_TICK_INVALID
#define VLC_TICK_INVALID
Definition: vlc_config.h:44
aout_RestartRequest
static void aout_RestartRequest(audio_output_t *aout, unsigned mode)
Definition: vlc_aout.h:455
aout_TimingNotify
static void aout_TimingNotify(audio_output_t *aout, vlc_tick_t system_ts, vlc_tick_t audio_ts)
Definition: output.c:66
vlc_clock_t::set_delay
vlc_tick_t(* set_delay)(vlc_clock_t *clock, vlc_tick_t delay)
Definition: clock.c:68
vlc_audio_meter_RemovePlugin
void vlc_audio_meter_RemovePlugin(struct vlc_audio_meter *meter, vlc_audio_meter_plugin *plugin)
Remove an "audio meter" plugin.
Definition: meter.c:130
filter_t::ops
const struct vlc_filter_operations * ops
Definition: vlc_filter.h:238
aout_filters::resampling
int resampling
Current resampling (Hz)
Definition: filters.c:354
aout_DecDelete
void aout_DecDelete(audio_output_t *aout)
Stops all plugins involved in the audio output.
Definition: dec.c:143
aout_filter_GetVout
vout_thread_t * aout_filter_GetVout(filter_t *filter, const video_format_t *fmt)
Definition: filters.c:389
audio_format_t::channel_type
audio_channel_type_t channel_type
Definition: vlc_es.h:96
audio_output::device_select
int(* device_select)(audio_output_t *, const char *id)
Selects an audio output device (optional, may be NULL).
Definition: vlc_aout.h:267
StereoModeCallback
static int StereoModeCallback(vlc_object_t *obj, const char *varname, vlc_value_t oldval, vlc_value_t newval, void *data)
Definition: output.c:181
vlc_clock_slave_reset
static void vlc_clock_slave_reset(vlc_clock_t *clock)
Definition: clock.c:315
AppendRemapFilter
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
VLC_CODEC_S32L
#define VLC_CODEC_S32L
Definition: vlc_fourcc.h:557
aout_volume::object
audio_volume_t object
Definition: volume.c:58
aout_DecChangePause
void aout_DecChangePause(audio_output_t *aout, bool paused, vlc_tick_t date)
Definition: dec.c:531
var_SetBool
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
aout_volume_SetFormat
int aout_volume_SetFormat(aout_volume_t *vol, vlc_fourcc_t format)
Selects the current sample format for software amplification.
Definition: volume.c:81
aout_MuteNotify
static void aout_MuteNotify(audio_output_t *aout, bool mute)
Definition: output.c:86
VLC_CLOCK_MASTER_MONOTONIC
@ VLC_CLOCK_MASTER_MONOTONIC
Definition: clock.h:46
AOUT_CHAN_MAX
#define AOUT_CHAN_MAX
Definition: vlc_es.h:153
audio_replay_gain_t::pf_gain
float pf_gain[(2)]
Definition: vlc_es.h:65
aout_ChangeViewpoint
static void aout_ChangeViewpoint(audio_output_t *, const vlc_viewpoint_t *)
Definition: output.c:803
vlc_audio_meter_plugin_owner::sys
void * sys
Definition: vlc_aout.h:597
vlc_value_t::psz_string
char * psz_string
Definition: vlc_common.h:462
vlc_clock_Delete
void vlc_clock_Delete(vlc_clock_t *clock)
This function free the resources allocated by vlc_clock*Create*()
Definition: clock.c:650
aout_volume_SetVolume
void aout_volume_SetVolume(aout_volume_t *vol, float factor)
Definition: volume.c:122
vlc_audio_meter_Init
#define vlc_audio_meter_Init(a, b)
Definition: vlc_aout.h:624
aout_filters_cfg_t::headphones
bool headphones
If true, a filter will be inserted to add a headphones effect (like a binauralizer audio filter).
Definition: vlc_aout.h:508
aout_ChannelExtract
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
block_t::i_pts
vlc_tick_t i_pts
Definition: vlc_block.h:129
aout_filters::resampler
filter_t * resampler
The resampler.
Definition: filters.c:353
vlc_filter_operations::filter_audio
block_t *(* filter_audio)(filter_t *, block_t *)
Filter an audio block (audio filter)
Definition: vlc_filter.h:92
vlc_clock_main_New
vlc_clock_main_t * vlc_clock_main_New(void)
This function creates the vlc_clock_main_t of the program.
Definition: clock.c:362
es_format_t::audio
audio_format_t audio
description of audio format
Definition: vlc_es.h:643
vlc_clock_main_ChangePause
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
audio_output::stop
void(* stop)(audio_output_t *)
Stops the existing stream (mandatory, cannot be NULL).
Definition: vlc_aout.h:164
audio_volume::amplify
void(* amplify)(audio_volume_t *, block_t *, float)
Amplifier.
Definition: vlc_aout_volume.h:50
vlc_clock_t
Definition: clock.c:62
AOUT_VAR_CHAN_MONO
#define AOUT_VAR_CHAN_MONO
Definition: vlc_aout.h:102
vlc_clock_main_CreateMaster
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
vlc_clock_main_t::last
clock_point_t last
Linear function system = ts * coeff / rate + offset.
Definition: clock.c:63
var_GetFloat
static float var_GetFloat(vlc_object_t *p_obj, const char *psz_name)
Get a float value.
Definition: vlc_variables.h:421
vlc_clock_main_Create
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
AvgGet
double AvgGet(average_t *avg)
Definition: clock_internal.c:70
static_assert
#define static_assert
Definition: vlc_fixups.h:370
FindResampler
static filter_t * FindResampler(vlc_object_t *obj, const audio_sample_format_t *infmt, const audio_sample_format_t *outfmt)
Definition: filters.c:101
vlc_audio_meter_Destroy
void vlc_audio_meter_Destroy(struct vlc_audio_meter *meter)
Free allocated resource from the audio meter structure.
Definition: meter.c:54
AOUT_CHAN_REARRIGHT
#define AOUT_CHAN_REARRIGHT
Definition: vlc_es.h:122
vlc_clock_t::priority
unsigned priority
Definition: clock.c:74
filter_audio_callbacks::meter_loudness
struct filter_audio_callbacks::@210 meter_loudness
VLC_CODEC_DTS
#define VLC_CODEC_DTS
Definition: vlc_fourcc.h:466
aout_FormatsPrint
#define aout_FormatsPrint(o, t, a, b)
Definition: aout_internal.h:150
AOUT_CHAN_LEFT
#define AOUT_CHAN_LEFT
Definition: vlc_es.h:118
AUDIO_ES
@ AUDIO_ES
Definition: vlc_es.h:604
vlc_clock_main_t::abort
bool abort
Definition: clock.c:77
audio_output::volume_set
int(* volume_set)(audio_output_t *, float volume)
Changes playback volume (optional, may be NULL).
Definition: vlc_aout.h:246
VLC_CODEC_S8
#define VLC_CODEC_S8
Definition: vlc_fourcc.h:543
vlc_clock_main_Delete
void vlc_clock_main_Delete(vlc_clock_main_t *main_clock)
Destroy the clock main.
Definition: clock.c:473
aout_DecChangeDelay
void aout_DecChangeDelay(audio_output_t *aout, vlc_tick_t delay)
Definition: dec.c:551
audio_output::events
const struct vlc_audio_output_events * events
Definition: vlc_aout.h:282
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.
Definition: common.c:241
aout_Hold
audio_output_t * aout_Hold(audio_output_t *aout)
Definition: output.c:348
main_stream_to_system
static vlc_tick_t main_stream_to_system(vlc_clock_main_t *main_clock, vlc_tick_t ts)
Definition: clock.c:80
aout_FiltersDelete
#define aout_FiltersDelete(o, f)
Definition: vlc_aout.h:525
vlc_clock_UpdateVideo
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_owner_t::volume
aout_volume_t * volume
Definition: aout_internal.h:50
VLC_CODEC_F64L
#define VLC_CODEC_F64L
Definition: vlc_fourcc.h:563
vlc_clock_main_t::output_dejitter
vlc_tick_t output_dejitter
Definition: clock.c:75
vlc_clock_main_Reset
void vlc_clock_main_Reset(vlc_clock_main_t *main_clock)
Reset the vlc_clock_main_t.
Definition: clock.c:404
vlc_clock_cbs
Callbacks for the owner of the main clock.
Definition: clock.h:37
aout_filters_cfg_t::remap
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
vlc_audio_meter_plugin::node
struct vlc_list node
Definition: meter.c:59
vlc_clock_main_t::cond
vlc_cond_t cond
Definition: clock.c:52
block_ChainAppend
static void block_ChainAppend(block_t **pp_list, block_t *p_block)
Definition: vlc_block.h:333
AOUT_VAR_CHAN_LEFT
#define AOUT_VAR_CHAN_LEFT
Definition: vlc_aout.h:98
AOUT_MAX_PTS_ADVANCE
#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_t
VLC object common members.
Definition: vlc_objects.h:43
config_ChainCreate
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
aout_volume_SetFormat
int aout_volume_SetFormat(aout_volume_t *, vlc_fourcc_t)
Selects the current sample format for software amplification.
Definition: volume.c:81
aout_VolumeSet
int aout_VolumeSet(audio_output_t *aout, float vol)
Sets the volume of the audio output stream.
Definition: output.c:655
VLC_CODEC_F32B
#define VLC_CODEC_F32B
Definition: vlc_fourcc.h:562
VLC_ENOMEM
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:476
aout_filters::clock
vlc_clock_t * clock
Definition: filters.c:355
vlc_clock_t::to_system_locked
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
module_config_t
Configuration item.
Definition: vlc_configuration.h:76
audio_output::drain
void(* drain)(audio_output_t *)
Drain the playback buffers (can be NULL).
Definition: vlc_aout.h:239
samples_from_vlc_tick
static int64_t samples_from_vlc_tick(vlc_tick_t t, int samp_rate)
Definition: vlc_tick.h:105
AOUT_VAR_CHAN_DOLBYS
#define AOUT_VAR_CHAN_DOLBYS
Definition: vlc_aout.h:100
config_ChainDestroy
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
TryFormat
static filter_t * TryFormat(vlc_object_t *obj, vlc_fourcc_t codec, audio_sample_format_t *restrict fmt)
Definition: filters.c:127
VLC_UNUSED
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
aout_MuteGet
int aout_MuteGet(audio_output_t *aout)
Gets the audio output stream mute flag.
Definition: output.c:697
ReplayGainCallback
static int ReplayGainCallback(vlc_object_t *, char const *, vlc_value_t, vlc_value_t, void *)
Definition: volume.c:194
VLC_CODEC_DTSHD
#define VLC_CODEC_DTSHD
Definition: vlc_fourcc.h:468
vlc_clock_ConvertArrayToSystem
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
VLC_CODEC_U24L
#define VLC_CODEC_U24L
Definition: vlc_fourcc.h:553
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
var_SetFloat
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
VLC_CODEC_A52
#define VLC_CODEC_A52
Definition: vlc_fourcc.h:463
strdup
char * strdup(const char *)
aout_owner_t::input_format
audio_sample_format_t input_format
Definition: aout_internal.h:85
aout_owner_t::rc
vlc_atomic_rc_t rc
Definition: aout_internal.h:104
aout_FiltersCanResample
bool aout_FiltersCanResample(aout_filters_t *filters)
Definition: filters.c:708
AOUT_CHANS_7_1
#define AOUT_CHANS_7_1
Definition: vlc_es.h:143
aout_FiltersCanResample
bool aout_FiltersCanResample(aout_filters_t *filters)
Definition: filters.c:708
vlc_custom_create
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:117
AOUT_CHANIDX_RIGHT
@ AOUT_CHANIDX_RIGHT
Definition: vlc_aout.h:289
es_format_t::i_codec
vlc_fourcc_t i_codec
FOURCC value as used in vlc.
Definition: vlc_es.h:620
aout_RequestRetiming
void aout_RequestRetiming(audio_output_t *aout, vlc_tick_t system_ts, vlc_tick_t audio_ts)
Definition: dec.c:323
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
name
const char name[16]
Definition: httpd.c:1268
VLC_CODEC_U32B
#define VLC_CODEC_U32B
Definition: vlc_fourcc.h:560
aout_OutputNew
int aout_OutputNew(audio_output_t *)
Starts an audio output stream.
Definition: output.c:525
aout_FiltersDelete
void aout_FiltersDelete(vlc_object_t *obj, aout_filters_t *filters)
Destroys a chain of audio filters.
Definition: filters.c:697
aout_volume::module
module_t * module
Definition: volume.c:62
VLC_CODEC_FL64
#define VLC_CODEC_FL64
Definition: vlc_fourcc.h:651
module_config_t::list
union module_config_t::@194 list
Possible choices.
pi_vlc_chan_order_wg4
static const uint32_t pi_vlc_chan_order_wg4[]
It describes the audio channel order VLC expect.
Definition: vlc_aout.h:317
aout_VolumeUpdate
int aout_VolumeUpdate(audio_output_t *aout, int value, float *volp)
Raises the volume.
Definition: output.c:671
vlc_clock_main_Abort
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
@ VLC_CLOCK_MASTER_AUTO
Definition: clock.h:43
aout_CheckChannelExtraction
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
VLC_CODEC_S16L
#define VLC_CODEC_S16L
Definition: vlc_fourcc.h:545
aout_owner_t::mixer_format
audio_sample_format_t mixer_format
Definition: aout_internal.h:94
aout_owner_t::bitexact
bool bitexact
Definition: aout_internal.h:51
VLC_CODEC_S16B
#define VLC_CODEC_S16B
Definition: vlc_fourcc.h:547
aout_FiltersResetClock
void aout_FiltersResetClock(aout_filters_t *filters)
Definition: filters.c:662
aout_DevicesList
int aout_DevicesList(audio_output_t *aout, char ***ids, char ***names)
Enumerates possible audio output devices.
Definition: output.c:754
VLC_CODEC_S24L
#define VLC_CODEC_S24L
Definition: vlc_fourcc.h:551
vlc_cond_t
Condition variable.
Definition: vlc_threads.h:349
aout_FormatPrepare
void aout_FormatPrepare(audio_sample_format_t *p_format)
Definition: common.c:87
FindConverter
static filter_t * FindConverter(vlc_object_t *obj, const audio_sample_format_t *infmt, const audio_sample_format_t *outfmt)
Definition: filters.c:93
aout_owner_t::vp
struct aout_owner_t::@7 vp
aout_GainNotify
static int aout_GainNotify(audio_output_t *aout, float gain)
Definition: output.c:151
aout_TimeGet
static int aout_TimeGet(audio_output_t *aout, vlc_tick_t *delay)
Definition: vlc_aout.h:535
aout_owner_t::sync
struct aout_owner_t::@8 sync
aout_DecNew
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
VLC_CODEC_MULAW
#define VLC_CODEC_MULAW
Definition: vlc_fourcc.h:567
vlc_clock_main_CreateSlave
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
@ SPU_ES
Definition: vlc_es.h:605
vlc_clock_t::cbs_data
void * cbs_data
Definition: clock.c:77
aout_volume::gain_factor
_Atomic float gain_factor
Definition: volume.c:60
ViewpointCallback
static int ViewpointCallback(vlc_object_t *obj, const char *var, vlc_value_t prev, vlc_value_t cur, void *data)
Definition: output.c:198
audio_output::mute_set
int(* mute_set)(audio_output_t *, bool mute)
Changes muting (optinal, may be NULL).
Definition: vlc_aout.h:260
FilterOrder
static int FilterOrder(const char *psz_name)
Definition: common.c:523
aout_Drain
static void aout_Drain(audio_output_t *aout)
Definition: dec.c:41
vlc_clock_main_SetFirstPcr
void vlc_clock_main_SetFirstPcr(vlc_clock_main_t *main_clock, vlc_tick_t system_now, vlc_tick_t ts)
Definition: clock.c:413
aout_owner_t::buffers_played
atomic_uint buffers_played
Definition: aout_internal.h:101
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)
Definition: filters.c:43
aout_FiltersResetClock
void aout_FiltersResetClock(aout_filters_t *filters)
Definition: filters.c:662
var_GetInteger
static int64_t var_GetInteger(vlc_object_t *p_obj, const char *psz_name)
Get an integer value.
Definition: vlc_variables.h:374
vlc_audio_meter_plugin
Definition: meter.c:32
vlc_audio_meter_plugin_owner::cbs
const struct vlc_audio_meter_cbs * cbs
Definition: vlc_aout.h:596
aout_ChannelReorder
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
module_config_t::list_count
uint16_t list_count
Choices count.
Definition: vlc_configuration.h:96
aout_owner_t::restart
atomic_uchar restart
Definition: aout_internal.h:102
audio_output::time_get
int(* time_get)(audio_output_t *, vlc_tick_t *delay)
Estimates playback buffer latency (mandatory, cannot be NULL).
Definition: vlc_aout.h:173
vlc_list_foreach
#define vlc_list_foreach(pos, head, member)
List iteration macro.
Definition: vlc_list.h:261
aout_DeviceGet
char * aout_DeviceGet(audio_output_t *aout)
Gets the currently selected device.
Definition: output.c:722
AOUT_RESAMPLING_DOWN
@ AOUT_RESAMPLING_DOWN
Definition: aout_internal.h:40
module_config_t::psz
const char ** psz
Table of possible string choices.
Definition: vlc_configuration.h:99
vlc_object_parent
#define vlc_object_parent(o)
Definition: vlc_objects.h:158
vlc_clock_main_reset
static void vlc_clock_main_reset(vlc_clock_main_t *main_clock)
Definition: clock.c:89
aout_volume_SetVolume
void aout_volume_SetVolume(aout_volume_t *, float)
Definition: volume.c:122
AOUT_CHAN_REARLEFT
#define AOUT_CHAN_REARLEFT
Definition: vlc_es.h:121
libvlc.h
filter_ChangeViewpoint
static void filter_ChangeViewpoint(filter_t *p_filter, const vlc_viewpoint_t *vp)
Definition: vlc_filter.h:285
vlc_filter_operations::drain_audio
block_t *(* drain_audio)(filter_t *)
Drain (audio filter)
Definition: vlc_filter.h:113
block_t::i_dts
vlc_tick_t i_dts
Definition: vlc_block.h:130
aout_FiltersDrain
block_t * aout_FiltersDrain(aout_filters_t *filters)
Definition: filters.c:762
audio_output::start
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_AddPlugin
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
REORDER_TYPE
#define REORDER_TYPE(type)
aout_filters::rate_filter
filter_t * rate_filter
The filter adjusting samples count (either the scaletempo filter or a resampler)
Definition: filters.c:351
var_Set
int() var_Set(vlc_object_t *p_this, const char *psz_name, vlc_value_t val)
Sets a variable value.
Definition: variables.c:721
aout_Destroy
void aout_Destroy(audio_output_t *aout)
Deinitializes an audio output module and destroys an audio output object.
Definition: output.c:359
aout_owner_t::update
atomic_bool update
Definition: aout_internal.h:62
vlc_clock_main_t::wait_sync_ref
clock_point_t wait_sync_ref
Definition: clock.c:73
aout_volume_Amplify
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
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)
Definition: filters.c:43
vlc_object_delete
#define vlc_object_delete(obj)
Definition: vlc_objects.h:136
likely
#define likely(p)
Predicted true condition.
Definition: vlc_common.h:218
aout_PolicyNotify
static void aout_PolicyNotify(audio_output_t *aout, bool cork)
Definition: output.c:91
aout_DecDrain
void aout_DecDrain(audio_output_t *aout)
Definition: dec.c:593
vlc_audio_meter_Process
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
block_t::p_buffer
uint8_t * p_buffer
Payload start.
Definition: vlc_block.h:121
AOUT_VAR_CHAN_RSTEREO
#define AOUT_VAR_CHAN_RSTEREO
Definition: vlc_aout.h:97
config_ChainParseOptions
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
VLC_OBJECT
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_objects.h:70
strsep
char * strsep(char **, const char *)
vlc_aout.h
vlc_aout_volume.h
audio_format_t::i_frame_length
unsigned int i_frame_length
Definition: vlc_es.h:103
vout_thread_t
Video output thread descriptor.
Definition: vlc_vout.h:55
BLOCK_FLAG_DISCONTINUITY
#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
aout_filters_cfg_t
Definition: vlc_aout.h:497
vlc_cond_init
void vlc_cond_init(vlc_cond_t *cond)
Initializes a condition variable.
Definition: threads.c:234
aout_CheckReady
static int aout_CheckReady(audio_output_t *aout)
Definition: dec.c:158
vlc_clock_main_CreateInputMaster
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
@ AOUT_CHANIDX_LEFT
Definition: vlc_aout.h:288
var_InheritFloat
static float var_InheritFloat(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:695
vlc_alloc
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:1144
audio_output::flush
void(* flush)(audio_output_t *)
Flushes the playback buffers (mandatory, cannot be NULL).
Definition: vlc_aout.h:231
aout_OutputDelete
void aout_OutputDelete(audio_output_t *aout)
Stops the audio output stream (undoes aout_OutputNew()).
Definition: output.c:632
aout_owner_t::value
vlc_viewpoint_t value
Definition: aout_internal.h:64
vlc_audio_meter_Init
void() vlc_audio_meter_Init(struct vlc_audio_meter *meter, vlc_object_t *obj)
Initialize the audio meter structure.
Definition: meter.c:45
vlc_cond_timedwait
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
module_unneed
#define module_unneed(a, b)
Definition: vlc_modules.h:126
aout_FiltersNew
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
AOUT_CHANS_STEREO
#define AOUT_CHANS_STEREO
Definition: vlc_es.h:132
aout_ReplayGainSelect
static float aout_ReplayGainSelect(vlc_object_t *obj, const char *str, const audio_replay_gain_t *replay_gain)
Definition: volume.c:145
aout_DecPlay
int aout_DecPlay(audio_output_t *aout, block_t *block)
Definition: dec.c:429
vlc_atomic_rc_init
static void vlc_atomic_rc_init(vlc_atomic_rc_t *rc)
Init the RC to 1.
Definition: vlc_atomic.h:46
aout_AddMeterPlugin
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_CreateSlave
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
block_Release
void block_Release(block_t *block)
Releases a block.
Definition: block.c:135
aout_instance_t
Definition: aout_internal.h:107
vlc_clock_Wait
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_clock_Update
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
aout_FiltersSetClockDelay
void aout_FiltersSetClockDelay(aout_filters_t *filters, vlc_tick_t delay)
Definition: filters.c:668
vlc_value_t
VLC value structure.
Definition: vlc_common.h:457
aout_owner_t::clock
struct vlc_clock_t * clock
Definition: aout_internal.h:69
vlc_clock_main_t::master
vlc_clock_t * master
Definition: clock.c:54
aout_owner_t::filters_cfg
aout_filters_cfg_t filters_cfg
Definition: aout_internal.h:96
var_CopyDevice
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
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
aout_owner_t::module
module_t * module
Output plugin (or NULL if inactive)
Definition: aout_internal.h:48
vlc_clock_ConvertToSystem
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
vlc_clock_on_update
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_t
Audio channel type.
Definition: vlc_es.h:72
VLC_CODEC_EAC3
#define VLC_CODEC_EAC3
Definition: vlc_fourcc.h:464
aout_dev_t
struct aout_dev aout_dev_t
aout_DecSynchronize
static void aout_DecSynchronize(audio_output_t *aout, vlc_tick_t system_now, vlc_tick_t dec_pts)
Definition: dec.c:272
var
const char var[sizeof("video")]
Definition: player.c:1732
block_t
Definition: vlc_block.h:117
aout_owner_t::original_pts
vlc_tick_t original_pts
Definition: aout_internal.h:78
vlc_dialog.h
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
audio_replay_gain_t::pb_gain
bool pb_gain[(2)]
Definition: vlc_es.h:63
AOUT_CHANIDX_MAX
@ AOUT_CHANIDX_MAX
Definition: vlc_aout.h:297
audio_volume
Audio volume.
Definition: vlc_aout_volume.h:45
aout_owner_t::count
unsigned count
Definition: aout_internal.h:57
aout_owner_t::request_delay
vlc_tick_t request_delay
Definition: aout_internal.h:74
vlc_clock_main_t::coeff_avg
average_t coeff_avg
Definition: clock.c:64
vlc_audio_meter_plugin::last_date
vlc_tick_t last_date
Definition: meter.c:55
vlc_clock_main_t::first_pcr
clock_point_t first_pcr
Definition: clock.c:74
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....
Definition: dec.c:225
AOUT_CHANMODE_DUALMONO
#define AOUT_CHANMODE_DUALMONO
Definition: vlc_es.h:172
vlc_clock_main_SetInputDejitter
void vlc_clock_main_SetInputDejitter(vlc_clock_main_t *main_clock, vlc_tick_t delay)
Definition: clock.c:427
module_need
#define module_need(a, b, c, d)
Definition: vlc_modules.h:111
vlc_clock_slave_set_delay
static vlc_tick_t vlc_clock_slave_set_delay(vlc_clock_t *clock, vlc_tick_t delay)
Definition: clock.c:328
VLC_CODEC_FL32
#define VLC_CODEC_FL32
Definition: vlc_fourcc.h:650
aout_FormatPrint
#define aout_FormatPrint(o, t, f)
Definition: vlc_aout.h:386
vlc_audio_meter_plugin::cfg
config_chain_t * cfg
Definition: meter.c:53
VLC_CODEC_U8
#define VLC_CODEC_U8
Definition: vlc_fourcc.h:544
vlc_audio_meter::plugins
struct vlc_list plugins
Definition: vlc_aout.h:613
vlc_audio_loudness
Audio loudness measurement.
Definition: vlc_aout.h:549
aout_volume::output_factor
float output_factor
Definition: volume.c:61
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)
vlc_fourcc_t
uint32_t vlc_fourcc_t
Definition: fourcc_gen.c:33
vlc_clock_slave_to_system_locked
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
p
#define p(t)
vlc_modules.h
aout_OutputNew
int aout_OutputNew(audio_output_t *aout)
Starts an audio output stream.
Definition: output.c:525
FilterCallback
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_t::owner
filter_owner_t owner
Private structure for the owner of the filter.
Definition: vlc_filter.h:241
VLC_CODEC_S24B
#define VLC_CODEC_S24B
Definition: vlc_fourcc.h:552