pub struct Repacketizer { /* private fields */ }Expand description
opus_repacketizer: accumulate frames from one or more same-config packets, then emit them as a single re-framed packet.
Implementations§
Source§impl Repacketizer
impl Repacketizer
Sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Drop every frame, keeping the buffers that held them.
This is what makes one repacketizer reusable across packets. Building a
fresh Repacketizer::new per packet is correct but allocates a buffer
per frame every time; clearing and refilling one reuses them.
Sourcepub fn cat(&mut self, data: &[u8]) -> Result<()>
pub fn cat(&mut self, data: &[u8]) -> Result<()>
Append the frames of data (opus_repacketizer_cat). Errors if the TOC
config differs from frames already held, or the 120 ms cap is exceeded.
Sourcepub fn out_range(&self, begin: usize, end: usize) -> Result<Vec<u8>>
pub fn out_range(&self, begin: usize, end: usize) -> Result<Vec<u8>>
Emit frames [begin, end) as one packet (opus_repacketizer_out_range).
Sourcepub fn out_into(&self, out: &mut Vec<u8>) -> Result<()>
pub fn out_into(&self, out: &mut Vec<u8>) -> Result<()>
out, appended to out instead of allocating.
The _into forms exist because every other one hands back a fresh
Vec, which is an allocation per packet a caller in a steady loop can
do without. They append, so one buffer can accumulate several packets.
Sourcepub fn out_range_into(
&self,
begin: usize,
end: usize,
out: &mut Vec<u8>,
) -> Result<()>
pub fn out_range_into( &self, begin: usize, end: usize, out: &mut Vec<u8>, ) -> Result<()>
out_range, appended to out.
Sourcepub fn out_self_delimited_into(&self, out: &mut Vec<u8>) -> Result<()>
pub fn out_self_delimited_into(&self, out: &mut Vec<u8>) -> Result<()>
out_self_delimited, appended to out.
Sourcepub fn out_self_delimited(&self) -> Result<Vec<u8>>
pub fn out_self_delimited(&self) -> Result<Vec<u8>>
Emit all frames with the self-delimited framing multistream uses (the last frame’s length is coded so the packet’s total size is derivable).
Trait Implementations§
Source§impl Debug for Repacketizer
Shows what the repacketizer holds without printing the frames themselves,
which are compressed audio and unreadable either way.
impl Debug for Repacketizer
Shows what the repacketizer holds without printing the frames themselves, which are compressed audio and unreadable either way.