12 #ifndef ROC_RTP_HEADERS_H_
13 #define ROC_RTP_HEADERS_H_
57 Flag_VersionShift = 6,
58 Flag_VersionMask = 0x3,
66 Flag_PaddingShift = 5,
67 Flag_PaddingMask = 0x1,
75 Flag_ExtensionShift = 4,
76 Flag_ExtensionMask = 0x1,
95 MPT_PayloadTypeShift = 0,
96 MPT_PayloadTypeMask = 0x7f
119 return sizeof(*this) + num_csrc() *
sizeof(uint32_t);
124 memset(
this, 0,
sizeof(*
this));
129 return ((flags_ >> Flag_VersionShift) & Flag_VersionMask);
135 flags_ &= ~(Flag_VersionMask << Flag_VersionShift);
136 flags_ |= (v << Flag_VersionShift);
141 return (flags_ & (Flag_PaddingMask << Flag_PaddingShift));
146 flags_ &= ~(Flag_PaddingMask << Flag_PaddingShift);
147 flags_ |= ((v ? 1 : 0) << Flag_PaddingShift);
152 return (flags_ & (Flag_ExtensionMask << Flag_ExtensionShift));
157 return ((flags_ >> Flag_CSRCShift) & Flag_CSRCMask);
162 return ((mpt_ >> MPT_PayloadTypeShift) & MPT_PayloadTypeMask);
168 mpt_ &= ~(MPT_PayloadTypeMask << MPT_PayloadTypeShift);
169 mpt_ |= (pt << MPT_PayloadTypeShift);
174 return (mpt_ & (MPT_MarkerMask << MPT_MarkerShift));
179 mpt_ &= ~(MPT_MarkerMask << MPT_MarkerShift);
180 mpt_ |= ((!!m) << MPT_MarkerShift);
214 uint32_t
csrc(
size_t index)
const {
#define ROC_ATTR_PACKED
Structure's fields are packed.
uint16_t hton16(uint16_t v)
Host to network (16 bits).
uint32_t ntoh32(uint32_t v)
Network to host (32 bits).
uint16_t ntoh16(uint16_t v)
Network to host (16 bits).
uint32_t hton32(uint32_t v)
Host to network (32 bits).
Version
RTP protocol version.
PayloadType
RTP payload type.
@ PayloadType_L16_Mono
Audio, 16-bit samples, 1 channel, 44100 Hz.
@ PayloadType_L16_Stereo
Audio, 16-bit samples, 2 channels, 44100 Hz.
#define roc_panic_if(x)
Panic if condition is true.
Commonly used types and functions.