Go to the documentation of this file.
27 #ifndef VLC_SRC_STREAMOUT_H
28 # define VLC_SRC_STREAMOUT_H 1
44 #define sout_NewInstance(a,b) sout_NewInstance(VLC_OBJECT(a),b)
void sout_MuxDeleteStream(sout_mux_t *p_mux, sout_input_t *p_input)
Definition: stream_output.c:471
static sap_address_t * AddressCreate(vlc_object_t *obj, const char *group)
Definition: sap.c:83
static int meta_strcasecmp_title(const playlist_item_t *first, const playlist_item_t *second)
Compare two items using their title or name.
Definition: sort.c:42
static void vlc_array_append_or_abort(vlc_array_t *ar, void *elem)
Definition: vlc_arrays.h:327
Structure containing information about the playlist.
Definition: vlc_playlist.h:151
char * vlc_strcasestr(const char *haystack, const char *needle)
Look for an UTF-8 string within another one in a case-insensitive fashion.
Definition: unicode.c:196
int playlist_SetRenderer(playlist_t *p_playlist, vlc_renderer_item_t *p_item)
Sets a renderer or remove the current one.
Definition: renderer.c:32
vlc_mutex_t lock
Definition: timer.c:62
void sout_DeleteInstance(sout_instance_t *)
Definition: stream_output.c:134
char * psz_access
Definition: stream_output.c:63
Definition: vlc_memstream.h:27
sout_input_t ** pp_inputs
Definition: vlc_sout.h:139
static int meta_sort(const playlist_item_t *first, const playlist_item_t *second, vlc_meta_type_t meta, bool b_integer)
Compare two intems according to the given meta type.
Definition: sort.c:71
playlist_item_t * GetPrevItem(playlist_t *p_playlist, playlist_item_t *p_item, playlist_item_t *p_root)
Definition: tree.c:380
void vlc_restorecancel(int state)
Restores the cancellation state.
Definition: thread.c:323
#define var_CreateGetInteger(a, b)
Definition: vlc_variables.h:492
#define var_SetAddress(o, n, p)
Definition: vlc_variables.h:260
int vlc_getnameinfo(const struct sockaddr *sa, int salen, char *host, int hostlen, int *portnum, int flags)
Definition: getaddrinfo.c:39
char * psz_mux
Definition: vlc_sout.h:127
playlist_item_t * playlist_NodeCreate(playlist_t *p_playlist, const char *psz_name, playlist_item_t *p_parent, int i_pos, int i_flags)
Create a playlist node.
Definition: tree.c:56
void playlist_ItemRelease(playlist_t *p_playlist, playlist_item_t *p_item)
Release an item.
Definition: item.c:336
void sout_MuxFlush(sout_mux_t *p_mux, sout_input_t *p_input)
Definition: stream_output.c:535
int strcasecmp(const char *, const char *)
Definition: vlc_playlist.h:189
char * ptr
Definition: vlc_memstream.h:51
vlc_cond_t wait
Definition: sap.c:62
static vlc_mutex_t sap_mutex
Definition: sap.c:75
int i_out_pace_nocontrol
count of output that can't control the space
Definition: vlc_sout.h:55
#define TAB_FIND(count, tab, p, idx)
Definition: vlc_arrays.h:67
playlist_item_array_t current
Items currently being played.
Definition: vlc_playlist.h:157
playlist item / node
Definition: vlc_playlist.h:126
static void vsdp_AddAttribute(struct vlc_memstream *restrict stream, const char *name, const char *fmt, va_list ap)
Definition: sdp.c:93
char * data
Definition: sap.c:51
char * psz_name
Definition: stream_output.c:65
socklen_t origlen
Definition: sap.c:66
sout_access_out_sys_t * p_sys
Definition: vlc_sout.h:80
size_t length
Definition: sap.c:50
#define VLC_VAR_DOINHERIT
Creation flag.
Definition: vlc_variables.h:69
static noreturn void * vlc_timer_thread(void *data)
Definition: timer.c:52
#define VLC_THREAD_PRIORITY_LOW
Definition: vlc_threads.h:321
static bool net_SockAddrIsMulticast(const struct sockaddr *addr, socklen_t len)
Definition: vlc_network.h:211
int playlist_NodeInsert(playlist_item_t *p_parent, playlist_item_t *p_item, int i_position)
Definition: tree.c:147
void playlist_SendAddNotify(playlist_t *p_playlist, playlist_item_t *item)
Send a notification that an item has been added to a node.
Definition: item.c:697
char group[64]
Definition: sap.c:64
size_t length
Definition: vlc_memstream.h:52
Definition: vlc_sout.h:196
#define PL_LOCK
Definition: vlc_playlist.h:216
size_t block_FifoCount(block_fifo_t *fifo)
Definition: fifo.c:226
playlist_item_t * get_current_status_item(playlist_t *p_playlist)
Accessor for status item and status nodes.
Definition: engine.c:396
mtime_t i_dts
Definition: vlc_block.h:124
#define PL_UNLOCK
Definition: vlc_playlist.h:217
#define SORTFN(SORT, first, second)
Definition: sort.c:214
static int proto_SORT_DATE(const playlist_item_t *first, const playlist_item_t *second)
Definition: sort.c:242
int(* pf_control)(sout_stream_t *, int, va_list)
Definition: vlc_sout.h:212
vlc_cond_t reschedule
Definition: timer.c:61
#define VLC_DEFINE_SORT_FUNCTIONS
Definition: vlc_playlist.h:170
sout_stream_t * sout_StreamChainNew(sout_instance_t *p_sout, const char *psz_chain, sout_stream_t *p_next, sout_stream_t **pp_last)
Definition: stream_output.c:808
static bool playlist_LiveSearchUpdateInternal(playlist_item_t *p_root, const char *psz_string, bool b_recursive)
Enable/Disable items in the playlist according to the search argument.
Definition: search.c:60
module_t * p_module
Definition: vlc_sout.h:123
#define PLAYLIST_DELETE_FORCE
delete node even if read-only
Definition: playlist_internal.h:135
Definition: vlc_sout.h:193
sout_stream_t * p_stream
Definition: vlc_sout.h:58
unsigned i_nb_played
Times played.
Definition: vlc_playlist.h:133
config_chain_t * p_cfg
Definition: vlc_sout.h:204
bool sout_InputIsEmpty(sout_packetizer_input_t *)
Definition: stream_output.c:198
#define var_InheritBool(o, n)
Definition: vlc_variables.h:601
void vlc_renderer_item_release(vlc_renderer_item_t *p_item)
Releases a renderer item, i.e.
Definition: renderer_discovery.c:166
Definition: vlc_playlist.h:189
sout_input_t * sout_MuxAddStream(sout_mux_t *p_mux, const es_format_t *p_fmt)
Definition: stream_output.c:430
module_t * p_module
Definition: vlc_sout.h:200
unsigned vlc_timer_getoverrun(vlc_timer_t timer)
Fetches and resets the overrun counter for a timer.
Definition: timer.c:161
Definition: playlist_internal.h:46
struct sout_stream_id_sys_t sout_stream_id_sys_t
Definition: vlc_sout.h:63
int vlc_memstream_vprintf(struct vlc_memstream *ms, const char *fmt, va_list args)
Definition: memstream.c:155
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
void vlc_timer_destroy(vlc_timer_t timer)
Destroys an initialized timer.
Definition: timer.c:136
#define _(str)
Definition: vlc_fixups.h:371
void(* pf_flush)(sout_stream_t *, sout_stream_id_sys_t *)
Definition: vlc_sout.h:213
Definition: vlc_playlist.h:189
vlc_thread_t thread
Definition: sap.c:60
#define ARRAY_REMOVE(array, pos)
Definition: vlc_arrays.h:211
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:350
int vlc_clone(vlc_thread_t *th, void *(*entry)(void *), void *data, int priority)
Creates and starts a new thread.
Definition: thread.c:263
int sout_AccessOutSeek(sout_access_out_t *p_access, off_t i_pos)
Definition: stream_output.c:291
Is it disabled ?
Definition: vlc_playlist.h:140
static int net_ConnectUDP(vlc_object_t *obj, const char *host, int port, int hlim)
Definition: vlc_network.h:148
#define VLC_VAR_INTEGER
Definition: vlc_variables.h:50
void sout_AnnounceUnRegister(vlc_object_t *obj, session_descriptor_t *session)
Unregisters an existing session.
Definition: sap.c:373
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
int sout_InputDelete(sout_packetizer_input_t *)
Definition: stream_output.c:182
int vlc_getaddrinfo(const char *node, unsigned port, const struct addrinfo *hints, struct addrinfo **res)
Resolves a host name to a list of socket addresses (like getaddrinfo()).
Definition: getaddrinfo.c:77
static void playlist_ItemArraySort(unsigned i_items, playlist_item_t **pp_items, sortfn_t p_sortfn)
Sort an array of items recursively.
Definition: sort.c:133
Stream output access_output.
Definition: vlc_sout.h:72
bool b_add_stream_any_time
Definition: vlc_sout.h:147
struct sap_address_t sap_address_t
HANDLE handle
Definition: timer.c:48
vlc_thread_t thread
Definition: timer.c:60
block_t * block_FifoShow(block_fifo_t *p_fifo)
Peeks the first block in the FIFO.
Definition: fifo.c:202
void vlc_cond_signal(vlc_cond_t *p_condvar)
Wakes up one thread waiting on a condition variable.
Definition: thread.c:256
void vlc_timer_schedule(vlc_timer_t timer, bool absolute, mtime_t value, mtime_t interval)
Arms or disarms an initialized timer.
Definition: timer.c:145
Definition: vlc_playlist.h:189
#define CALLBACK(name, cb)
Definition: var.c:89
pthread_cond_t vlc_cond_t
Condition variable.
Definition: vlc_threads.h:279
int asprintf(char **, const char *,...)
Definition: vlc_sout.h:158
static char * sout_stream_url_to_chain(bool, const char *)
Definition: stream_output.c:884
Definition: vlc_playlist.h:189
#define var_Create(a, b, c)
Definition: vlc_variables.h:121
static sap_address_t * sap_addrs
Definition: sap.c:74
void sdp_AddMedia(struct vlc_memstream *restrict stream, const char *type, const char *proto, int dport, unsigned pt, bool bw_indep, unsigned bw, const char *ptname, unsigned clock, unsigned chans, const char *fmtp)
Definition: sdp.c:111
void block_FifoRelease(block_fifo_t *p_fifo)
Destroys a FIFO created by block_FifoNew().
Definition: fifo.c:158
int vlc_memstream_open(struct vlc_memstream *ms)
Definition: memstream.c:104
static sortfn_t find_sorting_fn(unsigned i_mode, unsigned i_type)
Definition: sort.c:118
sout_access_out_t * sout_AccessOutNew(vlc_object_t *p_sout, const char *psz_access, const char *psz_name)
Definition: stream_output.c:238
sout_instance_t * sout_NewInstance(vlc_object_t *p_parent, const char *psz_dest)
Definition: stream_output.c:77
unsigned session_count
Definition: sap.c:70
static void CALLBACK vlc_timer_do(void *val, BOOLEAN timeout)
Definition: timer.c:36
void playlist_Control(playlist_t *p_playlist, int query, int locked,...)
Do a playlist action.
Definition: control.c:139
#define net_Close(fd)
Definition: vlc_network.h:57
int(* pf_control)(sout_access_out_t *, int, va_list)
Definition: vlc_sout.h:84
int sout_AccessOutControl(sout_access_out_t *access, int query,...)
sout_AccessOutControl
Definition: stream_output.c:316
vlc_object_t * parent
Parent object.
Definition: vlc_common.h:448
#define CLOCK_FREQ
Definition: vlc_config.h:45
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:84
mtime_t value
Definition: timer.c:65
Definition: vlc_sout.h:156
Definition: vlc_playlist.h:189
vlc_renderer_item_t * p_renderer
Definition: playlist_internal.h:60
Definition: vlc_arrays.h:238
#define vlc_object_release(a)
Definition: vlc_objects.h:63
vlc_mutex_t lock
Definition: vlc_sout.h:57
#define ARRAY_BSEARCH(array, elem, zetype, key, answer)
Definition: vlc_arrays.h:224
static int proto_SORT_ALBUM(const playlist_item_t *first, const playlist_item_t *second)
Definition: sort.c:232
No arg res=can fail.
Definition: vlc_playlist.h:226
int fd
Definition: sap.c:67
ssize_t(* pf_write)(sout_access_out_t *, block_t *)
Definition: vlc_sout.h:83
sout_stream_sys_t * p_sys
Definition: vlc_sout.h:215
FILE * stream
Definition: vlc_memstream.h:65
Definition: vlc_configuration.h:155
int i_type
Definition: httpd.c:1250
playlist_item_t * p_parent
Item parent.
Definition: vlc_playlist.h:131
ULONG interval
Definition: thread.c:914
static size_t vlc_array_count(vlc_array_t *p_array)
Definition: vlc_arrays.h:257
unsigned interval
Definition: sap.c:68
encoder_t * sout_EncoderCreate(vlc_object_t *p_this)
Definition: stream_output.c:945
#define TAB_INSERT(count, tab, p, index)
Definition: vlc_arrays.h:113
ssize_t sout_AccessOutWrite(sout_access_out_t *p_access, block_t *p_buffer)
Definition: stream_output.c:308
#define MAXSDPADDRESS
Definition: sdp.c:38
sout_access_out_t * p_access
Definition: vlc_sout.h:130
#define PL_DEBUG(...)
Definition: playlist_internal.h:168
int(* pf_mux)(sout_mux_t *)
Definition: vlc_sout.h:134
static int recursiveNodeSort(playlist_t *p_playlist, playlist_item_t *p_node, sortfn_t p_sortfn)
Sort a node recursively.
Definition: sort.c:165
char * psz_name
Definition: vlc_sout.h:203
static struct @69 modules
static int mrl_Parse(mrl_t *p_mrl, const char *psz_mrl)
Definition: stream_output.c:582
static int proto_SORT_DISC_NUMBER(const playlist_item_t *first, const playlist_item_t *second)
Definition: sort.c:222
sout_stream_id_sys_t *(* pf_add)(sout_stream_t *, const es_format_t *)
Definition: vlc_sout.h:208
#define TAB_APPEND(count, tab, p)
Definition: vlc_arrays.h:64
Definition: vlc_codec.h:211
session_descriptor_t * first
Definition: sap.c:71
static void playlist_LiveSearchClean(playlist_item_t *p_root)
Enable all items in the playlist.
Definition: search.c:42
block_fifo_t * block_FifoNew(void)
Creates a thread-safe FIFO queue of blocks.
Definition: fifo.c:143
const char * psz_name
Definition: vlc_codecs.h:315
#define PLAYLIST_DELETE_STOP_IF_CURRENT
stop playlist playback if node is currently the one played
Definition: playlist_internal.h:136
Will children inherit flags the R/O flag ?
Definition: vlc_playlist.h:143
void sout_StreamChainDelete(sout_stream_t *p_first, sout_stream_t *p_last)
Definition: stream_output.c:741
Thread handle.
Definition: vlc_threads.h:252
struct session_descriptor_t * next
Definition: sap.c:49
#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
config_chain_t * p_cfg
Definition: vlc_sout.h:86
#define var_GetInteger(a, b)
Definition: vlc_variables.h:655
#define vlc_cleanup_pop()
Unregisters the last cancellation handler.
Definition: vlc_threads.h:983
sout_instance_t * p_sout
Definition: vlc_sout.h:125
Write-enabled ?
Definition: vlc_playlist.h:141
size_t strlcpy(char *, const char *, size_t)
int(* pf_seek)(sout_access_out_t *, off_t)
Definition: vlc_sout.h:81
void block_FifoPut(block_fifo_t *fifo, block_t *block)
Immediately queue one block at the end of a FIFO.
Definition: fifo.c:176
Muxer structure.
Definition: vlc_sout.h:120
struct sap_address_t * next
Definition: sap.c:58
static int proto_SORT_TRACK_NUMBER(const playlist_item_t *first, const playlist_item_t *second)
Definition: sort.c:217
Definition: vlc_playlist.h:189
module_t * p_module
Definition: vlc_sout.h:76
static sout_stream_t * sout_StreamNew(sout_instance_t *p_sout, char *psz_name, config_chain_t *p_cfg, sout_stream_t *p_next)
Definition: stream_output.c:758
Definition: vlc_playlist.h:189
config_chain_t * p_cfg
Definition: vlc_sout.h:128
void(* pf_delstream)(sout_mux_t *, sout_input_t *)
Definition: vlc_sout.h:133
mtime_t i_add_stream_start
Definition: vlc_sout.h:150
void block_FifoEmpty(block_fifo_t *fifo)
Clears all blocks in a FIFO.
Definition: fifo.c:166
char * config_ChainCreate(char **ppsz_name, config_chain_t **pp_cfg, const char *psz_chain)
This function will parse a configuration string (psz_string) and.
Definition: chain.c:225
int sout_InputSendBuffer(sout_packetizer_input_t *, block_t *)
Definition: stream_output.c:221
void playlist_NodeDelete(playlist_t *p_playlist, playlist_item_t *p_root)
Remove all the children of a node and removes the node.
Definition: tree.c:90
void playlist_NodeDeleteExplicit(playlist_t *p_playlist, playlist_item_t *p_root, int flags)
Delete a node with explicit semantics.
Definition: tree.c:96
int vlc_memstream_putc(struct vlc_memstream *ms, int c)
Definition: memstream.c:144
int i_id
Playlist item specific id.
Definition: vlc_playlist.h:135
sout_mux_sys_t * p_sys
Definition: vlc_sout.h:142
#define likely(p)
Definition: vlc_common.h:113
int sout_InputSendBuffer(sout_packetizer_input_t *p_input, block_t *p_buffer)
Definition: stream_output.c:221
The main vlc_object_t structure.
Definition: vlc_objects.h:39
static char * AddressToSDP(const struct sockaddr *addr, socklen_t addrlen, char *buf)
Definition: sdp.c:41
int vlc_savecancel(void)
Disables thread cancellation.
Definition: thread.c:313
Definition: vlc_playlist.h:189
#define var_GetNonEmptyString(a, b)
Definition: vlc_variables.h:659
#define VLC_THREAD_PRIORITY_INPUT
Definition: vlc_threads.h:322
static void vlc_array_init(vlc_array_t *p_array)
Definition: vlc_arrays.h:244
void(* pf_del)(sout_stream_t *, sout_stream_id_sys_t *)
Definition: vlc_sout.h:209
void sout_DeleteInstance(sout_instance_t *p_sout)
Definition: stream_output.c:134
#define VLC_UNUSED(x)
Definition: vlc_common.h:912
#define sout_NewInstance(a, b)
Definition: stream_output.h:42
void set_current_status_item(playlist_t *p_playlist, playlist_item_t *p_item)
Definition: engine.c:410
pthread_mutex_t vlc_mutex_t
Mutex.
Definition: vlc_threads.h:267
ssize_t(* pf_read)(sout_access_out_t *, block_t *)
Definition: vlc_sout.h:82
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:349
atomic_uint overruns
Definition: timer.c:66
Definition: stream_output.c:61
long vlc_mrand48(void)
PRNG uniformly distributed between -2^32 and 2^32 - 1.
Definition: rand.c:98
static void vlc_array_clear(vlc_array_t *p_array)
Definition: vlc_arrays.h:250
char * psz_way
Definition: stream_output.c:64
#define FREENULL(a)
Definition: vlc_common.h:766
char * strdup(const char *)
char * psz_access
Definition: vlc_sout.h:77
int(* pf_addstream)(sout_mux_t *, sout_input_t *)
Definition: vlc_sout.h:132
static void sout_StreamFlush(sout_stream_t *s, sout_stream_id_sys_t *id)
Definition: vlc_sout.h:241
int sout_MuxGetStream(sout_mux_t *p_mux, unsigned i_blocks, mtime_t *pi_dts)
Definition: stream_output.c:543
char * psz_path
Definition: vlc_sout.h:79
sout_packetizer_input_t * sout_InputNew(sout_instance_t *p_sout, const es_format_t *p_fmt)
Definition: stream_output.c:150
playlist_item_t * GetPrevUncle(playlist_t *p_playlist, playlist_item_t *p_item, playlist_item_t *p_root)
Definition: tree.c:335
uint8_t i_flags
Flags.
Definition: vlc_playlist.h:136
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:108
int() vlc_memstream_puts(struct vlc_memstream *ms, const char *str)
Definition: memstream.c:149
playlist_item_t * GetNextUncle(playlist_t *p_playlist, playlist_item_t *p_item, playlist_item_t *p_root)
Definition: tree.c:289
void(* func)(void *)
Definition: thread.c:916
bool sout_InputIsEmpty(sout_packetizer_input_t *p_input)
Definition: stream_output.c:198
playlist_item_t * playlist_ChildSearchName(playlist_item_t *p_node, const char *psz_search)
Search a child of a node by its name.
Definition: tree.c:175
session_descriptor_t * sout_AnnounceRegisterSDP(vlc_object_t *obj, const char *sdp, const char *dst)
Registers a new session with the announce handler, using a pregenerated SDP.
Definition: sap.c:176
const char name[16]
Definition: httpd.c:1249
static const sortfn_t sorting_fns[NUM_SORT_FNS][2]
Definition: sort.c:117
void vlc_cond_destroy(vlc_cond_t *p_condvar)
Deinitializes a condition variable.
Definition: thread.c:228
Definition: renderer_discovery.c:33
#define PL_DEBUG2(msg,...)
Definition: playlist_internal.h:172
struct vlc_common_members obj
Definition: vlc_sout.h:198
void vlc_cond_init(vlc_cond_t *p_condvar)
Initializes a condition variable.
Definition: thread.c:216
int(* sortfn_t)(const void *, const void *)
Return the comparison function appropriate for the SORT_* and ORDER_* arguments given,...
Definition: sort.c:116
void vlc_cond_wait(vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex)
Waits on a condition variable.
Definition: thread.c:267
Definition: vlc_playlist.h:189
int sout_InputDelete(sout_packetizer_input_t *p_input)
Definition: stream_output.c:182
#define vlc_array_item_at_index(ar, idx)
Definition: vlc_arrays.h:263
sout_packetizer_input_t * sout_InputNew(sout_instance_t *, const es_format_t *)
Definition: stream_output.c:150
ssize_t sout_AccessOutRead(sout_access_out_t *p_access, block_t *p_buffer)
Definition: stream_output.c:300
#define TAB_REMOVE(count, tab, p)
Definition: vlc_arrays.h:91
void vlc_mutex_destroy(vlc_mutex_t *p_mutex)
Deinitializes a mutex.
Definition: thread.c:110
input_thread_t * p_input
the input thread associated with the current item
Definition: playlist_internal.h:57
void sout_InputFlush(sout_packetizer_input_t *p_input)
Definition: stream_output.c:210
Definition: vlc_playlist.h:191
playlist_item_t * playlist_ItemNewFromInput(playlist_t *p_playlist, input_item_t *p_input)
Definition: item.c:253
Definition: vlc_playlist.h:189
char * psz_sout
Definition: vlc_sout.h:52
size_t vlc_memstream_write(struct vlc_memstream *ms, const void *ptr, size_t len)
Definition: memstream.c:126
void vlc_mutex_unlock(vlc_mutex_t *p_mutex)
Releases a mutex.
Definition: thread.c:138
#define unlikely(p)
Definition: vlc_common.h:114
int vlc_memstream_printf(struct vlc_memstream *ms, const char *fmt,...)
Definition: memstream.c:184
playlist_item_t ** p_elems
Definition: vlc_playlist.h:54
#define pl_priv(pl)
Definition: playlist_internal.h:95
Definition: vlc_playlist.h:189
void sout_MuxDelete(sout_mux_t *p_mux)
Definition: stream_output.c:415
int sout_MuxSendBuffer(sout_mux_t *p_mux, sout_input_t *p_input, block_t *p_buffer)
Definition: stream_output.c:505
bool b_waiting_stream
Definition: vlc_sout.h:148
playlist_item_t * playlist_GetNextLeaf(playlist_t *p_playlist, 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
int(* pf_send)(sout_stream_t *, sout_stream_id_sys_t *, block_t *)
Definition: vlc_sout.h:211
#define vlc_assert_unreachable()
Definition: vlc_common.h:118
void vlc_cancel(vlc_thread_t thread_id)
Marks a thread as cancelled.
Definition: thread.c:297
int64_t mtime_t
High precision date or time interval.
Definition: vlc_common.h:150
int vlc_timer_create(vlc_timer_t *id, void(*func)(void *), void *data)
Initializes an asynchronous timer.
Definition: timer.c:108
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
playlist_item_t ** pp_children
Children nodes/items.
Definition: vlc_playlist.h:130
int playlist_RecursiveNodeSort(playlist_t *p_playlist, playlist_item_t *p_node, int i_mode, int i_type)
Sort a node recursively.
Definition: sort.c:191
static void mrl_Clean(mrl_t *p_mrl)
Definition: stream_output.c:699
sout_mux_t * sout_MuxNew(sout_instance_t *p_sout, const char *psz_mux, sout_access_out_t *p_access)
Definition: stream_output.c:332
static void sout_StreamDelete(sout_stream_t *p_stream)
Definition: stream_output.c:715
#define PLI_NAME(p)
Definition: playlist_internal.h:179
int(* pf_control)(sout_mux_t *, int, va_list)
Definition: vlc_sout.h:135
int vlc_sdp_Start(struct vlc_memstream *restrict stream, vlc_object_t *obj, const char *cfgpref, const struct sockaddr *src, size_t srclen, const struct sockaddr *addr, size_t addrlen)
Definition: sdp.c:145
struct sockaddr_storage orig
Definition: sap.c:65
#define IPPORT_SAP
Definition: sap.c:44
Definition: vlc_playlist.h:189
int playlist_LiveSearchUpdate(playlist_t *p_playlist, playlist_item_t *p_root, const char *psz_string, bool b_recursive)
Launch the recursive search in the playlist.
Definition: search.c:116
static int sout_MuxControl(sout_mux_t *p_mux, int i_query,...)
Definition: vlc_sout.h:179
playlist_item_array_t items
Arrays of items.
Definition: vlc_playlist.h:155
void sout_AccessOutDelete(sout_access_out_t *p_access)
Definition: stream_output.c:274
sout_instance_t * p_sout
Definition: vlc_sout.h:201
void sout_InputFlush(sout_packetizer_input_t *)
Definition: stream_output.c:210
mtime_t mdate(void)
Precision monotonic clock.
Definition: thread.c:406
#define module_unneed(a, b)
Definition: vlc_modules.h:49
int i_nb_inputs
Definition: vlc_sout.h:138
#define VLC_STATIC_MUTEX
Static initializer for (static) mutex.
Definition: vlc_threads.h:272
bool pace_nocontrol
Definition: vlc_sout.h:216
#define NI_MAXNUMERICHOST
Definition: vlc_network.h:188
Stream output instance (FIXME: should be private to src/ to avoid invalid unsynchronized access)
Definition: vlc_sout.h:48
int i_size
Definition: vlc_playlist.h:54
playlist_item_t * GetNextItem(playlist_t *p_playlist, playlist_item_t *p_root, playlist_item_t *p_item)
Get the next item in the tree If p_item is NULL, return the first child of root.
Definition: tree.c:245
static const char * IsUTF8(const char *str)
Checks UTF-8 validity.
Definition: vlc_charset.h:63
static noreturn void * RunThread(void *)
main SAP handler thread
Definition: sap.c:134
void vlc_mutex_lock(vlc_mutex_t *p_mutex)
Acquires a mutex.
Definition: thread.c:123
uint64_t NTPtime64(void)
Definition: mtime.c:201
Definition: vlc_block.h:111
void config_ChainDestroy(config_chain_t *p_cfg)
This function will release a linked list of config_chain_t (Including the head)
Definition: chain.c:253
Definition: vlc_playlist.h:208
#define msg_Err(p_this,...)
Definition: vlc_messages.h:82
int vlc_memstream_close(struct vlc_memstream *ms)
Definition: memstream.c:119
sout_stream_t * p_next
Definition: vlc_sout.h:205
void * data
Definition: thread.c:917
static bool IsSDPString(const char *str)
Definition: sdp.c:82
vlc_mutex_t lock
Definition: sap.c:61
static void AddressDestroy(sap_address_t *addr)
Definition: sap.c:117
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
#define module_need(a, b, c, d)
Definition: vlc_modules.h:47
#define mutex_cleanup_push(lock)
Definition: vlc_threads.h:1013
void sdp_AddAttribute(struct vlc_memstream *restrict stream, const char *name, const char *fmt,...)
Definition: sdp.c:101
static int sout_StreamControl(sout_stream_t *s, int i_query,...)
Definition: vlc_sout.h:248
Definition: vlc_playlist.h:189