blob: 68ca10d57faf1ed6dcfa5127d04f585210f7feec (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
pub struct RtpPacket<'a> {
marked: bool,
payload_type: u8,
extension: Option<(u16, &'a [u8])>,
payload: Option<&'a [u8]>,
sequence: u16,
timestamp: u32,
ssrc: u32,
csrc_count: u8,
csrcs: [u32; 15],
}
impl<'a> RtpPacket<'a> {
pub fn parse(packet: &'a [u8]) -> RtpPacket<'a> {
todo!()
}
pub fn write(&self, out: &mut Vec<u8>) {
out.push(self.csrc_count | (2 << 6) | 0); // TODO
out.push(self.payload_type | (self.marked as u8 * 0x80));
out.extend(self.sequence.to_be_bytes());
out.extend(self.timestamp.to_be_bytes());
out.extend(self.ssrc.to_be_bytes());
}
}
|