Skip to main content

Demuxer

Struct Demuxer 

Source
pub struct Demuxer { /* private fields */ }
Expand description

Reads TS packets from pushed byte chunks, tracks PAT/PMT, and reassembles per-PID PES packets into AccessUnits.

Implementations§

Source§

impl Demuxer

Source

pub fn new() -> Self

New, empty demux session.

Source

pub fn push_bytes(&mut self, data: &[u8])

Append incoming bytes (need not be 188-byte aligned across calls).

Source

pub fn streams(&self) -> &[ElementaryStream]

Elementary streams from the most recently parsed PMT (empty until then).

Source

pub fn poll_access_unit(&mut self) -> Result<Option<AccessUnit>, Error>

Pop the next fully reassembled access unit, or Ok(None) if not enough bytes are buffered yet.

An access unit is only confirmed complete once the next PES packet on the same PID starts (or Demuxer::finish is called) — this is inherent to how PES packetization signals its own boundaries, not a limitation specific to this crate.

Source

pub fn finish(&mut self) -> Vec<AccessUnit>

Force-emit whatever is still accumulating per PID as a final access unit each — call once at the end of a stream to avoid losing the very last access unit per PID (see Demuxer::poll_access_unit’s doc).

Trait Implementations§

Source§

impl Debug for Demuxer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Demuxer

Source§

fn default() -> Demuxer

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.