Go to the documentation of this file.
24 #ifndef LIBVLC_AOUT_INTERNAL_H
25 # define LIBVLC_AOUT_INTERNAL_H 1
31 # define AOUT_MAX_INPUT_RATE (4)
116 #define aout_volume_New(o, g) aout_volume_New(VLC_OBJECT(o), g)
125 #define aout_New(a) aout_New(VLC_OBJECT(a))
143 #define aout_FormatsPrint(o, t, a, b) \
144 aout_FormatsPrint(VLC_OBJECT(o), t, a, b)
146 const char *var,
const char *
name,
bool b_add );
149 #define AOUT_DEC_SUCCESS 0
150 #define AOUT_DEC_CHANGED 1
151 #define AOUT_DEC_FAILED VLC_EGENERIC
169 static const uint32_t wave_channels[] = {
static vlc_threadvar_t thread_key
Definition: thread.c:51
static int vlc_tls_ProxyShutdown(vlc_tls_t *tls, bool duplex)
Definition: tunnel.c:121
struct vlc_threadvar * next
Definition: thread.c:436
#define ARRAY_VAL(array, pos)
Definition: vlc_arrays.h:222
static int rt_offset
Definition: thread.c:390
Definition: vlc_configuration.h:121
Structure containing information about the playlist.
Definition: vlc_playlist.h:151
atomic_uint buffers_lost
Definition: aout_internal.h:94
#define AOUT_CHAN_RIGHT
Definition: vlc_es.h:120
#define AOUT_CHAN_MIDDLERIGHT
Definition: vlc_es.h:125
vlc_sem_t finished
Definition: thread.c:147
size_t count
Definition: core.c:461
struct playlist_private_t::@75 request
int libvlc_InternalAddIntf(libvlc_int_t *libvlc, const char *name)
Starts an interface plugin.
Definition: interface.c:201
void * data
Definition: thread.c:150
static vlc_cond_t super_variable
Definition: thread.c:131
Definition: aout_internal.h:35
static int tidIPCFirst
Definition: specific.c:43
int aout_volume_Amplify(aout_volume_t *, block_t *)
Applies replay gain and software volume to an audio buffer.
Definition: volume.c:132
#define RUNNING_ON_VALGRIND
Definition: thread.c:196
const char * vlc_error(int i_err)
Definition: error.c:36
bool killed
playlist is shutting down
Definition: playlist_internal.h:84
static int vlc_select(int nfds, fd_set *rdset, fd_set *wrset, fd_set *exset, struct timeval *timeout)
Definition: thread.c:747
int vlc_cond_timedwait_daytime(vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex, time_t deadline)
Definition: thread.c:297
void vlc_sem_init(vlc_sem_t *sem, unsigned value)
Initializes a semaphore.
Definition: thread.c:325
playlist_item_t * get_current_status_node(playlist_t *p_playlist)
Definition: engine.c:403
static ssize_t vlc_tls_ProxyRead(vlc_tls_t *tls, struct iovec *iov, unsigned count)
Definition: tunnel.c:103
static void vlc_static_cond_init(vlc_cond_t *p_condvar)
Definition: thread.c:268
void vlc_restorecancel(int state)
Restores the cancellation state.
Definition: thread.c:323
static void vlc_thread_cleanup(struct vlc_thread *th)
Definition: thread.c:505
static void vlc_cancel_self(PVOID dummy)
Definition: thread.c:653
#define vlc_cleanup_push(routine, arg)
Registers a thread cancellation handler.
Definition: vlc_threads.h:975
static void vlc_tls_ProxyClose(vlc_tls_t *tls)
Definition: tunnel.c:128
#define var_SetAddress(o, n, p)
Definition: vlc_variables.h:260
playlist_item_t * p_node
Current node to play from.
Definition: playlist_internal.h:65
vlc_mutex_t lock
dah big playlist global lock
Definition: playlist_internal.h:82
jmethodID getProperty
Definition: specific.c:49
static mach_timebase_info_data_t vlc_clock_conversion_factor
Definition: thread.c:44
vlc_static_cond_t * next
Definition: thread.c:263
Definition: vlc_configuration.h:133
bool discontinuity
Definition: aout_internal.h:83
int vlc_mutex_trylock(vlc_mutex_t *p_mutex)
Tries to acquire a mutex.
Definition: thread.c:129
static thread_local struct vlc_thread * thread
Definition: thread.c:162
int strcasecmp(const char *, const char *)
ssize_t(* writev)(struct vlc_tls *, const struct iovec *, unsigned)
Definition: vlc_tls.h:47
#define ARRAY_APPEND(array, elem)
Definition: vlc_arrays.h:187
void vlc_sem_destroy(vlc_sem_t *sem)
Deinitializes a semaphore.
Definition: thread.c:331
bool input_dead
Set when input has finished.
Definition: playlist_internal.h:78
static mtime_t mdate_perf(void)
Definition: thread.c:780
#define vlc_clock_setup()
Definition: thread.c:54
Definition: vlc_main.h:33
int aout_DecNew(audio_output_t *, const audio_sample_format_t *, const audio_replay_gain_t *, const aout_request_vout_t *)
Creates an audio output.
Definition: dec.c:43
Definition: aout_internal.h:49
#define EMPTY_STR(str)
Definition: vlc_common.h:768
TLS credentials.
Definition: vlc_tls.h:67
playlist_item_array_t current
Items currently being played.
Definition: vlc_playlist.h:157
void msleep(mtime_t delay)
Waits for an interval of time.
Definition: thread.c:569
playlist item / node
Definition: vlc_playlist.h:126
#define FUTEX_WAIT_PRIVATE
Definition: thread.c:34
atomic_bool killed
Definition: thread.c:158
long long rem
Definition: vlc_fixups.h:77
vlc_mutex_t lock
Definition: aout_internal.h:51
Definition: vlc_configuration.h:129
static void system_ConfigureDbus(libvlc_int_t *vlc, int argc, const char *const argv[])
Definition: specific.c:38
#define VLC_THREAD_PRIORITY_LOW
Definition: vlc_threads.h:321
Definition: vlc_threads.h:952
struct @0::@1 Environment
static void vlc_clock_setup_once(void)
Definition: thread.c:46
#define PL_LOCK
Definition: vlc_playlist.h:216
void vlc_threadvar_delete(vlc_threadvar_t *p_tls)
Deallocates a thread-specific variable.
Definition: thread.c:390
static int system_InitWSA(int hi, int lo)
Definition: specific.c:43
#define var_InheritInteger(o, n)
Definition: vlc_variables.h:612
#define msg_Info(p_this,...)
Definition: vlc_messages.h:80
static libvlc_priv_t * libvlc_priv(libvlc_int_t *libvlc)
Definition: libvlc.h:198
#define AOUT_CHAN_CENTER
Definition: vlc_es.h:118
bool vlc_addr_timedwait(void *addr, unsigned val, mtime_t delay)
Waits on an address with a time-out.
Definition: thread.c:80
static mtime_t mdate_default(void)
Definition: thread.c:811
void vlc_mutex_init_recursive(vlc_mutex_t *p_mutex)
Initializes a recursive mutex.
Definition: thread.c:99
UINT cbtc
Definition: thread.c:733
aout_request_vout_t request_vout
Definition: aout_internal.h:91
int vlc_http_msg_add_creds_basic(struct vlc_http_msg *m, bool proxy, const char *username, const char *password)
Adds Basic credentials.
Definition: message.c:958
playlist_item_t * get_current_status_item(playlist_t *p_playlist)
Accessor for status item and status nodes.
Definition: engine.c:396
aout_filters_t * filters
Definition: aout_internal.h:53
#define PL_UNLOCK
Definition: vlc_playlist.h:217
int fd
Definition: vlc_fixups.h:416
int playlist_AddExt(playlist_t *p_playlist, const char *psz_uri, const char *psz_name, bool play_now, int i_options, const char *const *ppsz_options, unsigned i_option_flags, bool b_playlist)
Add a MRL into the playlist or the media library, duration and options given.
Definition: item.c:467
struct playlist_t * playlist
Playlist for interfaces.
Definition: libvlc.h:190
void vlc_http_msg_destroy(struct vlc_http_msg *m)
Destroys an HTTP message.
Definition: message.c:191
void aout_FormatPrepare(audio_sample_format_t *p_format)
Definition: common.c:86
Definition: aout_internal.h:39
#define AOUT_CHAN_REARCENTER
Definition: vlc_es.h:121
static struct timespec mtime_to_ts(mtime_t date)
Definition: thread.c:57
void aout_RequestRestart(audio_output_t *, unsigned)
Marks the audio output for restart, to update any parameter of the output plug-in (e....
Definition: dec.c:197
#define aout_volume_New(o, g)
Definition: aout_internal.h:115
static void vlc_entry(void *p)
Definition: thread.c:536
pthread_key_t vlc_threadvar_t
Thread-local key handle.
Definition: vlc_threads.h:314
void * locale_t
Definition: vlc_fixups.h:341
static void clean_detached_thread(void *data)
Definition: thread.c:175
void system_End(void)
Cleans up after system_Init() and system_Configure().
Definition: specific.c:254
int vlc_clone_detach(vlc_thread_t *th, void *(*entry)(void *), void *data, int priority)
Definition: thread.c:280
#define LC_MESSAGES_MASK
Definition: vlc_fixups.h:339
static int vlc_clone_attr(vlc_thread_t *p_handle, bool detached, void *(*entry)(void *), void *data, int priority)
Definition: thread.c:483
void libvlc_Quit(libvlc_int_t *p_libvlc)
Posts an exit signal to LibVLC instance.
Definition: exit.c:60
static ULONG vlc_Sleep(ULONG ulTimeout)
Definition: thread.c:123
jint JNI_OnLoad(JavaVM *vm, void *reserved)
Definition: specific.c:101
int i_current_index
Index in current array.
Definition: vlc_playlist.h:158
int vlc_mkdir(const char *dirname, mode_t mode)
Creates a directory.
Definition: filesystem.c:93
vlc_rwlock_t config_lock
Definition: core.c:40
aout_owner_t owner
Definition: aout_internal.h:102
#define VLC_THREAD_ASSERT(action)
Definition: thread.c:109
static vlc_static_cond_t * static_condvar_start
Definition: thread.c:266
unsigned i_nb_played
Times played.
Definition: vlc_playlist.h:133
Definition: vlc_fixups.h:414
static char * ppsz_generic_names[(VLC_VIDEOS_DIR - VLC_DESKTOP_DIR+1)]
Definition: specific.c:38
void vlc_renderer_item_release(vlc_renderer_item_t *p_item)
Releases a renderer item, i.e.
Definition: renderer_discovery.c:166
#define var_InheritBool(o, n)
Definition: vlc_variables.h:601
void aout_volume_Delete(aout_volume_t *)
Destroys a software amplifier.
Definition: volume.c:107
char * vlc_getProxyUrl(const char *url)
Determines the network proxy server to use (if any).
Definition: specific.c:315
void ResetCurrentlyPlaying(playlist_t *p_playlist, playlist_item_t *p_cur)
Reset the currently playing playlist.
Definition: thread.c:143
static char * config_GetGenericDir(const char *psz_name)
Definition: specific.c:229
struct vlc_http_conn * vlc_h1_conn_create(void *ctx, struct vlc_tls *, bool proxy)
Definition: h1conn.c:322
#define AOUT_RESTART_FILTERS
Definition: vlc_aout.h:229
long vlc_lrand48(void)
PRNG uniformly distributed between 0 and 2^32 - 1.
Definition: rand.c:78
HTIMER htimer
Definition: thread.c:913
playlist_item_t * p_item
Currently playing/active item.
Definition: playlist_internal.h:64
int vlc_sem_post(vlc_sem_t *sem)
Increments the value of a semaphore.
Definition: thread.c:343
Transport layer socket.
Definition: vlc_tls.h:43
unsigned vlc_timer_getoverrun(vlc_timer_t timer)
Fetches and resets the overrun counter for a timer.
Definition: thread.c:997
void vlc_UrlClean(vlc_url_t *restrict url)
Definition: url.c:594
Definition: playlist_internal.h:46
struct vlc_tls * p
Definition: vlc_tls.h:51
LARGE_INTEGER freq
Definition: thread.c:728
void playlist_Deactivate(playlist_t *p_playlist)
Stops the playlist forever (but do not destroy it yet).
Definition: thread.c:65
Definition: vlc_configuration.h:131
Definition: aout_internal.h:34
Definition: specific.c:78
libvlc_int_t * libvlc
LibVLC instance.
Definition: vlc_common.h:441
int vlc_UrlParse(vlc_url_t *url, const char *str)
Parses an URI or IRI.
Definition: url.c:554
int i_children
Number of children, -1 if not a node.
Definition: vlc_playlist.h:132
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:86
static char * xstrdup(const char *str)
Definition: vlc_common.h:994
void vlc_timer_destroy(vlc_timer_t timer)
Destroys an initialized timer.
Definition: thread.c:961
HANDLE id
Definition: thread.c:55
#define _(str)
Definition: vlc_fixups.h:371
char * psz_password
Definition: vlc_url.h:149
void(* close)(struct vlc_tls *)
Definition: vlc_tls.h:49
int vlc_threadvar_set(vlc_threadvar_t key, void *value)
Sets a thread-specific variable.
Definition: thread.c:395
void set_current_status_node(playlist_t *p_playlist, playlist_item_t *p_node)
Definition: engine.c:418
unsigned resamp_start_drift
Resampler drift absolute value.
Definition: aout_internal.h:81
audio_output_t output
Definition: aout_internal.h:101
pthread_t thread
Definition: thread.c:146
void vlc_cond_broadcast(vlc_cond_t *p_condvar)
Wakes up all threads waiting on a condition variable.
Definition: thread.c:262
Viewpoints.
Definition: vlc_viewpoint.h:44
static ULONG vlc_DosWaitEventSemEx(HEV hev, ULONG ulTimeout)
Definition: thread.c:71
vlc_thread_t vlc_thread_self(void)
Thread handle.
Definition: thread.c:164
#define FUTEX_WAKE_PRIVATE
Definition: thread.c:33
static void aout_InputRequestRestart(audio_output_t *aout)
Definition: aout_internal.h:161
int aout_DecPlay(audio_output_t *, block_t *, int i_input_rate)
Definition: dec.c:356
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:350
#define VLC_VAR_ADDRESS
Definition: vlc_variables.h:53
jmethodID getExternalStoragePublicDirectory
Definition: specific.c:42
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:162
int vlc_clone(vlc_thread_t *th, void *(*entry)(void *), void *data, int priority)
Creates and starts a new thread.
Definition: thread.c:263
const char * vlc_strerror(int errnum)
Definition: error.c:29
Definition: vlc_fixups.h:74
vlc_cond_t condvar
Definition: thread.c:262
vlc_renderer_item_t * vlc_renderer_item_hold(vlc_renderer_item_t *p_item)
Hold a renderer item, i.e.
Definition: renderer_discovery.c:157
static char * getenv(const char *name)
Definition: vlc_fixups.h:293
Definition: vlc_configuration.h:126
unsigned vlc_GetCPUCount(void)
Count CPUs.
Definition: thread.c:418
static void freelocale(locale_t loc)
Definition: vlc_fixups.h:343
static int vlc_tls_ProxyGetFD(vlc_tls_t *tls)
Definition: tunnel.c:96
void vlc_cond_signal(vlc_cond_t *p_condvar)
Wakes up one thread waiting on a condition variable.
Definition: thread.c:256
#define ARRAY_RESET(array)
Definition: vlc_arrays.h:180
void vlc_timer_schedule(vlc_timer_t timer, bool absolute, mtime_t value, mtime_t interval)
Arms or disarms an initialized timer.
Definition: thread.c:974
vlc_tls_t tls
Definition: tunnel.c:92
static aout_owner_t * aout_owner(audio_output_t *aout)
Definition: aout_internal.h:105
#define var_InheritString(o, n)
Definition: vlc_variables.h:639
#define CALLBACK(name, cb)
Definition: var.c:89
jmethodID getAbsolutePath
Definition: specific.c:45
pthread_cond_t vlc_cond_t
Condition variable.
Definition: vlc_threads.h:279
void vlc_rwlock_unlock(vlc_rwlock_t *lock)
Releases a read/write lock.
Definition: thread.c:393
int vlc_http_msg_add_header(struct vlc_http_msg *m, const char *name, const char *fmt,...)
Definition: message.c:142
void * p_private
Definition: aout_internal.h:43
static const wsaerrmsg_t wsaerrmsg[]
Definition: error.c:40
input_resource_t * p_input_resource
input resources
Definition: playlist_internal.h:59
static mtime_t mdate_interrupt(void)
Definition: thread.c:739
int asprintf(char **, const char *,...)
int64_t i_int
Definition: vlc_common.h:327
short revents
Definition: vlc_fixups.h:418
struct @97::@100 multimedia
void aout_DecGetResetStats(audio_output_t *, unsigned *, unsigned *)
#define var_Create(a, b, c)
Definition: vlc_variables.h:121
#define var_DelCallback(a, b, c, d)
Definition: vlc_variables.h:165
Definition: vlc_configuration.h:127
static int vlc_futex_wait(void *addr, unsigned val, const struct timespec *to)
Definition: thread.c:60
Definition: vlc_threads.h:953
static char * vlc_http_authority(const char *host, unsigned port)
Definition: tunnel.c:37
const char * msg
Definition: error.c:37
void system_Configure(libvlc_int_t *p_libvlc, int i_argc, const char *const pp_argv[])
Definition: specific.c:171
long tv_nsec
Definition: vlc_fixups.h:445
unsigned long vlc_thread_id(void)
Thread identifier.
Definition: thread.c:491
char data[]
Definition: specific.c:83
Definition: vlc_threads.h:951
lldiv_t lldiv(long long, long long)
TID tid
Definition: thread.c:911
static JNIEnv * get_env(bool *p_detach)
Definition: specific.c:202
struct vlc_threadvar * prev
Definition: thread.c:435
int aout_OutputNew(audio_output_t *, audio_sample_format_t *, aout_filters_cfg_t *filters_cfg)
Definition: vlc_threads.h:954
HEV done_event
Definition: thread.c:57
static CRITICAL_SECTION super_mutex
Definition: thread.c:45
PULONG id
Definition: thread.c:433
void vlc_CPU_init(void)
Determines the CPU capabilities and stores them in cpu_flags.
Definition: cpu.c:122
static void release_env(bool b_detach)
Definition: specific.c:223
vlc_thread_t thread
engine thread
Definition: playlist_internal.h:81
void aout_OutputFlush(audio_output_t *p_aout, bool)
Flushes or drains the audio output buffers.
Definition: output.c:649
bool aout_ChangeFilterString(vlc_object_t *manager, vlc_object_t *aout, const char *var, const char *name, bool b_add)
Definition: common.c:538
int initial_stereo_mode
Initial stereo mode set by options.
Definition: aout_internal.h:86
char * psz_host
Definition: vlc_url.h:150
vlc_object_t * parent
Parent object.
Definition: vlc_common.h:448
void ResyncCurrentIndex(playlist_t *p_playlist, playlist_item_t *p_cur)
Synchronise the current index of the playlist to match the index of the current item.
Definition: thread.c:117
#define CLOCK_FREQ
Definition: vlc_config.h:45
Definition: filters.c:344
Definition: vlc_configuration.h:122
vlc_tls_t * sock
Definition: tunnel.c:93
static vlc_mutex_t lock
Definition: interface.c:62
void aout_OutputUnlock(audio_output_t *)
Definition: output.c:687
mtime_t value
Definition: timer.c:65
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:84
Audio output object.
Definition: vlc_aout.h:114
float volume
Definition: aout_internal.h:60
long long quot
Definition: vlc_fixups.h:76
vlc_renderer_item_t * p_renderer
Definition: playlist_internal.h:60
DWORD LoadLibraryFlags
Definition: specific.c:41
#define IPC_CMD_ENQUEUE
Definition: specific.c:37
size_t EnumClockSource(vlc_object_t *obj, const char *var, char ***vp, char ***np)
Definition: thread.c:942
static int sys_futex(void *addr, int op, unsigned val, const struct timespec *to, void *addr2, int val3)
Definition: thread.c:49
#define VLC_EBADVAR
Bad variable value.
Definition: vlc_common.h:356
bool killable
Definition: thread.c:159
#define vlc_object_release(a)
Definition: vlc_objects.h:63
enum vlc_userdir vlc_userdir_t
#define AOUT_CHAN_MIDDLELEFT
Definition: vlc_es.h:124
vlc_tls_t * vlc_https_connect(vlc_tls_creds_t *creds, const char *name, unsigned port, bool *restrict two)
Definition: connmgr.c:55
static ssize_t vlc_tls_ProxyWrite(vlc_tls_t *tls, const struct iovec *iov, unsigned count)
Definition: tunnel.c:112
#define VLC_THREAD_ASSERT(action)
Definition: thread.c:151
void vlc_rwlock_wrlock(vlc_rwlock_t *lock)
Acquires a read/write lock for writing.
Definition: thread.c:387
time_t tv_sec
Definition: vlc_fixups.h:444
static int vlc_clone_attr(vlc_thread_t *p_handle, bool detached, void *(*entry)(void *), void *data, int priority)
Definition: thread.c:547
static bool PlayItem(playlist_t *p_playlist, playlist_item_t *p_item)
Start the input for an item.
Definition: thread.c:191
struct playlist_private_t::@74 status
char * psz_protocol
Definition: vlc_url.h:147
struct vlc_http_msg * vlc_http_msg_get_initial(struct vlc_http_stream *s)
Definition: message.c:274
static void aout_SetWavePhysicalChannels(audio_sample_format_t *fmt)
Definition: aout_internal.h:166
#define VLC_ETIMEOUT
Timeout.
Definition: vlc_common.h:352
#define AOUT_CHAN_LFE
Definition: vlc_es.h:126
void vlc_testcancel(void)
Issues an explicit deferred cancellation point.
Definition: thread.c:331
Internal module descriptor.
Definition: modules.h:79
ULONG interval
Definition: thread.c:914
static int tidIPCHelper
Definition: specific.c:44
#define IPC_CMD_QUIT
Definition: specific.c:38
struct vlc_http_msg * vlc_http_req_create(const char *method, const char *scheme, const char *authority, const char *path)
Creates an HTTP request.
Definition: message.c:211
int(* shutdown)(struct vlc_tls *, bool duplex)
Definition: vlc_tls.h:48
struct vlc_http_msg * vlc_http_msg_get_final(struct vlc_http_msg *m)
Gets final response headers.
Definition: message.c:282
Definition: vlc_fixups.h:409
ssize_t(* readv)(struct vlc_tls *, struct iovec *, unsigned)
Definition: vlc_tls.h:46
vlc_mutex_t lock
Non-null if waiting on futex.
Definition: thread.c:155
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:137
struct vlc_common_members obj
Definition: vlc_tls.h:69
char * psz_username
Definition: vlc_url.h:148
void aout_OutputDelete(audio_output_t *p_aout)
Stops the audio output stream (undoes aout_OutputNew()).
Definition: output.c:586
#define IPC_CMD_GO
Definition: specific.c:36
int vlc_threadvar_create(vlc_threadvar_t *key, void(*destr)(void *))
Allocates a thread-specific variable.
Definition: thread.c:385
#define POLLOUT
Definition: vlc_fixups.h:412
void mwait(mtime_t deadline)
Waits until a deadline.
Definition: thread.c:561
void vlc_assert_locked(vlc_mutex_t *p_mutex)
Definition: thread.c:117
static locale_t newlocale(int mask, const char *locale, locale_t base)
Definition: vlc_fixups.h:347
static ULONG vlc_WaitForSingleObject(HEV hev, ULONG ulTimeout)
Definition: thread.c:118
#define ABOVE_NORMAL_PRIORITY_CLASS
struct vlc_threadvar * vlc_threadvar_last
#define PL_DEBUG(...)
Definition: playlist_internal.h:168
static int vlc_clone_attr(vlc_thread_t *th, void *(*entry)(void *), void *data, bool detach)
Definition: thread.c:218
int resamp_type
Resampler mode (FIXME: redundant / resampling)
Definition: aout_internal.h:82
static void vlc_threadvars_cleanup(void)
Definition: thread.c:299
static DWORD thread_key
Definition: thread.c:51
static int vlc_clone_attr(vlc_thread_t *th, pthread_attr_t *attr, void *(*entry)(void *), void *data, int priority)
Definition: thread.c:413
signed char mute
Definition: aout_internal.h:61
void(* destroy)(void *)
Definition: thread.c:434
static int vlc_tls_GetFD(vlc_tls_t *tls)
Definition: vlc_tls.h:187
short status
Definition: message.c:59
void system_Init(void)
Definition: specific.c:166
void vlc_rwlock_init(vlc_rwlock_t *lock)
Initializes a read/write lock.
Definition: thread.c:369
void aout_OutputPlay(audio_output_t *, block_t *)
Plays a decoded audio buffer.
Definition: output.c:608
mtime_t end
Last seen PTS.
Definition: aout_internal.h:80
void vlc_cond_init_daytime(vlc_cond_t *p_condvar)
Initializes a condition variable (wall clock).
Definition: thread.c:222
void libvlc_MetadataCancel(libvlc_int_t *libvlc, void *id)
Cancels extraction of the meta data for an input item.
Definition: libvlc.c:553
void vlc_sem_wait(vlc_sem_t *sem)
Waits on a semaphore.
Definition: thread.c:357
const char * psz_name
Definition: vlc_codecs.h:315
TID tid
Definition: thread.c:55
HEV hev
Definition: thread.c:912
Thread handle.
Definition: vlc_threads.h:252
#define GENERIC_DIR_COUNT
Definition: specific.c:37
static unsigned __stdcall vlc_entry(void *p)
Definition: thread.c:469
int vlc_set_priority(vlc_thread_t th, int priority)
Definition: thread.c:291
#define AOUT_CHAN_MAX
Definition: vlc_es.h:154
#define PL_ASSERT_LOCKED
Definition: vlc_playlist.h:218
void vlc_mutex_init(vlc_mutex_t *p_mutex)
Initializes a fast mutex.
Definition: thread.c:85
aout_dev_t * list
Definition: aout_internal.h:67
Definition: vlc_configuration.h:123
#define vlc_cleanup_pop()
Unregisters the last cancellation handler.
Definition: vlc_threads.h:983
#define POLLIN
Definition: vlc_fixups.h:411
int i_skip
Number of items to skip.
Definition: playlist_internal.h:73
static void vlc_tls_Close(vlc_tls_t *session)
Closes a connection and its underlying resources.
Definition: vlc_tls.h:257
#define VLC_ENOOBJ
Object not found.
Definition: vlc_common.h:354
#define static_assert
Definition: vlc_fixups.h:367
#define AOUT_CHAN_REARRIGHT
Definition: vlc_es.h:123
static const char * vlc_strerror_l(int errnum, const char *lname)
Definition: error.c:31
void vlc_rwlock_destroy(vlc_rwlock_t *lock)
Destroys an initialized unused read/write lock.
Definition: thread.c:375
HTTP stream.
Definition: message.h:340
#define aout_FormatsPrint(o, t, a, b)
Definition: aout_internal.h:142
void * addr
Definition: thread.c:154
#define WSA_QOS_EUNKNOWNPSOBJ
Definition: error.c:31
#define AOUT_CHAN_LEFT
Definition: vlc_es.h:119
Definition: vlc_configuration.h:130
static bool Next(playlist_t *p_playlist)
Definition: thread.c:463
struct vlc_common_members obj
Definition: vlc_playlist.h:153
static void * Thread(void *)
Run the main control thread itself.
Definition: thread.c:477
vlc_tls_t * vlc_tls_SocketOpenTCP(vlc_object_t *obj, const char *name, unsigned port)
Creates a transport-layer TCP stream from a name and port.
Definition: tls.c:586
static int vlc_futex_wake(void *addr, int nr)
Definition: thread.c:55
aout_volume_t * volume
Definition: aout_internal.h:54
void JNI_OnUnload(JavaVM *vm, void *reserved)
Definition: specific.c:79
static void * xmalloc(size_t len)
Definition: vlc_common.h:970
static bool LoopInput(playlist_t *p_playlist)
Definition: thread.c:421
static BOOL SelectClockSource(void *data)
Definition: thread.c:847
#define aout_New(a)
Definition: aout_internal.h:124
static void * detached_thread(void *data)
Definition: thread.c:184
#define likely(p)
Definition: vlc_common.h:113
Definition: vlc_url.h:145
void aout_OutputLock(audio_output_t *)
Definition: output.c:673
The main vlc_object_t structure.
Definition: vlc_objects.h:39
static mtime_t mdate_wall(void)
Definition: thread.c:794
int vlc_savecancel(void)
Disables thread cancellation.
Definition: thread.c:313
static void vlc_timer_do(void *arg)
Definition: thread.c:920
static int vlc_clone_attr(vlc_thread_t *th, pthread_attr_t *attr, void *(*entry)(void *), void *data, int priority)
Definition: thread.c:424
int cancel_sock
Definition: thread.c:58
int aout_volume_SetFormat(aout_volume_t *, vlc_fourcc_t)
Selects the current sample format for software amplification.
Definition: volume.c:80
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:351
#define VLC_UNUSED(x)
Definition: vlc_common.h:912
void set_current_status_item(playlist_t *p_playlist, playlist_item_t *p_item)
Definition: engine.c:410
static void vlc_thread_fatal(const char *action, int error, const char *function, const char *file, unsigned line)
Definition: thread.c:79
pthread_mutex_t vlc_mutex_t
Mutex.
Definition: vlc_threads.h:267
static struct vlc_http_msg * vlc_http_tunnel_open(struct vlc_http_conn *conn, const char *hostname, unsigned port, const char *username, const char *password)
Definition: tunnel.c:48
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:349
void aout_OutputPause(audio_output_t *p_aout, bool, mtime_t)
Notifies the audio output (if any) of pause/resume events.
Definition: output.c:635
vlc_cond_t signal
wakes up the playlist engine thread
Definition: playlist_internal.h:83
char * strdup(const char *)
audio_sample_format_t input_format
Definition: aout_internal.h:88
Definition: vlc_fixups.h:404
static void vlc_http_conn_release(struct vlc_http_conn *conn)
Definition: conn.h:51
static HPIPE hpipeIPC
Definition: specific.c:42
int vlc_http_msg_add_agent(struct vlc_http_msg *m, const char *str)
Sets the agent field.
Definition: message.c:736
Definition: vlc_configuration.h:128
bool aout_FiltersCanResample(aout_filters_t *filters)
Definition: filters.c:682
Definition: vlc_configuration.h:132
unsigned i_port
Definition: vlc_url.h:151
int libvlc_ArtRequest(libvlc_int_t *libvlc, input_item_t *item, input_item_meta_request_option_t i_options)
Requests retrieving/downloading art for an input item.
Definition: libvlc.c:535
static int InputEvent(vlc_object_t *p_this, char const *psz_cmd, vlc_value_t oldval, vlc_value_t newval, void *p_data)
Definition: thread.c:91
Definition: vlc_configuration.h:124
void(* func)(void *)
Definition: thread.c:916
static mtime_t mdate_tick(void)
Definition: thread.c:757
vlc_cleanup_t * cleaners
Definition: thread.c:63
const char name[16]
Definition: httpd.c:1249
void playlist_Activate(playlist_t *p_playlist)
Creates the main playlist thread.
Definition: thread.c:48
void vlc_cond_destroy(vlc_cond_t *p_condvar)
Deinitializes a condition variable.
Definition: thread.c:228
Definition: renderer_discovery.c:33
void vlc_addr_broadcast(void *addr)
Wakes up all thread on an address.
Definition: thread.c:70
static mtime_t mdate_multimedia(void)
Definition: thread.c:770
static char * get_java_string(JNIEnv *env, jclass clazz, const char *psz_name)
Definition: specific.c:54
char * config_GetUserDir(vlc_userdir_t type)
Definition: specific.c:272
void vlc_cond_init(vlc_cond_t *p_condvar)
Initializes a condition variable.
Definition: thread.c:216
audio_sample_format_t mixer_format
Definition: aout_internal.h:89
Definition: fourcc_gen.c:50
#define Q2LL(q)
Definition: thread.c:868
void vlc_cond_wait(vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex)
Waits on a condition variable.
Definition: thread.c:267
static void CALLBACK vlc_cancel_self(ULONG_PTR self)
Definition: thread.c:586
pthread_rwlock_t vlc_rwlock_t
Read/write lock.
Definition: vlc_threads.h:304
bool quit
Definition: thread.c:915
#define VLC_ENOMOD
Module not found.
Definition: vlc_common.h:353
static vlc_mutex_t super_mutex
Definition: thread.c:130
void * vlc_threadvar_get(vlc_threadvar_t key)
Gets the value of a thread-local variable for the calling thread.
Definition: thread.c:400
unsigned long _System _DLL_InitTerm(unsigned long, unsigned long)
Definition: thread.c:141
bool b_reset_currently_playing
Definition: playlist_internal.h:88
static struct timespec mtime_to_ts(mtime_t date)
Definition: thread.c:109
char * vlc_path2uri(const char *path, const char *scheme)
Converts local path to URL.
Definition: url.c:138
void vlc_addr_signal(void *addr)
Wakes up one thread on an address.
Definition: thread.c:65
void vlc_mutex_destroy(vlc_mutex_t *p_mutex)
Deinitializes a mutex.
Definition: thread.c:110
static pthread_once_t vlc_clock_once
Definition: thread.c:52
input_thread_t * p_input
the input thread associated with the current item
Definition: playlist_internal.h:57
vlc_tls_t * vlc_tls_ClientSessionCreate(vlc_tls_creds_t *crd, vlc_tls_t *sock, const char *host, const char *service, const char *const *alpn, char **alp)
Initiates a client TLS session.
Definition: tls.c:169
static void vlc_thread_fatal_print(const char *action, int error, const char *function, const char *file, unsigned line)
Definition: thread.c:49
int gettimeofday(struct timeval *, struct timezone *)
atomic_uint buffers_played
Definition: aout_internal.h:95
void vlc_mutex_unlock(vlc_mutex_t *p_mutex)
Releases a mutex.
Definition: thread.c:138
struct vlc_tls_proxy vlc_tls_proxy_t
#define VLC_ENOVAR
Variable not found.
Definition: vlc_common.h:355
#define unlikely(p)
Definition: vlc_common.h:114
#define pl_priv(pl)
Definition: playlist_internal.h:95
#define var_GetString(a, b)
Definition: vlc_variables.h:658
atomic_uchar restart
Definition: aout_internal.h:96
int enqueue
Definition: specific.c:82
#define var_AddCallback(a, b, c, d)
Definition: vlc_variables.h:164
struct vlc_thread::@4 wait
Definition: aout_internal.h:36
bool detached
Definition: thread.c:60
#define LOOKUP(s)
Definition: thread.c:1037
static void finish_joinable_thread(void *data)
Definition: thread.c:197
void aout_volume_SetVolume(aout_volume_t *, float)
Definition: volume.c:121
#define AOUT_CHAN_REARLEFT
Definition: vlc_es.h:122
char * device
Definition: aout_internal.h:59
#define VLC_THREAD_ASSERT(action)
Definition: thread.c:74
bool b_request
Set to true by the requester The playlist sets it back to false when processing the request.
Definition: playlist_internal.h:75
const char * vlc_strerror_c(int errnum)
Definition: error.c:34
#define vlc_clock_setup()
Definition: thread.c:105
void aout_Destroy(audio_output_t *)
Deinitializes an audio output module and destroys an audio output object.
Definition: output.c:358
atomic_bool update
Definition: aout_internal.h:73
jclass clazz
Definition: specific.c:41
playlist_item_t * playlist_GetNextLeaf(playlist_t *, playlist_item_t *p_root, playlist_item_t *p_item, bool b_ena, bool b_unplayed)
Finds the next item to play.
Definition: tree.c:204
#define vlc_assert_unreachable()
Definition: vlc_common.h:118
int aout_OutputTimeGet(audio_output_t *, mtime_t *)
Definition: output.c:594
sem_t vlc_sem_t
Semaphore.
Definition: vlc_threads.h:297
int64_t mtime_t
High precision date or time interval.
Definition: vlc_common.h:150
void vlc_cancel(vlc_thread_t thread_id)
Marks a thread as cancelled.
Definition: thread.c:297
void vlc_rwlock_rdlock(vlc_rwlock_t *lock)
Acquires a read/write lock for reading.
Definition: thread.c:381
int vlc_timer_create(vlc_timer_t *id, void(*func)(void *), void *data)
Initializes an asynchronous timer.
Definition: thread.c:941
int vlc_http_msg_get_status(const struct vlc_http_msg *m)
Gets response status code.
Definition: message.c:166
int vlc_cond_timedwait(vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex, mtime_t deadline)
Waits on a condition variable up to a certain date.
Definition: thread.c:273
int(* get_fd)(struct vlc_tls *)
Definition: vlc_tls.h:45
Definition: vlc_fixups.h:443
#define PLI_NAME(p)
Definition: playlist_internal.h:179
static int vlc_cond_wait_common(vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex, ULONG ulTimeout)
Definition: thread.c:353
static CONDITION_VARIABLE super_variable
Definition: thread.c:46
void vlc_trace(const char *fn, const char *file, unsigned line)
Definition: thread.c:66
Video output thread descriptor.
Definition: vlc_vout.h:70
int argc
Definition: specific.c:81
void aout_DecChangePause(audio_output_t *, bool b_paused, mtime_t i_date)
Definition: dec.c:431
pthread_t handle
Definition: vlc_threads.h:254
vlc_tls_t * vlc_https_connect_proxy(void *ctx, vlc_tls_creds_t *creds, const char *hostname, unsigned port, bool *restrict two, const char *proxy)
Definition: tunnel.c:135
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_common.h:464
Definition: vlc_aout.h:365
void aout_ChangeViewpoint(audio_output_t *aout, const vlc_viewpoint_t *p_viewpoint)
Definition: dec.c:469
playlist_item_array_t items
Arrays of items.
Definition: vlc_playlist.h:155
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:948
mtime_t mdate(void)
Precision monotonic clock.
Definition: thread.c:406
void vlc_threads_setup(libvlc_int_t *p_libvlc)
Definition: thread.c:169
vlc_viewpoint_t value
Definition: aout_internal.h:75
static CRITICAL_SECTION setup_lock
Definition: thread.c:1005
#define RUNNING_ON_VALGRIND
Definition: thread.c:156
#define VLC_STATIC_MUTEX
Static initializer for (static) mutex.
Definition: vlc_threads.h:272
__declspec(dllexport)
Definition: thread.c:770
HEV cancel_event
Definition: thread.c:56
#define VLC_IPC_PIPE
Definition: specific.c:34
void *(* entry)(void *)
Definition: thread.c:149
static JavaVM * s_jvm
Definition: specific.c:36
unsigned i_consecutive_errors
Reset current item array.
Definition: playlist_internal.h:89
Definition: aout_internal.h:99
static mtime_t(* mdate_selected)(void)
Definition: thread.c:817
static void vlc_thread_destroy(vlc_thread_t th)
Definition: thread.c:457
static struct vlc_http_stream * vlc_http_stream_open(struct vlc_http_conn *conn, const struct vlc_http_msg *m)
Definition: conn.h:46
VLC value structure.
Definition: vlc_common.h:325
int i_size
Definition: vlc_playlist.h:54
char * authority
Definition: message.c:62
void vlc_addr_wait(void *addr, unsigned val)
Waits on an address.
Definition: thread.c:75
void vlc_control_cancel(int cmd,...)
Internal handler for thread cancellation.
Definition: thread.c:343
aout_filters_cfg_t filters_cfg
Definition: aout_internal.h:92
void aout_DecFlush(audio_output_t *, bool wait)
Definition: dec.c:448
module_t * module
Output plugin (or NULL if inactive)
Definition: aout_internal.h:52
static void * joinable_thread(void *data)
Definition: thread.c:204
void vlc_mutex_lock(vlc_mutex_t *p_mutex)
Acquires a mutex.
Definition: thread.c:123
Definition: vlc_block.h:111
BOOL WINAPI DllMain(HINSTANCE, DWORD, LPVOID)
Definition: thread.c:1042
static char * config_GetHomeDir(const char *psz_dir, const char *psz_default_dir)
Definition: specific.c:179
#define msg_Err(p_this,...)
Definition: vlc_messages.h:82
int setenv(const char *, const char *, int)
void * data
Definition: thread.c:917
static void vlc_static_cond_destroy_all(void)
Definition: thread.c:290
unsigned count
Definition: aout_internal.h:68
static void IPCHelperThread(void *arg)
Definition: specific.c:46
#define var_GetBool(a, b)
Definition: vlc_variables.h:656
input_item_t * p_input
Linked input item.
Definition: vlc_playlist.h:128
void vlc_join(vlc_thread_t handle, void **result)
Waits for a thread to complete (if needed), then destroys it.
Definition: thread.c:270
static int vlc_tls_Shutdown(vlc_tls_t *tls, bool duplex)
Shuts a connection down.
Definition: vlc_tls.h:241
void aout_DecDelete(audio_output_t *)
Stops all plugins involved in the audio output.
Definition: dec.c:124
uint32_t vlc_fourcc_t
Definition: fourcc_gen.c:32
static playlist_item_t * NextItem(playlist_t *p_playlist)
Compute the next playlist item depending on the playlist course mode (forward, backward,...
Definition: thread.c:262
static bool rt_priorities
Definition: thread.c:389