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) { 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()); } }