30 lines
956 B
C++
30 lines
956 B
C++
#ifndef _rtp_header_h_
|
|
#define _rtp_header_h_
|
|
|
|
#include <stdint.h>
|
|
|
|
#define RTP_VERSION 2 // RTP version field must equal 2 (p66)
|
|
|
|
typedef struct _rtp_header_t
|
|
{
|
|
uint32_t v:2; /* protocol version */
|
|
uint32_t p:1; /* padding flag */
|
|
uint32_t x:1; /* header extension flag */
|
|
uint32_t cc:4; /* CSRC count */
|
|
uint32_t m:1; /* marker bit */
|
|
uint32_t pt:7; /* payload type */
|
|
uint32_t seq:16; /* sequence number */
|
|
uint32_t timestamp; /* timestamp */
|
|
uint32_t ssrc; /* synchronization source */
|
|
} rtp_header_t;
|
|
|
|
#define RTP_V(v) ((v >> 30) & 0x03) /* protocol version */
|
|
#define RTP_P(v) ((v >> 29) & 0x01) /* padding flag */
|
|
#define RTP_X(v) ((v >> 28) & 0x01) /* header extension flag */
|
|
#define RTP_CC(v) ((v >> 24) & 0x0F) /* CSRC count */
|
|
#define RTP_M(v) ((v >> 23) & 0x01) /* marker bit */
|
|
#define RTP_PT(v) ((v >> 16) & 0x7F) /* payload type */
|
|
#define RTP_SEQ(v) ((v >> 00) & 0xFFFF) /* sequence number */
|
|
|
|
#endif /* !_rtp_header_h_ */
|