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 (uint32_t)
sizeof(*this) +
num_csrc() * (uint32_t)
sizeof(uint32_t);
124 memset(
this, 0,
sizeof(*
this));
129 return ((flags_ >> Flag_VersionShift) & Flag_VersionMask);
135 flags_ &= (uint8_t) ~(Flag_VersionMask << Flag_VersionShift);
136 flags_ |= ((uint8_t)v << Flag_VersionShift);
141 return (flags_ & (Flag_PaddingMask << Flag_PaddingShift));
146 flags_ &= (uint8_t) ~(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_ &= (uint8_t) ~(MPT_PayloadTypeMask << MPT_PayloadTypeShift);
169 mpt_ |= (pt << MPT_PayloadTypeShift);
174 return (mpt_ & (MPT_MarkerMask << MPT_MarkerShift));
179 mpt_ &= (uint8_t) ~(MPT_MarkerMask << MPT_MarkerShift);
180 mpt_ |= ((!!m) << MPT_MarkerShift);
#define ROC_ATTR_PACKED_BEGIN
Pack structure fields. Place these before class or struct keyword.
#define ROC_ATTR_PACKED_END
Pack structure fields. Place these between '}' and ';'.
Endian conversion functions.
uint16_t hton16u(uint16_t v)
Host to network byte order (unsigned 16-bit).
uint16_t ntoh16u(uint16_t v)
Network to host byte order (unsigned 16-bit).
uint32_t hton32u(uint32_t v)
Host to network byte order (unsigned 32-bit).
uint32_t ntoh32u(uint32_t v)
Network to host byte order (unsigned 32-bit).
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.