diff options
author | metamuffin <metamuffin@disroot.org> | 2024-07-07 01:02:10 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-07-07 01:02:10 +0200 |
commit | 461cb3b26169562868f46311612b3a61759823ff (patch) | |
tree | 785310c352996260e763977efe4b5ff7f38eaf39 /rtp | |
parent | 5f1a995ac4d0965135a297d3c2cb8c2712765e2c (diff) | |
download | sip-rs-461cb3b26169562868f46311612b3a61759823ff.tar sip-rs-461cb3b26169562868f46311612b3a61759823ff.tar.bz2 sip-rs-461cb3b26169562868f46311612b3a61759823ff.tar.zst |
sdp ser
Diffstat (limited to 'rtp')
-rw-r--r-- | rtp/src/lib.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/rtp/src/lib.rs b/rtp/src/lib.rs index b28b04f..68ca10d 100644 --- a/rtp/src/lib.rs +++ b/rtp/src/lib.rs @@ -1,3 +1,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()); + } +} |