async fn read_rtcp(
        &self,
        receive_mtu: usize,
    ) -> Result<(Vec<Box<dyn rtcp::packet::Packet + Send + Sync>>, Attributes)> {
        let mut b = vec![0u8; receive_mtu];
        let (n, attributes) = self.read(&mut b).await?;

        let mut buf = &b[..n];
        let pkts = rtcp::packet::unmarshal(&mut buf)?;

        Ok((pkts, attributes))
    }
/// read_rtcp is a convenience method that wraps Read and unmarshals for you.
read_rtcp is a convenience method that wraps Read and unmarshals for you.
read_rtcp is a convenience method that wraps Read and unmarshals for you .
async fn read_rtcp(
        &self,
        receive_mtu: usize,
    ) -> Result<(Vec<Box<dyn rtcp::packet::Packet + Send + Sync>>, Attributes)> {
        let mut b = vec![0u8; receive_mtu];
        let (n, attributes) = self.read(&mut b).await?;
        let mut buf = &b[..n];
        let pkts = rtcp::packet::unmarshal(&mut buf)?;
        Ok((pkts, attributes))
    }
async fn read_rtcp ( & self , receive_mtu : usize , ) -> Result < ( Vec < Box < dyn rtcp :: packet :: Packet + Send + Sync > > , Attributes ) > { let mut b = vec ! [ 0u8 receive_mtu ] ; let ( n , attributes ) = self . read ( & mut b ) . await ? ; let mut buf = & b [ .. n ] ; let pkts = rtcp :: packet :: unmarshal ( & mut buf ) ? ; Ok ( ( pkts , attributes ) ) }
read_rtcp is a convenience method that wraps Read and unmarshals for you.
read_rtcp is a convenience method that wraps Read and unmarshals for you .
&self
receive_mtu
usize