0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X| CC |M| PT | sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| synchronization source (SSRC) identifier |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
| contributing source (CSRC) identifiers |
| .... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
获取pading : const bool has_padding = (buffer[0] & 0x20) != 0;
聊一下pading 如果这个P为1 那么在整个rtp结尾扩展:在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分
结尾有个一位表示长度 padding_size = buffer[size - 1]; 这个长度包括本省长度位。构造时候一样。
获取extension: const bool has_extension = (buffer[0] & 0x10) != 0;
这个头部扩张,具体扩展协议可以参考协议 可以适当展开