|
VLC
4.0.0-dev
|
RTP session handling. More...

Data Structures | |
| struct | rtp_session_t |
| State for a RTP session: More... | |
| struct | rtp_source_t |
| State for an RTP source. More... | |
Typedefs | |
| typedef struct rtp_source_t | rtp_source_t |
Functions | |
| static rtp_source_t * | rtp_source_create (demux_t *demux, const rtp_session_t *session, uint32_t ssrc, uint16_t init_seq) |
| Initializes a new RTP source within an RTP session. More... | |
| static void | rtp_source_destroy (demux_t *demux, const rtp_session_t *session, rtp_source_t *source) |
| Destroys an RTP source and its associated streams. More... | |
| static void | rtp_decode (demux_t *demux, const rtp_session_t *session, rtp_source_t *src) |
| Decodes one RTP packet. More... | |
| rtp_session_t * | rtp_session_create (demux_t *demux) |
| Creates a new RTP session. More... | |
| void | rtp_session_destroy (demux_t *demux, rtp_session_t *session) |
| Destroys an RTP session. More... | |
| static void * | no_init (demux_t *demux) |
| static void | no_destroy (demux_t *demux, void *opaque) |
| static void | no_decode (demux_t *demux, void *opaque, block_t *block) |
| int | rtp_add_type (demux_t *demux, rtp_session_t *ses, const rtp_pt_t *pt) |
| Adds a payload type to an RTP session. More... | |
| static uint16_t | rtp_seq (const block_t *block) |
| static uint32_t | rtp_timestamp (const block_t *block) |
| static const struct rtp_pt_t * | rtp_find_ptype (const rtp_session_t *session, rtp_source_t *source, const block_t *block, void **pt_data) |
| void | rtp_queue (demux_t *demux, rtp_session_t *session, block_t *block) |
| Receives an RTP packet and queues it. More... | |
| bool | rtp_dequeue (demux_t *demux, const rtp_session_t *session, vlc_tick_t *restrict deadlinep) |
| Dequeues RTP packets and pass them to decoder. More... | |
RTP session handling.
| typedef struct rtp_source_t rtp_source_t |
References block_Release().
Referenced by rtp_add_type().
|
static |
Referenced by rtp_add_type().
|
static |
Referenced by 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.
References rtp_pt_t::decode, rtp_pt_t::destroy, rtp_pt_t::frequency, rtp_pt_t::header, rtp_pt_t::init, msg_Dbg, msg_Err, no_decode(), no_destroy(), no_init(), rtp_pt_t::number, rtp_session_t::ptc, rtp_session_t::ptv, and rtp_session_t::srcc.
Referenced by rtp_autodetect().
|
static |
Decodes one RTP packet.
References BLOCK_FLAG_DISCONTINUITY, block_Release(), rtp_source_t::blocks, rtp_pt_t::decode, rtp_pt_t::frequency, GetWBE, rtp_pt_t::header, block_t::i_buffer, block_t::i_flags, block_t::i_pts, rtp_source_t::last_seq, msg_Dbg, msg_Warn, block_t::p_buffer, block_t::p_next, rtp_source_t::ref_ntp, rtp_source_t::ref_rtp, rtp_find_ptype(), rtp_ptype(), rtp_seq(), rtp_timestamp(), and vlc_tick_from_samples().
Referenced by rtp_dequeue().
| bool rtp_dequeue | ( | demux_t * | demux, |
| const rtp_session_t * | session, | ||
| vlc_tick_t *restrict | deadlinep | ||
| ) |
Dequeues RTP packets and pass them to decoder.
Not cancellation-safe(?). A packet is decoded if it is the next in sequence order, or if we have given up waiting on the missing packets (time out) from the last one already decoded.
| demux | VLC demux object |
| session | RTP session receiving the packet |
| deadlinep | pointer to deadline to call rtp_dequeue() again |
References rtp_source_t::blocks, rtp_pt_t::frequency, block_t::i_pts, rtp_source_t::jitter, rtp_source_t::last_seq, rtp_decode(), rtp_find_ptype(), rtp_seq(), rtp_session_t::srcc, rtp_session_t::srcv, VLC_TICK_FROM_MS, vlc_tick_from_samples(), and vlc_tick_now().
|
static |
References rtp_pt_t::number, rtp_source_t::opaque, rtp_session_t::ptc, rtp_session_t::ptv, and rtp_ptype().
Referenced by rtp_decode(), rtp_dequeue(), and rtp_queue().
| void rtp_queue | ( | demux_t * | demux, |
| rtp_session_t * | session, | ||
| block_t * | block | ||
| ) |
Receives an RTP packet and queues it.
Not a cancellation point.
| demux | VLC demux object |
| session | RTP session receiving the packet |
| block | RTP packet including the RTP header |
References rtp_source_t::bad_seq, block_ChainRelease(), block_Release(), rtp_source_t::blocks, freq, rtp_pt_t::frequency, GetDWBE, block_t::i_buffer, block_t::i_pts, rtp_source_t::jitter, rtp_source_t::last_rx, rtp_source_t::last_seq, rtp_source_t::last_ts, demux_sys_t::max_dropout, demux_sys_t::max_misorder, rtp_source_t::max_seq, demux_sys_t::max_src, msg_Dbg, msg_Warn, block_t::p_buffer, block_t::p_next, stream_t::p_sys, rtp_find_ptype(), rtp_seq(), rtp_source_create(), rtp_source_destroy(), rtp_timestamp(), samples_from_vlc_tick(), rtp_session_t::srcc, rtp_session_t::srcv, rtp_source_t::ssrc, demux_sys_t::timeout, and vlc_tick_now().
Referenced by rtp_process().
|
inlinestatic |
References GetWBE, block_t::i_buffer, and block_t::p_buffer.
Referenced by rtp_decode(), rtp_dequeue(), and rtp_queue().
| rtp_session_t* rtp_session_create | ( | demux_t * | ) |
Creates a new RTP session.
References rtp_session_t::ptc, rtp_session_t::ptv, rtp_session_t::srcc, and rtp_session_t::srcv.
| void rtp_session_destroy | ( | demux_t * | demux, |
| rtp_session_t * | session | ||
| ) |
Destroys an RTP session.
References rtp_session_t::ptv, rtp_source_destroy(), rtp_session_t::srcc, and rtp_session_t::srcv.
|
static |
Initializes a new RTP source within an RTP session.
References rtp_source_t::bad_seq, rtp_source_t::blocks, rtp_pt_t::init, rtp_source_t::jitter, rtp_source_t::last_seq, rtp_source_t::max_seq, msg_Dbg, rtp_source_t::opaque, rtp_session_t::ptc, rtp_session_t::ptv, rtp_source_t::ref_ntp, rtp_source_t::ref_rtp, and rtp_source_t::ssrc.
Referenced by rtp_queue().
|
static |
Destroys an RTP source and its associated streams.
References block_ChainRelease(), rtp_source_t::blocks, rtp_pt_t::destroy, msg_Dbg, rtp_source_t::opaque, rtp_session_t::ptc, rtp_session_t::ptv, and rtp_source_t::ssrc.
Referenced by rtp_queue(), and rtp_session_destroy().
|
inlinestatic |
References GetDWBE, block_t::i_buffer, and block_t::p_buffer.
Referenced by rtp_decode(), and rtp_queue().
1.8.17