rtp.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 typedef struct rtp_pt_t rtp_pt_t;
00024 typedef struct rtp_session_t rtp_session_t;
00025
00026
00027 struct rtp_pt_t
00028 {
00029 void *(*init) (demux_t *);
00030 void (*destroy) (demux_t *, void *);
00031 void (*decode) (demux_t *, void *, block_t *);
00032 uint32_t frequency;
00033 uint8_t number;
00034 };
00035 int rtp_autodetect (demux_t *, rtp_session_t *, const block_t *);
00036
00037 static inline uint8_t rtp_ptype (const block_t *block)
00038 {
00039 return block->p_buffer[1] & 0x7F;
00040 }
00041
00042
00043 rtp_session_t *rtp_session_create (demux_t *);
00044 void rtp_session_destroy (demux_t *, rtp_session_t *);
00045 void rtp_queue (demux_t *, rtp_session_t *, block_t *);
00046 bool rtp_dequeue (demux_t *, const rtp_session_t *, mtime_t *);
00047 int rtp_add_type (demux_t *demux, rtp_session_t *ses, const rtp_pt_t *pt);
00048
00049 void *rtp_thread (void *data);
00050
00051
00052 struct demux_sys_t
00053 {
00054 rtp_session_t *session;
00055 #ifdef HAVE_SRTP
00056 struct srtp_session_t *srtp;
00057 #endif
00058 int fd;
00059 int rtcp_fd;
00060 vlc_thread_t thread;
00061 vlc_timer_t timer;
00062 vlc_mutex_t lock;
00063
00064 mtime_t timeout;
00065 unsigned caching;
00066 uint16_t max_dropout;
00067 uint16_t max_misorder;
00068 uint8_t max_src;
00069 bool framed_rtp;
00070 bool thread_ready;
00071 #if 0
00072 bool dead;
00073 #endif
00074 };
00075