Implement `RtpPacket` and `RtcpPacket` traits
parent
3f755e781d
commit
1662c3392b
|
@ -4,6 +4,7 @@ use handy_async::sync_io::{ReadExt, WriteExt};
|
|||
use {Result, ErrorKind};
|
||||
use io::{ReadFrom, WriteTo};
|
||||
use packet::Packet;
|
||||
use traits;
|
||||
use types::{U5, U24, RtpTimestamp, NtpTimestamp, NtpMiddleTimetamp, Ssrc, SsrcOrCsrc};
|
||||
use constants::RTP_VERSION;
|
||||
|
||||
|
@ -32,6 +33,7 @@ pub enum RtcpPacket {
|
|||
App(RtcpApplicationDefined),
|
||||
}
|
||||
impl Packet for RtcpPacket {}
|
||||
impl traits::RtcpPacket for RtcpPacket {}
|
||||
impl ReadFrom for RtcpPacket {
|
||||
fn read_from<R: Read>(reader: &mut R) -> Result<Self> {
|
||||
let mut buf = [0; 2];
|
||||
|
@ -172,6 +174,8 @@ impl RtcpSenderReport {
|
|||
}
|
||||
}
|
||||
}
|
||||
impl Packet for RtcpSenderReport {}
|
||||
impl traits::RtcpPacket for RtcpSenderReport {}
|
||||
impl ReadFrom for RtcpSenderReport {
|
||||
fn read_from<R: Read>(reader: &mut R) -> Result<Self> {
|
||||
let (reception_report_count, payload) = track_try!(read_sctp(reader, RTCP_PACKET_TYPE_SR));
|
||||
|
@ -300,6 +304,8 @@ impl RtcpReceiverReport {
|
|||
}
|
||||
}
|
||||
}
|
||||
impl Packet for RtcpReceiverReport {}
|
||||
impl traits::RtcpPacket for RtcpReceiverReport {}
|
||||
impl ReadFrom for RtcpReceiverReport {
|
||||
fn read_from<R: Read>(reader: &mut R) -> Result<Self> {
|
||||
let (reception_report_count, payload) = track_try!(read_sctp(reader, RTCP_PACKET_TYPE_RR));
|
||||
|
@ -349,6 +355,8 @@ impl RtcpSourceDescription {
|
|||
RtcpSourceDescription { chunks: Vec::new() }
|
||||
}
|
||||
}
|
||||
impl Packet for RtcpSourceDescription {}
|
||||
impl traits::RtcpPacket for RtcpSourceDescription {}
|
||||
impl ReadFrom for RtcpSourceDescription {
|
||||
fn read_from<R: Read>(reader: &mut R) -> Result<Self> {
|
||||
let (source_count, payload) = track_try!(read_sctp(reader, RTCP_PACKET_TYPE_SDES));
|
||||
|
@ -498,6 +506,8 @@ impl RtcpGoodbye {
|
|||
}
|
||||
}
|
||||
}
|
||||
impl Packet for RtcpGoodbye {}
|
||||
impl traits::RtcpPacket for RtcpGoodbye {}
|
||||
impl ReadFrom for RtcpGoodbye {
|
||||
fn read_from<R: Read>(reader: &mut R) -> Result<Self> {
|
||||
let (source_count, payload) = track_try!(read_sctp(reader, RTCP_PACKET_TYPE_BYE));
|
||||
|
@ -547,6 +557,8 @@ pub struct RtcpApplicationDefined {
|
|||
pub name: [u8; 4],
|
||||
pub data: Vec<u8>,
|
||||
}
|
||||
impl Packet for RtcpApplicationDefined {}
|
||||
impl traits::RtcpPacket for RtcpApplicationDefined {}
|
||||
impl ReadFrom for RtcpApplicationDefined {
|
||||
fn read_from<R: Read>(reader: &mut R) -> Result<Self> {
|
||||
let (subtype, payload) = track_try!(read_sctp(reader, RTCP_PACKET_TYPE_APP));
|
||||
|
|
|
@ -4,6 +4,7 @@ use handy_async::sync_io::{ReadExt, WriteExt};
|
|||
use {Result, ErrorKind};
|
||||
use io::{ReadFrom, WriteTo};
|
||||
use packet::Packet;
|
||||
use traits;
|
||||
use types::{U7, RtpTimestamp, Ssrc, Csrc};
|
||||
use constants::RTP_VERSION;
|
||||
|
||||
|
@ -14,6 +15,7 @@ pub struct RtpPacket {
|
|||
pub padding: Vec<u8>,
|
||||
}
|
||||
impl Packet for RtpPacket {}
|
||||
impl traits::RtpPacket for RtpPacket {}
|
||||
impl ReadFrom for RtpPacket {
|
||||
fn read_from<R: Read>(reader: &mut R) -> Result<Self> {
|
||||
let header = track_try!(RtpFixedHeader::read_from(reader));
|
||||
|
|
Loading…
Reference in New Issue