VLC  3.0.15
stream_output.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * stream_output.h : internal stream output
3  *****************************************************************************
4  * Copyright (C) 2002-2005 VLC authors and VideoLAN
5  * $Id: c7ff95269d239e872205bc9740dcb6a71053006a $
6  *
7  * Authors: Christophe Massiot <massiot@via.ecp.fr>
8  * Laurent Aimar <fenrir@via.ecp.fr>
9  * Eric Petit <titer@videolan.org>
10  * Jean-Paul Saman <jpsaman #_at_# m2x.nl>
11  *
12  * This program is free software; you can redistribute it and/or modify it
13  * under the terms of the GNU Lesser General Public License as published by
14  * the Free Software Foundation; either version 2.1 of the License, or
15  * (at your option) any later version.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU Lesser General Public License for more details.
21  *
22  * You should have received a copy of the GNU Lesser General Public License
23  * along with this program; if not, write to the Free Software Foundation,
24  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
25  ***************************************************************************/
26 
27 #ifndef VLC_SRC_STREAMOUT_H
28 # define VLC_SRC_STREAMOUT_H 1
29 
30 # include <vlc_sout.h>
31 # include <vlc_network.h>
32 
33 /****************************************************************************
34  * sout_packetizer_input_t: p_sout <-> p_packetizer
35  ****************************************************************************/
37 {
39 
41 };
42 
44 #define sout_NewInstance(a,b) sout_NewInstance(VLC_OBJECT(a),b)
46 
52 
53 #endif
sout_MuxDeleteStream
void sout_MuxDeleteStream(sout_mux_t *p_mux, sout_input_t *p_input)
Definition: stream_output.c:471
AddressCreate
static sap_address_t * AddressCreate(vlc_object_t *obj, const char *group)
Definition: sap.c:83
meta_strcasecmp_title
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
vlc_array_append_or_abort
static void vlc_array_append_or_abort(vlc_array_t *ar, void *elem)
Definition: vlc_arrays.h:327
playlist_t
Structure containing information about the playlist.
Definition: vlc_playlist.h:151
vlc_strcasestr
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
playlist_SetRenderer
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_timer::lock
vlc_mutex_t lock
Definition: timer.c:62
sout_DeleteInstance
void sout_DeleteInstance(sout_instance_t *)
Definition: stream_output.c:134
input_item_t::p_meta
vlc_meta_t * p_meta
Definition: vlc_input_item.h:80
mrl_t::psz_access
char * psz_access
Definition: stream_output.c:63
sout_input_t::p_fmt
const es_format_t * p_fmt
Definition: vlc_sout.h:164
vlc_memstream
Definition: vlc_memstream.h:27
sout_mux_t::pp_inputs
sout_input_t ** pp_inputs
Definition: vlc_sout.h:139
meta_sort
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
GetPrevItem
playlist_item_t * GetPrevItem(playlist_t *p_playlist, playlist_item_t *p_item, playlist_item_t *p_root)
Definition: tree.c:380
vlc_restorecancel
void vlc_restorecancel(int state)
Restores the cancellation state.
Definition: thread.c:323
var_CreateGetInteger
#define var_CreateGetInteger(a, b)
Definition: vlc_variables.h:492
vlc_meta_Get
const char * vlc_meta_Get(const vlc_meta_t *p_meta, vlc_meta_type_t meta_type)
Definition: meta.c:131
var_SetAddress
#define var_SetAddress(o, n, p)
Definition: vlc_variables.h:260
vlc_getnameinfo
int vlc_getnameinfo(const struct sockaddr *sa, int salen, char *host, int hostlen, int *portnum, int flags)
Definition: getaddrinfo.c:39
sout_mux_t::psz_mux
char * psz_mux
Definition: vlc_sout.h:127
playlist_NodeCreate
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
input_Control
int input_Control(input_thread_t *p_input, int i_query,...)
Control function for inputs.
Definition: control.c:52
ITEM_NET_UNKNOWN
Definition: vlc_input_item.h:124
playlist_ItemRelease
void playlist_ItemRelease(playlist_t *p_playlist, playlist_item_t *p_item)
Release an item.
Definition: item.c:336
sout_MuxFlush
void sout_MuxFlush(sout_mux_t *p_mux, sout_input_t *p_input)
Definition: stream_output.c:535
strcasecmp
int strcasecmp(const char *, const char *)
stream_output.h
vlc_meta_Album
Definition: vlc_meta.h:39
SORT_DESCRIPTION
Definition: vlc_playlist.h:189
vlc_memstream::ptr
char * ptr
Definition: vlc_memstream.h:51
sap_address_t::wait
vlc_cond_t wait
Definition: sap.c:62
sap_mutex
static vlc_mutex_t sap_mutex
Definition: sap.c:75
sout_instance_t::i_out_pace_nocontrol
int i_out_pace_nocontrol
count of output that can't control the space
Definition: vlc_sout.h:55
TAB_FIND
#define TAB_FIND(count, tab, p, idx)
Definition: vlc_arrays.h:67
vlc_common.h
playlist_t::current
playlist_item_array_t current
Items currently being played.
Definition: vlc_playlist.h:157
playlist_item_t
playlist item / node
Definition: vlc_playlist.h:126
vsdp_AddAttribute
static void vsdp_AddAttribute(struct vlc_memstream *restrict stream, const char *name, const char *fmt, va_list ap)
Definition: sdp.c:93
session_descriptor_t::data
char * data
Definition: sap.c:51
mrl_t::psz_name
char * psz_name
Definition: stream_output.c:65
sap_address_t::origlen
socklen_t origlen
Definition: sap.c:66
vlc_meta_DiscNumber
Definition: vlc_meta.h:60
sout_access_out_t::p_sys
sout_access_out_sys_t * p_sys
Definition: vlc_sout.h:80
session_descriptor_t::length
size_t length
Definition: sap.c:50
VLC_VAR_DOINHERIT
#define VLC_VAR_DOINHERIT
Creation flag.
Definition: vlc_variables.h:69
vlc_timer_thread
static noreturn void * vlc_timer_thread(void *data)
Definition: timer.c:52
VLC_THREAD_PRIORITY_LOW
#define VLC_THREAD_PRIORITY_LOW
Definition: vlc_threads.h:321
sout_packetizer_input_t::id
sout_stream_id_sys_t * id
Definition: stream_output.h:62
net_SockAddrIsMulticast
static bool net_SockAddrIsMulticast(const struct sockaddr *addr, socklen_t len)
Definition: vlc_network.h:211
playlist_NodeInsert
int playlist_NodeInsert(playlist_item_t *p_parent, playlist_item_t *p_item, int i_position)
Definition: tree.c:147
playlist_SendAddNotify
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
sap_address_t::group
char group[64]
Definition: sap.c:64
vlc_memstream::length
size_t length
Definition: vlc_memstream.h:52
sout_stream_t
Definition: vlc_sout.h:196
PL_LOCK
#define PL_LOCK
Definition: vlc_playlist.h:216
input_item_t
Describes an input and is used to spawn input_thread_t objects.
Definition: vlc_input_item.h:58
block_FifoCount
size_t block_FifoCount(block_fifo_t *fifo)
Definition: fifo.c:226
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
block_t::i_dts
mtime_t i_dts
Definition: vlc_block.h:124
PL_UNLOCK
#define PL_UNLOCK
Definition: vlc_playlist.h:217
SORTFN
#define SORTFN(SORT, first, second)
Definition: sort.c:214
proto_SORT_DATE
static int proto_SORT_DATE(const playlist_item_t *first, const playlist_item_t *second)
Definition: sort.c:242
sout_stream_t::pf_control
int(* pf_control)(sout_stream_t *, int, va_list)
Definition: vlc_sout.h:212
vlc_timer::reschedule
vlc_cond_t reschedule
Definition: timer.c:61
VLC_DEFINE_SORT_FUNCTIONS
#define VLC_DEFINE_SORT_FUNCTIONS
Definition: vlc_playlist.h:170
sout_StreamChainNew
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
input_item_t::lock
vlc_mutex_t lock
Lock for the item.
Definition: vlc_input_item.h:93
playlist_LiveSearchUpdateInternal
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
sout_input_t
Definition: vlc_sout.h:162
sout_mux_t::p_module
module_t * p_module
Definition: vlc_sout.h:123
PLAYLIST_DELETE_FORCE
#define PLAYLIST_DELETE_FORCE
delete node even if read-only
Definition: playlist_internal.h:135
SOUT_STREAM_EMPTY
Definition: vlc_sout.h:193
sout_instance_t::p_stream
sout_stream_t * p_stream
Definition: vlc_sout.h:58
vlc_network.h
playlist_item_t::i_nb_played
unsigned i_nb_played
Times played.
Definition: vlc_playlist.h:133
sout_stream_t::p_cfg
config_chain_t * p_cfg
Definition: vlc_sout.h:204
sout_InputIsEmpty
bool sout_InputIsEmpty(sout_packetizer_input_t *)
Definition: stream_output.c:198
var_InheritBool
#define var_InheritBool(o, n)
Definition: vlc_variables.h:601
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
vlc_charset.h
SORT_DATE
Definition: vlc_playlist.h:189
sout_MuxAddStream
sout_input_t * sout_MuxAddStream(sout_mux_t *p_mux, const es_format_t *p_fmt)
Definition: stream_output.c:430
sout_stream_t::p_module
module_t * p_module
Definition: vlc_sout.h:200
vlc_timer_getoverrun
unsigned vlc_timer_getoverrun(vlc_timer_t timer)
Fetches and resets the overrun counter for a timer.
Definition: timer.c:161
playlist_private_t
Definition: playlist_internal.h:46
sout_stream_id_sys_t
struct sout_stream_id_sys_t sout_stream_id_sys_t
Definition: vlc_sout.h:63
vlc_memstream_vprintf
int vlc_memstream_vprintf(struct vlc_memstream *ms, const char *fmt, va_list args)
Definition: memstream.c:155
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
es_format_Clean
void es_format_Clean(es_format_t *fmt)
This function will clean up a es_format_t and release all associated resources.
Definition: es_format.c:539
vlc_timer_destroy
void vlc_timer_destroy(vlc_timer_t timer)
Destroys an initialized timer.
Definition: timer.c:136
_
#define _(str)
Definition: vlc_fixups.h:371
sout_stream_t::pf_flush
void(* pf_flush)(sout_stream_t *, sout_stream_id_sys_t *)
Definition: vlc_sout.h:213
sout_packetizer_input_t
Definition: stream_output.h:34
SORT_TITLE_NODES_FIRST
Definition: vlc_playlist.h:189
sap_address_t::thread
vlc_thread_t thread
Definition: sap.c:60
ARRAY_REMOVE
#define ARRAY_REMOVE(array, pos)
Definition: vlc_arrays.h:211
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:350
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
sout_AccessOutSeek
int sout_AccessOutSeek(sout_access_out_t *p_access, off_t i_pos)
Definition: stream_output.c:291
PLAYLIST_DBL_FLAG
Is it disabled ?
Definition: vlc_playlist.h:140
net_ConnectUDP
static int net_ConnectUDP(vlc_object_t *obj, const char *host, int port, int hlim)
Definition: vlc_network.h:148
VLC_VAR_INTEGER
#define VLC_VAR_INTEGER
Definition: vlc_variables.h:50
sout_AnnounceUnRegister
void sout_AnnounceUnRegister(vlc_object_t *obj, session_descriptor_t *session)
Unregisters an existing session.
Definition: sap.c:373
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
sap_address_t
Definition: sap.c:56
sout_InputDelete
int sout_InputDelete(sout_packetizer_input_t *)
Definition: stream_output.c:182
vlc_getaddrinfo
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
playlist_ItemArraySort
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
vlc_timer
Definition: thread.c:909
input_item_GetDuration
mtime_t input_item_GetDuration(input_item_t *p_i)
Definition: item.c:398
sout_access_out_t
Stream output access_output.
Definition: vlc_sout.h:72
sout_mux_t::b_add_stream_any_time
bool b_add_stream_any_time
Definition: vlc_sout.h:147
sap_address_t
struct sap_address_t sap_address_t
vlc_timer::handle
HANDLE handle
Definition: timer.c:48
vlc_timer::thread
vlc_thread_t thread
Definition: timer.c:60
block_FifoShow
block_t * block_FifoShow(block_fifo_t *p_fifo)
Peeks the first block in the FIFO.
Definition: fifo.c:202
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
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: timer.c:145
SORT_ID
Definition: vlc_playlist.h:189
CALLBACK
#define CALLBACK(name, cb)
Definition: var.c:89
vlc_cond_t
pthread_cond_t vlc_cond_t
Condition variable.
Definition: vlc_threads.h:279
asprintf
int asprintf(char **, const char *,...)
MUX_GET_ADD_STREAM_WAIT
Definition: vlc_sout.h:158
sout_stream_url_to_chain
static char * sout_stream_url_to_chain(bool, const char *)
Definition: stream_output.c:884
vlc_rand.h
SORT_TRACK_NUMBER
Definition: vlc_playlist.h:189
var_Create
#define var_Create(a, b, c)
Definition: vlc_variables.h:121
input_item_NewExt
input_item_t * input_item_NewExt(const char *psz_uri, const char *psz_name, mtime_t duration, int type, enum input_item_net_type i_net)
This function creates a new input_item_t with the provided information.
Definition: item.c:1057
sap_addrs
static sap_address_t * sap_addrs
Definition: sap.c:74
sdp_AddMedia
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
block_FifoRelease
void block_FifoRelease(block_fifo_t *p_fifo)
Destroys a FIFO created by block_FifoNew().
Definition: fifo.c:158
vlc_memstream_open
int vlc_memstream_open(struct vlc_memstream *ms)
Definition: memstream.c:104
find_sorting_fn
static sortfn_t find_sorting_fn(unsigned i_mode, unsigned i_type)
Definition: sort.c:118
sout_AccessOutNew
sout_access_out_t * sout_AccessOutNew(vlc_object_t *p_sout, const char *psz_access, const char *psz_name)
Definition: stream_output.c:238
vlc_renderer_discovery.h
sout_NewInstance
sout_instance_t * sout_NewInstance(vlc_object_t *p_parent, const char *psz_dest)
Definition: stream_output.c:77
sap_address_t::session_count
unsigned session_count
Definition: sap.c:70
vlc_timer_do
static void CALLBACK vlc_timer_do(void *val, BOOLEAN timeout)
Definition: timer.c:36
playlist_Control
void playlist_Control(playlist_t *p_playlist, int query, int locked,...)
Do a playlist action.
Definition: control.c:139
net_Close
#define net_Close(fd)
Definition: vlc_network.h:57
vlc_meta_Title
Definition: vlc_meta.h:35
sout_access_out_t::pf_control
int(* pf_control)(sout_access_out_t *, int, va_list)
Definition: vlc_sout.h:84
sout_AccessOutControl
int sout_AccessOutControl(sout_access_out_t *access, int query,...)
sout_AccessOutControl
Definition: stream_output.c:316
vlc_common_members::parent
vlc_object_t * parent
Parent object.
Definition: vlc_common.h:448
CLOCK_FREQ
#define CLOCK_FREQ
Definition: vlc_config.h:45
msg_Warn
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:84
vlc_timer::value
mtime_t value
Definition: timer.c:65
MUX_CAN_ADD_STREAM_WHILE_MUXING
Definition: vlc_sout.h:156
SORT_GENRE
Definition: vlc_playlist.h:189
sout_input_t::p_fifo
block_fifo_t * p_fifo
Definition: vlc_sout.h:165
playlist_private_t::p_renderer
vlc_renderer_item_t * p_renderer
Definition: playlist_internal.h:60
sout_input_t::p_sys
void * p_sys
Definition: vlc_sout.h:166
vlc_array_t
Definition: vlc_arrays.h:238
vlc_object_release
#define vlc_object_release(a)
Definition: vlc_objects.h:63
sout_instance_t::lock
vlc_mutex_t lock
Definition: vlc_sout.h:57
ARRAY_BSEARCH
#define ARRAY_BSEARCH(array, elem, zetype, key, answer)
Definition: vlc_arrays.h:224
proto_SORT_ALBUM
static int proto_SORT_ALBUM(const playlist_item_t *first, const playlist_item_t *second)
Definition: sort.c:232
PLAYLIST_STOP
No arg res=can fail.
Definition: vlc_playlist.h:226
sap_address_t::fd
int fd
Definition: sap.c:67
sout_access_out_t::pf_write
ssize_t(* pf_write)(sout_access_out_t *, block_t *)
Definition: vlc_sout.h:83
vlc_meta_Artist
Definition: vlc_meta.h:36
sout_stream_t::p_sys
sout_stream_sys_t * p_sys
Definition: vlc_sout.h:215
vlc_memstream::stream
FILE * stream
Definition: vlc_memstream.h:65
config_chain_t
Definition: vlc_configuration.h:155
i_type
int i_type
Definition: httpd.c:1250
sout_input_t::fmt
es_format_t fmt
Definition: vlc_sout.h:167
playlist_item_t::p_parent
playlist_item_t * p_parent
Item parent.
Definition: vlc_playlist.h:131
vlc_timer::interval
ULONG interval
Definition: thread.c:914
vlc_array_count
static size_t vlc_array_count(vlc_array_t *p_array)
Definition: vlc_arrays.h:257
sap_address_t::interval
unsigned interval
Definition: sap.c:68
input_item_t::psz_name
char * psz_name
text describing this item
Definition: vlc_input_item.h:60
es_format_t
Definition: vlc_es.h:580
vlc_atomic.h
vlc_memstream.h
input_item_GetTitleFbName
char * input_item_GetTitleFbName(input_item_t *p_item)
Definition: item.c:279
sout_EncoderCreate
encoder_t * sout_EncoderCreate(vlc_object_t *p_this)
Definition: stream_output.c:945
TAB_INSERT
#define TAB_INSERT(count, tab, p, index)
Definition: vlc_arrays.h:113
sout_AccessOutWrite
ssize_t sout_AccessOutWrite(sout_access_out_t *p_access, block_t *p_buffer)
Definition: stream_output.c:308
MAXSDPADDRESS
#define MAXSDPADDRESS
Definition: sdp.c:38
sout_mux_t::p_access
sout_access_out_t * p_access
Definition: vlc_sout.h:130
PL_DEBUG
#define PL_DEBUG(...)
Definition: playlist_internal.h:168
sout_mux_t::pf_mux
int(* pf_mux)(sout_mux_t *)
Definition: vlc_sout.h:134
es_format_t::i_cat
enum es_format_category_e i_cat
ES category.
Definition: vlc_es.h:582
vlc_meta_Date
Definition: vlc_meta.h:43
recursiveNodeSort
static int recursiveNodeSort(playlist_t *p_playlist, playlist_item_t *p_node, sortfn_t p_sortfn)
Sort a node recursively.
Definition: sort.c:165
sout_stream_t::psz_name
char * psz_name
Definition: vlc_sout.h:203
modules
static struct @69 modules
mrl_Parse
static int mrl_Parse(mrl_t *p_mrl, const char *psz_mrl)
Definition: stream_output.c:582
INPUT_SET_RENDERER
Definition: vlc_input.h:480
proto_SORT_DISC_NUMBER
static int proto_SORT_DISC_NUMBER(const playlist_item_t *first, const playlist_item_t *second)
Definition: sort.c:222
sout_stream_t::pf_add
sout_stream_id_sys_t *(* pf_add)(sout_stream_t *, const es_format_t *)
Definition: vlc_sout.h:208
TAB_APPEND
#define TAB_APPEND(count, tab, p)
Definition: vlc_arrays.h:64
encoder_t
Definition: vlc_codec.h:211
sap_address_t::first
session_descriptor_t * first
Definition: sap.c:71
playlist_internal.h
playlist_LiveSearchClean
static void playlist_LiveSearchClean(playlist_item_t *p_root)
Enable all items in the playlist.
Definition: search.c:42
block_FifoNew
block_fifo_t * block_FifoNew(void)
Creates a thread-safe FIFO queue of blocks.
Definition: fifo.c:143
psz_name
const char * psz_name
Definition: vlc_codecs.h:315
PLAYLIST_DELETE_STOP_IF_CURRENT
#define PLAYLIST_DELETE_STOP_IF_CURRENT
stop playlist playback if node is currently the one played
Definition: playlist_internal.h:136
PLAYLIST_NO_INHERIT_FLAG
Will children inherit flags the R/O flag ?
Definition: vlc_playlist.h:143
sout_StreamChainDelete
void sout_StreamChainDelete(sout_stream_t *p_first, sout_stream_t *p_last)
Definition: stream_output.c:741
vlc_thread_t
Thread handle.
Definition: vlc_threads.h:252
session_descriptor_t::next
struct session_descriptor_t * next
Definition: sap.c:49
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
sout_access_out_t::p_cfg
config_chain_t * p_cfg
Definition: vlc_sout.h:86
var_GetInteger
#define var_GetInteger(a, b)
Definition: vlc_variables.h:655
input_item_GetMeta
char * input_item_GetMeta(input_item_t *p_i, vlc_meta_type_t meta_type)
Definition: item.c:260
vlc_cleanup_pop
#define vlc_cleanup_pop()
Unregisters the last cancellation handler.
Definition: vlc_threads.h:983
sout_mux_t::p_sout
sout_instance_t * p_sout
Definition: vlc_sout.h:125
PLAYLIST_RO_FLAG
Write-enabled ?
Definition: vlc_playlist.h:141
strlcpy
size_t strlcpy(char *, const char *, size_t)
sout_access_out_t::pf_seek
int(* pf_seek)(sout_access_out_t *, off_t)
Definition: vlc_sout.h:81
vlc_meta_Genre
Definition: vlc_meta.h:37
block_FifoPut
void block_FifoPut(block_fifo_t *fifo, block_t *block)
Immediately queue one block at the end of a FIFO.
Definition: fifo.c:176
sout_mux_t
Muxer structure.
Definition: vlc_sout.h:120
input_item_Release
void input_item_Release(input_item_t *p_item)
Releases an input item, i.e.
Definition: item.c:477
sap_address_t::next
struct sap_address_t * next
Definition: sap.c:58
proto_SORT_TRACK_NUMBER
static int proto_SORT_TRACK_NUMBER(const playlist_item_t *first, const playlist_item_t *second)
Definition: sort.c:217
SORT_TITLE_NUMERIC
Definition: vlc_playlist.h:189
sout_access_out_t::p_module
module_t * p_module
Definition: vlc_sout.h:76
sout_StreamNew
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
SORT_DISC_NUMBER
Definition: vlc_playlist.h:189
sout_mux_t::p_cfg
config_chain_t * p_cfg
Definition: vlc_sout.h:128
sout_mux_t::pf_delstream
void(* pf_delstream)(sout_mux_t *, sout_input_t *)
Definition: vlc_sout.h:133
sout_mux_t::i_add_stream_start
mtime_t i_add_stream_start
Definition: vlc_sout.h:150
block_FifoEmpty
void block_FifoEmpty(block_fifo_t *fifo)
Clears all blocks in a FIFO.
Definition: fifo.c:166
config_ChainCreate
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
sout_InputSendBuffer
int sout_InputSendBuffer(sout_packetizer_input_t *, block_t *)
Definition: stream_output.c:221
playlist_NodeDelete
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
playlist_NodeDeleteExplicit
void playlist_NodeDeleteExplicit(playlist_t *p_playlist, playlist_item_t *p_root, int flags)
Delete a node with explicit semantics.
Definition: tree.c:96
vlc_sout.h
vlc_memstream_putc
int vlc_memstream_putc(struct vlc_memstream *ms, int c)
Definition: memstream.c:144
playlist_item_t::i_id
int i_id
Playlist item specific id.
Definition: vlc_playlist.h:135
sout_mux_t::p_sys
sout_mux_sys_t * p_sys
Definition: vlc_sout.h:142
likely
#define likely(p)
Definition: vlc_common.h:113
sout_InputSendBuffer
int sout_InputSendBuffer(sout_packetizer_input_t *p_input, block_t *p_buffer)
Definition: stream_output.c:221
vlc_object_t
The main vlc_object_t structure.
Definition: vlc_objects.h:39
AddressToSDP
static char * AddressToSDP(const struct sockaddr *addr, socklen_t addrlen, char *buf)
Definition: sdp.c:41
vlc_savecancel
int vlc_savecancel(void)
Disables thread cancellation.
Definition: thread.c:313
SORT_DURATION
Definition: vlc_playlist.h:189
var_GetNonEmptyString
#define var_GetNonEmptyString(a, b)
Definition: vlc_variables.h:659
VLC_THREAD_PRIORITY_INPUT
#define VLC_THREAD_PRIORITY_INPUT
Definition: vlc_threads.h:322
vlc_array_init
static void vlc_array_init(vlc_array_t *p_array)
Definition: vlc_arrays.h:244
sout_stream_t::pf_del
void(* pf_del)(sout_stream_t *, sout_stream_id_sys_t *)
Definition: vlc_sout.h:209
sout_DeleteInstance
void sout_DeleteInstance(sout_instance_t *p_sout)
Definition: stream_output.c:134
VLC_UNUSED
#define VLC_UNUSED(x)
Definition: vlc_common.h:912
sout_NewInstance
#define sout_NewInstance(a, b)
Definition: stream_output.h:42
set_current_status_item
void set_current_status_item(playlist_t *p_playlist, playlist_item_t *p_item)
Definition: engine.c:410
vlc_mutex_t
pthread_mutex_t vlc_mutex_t
Mutex.
Definition: vlc_threads.h:267
sout_access_out_t::pf_read
ssize_t(* pf_read)(sout_access_out_t *, block_t *)
Definition: vlc_sout.h:82
input_interface.h
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:349
vlc_timer::overruns
atomic_uint overruns
Definition: timer.c:66
mrl_t
Definition: stream_output.c:61
vlc_mrand48
long vlc_mrand48(void)
PRNG uniformly distributed between -2^32 and 2^32 - 1.
Definition: rand.c:98
vlc_array_clear
static void vlc_array_clear(vlc_array_t *p_array)
Definition: vlc_arrays.h:250
mrl_t::psz_way
char * psz_way
Definition: stream_output.c:64
FREENULL
#define FREENULL(a)
Definition: vlc_common.h:766
strdup
char * strdup(const char *)
sout_access_out_t::psz_access
char * psz_access
Definition: vlc_sout.h:77
sout_mux_t::pf_addstream
int(* pf_addstream)(sout_mux_t *, sout_input_t *)
Definition: vlc_sout.h:132
sout_StreamFlush
static void sout_StreamFlush(sout_stream_t *s, sout_stream_id_sys_t *id)
Definition: vlc_sout.h:241
sout_MuxGetStream
int sout_MuxGetStream(sout_mux_t *p_mux, unsigned i_blocks, mtime_t *pi_dts)
Definition: stream_output.c:543
sout_access_out_t::psz_path
char * psz_path
Definition: vlc_sout.h:79
sout_InputNew
sout_packetizer_input_t * sout_InputNew(sout_instance_t *p_sout, const es_format_t *p_fmt)
Definition: stream_output.c:150
GetPrevUncle
playlist_item_t * GetPrevUncle(playlist_t *p_playlist, playlist_item_t *p_item, playlist_item_t *p_root)
Definition: tree.c:335
playlist_item_t::i_flags
uint8_t i_flags
Flags.
Definition: vlc_playlist.h:136
vlc_custom_create
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:108
vlc_memstream_puts
int() vlc_memstream_puts(struct vlc_memstream *ms, const char *str)
Definition: memstream.c:149
GetNextUncle
playlist_item_t * GetNextUncle(playlist_t *p_playlist, playlist_item_t *p_item, playlist_item_t *p_root)
Definition: tree.c:289
vlc_timer::func
void(* func)(void *)
Definition: thread.c:916
input_item_GetURI
char * input_item_GetURI(input_item_t *p_i)
Definition: item.c:320
es_format_t::i_codec
vlc_fourcc_t i_codec
FOURCC value as used in vlc.
Definition: vlc_es.h:583
vlc_block.h
sout_InputIsEmpty
bool sout_InputIsEmpty(sout_packetizer_input_t *p_input)
Definition: stream_output.c:198
playlist_ChildSearchName
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
ITEM_TYPE_NODE
Definition: vlc_input_item.h:116
sout_AnnounceRegisterSDP
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
name
const char name[16]
Definition: httpd.c:1249
sorting_fns
static const sortfn_t sorting_fns[NUM_SORT_FNS][2]
Definition: sort.c:117
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
PL_DEBUG2
#define PL_DEBUG2(msg,...)
Definition: playlist_internal.h:172
sout_stream_t::obj
struct vlc_common_members obj
Definition: vlc_sout.h:198
vlc_cond_init
void vlc_cond_init(vlc_cond_t *p_condvar)
Initializes a condition variable.
Definition: thread.c:216
sortfn_t
int(* sortfn_t)(const void *, const void *)
Return the comparison function appropriate for the SORT_* and ORDER_* arguments given,...
Definition: sort.c:116
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
SORT_TITLE
Definition: vlc_playlist.h:189
sout_InputDelete
int sout_InputDelete(sout_packetizer_input_t *p_input)
Definition: stream_output.c:182
vlc_array_item_at_index
#define vlc_array_item_at_index(ar, idx)
Definition: vlc_arrays.h:263
sout_InputNew
sout_packetizer_input_t * sout_InputNew(sout_instance_t *, const es_format_t *)
Definition: stream_output.c:150
sout_AccessOutRead
ssize_t sout_AccessOutRead(sout_access_out_t *p_access, block_t *p_buffer)
Definition: stream_output.c:300
SPU_ES
Definition: vlc_es.h:568
TAB_REMOVE
#define TAB_REMOVE(count, tab, p)
Definition: vlc_arrays.h:91
vlc_mutex_destroy
void vlc_mutex_destroy(vlc_mutex_t *p_mutex)
Deinitializes a mutex.
Definition: thread.c:110
playlist_private_t::p_input
input_thread_t * p_input
the input thread associated with the current item
Definition: playlist_internal.h:57
sout_InputFlush
void sout_InputFlush(sout_packetizer_input_t *p_input)
Definition: stream_output.c:210
vlc_meta_Rating
Definition: vlc_meta.h:42
NUM_SORT_FNS
Definition: vlc_playlist.h:191
playlist_ItemNewFromInput
playlist_item_t * playlist_ItemNewFromInput(playlist_t *p_playlist, input_item_t *p_input)
Definition: item.c:253
SORT_URI
Definition: vlc_playlist.h:189
sout_instance_t::psz_sout
char * psz_sout
Definition: vlc_sout.h:52
vlc_memstream_write
size_t vlc_memstream_write(struct vlc_memstream *ms, const void *ptr, size_t len)
Definition: memstream.c:126
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *p_mutex)
Releases a mutex.
Definition: thread.c:138
unlikely
#define unlikely(p)
Definition: vlc_common.h:114
vlc_memstream_printf
int vlc_memstream_printf(struct vlc_memstream *ms, const char *fmt,...)
Definition: memstream.c:184
playlist_item_array_t::p_elems
playlist_item_t ** p_elems
Definition: vlc_playlist.h:54
pl_priv
#define pl_priv(pl)
Definition: playlist_internal.h:95
vlc_meta_TrackNumber
Definition: vlc_meta.h:40
SORT_ARTIST
Definition: vlc_playlist.h:189
sout_MuxDelete
void sout_MuxDelete(sout_mux_t *p_mux)
Definition: stream_output.c:415
sout_MuxSendBuffer
int sout_MuxSendBuffer(sout_mux_t *p_mux, sout_input_t *p_input, block_t *p_buffer)
Definition: stream_output.c:505
libvlc.h
sout_mux_t::b_waiting_stream
bool b_waiting_stream
Definition: vlc_sout.h:148
playlist_GetNextLeaf
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
sout_stream_t::pf_send
int(* pf_send)(sout_stream_t *, sout_stream_id_sys_t *, block_t *)
Definition: vlc_sout.h:211
vlc_assert_unreachable
#define vlc_assert_unreachable()
Definition: vlc_common.h:118
vlc_cancel
void vlc_cancel(vlc_thread_t thread_id)
Marks a thread as cancelled.
Definition: thread.c:297
mtime_t
int64_t mtime_t
High precision date or time interval.
Definition: vlc_common.h:150
vlc_timer_create
int vlc_timer_create(vlc_timer_t *id, void(*func)(void *), void *data)
Initializes an asynchronous timer.
Definition: timer.c:108
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
vlc_playlist.h
playlist_item_t::pp_children
playlist_item_t ** pp_children
Children nodes/items.
Definition: vlc_playlist.h:130
playlist_RecursiveNodeSort
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
mrl_Clean
static void mrl_Clean(mrl_t *p_mrl)
Definition: stream_output.c:699
sout_MuxNew
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
sout_StreamDelete
static void sout_StreamDelete(sout_stream_t *p_stream)
Definition: stream_output.c:715
PLI_NAME
#define PLI_NAME(p)
Definition: playlist_internal.h:179
sout_mux_t::pf_control
int(* pf_control)(sout_mux_t *, int, va_list)
Definition: vlc_sout.h:135
session_descriptor_t
Definition: sap.c:47
vlc_codec.h
vlc_sdp_Start
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
sap_address_t::orig
struct sockaddr_storage orig
Definition: sap.c:65
IPPORT_SAP
#define IPPORT_SAP
Definition: sap.c:44
SORT_ALBUM
Definition: vlc_playlist.h:189
playlist_LiveSearchUpdate
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
sout_MuxControl
static int sout_MuxControl(sout_mux_t *p_mux, int i_query,...)
Definition: vlc_sout.h:179
playlist_t::items
playlist_item_array_t items
Arrays of items.
Definition: vlc_playlist.h:155
sout_AccessOutDelete
void sout_AccessOutDelete(sout_access_out_t *p_access)
Definition: stream_output.c:274
vlc_meta_type_t
vlc_meta_type_t
Definition: vlc_meta.h:33
sout_stream_t::p_sout
sout_instance_t * p_sout
Definition: vlc_sout.h:201
sout_InputFlush
void sout_InputFlush(sout_packetizer_input_t *)
Definition: stream_output.c:210
mdate
mtime_t mdate(void)
Precision monotonic clock.
Definition: thread.c:406
vlc_meta_Description
Definition: vlc_meta.h:41
sout_packetizer_input_t::p_sout
sout_instance_t * p_sout
Definition: stream_output.h:60
module_unneed
#define module_unneed(a, b)
Definition: vlc_modules.h:49
vlc_meta.h
sout_mux_t::i_nb_inputs
int i_nb_inputs
Definition: vlc_sout.h:138
VLC_STATIC_MUTEX
#define VLC_STATIC_MUTEX
Static initializer for (static) mutex.
Definition: vlc_threads.h:272
sout_stream_t::pace_nocontrol
bool pace_nocontrol
Definition: vlc_sout.h:216
NI_MAXNUMERICHOST
#define NI_MAXNUMERICHOST
Definition: vlc_network.h:188
sout_instance_t
Stream output instance (FIXME: should be private to src/ to avoid invalid unsynchronized access)
Definition: vlc_sout.h:48
playlist_item_array_t::i_size
int i_size
Definition: vlc_playlist.h:54
GetNextItem
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
IsUTF8
static const char * IsUTF8(const char *str)
Checks UTF-8 validity.
Definition: vlc_charset.h:63
es_format_Copy
int es_format_Copy(es_format_t *restrict dst, const es_format_t *src)
Definition: es_format.c:460
RunThread
static noreturn void * RunThread(void *)
main SAP handler thread
Definition: sap.c:134
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *p_mutex)
Acquires a mutex.
Definition: thread.c:123
NTPtime64
uint64_t NTPtime64(void)
Definition: mtime.c:201
block_t
Definition: vlc_block.h:111
config_ChainDestroy
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
pl_Locked
Definition: vlc_playlist.h:208
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:82
vlc_memstream_close
int vlc_memstream_close(struct vlc_memstream *ms)
Definition: memstream.c:119
sout_stream_t::p_next
sout_stream_t * p_next
Definition: vlc_sout.h:205
vlc_timer::data
void * data
Definition: thread.c:917
IsSDPString
static bool IsSDPString(const char *str)
Definition: sdp.c:82
sap_address_t::lock
vlc_mutex_t lock
Definition: sap.c:61
AddressDestroy
static void AddressDestroy(sap_address_t *addr)
Definition: sap.c:117
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
module_need
#define module_need(a, b, c, d)
Definition: vlc_modules.h:47
mutex_cleanup_push
#define mutex_cleanup_push(lock)
Definition: vlc_threads.h:1013
sdp_AddAttribute
void sdp_AddAttribute(struct vlc_memstream *restrict stream, const char *name, const char *fmt,...)
Definition: sdp.c:101
sout_StreamControl
static int sout_StreamControl(sout_stream_t *s, int i_query,...)
Definition: vlc_sout.h:248
vlc_modules.h
SORT_RATING
Definition: vlc_playlist.h:189