pub struct Chunk {
pub is_sync: bool,
pub data: Vec<u8>,
pub sample_idx: usize,
pub frame_nr: usize,
pub decode_timestamp: Time,
pub presentation_timestamp: Time,
pub duration: Time,
}
Expand description
One chunk of encoded video data, representing a single crate::Sample
.
For details on how to interpret the data, see crate::Sample
.
In MP4, one sample is one frame.
Fields§
§is_sync: bool
The start of a new crate::demux::GroupOfPictures
?
This probably means this is a keyframe, and that and entire frame can be decoded from only this one sample (though I’m not 100% sure).
data: Vec<u8>
§sample_idx: usize
Which sample (frame) did this chunk come from?
This is the order of which the samples appear in the container,
which is usually ordered by Self::decode_timestamp
.
frame_nr: usize
Which frame does this chunk belong to?
This is on the assumption that each sample produces a single frame, which is true for MP4.
This is the index of samples ordered by Self::presentation_timestamp
.
decode_timestamp: Time
Decode timestamp of this sample. Chunks are expected to be submitted in the order of decode timestamp.
decode_timestamp <= presentation_timestamp
presentation_timestamp: Time
Presentation timestamp for the sample in this chunk.
Often synonymous with composition_timestamp
.
decode_timestamp <= presentation_timestamp
duration: Time
Auto Trait Implementations§
impl Freeze for Chunk
impl RefUnwindSafe for Chunk
impl Send for Chunk
impl Sync for Chunk
impl Unpin for Chunk
impl UnwindSafe for Chunk
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more