pub async fn read_rtp(&self) -> Result<(rtp::packet::Packet, Attributes)> {
        let mut b = vec![0u8; self.receive_mtu];
        let (n, attributes) = self.read(&mut b).await?;

        let mut buf = &b[..n];
        let r = rtp::packet::Packet::unmarshal(&mut buf)?;
        Ok((r, attributes))
    }
/// read_rtp is a convenience method that wraps Read and unmarshals for you.
read_rtp is a convenience method that wraps Read and unmarshals for you.
read_rtp is a convenience method that wraps Read and unmarshals for you .
pub async fn read_rtp(&self) -> Result<(rtp::packet::Packet, Attributes)> {
        let mut b = vec![0u8; self.receive_mtu];
        let (n, attributes) = self.read(&mut b).await?;
        let mut buf = &b[..n];
        let r = rtp::packet::Packet::unmarshal(&mut buf)?;
        Ok((r, attributes))
    }
pub async fn read_rtp ( & self ) -> Result < ( rtp :: packet :: Packet , Attributes ) > { let mut b = vec ! [ 0u8 self receive_mtu ] ; let ( n , attributes ) = self . read ( & mut b ) . await ? ; let mut buf = & b [ .. n ] ; let r = rtp :: packet :: Packet :: unmarshal ( & mut buf ) ? ; Ok ( ( r , attributes ) ) }
read_rtp is a convenience method that wraps Read and unmarshals for you.
read_rtp is a convenience method that wraps Read and unmarshals for you .
&self