session.c File Reference

RTP session handling. More...

Include dependency graph for session.c:


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_trtp_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.
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.
static void rtp_decode (demux_t *, const rtp_session_t *, rtp_source_t *)
rtp_session_trtp_session_create (demux_t *demux)
 Creates a new RTP session.
void rtp_session_destroy (demux_t *demux, rtp_session_t *session)
 Destroys an RTP session.
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.
static uint16_t rtp_seq (const block_t *block)
static uint32_t rtp_timestamp (const block_t *block)
static struct rtp_pt_trtp_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.
bool rtp_dequeue (demux_t *demux, const rtp_session_t *session, mtime_t *restrict deadlinep)
 Dequeues an RTP packet and pass it to decoder.

Detailed Description

RTP session handling.


Typedef Documentation

typedef struct rtp_source_t rtp_source_t


Function Documentation

static void no_decode ( demux_t demux,
void *  opaque,
block_t block 
) [static]

References block_Release().

Referenced by rtp_add_type().

static void no_destroy ( demux_t demux,
void *  opaque 
) [static]

Referenced by rtp_add_type().

static void* no_init ( demux_t demux  )  [static]

Referenced by rtp_add_type().

int rtp_add_type ( demux_t demux,
rtp_session_t ses,
const rtp_pt_t pt 
)

static void rtp_decode ( demux_t demux,
const rtp_session_t session,
rtp_source_t src 
) [static]

bool rtp_dequeue ( demux_t demux,
const rtp_session_t session,
mtime_t *restrict  deadlinep 
)

Dequeues an RTP packet and pass it to decoder.

Not cancellation-safe(?).

Parameters:
demux VLC demux object
session RTP session receiving the packet
deadlinep pointer to deadline to call rtp_dequeue() again
Returns:
true if the buffer is not empty, false otherwise. In the later case, *deadlinep is undefined.

References rtp_source_t::blocks, CLOCK_FREQ, rtp_pt_t::frequency, i, block_t::i_pts, rtp_source_t::jitter, rtp_source_t::last_seq, mdate(), rtp_decode(), rtp_find_ptype(), rtp_seq(), src, rtp_session_t::srcc, and rtp_session_t::srcv.

static struct rtp_pt_t* rtp_find_ptype ( const rtp_session_t session,
rtp_source_t source,
const block_t block,
void **  pt_data 
) [static, read]

void rtp_queue ( demux_t demux,
rtp_session_t session,
block_t block 
)

static uint16_t rtp_seq ( const block_t block  )  [inline, static]

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 
)

static rtp_source_t * rtp_source_create ( demux_t demux,
const rtp_session_t session,
uint32_t  ssrc,
uint16_t  init_seq 
) [static]

static void rtp_source_destroy ( demux_t demux,
const rtp_session_t session,
rtp_source_t source 
) [static]

static uint32_t rtp_timestamp ( const block_t block  )  [inline, static]

References GetDWBE, block_t::i_buffer, and block_t::p_buffer.

Referenced by rtp_decode(), and rtp_queue().


Generated on Tue May 25 08:05:08 2010 for VLC by  doxygen 1.5.6