338#define set_rtp_parser_callback(cb) \
340 vlc_rtp_parser_cb cb__ = (cb); (void) cb__; \
342 set_capability("rtp parser", 0) \
362#define RTP_MAX_SRC_DEFAULT 1
363#define RTP_MAX_DROPOUT_DEFAULT 3000
364#define RTP_MAX_TIMEOUT_DEFAULT 5
365#define RTP_MAX_MISORDER_DEFAULT 100
void rtp_autodetect(vlc_object_t *, rtp_session_t *, const struct vlc_rtp_pt_owner *restrict)
static void * vlc_rtp_pt_begin(struct vlc_rtp_pt *pt)
Binds a payload type to a source.
Definition rtp.h:195
static void vlc_rtp_es_destroy(struct vlc_rtp_es *es)
Destroys an vlc_rtp_es.
Definition rtp.h:298
static uint8_t rtp_ptype(const block_t *block)
Definition rtp.h:351
static struct vlc_rtp_es * vlc_rtp_pt_request_mux(struct vlc_rtp_pt *pt, const char *name)
Starts a complete multiplex.
Definition rtp.h:256
static void vlc_rtp_pt_end(struct vlc_rtp_pt *pt, void *data)
Unbinds a payload type from a source.
Definition rtp.h:210
void vlc_rtp_pt_release(struct vlc_rtp_pt *pt)
Destroys a payload type parameter set.
Definition rtpfmt.c:154
int(* vlc_rtp_parser_cb)(vlc_object_t *obj, struct vlc_rtp_pt *pt, const struct vlc_sdp_pt *desc)
Callback prototype for RTP parser module.
Definition rtp.h:332
static void vlc_rtp_es_send(struct vlc_rtp_es *es, block_t *block)
Sends coded data for output.
Definition rtp.h:310
int vlc_rtp_pt_instantiate(vlc_object_t *obj, struct vlc_rtp_pt *restrict pt, const struct vlc_sdp_pt *restrict desc)
Definition rtp.c:158
static void vlc_rtp_pt_decode(struct vlc_rtp_pt *pt, void *data, block_t *pkt, const struct vlc_rtp_pktinfo *restrict info)
Processes a payload packet.
Definition rtp.h:224
struct vlc_rtp_es *const vlc_rtp_es_dummy
A (pointer to a) dummy output that discards data.
Definition rtpfmt.c:332
static struct vlc_rtp_es * vlc_rtp_pt_request_es(struct vlc_rtp_pt *pt, const es_format_t *restrict fmt)
Starts an elementary stream (ES).
Definition rtp.h:242
int rtp_add_type(rtp_session_t *ses, rtp_pt_t *pt)
Adds a payload type to an RTP session.
Definition session.c:112
void rtp_queue(struct vlc_logger *, rtp_session_t *, block_t *)
Receives an RTP packet and queues it.
Definition session.c:223
void * rtp_dgram_thread(void *data)
RTP/RTCP session thread for datagram sockets.
Definition input.c:103
void rtp_session_destroy(struct vlc_logger *, rtp_session_t *)
Destroys an RTP session.
Definition session.c:96
rtp_session_t * rtp_session_create(void)
Definition session.c:85
rtp_session_t * rtp_session_create_custom(uint16_t max_dropout, uint16_t max_misorder, uint8_t max_src, vlc_tick_t timeout)
Creates a new RTP session.
Definition session.c:62
int vlc_rtp_add_media_types(vlc_object_t *obj, rtp_session_t *ses, const struct vlc_sdp_media *media, const struct vlc_rtp_pt_owner *restrict owner)
Registers all payload types declared in an SDP media.
Definition rtpfmt.c:229
bool rtp_dequeue(struct vlc_logger *, const rtp_session_t *, vlc_tick_t, vlc_tick_t *)
const char name[16]
Definition httpd.c:1298
State for a RTP session:
Definition session.c:40
Definition demux_chained.c:36
Definition vlc_frame.h:123
uint8_t * p_buffer
Payload start.
Definition vlc_frame.h:126
VLC object common members.
Definition vlc_objects.h:53
RTP abstract output stream operations.
Definition rtp.h:268
void(* destroy)(struct vlc_rtp_es *es)
Destroys the corresponding vlc_rtp_es.
Definition rtp.h:274
void(* send)(struct vlc_rtp_es *es, block_t *block)
Passes data for processing to a vlc_rtp_es.
Definition rtp.h:280
RTP abstract output stream.
Definition rtp.h:289
const struct vlc_rtp_es_operations * ops
Definition rtp.h:290
RTP packet infos.
Definition rtp.h:76
bool m
M bit from the RTP header.
Definition rtp.h:77
RTP payload type operations.
Definition rtp.h:86
void *(* init)(struct vlc_rtp_pt *pt)
Starts using a payload type.
Definition rtp.h:110
void(* release)(struct vlc_rtp_pt *pt)
Releases the payload type.
Definition rtp.h:95
void(* decode)(struct vlc_rtp_pt *pt, void *data, block_t *block, const struct vlc_rtp_pktinfo *restrict info)
Processes a data payload.
Definition rtp.h:130
void(* destroy)(struct vlc_rtp_pt *pt, void *data)
Stops using a payload type.
Definition rtp.h:120
RTP payload type owner operations.
Definition rtp.h:143
struct vlc_rtp_es *(* request_mux)(struct vlc_rtp_pt *pt, const char *name)
Definition rtp.h:146
struct vlc_rtp_es *(* request_es)(struct vlc_rtp_pt *pt, const es_format_t *restrict fmt)
Definition rtp.h:144
RTP payload type owner.
Definition rtp.h:155
void * data
Owner private data.
Definition rtp.h:157
const struct vlc_rtp_pt_owner_operations * ops
Owner callbacks.
Definition rtp.h:156
RTP payload type.
Definition rtp.h:167
void * opaque
Private data pointer.
Definition rtp.h:169
uint32_t frequency
RTP clock rate (Hz)
Definition rtp.h:171
uint8_t number
RTP payload type number within the session (0-127)
Definition rtp.h:172
struct vlc_rtp_pt_owner owner
Definition rtp.h:170
const struct vlc_rtp_pt_operations * ops
Payload format callbacks.
Definition rtp.h:168
uint8_t channel_count
Channel count (zero if unspecified)
Definition rtp.h:173
Payload type mapping.
Definition rtp.h:62
char name[16]
RTP payload format name, i.e.
Definition rtp.h:64
unsigned char channel_count
Number of channels (0 if unspecified)
Definition rtp.h:66
const struct vlc_sdp_media * media
Containant SDP media description.
Definition rtp.h:63
const char * parameters
Format parameters from the a=fmtp line.
Definition rtp.h:67
unsigned int clock_rate
RTP clock rate (in Hertz)
Definition rtp.h:65
int64_t vlc_tick_t
High precision date or time interval.
Definition vlc_tick.h:48