use crate::Result;
use crate::pes::PesHeader;
use crate::ts::payload::Bytes;
use std::io::{Read, Write};
#[allow(missing_docs)]
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Pes {
pub header: PesHeader,
pub pes_packet_len: u16,
pub data: Bytes,
}
impl Pes {
pub(super) fn read_from<R: Read>(mut reader: R) -> Result<Self> {
let (header, pes_packet_len) = PesHeader::read_from(&mut reader)?;
let data = Bytes::read_from(reader)?;
Ok(Pes {
header,
pes_packet_len,
data,
})
}
pub(super) fn write_to<W: Write>(&self, mut writer: W) -> Result<()> {
self.header.write_to(&mut writer, self.pes_packet_len)?;
self.data.write_to(writer)?;
Ok(())
}
}