VLC  3.0.15
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  * $Id: 77070e093baa59e9e9df43a2fef44dc6a4a2573d $
6  *
7  * Authors: Christophe Massiot <massiot@via.ecp.fr>
8  *
9  * This program is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public License
20  * along with this program; if not, write to the Free Software Foundation,
21  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23 
24 #ifndef LIBVLC_AOUT_INTERNAL_H
25 # define LIBVLC_AOUT_INTERNAL_H 1
26 
27 # include <vlc_atomic.h>
28 # include <vlc_viewpoint.h>
29 
30 /* Max input rate factor (1/4 -> 4) */
31 # define AOUT_MAX_INPUT_RATE (4)
32 
33 enum {
37 };
38 
40 {
41  struct vout_thread_t *(*pf_request_vout)( void *, struct vout_thread_t *,
42  const video_format_t *, bool );
43  void *p_private;
44 };
45 
46 typedef struct aout_volume aout_volume_t;
47 typedef struct aout_dev aout_dev_t;
48 
49 typedef struct
50 {
52  module_t *module; /**< Output plugin (or NULL if inactive) */
55 
56  struct
57  {
59  char *device;
60  float volume;
61  signed char mute;
62  } req;
63 
64  struct
65  {
68  unsigned count;
69  } dev;
70 
71  struct
72  {
73  atomic_bool update;
76  } vp;
77 
78  struct
79  {
80  mtime_t end; /**< Last seen PTS */
81  unsigned resamp_start_drift; /**< Resampler drift absolute value */
82  int resamp_type; /**< Resampler mode (FIXME: redundant / resampling) */
84  } sync;
85 
86  int initial_stereo_mode; /**< Initial stereo mode set by options */
87 
90 
93 
94  atomic_uint buffers_lost;
95  atomic_uint buffers_played;
96  atomic_uchar restart;
97 } aout_owner_t;
98 
99 typedef struct
100 {
104 
105 static inline aout_owner_t *aout_owner (audio_output_t *aout)
106 {
107  return &((aout_instance_t *)aout)->owner;
108 }
109 
110 /****************************************************************************
111  * Prototypes
112  *****************************************************************************/
113 
114 /* From mixer.c : */
116 #define aout_volume_New(o, g) aout_volume_New(VLC_OBJECT(o), g)
118 void aout_volume_SetVolume(aout_volume_t *, float);
121 
122 
123 /* From output.c : */
125 #define aout_New(a) aout_New(VLC_OBJECT(a))
127 
129  aout_filters_cfg_t *filters_cfg);
132 void aout_OutputPause( audio_output_t * p_aout, bool, mtime_t );
133 void aout_OutputFlush( audio_output_t * p_aout, bool );
134 void aout_OutputDelete( audio_output_t * p_aout );
137 
138 
139 /* From common.c : */
140 void aout_FormatsPrint(vlc_object_t *, const char *,
141  const audio_sample_format_t *,
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 );
147 
148 /* From dec.c */
149 #define AOUT_DEC_SUCCESS 0
150 #define AOUT_DEC_CHANGED 1
151 #define AOUT_DEC_FAILED VLC_EGENERIC
152 
154  const audio_replay_gain_t *, const aout_request_vout_t *);
156 int aout_DecPlay(audio_output_t *, block_t *, int i_input_rate);
157 void aout_DecGetResetStats(audio_output_t *, unsigned *, unsigned *);
158 void aout_DecChangePause(audio_output_t *, bool b_paused, mtime_t i_date);
159 void aout_DecFlush(audio_output_t *, bool wait);
160 void aout_RequestRestart (audio_output_t *, unsigned);
161 
162 static inline void aout_InputRequestRestart(audio_output_t *aout)
163 {
165 }
166 
168 {
169  static const uint32_t wave_channels[] = {
173 
174  fmt->i_physical_channels = 0;
175  for (int i = 0; i < fmt->i_channels && i < AOUT_CHAN_MAX; ++i)
176  fmt->i_physical_channels |= wave_channels[i];
177  aout_FormatPrepare(fmt);
178 }
179 
180 /* From filters.c */
182 
184  const vlc_viewpoint_t *p_viewpoint);
185 
186 #endif /* !LIBVLC_AOUT_INTERNAL_H */
wsaerrmsg_t
Definition: error.c:34
thread_key
static vlc_threadvar_t thread_key
Definition: thread.c:51
vlc_tls_ProxyShutdown
static int vlc_tls_ProxyShutdown(vlc_tls_t *tls, bool duplex)
Definition: tunnel.c:121
vlc_threadvar::next
struct vlc_threadvar * next
Definition: thread.c:436
ARRAY_VAL
#define ARRAY_VAL(array, pos)
Definition: vlc_arrays.h:222
rt_offset
static int rt_offset
Definition: thread.c:390
VLC_HOME_DIR
Definition: vlc_configuration.h:121
_CRT_term
void _CRT_term(void)
vlc_getopt.h
playlist_t
Structure containing information about the playlist.
Definition: vlc_playlist.h:151
aout_owner_t::buffers_lost
atomic_uint buffers_lost
Definition: aout_internal.h:94
AOUT_CHAN_RIGHT
#define AOUT_CHAN_RIGHT
Definition: vlc_es.h:120
AOUT_CHAN_MIDDLERIGHT
#define AOUT_CHAN_MIDDLERIGHT
Definition: vlc_es.h:125
vlc_thread::finished
vlc_sem_t finished
Definition: thread.c:147
count
size_t count
Definition: core.c:461
playlist_private_t::request
struct playlist_private_t::@75 request
libvlc_InternalAddIntf
int libvlc_InternalAddIntf(libvlc_int_t *libvlc, const char *name)
Starts an interface plugin.
Definition: interface.c:201
vlc_es.h
vlc_thread::data
void * data
Definition: thread.c:150
super_variable
static vlc_cond_t super_variable
Definition: thread.c:131
AOUT_RESAMPLING_UP
Definition: aout_internal.h:35
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:132
RUNNING_ON_VALGRIND
#define RUNNING_ON_VALGRIND
Definition: thread.c:196
vlc_error
const char * vlc_error(int i_err)
Definition: error.c:36
playlist_private_t::killed
bool killed
playlist is shutting down
Definition: playlist_internal.h:84
vlc_select
static int vlc_select(int nfds, fd_set *rdset, fd_set *wrset, fd_set *exset, struct timeval *timeout)
Definition: thread.c:747
vlc_cond_timedwait_daytime
int vlc_cond_timedwait_daytime(vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex, time_t deadline)
Definition: thread.c:297
vlc_sem_init
void vlc_sem_init(vlc_sem_t *sem, unsigned value)
Initializes a semaphore.
Definition: thread.c:325
get_current_status_node
playlist_item_t * get_current_status_node(playlist_t *p_playlist)
Definition: engine.c:403
vlc_tls_ProxyRead
static ssize_t vlc_tls_ProxyRead(vlc_tls_t *tls, struct iovec *iov, unsigned count)
Definition: tunnel.c:103
vlc_static_cond_init
static void vlc_static_cond_init(vlc_cond_t *p_condvar)
Definition: thread.c:268
vlc_restorecancel
void vlc_restorecancel(int state)
Restores the cancellation state.
Definition: thread.c:323
vlc_thread_cleanup
static void vlc_thread_cleanup(struct vlc_thread *th)
Definition: thread.c:505
vlc_cancel_self
static void vlc_cancel_self(PVOID dummy)
Definition: thread.c:653
vlc_cleanup_push
#define vlc_cleanup_push(routine, arg)
Registers a thread cancellation handler.
Definition: vlc_threads.h:975
vlc_tls_ProxyClose
static void vlc_tls_ProxyClose(vlc_tls_t *tls)
Definition: tunnel.c:128
var_SetAddress
#define var_SetAddress(o, n, p)
Definition: vlc_variables.h:260
playlist_private_t::p_node
playlist_item_t * p_node
Current node to play from.
Definition: playlist_internal.h:65
playlist_private_t::lock
vlc_mutex_t lock
dah big playlist global lock
Definition: playlist_internal.h:82
getProperty
jmethodID getProperty
Definition: specific.c:49
vlc_clock_conversion_factor
static mach_timebase_info_data_t vlc_clock_conversion_factor
Definition: thread.c:44
vlc_static_cond_t::next
vlc_static_cond_t * next
Definition: thread.c:263
VLC_VIDEOS_DIR
Definition: vlc_configuration.h:133
aout_owner_t::discontinuity
bool discontinuity
Definition: aout_internal.h:83
vlc_mutex_trylock
int vlc_mutex_trylock(vlc_mutex_t *p_mutex)
Tries to acquire a mutex.
Definition: thread.c:129
thread
static thread_local struct vlc_thread * thread
Definition: thread.c:162
strcasecmp
int strcasecmp(const char *, const char *)
vlc_tls::writev
ssize_t(* writev)(struct vlc_tls *, const struct iovec *, unsigned)
Definition: vlc_tls.h:47
ARRAY_APPEND
#define ARRAY_APPEND(array, elem)
Definition: vlc_arrays.h:187
vlc_sem_destroy
void vlc_sem_destroy(vlc_sem_t *sem)
Deinitializes a semaphore.
Definition: thread.c:331
_fmode_bin
int _fmode_bin
playlist_private_t::input_dead
bool input_dead
Set when input has finished.
Definition: playlist_internal.h:78
mdate_perf
static mtime_t mdate_perf(void)
Definition: thread.c:780
vlc_clock_setup
#define vlc_clock_setup()
Definition: thread.c:54
libvlc_int_t
Definition: vlc_main.h:33
aout_DecNew
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
aout_owner_t
Definition: aout_internal.h:49
EMPTY_STR
#define EMPTY_STR(str)
Definition: vlc_common.h:768
vlc_tls_creds
TLS credentials.
Definition: vlc_tls.h:67
vlc_common.h
playlist_t::current
playlist_item_array_t current
Items currently being played.
Definition: vlc_playlist.h:157
msleep
void msleep(mtime_t delay)
Waits for an interval of time.
Definition: thread.c:569
playlist_item_t
playlist item / node
Definition: vlc_playlist.h:126
FUTEX_WAIT_PRIVATE
#define FUTEX_WAIT_PRIVATE
Definition: thread.c:34
input_Close
void input_Close(input_thread_t *p_input)
Close an input.
Definition: input.c:221
vlc_thread::killed
atomic_bool killed
Definition: thread.c:158
META_REQUEST_OPTION_NONE
Definition: vlc_input_item.h:364
lldiv_t::rem
long long rem
Definition: vlc_fixups.h:77
aout_owner_t::lock
vlc_mutex_t lock
Definition: aout_internal.h:51
VLC_PUBLICSHARE_DIR
Definition: vlc_configuration.h:129
system_ConfigureDbus
static void system_ConfigureDbus(libvlc_int_t *vlc, int argc, const char *const argv[])
Definition: specific.c:38
VLC_THREAD_PRIORITY_LOW
#define VLC_THREAD_PRIORITY_LOW
Definition: vlc_threads.h:321
VLC_CLEANUP_POP
Definition: vlc_threads.h:952
Environment
struct @0::@1 Environment
vlc_clock_setup_once
static void vlc_clock_setup_once(void)
Definition: thread.c:46
audio_replay_gain_t
Definition: vlc_es.h:56
PL_LOCK
#define PL_LOCK
Definition: vlc_playlist.h:216
vlc_threadvar_delete
void vlc_threadvar_delete(vlc_threadvar_t *p_tls)
Deallocates a thread-specific variable.
Definition: thread.c:390
system_InitWSA
static int system_InitWSA(int hi, int lo)
Definition: specific.c:43
var_InheritInteger
#define var_InheritInteger(o, n)
Definition: vlc_variables.h:612
input_item_t
Describes an input and is used to spawn input_thread_t objects.
Definition: vlc_input_item.h:58
msg_Info
#define msg_Info(p_this,...)
Definition: vlc_messages.h:80
libvlc_priv
static libvlc_priv_t * libvlc_priv(libvlc_int_t *libvlc)
Definition: libvlc.h:198
AOUT_CHAN_CENTER
#define AOUT_CHAN_CENTER
Definition: vlc_es.h:118
vlc_addr_timedwait
bool vlc_addr_timedwait(void *addr, unsigned val, mtime_t delay)
Waits on an address with a time-out.
Definition: thread.c:80
mdate_default
static mtime_t mdate_default(void)
Definition: thread.c:811
vlc_mutex_init_recursive
void vlc_mutex_init_recursive(vlc_mutex_t *p_mutex)
Initializes a recursive mutex.
Definition: thread.c:99
cbtc
UINT cbtc
Definition: thread.c:733
aout_owner_t::request_vout
aout_request_vout_t request_vout
Definition: aout_internal.h:91
vlc_http_msg_add_creds_basic
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
get_current_status_item
playlist_item_t * get_current_status_item(playlist_t *p_playlist)
Accessor for status item and status nodes.
Definition: engine.c:396
aout_owner_t::filters
aout_filters_t * filters
Definition: aout_internal.h:53
File
struct @0::@2 File
PL_UNLOCK
#define PL_UNLOCK
Definition: vlc_playlist.h:217
pollfd::fd
int fd
Definition: vlc_fixups.h:416
input_resource_TerminateSout
void input_resource_TerminateSout(input_resource_t *p_resource)
This function deletes the current sout in the resources.
Definition: resource.c:509
playlist_AddExt
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
libvlc_priv_t::playlist
struct playlist_t * playlist
Playlist for interfaces.
Definition: libvlc.h:190
vlc_http_msg_destroy
void vlc_http_msg_destroy(struct vlc_http_msg *m)
Destroys an HTTP message.
Definition: message.c:191
aout_FormatPrepare
void aout_FormatPrepare(audio_sample_format_t *p_format)
Definition: common.c:86
aout_request_vout
Definition: aout_internal.h:39
AOUT_CHAN_REARCENTER
#define AOUT_CHAN_REARCENTER
Definition: vlc_es.h:121
mtime_to_ts
static struct timespec mtime_to_ts(mtime_t date)
Definition: thread.c:57
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:197
aout_volume_New
#define aout_volume_New(o, g)
Definition: aout_internal.h:115
vlc_entry
static void vlc_entry(void *p)
Definition: thread.c:536
vlc_threadvar_t
pthread_key_t vlc_threadvar_t
Thread-local key handle.
Definition: vlc_threads.h:314
locale_t
void * locale_t
Definition: vlc_fixups.h:341
clean_detached_thread
static void clean_detached_thread(void *data)
Definition: thread.c:175
system_End
void system_End(void)
Cleans up after system_Init() and system_Configure().
Definition: specific.c:254
vlc_clone_detach
int vlc_clone_detach(vlc_thread_t *th, void *(*entry)(void *), void *data, int priority)
Definition: thread.c:280
LC_MESSAGES_MASK
#define LC_MESSAGES_MASK
Definition: vlc_fixups.h:339
vlc_clone_attr
static int vlc_clone_attr(vlc_thread_t *p_handle, bool detached, void *(*entry)(void *), void *data, int priority)
Definition: thread.c:483
libvlc_Quit
void libvlc_Quit(libvlc_int_t *p_libvlc)
Posts an exit signal to LibVLC instance.
Definition: exit.c:60
vlc_Sleep
static ULONG vlc_Sleep(ULONG ulTimeout)
Definition: thread.c:123
JNI_OnLoad
jint JNI_OnLoad(JavaVM *vm, void *reserved)
Definition: specific.c:101
playlist_t::i_current_index
int i_current_index
Index in current array.
Definition: vlc_playlist.h:158
vlc_mkdir
int vlc_mkdir(const char *dirname, mode_t mode)
Creates a directory.
Definition: filesystem.c:93
config_lock
vlc_rwlock_t config_lock
Definition: core.c:40
aout_instance_t::owner
aout_owner_t owner
Definition: aout_internal.h:102
VLC_THREAD_ASSERT
#define VLC_THREAD_ASSERT(action)
Definition: thread.c:109
static_condvar_start
static vlc_static_cond_t * static_condvar_start
Definition: thread.c:266
vlc_network.h
playlist_item_t::i_nb_played
unsigned i_nb_played
Times played.
Definition: vlc_playlist.h:133
pollfd
Definition: vlc_fixups.h:414
ppsz_generic_names
static char * ppsz_generic_names[(VLC_VIDEOS_DIR - VLC_DESKTOP_DIR+1)]
Definition: specific.c:38
vlc_renderer_item_release
void vlc_renderer_item_release(vlc_renderer_item_t *p_item)
Releases a renderer item, i.e.
Definition: renderer_discovery.c:166
var_InheritBool
#define var_InheritBool(o, n)
Definition: vlc_variables.h:601
aout_volume_Delete
void aout_volume_Delete(aout_volume_t *)
Destroys a software amplifier.
Definition: volume.c:107
vlc_threadvar
Definition: thread.c:431
vlc_getProxyUrl
char * vlc_getProxyUrl(const char *url)
Determines the network proxy server to use (if any).
Definition: specific.c:315
ResetCurrentlyPlaying
void ResetCurrentlyPlaying(playlist_t *p_playlist, playlist_item_t *p_cur)
Reset the currently playing playlist.
Definition: thread.c:143
config_GetGenericDir
static char * config_GetGenericDir(const char *psz_name)
Definition: specific.c:229
vlc_h1_conn_create
struct vlc_http_conn * vlc_h1_conn_create(void *ctx, struct vlc_tls *, bool proxy)
Definition: h1conn.c:322
AOUT_RESTART_FILTERS
#define AOUT_RESTART_FILTERS
Definition: vlc_aout.h:229
video_format_t
video format description
Definition: vlc_es.h:325
vlc_lrand48
long vlc_lrand48(void)
PRNG uniformly distributed between 0 and 2^32 - 1.
Definition: rand.c:78
vlc_timer::htimer
HTIMER htimer
Definition: thread.c:913
playlist_private_t::p_item
playlist_item_t * p_item
Currently playing/active item.
Definition: playlist_internal.h:64
vlc_sem_post
int vlc_sem_post(vlc_sem_t *sem)
Increments the value of a semaphore.
Definition: thread.c:343
vlc_tls
Transport layer socket.
Definition: vlc_tls.h:43
vlc_timer_getoverrun
unsigned vlc_timer_getoverrun(vlc_timer_t timer)
Fetches and resets the overrun counter for a timer.
Definition: thread.c:997
vlc_UrlClean
void vlc_UrlClean(vlc_url_t *restrict url)
Definition: url.c:594
playlist_private_t
Definition: playlist_internal.h:46
vlc_tls::p
struct vlc_tls * p
Definition: vlc_tls.h:51
freq
LARGE_INTEGER freq
Definition: thread.c:728
playlist_Deactivate
void playlist_Deactivate(playlist_t *p_playlist)
Stops the playlist forever (but do not destroy it yet).
Definition: thread.c:65
VLC_MUSIC_DIR
Definition: vlc_configuration.h:131
AOUT_RESAMPLING_NONE
Definition: aout_internal.h:34
vlc_ipc_data_t
Definition: specific.c:78
vlc_common_members::libvlc
libvlc_int_t * libvlc
LibVLC instance.
Definition: vlc_common.h:441
vlc_UrlParse
int vlc_UrlParse(vlc_url_t *url, const char *str)
Parses an URI or IRI.
Definition: url.c:554
playlist_item_t::i_children
int i_children
Number of children, -1 if not a node.
Definition: vlc_playlist.h:132
msg_Dbg
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:86
xstrdup
static char * xstrdup(const char *str)
Definition: vlc_common.h:994
vlc_timer_destroy
void vlc_timer_destroy(vlc_timer_t timer)
Destroys an initialized timer.
Definition: thread.c:961
vlc_thread::id
HANDLE id
Definition: thread.c:55
_
#define _(str)
Definition: vlc_fixups.h:371
vlc_url_t::psz_password
char * psz_password
Definition: vlc_url.h:149
vlc_tls::close
void(* close)(struct vlc_tls *)
Definition: vlc_tls.h:49
vlc_threadvar_set
int vlc_threadvar_set(vlc_threadvar_t key, void *value)
Sets a thread-specific variable.
Definition: thread.c:395
set_current_status_node
void set_current_status_node(playlist_t *p_playlist, playlist_item_t *p_node)
Definition: engine.c:418
aout_owner_t::resamp_start_drift
unsigned resamp_start_drift
Resampler drift absolute value.
Definition: aout_internal.h:81
aout_instance_t::output
audio_output_t output
Definition: aout_internal.h:101
vlc_thread::thread
pthread_t thread
Definition: thread.c:146
vlc_cond_broadcast
void vlc_cond_broadcast(vlc_cond_t *p_condvar)
Wakes up all threads waiting on a condition variable.
Definition: thread.c:262
vlc_viewpoint_t
Viewpoints.
Definition: vlc_viewpoint.h:44
vlc_DosWaitEventSemEx
static ULONG vlc_DosWaitEventSemEx(HEV hev, ULONG ulTimeout)
Definition: thread.c:71
vlc_thread_self
vlc_thread_t vlc_thread_self(void)
Thread handle.
Definition: thread.c:164
FUTEX_WAKE_PRIVATE
#define FUTEX_WAKE_PRIVATE
Definition: thread.c:33
aout_InputRequestRestart
static void aout_InputRequestRestart(audio_output_t *aout)
Definition: aout_internal.h:161
aout_DecPlay
int aout_DecPlay(audio_output_t *, block_t *, int i_input_rate)
Definition: dec.c:356
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:350
VLC_VAR_ADDRESS
#define VLC_VAR_ADDRESS
Definition: vlc_variables.h:53
getExternalStoragePublicDirectory
jmethodID getExternalStoragePublicDirectory
Definition: specific.c:42
ARRAY_SIZE
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:162
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:263
vlc_strerror
const char * vlc_strerror(int errnum)
Definition: error.c:29
lldiv_t
Definition: vlc_fixups.h:74
vlc_static_cond_t::condvar
vlc_cond_t condvar
Definition: thread.c:262
vlc_renderer_item_hold
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
getenv
static char * getenv(const char *name)
Definition: vlc_fixups.h:293
VLC_DESKTOP_DIR
Definition: vlc_configuration.h:126
vlc_input.h
vlc_GetCPUCount
unsigned vlc_GetCPUCount(void)
Count CPUs.
Definition: thread.c:418
freelocale
static void freelocale(locale_t loc)
Definition: vlc_fixups.h:343
vlc_timer
Definition: thread.c:909
_CRT_init
int _CRT_init(void)
vlc_tls_ProxyGetFD
static int vlc_tls_ProxyGetFD(vlc_tls_t *tls)
Definition: tunnel.c:96
vlc_cond_signal
void vlc_cond_signal(vlc_cond_t *p_condvar)
Wakes up one thread waiting on a condition variable.
Definition: thread.c:256
ARRAY_RESET
#define ARRAY_RESET(array)
Definition: vlc_arrays.h:180
vlc_timer_schedule
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
input_GetItem
input_item_t * input_GetItem(input_thread_t *p_input)
Get the item from an input thread FIXME it does not increase ref count of the item.
Definition: input.c:272
vlc_tls_proxy::tls
vlc_tls_t tls
Definition: tunnel.c:92
aout_owner
static aout_owner_t * aout_owner(audio_output_t *aout)
Definition: aout_internal.h:105
audio_format_t::i_physical_channels
uint16_t i_physical_channels
Definition: vlc_es.h:89
var_InheritString
#define var_InheritString(o, n)
Definition: vlc_variables.h:639
audio_format_t
audio format description
Definition: vlc_es.h:82
CALLBACK
#define CALLBACK(name, cb)
Definition: var.c:89
getAbsolutePath
jmethodID getAbsolutePath
Definition: specific.c:45
vlc_cond_t
pthread_cond_t vlc_cond_t
Condition variable.
Definition: vlc_threads.h:279
vlc_rwlock_unlock
void vlc_rwlock_unlock(vlc_rwlock_t *lock)
Releases a read/write lock.
Definition: thread.c:393
vlc_http_msg_add_header
int vlc_http_msg_add_header(struct vlc_http_msg *m, const char *name, const char *fmt,...)
Definition: message.c:142
aout_request_vout::p_private
void * p_private
Definition: aout_internal.h:43
wsaerrmsg
static const wsaerrmsg_t wsaerrmsg[]
Definition: error.c:40
playlist_private_t::p_input_resource
input_resource_t * p_input_resource
input resources
Definition: playlist_internal.h:59
mdate_interrupt
static mtime_t mdate_interrupt(void)
Definition: thread.c:739
asprintf
int asprintf(char **, const char *,...)
vlc_http_conn
Definition: conn.h:39
vlc_value_t::i_int
int64_t i_int
Definition: vlc_common.h:327
vlc_rand.h
pollfd::revents
short revents
Definition: vlc_fixups.h:418
vlc_tls_proxy
Definition: tunnel.c:90
multimedia
struct @97::@100 multimedia
aout_DecGetResetStats
void aout_DecGetResetStats(audio_output_t *, unsigned *, unsigned *)
var_Create
#define var_Create(a, b, c)
Definition: vlc_variables.h:121
var_DelCallback
#define var_DelCallback(a, b, c, d)
Definition: vlc_variables.h:165
VLC_DOWNLOAD_DIR
Definition: vlc_configuration.h:127
vlc_futex_wait
static int vlc_futex_wait(void *addr, unsigned val, const struct timespec *to)
Definition: thread.c:60
conn.h
aout_volume
Definition: volume.c:36
VLC_CANCEL_ADDR_SET
Definition: vlc_threads.h:953
vlc_http_authority
static char * vlc_http_authority(const char *host, unsigned port)
Definition: tunnel.c:37
wsaerrmsg_t::msg
const char * msg
Definition: error.c:37
system_Configure
void system_Configure(libvlc_int_t *p_libvlc, int i_argc, const char *const pp_argv[])
Definition: specific.c:171
timespec::tv_nsec
long tv_nsec
Definition: vlc_fixups.h:445
audio_format_t::i_channels
uint8_t i_channels
Definition: vlc_es.h:114
System
struct @0::@3 System
vlc_thread_id
unsigned long vlc_thread_id(void)
Thread identifier.
Definition: thread.c:491
vlc_ipc_data_t::data
char data[]
Definition: specific.c:83
VLC_CLEANUP_PUSH
Definition: vlc_threads.h:951
lldiv
lldiv_t lldiv(long long, long long)
vlc_timer::tid
TID tid
Definition: thread.c:911
get_env
static JNIEnv * get_env(bool *p_detach)
Definition: specific.c:202
vlc_renderer_discovery.h
vlc_threadvar::prev
struct vlc_threadvar * prev
Definition: thread.c:435
aout_OutputNew
int aout_OutputNew(audio_output_t *, audio_sample_format_t *, aout_filters_cfg_t *filters_cfg)
VLC_CANCEL_ADDR_CLEAR
Definition: vlc_threads.h:954
vlc_thread::done_event
HEV done_event
Definition: thread.c:57
super_mutex
static CRITICAL_SECTION super_mutex
Definition: thread.c:45
vlc_threadvar::id
PULONG id
Definition: thread.c:433
vlc_CPU_init
void vlc_CPU_init(void)
Determines the CPU capabilities and stores them in cpu_flags.
Definition: cpu.c:122
release_env
static void release_env(bool b_detach)
Definition: specific.c:223
playlist_private_t::thread
vlc_thread_t thread
engine thread
Definition: playlist_internal.h:81
aout_OutputFlush
void aout_OutputFlush(audio_output_t *p_aout, bool)
Flushes or drains the audio output buffers.
Definition: output.c:649
aout_ChangeFilterString
bool aout_ChangeFilterString(vlc_object_t *manager, vlc_object_t *aout, const char *var, const char *name, bool b_add)
Definition: common.c:538
aout_owner_t::initial_stereo_mode
int initial_stereo_mode
Initial stereo mode set by options.
Definition: aout_internal.h:86
vlc_url_t::psz_host
char * psz_host
Definition: vlc_url.h:150
vlc_common_members::parent
vlc_object_t * parent
Parent object.
Definition: vlc_common.h:448
ResyncCurrentIndex
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
input_item_GetArtURL
#define input_item_GetArtURL
Definition: vlc_input_item.h:315
CLOCK_FREQ
#define CLOCK_FREQ
Definition: vlc_config.h:45
aout_filters
Definition: filters.c:344
VLC_CONFIG_DIR
Definition: vlc_configuration.h:122
vlc_tls_proxy::sock
vlc_tls_t * sock
Definition: tunnel.c:93
lock
static vlc_mutex_t lock
Definition: interface.c:62
aout_OutputUnlock
void aout_OutputUnlock(audio_output_t *)
Definition: output.c:687
vlc_timer::value
mtime_t value
Definition: timer.c:65
msg_Warn
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:84
audio_output
Audio output object.
Definition: vlc_aout.h:114
aout_owner_t::volume
float volume
Definition: aout_internal.h:60
lldiv_t::quot
long long quot
Definition: vlc_fixups.h:76
playlist_private_t::p_renderer
vlc_renderer_item_t * p_renderer
Definition: playlist_internal.h:60
LoadLibraryFlags
DWORD LoadLibraryFlags
Definition: specific.c:41
IPC_CMD_ENQUEUE
#define IPC_CMD_ENQUEUE
Definition: specific.c:37
EnumClockSource
size_t EnumClockSource(vlc_object_t *obj, const char *var, char ***vp, char ***np)
Definition: thread.c:942
sys_futex
static int sys_futex(void *addr, int op, unsigned val, const struct timespec *to, void *addr2, int val3)
Definition: thread.c:49
VLC_STACKSIZE
#define VLC_STACKSIZE
VLC_EBADVAR
#define VLC_EBADVAR
Bad variable value.
Definition: vlc_common.h:356
vlc_thread::killable
bool killable
Definition: thread.c:159
vlc_object_release
#define vlc_object_release(a)
Definition: vlc_objects.h:63
vlc_userdir_t
enum vlc_userdir vlc_userdir_t
AOUT_CHAN_MIDDLELEFT
#define AOUT_CHAN_MIDDLELEFT
Definition: vlc_es.h:124
vlc_https_connect
vlc_tls_t * vlc_https_connect(vlc_tls_creds_t *creds, const char *name, unsigned port, bool *restrict two)
Definition: connmgr.c:55
vlc_tls_ProxyWrite
static ssize_t vlc_tls_ProxyWrite(vlc_tls_t *tls, const struct iovec *iov, unsigned count)
Definition: tunnel.c:112
VLC_THREAD_ASSERT
#define VLC_THREAD_ASSERT(action)
Definition: thread.c:151
vlc_rwlock_wrlock
void vlc_rwlock_wrlock(vlc_rwlock_t *lock)
Acquires a read/write lock for writing.
Definition: thread.c:387
timespec::tv_sec
time_t tv_sec
Definition: vlc_fixups.h:444
vlc_clone_attr
static int vlc_clone_attr(vlc_thread_t *p_handle, bool detached, void *(*entry)(void *), void *data, int priority)
Definition: thread.c:547
aout_dev
Definition: output.c:39
PlayItem
static bool PlayItem(playlist_t *p_playlist, playlist_item_t *p_item)
Start the input for an item.
Definition: thread.c:191
playlist_private_t::status
struct playlist_private_t::@74 status
vlc_url_t::psz_protocol
char * psz_protocol
Definition: vlc_url.h:147
vlc_http_msg_get_initial
struct vlc_http_msg * vlc_http_msg_get_initial(struct vlc_http_stream *s)
Definition: message.c:274
aout_SetWavePhysicalChannels
static void aout_SetWavePhysicalChannels(audio_sample_format_t *fmt)
Definition: aout_internal.h:166
VLC_ETIMEOUT
#define VLC_ETIMEOUT
Timeout.
Definition: vlc_common.h:352
AOUT_CHAN_LFE
#define AOUT_CHAN_LFE
Definition: vlc_es.h:126
vlc_testcancel
void vlc_testcancel(void)
Issues an explicit deferred cancellation point.
Definition: thread.c:331
module_t
Internal module descriptor.
Definition: modules.h:79
vlc_timer::interval
ULONG interval
Definition: thread.c:914
tidIPCHelper
static int tidIPCHelper
Definition: specific.c:44
IPC_CMD_QUIT
#define IPC_CMD_QUIT
Definition: specific.c:38
message.h
vlc_http_req_create
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
vlc_tls::shutdown
int(* shutdown)(struct vlc_tls *, bool duplex)
Definition: vlc_tls.h:48
vlc_http_msg_get_final
struct vlc_http_msg * vlc_http_msg_get_final(struct vlc_http_msg *m)
Gets final response headers.
Definition: message.c:282
POLLPRI
Definition: vlc_fixups.h:409
vlc_atomic.h
vlc_tls::readv
ssize_t(* readv)(struct vlc_tls *, struct iovec *, unsigned)
Definition: vlc_tls.h:46
fields
static struct @0 fields
vlc_thread::lock
vlc_mutex_t lock
Non-null if waiting on futex.
Definition: thread.c:155
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:137
vlc_tls_creds::obj
struct vlc_common_members obj
Definition: vlc_tls.h:69
vlc_url_t::psz_username
char * psz_username
Definition: vlc_url.h:148
aout_OutputDelete
void aout_OutputDelete(audio_output_t *p_aout)
Stops the audio output stream (undoes aout_OutputNew()).
Definition: output.c:586
IPC_CMD_GO
#define IPC_CMD_GO
Definition: specific.c:36
vlc_threadvar_create
int vlc_threadvar_create(vlc_threadvar_t *key, void(*destr)(void *))
Allocates a thread-specific variable.
Definition: thread.c:385
POLLOUT
#define POLLOUT
Definition: vlc_fixups.h:412
mwait
void mwait(mtime_t deadline)
Waits until a deadline.
Definition: thread.c:561
vlc_assert_locked
void vlc_assert_locked(vlc_mutex_t *p_mutex)
Definition: thread.c:117
vlc_interface.h
input_Create
#define input_Create(a, b, c, d, e)
Definition: vlc_input.h:495
newlocale
static locale_t newlocale(int mask, const char *locale, locale_t base)
Definition: vlc_fixups.h:347
vlc_WaitForSingleObject
static ULONG vlc_WaitForSingleObject(HEV hev, ULONG ulTimeout)
Definition: thread.c:118
ABOVE_NORMAL_PRIORITY_CLASS
#define ABOVE_NORMAL_PRIORITY_CLASS
vlc_threadvar_last
struct vlc_threadvar * vlc_threadvar_last
PL_DEBUG
#define PL_DEBUG(...)
Definition: playlist_internal.h:168
vlc_clone_attr
static int vlc_clone_attr(vlc_thread_t *th, void *(*entry)(void *), void *data, bool detach)
Definition: thread.c:218
aout_owner_t::resamp_type
int resamp_type
Resampler mode (FIXME: redundant / resampling)
Definition: aout_internal.h:82
vlc_threadvars_cleanup
static void vlc_threadvars_cleanup(void)
Definition: thread.c:299
thread_key
static DWORD thread_key
Definition: thread.c:51
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:413
aout_owner_t::mute
signed char mute
Definition: aout_internal.h:61
INPUT_EVENT_DEAD
Definition: vlc_input.h:327
vlc_threadvar::destroy
void(* destroy)(void *)
Definition: thread.c:434
input_resource_TerminateVout
void input_resource_TerminateVout(input_resource_t *p_resource)
Forcefully destroys the video output (e.g.
Definition: resource.c:486
vlc_tls_GetFD
static int vlc_tls_GetFD(vlc_tls_t *tls)
Definition: vlc_tls.h:187
vlc_http_msg::status
short status
Definition: message.c:59
system_Init
void system_Init(void)
Definition: specific.c:166
vlc_rwlock_init
void vlc_rwlock_init(vlc_rwlock_t *lock)
Initializes a read/write lock.
Definition: thread.c:369
aout_OutputPlay
void aout_OutputPlay(audio_output_t *, block_t *)
Plays a decoded audio buffer.
Definition: output.c:608
aout_owner_t::end
mtime_t end
Last seen PTS.
Definition: aout_internal.h:80
vlc_cond_init_daytime
void vlc_cond_init_daytime(vlc_cond_t *p_condvar)
Initializes a condition variable (wall clock).
Definition: thread.c:222
playlist_internal.h
libvlc_MetadataCancel
void libvlc_MetadataCancel(libvlc_int_t *libvlc, void *id)
Cancels extraction of the meta data for an input item.
Definition: libvlc.c:553
vlc_sem_wait
void vlc_sem_wait(vlc_sem_t *sem)
Waits on a semaphore.
Definition: thread.c:357
psz_name
const char * psz_name
Definition: vlc_codecs.h:315
vlc_thread::tid
TID tid
Definition: thread.c:55
vlc_timer::hev
HEV hev
Definition: thread.c:912
vlc_thread_t
Thread handle.
Definition: vlc_threads.h:252
GENERIC_DIR_COUNT
#define GENERIC_DIR_COUNT
Definition: specific.c:37
vlc_entry
static unsigned __stdcall vlc_entry(void *p)
Definition: thread.c:469
vlc_set_priority
int vlc_set_priority(vlc_thread_t th, int priority)
Definition: thread.c:291
vlc_static_cond_t
Definition: thread.c:260
AOUT_CHAN_MAX
#define AOUT_CHAN_MAX
Definition: vlc_es.h:154
PL_ASSERT_LOCKED
#define PL_ASSERT_LOCKED
Definition: vlc_playlist.h:218
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *p_mutex)
Initializes a fast mutex.
Definition: thread.c:85
aout_owner_t::list
aout_dev_t * list
Definition: aout_internal.h:67
VLC_DATA_DIR
Definition: vlc_configuration.h:123
vlc_cleanup_pop
#define vlc_cleanup_pop()
Unregisters the last cancellation handler.
Definition: vlc_threads.h:983
POLLIN
#define POLLIN
Definition: vlc_fixups.h:411
playlist_private_t::i_skip
int i_skip
Number of items to skip.
Definition: playlist_internal.h:73
vlc_tls_Close
static void vlc_tls_Close(vlc_tls_t *session)
Closes a connection and its underlying resources.
Definition: vlc_tls.h:257
VLC_ENOOBJ
#define VLC_ENOOBJ
Object not found.
Definition: vlc_common.h:354
input_resource_Terminate
void input_resource_Terminate(input_resource_t *p_resource)
This function releases all resources (object).
Definition: resource.c:514
static_assert
#define static_assert
Definition: vlc_fixups.h:367
AOUT_CHAN_REARRIGHT
#define AOUT_CHAN_REARRIGHT
Definition: vlc_es.h:123
vlc_strerror_l
static const char * vlc_strerror_l(int errnum, const char *lname)
Definition: error.c:31
vlc_rwlock_destroy
void vlc_rwlock_destroy(vlc_rwlock_t *lock)
Destroys an initialized unused read/write lock.
Definition: thread.c:375
vlc_http_stream
HTTP stream.
Definition: message.h:340
aout_FormatsPrint
#define aout_FormatsPrint(o, t, a, b)
Definition: aout_internal.h:142
vlc_thread::addr
void * addr
Definition: thread.c:154
WSA_QOS_EUNKNOWNPSOBJ
#define WSA_QOS_EUNKNOWNPSOBJ
Definition: error.c:31
AOUT_CHAN_LEFT
#define AOUT_CHAN_LEFT
Definition: vlc_es.h:119
VLC_DOCUMENTS_DIR
Definition: vlc_configuration.h:130
Next
static bool Next(playlist_t *p_playlist)
Definition: thread.c:463
playlist_t::obj
struct vlc_common_members obj
Definition: vlc_playlist.h:153
Thread
static void * Thread(void *)
Run the main control thread itself.
Definition: thread.c:477
vlc_tls_SocketOpenTCP
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
vlc_futex_wake
static int vlc_futex_wake(void *addr, int nr)
Definition: thread.c:55
vlc_fs.h
aout_owner_t::volume
aout_volume_t * volume
Definition: aout_internal.h:54
JNI_OnUnload
void JNI_OnUnload(JavaVM *vm, void *reserved)
Definition: specific.c:79
xmalloc
static void * xmalloc(size_t len)
Definition: vlc_common.h:970
LoopInput
static bool LoopInput(playlist_t *p_playlist)
Definition: thread.c:421
SelectClockSource
static BOOL SelectClockSource(void *data)
Definition: thread.c:847
vlc_url.h
aout_New
#define aout_New(a)
Definition: aout_internal.h:124
detached_thread
static void * detached_thread(void *data)
Definition: thread.c:184
likely
#define likely(p)
Definition: vlc_common.h:113
vlc_url_t
Definition: vlc_url.h:145
aout_OutputLock
void aout_OutputLock(audio_output_t *)
Definition: output.c:673
vlc_object_t
The main vlc_object_t structure.
Definition: vlc_objects.h:39
mdate_wall
static mtime_t mdate_wall(void)
Definition: thread.c:794
vlc_savecancel
int vlc_savecancel(void)
Disables thread cancellation.
Definition: thread.c:313
vlc_timer_do
static void vlc_timer_do(void *arg)
Definition: thread.c:920
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:424
vlc_thread::cancel_sock
int cancel_sock
Definition: thread.c:58
aout_volume_SetFormat
int aout_volume_SetFormat(aout_volume_t *, vlc_fourcc_t)
Selects the current sample format for software amplification.
Definition: volume.c:80
VLC_ENOMEM
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:351
VLC_UNUSED
#define VLC_UNUSED(x)
Definition: vlc_common.h:912
set_current_status_item
void set_current_status_item(playlist_t *p_playlist, playlist_item_t *p_item)
Definition: engine.c:410
vlc_thread_fatal
static void vlc_thread_fatal(const char *action, int error, const char *function, const char *file, unsigned line)
Definition: thread.c:79
vlc_mutex_t
pthread_mutex_t vlc_mutex_t
Mutex.
Definition: vlc_threads.h:267
vlc_http_tunnel_open
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
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:349
aout_OutputPause
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_INPUT_OPTION_TRUSTED
Definition: vlc_input_item.h:225
playlist_private_t::signal
vlc_cond_t signal
wakes up the playlist engine thread
Definition: playlist_internal.h:83
strdup
char * strdup(const char *)
aout_owner_t::input_format
audio_sample_format_t input_format
Definition: aout_internal.h:88
POLLNVAL
Definition: vlc_fixups.h:404
vlc_http_conn_release
static void vlc_http_conn_release(struct vlc_http_conn *conn)
Definition: conn.h:51
hpipeIPC
static HPIPE hpipeIPC
Definition: specific.c:42
vlc_http_msg_add_agent
int vlc_http_msg_add_agent(struct vlc_http_msg *m, const char *str)
Sets the agent field.
Definition: message.c:736
VLC_TEMPLATES_DIR
Definition: vlc_configuration.h:128
aout_FiltersCanResample
bool aout_FiltersCanResample(aout_filters_t *filters)
Definition: filters.c:682
VLC_PICTURES_DIR
Definition: vlc_configuration.h:132
vlc_url_t::i_port
unsigned i_port
Definition: vlc_url.h:151
libvlc_ArtRequest
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
InputEvent
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
VLC_CACHE_DIR
Definition: vlc_configuration.h:124
vlc_timer::func
void(* func)(void *)
Definition: thread.c:916
mdate_tick
static mtime_t mdate_tick(void)
Definition: thread.c:757
vlc_thread::cleaners
vlc_cleanup_t * cleaners
Definition: thread.c:63
name
const char name[16]
Definition: httpd.c:1249
playlist_Activate
void playlist_Activate(playlist_t *p_playlist)
Creates the main playlist thread.
Definition: thread.c:48
vlc_cond_destroy
void vlc_cond_destroy(vlc_cond_t *p_condvar)
Deinitializes a condition variable.
Definition: thread.c:228
vlc_renderer_item_t
Definition: renderer_discovery.c:33
vlc_addr_broadcast
void vlc_addr_broadcast(void *addr)
Wakes up all thread on an address.
Definition: thread.c:70
mdate_multimedia
static mtime_t mdate_multimedia(void)
Definition: thread.c:770
get_java_string
static char * get_java_string(JNIEnv *env, jclass clazz, const char *psz_name)
Definition: specific.c:54
config_GetUserDir
char * config_GetUserDir(vlc_userdir_t type)
Definition: specific.c:272
vlc_cond_init
void vlc_cond_init(vlc_cond_t *p_condvar)
Initializes a condition variable.
Definition: thread.c:216
aout_owner_t::mixer_format
audio_sample_format_t mixer_format
Definition: aout_internal.h:89
input_item_HasErrorWhenReading
bool input_item_HasErrorWhenReading(input_item_t *p_item)
Definition: item.c:231
entry
Definition: fourcc_gen.c:50
Q2LL
#define Q2LL(q)
Definition: thread.c:868
vlc_cond_wait
void vlc_cond_wait(vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex)
Waits on a condition variable.
Definition: thread.c:267
vlc_cancel_self
static void CALLBACK vlc_cancel_self(ULONG_PTR self)
Definition: thread.c:586
vlc_rwlock_t
pthread_rwlock_t vlc_rwlock_t
Read/write lock.
Definition: vlc_threads.h:304
vlc_timer::quit
bool quit
Definition: thread.c:915
VLC_ENOMOD
#define VLC_ENOMOD
Module not found.
Definition: vlc_common.h:353
super_mutex
static vlc_mutex_t super_mutex
Definition: thread.c:130
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:400
_DLL_InitTerm
unsigned long _System _DLL_InitTerm(unsigned long, unsigned long)
Definition: thread.c:141
vlc_thread
Definition: thread.c:144
playlist_private_t::b_reset_currently_playing
bool b_reset_currently_playing
Definition: playlist_internal.h:88
mtime_to_ts
static struct timespec mtime_to_ts(mtime_t date)
Definition: thread.c:109
vlc_path2uri
char * vlc_path2uri(const char *path, const char *scheme)
Converts local path to URL.
Definition: url.c:138
vlc_addr_signal
void vlc_addr_signal(void *addr)
Wakes up one thread on an address.
Definition: thread.c:65
vlc_mutex_destroy
void vlc_mutex_destroy(vlc_mutex_t *p_mutex)
Deinitializes a mutex.
Definition: thread.c:110
vlc_clock_once
static pthread_once_t vlc_clock_once
Definition: thread.c:52
vlc_tls.h
playlist_private_t::p_input
input_thread_t * p_input
the input thread associated with the current item
Definition: playlist_internal.h:57
configuration.h
vlc_tls_ClientSessionCreate
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
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:49
gettimeofday
int gettimeofday(struct timeval *, struct timezone *)
aout_owner_t::buffers_played
atomic_uint buffers_played
Definition: aout_internal.h:95
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *p_mutex)
Releases a mutex.
Definition: thread.c:138
vlc_tls_proxy_t
struct vlc_tls_proxy vlc_tls_proxy_t
VLC_ENOVAR
#define VLC_ENOVAR
Variable not found.
Definition: vlc_common.h:355
unlikely
#define unlikely(p)
Definition: vlc_common.h:114
pl_priv
#define pl_priv(pl)
Definition: playlist_internal.h:95
var_GetString
#define var_GetString(a, b)
Definition: vlc_variables.h:658
aout_owner_t::restart
atomic_uchar restart
Definition: aout_internal.h:96
vlc_ipc_data_t::enqueue
int enqueue
Definition: specific.c:82
var_AddCallback
#define var_AddCallback(a, b, c, d)
Definition: vlc_variables.h:164
vlc_thread::wait
struct vlc_thread::@4 wait
transport.h
AOUT_RESAMPLING_DOWN
Definition: aout_internal.h:36
vlc_thread::detached
bool detached
Definition: thread.c:60
LOOKUP
#define LOOKUP(s)
Definition: thread.c:1037
finish_joinable_thread
static void finish_joinable_thread(void *data)
Definition: thread.c:197
aout_volume_SetVolume
void aout_volume_SetVolume(aout_volume_t *, float)
Definition: volume.c:121
AOUT_CHAN_REARLEFT
#define AOUT_CHAN_REARLEFT
Definition: vlc_es.h:122
aout_owner_t::device
char * device
Definition: aout_internal.h:59
libvlc.h
VLC_THREAD_ASSERT
#define VLC_THREAD_ASSERT(action)
Definition: thread.c:74
playlist_private_t::b_request
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
vlc_strerror_c
const char * vlc_strerror_c(int errnum)
Definition: error.c:34
vlc_clock_setup
#define vlc_clock_setup()
Definition: thread.c:105
aout_Destroy
void aout_Destroy(audio_output_t *)
Deinitializes an audio output module and destroys an audio output object.
Definition: output.c:358
aout_owner_t::update
atomic_bool update
Definition: aout_internal.h:73
clazz
jclass clazz
Definition: specific.c:41
playlist_GetNextLeaf
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
vlc_viewpoint.h
vlc_assert_unreachable
#define vlc_assert_unreachable()
Definition: vlc_common.h:118
aout_OutputTimeGet
int aout_OutputTimeGet(audio_output_t *, mtime_t *)
Definition: output.c:594
vlc_sem_t
sem_t vlc_sem_t
Semaphore.
Definition: vlc_threads.h:297
mtime_t
int64_t mtime_t
High precision date or time interval.
Definition: vlc_common.h:150
vlc_cancel
void vlc_cancel(vlc_thread_t thread_id)
Marks a thread as cancelled.
Definition: thread.c:297
vlc_rwlock_rdlock
void vlc_rwlock_rdlock(vlc_rwlock_t *lock)
Acquires a read/write lock for reading.
Definition: thread.c:381
vlc_timer_create
int vlc_timer_create(vlc_timer_t *id, void(*func)(void *), void *data)
Initializes an asynchronous timer.
Definition: thread.c:941
vlc_http_msg_get_status
int vlc_http_msg_get_status(const struct vlc_http_msg *m)
Gets response status code.
Definition: message.c:166
vlc_cond_timedwait
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
clk
static union @97 clk
vlc_playlist.h
vlc_tls::get_fd
int(* get_fd)(struct vlc_tls *)
Definition: vlc_tls.h:45
timespec
Definition: vlc_fixups.h:443
PLI_NAME
#define PLI_NAME(p)
Definition: playlist_internal.h:179
vlc_cond_wait_common
static int vlc_cond_wait_common(vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex, ULONG ulTimeout)
Definition: thread.c:353
super_variable
static CONDITION_VARIABLE super_variable
Definition: thread.c:46
input_Start
int input_Start(input_thread_t *p_input)
Start a input_thread_t created by input_Create.
Definition: input.c:172
vlc_trace
void vlc_trace(const char *fn, const char *file, unsigned line)
Definition: thread.c:66
vout_thread_t
Video output thread descriptor.
Definition: vlc_vout.h:70
vlc_ipc_data_t::argc
int argc
Definition: specific.c:81
aout_DecChangePause
void aout_DecChangePause(audio_output_t *, bool b_paused, mtime_t i_date)
Definition: dec.c:431
vlc_thread_t::handle
pthread_t handle
Definition: vlc_threads.h:254
vlc_https_connect_proxy
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
input_thread_t
Main structure representing an input thread.
Definition: vlc_input.h:221
VLC_OBJECT
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_common.h:464
aout_filters_cfg_t
Definition: vlc_aout.h:365
aout_ChangeViewpoint
void aout_ChangeViewpoint(audio_output_t *aout, const vlc_viewpoint_t *p_viewpoint)
Definition: dec.c:469
playlist_t::items
playlist_item_array_t items
Arrays of items.
Definition: vlc_playlist.h:155
vlc_alloc
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:948
VLC_STACKSIZE
#define VLC_STACKSIZE
mdate
mtime_t mdate(void)
Precision monotonic clock.
Definition: thread.c:406
vlc_threads_setup
void vlc_threads_setup(libvlc_int_t *p_libvlc)
Definition: thread.c:169
aout_owner_t::value
vlc_viewpoint_t value
Definition: aout_internal.h:75
setup_lock
static CRITICAL_SECTION setup_lock
Definition: thread.c:1005
RUNNING_ON_VALGRIND
#define RUNNING_ON_VALGRIND
Definition: thread.c:156
VLC_STATIC_MUTEX
#define VLC_STATIC_MUTEX
Static initializer for (static) mutex.
Definition: vlc_threads.h:272
__declspec
__declspec(dllexport)
Definition: thread.c:770
vlc_thread::cancel_event
HEV cancel_event
Definition: thread.c:56
VLC_IPC_PIPE
#define VLC_IPC_PIPE
Definition: specific.c:34
vlc_http_msg
Definition: message.c:40
vlc_thread::entry
void *(* entry)(void *)
Definition: thread.c:149
s_jvm
static JavaVM * s_jvm
Definition: specific.c:36
playlist_private_t::i_consecutive_errors
unsigned i_consecutive_errors
Reset current item array.
Definition: playlist_internal.h:89
aout_instance_t
Definition: aout_internal.h:99
mdate_selected
static mtime_t(* mdate_selected)(void)
Definition: thread.c:817
vlc_thread_destroy
static void vlc_thread_destroy(vlc_thread_t th)
Definition: thread.c:457
vlc_http_stream_open
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_t
VLC value structure.
Definition: vlc_common.h:325
playlist_item_array_t::i_size
int i_size
Definition: vlc_playlist.h:54
vlc_http_msg::authority
char * authority
Definition: message.c:62
vlc_addr_wait
void vlc_addr_wait(void *addr, unsigned val)
Waits on an address.
Definition: thread.c:75
vlc_control_cancel
void vlc_control_cancel(int cmd,...)
Internal handler for thread cancellation.
Definition: thread.c:343
aout_owner_t::filters_cfg
aout_filters_cfg_t filters_cfg
Definition: aout_internal.h:92
aout_DecFlush
void aout_DecFlush(audio_output_t *, bool wait)
Definition: dec.c:448
aout_owner_t::module
module_t * module
Output plugin (or NULL if inactive)
Definition: aout_internal.h:52
joinable_thread
static void * joinable_thread(void *data)
Definition: thread.c:204
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *p_mutex)
Acquires a mutex.
Definition: thread.c:123
block_t
Definition: vlc_block.h:111
DllMain
BOOL WINAPI DllMain(HINSTANCE, DWORD, LPVOID)
Definition: thread.c:1042
config_GetHomeDir
static char * config_GetHomeDir(const char *psz_dir, const char *psz_default_dir)
Definition: specific.c:179
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:82
setenv
int setenv(const char *, const char *, int)
vlc_timer::data
void * data
Definition: thread.c:917
vlc_static_cond_destroy_all
static void vlc_static_cond_destroy_all(void)
Definition: thread.c:290
input_resource_HasVout
bool input_resource_HasVout(input_resource_t *p_resource)
This function return true if there is at least one vout in the resources.
Definition: resource.c:490
input_Stop
void input_Stop(input_thread_t *p_input)
Request a running input thread to stop and die.
Definition: input.c:198
aout_owner_t::count
unsigned count
Definition: aout_internal.h:68
fsync
int fsync(int fd)
IPCHelperThread
static void IPCHelperThread(void *arg)
Definition: specific.c:46
var_GetBool
#define var_GetBool(a, b)
Definition: vlc_variables.h:656
playlist_item_t::p_input
input_item_t * p_input
Linked input item.
Definition: vlc_playlist.h:128
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:270
vlc_tls_Shutdown
static int vlc_tls_Shutdown(vlc_tls_t *tls, bool duplex)
Shuts a connection down.
Definition: vlc_tls.h:241
aout_DecDelete
void aout_DecDelete(audio_output_t *)
Stops all plugins involved in the audio output.
Definition: dec.c:124
vlc_fourcc_t
uint32_t vlc_fourcc_t
Definition: fourcc_gen.c:32
p
#define p(t)
NextItem
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
perf
struct @97::@99 perf
rt_priorities
static bool rt_priorities
Definition: thread.c:389