24 #include <ortp/port.h>
25 #include <ortp/str_utils.h>
28 #define UDP_MAX_SIZE 1500
29 #define RTP_FIXED_HEADER_SIZE 12
30 #define RTP_DEFAULT_JITTER_TIME 80
31 #define RTP_DEFAULT_MULTICAST_TTL 5
32 #define RTP_DEFAULT_MULTICAST_LOOPBACK 0
33 #define RTP_DEFAULT_DSCP 0x00
71 uint64_t cum_packet_loss;
74 uint64_t sent_rtcp_packets;
82 uint64_t max_jitter_ts;
83 float jitter_buffer_size_ms;
86 #define RTP_TIMESTAMP_IS_NEWER_THAN(ts1,ts2) \
87 ((uint32_t)((uint32_t)(ts1) - (uint32_t)(ts2))< (uint32_t)(1<<31))
89 #define RTP_TIMESTAMP_IS_STRICTLY_NEWER_THAN(ts1,ts2) \
90 ( ((uint32_t)((uint32_t)(ts1) - (uint32_t)(ts2))< (uint32_t)(1<<31)) && (ts1)!=(ts2) )
92 #define TIME_IS_NEWER_THAN(t1,t2) RTP_TIMESTAMP_IS_NEWER_THAN(t1,t2)
94 #define TIME_IS_STRICTLY_NEWER_THAN(t1,t2) RTP_TIMESTAMP_IS_STRICTLY_NEWER_THAN(t1,t2)
103 #define rtp_set_markbit(mp,value) ((rtp_header_t*)((mp)->b_rptr))->markbit=(value)
104 #define rtp_set_seqnumber(mp,seq) ((rtp_header_t*)((mp)->b_rptr))->seq_number=(seq)
105 #define rtp_set_timestamp(mp,ts) ((rtp_header_t*)((mp)->b_rptr))->timestamp=(ts)
106 #define rtp_set_ssrc(mp,_ssrc) ((rtp_header_t*)((mp)->b_rptr))->ssrc=(_ssrc)
107 ORTP_PUBLIC
void rtp_add_csrc(
mblk_t *mp ,uint32_t csrc);
108 #define rtp_set_payload_type(mp,pt) ((rtp_header_t*)((mp)->b_rptr))->paytype=(pt)
110 #define rtp_get_markbit(mp) (((rtp_header_t*)((mp)->b_rptr))->markbit)
111 #define rtp_get_extbit(mp) (((rtp_header_t*)((mp)->b_rptr))->extbit)
112 #define rtp_get_timestamp(mp) (((rtp_header_t*)((mp)->b_rptr))->timestamp)
113 #define rtp_get_seqnumber(mp) (((rtp_header_t*)((mp)->b_rptr))->seq_number)
114 #define rtp_get_payload_type(mp) (((rtp_header_t*)((mp)->b_rptr))->paytype)
115 #define rtp_get_ssrc(mp) (((rtp_header_t*)((mp)->b_rptr))->ssrc)
116 #define rtp_get_cc(mp) (((rtp_header_t*)((mp)->b_rptr))->cc)
117 #define rtp_get_csrc(mp, idx) (((rtp_header_t*)((mp)->b_rptr))->csrc[idx])
119 ORTP_PUBLIC
int rtp_get_payload(
mblk_t *packet,
unsigned char **start);
120 ORTP_PUBLIC
int rtp_get_extheader(
mblk_t *packet, uint16_t *profile, uint8_t **start_ext);