VLC 4.0.0-dev
rtp.c File Reference

Real-Time Protocol (RTP) demux module for VLC media player. More...

Include dependency graph for rtp.c:

Data Structures

struct  vlc_rtp_es_id
 
struct  vlc_rtp_es_mux
 

Macros

#define IPPROTO_DCCP   33 /* IANA */
 
#define IPPROTO_UDPLITE   136 /* from IANA */
 
#define RTCP_PORT_TEXT   N_("RTCP (local) port")
 
#define RTCP_PORT_LONGTEXT
 
#define SRTP_KEY_TEXT   N_("SRTP key (hexadecimal)")
 
#define SRTP_KEY_LONGTEXT
 
#define SRTP_SALT_TEXT   N_("SRTP salt (hexadecimal)")
 
#define SRTP_SALT_LONGTEXT
 
#define RTP_MAX_SRC_TEXT   N_("Maximum RTP sources")
 
#define RTP_MAX_SRC_LONGTEXT
 
#define RTP_TIMEOUT_TEXT   N_("RTP source timeout (sec)")
 
#define RTP_TIMEOUT_LONGTEXT
 
#define RTP_MAX_DROPOUT_TEXT   N_("Maximum RTP sequence number dropout")
 
#define RTP_MAX_DROPOUT_LONGTEXT
 
#define RTP_MAX_MISORDER_TEXT   N_("Maximum RTP sequence number misordering")
 
#define RTP_MAX_MISORDER_LONGTEXT
 

Functions

static void vlc_rtp_es_id_destroy (struct vlc_rtp_es *es)
 
static void vlc_rtp_es_id_send (struct vlc_rtp_es *es, block_t *block)
 
static struct vlc_rtp_esvlc_rtp_es_request (struct vlc_rtp_pt *pt, const es_format_t *restrict fmt)
 
static void vlc_rtp_es_mux_destroy (struct vlc_rtp_es *es)
 
static void vlc_rtp_es_mux_send (struct vlc_rtp_es *es, block_t *block)
 
static struct vlc_rtp_esvlc_rtp_mux_request (struct vlc_rtp_pt *pt, const char *name)
 
int vlc_rtp_pt_instantiate (vlc_object_t *obj, struct vlc_rtp_pt *restrict pt, const struct vlc_sdp_pt *restrict desc)
 
static int extract_port (char **phost)
 Extracts port number from "[host]:port" or "host:port" strings, and remove brackets from the host name. More...
 
static int Control (demux_t *demux, int query, va_list args)
 Control callback. More...
 
static void Close (vlc_object_t *obj)
 Releases resources. More...
 
static int OpenSDP (vlc_object_t *obj)
 
static int OpenURL (vlc_object_t *obj)
 Probes and initializes. More...
 
int vlc_entry__MODULE_NAME (vlc_set_cb vlc_set, void *opaque)
 
const char * vlc_entry_api_version__MODULE_NAME (void)
 

Variables

static const struct vlc_rtp_es_operations vlc_rtp_es_id_ops
 
static const struct vlc_rtp_es_operations vlc_rtp_es_mux_ops
 
static const struct vlc_rtp_pt_owner_operations vlc_rtp_pt_owner_ops
 

Detailed Description

Real-Time Protocol (RTP) demux module for VLC media player.

Macro Definition Documentation

◆ IPPROTO_DCCP

#define IPPROTO_DCCP   33 /* IANA */

◆ IPPROTO_UDPLITE

#define IPPROTO_UDPLITE   136 /* from IANA */

◆ RTCP_PORT_LONGTEXT

#define RTCP_PORT_LONGTEXT
Value:
N_( \
"RTCP packets will be received on this transport protocol port. " \
"If zero, multiplexed RTP/RTCP is used.")
#define N_(str)
Definition: vlc_fixups.h:450

◆ RTCP_PORT_TEXT

#define RTCP_PORT_TEXT   N_("RTCP (local) port")

◆ RTP_MAX_DROPOUT_LONGTEXT

#define RTP_MAX_DROPOUT_LONGTEXT
Value:
N_( \
"RTP packets will be discarded if they are too much ahead (i.e. in the " \
"future) by this many packets from the last received packet." )

◆ RTP_MAX_DROPOUT_TEXT

#define RTP_MAX_DROPOUT_TEXT   N_("Maximum RTP sequence number dropout")

◆ RTP_MAX_MISORDER_LONGTEXT

#define RTP_MAX_MISORDER_LONGTEXT
Value:
N_( \
"RTP packets will be discarded if they are too far behind (i.e. in the " \
"past) by this many packets from the last received packet." )

◆ RTP_MAX_MISORDER_TEXT

#define RTP_MAX_MISORDER_TEXT   N_("Maximum RTP sequence number misordering")

◆ RTP_MAX_SRC_LONGTEXT

#define RTP_MAX_SRC_LONGTEXT
Value:
N_( \
"How many distinct active RTP sources are allowed at a time." )

◆ RTP_MAX_SRC_TEXT

#define RTP_MAX_SRC_TEXT   N_("Maximum RTP sources")

◆ RTP_TIMEOUT_LONGTEXT

#define RTP_TIMEOUT_LONGTEXT
Value:
N_( \
"How long to wait for any packet before a source is expired.")

◆ RTP_TIMEOUT_TEXT

#define RTP_TIMEOUT_TEXT   N_("RTP source timeout (sec)")

◆ SRTP_KEY_LONGTEXT

#define SRTP_KEY_LONGTEXT
Value:
N_( \
"RTP packets will be authenticated and deciphered "\
"with this Secure RTP master shared secret key. "\
"This must be a 32-character-long hexadecimal string.")

◆ SRTP_KEY_TEXT

#define SRTP_KEY_TEXT   N_("SRTP key (hexadecimal)")

◆ SRTP_SALT_LONGTEXT

#define SRTP_SALT_LONGTEXT
Value:
N_( \
"Secure RTP requires a (non-secret) master salt value. " \
"This must be a 28-character-long hexadecimal string.")

◆ SRTP_SALT_TEXT

#define SRTP_SALT_TEXT   N_("SRTP salt (hexadecimal)")

Function Documentation

◆ Close()

◆ Control()

◆ extract_port()

static int extract_port ( char **  phost)
static

Extracts port number from "[host]:port" or "host:port" strings, and remove brackets from the host name.

Parameters
phostpointer to the string upon entry, pointer to the hostname upon return.
Returns
port number, 0 if missing.

Referenced by OpenURL().

◆ OpenSDP()

◆ OpenURL()

◆ vlc_entry__MODULE_NAME()

int vlc_entry__MODULE_NAME ( vlc_set_cb  vlc_set,
void *  opaque 
)

◆ vlc_entry_api_version__MODULE_NAME()

const char * vlc_entry_api_version__MODULE_NAME ( void  )

◆ vlc_rtp_es_id_destroy()

static void vlc_rtp_es_id_destroy ( struct vlc_rtp_es es)
static

◆ vlc_rtp_es_id_send()

static void vlc_rtp_es_id_send ( struct vlc_rtp_es es,
block_t block 
)
static

◆ vlc_rtp_es_mux_destroy()

static void vlc_rtp_es_mux_destroy ( struct vlc_rtp_es es)
static

◆ vlc_rtp_es_mux_send()

static void vlc_rtp_es_mux_send ( struct vlc_rtp_es es,
block_t block 
)
static

◆ vlc_rtp_es_request()

◆ vlc_rtp_mux_request()

Variable Documentation

◆ vlc_rtp_es_id_ops

const struct vlc_rtp_es_operations vlc_rtp_es_id_ops
static
Initial value:
= {
}
static void vlc_rtp_es_id_send(struct vlc_rtp_es *es, block_t *block)
Definition: rtp.c:74
static void vlc_rtp_es_id_destroy(struct vlc_rtp_es *es)
Definition: rtp.c:66

Referenced by vlc_rtp_es_request().

◆ vlc_rtp_es_mux_ops

const struct vlc_rtp_es_operations vlc_rtp_es_mux_ops
static
Initial value:
= {
}
static void vlc_rtp_es_mux_send(struct vlc_rtp_es *es, block_t *block)
Definition: rtp.c:121
static void vlc_rtp_es_mux_destroy(struct vlc_rtp_es *es)
Definition: rtp.c:113

Referenced by vlc_rtp_mux_request().

◆ vlc_rtp_pt_owner_ops

const struct vlc_rtp_pt_owner_operations vlc_rtp_pt_owner_ops
static
Initial value:
= {
}
static struct vlc_rtp_es * vlc_rtp_mux_request(struct vlc_rtp_pt *pt, const char *name)
Definition: rtp.c:132
static struct vlc_rtp_es * vlc_rtp_es_request(struct vlc_rtp_pt *pt, const es_format_t *restrict fmt)
Definition: rtp.c:89

Referenced by OpenSDP(), and OpenURL().