VLC  4.0.0-dev
aout_internal.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * aout_internal.h : internal defines for audio output
3  *****************************************************************************
4  * Copyright (C) 2002 VLC authors and VideoLAN
5  *
6  * Authors: Christophe Massiot <massiot@via.ecp.fr>
7  *
8  * This program is free software; you can redistribute it and/or modify it
9  * under the terms of the GNU Lesser General Public License as published by
10  * the Free Software Foundation; either version 2.1 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License
19  * along with this program; if not, write to the Free Software Foundation,
20  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
21  *****************************************************************************/
22 
23 #ifndef LIBVLC_AOUT_INTERNAL_H
24 # define LIBVLC_AOUT_INTERNAL_H 1
25 
26 # include <stdatomic.h>
27 
28 # include <vlc_atomic.h>
29 # include <vlc_filter.h>
30 # include <vlc_list.h>
31 # include <vlc_viewpoint.h>
32 # include "../clock/clock.h"
33 
34 /* Max input rate factor (1/4 -> 4) */
35 # define AOUT_MAX_INPUT_RATE (4)
36 
37 enum {
41 };
42 
43 typedef struct aout_volume aout_volume_t;
44 
45 typedef struct
46 {
48  module_t *module; /**< Output plugin (or NULL if inactive) */
51  bool bitexact;
52 
53  struct
54  {
56  struct vlc_list list;
57  unsigned count;
58  } dev;
59 
60  struct
61  {
62  atomic_bool update;
65  } vp;
66 
67  struct
68  {
69  struct vlc_clock_t *clock;
70  float rate; /**< Play-out speed rate */
71  vlc_tick_t resamp_start_drift; /**< Resampler drift absolute value */
72  int resamp_type; /**< Resampler mode (FIXME: redundant / resampling) */
77  } sync;
79 
80  int requested_stereo_mode; /**< Requested stereo mode set by the user */
81 
82  /* Original input format and profile, won't change for the lifetime of a
83  * stream (between aout_DecNew() and aout_DecDelete()). */
86 
87  /* Format used to configure the conversion filters. It is based on the
88  * input_format but its fourcc can be different when the module is handling
89  * codec passthrough. Indeed, in case of DTSHD->DTS or EAC3->AC3 fallback,
90  * the filter need to know which codec is handled by the output. */
92 
93  /* Output format used and modified by the module. */
95 
97 
98  struct vlc_audio_meter meter;
99 
100  atomic_uint buffers_lost;
101  atomic_uint buffers_played;
102  atomic_uchar restart;
103 
105 } aout_owner_t;
106 
107 typedef struct
108 {
112 
113 static inline aout_owner_t *aout_owner (audio_output_t *aout)
114 {
115  return &((aout_instance_t *)aout)->owner;
116 }
117 
118 /****************************************************************************
119  * Prototypes
120  *****************************************************************************/
121 
122 /* From mixer.c : */
124 #define aout_volume_New(o, g) aout_volume_New(VLC_OBJECT(o), g)
126 void aout_volume_SetVolume(aout_volume_t *, float);
129 
130 
131 /* From output.c : */
133 #define aout_New(a) aout_New(VLC_OBJECT(a))
135 
137 void aout_OutputDelete( audio_output_t * p_aout );
138 
140 aout_AddMeterPlugin(audio_output_t *aout, const char *chain,
141  const struct vlc_audio_meter_plugin_owner *owner);
142 
143 void
145 
146 /* From common.c : */
147 void aout_FormatsPrint(vlc_object_t *, const char *,
148  const audio_sample_format_t *,
149  const audio_sample_format_t *);
150 #define aout_FormatsPrint(o, t, a, b) \
151  aout_FormatsPrint(VLC_OBJECT(o), t, a, b)
152 
153 /* From dec.c */
154 #define AOUT_DEC_SUCCESS 0
155 #define AOUT_DEC_CHANGED 1
156 #define AOUT_DEC_FAILED VLC_EGENERIC
157 
158 int aout_DecNew(audio_output_t *, const audio_sample_format_t *, int profile,
159  struct vlc_clock_t *clock, const audio_replay_gain_t *);
161 int aout_DecPlay(audio_output_t *aout, block_t *block);
162 void aout_DecGetResetStats(audio_output_t *, unsigned *, unsigned *);
163 void aout_DecChangePause(audio_output_t *, bool b_paused, vlc_tick_t i_date);
164 void aout_DecChangeRate(audio_output_t *aout, float rate);
168 void aout_RequestRestart (audio_output_t *, unsigned);
169 void aout_RequestRetiming(audio_output_t *aout, vlc_tick_t system_ts,
170  vlc_tick_t audio_ts);
171 
172 static inline void aout_InputRequestRestart(audio_output_t *aout)
173 {
175 }
176 
178 {
179  static const uint32_t wave_channels[] = {
183 
185  for (int i = 0; i < fmt->i_channels && i < AOUT_CHAN_MAX; ++i)
186  fmt->i_physical_channels |= wave_channels[i];
188 }
189 
190 /* From filters.c */
191 
192 /* Extended version of aout_FiltersNew
193  *
194  * The clock, that is not mandatory, will be used to create a new slave clock
195  * for the filter vizualisation plugins.
196  */
198  const audio_sample_format_t *,
199  const audio_sample_format_t *,
200  const aout_filters_cfg_t *cfg) VLC_USED;
204 filter_t *aout_filter_Create(vlc_object_t *obj, const filter_owner_t *restrict owner,
205  const char *type, const char *name,
206  const audio_sample_format_t *infmt,
207  const audio_sample_format_t *outfmt,
208  config_chain_t *cfg, bool const_fmt);
209 
210 #endif /* !LIBVLC_AOUT_INTERNAL_H */
wsaerrmsg_t
Definition: error.c:35
thread_key
static vlc_threadvar_t thread_key
Definition: thread.c:62
vlc_timer::value
vlc_tick_t value
Definition: timer.c:66
vlc_threadvar::next
struct vlc_threadvar * next
Definition: thread.c:153
_CRT_term
void _CRT_term(void)
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
vlc_getopt.h
config_GetLibDir
char * config_GetLibDir(void) VLC_USED VLC_MALLOC
Gets the arch-specific installation directory.
Definition: dirs.m:91
VLC_SYSDATA_DIR
@ VLC_SYSDATA_DIR
Global architecture-independent read-only data directory (e.g.
Definition: vlc_configuration.h:280
aout_owner_t::buffers_lost
atomic_uint buffers_lost
Definition: aout_internal.h:100
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
libvlc_InternalAddIntf
int libvlc_InternalAddIntf(libvlc_int_t *libvlc, const char *name)
Starts an interface plugin.
Definition: interface.c:262
aout_owner_t::input_profile
int input_profile
Definition: aout_internal.h:84
GetDWBE
#define GetDWBE(p)
Definition: vlc_common.h:1014
vlc_thread::data
void * data
Definition: thread.c:75
super_variable
static vlc_cond_t super_variable
Definition: thread.c:59
AOUT_RESAMPLING_UP
@ AOUT_RESAMPLING_UP
Definition: aout_internal.h:39
tidIPCFirst
static int tidIPCFirst
Definition: specific.c:43
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
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
VIDEO_ES
@ VIDEO_ES
Definition: vlc_es.h:603
vlc_select
static int vlc_select(int nfds, fd_set *rdset, fd_set *wrset, fd_set *exset, struct timeval *timeout)
Definition: thread.c:663
aout_DecChangeDelay
void aout_DecChangeDelay(audio_output_t *aout, vlc_tick_t delay)
Definition: dec.c:551
vlc_demux.h
vlc_playlist
Definition: playlist.h:48
vlc_thread_cleanup
static void vlc_thread_cleanup(struct vlc_thread *th)
Definition: thread.c:413
vlc_cancel_self
static void vlc_cancel_self(PVOID dummy)
Definition: thread.c:540
vlc_cleanup_push
#define vlc_cleanup_push(routine, arg)
Registers a thread cancellation handler.
Definition: vlc_threads.h:1010
var_InheritBool
static bool var_InheritBool(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:675
getProperty
jmethodID getProperty
Definition: specific.c:50
aout_owner_t::discontinuity
bool discontinuity
Definition: aout_internal.h:73
thread
static thread_local struct vlc_thread * thread
Definition: thread.c:87
VLC_CACHE_DIR
@ VLC_CACHE_DIR
Definition: vlc_configuration.h:310
VLC_VIDEOS_DIR
@ VLC_VIDEOS_DIR
Definition: vlc_configuration.h:319
psz_name
const char * psz_name
Definition: text_style.c:53
vlc_cleanup_t
struct vlc_cleanup_t vlc_cleanup_t
Definition: vlc_threads.h:784
_fmode_bin
int _fmode_bin
vlc_thread_id
unsigned long vlc_thread_id(void)
Thread identifier.
Definition: thread.c:36
libvlc_int_t
Definition: vlc_objects.h:114
aout_owner_t
Definition: aout_internal.h:45
unlikely
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
vlc_umtx_wait
static int vlc_umtx_wait(void *addr, unsigned val, const struct timespec *ts)
Definition: thread.c:51
vlc_common.h
VLC_DESKTOP_DIR
@ VLC_DESKTOP_DIR
Definition: vlc_configuration.h:312
vlc_thread::killed
atomic_bool killed
Definition: thread.c:83
File
struct @0::@2 File
BLOCK_FLAG_CORRUPTED
#define BLOCK_FLAG_CORRUPTED
This block is corrupted and/or there is data loss
Definition: vlc_block.h:87
lldiv_t::rem
long long rem
Definition: vlc_fixups.h:78
mdate_wall
static vlc_tick_t mdate_wall(void)
Definition: thread.c:612
aout_owner_t::lock
vlc_mutex_t lock
Definition: aout_internal.h:47
system_ConfigureDbus
static void system_ConfigureDbus(libvlc_int_t *vlc, int argc, const char *const argv[])
Definition: specific.c:39
xiph_header
static ssize_t xiph_header(void **pextra, const uint8_t *buf, size_t len)
Definition: xiph.c:96
System
struct @0::@3 System
rtp_xiph_t::block
block_t * block
Definition: xiph.c:57
vlc_atomic_timedwait_daytime
int vlc_atomic_timedwait_daytime(void *addr, unsigned val, time_t deadline)
Definition: thread.c:105
audio_replay_gain_t
Definition: vlc_es.h:55
block_t::i_buffer
size_t i_buffer
Payload length.
Definition: vlc_block.h:122
system_InitWSA
static int system_InitWSA(int hi, int lo)
Definition: specific.c:39
input_item_t
Describes an input and is used to spawn input_thread_t objects.
Definition: vlc_input_item.h:77
msg_Info
#define msg_Info(p_this,...)
Definition: vlc_messages.h:100
libvlc_priv
static libvlc_priv_t * libvlc_priv(libvlc_int_t *libvlc)
Definition: libvlc.h:199
AOUT_CHAN_CENTER
#define AOUT_CHAN_CENTER
Definition: vlc_es.h:117
vlc_threadvar_t
pthread_key_t vlc_threadvar_t
Thread-local key handle.
Definition: vlc_threads.h:195
xiph_init
static void * xiph_init(bool vorbis)
Definition: xiph.c:46
cbtc
UINT cbtc
Definition: thread.c:561
vlc_threadvar::destroy
void(* destroy)(void *)
Definition: thread.c:151
aout_owner_t::filters
aout_filters_t * filters
Definition: aout_internal.h:49
pollfd::fd
int fd
Definition: vlc_fixups.h:419
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
aout_volume_New
#define aout_volume_New(o, g)
Definition: aout_internal.h:124
vlc_entry
static void vlc_entry(void *p)
Definition: thread.c:434
codec_decode
void codec_decode(demux_t *demux, void *data, block_t *block)
Definition: rtpfmt.c:54
locale_t
void * locale_t
Definition: vlc_fixups.h:344
wait_bucket_get
static struct wait_bucket * wait_bucket_get(atomic_uint *addr)
Definition: thread.c:244
vlc_atomic_timedwait
int vlc_atomic_timedwait(void *addr, unsigned val, vlc_tick_t deadline)
Waits on an address with a time-out.
Definition: thread.c:84
system_End
void system_End(void)
Cleans up after system_Init() and system_Configure().
Definition: specific.c:272
LC_MESSAGES_MASK
#define LC_MESSAGES_MASK
Definition: vlc_fixups.h:342
vlc_thread::addr
atomic_uint * addr
Definition: thread.c:79
vlc_Sleep
static ULONG vlc_Sleep(ULONG ulTimeout)
Definition: thread.c:139
JNI_OnLoad
jint JNI_OnLoad(JavaVM *vm, void *reserved)
Definition: specific.c:102
aout_instance_t::owner
aout_owner_t owner
Definition: aout_internal.h:110
vlc_network.h
pollfd
Definition: vlc_fixups.h:417
ppsz_generic_names
static char * ppsz_generic_names[(VLC_VIDEOS_DIR - VLC_DESKTOP_DIR+1)]
Definition: specific.c:39
aout_volume_Delete
void aout_volume_Delete(aout_volume_t *)
Destroys a software amplifier.
Definition: volume.c:108
vlc_threadvar
Definition: thread.c:148
rtp_xiph_t
Definition: xiph.c:38
config_GetGenericDir
static char * config_GetGenericDir(const char *psz_name)
Definition: specific.c:230
input_item_New
#define input_item_New(psz_uri, psz_name)
Definition: vlc_input_item.h:349
aout_owner_t::filter_format
audio_sample_format_t filter_format
Definition: aout_internal.h:91
AOUT_RESTART_FILTERS
#define AOUT_RESTART_FILTERS
Definition: vlc_aout.h:325
vlc_timer::htimer
HTIMER htimer
Definition: thread.c:829
MS_FROM_VLC_TICK
#define MS_FROM_VLC_TICK(vtk)
Definition: vlc_tick.h:123
vlc_timer_getoverrun
unsigned vlc_timer_getoverrun(vlc_timer_t timer)
Fetches and resets the overrun counter for a timer.
Definition: thread.c:913
freq
LARGE_INTEGER freq
Definition: thread.c:556
aout_DecFlush
void aout_DecFlush(audio_output_t *)
Definition: dec.c:558
vlc_playlist_Lock
void vlc_playlist_Lock(vlc_playlist_t *playlist)
Lock the playlist/player.
Definition: playlist.c:80
AOUT_RESAMPLING_NONE
@ AOUT_RESAMPLING_NONE
Definition: aout_internal.h:38
vlc_ipc_data_t
Definition: specific.c:67
msg_Dbg
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
vlc_getProxyUrl
char * vlc_getProxyUrl(const char *url)
Determines the network proxy server to use (if any).
Definition: specific.c:342
mdate_multimedia
static vlc_tick_t mdate_multimedia(void)
Definition: thread.c:590
vlc_thread::id
HANDLE id
Definition: thread.c:57
_
#define _(str)
Definition: vlc_fixups.h:374
mdate_default
static vlc_tick_t mdate_default(void)
Definition: thread.c:629
vlc_mkdir
int vlc_mkdir(const char *dirname, mode_t mode)
Creates a directory.
Definition: filesystem.c:96
var_InheritString
static char * var_InheritString(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:705
aout_instance_t::output
audio_output_t output
Definition: aout_internal.h:109
vlc_thread::thread
pthread_t thread
Definition: thread.c:72
vlc_viewpoint_t
Viewpoints.
Definition: vlc_viewpoint.h:41
vlc_DosWaitEventSemEx
static ULONG vlc_DosWaitEventSemEx(HEV hev, ULONG ulTimeout)
Definition: thread.c:87
FUTEX_WAKE_PRIVATE
#define FUTEX_WAKE_PRIVATE
Definition: thread.c:35
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
VLC_VAR_ADDRESS
#define VLC_VAR_ADDRESS
Definition: vlc_variables.h:53
getExternalStoragePublicDirectory
jmethodID getExternalStoragePublicDirectory
Definition: specific.c:43
ARRAY_SIZE
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:178
VLC_LIB_DIR
@ VLC_LIB_DIR
Global architecture-dependent read-only directory (e.g.
Definition: vlc_configuration.h:283
lldiv_t
Definition: vlc_fixups.h:75
es_format_Init
void es_format_Init(es_format_t *fmt, int i_cat, vlc_fourcc_t i_codec)
This function will initialize a es_format_t structure.
Definition: es_format.c:409
timespec_from_vlc_tick
struct timespec timespec_from_vlc_tick(vlc_tick_t date)
Definition: mtime.c:146
getenv
static char * getenv(const char *name)
Definition: vlc_fixups.h:292
vlc_audio_meter_plugin_owner
Audio meter plugin owner structure.
Definition: vlc_aout.h:594
freelocale
static void freelocale(locale_t loc)
Definition: vlc_fixups.h:346
vlc_list
Doubly-linked list node.
Definition: vlc_list.h:43
vlc_timer
Definition: thread.c:825
_CRT_init
int _CRT_init(void)
vlc_strerror
const char * vlc_strerror(int errnum)
Definition: error.c:29
VLC_TICK_FROM_MSFTIME
#define VLC_TICK_FROM_MSFTIME(msft)
Definition: vlc_tick.h:172
vlc_threadvar_set
int vlc_threadvar_set(vlc_threadvar_t key, void *value)
Sets a thread-specific variable.
Definition: thread.c:250
aout_owner
static aout_owner_t * aout_owner(audio_output_t *aout)
Definition: aout_internal.h:113
wait_bucket
Definition: thread.c:215
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
VLC_TIMER_DISARM
#define VLC_TIMER_DISARM
Definition: vlc_threads.h:937
getAbsolutePath
jmethodID getAbsolutePath
Definition: specific.c:46
wsaerrmsg
static const wsaerrmsg_t wsaerrmsg[]
Definition: error.c:41
asprintf
int asprintf(char **, const char *,...)
vlc_cancel_addr_clear
void vlc_cancel_addr_clear(atomic_uint *addr)
Definition: thread.c:225
VLC_HOME_DIR
@ VLC_HOME_DIR
Definition: vlc_configuration.h:307
theora_init
void * theora_init(demux_t *demux)
Definition: xiph.c:74
input_item_AddOptions
int input_item_AddOptions(input_item_t *p_item, int i_options, const char *const *ppsz_options, unsigned i_flags)
This function add several options to an existing input_item_t.
Definition: item.c:538
vlc_trace
void vlc_trace(const char *fn, const char *file, unsigned line)
Print a backtrace to the standard error for debugging purpose.
Definition: thread.c:68
pollfd::revents
short revents
Definition: vlc_fixups.h:421
aout_DecGetResetStats
void aout_DecGetResetStats(audio_output_t *, unsigned *, unsigned *)
vlc_mutex_t
Mutex.
Definition: vlc_threads.h:225
aout_volume
Definition: volume.c:37
wsaerrmsg_t::msg
const char * msg
Definition: error.c:38
system_Configure
void system_Configure(libvlc_int_t *p_libvlc, int i_argc, const char *const pp_argv[])
Definition: specific.c:172
vlc_audio_meter::fmt
const audio_sample_format_t * fmt
Definition: vlc_aout.h:611
timespec::tv_nsec
long tv_nsec
Definition: vlc_fixups.h:445
codec_destroy
void codec_destroy(demux_t *demux, void *data)
Definition: rtpfmt.c:47
audio_format_t::i_channels
uint8_t i_channels
Definition: vlc_es.h:113
vlc_thread::lock
HMTX lock
Definition: thread.c:81
vlc_ipc_data_t::data
char data[]
Definition: specific.c:73
lldiv
lldiv_t lldiv(long long, long long)
vlc_timer::tid
TID tid
Definition: thread.c:827
get_env
static JNIEnv * get_env(bool *p_detach)
Definition: specific.c:203
rtp_xiph_t::ident
uint32_t ident
Definition: xiph.c:58
vlc_threadvar::prev
struct vlc_threadvar * prev
Definition: thread.c:152
vlc_thread::done_event
HEV done_event
Definition: thread.c:68
super_mutex
static CRITICAL_SECTION super_mutex
Definition: thread.c:47
vlc_threadvar::id
PULONG id
Definition: thread.c:150
release_env
static void release_env(bool b_detach)
Definition: specific.c:224
vlc_timer_schedule
void vlc_timer_schedule(vlc_timer_t timer, bool absolute, vlc_tick_t value, vlc_tick_t interval)
Arms or disarms an initialized timer.
Definition: thread.c:890
aout_DecChangeRate
void aout_DecChangeRate(audio_output_t *aout, float rate)
Definition: dec.c:544
rtp_xiph_t::id
es_out_id_t * id
Definition: xiph.c:56
vlc_clone
int vlc_clone(vlc_thread_t *th, void *(*entry)(void *), void *data, int priority)
Creates and starts a new thread.
Definition: thread.c:144
aout_owner_t::delay
vlc_tick_t delay
Definition: aout_internal.h:75
CLOCK_FREQ
#define CLOCK_FREQ
Definition: vlc_config.h:47
aout_filters
Definition: filters.c:349
vlc_path2uri
char * vlc_path2uri(const char *path, const char *scheme)
Converts local path to URL.
Definition: url.c:143
mdate_selected
static vlc_tick_t(* mdate_selected)(void)
Definition: thread.c:635
msg_Warn
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
audio_output
Audio output object.
Definition: vlc_aout.h:141
lldiv_t::quot
long long quot
Definition: vlc_fixups.h:77
perf
struct @131::@133 perf
IPC_CMD_ENQUEUE
#define IPC_CMD_ENQUEUE
Definition: specific.c:37
VLC_THREAD_PRIORITY_HIGHEST
#define VLC_THREAD_PRIORITY_HIGHEST
Definition: vlc_threads.h:212
vlc_assert_unreachable
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
sys_futex
static int sys_futex(void *addr, int op, unsigned val, const struct timespec *to, void *addr2, int val3)
Definition: thread.c:52
var_GetString
static char * var_GetString(vlc_object_t *p_obj, const char *psz_name)
Get a string value.
Definition: vlc_variables.h:437
vlc_threadvar::id
DWORD id
Definition: thread.c:76
vlc_thread::killable
bool killable
Definition: thread.c:84
config_GetUserDir
char * config_GetUserDir(vlc_userdir_t type)
Definition: specific.c:273
vlc_savecancel
int vlc_savecancel(void)
Disables thread cancellation.
Definition: thread.c:183
filter_owner_t
Definition: vlc_filter.h:65
AOUT_CHAN_MIDDLELEFT
#define AOUT_CHAN_MIDDLELEFT
Definition: vlc_es.h:123
aout_DecChangePause
void aout_DecChangePause(audio_output_t *, bool b_paused, vlc_tick_t i_date)
Definition: dec.c:531
vlc_tick_now
vlc_tick_t vlc_tick_now(void)
Precision monotonic clock.
Definition: thread.c:261
VLC_DOCUMENTS_DIR
@ VLC_DOCUMENTS_DIR
Definition: vlc_configuration.h:316
VLC_THREAD_ASSERT
#define VLC_THREAD_ASSERT(action)
Definition: thread.c:99
vlc_audio_meter
Audio meter structure.
Definition: vlc_aout.h:607
timespec::tv_sec
time_t tv_sec
Definition: vlc_fixups.h:444
arg
void * arg
Definition: sort.c:51
aout_owner_t::rate
float rate
Play-out speed rate.
Definition: aout_internal.h:70
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
mdate_tick
static vlc_tick_t mdate_tick(void)
Definition: thread.c:581
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
module_t
Internal module descriptor.
Definition: modules.h:78
vlc_timer::interval
ULONG interval
Definition: thread.c:830
tidIPCHelper
static int tidIPCHelper
Definition: specific.c:44
IPC_CMD_QUIT
#define IPC_CMD_QUIT
Definition: specific.c:38
wait_bucket::lock
HMTX lock
Definition: thread.c:217
filter_t
Structure describing a filter.
Definition: vlc_filter.h:215
es_format_t
Definition: vlc_es.h:617
VLC_CODEC_VORBIS
#define VLC_CODEC_VORBIS
Definition: vlc_fourcc.h:480
vlc_atomic.h
vlc_tick_t
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
xiph_decode
void xiph_decode(demux_t *demux, void *data, block_t *block)
Definition: xiph.c:146
libvlc_priv_t::main_playlist
vlc_playlist_t * main_playlist
Definition: libvlc.h:188
vlc_thread::lock
vlc_mutex_t lock
Non-null if waiting on futex.
Definition: thread.c:80
aout_FiltersSetClockDelay
void aout_FiltersSetClockDelay(aout_filters_t *filters, vlc_tick_t delay)
Definition: filters.c:668
vlc_thread_fatal
static void vlc_thread_fatal(const char *action, int error, const char *function, const char *file, unsigned line)
Reports a fatal error from the threading layer, for debugging purposes.
Definition: thread.c:85
VLC_PICTURES_DIR
@ VLC_PICTURES_DIR
Definition: vlc_configuration.h:318
mdate_perf
static vlc_tick_t mdate_perf(void)
Definition: thread.c:600
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
IPC_CMD_GO
#define IPC_CMD_GO
Definition: specific.c:36
POLLOUT
#define POLLOUT
Definition: vlc_fixups.h:415
block_t::i_flags
uint32_t i_flags
Definition: vlc_block.h:126
vlc_interface.h
newlocale
static locale_t newlocale(int mask, const char *locale, locale_t base)
Definition: vlc_fixups.h:350
vlc_WaitForSingleObject
static ULONG vlc_WaitForSingleObject(HEV hev, ULONG ulTimeout)
Definition: thread.c:134
ABOVE_NORMAL_PRIORITY_CLASS
#define ABOVE_NORMAL_PRIORITY_CLASS
vlc_threadvar_last
struct vlc_threadvar * vlc_threadvar_last
aout_owner_t::resamp_start_drift
vlc_tick_t resamp_start_drift
Resampler drift absolute value.
Definition: aout_internal.h:71
aout_RemoveMeterPlugin
void aout_RemoveMeterPlugin(audio_output_t *aout, vlc_audio_meter_plugin *plugin)
Definition: output.c:824
aout_owner_t::resamp_type
int resamp_type
Resampler mode (FIXME: redundant / resampling)
Definition: aout_internal.h:72
SelectClockSource
static BOOL SelectClockSource(vlc_object_t *obj)
Definition: thread.c:665
vlc_filter.h
vlc_threadvars_cleanup
static void vlc_threadvars_cleanup(void)
Definition: thread.c:147
VLC_CONFIG_DIR
@ VLC_CONFIG_DIR
Definition: vlc_configuration.h:308
vlc_strerror_c
const char * vlc_strerror_c(int errnum)
Definition: error.c:34
thread_key
static DWORD thread_key
Definition: thread.c:53
vlc_clone_attr
static int vlc_clone_attr(vlc_thread_t *th, pthread_attr_t *attr, void *(*entry)(void *), void *data, int priority)
Definition: thread.c:131
aout_DecDrain
void aout_DecDrain(audio_output_t *)
Definition: dec.c:593
vlc_atomic_notify_all
void vlc_atomic_notify_all(void *addr)
Wakes up all thread on an address.
Definition: thread.c:72
vlc_tick_wait
void vlc_tick_wait(vlc_tick_t deadline)
Waits until a deadline.
Definition: thread.c:803
vlc_plugin.h
lock
vlc_mutex_t lock
Definition: rand.c:50
system_Init
void system_Init(void)
Definition: specific.c:167
vlc_atomic_notify_one
void vlc_atomic_notify_one(void *addr)
Wakes up one thread on an address.
Definition: thread.c:67
DllMain
BOOL WINAPI DllMain(HANDLE hinstDll, DWORD fdwReason, LPVOID lpvReserved)
Definition: thread.c:788
wait_bucket::waiters
unsigned waiters
Definition: thread.c:219
vlc_threadvar_create
int vlc_threadvar_create(vlc_threadvar_t *key, void(*destr)(void *))
Allocates a thread-specific variable.
Definition: thread.c:240
vlc_thread::entry
void *(* entry)(void *)
Definition: thread.c:74
vlc_cancel_addr_set
void vlc_cancel_addr_set(atomic_uint *addr)
Definition: thread.c:213
vlc_thread::tid
TID tid
Definition: thread.c:66
vlc_timer::hev
HEV hev
Definition: thread.c:828
vlc_list.h
wait_buckets
static struct wait_bucket wait_buckets[32]
VLC_CODEC_THEORA
#define VLC_CODEC_THEORA
Definition: vlc_fourcc.h:54
vlc_thread_t
Thread handle.
Definition: vlc_threads.h:180
SetWBE
static void SetWBE(void *p, uint16_t w)
Writes 16 bits in network byte order.
Definition: vlc_common.h:1057
aout_DecPlay
int aout_DecPlay(audio_output_t *aout, block_t *block)
Definition: dec.c:429
GENERIC_DIR_COUNT
#define GENERIC_DIR_COUNT
Definition: specific.c:38
es_format_t::p_extra
void * p_extra
extra data needed by some decoders or muxers
Definition: vlc_es.h:656
vlc_entry
static unsigned __stdcall vlc_entry(void *p)
Definition: thread.c:348
vlc_set_priority
int vlc_set_priority(vlc_thread_t th, int priority)
Definition: thread.c:161
AOUT_CHAN_MAX
#define AOUT_CHAN_MAX
Definition: vlc_es.h:153
stream_t
stream_t definition
Definition: vlc_stream.h:46
vlc_clock_prec
static unsigned vlc_clock_prec
Definition: thread.c:55
vlc_timer::func
void(* func)(void *)
Definition: thread.c:832
block_t::i_pts
vlc_tick_t i_pts
Definition: vlc_block.h:129
vlc_cleanup_pop
#define vlc_cleanup_pop()
Unregisters the last cancellation handler.
Definition: vlc_threads.h:1018
POLLIN
#define POLLIN
Definition: vlc_fixups.h:414
vlc_clock_t
Definition: clock.c:61
es_out_id_t
Definition: es_out.c:105
input_item_Release
void input_item_Release(input_item_t *p_item)
Releases an input item, i.e.
Definition: item.c:450
static_assert
#define static_assert
Definition: vlc_fixups.h:370
AOUT_CHAN_REARRIGHT
#define AOUT_CHAN_REARRIGHT
Definition: vlc_es.h:122
vlc_strerror_l
static const char * vlc_strerror_l(int errnum, const char *lname)
Definition: error.c:32
aout_owner_t::first_pts
vlc_tick_t first_pts
Definition: aout_internal.h:76
aout_FormatsPrint
#define aout_FormatsPrint(o, t, a, b)
Definition: aout_internal.h:150
clk
static union @131 clk
WSA_QOS_EUNKNOWNPSOBJ
#define WSA_QOS_EUNKNOWNPSOBJ
Definition: error.c:32
AOUT_CHAN_LEFT
#define AOUT_CHAN_LEFT
Definition: vlc_es.h:118
AUDIO_ES
@ AUDIO_ES
Definition: vlc_es.h:604
vlc_tick_from_sec
#define vlc_tick_from_sec(sec)
Definition: vlc_tick.h:81
VLC_PUBLICSHARE_DIR
@ VLC_PUBLICSHARE_DIR
Definition: vlc_configuration.h:315
vlc_futex_wake
static int vlc_futex_wake(void *addr, int nr)
Definition: thread.c:58
vlc_fs.h
wait_bucket_leave
static void wait_bucket_leave(void *data)
Definition: thread.c:262
vlc_umtx_wake
static int vlc_umtx_wake(void *addr, int nr)
Definition: thread.c:46
aout_owner_t::volume
aout_volume_t * volume
Definition: aout_internal.h:50
JNI_OnUnload
void JNI_OnUnload(JavaVM *vm, void *reserved)
Definition: specific.c:80
vlc_playlist_Unlock
void vlc_playlist_Unlock(vlc_playlist_t *playlist)
Unlock the playlist/player.
Definition: playlist.c:86
vlc_threadvar_get
void * vlc_threadvar_get(vlc_threadvar_t key)
Gets the value of a thread-local variable for the calling thread.
Definition: thread.c:255
vlc_restorecancel
void vlc_restorecancel(int state)
Restores the cancellation state.
Definition: thread.c:193
vlc_url.h
wait_bucket::wait
HEV wait
Definition: thread.c:218
aout_New
#define aout_New(a)
Definition: aout_internal.h:133
block_Realloc
block_t * block_Realloc(block_t *block, ssize_t prebody, size_t body)
Reallocates a block.
Definition: block.c:235
rtp.h
RTP demux module shared declarations.
vlc_object_t
VLC object common members.
Definition: vlc_objects.h:43
vlc_timer_do
static void vlc_timer_do(void *arg)
Definition: thread.c:836
vlc_clock_setup_once
static void vlc_clock_setup_once(void)
Definition: thread.c:57
vlc_thread::cancel_sock
int cancel_sock
Definition: thread.c:69
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
POLLPRI
@ POLLPRI
Definition: vlc_fixups.h:412
es_format_t::i_extra
int i_extra
length in bytes of extra data pointer
Definition: vlc_es.h:655
VLC_UNUSED
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
vlc_tick_from_frac
static vlc_tick_t vlc_tick_from_frac(uint64_t num, uint64_t den)
Definition: vlc_tick.h:111
VLC_INPUT_OPTION_TRUSTED
@ VLC_INPUT_OPTION_TRUSTED
Definition: vlc_input_item.h:239
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
vlc_playlist_AppendOne
static int vlc_playlist_AppendOne(vlc_playlist_t *playlist, input_item_t *media)
Add a media at the end of the playlist.
Definition: vlc_playlist.h:486
VLC_TICK_FROM_MS
#define VLC_TICK_FROM_MS(ms)
Definition: vlc_tick.h:122
config_GetSysPath
char * config_GetSysPath(vlc_sysdir_t type, const char *filename)
Gets an installation directory.
Definition: specific.c:306
VLC_USED
#define VLC_USED
Definition: fourcc_gen.c:32
hpipeIPC
static HPIPE hpipeIPC
Definition: specific.c:42
GetWBE
#define GetWBE(p)
Definition: vlc_common.h:1013
aout_FiltersCanResample
bool aout_FiltersCanResample(aout_filters_t *filters)
Definition: filters.c:708
vlc_sysdir_t
enum vlc_system_dir vlc_sysdir_t
System directory identifiers.
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
list
module_config_t ** list
Definition: core.c:400
VLC_WEAK
#define VLC_WEAK
Weak symbol annotation.
Definition: vlc_common.h:198
vlc_thread::cleaners
vlc_cleanup_t * cleaners
Definition: thread.c:73
vlc_timer_destroy
void vlc_timer_destroy(vlc_timer_t timer)
Destroys an initialized timer.
Definition: thread.c:877
aout_AddMeterPlugin
vlc_audio_meter_plugin * aout_AddMeterPlugin(audio_output_t *aout, const char *chain, const struct vlc_audio_meter_plugin_owner *owner)
Definition: output.c:815
name
const char name[16]
Definition: httpd.c:1268
aout_OutputNew
int aout_OutputNew(audio_output_t *)
Starts an audio output stream.
Definition: output.c:525
multimedia
struct @131::@134 multimedia
get_java_string
static char * get_java_string(JNIEnv *env, jclass clazz, const char *psz_name)
Definition: specific.c:55
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
entry
Definition: fourcc_gen.c:51
Q2LL
#define Q2LL(q)
Definition: thread.c:784
vlc_cancel_self
static void CALLBACK vlc_cancel_self(ULONG_PTR self)
Definition: thread.c:436
vlc_timer::quit
bool quit
Definition: thread.c:831
super_mutex
static vlc_mutex_t super_mutex
Definition: thread.c:58
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
_DLL_InitTerm
unsigned long _System _DLL_InitTerm(unsigned long, unsigned long)
Definition: thread.c:935
vlc_thread
Definition: thread.c:70
VLC_DOWNLOAD_DIR
@ VLC_DOWNLOAD_DIR
Definition: vlc_configuration.h:313
wait_bucket_enter
static struct wait_bucket * wait_bucket_enter(atomic_uint *addr)
Definition: thread.c:252
vlc_control_cancel
void vlc_control_cancel(vlc_cleanup_t *cleaner)
Internal handler for thread cancellation.
Definition: thread.c:617
vlc_futex_wait
static int vlc_futex_wait(void *addr, unsigned flags, unsigned val, const struct timespec *to)
Definition: thread.c:63
vlc_clone_attr
static int vlc_clone_attr(vlc_thread_t *th, void *(*entry)(void *), void *data)
Definition: thread.c:103
configuration.h
rtp_xiph_t::vorbis
bool vorbis
Definition: xiph.c:59
vlc_thread_fatal_print
static void vlc_thread_fatal_print(const char *action, int error, const char *function, const char *file, unsigned line)
Definition: thread.c:50
vlc_atomic_wait
void vlc_atomic_wait(void *addr, unsigned val)
Waits on an address.
Definition: thread.c:77
aout_owner_t::buffers_played
atomic_uint buffers_played
Definition: aout_internal.h:101
aout_FiltersResetClock
void aout_FiltersResetClock(aout_filters_t *filters)
Definition: filters.c:662
vlc_audio_meter_plugin
Definition: meter.c:32
fields
static struct @0 fields
aout_owner_t::restart
atomic_uchar restart
Definition: aout_internal.h:102
vlc_ipc_data_t::enqueue
int enqueue
Definition: specific.c:72
vlc_threadvar_delete
void vlc_threadvar_delete(vlc_threadvar_t *p_tls)
Deallocates a thread-specific variable.
Definition: thread.c:245
AOUT_RESAMPLING_DOWN
@ AOUT_RESAMPLING_DOWN
Definition: aout_internal.h:40
LOOKUP
#define LOOKUP(s)
Definition: thread.c:786
VLC_TEMPLATES_DIR
@ VLC_TEMPLATES_DIR
Definition: vlc_configuration.h:314
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
VLC_THREAD_ASSERT
#define VLC_THREAD_ASSERT(action)
Definition: thread.c:60
vlc_playlist_Start
int vlc_playlist_Start(vlc_playlist_t *playlist)
Start the player.
Definition: player.c:174
codec_init
void * codec_init(demux_t *demux, es_format_t *fmt)
Definition: rtpfmt.c:40
aout_Destroy
void aout_Destroy(audio_output_t *)
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
clazz
jclass clazz
Definition: specific.c:42
vlc_viewpoint.h
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
var_SetAddress
static int var_SetAddress(vlc_object_t *p_obj, const char *psz_name, void *ptr)
Set the value of a pointer variable.
Definition: vlc_variables.h:360
vlc_playlist.h
likely
#define likely(p)
Predicted true condition.
Definition: vlc_common.h:218
rtp_xiph_t
struct rtp_xiph_t rtp_xiph_t
timespec
Definition: vlc_fixups.h:443
block_t::p_buffer
uint8_t * p_buffer
Payload start.
Definition: vlc_block.h:121
VLC_USERDATA_DIR
@ VLC_USERDATA_DIR
Definition: vlc_configuration.h:309
VLC_OBJECT
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_objects.h:70
vlc_thread::lock
CRITICAL_SECTION lock
Definition: thread.c:69
super_variable
static CONDITION_VARIABLE super_variable
Definition: thread.c:48
FUTEX_WAIT_BITSET_PRIVATE
#define FUTEX_WAIT_BITSET_PRIVATE
Definition: thread.c:37
vlc_ipc_data_t::argc
int argc
Definition: specific.c:71
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
vlc_thread_t::handle
pthread_t handle
Definition: vlc_threads.h:182
wait_bucket_init
static void wait_bucket_init(void)
Definition: thread.c:222
aout_filters_cfg_t
Definition: vlc_aout.h:497
wsaerrmsg_t::code
int code
Definition: error.c:37
vlc_cond_init
void vlc_cond_init(vlc_cond_t *cond)
Initializes a condition variable.
Definition: threads.c:234
add_to_playlist
static void add_to_playlist(vlc_playlist_t *playlist, const char *uri, bool play_now, int options_count, const char *const *options)
Definition: specific.c:46
vlc_alloc
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:1144
VLC_STACKSIZE
#define VLC_STACKSIZE
vlc_threads_setup
void vlc_threads_setup(libvlc_int_t *p_libvlc)
Definition: thread.c:89
aout_owner_t::value
vlc_viewpoint_t value
Definition: aout_internal.h:64
xiph_destroy
void xiph_destroy(demux_t *demux, void *data)
Definition: xiph.c:80
setup_lock
static CRITICAL_SECTION setup_lock
Definition: thread.c:754
state
static thread_local struct @76 state
vlc_thread::wait
struct vlc_thread::@4 wait
__declspec
__declspec(dllexport)
Definition: thread.c:686
vlc_thread::cancel_event
HEV cancel_event
Definition: thread.c:67
VLC_IPC_PIPE
#define VLC_IPC_PIPE
Definition: specific.c:34
block_Release
void block_Release(block_t *block)
Releases a block.
Definition: block.c:135
s_jvm
static JavaVM * s_jvm
Definition: specific.c:37
vlc_join
void vlc_join(vlc_thread_t handle, void **result)
Waits for a thread to complete (if needed), then destroys it.
Definition: thread.c:151
aout_instance_t
Definition: aout_internal.h:107
vlc_userdir_t
enum vlc_user_dir vlc_userdir_t
aout_owner_t::clock
struct vlc_clock_t * clock
Definition: aout_internal.h:69
aout_owner_t::filters_cfg
aout_filters_cfg_t filters_cfg
Definition: aout_internal.h:96
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
joinable_thread
static void * joinable_thread(void *data)
Definition: thread.c:95
wait_bucket_destroy
static void wait_bucket_destroy(void)
Definition: thread.c:233
vlc_atomic_rc_t
Definition: vlc_atomic.h:41
var
const char var[sizeof("video")]
Definition: player.c:1734
block_t
Definition: vlc_block.h:117
aout_owner_t::original_pts
vlc_tick_t original_pts
Definition: aout_internal.h:78
config_GetHomeDir
static char * config_GetHomeDir(const char *psz_dir, const char *psz_default_dir)
Definition: specific.c:180
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
Environment
struct @0::@1 Environment
vlc_tick_from_timespec
#define vlc_tick_from_timespec(tv)
Definition: vlc_tick.h:185
vlc_timer_create
int vlc_timer_create(vlc_timer_t *id, void(*func)(void *), void *data)
Initializes an asynchronous timer.
Definition: thread.c:857
setenv
int setenv(const char *, const char *, int)
POLLNVAL
@ POLLNVAL
Definition: vlc_fixups.h:407
vlc_timer::data
void * data
Definition: thread.c:833
vlc_tick_sleep
void vlc_tick_sleep(vlc_tick_t delay)
Waits for an interval of time.
Definition: thread.c:819
VLC_MUSIC_DIR
@ VLC_MUSIC_DIR
Definition: vlc_configuration.h:317
vlc_testcancel
void vlc_testcancel(void)
Issues an explicit deferred cancellation point.
Definition: thread.c:201
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
fsync
int fsync(int fd)
mdate_interrupt
static vlc_tick_t mdate_interrupt(void)
Definition: thread.c:567
IPCHelperThread
static void IPCHelperThread(void *arg)
Definition: specific.c:64
aout_DecDelete
void aout_DecDelete(audio_output_t *)
Stops all plugins involved in the audio output.
Definition: dec.c:143
aout_DecNew
int aout_DecNew(audio_output_t *, const audio_sample_format_t *, int profile, struct vlc_clock_t *clock, const audio_replay_gain_t *)
Creates an audio output.
Definition: dec.c:56
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
p
#define p(t)
vlc_GetCPUCount
unsigned vlc_GetCPUCount(void)
Count CPUs.
Definition: thread.c:273
vlc_cancel
void vlc_cancel(vlc_thread_t thread_id)
Marks a thread as cancelled.
Definition: thread.c:167