Go to the documentation of this file.
23 #ifndef LIBVLC_AOUT_INTERNAL_H
24 # define LIBVLC_AOUT_INTERNAL_H 1
26 # include <stdatomic.h>
32 # include "../clock/clock.h"
35 # define AOUT_MAX_INPUT_RATE (4)
124 #define aout_volume_New(o, g) aout_volume_New(VLC_OBJECT(o), g)
133 #define aout_New(a) aout_New(VLC_OBJECT(a))
150 #define aout_FormatsPrint(o, t, a, b) \
151 aout_FormatsPrint(VLC_OBJECT(o), t, a, b)
154 #define AOUT_DEC_SUCCESS 0
155 #define AOUT_DEC_CHANGED 1
156 #define AOUT_DEC_FAILED VLC_EGENERIC
179 static const uint32_t wave_channels[] = {
205 const char *type,
const char *
name,
static vlc_threadvar_t thread_key
Definition: thread.c:62
vlc_tick_t value
Definition: timer.c:66
struct vlc_threadvar * next
Definition: thread.c:153
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
char * config_GetLibDir(void) VLC_USED VLC_MALLOC
Gets the arch-specific installation directory.
Definition: dirs.m:91
@ VLC_SYSDATA_DIR
Global architecture-independent read-only data directory (e.g.
Definition: vlc_configuration.h:280
atomic_uint buffers_lost
Definition: aout_internal.h:100
#define AOUT_CHAN_RIGHT
Definition: vlc_es.h:119
#define AOUT_CHAN_MIDDLERIGHT
Definition: vlc_es.h:124
size_t count
Definition: core.c:401
int libvlc_InternalAddIntf(libvlc_int_t *libvlc, const char *name)
Starts an interface plugin.
Definition: interface.c:262
int input_profile
Definition: aout_internal.h:84
#define GetDWBE(p)
Definition: vlc_common.h:1014
void * data
Definition: thread.c:75
static vlc_cond_t super_variable
Definition: thread.c:59
@ AOUT_RESAMPLING_UP
Definition: aout_internal.h:39
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:133
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
Definition: vlc_es.h:603
static int vlc_select(int nfds, fd_set *rdset, fd_set *wrset, fd_set *exset, struct timeval *timeout)
Definition: thread.c:663
void aout_DecChangeDelay(audio_output_t *aout, vlc_tick_t delay)
Definition: dec.c:551
Definition: playlist.h:48
static void vlc_thread_cleanup(struct vlc_thread *th)
Definition: thread.c:413
static void vlc_cancel_self(PVOID dummy)
Definition: thread.c:540
#define vlc_cleanup_push(routine, arg)
Registers a thread cancellation handler.
Definition: vlc_threads.h:1010
static bool var_InheritBool(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:675
jmethodID getProperty
Definition: specific.c:50
bool discontinuity
Definition: aout_internal.h:73
static thread_local struct vlc_thread * thread
Definition: thread.c:87
@ VLC_CACHE_DIR
Definition: vlc_configuration.h:310
@ VLC_VIDEOS_DIR
Definition: vlc_configuration.h:319
const char * psz_name
Definition: text_style.c:53
struct vlc_cleanup_t vlc_cleanup_t
Definition: vlc_threads.h:784
unsigned long vlc_thread_id(void)
Thread identifier.
Definition: thread.c:36
Definition: vlc_objects.h:114
Definition: aout_internal.h:45
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
static int vlc_umtx_wait(void *addr, unsigned val, const struct timespec *ts)
Definition: thread.c:51
@ VLC_DESKTOP_DIR
Definition: vlc_configuration.h:312
atomic_bool killed
Definition: thread.c:83
#define BLOCK_FLAG_CORRUPTED
This block is corrupted and/or there is data loss
Definition: vlc_block.h:87
long long rem
Definition: vlc_fixups.h:78
static vlc_tick_t mdate_wall(void)
Definition: thread.c:612
vlc_mutex_t lock
Definition: aout_internal.h:47
static void system_ConfigureDbus(libvlc_int_t *vlc, int argc, const char *const argv[])
Definition: specific.c:39
static ssize_t xiph_header(void **pextra, const uint8_t *buf, size_t len)
Definition: xiph.c:96
block_t * block
Definition: xiph.c:57
int vlc_atomic_timedwait_daytime(void *addr, unsigned val, time_t deadline)
Definition: thread.c:105
size_t i_buffer
Payload length.
Definition: vlc_block.h:122
static int system_InitWSA(int hi, int lo)
Definition: specific.c:39
#define msg_Info(p_this,...)
Definition: vlc_messages.h:100
static libvlc_priv_t * libvlc_priv(libvlc_int_t *libvlc)
Definition: libvlc.h:199
#define AOUT_CHAN_CENTER
Definition: vlc_es.h:117
pthread_key_t vlc_threadvar_t
Thread-local key handle.
Definition: vlc_threads.h:195
static void * xiph_init(bool vorbis)
Definition: xiph.c:46
UINT cbtc
Definition: thread.c:561
void(* destroy)(void *)
Definition: thread.c:151
aout_filters_t * filters
Definition: aout_internal.h:49
int fd
Definition: vlc_fixups.h:419
static vlc_tick_t vlc_tick_from_samples(int64_t samples, int samp_rate)
Definition: vlc_tick.h:101
#define AOUT_CHAN_REARCENTER
Definition: vlc_es.h:120
void aout_RequestRestart(audio_output_t *, unsigned)
Marks the audio output for restart, to update any parameter of the output plug-in (e....
Definition: dec.c:225
#define aout_volume_New(o, g)
Definition: aout_internal.h:124
static void vlc_entry(void *p)
Definition: thread.c:434
void codec_decode(demux_t *demux, void *data, block_t *block)
Definition: rtpfmt.c:54
void * locale_t
Definition: vlc_fixups.h:344
static struct wait_bucket * wait_bucket_get(atomic_uint *addr)
Definition: thread.c:244
int vlc_atomic_timedwait(void *addr, unsigned val, vlc_tick_t deadline)
Waits on an address with a time-out.
Definition: thread.c:84
void system_End(void)
Cleans up after system_Init() and system_Configure().
Definition: specific.c:272
#define LC_MESSAGES_MASK
Definition: vlc_fixups.h:342
atomic_uint * addr
Definition: thread.c:79
static ULONG vlc_Sleep(ULONG ulTimeout)
Definition: thread.c:139
jint JNI_OnLoad(JavaVM *vm, void *reserved)
Definition: specific.c:102
aout_owner_t owner
Definition: aout_internal.h:110
Definition: vlc_fixups.h:417
static char * ppsz_generic_names[(VLC_VIDEOS_DIR - VLC_DESKTOP_DIR+1)]
Definition: specific.c:39
void aout_volume_Delete(aout_volume_t *)
Destroys a software amplifier.
Definition: volume.c:108
static char * config_GetGenericDir(const char *psz_name)
Definition: specific.c:230
audio_sample_format_t filter_format
Definition: aout_internal.h:91
#define AOUT_RESTART_FILTERS
Definition: vlc_aout.h:325
HTIMER htimer
Definition: thread.c:829
#define MS_FROM_VLC_TICK(vtk)
Definition: vlc_tick.h:123
unsigned vlc_timer_getoverrun(vlc_timer_t timer)
Fetches and resets the overrun counter for a timer.
Definition: thread.c:913
LARGE_INTEGER freq
Definition: thread.c:556
void aout_DecFlush(audio_output_t *)
Definition: dec.c:558
void vlc_playlist_Lock(vlc_playlist_t *playlist)
Lock the playlist/player.
Definition: playlist.c:80
@ AOUT_RESAMPLING_NONE
Definition: aout_internal.h:38
Definition: specific.c:67
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
char * vlc_getProxyUrl(const char *url)
Determines the network proxy server to use (if any).
Definition: specific.c:342
static vlc_tick_t mdate_multimedia(void)
Definition: thread.c:590
HANDLE id
Definition: thread.c:57
#define _(str)
Definition: vlc_fixups.h:374
static vlc_tick_t mdate_default(void)
Definition: thread.c:629
int vlc_mkdir(const char *dirname, mode_t mode)
Creates a directory.
Definition: filesystem.c:96
static char * var_InheritString(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:705
audio_output_t output
Definition: aout_internal.h:109
pthread_t thread
Definition: thread.c:72
Viewpoints.
Definition: vlc_viewpoint.h:41
static ULONG vlc_DosWaitEventSemEx(HEV hev, ULONG ulTimeout)
Definition: thread.c:87
#define FUTEX_WAKE_PRIVATE
Definition: thread.c:35
static void aout_InputRequestRestart(audio_output_t *aout)
Definition: aout_internal.h:172
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
#define VLC_VAR_ADDRESS
Definition: vlc_variables.h:53
jmethodID getExternalStoragePublicDirectory
Definition: specific.c:43
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:178
@ VLC_LIB_DIR
Global architecture-dependent read-only directory (e.g.
Definition: vlc_configuration.h:283
Definition: vlc_fixups.h:75
struct timespec timespec_from_vlc_tick(vlc_tick_t date)
Definition: mtime.c:146
static char * getenv(const char *name)
Definition: vlc_fixups.h:292
Audio meter plugin owner structure.
Definition: vlc_aout.h:594
static void freelocale(locale_t loc)
Definition: vlc_fixups.h:346
Doubly-linked list node.
Definition: vlc_list.h:43
const char * vlc_strerror(int errnum)
Definition: error.c:29
#define VLC_TICK_FROM_MSFTIME(msft)
Definition: vlc_tick.h:172
int vlc_threadvar_set(vlc_threadvar_t key, void *value)
Sets a thread-specific variable.
Definition: thread.c:250
static aout_owner_t * aout_owner(audio_output_t *aout)
Definition: aout_internal.h:113
#define VLC_TIMER_DISARM
Definition: vlc_threads.h:937
jmethodID getAbsolutePath
Definition: specific.c:46
static const wsaerrmsg_t wsaerrmsg[]
Definition: error.c:41
int asprintf(char **, const char *,...)
void vlc_cancel_addr_clear(atomic_uint *addr)
Definition: thread.c:225
@ VLC_HOME_DIR
Definition: vlc_configuration.h:307
void * theora_init(demux_t *demux)
Definition: xiph.c:74
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
short revents
Definition: vlc_fixups.h:421
void aout_DecGetResetStats(audio_output_t *, unsigned *, unsigned *)
Mutex.
Definition: vlc_threads.h:225
const char * msg
Definition: error.c:38
void system_Configure(libvlc_int_t *p_libvlc, int i_argc, const char *const pp_argv[])
Definition: specific.c:172
const audio_sample_format_t * fmt
Definition: vlc_aout.h:611
long tv_nsec
Definition: vlc_fixups.h:445
void codec_destroy(demux_t *demux, void *data)
Definition: rtpfmt.c:47
HMTX lock
Definition: thread.c:81
char data[]
Definition: specific.c:73
lldiv_t lldiv(long long, long long)
TID tid
Definition: thread.c:827
static JNIEnv * get_env(bool *p_detach)
Definition: specific.c:203
uint32_t ident
Definition: xiph.c:58
struct vlc_threadvar * prev
Definition: thread.c:152
HEV done_event
Definition: thread.c:68
static CRITICAL_SECTION super_mutex
Definition: thread.c:47
PULONG id
Definition: thread.c:150
static void release_env(bool b_detach)
Definition: specific.c:224
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
void aout_DecChangeRate(audio_output_t *aout, float rate)
Definition: dec.c:544
es_out_id_t * id
Definition: xiph.c:56
int vlc_clone(vlc_thread_t *th, void *(*entry)(void *), void *data, int priority)
Creates and starts a new thread.
Definition: thread.c:144
vlc_tick_t delay
Definition: aout_internal.h:75
#define CLOCK_FREQ
Definition: vlc_config.h:47
Definition: filters.c:349
char * vlc_path2uri(const char *path, const char *scheme)
Converts local path to URL.
Definition: url.c:143
static vlc_tick_t(* mdate_selected)(void)
Definition: thread.c:635
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
Audio output object.
Definition: vlc_aout.h:141
long long quot
Definition: vlc_fixups.h:77
#define IPC_CMD_ENQUEUE
Definition: specific.c:37
#define VLC_THREAD_PRIORITY_HIGHEST
Definition: vlc_threads.h:212
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
static int sys_futex(void *addr, int op, unsigned val, const struct timespec *to, void *addr2, int val3)
Definition: thread.c:52
static char * var_GetString(vlc_object_t *p_obj, const char *psz_name)
Get a string value.
Definition: vlc_variables.h:437
DWORD id
Definition: thread.c:76
bool killable
Definition: thread.c:84
char * config_GetUserDir(vlc_userdir_t type)
Definition: specific.c:273
int vlc_savecancel(void)
Disables thread cancellation.
Definition: thread.c:183
Definition: vlc_filter.h:65
#define AOUT_CHAN_MIDDLELEFT
Definition: vlc_es.h:123
void aout_DecChangePause(audio_output_t *, bool b_paused, vlc_tick_t i_date)
Definition: dec.c:531
vlc_tick_t vlc_tick_now(void)
Precision monotonic clock.
Definition: thread.c:261
@ VLC_DOCUMENTS_DIR
Definition: vlc_configuration.h:316
#define VLC_THREAD_ASSERT(action)
Definition: thread.c:99
Audio meter structure.
Definition: vlc_aout.h:607
time_t tv_sec
Definition: vlc_fixups.h:444
void * arg
Definition: sort.c:51
float rate
Play-out speed rate.
Definition: aout_internal.h:70
int requested_stereo_mode
Requested stereo mode set by the user.
Definition: aout_internal.h:80
Definition: vlc_configuration.h:331
static vlc_tick_t mdate_tick(void)
Definition: thread.c:581
static void aout_SetWavePhysicalChannels(audio_sample_format_t *fmt)
Definition: aout_internal.h:177
#define AOUT_CHAN_LFE
Definition: vlc_es.h:125
Internal module descriptor.
Definition: modules.h:78
ULONG interval
Definition: thread.c:830
static int tidIPCHelper
Definition: specific.c:44
#define IPC_CMD_QUIT
Definition: specific.c:38
HMTX lock
Definition: thread.c:217
Structure describing a filter.
Definition: vlc_filter.h:215
#define VLC_CODEC_VORBIS
Definition: vlc_fourcc.h:480
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
void xiph_decode(demux_t *demux, void *data, block_t *block)
Definition: xiph.c:146
vlc_playlist_t * main_playlist
Definition: libvlc.h:188
vlc_mutex_t lock
Non-null if waiting on futex.
Definition: thread.c:80
void aout_FiltersSetClockDelay(aout_filters_t *filters, vlc_tick_t delay)
Definition: filters.c:668
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
Definition: vlc_configuration.h:318
static vlc_tick_t mdate_perf(void)
Definition: thread.c:600
block_t * block_Alloc(size_t size)
Allocates a block.
Definition: block.c:108
void aout_OutputDelete(audio_output_t *p_aout)
Stops the audio output stream (undoes aout_OutputNew()).
Definition: output.c:632
#define IPC_CMD_GO
Definition: specific.c:36
#define POLLOUT
Definition: vlc_fixups.h:415
uint32_t i_flags
Definition: vlc_block.h:126
static locale_t newlocale(int mask, const char *locale, locale_t base)
Definition: vlc_fixups.h:350
static ULONG vlc_WaitForSingleObject(HEV hev, ULONG ulTimeout)
Definition: thread.c:134
#define ABOVE_NORMAL_PRIORITY_CLASS
struct vlc_threadvar * vlc_threadvar_last
vlc_tick_t resamp_start_drift
Resampler drift absolute value.
Definition: aout_internal.h:71
void aout_RemoveMeterPlugin(audio_output_t *aout, vlc_audio_meter_plugin *plugin)
Definition: output.c:824
int resamp_type
Resampler mode (FIXME: redundant / resampling)
Definition: aout_internal.h:72
static BOOL SelectClockSource(vlc_object_t *obj)
Definition: thread.c:665
static void vlc_threadvars_cleanup(void)
Definition: thread.c:147
@ VLC_CONFIG_DIR
Definition: vlc_configuration.h:308
const char * vlc_strerror_c(int errnum)
Definition: error.c:34
static DWORD thread_key
Definition: thread.c:53
static int vlc_clone_attr(vlc_thread_t *th, pthread_attr_t *attr, void *(*entry)(void *), void *data, int priority)
Definition: thread.c:131
void aout_DecDrain(audio_output_t *)
Definition: dec.c:593
void vlc_atomic_notify_all(void *addr)
Wakes up all thread on an address.
Definition: thread.c:72
void vlc_tick_wait(vlc_tick_t deadline)
Waits until a deadline.
Definition: thread.c:803
vlc_mutex_t lock
Definition: rand.c:50
void system_Init(void)
Definition: specific.c:167
void vlc_atomic_notify_one(void *addr)
Wakes up one thread on an address.
Definition: thread.c:67
BOOL WINAPI DllMain(HANDLE hinstDll, DWORD fdwReason, LPVOID lpvReserved)
Definition: thread.c:788
unsigned waiters
Definition: thread.c:219
int vlc_threadvar_create(vlc_threadvar_t *key, void(*destr)(void *))
Allocates a thread-specific variable.
Definition: thread.c:240
void *(* entry)(void *)
Definition: thread.c:74
void vlc_cancel_addr_set(atomic_uint *addr)
Definition: thread.c:213
TID tid
Definition: thread.c:66
HEV hev
Definition: thread.c:828
static struct wait_bucket wait_buckets[32]
#define VLC_CODEC_THEORA
Definition: vlc_fourcc.h:54
Thread handle.
Definition: vlc_threads.h:180
static void SetWBE(void *p, uint16_t w)
Writes 16 bits in network byte order.
Definition: vlc_common.h:1057
int aout_DecPlay(audio_output_t *aout, block_t *block)
Definition: dec.c:429
#define GENERIC_DIR_COUNT
Definition: specific.c:38
static unsigned __stdcall vlc_entry(void *p)
Definition: thread.c:348
int vlc_set_priority(vlc_thread_t th, int priority)
Definition: thread.c:161
#define AOUT_CHAN_MAX
Definition: vlc_es.h:153
stream_t definition
Definition: vlc_stream.h:46
static unsigned vlc_clock_prec
Definition: thread.c:55
void(* func)(void *)
Definition: thread.c:832
vlc_tick_t i_pts
Definition: vlc_block.h:129
#define vlc_cleanup_pop()
Unregisters the last cancellation handler.
Definition: vlc_threads.h:1018
#define POLLIN
Definition: vlc_fixups.h:414
#define static_assert
Definition: vlc_fixups.h:370
#define AOUT_CHAN_REARRIGHT
Definition: vlc_es.h:122
static const char * vlc_strerror_l(int errnum, const char *lname)
Definition: error.c:32
vlc_tick_t first_pts
Definition: aout_internal.h:76
#define aout_FormatsPrint(o, t, a, b)
Definition: aout_internal.h:150
#define WSA_QOS_EUNKNOWNPSOBJ
Definition: error.c:32
#define AOUT_CHAN_LEFT
Definition: vlc_es.h:118
@ AUDIO_ES
Definition: vlc_es.h:604
#define vlc_tick_from_sec(sec)
Definition: vlc_tick.h:81
@ VLC_PUBLICSHARE_DIR
Definition: vlc_configuration.h:315
static int vlc_futex_wake(void *addr, int nr)
Definition: thread.c:58
static void wait_bucket_leave(void *data)
Definition: thread.c:262
static int vlc_umtx_wake(void *addr, int nr)
Definition: thread.c:46
aout_volume_t * volume
Definition: aout_internal.h:50
void JNI_OnUnload(JavaVM *vm, void *reserved)
Definition: specific.c:80
void vlc_playlist_Unlock(vlc_playlist_t *playlist)
Unlock the playlist/player.
Definition: playlist.c:86
void * vlc_threadvar_get(vlc_threadvar_t key)
Gets the value of a thread-local variable for the calling thread.
Definition: thread.c:255
void vlc_restorecancel(int state)
Restores the cancellation state.
Definition: thread.c:193
HEV wait
Definition: thread.c:218
#define aout_New(a)
Definition: aout_internal.h:133
block_t * block_Realloc(block_t *block, ssize_t prebody, size_t body)
Reallocates a block.
Definition: block.c:235
RTP demux module shared declarations.
VLC object common members.
Definition: vlc_objects.h:43
static void vlc_timer_do(void *arg)
Definition: thread.c:836
static void vlc_clock_setup_once(void)
Definition: thread.c:57
int cancel_sock
Definition: thread.c:69
int aout_volume_SetFormat(aout_volume_t *, vlc_fourcc_t)
Selects the current sample format for software amplification.
Definition: volume.c:81
@ POLLPRI
Definition: vlc_fixups.h:412
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
static vlc_tick_t vlc_tick_from_frac(uint64_t num, uint64_t den)
Definition: vlc_tick.h:111
char * strdup(const char *)
audio_sample_format_t input_format
Definition: aout_internal.h:85
vlc_atomic_rc_t rc
Definition: aout_internal.h:104
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
#define VLC_TICK_FROM_MS(ms)
Definition: vlc_tick.h:122
char * config_GetSysPath(vlc_sysdir_t type, const char *filename)
Gets an installation directory.
Definition: specific.c:306
#define VLC_USED
Definition: fourcc_gen.c:32
static HPIPE hpipeIPC
Definition: specific.c:42
#define GetWBE(p)
Definition: vlc_common.h:1013
bool aout_FiltersCanResample(aout_filters_t *filters)
Definition: filters.c:708
enum vlc_system_dir vlc_sysdir_t
System directory identifiers.
void aout_RequestRetiming(audio_output_t *aout, vlc_tick_t system_ts, vlc_tick_t audio_ts)
Definition: dec.c:323
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
module_config_t ** list
Definition: core.c:400
#define VLC_WEAK
Weak symbol annotation.
Definition: vlc_common.h:198
vlc_cleanup_t * cleaners
Definition: thread.c:73
void vlc_timer_destroy(vlc_timer_t timer)
Destroys an initialized timer.
Definition: thread.c:877
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
const char name[16]
Definition: httpd.c:1268
int aout_OutputNew(audio_output_t *)
Starts an audio output stream.
Definition: output.c:525
struct @131::@134 multimedia
static char * get_java_string(JNIEnv *env, jclass clazz, const char *psz_name)
Definition: specific.c:55
audio_sample_format_t mixer_format
Definition: aout_internal.h:94
bool bitexact
Definition: aout_internal.h:51
Definition: fourcc_gen.c:51
#define Q2LL(q)
Definition: thread.c:784
static void CALLBACK vlc_cancel_self(ULONG_PTR self)
Definition: thread.c:436
bool quit
Definition: thread.c:831
static vlc_mutex_t super_mutex
Definition: thread.c:58
Condition variable.
Definition: vlc_threads.h:349
void aout_FormatPrepare(audio_sample_format_t *p_format)
Definition: common.c:87
unsigned long _System _DLL_InitTerm(unsigned long, unsigned long)
Definition: thread.c:935
@ VLC_DOWNLOAD_DIR
Definition: vlc_configuration.h:313
static struct wait_bucket * wait_bucket_enter(atomic_uint *addr)
Definition: thread.c:252
void vlc_control_cancel(vlc_cleanup_t *cleaner)
Internal handler for thread cancellation.
Definition: thread.c:617
static int vlc_futex_wait(void *addr, unsigned flags, unsigned val, const struct timespec *to)
Definition: thread.c:63
static int vlc_clone_attr(vlc_thread_t *th, void *(*entry)(void *), void *data)
Definition: thread.c:103
bool vorbis
Definition: xiph.c:59
static void vlc_thread_fatal_print(const char *action, int error, const char *function, const char *file, unsigned line)
Definition: thread.c:50
void vlc_atomic_wait(void *addr, unsigned val)
Waits on an address.
Definition: thread.c:77
atomic_uint buffers_played
Definition: aout_internal.h:101
void aout_FiltersResetClock(aout_filters_t *filters)
Definition: filters.c:662
atomic_uchar restart
Definition: aout_internal.h:102
int enqueue
Definition: specific.c:72
void vlc_threadvar_delete(vlc_threadvar_t *p_tls)
Deallocates a thread-specific variable.
Definition: thread.c:245
@ AOUT_RESAMPLING_DOWN
Definition: aout_internal.h:40
#define LOOKUP(s)
Definition: thread.c:786
@ VLC_TEMPLATES_DIR
Definition: vlc_configuration.h:314
void aout_volume_SetVolume(aout_volume_t *, float)
Definition: volume.c:122
#define AOUT_CHAN_REARLEFT
Definition: vlc_es.h:121
#define VLC_THREAD_ASSERT(action)
Definition: thread.c:60
int vlc_playlist_Start(vlc_playlist_t *playlist)
Start the player.
Definition: player.c:174
void * codec_init(demux_t *demux, es_format_t *fmt)
Definition: rtpfmt.c:40
void aout_Destroy(audio_output_t *)
Deinitializes an audio output module and destroys an audio output object.
Definition: output.c:359
atomic_bool update
Definition: aout_internal.h:62
jclass clazz
Definition: specific.c:42
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
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
#define likely(p)
Predicted true condition.
Definition: vlc_common.h:218
struct rtp_xiph_t rtp_xiph_t
Definition: vlc_fixups.h:443
uint8_t * p_buffer
Payload start.
Definition: vlc_block.h:121
@ VLC_USERDATA_DIR
Definition: vlc_configuration.h:309
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_objects.h:70
CRITICAL_SECTION lock
Definition: thread.c:69
static CONDITION_VARIABLE super_variable
Definition: thread.c:48
#define FUTEX_WAIT_BITSET_PRIVATE
Definition: thread.c:37
int argc
Definition: specific.c:71
#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
pthread_t handle
Definition: vlc_threads.h:182
static void wait_bucket_init(void)
Definition: thread.c:222
Definition: vlc_aout.h:497
int code
Definition: error.c:37
void vlc_cond_init(vlc_cond_t *cond)
Initializes a condition variable.
Definition: threads.c:234
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
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:1144
void vlc_threads_setup(libvlc_int_t *p_libvlc)
Definition: thread.c:89
vlc_viewpoint_t value
Definition: aout_internal.h:64
void xiph_destroy(demux_t *demux, void *data)
Definition: xiph.c:80
static CRITICAL_SECTION setup_lock
Definition: thread.c:754
static thread_local struct @76 state
struct vlc_thread::@4 wait
__declspec(dllexport)
Definition: thread.c:686
HEV cancel_event
Definition: thread.c:67
#define VLC_IPC_PIPE
Definition: specific.c:34
void block_Release(block_t *block)
Releases a block.
Definition: block.c:135
static JavaVM * s_jvm
Definition: specific.c:37
void vlc_join(vlc_thread_t handle, void **result)
Waits for a thread to complete (if needed), then destroys it.
Definition: thread.c:151
Definition: aout_internal.h:107
enum vlc_user_dir vlc_userdir_t
struct vlc_clock_t * clock
Definition: aout_internal.h:69
aout_filters_cfg_t filters_cfg
Definition: aout_internal.h:96
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
module_t * module
Output plugin (or NULL if inactive)
Definition: aout_internal.h:48
static void * joinable_thread(void *data)
Definition: thread.c:95
static void wait_bucket_destroy(void)
Definition: thread.c:233
Definition: vlc_atomic.h:41
const char var[sizeof("video")]
Definition: player.c:1734
Definition: vlc_block.h:117
vlc_tick_t original_pts
Definition: aout_internal.h:78
static char * config_GetHomeDir(const char *psz_dir, const char *psz_default_dir)
Definition: specific.c:180
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
struct @0::@1 Environment
#define vlc_tick_from_timespec(tv)
Definition: vlc_tick.h:185
int vlc_timer_create(vlc_timer_t *id, void(*func)(void *), void *data)
Initializes an asynchronous timer.
Definition: thread.c:857
int setenv(const char *, const char *, int)
@ POLLNVAL
Definition: vlc_fixups.h:407
void * data
Definition: thread.c:833
void vlc_tick_sleep(vlc_tick_t delay)
Waits for an interval of time.
Definition: thread.c:819
@ VLC_MUSIC_DIR
Definition: vlc_configuration.h:317
void vlc_testcancel(void)
Issues an explicit deferred cancellation point.
Definition: thread.c:201
unsigned count
Definition: aout_internal.h:57
vlc_tick_t request_delay
Definition: aout_internal.h:74
static vlc_tick_t mdate_interrupt(void)
Definition: thread.c:567
static void IPCHelperThread(void *arg)
Definition: specific.c:64
void aout_DecDelete(audio_output_t *)
Stops all plugins involved in the audio output.
Definition: dec.c:143
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_filters_t * aout_FiltersNewWithClock(vlc_object_t *, const vlc_clock_t *, const audio_sample_format_t *, const audio_sample_format_t *, const aout_filters_cfg_t *cfg)
uint32_t vlc_fourcc_t
Definition: fourcc_gen.c:33
unsigned vlc_GetCPUCount(void)
Count CPUs.
Definition: thread.c:273
void vlc_cancel(vlc_thread_t thread_id)
Marks a thread as cancelled.
Definition: thread.c:167