VLC  4.0.0-dev
rtp.h
Go to the documentation of this file.
1 /**
2  * @file rtp.h
3  * @brief RTP demux module shared declarations
4  */
5 /*****************************************************************************
6  * Copyright © 2008 Rémi Denis-Courmont
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public License
10  * as published by the Free Software Foundation; either version 2.1
11  * of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21  ****************************************************************************/
22 
23 typedef struct rtp_pt_t rtp_pt_t;
25 
26 struct vlc_demux_chained_t;
27 
28 /** @section RTP payload format */
29 struct rtp_pt_t
30 {
31  void *(*init) (demux_t *);
32  void (*destroy) (demux_t *, void *);
33  void (*header) (demux_t *, void *, block_t *);
34  void (*decode) (demux_t *, void *, block_t *);
35  uint32_t frequency; /* RTP clock rate (Hz) */
36  uint8_t number;
37 };
38 void rtp_autodetect (demux_t *, rtp_session_t *, const block_t *);
39 
40 static inline uint8_t rtp_ptype (const block_t *block)
41 {
42  return block->p_buffer[1] & 0x7F;
43 }
44 
45 void *codec_init (demux_t *demux, es_format_t *fmt);
46 void codec_destroy (demux_t *demux, void *data);
47 void codec_decode (demux_t *demux, void *data, block_t *block);
48 
49 void *theora_init (demux_t *demux);
50 void xiph_destroy (demux_t *demux, void *data);
51 void xiph_decode (demux_t *demux, void *data, block_t *block);
52 
53 /** @section RTP session */
56 void rtp_queue (demux_t *, rtp_session_t *, block_t *);
57 bool rtp_dequeue (demux_t *, const rtp_session_t *, vlc_tick_t *);
58 int rtp_add_type (demux_t *demux, rtp_session_t *ses, const rtp_pt_t *pt);
59 
60 void *rtp_dgram_thread (void *data);
61 
62 /* Global data */
63 typedef struct
64 {
67 #ifdef HAVE_SRTP
68  struct srtp_session_t *srtp;
69 #endif
70  struct vlc_dtls *rtp_sock;
73 
75  uint16_t max_dropout; /**< Max packet forward misordering */
76  uint16_t max_misorder; /**< Max packet backward misordering */
77  uint8_t max_src; /**< Max simultaneous RTP sources */
78  bool autodetect; /**< Payload type autodetection pending */
79 } demux_sys_t;
80 
vlc_tls_ProxyShutdown
static int vlc_tls_ProxyShutdown(vlc_tls_t *tls, bool duplex)
Definition: tunnel.c:111
vlc_module_begin
#define vlc_module_begin()
Definition: vlc_plugin.h:267
OpenURL
static int OpenURL(vlc_object_t *obj)
Probes and initializes.
Definition: rtp.c:335
rtp_pt_t::header
void(* header)(demux_t *, void *, block_t *)
Definition: rtp.h:33
RTCP_PORT_LONGTEXT
#define RTCP_PORT_LONGTEXT
Definition: rtp.c:498
count
size_t count
Definition: core.c:401
rtp_pt_t
Definition: rtp.h:29
IPPROTO_UDPLITE
#define IPPROTO_UDPLITE
Definition: rtp.c:57
demux_sys_t::rtp_sock
struct vlc_dtls * rtp_sock
Definition: rtp.h:70
var_Create
int() var_Create(vlc_object_t *p_this, const char *psz_name, int i_type)
Creates a VLC object variable.
Definition: variables.c:291
SRTP_KEY_LONGTEXT
#define SRTP_KEY_LONGTEXT
Definition: rtp.c:503
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: stream.c:431
rtp_pt_t::frequency
uint32_t frequency
Definition: rtp.h:35
vlc_tls_ProxyRead
static ssize_t vlc_tls_ProxyRead(vlc_tls_t *tls, struct iovec *iov, unsigned count)
Definition: tunnel.c:93
rtp_session_create
rtp_session_t * rtp_session_create(demux_t *)
Creates a new RTP session.
Definition: session.c:58
vlc_demux.h
vlc_stream_GetSize
static int vlc_stream_GetSize(stream_t *s, uint64_t *size)
Get the size of the stream.
Definition: vlc_stream.h:331
vlc_datagram_CreateFD
struct vlc_dtls * vlc_datagram_CreateFD(int fd)
Definition: datagram.c:99
SRTP_KEY_TEXT
#define SRTP_KEY_TEXT
Definition: rtp.c:502
vlc_tls_ProxyClose
static void vlc_tls_ProxyClose(vlc_tls_t *tls)
Definition: tunnel.c:118
vlc_gcrypt_init
static void vlc_gcrypt_init(void)
Definition: vlc_gcrypt.h:29
strcasecmp
int strcasecmp(const char *, const char *)
vlc_sdp_media::proto
char * proto
Definition: sdp.h:83
rtp_session_destroy
void rtp_session_destroy(demux_t *, rtp_session_t *)
Destroys an RTP session.
Definition: session.c:77
vlc_http_authority
char * vlc_http_authority(const char *host, unsigned port)
Formats an authority.
Definition: message.c:573
unlikely
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
vlc_common.h
srtp_session_t
Definition: srtp.c:58
vlc_sendmsg
ssize_t vlc_sendmsg(int fd, const struct msghdr *msg, int flags)
Sends a socket message.
Definition: filesystem.c:374
srtp_destroy
void srtp_destroy(srtp_session_t *s)
Releases all resources associated with a Secure RTP session.
Definition: srtp.c:98
srtp.h
demux_sys_t::autodetect
bool autodetect
Payload type autodetection pending.
Definition: rtp.h:78
srtp_create
srtp_session_t * srtp_create(int encr, int auth, unsigned tag_len, int prf, unsigned flags)
Allocates a Secure RTP one-way session.
Definition: srtp.c:134
vlc_https_connect_proxy
vlc_tls_t * vlc_https_connect_proxy(void *ctx, vlc_tls_client_t *creds, const char *hostname, unsigned port, bool *restrict two, const char *proxy)
Definition: tunnel.c:134
add_integer
#define add_integer(name, value, text, longtext, advc)
Definition: vlc_plugin.h:422
set_callbacks
#define set_callbacks(activate, deactivate)
Definition: vlc_plugin.h:320
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:1005
net_Connect
#define net_Connect(a, b, c, d, e)
Definition: vlc_network.h:175
dynamic_pt_list_text
static const char *const dynamic_pt_list_text[]
Definition: rtp.c:539
pollfd::fd
int fd
Definition: vlc_fixups.h:419
theora_init
void * theora_init(demux_t *demux)
Definition: xiph.c:74
rtp_autodetect
void rtp_autodetect(demux_t *, rtp_session_t *, const block_t *)
Definition: rtpfmt.c:259
vlc_http_msg_destroy
void vlc_http_msg_destroy(struct vlc_http_msg *m)
Destroys an HTTP message.
Definition: message.c:193
POLLHUP
@ POLLHUP
Definition: vlc_fixups.h:406
vlc_dtls
Datagram socket.
Definition: vlc_dtls.h:29
codec_decode
void codec_decode(demux_t *demux, void *data, block_t *block)
Definition: rtpfmt.c:54
SRTP_ENCR_AES_CM
@ SRTP_ENCR_AES_CM
Definition: srtp.h:42
vlc_sdp::media
struct vlc_sdp_media * media
Definition: sdp.h:151
vlc_tls_GetPollFD
static int vlc_tls_GetPollFD(vlc_tls_t *tls, short *events)
Generates an event polling description.
Definition: vlc_tls.h:314
vlc_network.h
vlc_obj_malloc
void * vlc_obj_malloc(vlc_object_t *obj, size_t size)
Allocates memory for a module.
Definition: objres.c:137
pollfd
Definition: vlc_fixups.h:417
IPPROTO_DCCP
#define IPPROTO_DCCP
Definition: rtp.c:53
vlc_h1_conn_create
struct vlc_http_conn * vlc_h1_conn_create(void *ctx, struct vlc_tls *, bool proxy)
Definition: h1conn.c:340
vlc_https_connect
vlc_tls_t * vlc_https_connect(vlc_tls_client_t *creds, const char *name, unsigned port, bool *restrict two)
Definition: connmgr.c:59
Close
static void Close(vlc_object_t *obj)
Releases resources.
Definition: rtp.c:139
vlc_tls
Transport layer socket.
Definition: vlc_tls.h:65
vlc_UrlClean
void vlc_UrlClean(vlc_url_t *restrict url)
Definition: url.c:598
vlc_tls::p
struct vlc_tls * p
Reserved.
Definition: vlc_tls.h:70
vlc_sdp
SDP session descriptor.
Definition: sdp.h:145
msg_Dbg
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
set_shortname
#define set_shortname(shortname)
Definition: vlc_plugin.h:299
vlc_url_t::psz_password
char * psz_password
Definition: vlc_url.h:149
vlc_tls_ClientSessionCreate
vlc_tls_t * vlc_tls_ClientSessionCreate(vlc_tls_client_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:149
poll
int poll(struct pollfd *, unsigned, int)
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
vlc_sdp_media::port
unsigned int port
Definition: sdp.h:81
vlc_sdp_media
SDP media.
Definition: sdp.h:76
vlc_dtls_Close
static void vlc_dtls_Close(struct vlc_dtls *dgs)
Definition: vlc_dtls.h: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:783
RTP_MAX_SRC_TEXT
#define RTP_MAX_SRC_TEXT
Definition: rtp.c:513
VLC_VAR_STRING
#define VLC_VAR_STRING
Definition: vlc_variables.h:51
vlc_http_stream_open
static struct vlc_http_stream * vlc_http_stream_open(struct vlc_http_conn *conn, const struct vlc_http_msg *m, bool has_data)
Definition: conn.h:48
RTP_DYNAMIC_PT_LONGTEXT
#define RTP_DYNAMIC_PT_LONGTEXT
Definition: rtp.c:533
vlc_sdp_attr_value
static const char * vlc_sdp_attr_value(const struct vlc_sdp *sdp, const char *name)
Returns a session attribute value.
Definition: sdp.h:207
stream_t::pf_demux
int(* pf_demux)(stream_t *)
Definition: vlc_stream.h:115
vlc_tls_proxy::tls
vlc_tls_t tls
Definition: tunnel.c:82
set_category
#define set_category(i_id)
Definition: vlc_plugin.h:368
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:144
change_safe
#define change_safe()
Definition: vlc_plugin.h:500
vlc_datagram_Recv
static ssize_t vlc_datagram_Recv(struct vlc_dtls *dgs, struct iovec *iov, unsigned iovlen, bool *truncated)
Definition: datagram.c:64
vlc_http_conn
Definition: conn.h:41
pollfd::revents
short revents
Definition: vlc_fixups.h:421
vlc_tls_proxy
Definition: tunnel.c:80
vlc_sdp_conn
SDP connection address.
Definition: sdp.h:66
set_description
#define set_description(desc)
Definition: vlc_plugin.h:303
conn.h
demux_sys_t::max_misorder
uint16_t max_misorder
Max packet backward misordering.
Definition: rtp.h:76
vlc_stream_Peek
ssize_t vlc_stream_Peek(stream_t *s, const uint8_t **restrict bufp, size_t len)
Definition: stream.c:507
stream_t::out
es_out_t * out
Definition: vlc_stream.h:68
stream_t::psz_location
const char * psz_location
Location (URL with the scheme stripped)
Definition: vlc_stream.h:52
codec_destroy
void codec_destroy(demux_t *demux, void *data)
Definition: rtpfmt.c:47
change_string_list
#define change_string_list(list, list_text)
Definition: vlc_plugin.h:473
demux_sys_t::chained_demux
struct vlc_demux_chained_t * chained_demux
Definition: rtp.h:66
vlc_sdp_free
void vlc_sdp_free(struct vlc_sdp *sdp)
Destroys a parsed SDP session descriptor.
Definition: sdp.c:252
DEMUX_GET_TIME
@ DEMUX_GET_TIME
Definition: vlc_demux.h:189
vlc_module_end
#define vlc_module_end()
Definition: vlc_plugin.h:278
net_Close
#define net_Close(fd)
Definition: vlc_network.h:57
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
vlc_sdp_conn::addr
char addr[]
Definition: sdp.h:72
vlc_url_t::psz_host
char * psz_host
Definition: vlc_url.h:150
stream_t::psz_name
char * psz_name
Definition: vlc_stream.h:50
vlc_tls_proxy::sock
vlc_tls_t * sock
Definition: tunnel.c:83
MSG_TRUNC
#define MSG_TRUNC
Definition: datagram.c:36
SRTP_SALT_TEXT
#define SRTP_SALT_TEXT
Definition: rtp.c:508
xiph_decode
void xiph_decode(demux_t *demux, void *data, block_t *block)
Definition: xiph.c:146
DEMUX_CAN_PAUSE
@ DEMUX_CAN_PAUSE
Checks whether (long) pause then stream resumption is supported.
Definition: vlc_demux.h:99
vlc_dccp_ops
static const struct vlc_dtls_operations vlc_dccp_ops
Definition: datagram.c:143
rtp_dgram_thread
void * rtp_dgram_thread(void *opaque)
RTP/RTCP session thread for datagram sockets.
Definition: input.c:108
vlc_sdp_media_attr_value
static const char * vlc_sdp_media_attr_value(const struct vlc_sdp_media *media, const char *name)
Returns a media attribute value.
Definition: sdp.h:137
rtp_queue
void rtp_queue(demux_t *, rtp_session_t *, block_t *)
Receives an RTP packet and queues it.
Definition: session.c:239
vlc_savecancel
int vlc_savecancel(void)
Disables thread cancellation.
Definition: thread.c:183
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
var_SetString
static int var_SetString(vlc_object_t *p_obj, const char *psz_name, const char *psz_string)
Set the value of a string variable.
Definition: vlc_variables.h:345
vlc_tls_ProxyWrite
static ssize_t vlc_tls_ProxyWrite(vlc_tls_t *tls, const struct iovec *iov, unsigned count)
Definition: tunnel.c:102
vlc_dtls::ops
const struct vlc_dtls_operations * ops
Definition: vlc_dtls.h:30
OpenSDP
static int OpenSDP(vlc_object_t *obj)
Definition: rtp.c:156
demux_sys_t::timeout
vlc_tick_t timeout
Definition: rtp.h:74
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:276
vlc_UrlParse
int vlc_UrlParse(vlc_url_t *url, const char *str)
Parses an URI or IRI.
Definition: url.c:558
DEMUX_GET_LENGTH
@ DEMUX_GET_LENGTH
Definition: vlc_demux.h:188
message.h
es_format_t
Definition: vlc_es.h:617
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:213
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:284
vlc_tick_t
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
vlc_gcrypt.h
vlc_url_t::psz_username
char * psz_username
Definition: vlc_url.h:148
xiph_destroy
void xiph_destroy(demux_t *demux, void *data)
Definition: xiph.c:80
add_submodule
#define add_submodule()
Definition: vlc_plugin.h:287
vlc_sdp::conn
struct vlc_sdp_conn * conn
Definition: sdp.h:149
vlc_strerror_c
const char * vlc_strerror_c(int errnum)
Definition: error.c:34
net_OpenDgram
#define net_OpenDgram(a, b, c, d, e, g)
Definition: vlc_network.h:215
dynamic_pt_list
static const char *const dynamic_pt_list[]
Definition: rtp.c:538
vlc_http_msg::status
short status
Definition: message.c:62
vlc_plugin.h
vlc_close
int vlc_close(int fd)
Closes a file descriptor.
Definition: filesystem.c:91
recvmsg
ssize_t recvmsg(int, struct msghdr *, int)
vlc_datagram_ops
static const struct vlc_dtls_operations vlc_datagram_ops
Definition: datagram.c:92
rtp_session_t
State for a RTP session:
Definition: session.c:39
vlc_thread_t
Thread handle.
Definition: vlc_threads.h:180
DEMUX_CAN_SEEK
@ DEMUX_CAN_SEEK
Checks whether the stream supports seeking.
Definition: vlc_demux.h:91
stream_t
stream_t definition
Definition: vlc_stream.h:46
vlc_datagram_Close
static void vlc_datagram_Close(struct vlc_dtls *dgs)
Definition: datagram.c:45
vlc_sdp_conn::next
struct vlc_sdp_conn * next
Definition: sdp.h:68
stream_t::s
stream_t * s
Input stream.
Definition: vlc_stream.h:65
vlc_tls_Close
static void vlc_tls_Close(vlc_tls_t *session)
Closes a connection and its underlying resources.
Definition: vlc_tls.h:397
vlc_tls_proxy_ops
static const struct vlc_tls_operations vlc_tls_proxy_ops
Definition: tunnel.c:125
vlc_http_stream
HTTP stream.
Definition: message.h:366
vlc_tick_from_sec
#define vlc_tick_from_sec(sec)
Definition: vlc_tick.h:81
container_of
#define container_of(ptr, type, member)
Definition: vlc_common.h:1140
vlc_dgram_sock
Definition: datagram.c:39
vlc_tls_operations::writev
ssize_t(* writev)(struct vlc_tls *, const struct iovec *iov, unsigned len)
Callback for sending data.
Definition: vlc_tls.h:107
stream_t::pf_control
int(* pf_control)(stream_t *, int i_query, va_list)
Stream control.
Definition: vlc_stream.h:133
vlc_restorecancel
void vlc_restorecancel(int state)
Restores the cancellation state.
Definition: thread.c:193
vlc_url.h
vlc_sdp_media::next
struct vlc_sdp_media * next
Definition: sdp.h:78
vlc_url_t
Definition: vlc_url.h:145
sdp.h
Session Description Protocol (SDP)
rtp.h
RTP demux module shared declarations.
vlc_object_t
VLC object common members.
Definition: vlc_objects.h:43
rtp_pt_t::decode
void(* decode)(demux_t *, void *, block_t *)
Definition: rtp.h:34
RTP_DYNAMIC_PT_TEXT
#define RTP_DYNAMIC_PT_TEXT
Definition: rtp.c:531
vlc_tls_proxy_t
struct vlc_tls_proxy vlc_tls_proxy_t
VLC_ENOMEM
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:476
SRTP_PRF_AES_CM
@ SRTP_PRF_AES_CM
Definition: srtp.h:56
set_capability
#define set_capability(cap, score)
Definition: vlc_plugin.h:311
VLC_THREAD_PRIORITY_INPUT
#define VLC_THREAD_PRIORITY_INPUT
Definition: vlc_threads.h:208
var_CreateGetNonEmptyString
static char * var_CreateGetNonEmptyString(vlc_object_t *p_obj, const char *psz_name)
Definition: vlc_variables.h:570
RTP_TIMEOUT_TEXT
#define RTP_TIMEOUT_TEXT
Definition: rtp.c:517
change_integer_range
#define change_integer_range(minv, maxv)
Definition: vlc_plugin.h:485
Control
static int Control(demux_t *demux, int query, va_list args)
Control callback.
Definition: rtp.c:90
DEMUX_GET_PTS_DELAY
@ DEMUX_GET_PTS_DELAY
Retrieves the PTS delay (roughly the default buffer duration).
Definition: vlc_demux.h:112
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:38
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
vlc_dgram_sock::s
struct vlc_dtls s
Definition: datagram.c:42
strdup
char * strdup(const char *)
extract_port
static int extract_port(char **phost)
Extracts port number from "[host]:port" or "host:port" strings, and remove brackets from the host nam...
Definition: rtp.c:67
var_InheritInteger
static int64_t var_InheritInteger(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:685
RTP_MAX_MISORDER_LONGTEXT
#define RTP_MAX_MISORDER_LONGTEXT
Definition: rtp.c:527
VLC_TICK_FROM_MS
#define VLC_TICK_FROM_MS(ms)
Definition: vlc_tick.h:122
vlc_http_conn_release
static void vlc_http_conn_release(struct vlc_http_conn *conn)
Definition: conn.h:54
RTCP_PORT_TEXT
#define RTCP_PORT_TEXT
Definition: rtp.c:497
vlc_url_t::i_port
unsigned i_port
Definition: vlc_url.h:151
RTP_MAX_DROPOUT_TEXT
#define RTP_MAX_DROPOUT_TEXT
Definition: rtp.c:521
rtp_dgram_thread
void * rtp_dgram_thread(void *data)
RTP/RTCP session thread for datagram sockets.
Definition: input.c:108
SRTP_SALT_LONGTEXT
#define SRTP_SALT_LONGTEXT
Definition: rtp.c:509
vlc_sdp_media::format
char * format
Definition: sdp.h:84
demux_sys_t
Definition: rtp.h:63
rtp_add_type
int rtp_add_type(demux_t *demux, rtp_session_t *ses, const rtp_pt_t *pt)
Adds a payload type to an RTP session.
Definition: session.c:108
vlc_demux_chained_t
Definition: demux_chained.c:35
DEMUX_CAN_CONTROL_PACE
@ DEMUX_CAN_CONTROL_PACE
Whether the stream can be read at an arbitrary pace.
Definition: vlc_demux.h:105
vlc_sdp_media_attr_present
static bool vlc_sdp_media_attr_present(const struct vlc_sdp_media *media, const char *name)
Checks if a median attribute is present.
Definition: sdp.h:118
rtp_dequeue
bool rtp_dequeue(demux_t *, const rtp_session_t *, vlc_tick_t *)
net_SetCSCov
int net_SetCSCov(int fd, int sendcov, int recvcov)
net_SetCSCov: Sets the send and receive checksum coverage of a socket:
Definition: udp.c:692
N_
#define N_(str)
Definition: vlc_fixups.h:375
vlc_dtls_operations
Definition: vlc_dtls.h:33
DEMUX_GET_POSITION
@ DEMUX_GET_POSITION
Definition: vlc_demux.h:184
vlc_datagram_GetPollFD
static int vlc_datagram_GetPollFD(struct vlc_dtls *dgs, short *restrict ev)
Definition: datagram.c:58
vlc_tls.h
SUBCAT_INPUT_DEMUX
#define SUBCAT_INPUT_DEMUX
Definition: vlc_plugin.h:168
vlc_datagram_Send
static ssize_t vlc_datagram_Send(struct vlc_dtls *dgs, const struct iovec *iov, unsigned iovlen)
Definition: datagram.c:80
vlc_dccp_Recv
static ssize_t vlc_dccp_Recv(struct vlc_dtls *dgs, struct iovec *iov, unsigned iovlen, bool *truncated)
Definition: datagram.c:111
vlc_tls_client
TLS client-side credentials.
Definition: vlc_tls.h:140
transport.h
RTP_MAX_MISORDER_TEXT
#define RTP_MAX_MISORDER_TEXT
Definition: rtp.c:526
vlc_object_parent
#define vlc_object_parent(o)
Definition: vlc_objects.h:158
RTP_TIMEOUT_LONGTEXT
#define RTP_TIMEOUT_LONGTEXT
Definition: rtp.c:518
demux_sys_t::session
rtp_session_t * session
Definition: rtp.h:65
vlc_dgram_sock::fd
int fd
Definition: datagram.c:41
add_string
#define add_string(name, value, text, longtext, advc)
Definition: vlc_plugin.h:385
codec_init
void * codec_init(demux_t *demux, es_format_t *fmt)
Definition: rtpfmt.c:40
set_subcategory
#define set_subcategory(i_id)
Definition: vlc_plugin.h:372
demux_sys_t::thread
vlc_thread_t thread
Definition: rtp.h:72
vlc_tls_operations
Definition: vlc_tls.h:73
vlc_http_msg_get_status
int vlc_http_msg_get_status(const struct vlc_http_msg *m)
Gets response status code.
Definition: message.c:168
likely
#define likely(p)
Predicted true condition.
Definition: vlc_common.h:218
vlc_tls_operations::readv
ssize_t(* readv)(struct vlc_tls *, struct iovec *iov, unsigned len)
Callback for receiving data.
Definition: vlc_tls.h:93
block_t::p_buffer
uint8_t * p_buffer
Payload start.
Definition: vlc_block.h:121
CAT_INPUT
#define CAT_INPUT
Definition: vlc_plugin.h:165
rtp_pt_t::destroy
void(* destroy)(demux_t *, void *)
Definition: rtp.h:32
rtp_pt_t::number
uint8_t number
Definition: rtp.h:36
rtp_ptype
static uint8_t rtp_ptype(const block_t *block)
Definition: rtp.h:40
vlc_sdp_media::conns
struct vlc_sdp_conn * conns
Definition: sdp.h:85
SRTP_RCC_MODE1
@ SRTP_RCC_MODE1
Definition: srtp.h:31
RTP_MAX_SRC_LONGTEXT
#define RTP_MAX_SRC_LONGTEXT
Definition: rtp.c:514
SRTP_AUTH_HMAC_SHA1
@ SRTP_AUTH_HMAC_SHA1
Definition: srtp.h:50
RTP_MAX_DROPOUT_LONGTEXT
#define RTP_MAX_DROPOUT_LONGTEXT
Definition: rtp.c:522
vlc_demux_chained_ControlVa
int vlc_demux_chained_ControlVa(vlc_demux_chained_t *dc, int query, va_list ap)
Controls a chained demuxer.
Definition: demux_chained.c:138
vlc_http_msg
Definition: message.c:42
vlc_tls_ProxyGetFD
static int vlc_tls_ProxyGetFD(vlc_tls_t *tls, short *restrict events)
Definition: tunnel.c:86
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
demux_sys_t::rtcp_sock
struct vlc_dtls * rtcp_sock
Definition: rtp.h:71
vlc_http_msg::authority
char * authority
Definition: message.c:65
demux_sys_t::max_src
uint8_t max_src
Max simultaneous RTP sources.
Definition: rtp.h:77
stream_t::p_sys
void * p_sys
Private data pointer.
Definition: vlc_stream.h:138
block_t
Definition: vlc_block.h:117
vlc_tls::ops
const struct vlc_tls_operations * ops
Callbacks to operate on the stream.
Definition: vlc_tls.h:68
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
vlc_tls_Shutdown
static int vlc_tls_Shutdown(vlc_tls_t *tls, bool duplex)
Shuts a connection down.
Definition: vlc_tls.h:381
vlc_dtls.h
add_shortcut
#define add_shortcut(...)
Definition: vlc_plugin.h:291
demux_sys_t::max_dropout
uint16_t max_dropout
Max packet forward misordering.
Definition: rtp.h:75
vlc_cancel
void vlc_cancel(vlc_thread_t thread_id)
Marks a thread as cancelled.
Definition: thread.c:167
vlc_dccp_CreateFD
struct vlc_dtls * vlc_dccp_CreateFD(int fd)
Definition: datagram.c:150
srtp_setkeystring
int srtp_setkeystring(srtp_session_t *s, const char *key, const char *salt)
Sets (or resets) the master key and master salt for a SRTP session from hexadecimal strings.
Definition: srtp.c:352
vlc_sdp_parse
struct vlc_sdp * vlc_sdp_parse(const char *str, size_t length)
Parses an SDP session descriptor.
Definition: sdp.c:268