338#define set_rtp_parser_callback(cb) \
340 vlc_rtp_parser_cb cb__ = (cb); (void) cb__; \
342 set_capability("rtp parser", 0) \
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:155
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:91
void rtp_queue(rtp_sys_t *, rtp_session_t *, block_t *)
Receives an RTP packet and queues it.
Definition: session.c:202
void * rtp_dgram_thread(void *data)
RTP/RTCP session thread for datagram sockets.
Definition: input.c:100
bool rtp_dequeue(rtp_sys_t *, const rtp_session_t *, vlc_tick_t *)
void rtp_session_destroy(struct vlc_logger *, rtp_session_t *)
Destroys an RTP session.
Definition: session.c:75
rtp_session_t * rtp_session_create(void)
Creates a new RTP session.
Definition: session.c:57
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
const char name[16]
Definition: httpd.c:1281
State for a RTP session:
Definition: session.c:40
vlc_tick_t timeout
Definition: rtp.h:372
struct vlc_demux_chained_t * chained_demux
Definition: rtp.h:364
uint16_t max_dropout
Max packet forward misordering.
Definition: rtp.h:373
struct vlc_dtls * rtcp_sock
Definition: rtp.h:369
rtp_session_t * session
Definition: rtp.h:363
struct vlc_dtls * rtp_sock
Definition: rtp.h:368
uint8_t max_src
Max simultaneous RTP sources.
Definition: rtp.h:375
uint16_t max_misorder
Max packet backward misordering.
Definition: rtp.h:374
struct vlc_logger * logger
Definition: rtp.h:361
vlc_thread_t thread
Definition: rtp.h:370
Definition: demux_chained.c:36
Datagram socket.
Definition: vlc_dtls.h:29
Definition: vlc_frame.h:123
uint8_t * p_buffer
Payload start.
Definition: vlc_frame.h:126
Definition: messages.c:85
VLC object common members.
Definition: vlc_objects.h:45
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
Thread handle.
Definition: vlc_threads.h:160
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45