VLC  4.0.0-dev
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  *
6  * Authors: Christophe Massiot <massiot@via.ecp.fr>
7  * Laurent Aimar <fenrir@via.ecp.fr>
8  * Eric Petit <titer@videolan.org>
9  * Jean-Paul Saman <jpsaman #_at_# m2x.nl>
10  *
11  * This program is free software; you can redistribute it and/or modify it
12  * under the terms of the GNU Lesser General Public License as published by
13  * the Free Software Foundation; either version 2.1 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Lesser General Public License for more details.
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * along with this program; if not, write to the Free Software Foundation,
23  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
24  ***************************************************************************/
25 
26 #ifndef VLC_SRC_STREAMOUT_H
27 # define VLC_SRC_STREAMOUT_H 1
28 
29 # include <vlc_sout.h>
30 # include <vlc_network.h>
31 
32 /** Stream output instance */
34 {
35  char *psz_sout;
36 
37  bool b_wants_substreams;
39 };
40 
42 #define sout_NewInstance(a,b) sout_NewInstance(VLC_OBJECT(a),b)
44 
46 
50  block_t * );
51 
53 {
54  SOUT_INPUT_SET_SPU_HIGHLIGHT, /* arg1=const vlc_spu_highlight_t *, can fail */
55 };
57  int i_query, ... );
59 
60 #endif
sap_address_t::sessions
struct vlc_list sessions
Definition: sap.c:72
sout_StreamIdSend
int sout_StreamIdSend(sout_stream_t *s, void *id, block_t *b)
Definition: stream_output.c:758
AddressCreate
static sap_address_t * AddressCreate(vlc_object_t *obj, const char *group)
Definition: sap.c:84
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
block_FifoCount
static size_t block_FifoCount(block_fifo_t *fifo)
Definition: vlc_block.h:681
vlc_array_append_or_abort
static void vlc_array_append_or_abort(vlc_array_t *ar, void *elem)
Definition: vlc_arrays.h:347
sout_StreamIdDel
void sout_StreamIdDel(sout_stream_t *s, void *id)
Definition: stream_output.c:751
sout_AccessOutControl
int sout_AccessOutControl(sout_access_out_t *access, int query,...)
sout_AccessOutControl
Definition: stream_output.c:343
sout_DeleteInstance
void sout_DeleteInstance(sout_instance_t *)
Definition: stream_output.c:137
mrl_t::psz_access
char * psz_access
Definition: stream_output.c:65
sout_input_t::p_fmt
const es_format_t * p_fmt
Definition: vlc_sout.h:142
vlc_memstream
In-memory stream object.
Definition: vlc_memstream.h:41
sout_mux_t::pp_inputs
sout_input_t ** pp_inputs
Definition: vlc_sout.h:118
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
var_InheritBool
static bool var_InheritBool(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:675
sout_mux_t::psz_mux
char * psz_mux
Definition: vlc_sout.h:106
sout_packetizer_input_t::b_flushed
bool b_flushed
Definition: stream_output.c:163
sout_instance_ControlsPace
bool sout_instance_ControlsPace(sout_instance_t *sout)
Definition: stream_output.c:149
psz_name
const char * psz_name
Definition: text_style.c:53
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:258
stream_output.h
sap_address_t::node
struct vlc_list node
Definition: sap.c:60
vlc_memstream::ptr
char * ptr
Buffer start address.
Definition: vlc_memstream.h:48
sap_address_t::wait
vlc_cond_t wait
Definition: sap.c:63
sap_mutex
static vlc_mutex_t sap_mutex
Definition: sap.c:76
unlikely
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
block_FifoEmpty
static void block_FifoEmpty(block_fifo_t *fifo)
Clears all blocks in a FIFO.
Definition: vlc_block.h:644
TAB_FIND
#define TAB_FIND(count, tab, p, idx)
Definition: vlc_arrays.h:82
vlc_common.h
session_descriptor_t::data
char * data
Definition: sap.c:53
mrl_t::psz_name
char * psz_name
Definition: stream_output.c:67
sap_address_t::origlen
socklen_t origlen
Definition: sap.c:67
session_descriptor_t::length
size_t length
Definition: sap.c:52
VLC_THREAD_PRIORITY_LOW
#define VLC_THREAD_PRIORITY_LOW
Definition: vlc_threads.h:207
sout_InputDelete
int sout_InputDelete(sout_instance_t *p_sout, sout_packetizer_input_t *p_input)
Definition: stream_output.c:195
sout_StreamIsSynchronous
static bool sout_StreamIsSynchronous(sout_stream_t *s)
Definition: vlc_sout.h:217
SOUT_STREAM_ID_SPU_HIGHLIGHT
@ SOUT_STREAM_ID_SPU_HIGHLIGHT
Definition: vlc_sout.h:172
sap_address_t::group
char group[64]
Definition: sap.c:65
vlc_memstream::length
size_t length
Buffer length in bytes.
Definition: vlc_memstream.h:49
sout_stream_t
Definition: vlc_sout.h:184
block_FifoPut
static void block_FifoPut(block_fifo_t *fifo, block_t *block)
Immediately queue one block at the end of a FIFO.
Definition: vlc_block.h:660
sout_AccessOutDelete
void sout_AccessOutDelete(sout_access_out_t *p_access)
Definition: stream_output.c:298
vlc_tick_from_samples
static vlc_tick_t vlc_tick_from_samples(int64_t samples, int samp_rate)
Definition: vlc_tick.h:101
sout_MuxFlush
void sout_MuxFlush(sout_mux_t *p_mux, sout_input_t *p_input)
Definition: stream_output.c:540
sout_stream_private::module
module_t * module
Definition: stream_output.c:731
vlc_list_init
static void vlc_list_init(struct vlc_list *restrict head)
Initializes an empty list head.
Definition: vlc_list.h:57
sout_packetizer_input_t::id
void * id
Definition: stream_output.c:162
sout_input_t
Definition: vlc_sout.h:140
sout_mux_t::p_module
module_t * p_module
Definition: vlc_sout.h:104
sout_instance_ControlsPace
bool sout_instance_ControlsPace(sout_instance_t *sout)
Definition: stream_output.c:149
sout_instance_t::p_stream
sout_stream_t * p_stream
Definition: stream_output.h:61
vlc_network.h
sout_stream_t::p_cfg
config_chain_t * p_cfg
Definition: vlc_sout.h:189
vlc_memstream_puts
int() vlc_memstream_puts(struct vlc_memstream *ms, const char *str)
Appends a nul-terminated string to a byte stream.
Definition: memstream.c:156
sout_InputFlush
void sout_InputFlush(sout_instance_t *, sout_packetizer_input_t *)
Definition: stream_output.c:232
sap_address_t
struct sap_address_t sap_address_t
sout_AccessOutWrite
ssize_t sout_AccessOutWrite(sout_access_out_t *p_access, block_t *p_buffer)
Definition: stream_output.c:335
msg_Dbg
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
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:509
session_descriptor_t::addr
struct sap_address_t * addr
Definition: sap.c:51
sout_packetizer_input_t
Definition: stream_output.c:158
sout_StreamChainDelete
void sout_StreamChainDelete(sout_stream_t *p_first, sout_stream_t *end)
Definition: stream_output.c:816
sap_address_t::thread
vlc_thread_t thread
Definition: sap.c:62
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
vlc_memstream_open
int vlc_memstream_open(struct vlc_memstream *ms)
Initializes a byte stream object.
Definition: memstream.c:105
SOUT_STREAM_WANTS_SUBSTREAMS
@ SOUT_STREAM_WANTS_SUBSTREAMS
Definition: vlc_sout.h:171
vlc_memstream_close
int vlc_memstream_close(struct vlc_memstream *ms)
Closes a byte stream object.
Definition: memstream.c:120
sout_InputSendBuffer
int sout_InputSendBuffer(sout_instance_t *p_sout, sout_packetizer_input_t *p_input, block_t *p_buffer)
Definition: stream_output.c:242
sout_StreamFlush
void sout_StreamFlush(sout_stream_t *s, void *id)
Definition: stream_output.c:768
sap_address_t
Definition: sap.c:58
vlc_list
Doubly-linked list node.
Definition: vlc_list.h:43
sout_access_out_t
Stream output access_output.
Definition: vlc_sout.h:53
sout_mux_t::b_add_stream_any_time
bool b_add_stream_any_time
Definition: vlc_sout.h:126
VLC_STATIC_MUTEX
#define VLC_STATIC_MUTEX
Static initializer for (static) mutex.
Definition: vlc_threads.h:249
sout_MuxNew
sout_mux_t * sout_MuxNew(sout_access_out_t *p_access, const char *psz_mux)
Definition: stream_output.c:360
asprintf
int asprintf(char **, const char *,...)
vlc_cond_signal
void vlc_cond_signal(vlc_cond_t *cond)
Wakes up one thread waiting on a condition variable.
Definition: threads.c:253
sout_stream_url_to_chain
static char * sout_stream_url_to_chain(bool, const char *)
Definition: stream_output.c:953
VLC_LIST_INITIALIZER
#define VLC_LIST_INITIALIZER(h)
Static initializer for a list head.
Definition: vlc_list.h:52
vlc_mutex_t
Mutex.
Definition: vlc_threads.h:225
sout_instance_t::b_wants_substreams
bool b_wants_substreams
Definition: stream_output.h:60
sout_stream_private::lock
vlc_mutex_t lock
Definition: stream_output.c:730
sout_NewInstance
sout_instance_t * sout_NewInstance(vlc_object_t *p_parent, const char *psz_dest)
Definition: stream_output.c:80
sap_address_t::session_count
unsigned session_count
Definition: sap.c:71
sout_stream_operations::control
int(* control)(sout_stream_t *, int, va_list)
Definition: vlc_sout.h:180
TAB_ERASE
#define TAB_ERASE(count, tab, index)
Definition: vlc_arrays.h:92
net_Close
#define net_Close(fd)
Definition: vlc_network.h:57
sout_InputControl
int sout_InputControl(sout_instance_t *, sout_packetizer_input_t *, int i_query,...)
Definition: stream_output.c:220
sout_access_out_t::pf_control
int(* pf_control)(sout_access_out_t *, int, va_list)
Definition: vlc_sout.h:65
sout_StreamNew
static sout_stream_t * sout_StreamNew(vlc_object_t *parent, char *psz_name, config_chain_t *p_cfg, sout_stream_t *p_next)
Definition: stream_output.c:831
sout_MuxAddStream
sout_input_t * sout_MuxAddStream(sout_mux_t *p_mux, const es_format_t *p_fmt)
Definition: stream_output.c:439
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:144
msg_Warn
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
MUX_CAN_ADD_STREAM_WHILE_MUXING
@ MUX_CAN_ADD_STREAM_WHILE_MUXING
Definition: vlc_sout.h:135
sout_input_t::p_fifo
block_fifo_t * p_fifo
Definition: vlc_sout.h:143
vlc_assert_unreachable
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
sout_input_t::p_sys
void * p_sys
Definition: vlc_sout.h:144
vlc_array_t
Definition: vlc_arrays.h:258
sout_stream_operations::flush
void(* flush)(sout_stream_t *, void *)
Definition: vlc_sout.h:181
var_CreateGetInteger
static int64_t var_CreateGetInteger(vlc_object_t *p_obj, const char *psz_name)
Create a integer variable with inherit and get its value.
Definition: vlc_variables.h:523
block_FifoRelease
void block_FifoRelease(block_fifo_t *p_fifo)
Destroys a FIFO created by block_FifoNew().
Definition: fifo.c:103
sap_addrs
static struct vlc_list sap_addrs
Definition: sap.c:75
vlc_tick_now
vlc_tick_t vlc_tick_now(void)
Precision monotonic clock.
Definition: thread.c:261
sap_address_t::fd
int fd
Definition: sap.c:68
sout_access_out_t::pf_write
ssize_t(* pf_write)(sout_access_out_t *, block_t *)
Definition: vlc_sout.h:64
sout_AccessOutRead
ssize_t sout_AccessOutRead(sout_access_out_t *p_access, block_t *p_buffer)
Definition: stream_output.c:326
vlc_memstream::stream
FILE * stream
Definition: vlc_memstream.h:45
config_chain_t
Definition: vlc_configuration.h:331
sout_input_t::fmt
es_format_t fmt
Definition: vlc_sout.h:145
module_t
Internal module descriptor.
Definition: modules.h:78
vlc_array_count
static size_t vlc_array_count(vlc_array_t *p_array)
Definition: vlc_arrays.h:277
sap_address_t::interval
unsigned interval
Definition: sap.c:69
es_format_t
Definition: vlc_es.h:617
sout_StreamChainNew
sout_stream_t * sout_StreamChainNew(vlc_object_t *parent, const char *psz_chain, sout_stream_t *sink)
Definition: stream_output.c:877
vlc_memstream.h
vlc_tick_t
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
vlc_list_remove
static void vlc_list_remove(struct vlc_list *restrict node)
Removes an element from a list.
Definition: vlc_list.h:135
sout_AnnounceUnRegister
void sout_AnnounceUnRegister(vlc_object_t *obj, session_descriptor_t *session)
Unregisters an existing session.
Definition: sap.c:360
vlc_list_append
static void vlc_list_append(struct vlc_list *restrict node, struct vlc_list *head)
Appends an element into a list.
Definition: vlc_list.h:110
block_t::i_flags
uint32_t i_flags
Definition: vlc_block.h:126
sout_mux_t::p_access
sout_access_out_t * p_access
Definition: vlc_sout.h:109
sout_mux_t::pf_mux
int(* pf_mux)(sout_mux_t *)
Definition: vlc_sout.h:113
es_format_t::i_cat
enum es_format_category_e i_cat
ES category.
Definition: vlc_es.h:619
sout_AccessOutSeek
int sout_AccessOutSeek(sout_access_out_t *p_access, off_t i_pos)
Definition: stream_output.c:316
sout_StreamUnlock
static void sout_StreamUnlock(sout_stream_t *s)
Definition: stream_output.c:736
VLC_TICK_INVALID
#define VLC_TICK_INVALID
Definition: vlc_config.h:44
sout_stream_t::psz_name
char * psz_name
Definition: vlc_sout.h:188
mrl_Parse
static int mrl_Parse(mrl_t *p_mrl, const char *psz_mrl)
Definition: stream_output.c:589
lock
vlc_mutex_t lock
Definition: rand.c:50
vlc_list_is_empty
static bool vlc_list_is_empty(const struct vlc_list *head)
Checks if a list is empty.
Definition: vlc_list.h:167
TAB_APPEND
#define TAB_APPEND(count, tab, p)
Definition: vlc_arrays.h:79
encoder_t
Definition: vlc_codec.h:242
vlc_memstream_putc
int vlc_memstream_putc(struct vlc_memstream *ms, int c)
Appends a single byte to a byte stream.
Definition: memstream.c:151
sout_stream_operations::del
void(* del)(sout_stream_t *, void *)
Definition: vlc_sout.h:178
vlc_thread_t
Thread handle.
Definition: vlc_threads.h:180
sout_access_out_t::p_cfg
config_chain_t * p_cfg
Definition: vlc_sout.h:67
sout_MuxGetStream
int sout_MuxGetStream(sout_mux_t *p_mux, unsigned i_blocks, vlc_tick_t *pi_dts)
Definition: stream_output.c:549
block_FifoNew
block_fifo_t * block_FifoNew(void)
Creates a thread-safe FIFO queue of blocks.
Definition: fifo.c:90
sout_InputFlush
void sout_InputFlush(sout_instance_t *p_sout, sout_packetizer_input_t *p_input)
Definition: stream_output.c:232
block_t::i_pts
vlc_tick_t i_pts
Definition: vlc_block.h:129
session_descriptor_t::node
struct vlc_list node
Definition: sap.c:50
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:62
sout_EncoderCreate
encoder_t * sout_EncoderCreate(vlc_object_t *p_this, size_t owner_size)
Definition: stream_output.c:1014
sout_mux_t
Muxer structure.
Definition: vlc_sout.h:101
sout_access_out_t::p_module
module_t * p_module
Definition: vlc_sout.h:57
sout_mux_t::p_cfg
config_chain_t * p_cfg
Definition: vlc_sout.h:107
sout_mux_t::pf_delstream
void(* pf_delstream)(sout_mux_t *, sout_input_t *)
Definition: vlc_sout.h:112
sout_stream_priv
#define sout_stream_priv(s)
Definition: stream_output.c:728
sout_StreamLock
static void sout_StreamLock(sout_stream_t *s)
Definition: stream_output.c:731
vlc_sout.h
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:157
vlc_object_t
VLC object common members.
Definition: vlc_objects.h:43
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
vlc_array_init
static void vlc_array_init(vlc_array_t *p_array)
Definition: vlc_arrays.h:264
sout_DeleteInstance
void sout_DeleteInstance(sout_instance_t *p_sout)
Definition: stream_output.c:137
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
sout_InputSendBuffer
int sout_InputSendBuffer(sout_instance_t *, sout_packetizer_input_t *, block_t *)
Definition: stream_output.c:242
VLC_UNUSED
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
sout_NewInstance
#define sout_NewInstance(a, b)
Definition: stream_output.h:42
sout_access_out_t::pf_read
ssize_t(* pf_read)(sout_access_out_t *, block_t *)
Definition: vlc_sout.h:63
input_interface.h
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
mrl_t
Definition: stream_output.c:63
sout_StreamControlVa
int sout_StreamControlVa(sout_stream_t *s, int i_query, va_list args)
Definition: stream_output.c:778
vlc_array_clear
static void vlc_array_clear(vlc_array_t *p_array)
Definition: vlc_arrays.h:270
mrl_t::psz_way
char * psz_way
Definition: stream_output.c:66
FREENULL
#define FREENULL(a)
Definition: vlc_common.h:961
strdup
char * strdup(const char *)
sout_access_out_t::psz_access
char * psz_access
Definition: vlc_sout.h:58
var_InheritInteger
static int64_t var_InheritInteger(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:685
VLC_TICK_FROM_MS
#define VLC_TICK_FROM_MS(ms)
Definition: vlc_tick.h:122
block_FifoShow
block_t * block_FifoShow(block_fifo_t *p_fifo)
Peeks the first block in the FIFO.
Definition: fifo.c:128
SOUT_INPUT_SET_SPU_HIGHLIGHT
@ SOUT_INPUT_SET_SPU_HIGHLIGHT
Definition: stream_output.h:54
sout_mux_t::pf_addstream
int(* pf_addstream)(sout_mux_t *, sout_input_t *)
Definition: vlc_sout.h:111
sout_access_out_t::psz_path
char * psz_path
Definition: vlc_sout.h:60
sout_InputNew
sout_packetizer_input_t * sout_InputNew(sout_instance_t *p_sout, const es_format_t *p_fmt)
Definition: stream_output.c:164
vlc_custom_create
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:117
es_format_t::i_codec
vlc_fourcc_t i_codec
FOURCC value as used in vlc.
Definition: vlc_es.h:620
vlc_block.h
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
name
const char name[16]
Definition: httpd.c:1268
sout_access_out_t::p_sys
void * p_sys
Definition: vlc_sout.h:61
sout_stream_operations::send
int(* send)(sout_stream_t *, void *, block_t *)
Definition: vlc_sout.h:179
vlc_array_item_at_index
#define vlc_array_item_at_index(ar, idx)
Definition: vlc_arrays.h:283
vlc_cond_t
Condition variable.
Definition: vlc_threads.h:349
sout_InputNew
sout_packetizer_input_t * sout_InputNew(sout_instance_t *, const es_format_t *)
Definition: stream_output.c:164
SPU_ES
@ SPU_ES
Definition: vlc_es.h:605
sout_StreamIdAdd
void * sout_StreamIdAdd(sout_stream_t *s, const es_format_t *fmt)
Definition: stream_output.c:741
TAB_REMOVE
#define TAB_REMOVE(count, tab, p)
Definition: vlc_arrays.h:106
sout_MuxSendBuffer
int sout_MuxSendBuffer(sout_mux_t *p_mux, sout_input_t *p_input, block_t *p_buffer)
Definition: stream_output.c:516
sout_instance_t::psz_sout
char * psz_sout
Definition: stream_output.h:58
sout_stream_operations::add
void *(* add)(sout_stream_t *, const es_format_t *)
Definition: vlc_sout.h:177
sout_stream_private::stream
sout_stream_t stream
Definition: stream_output.c:729
sout_stream_t::ops
const struct sout_stream_operations * ops
Definition: vlc_sout.h:192
RunThread
static void * RunThread(void *)
main SAP handler thread
Definition: sap.c:120
vlc_list_foreach
#define vlc_list_foreach(pos, head, member)
List iteration macro.
Definition: vlc_list.h:261
libvlc.h
block_t::i_dts
vlc_tick_t i_dts
Definition: vlc_block.h:130
sout_mux_t::b_waiting_stream
bool b_waiting_stream
Definition: vlc_sout.h:127
sout_mux_t::i_add_stream_start
vlc_tick_t i_add_stream_start
Definition: vlc_sout.h:129
sout_MuxDeleteStream
void sout_MuxDeleteStream(sout_mux_t *p_mux, sout_input_t *p_input)
Definition: stream_output.c:481
sout_stream_private
Definition: stream_output.c:722
vlc_object_delete
#define vlc_object_delete(obj)
Definition: vlc_objects.h:136
mrl_Clean
static void mrl_Clean(mrl_t *p_mrl)
Definition: stream_output.c:706
sout_stream_t::p_sys
void * p_sys
Definition: vlc_sout.h:193
sout_InputControlVa
static int sout_InputControlVa(sout_instance_t *p_sout, sout_packetizer_input_t *p_input, int i_query, va_list args)
Definition: stream_output.c:207
sout_StreamDelete
static void sout_StreamDelete(sout_stream_t *p_stream)
Definition: stream_output.c:792
sout_mux_t::pf_control
int(* pf_control)(sout_mux_t *, int, va_list)
Definition: vlc_sout.h:114
session_descriptor_t
Definition: sap.c:48
vlc_codec.h
sap_address_t::orig
struct sockaddr_storage orig
Definition: sap.c:66
IPPORT_SAP
#define IPPORT_SAP
Definition: sap.c:43
sout_InputControl
int sout_InputControl(sout_instance_t *p_sout, sout_packetizer_input_t *p_input, int i_query,...)
Definition: stream_output.c:220
BLOCK_FLAG_DISCONTINUITY
#define BLOCK_FLAG_DISCONTINUITY
The content doesn't follow the last block, possible some blocks in between have been lost.
Definition: vlc_block.h:67
sout_MuxControl
static int sout_MuxControl(sout_mux_t *p_mux, int i_query,...)
Definition: vlc_sout.h:157
sout_mux_t::p_sys
void * p_sys
Definition: vlc_sout.h:121
vlc_cond_init
void vlc_cond_init(vlc_cond_t *cond)
Initializes a condition variable.
Definition: threads.c:234
vlc_cond_timedwait
int vlc_cond_timedwait(vlc_cond_t *cond, vlc_mutex_t *mutex, vlc_tick_t deadline)
Waits on a condition variable up to a certain date.
Definition: threads.c:349
module_unneed
#define module_unneed(a, b)
Definition: vlc_modules.h:126
vlc_meta.h
sout_mux_t::i_nb_inputs
int i_nb_inputs
Definition: vlc_sout.h:117
net_ConnectUDP
static int net_ConnectUDP(vlc_object_t *obj, const char *host, unsigned port, int hlim)
Definition: vlc_network.h:209
vlc_getnameinfo
int vlc_getnameinfo(const struct sockaddr *sa, int salen, char *host, int hostlen, int *portnum, int flags)
Definition: getaddrinfo.c:39
vlc_memstream_write
size_t vlc_memstream_write(struct vlc_memstream *ms, const void *ptr, size_t len)
Appends a binary blob to a byte stream.
Definition: memstream.c:127
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:151
NI_MAXNUMERICHOST
#define NI_MAXNUMERICHOST
Definition: vlc_network.h:274
sout_instance_t
Stream output instance.
Definition: stream_output.h:33
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
es_format_Copy
int es_format_Copy(es_format_t *restrict dst, const es_format_t *src)
Definition: es_format.c:436
block_t
Definition: vlc_block.h:117
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
sout_stream_t::p_next
sout_stream_t * p_next
Definition: vlc_sout.h:190
AddressDestroy
static void AddressDestroy(sap_address_t *addr)
Definition: sap.c:109
sout_InputDelete
int sout_InputDelete(sout_instance_t *, sout_packetizer_input_t *)
Definition: stream_output.c:195
module_need
#define module_need(a, b, c, d)
Definition: vlc_modules.h:111
sout_input_query_e
sout_input_query_e
Definition: stream_output.h:52
sout_StreamControl
static int sout_StreamControl(sout_stream_t *s, int i_query,...)
Definition: vlc_sout.h:206
vlc_modules.h
sout_MuxDelete
void sout_MuxDelete(sout_mux_t *p_mux)
Definition: stream_output.c:423