rtp.c File Reference

Include dependency graph for rtp.c:


Data Structures

struct  sout_stream_sys_t
struct  rtp_sink_t
struct  sout_stream_id_t

Defines

#define IPPROTO_DCCP   33
#define IPPROTO_UDPLITE   136
#define DEST_TEXT   N_("Destination")
#define DEST_LONGTEXT
#define SDP_TEXT   N_("SDP")
#define SDP_LONGTEXT
#define SAP_TEXT   N_("SAP announcing")
#define SAP_LONGTEXT   N_("Announce this session with SAP.")
#define MUX_TEXT   N_("Muxer")
#define MUX_LONGTEXT
#define NAME_TEXT   N_("Session name")
#define NAME_LONGTEXT
#define DESC_TEXT   N_("Session description")
#define DESC_LONGTEXT
#define URL_TEXT   N_("Session URL")
#define URL_LONGTEXT
#define EMAIL_TEXT   N_("Session email")
#define EMAIL_LONGTEXT
#define PHONE_TEXT   N_("Session phone number")
#define PHONE_LONGTEXT
#define PORT_TEXT   N_("Port")
#define PORT_LONGTEXT
#define PORT_AUDIO_TEXT   N_("Audio port")
#define PORT_AUDIO_LONGTEXT
#define PORT_VIDEO_TEXT   N_("Video port")
#define PORT_VIDEO_LONGTEXT
#define TTL_TEXT   N_("Hop limit (TTL)")
#define TTL_LONGTEXT
#define RTCP_MUX_TEXT   N_("RTP/RTCP multiplexing")
#define RTCP_MUX_LONGTEXT
#define PROTO_TEXT   N_("Transport protocol")
#define PROTO_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 RFC3016_TEXT   N_("MP4A LATM")
#define RFC3016_LONGTEXT
#define SOUT_CFG_PREFIX   "sout-rtp-"
#define MAX_EMPTY_BLOCKS   200

Typedefs

typedef int(*) pf_rtp_packetizer_t (sout_stream_id_t *, block_t *)

Functions

static int Open (vlc_object_t *)
static void Close (vlc_object_t *)
int vlc_entry__main (module_t *p_module)
const char * vlc_entry_license__main (void)
static sout_stream_id_tAdd (sout_stream_t *p_stream, es_format_t *p_fmt)
 Add an ES as a new RTP stream.
static int Del (sout_stream_t *, sout_stream_id_t *)
static int Send (sout_stream_t *, sout_stream_id_t *, block_t *)
static sout_stream_id_tMuxAdd (sout_stream_t *p_stream, es_format_t *p_fmt)
 Add an ES to a non-RTP muxed stream.
static int MuxDel (sout_stream_t *p_stream, sout_stream_id_t *id)
 Remove an ES from a non-RTP muxed stream.
static int MuxSend (sout_stream_t *, sout_stream_id_t *, block_t *)
static sout_access_out_tGrabberCreate (sout_stream_t *p_sout)
static void * ThreadSend (vlc_object_t *p_this)
static void SDPHandleUrl (sout_stream_t *, const char *)
static int SapSetup (sout_stream_t *p_stream)
static int FileSetup (sout_stream_t *p_stream)
static int HttpSetup (sout_stream_t *p_stream, const vlc_url_t *)
char * SDPGenerate (const sout_stream_t *p_stream, const char *rtsp_url)
static void sprintf_hexa (char *s, uint8_t *p_data, int i_data)
static void rtp_set_ptime (sout_stream_id_t *id, unsigned ptime_ms, size_t bytes)
 Shrink the MTU down to a fixed packetization time (for audio).
static int HttpCallback (httpd_file_sys_t *p_args, httpd_file_t *, uint8_t *p_request, uint8_t **pp_data, int *pi_data)
 This function is the main HTTPD Callback used by the HTTP Interface.
int rtp_add_sink (sout_stream_id_t *id, int fd, bool rtcp_mux)
void rtp_del_sink (sout_stream_id_t *id, int fd)
uint16_t rtp_get_seq (const sout_stream_id_t *id)
unsigned rtp_get_num (const sout_stream_id_t *id)
void rtp_packetize_common (sout_stream_id_t *id, block_t *out, int b_marker, int64_t i_pts)
void rtp_packetize_send (sout_stream_id_t *id, block_t *out)
size_t rtp_mtu (const sout_stream_id_t *id)
 
Returns:
configured max RTP payload size (including payload type-specific headers, excluding RTP and transport headers)

static ssize_t AccessOutGrabberWriteBuffer (sout_stream_t *p_stream, const block_t *p_buffer)
static ssize_t AccessOutGrabberWrite (sout_access_out_t *p_access, block_t *p_buffer)

Variables

static const char *const ppsz_protos []
static const char *const ppsz_protocols []
static const char *const ppsz_sout_options []

Define Documentation

#define DESC_LONGTEXT

Value:

N_( \
    "This allows you to give a short description with details about the stream, " \
    "that will be announced in the SDP (Session Descriptor)." )

#define DESC_TEXT   N_("Session description")

#define DEST_LONGTEXT

Value:

N_( \
    "This is the output URL that will be used." )

#define DEST_TEXT   N_("Destination")

#define EMAIL_LONGTEXT

Value:

N_( \
    "This allows you to give a contact mail address for the stream, that will " \
    "be announced in the SDP (Session Descriptor)." )

#define EMAIL_TEXT   N_("Session email")

#define IPPROTO_DCCP   33

#define IPPROTO_UDPLITE   136

#define MAX_EMPTY_BLOCKS   200

#define MUX_LONGTEXT

Value:

N_( \
    "This allows you to specify the muxer used for the streaming output. " \
    "Default is to use no muxer (standard RTP stream)." )

#define MUX_TEXT   N_("Muxer")

#define NAME_LONGTEXT

Value:

N_( \
    "This is the name of the session that will be announced in the SDP " \
    "(Session Descriptor)." )

#define NAME_TEXT   N_("Session name")

#define PHONE_LONGTEXT

Value:

N_( \
    "This allows you to give a contact telephone number for the stream, that will " \
    "be announced in the SDP (Session Descriptor)." )

#define PHONE_TEXT   N_("Session phone number")

#define PORT_AUDIO_LONGTEXT

Value:

N_( \
    "This allows you to specify the default audio port for the RTP streaming." )

#define PORT_AUDIO_TEXT   N_("Audio port")

#define PORT_LONGTEXT

Value:

N_( \
    "This allows you to specify the base port for the RTP streaming." )

#define PORT_TEXT   N_("Port")

#define PORT_VIDEO_LONGTEXT

Value:

N_( \
    "This allows you to specify the default video port for the RTP streaming." )

#define PORT_VIDEO_TEXT   N_("Video port")

#define PROTO_LONGTEXT

Value:

N_( \
    "This selects which transport protocol to use for RTP." )

#define PROTO_TEXT   N_("Transport protocol")

#define RFC3016_LONGTEXT

Value:

N_( \
    "This allows you to stream MPEG4 LATM audio streams (see RFC3016)." )

#define RFC3016_TEXT   N_("MP4A LATM")

#define RTCP_MUX_LONGTEXT

Value:

N_( \
    "This sends and receives RTCP packet multiplexed over the same port " \
    "as RTP packets." )

#define RTCP_MUX_TEXT   N_("RTP/RTCP multiplexing")

#define SAP_LONGTEXT   N_("Announce this session with SAP.")

#define SAP_TEXT   N_("SAP announcing")

#define SDP_LONGTEXT

Value:

N_( \
    "This allows you to specify how the SDP (Session Descriptor) for this RTP "\
    "session will be made available. You must use an url: http://location to " \
    "access the SDP via HTTP, rtsp://location for RTSP access, and sap:// " \
    "for the SDP to be announced via SAP." )

#define SDP_TEXT   N_("SDP")

#define SOUT_CFG_PREFIX   "sout-rtp-"

#define SRTP_KEY_LONGTEXT

Value:

N_( \
    "RTP packets will be integrity-protected and ciphered "\
    "with this Secure RTP master shared secret key.")

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

#define SRTP_SALT_LONGTEXT

Value:

N_( \
    "Secure RTP requires a (non-secret) master salt value.")

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

#define TTL_LONGTEXT

Value:

N_( \
    "This is the hop limit (also known as \"Time-To-Live\" or TTL) of " \
    "the multicast packets sent by the stream output (0 = use operating " \
    "system built-in default).")

#define TTL_TEXT   N_("Hop limit (TTL)")

#define URL_LONGTEXT

Value:

N_( \
    "This allows you to give an URL with more details about the stream " \
    "(often the website of the streaming organization), that will " \
    "be announced in the SDP (Session Descriptor)." )

#define URL_TEXT   N_("Session URL")


Typedef Documentation

typedef int(*) pf_rtp_packetizer_t(sout_stream_id_t *, block_t *)


Function Documentation

static ssize_t AccessOutGrabberWrite ( sout_access_out_t p_access,
block_t p_buffer 
) [static]

static ssize_t AccessOutGrabberWriteBuffer ( sout_stream_t p_stream,
const block_t p_buffer 
) [static]

static sout_stream_id_t * Add ( sout_stream_t ,
es_format_t  
) [static]

Add an ES as a new RTP stream.

static void Close ( vlc_object_t  )  [static]

static int Del ( sout_stream_t ,
sout_stream_id_t  
) [static]

static int FileSetup ( sout_stream_t p_stream  )  [static]

static sout_access_out_t * GrabberCreate ( sout_stream_t p_sout  )  [static]

static int HttpSetup ( sout_stream_t p_stream,
const vlc_url_t  
) [static]

static sout_stream_id_t * MuxAdd ( sout_stream_t ,
es_format_t  
) [static]

Add an ES to a non-RTP muxed stream.

static int MuxDel ( sout_stream_t ,
sout_stream_id_t  
) [static]

Remove an ES from a non-RTP muxed stream.

static int MuxSend ( sout_stream_t ,
sout_stream_id_t ,
block_t  
) [static]

static int Open ( vlc_object_t  )  [static]

int rtp_add_sink ( sout_stream_id_t id,
int  fd,
bool  rtcp_mux 
)

void rtp_del_sink ( sout_stream_id_t id,
int  fd 
)

unsigned rtp_get_num ( const sout_stream_id_t id  ) 

uint16_t rtp_get_seq ( const sout_stream_id_t id  ) 

size_t rtp_mtu ( const sout_stream_id_t id  ) 

Returns:
configured max RTP payload size (including payload type-specific headers, excluding RTP and transport headers)

void rtp_packetize_common ( sout_stream_id_t id,
block_t out,
int  b_marker,
int64_t  i_pts 
)

void rtp_packetize_send ( sout_stream_id_t id,
block_t out 
)

static void rtp_set_ptime ( sout_stream_id_t id,
unsigned  ptime_ms,
size_t  bytes 
) [static]

Shrink the MTU down to a fixed packetization time (for audio).

static int SapSetup ( sout_stream_t p_stream  )  [static]

char* SDPGenerate ( const sout_stream_t p_stream,
const char *  rtsp_url 
)

static void SDPHandleUrl ( sout_stream_t ,
const char *   
) [static]

static int Send ( sout_stream_t ,
sout_stream_id_t ,
block_t  
) [static]

static void sprintf_hexa ( char *  s,
uint8_t *  p_data,
int  i_data 
) [static]

static void * ThreadSend ( vlc_object_t p_this  )  [static]

int vlc_entry__main ( module_t p_module  ) 

const char* vlc_entry_license__main ( void   ) 


Variable Documentation

const char* const ppsz_protocols[] [static]

Initial value:

 {
    "DCCP", "SCTP", "TCP", "UDP", "UDP-Lite",
}

const char* const ppsz_protos[] [static]

Initial value:

 {
    "dccp", "sctp", "tcp", "udp", "udplite",
}

const char* const ppsz_sout_options[] [static]

Initial value:

 {
    "dst", "name", "port", "port-audio", "port-video", "*sdp", "ttl", "mux",
    "sap", "description", "url", "email", "phone",
    "proto", "rtcp-mux", "key", "salt",
    "mp4a-latm", NULL
}


Generated on Wed Aug 13 08:03:30 2008 for VLC by  doxygen 1.5.1