pub struct DecodeStageTimings {
pub demux: Duration,
pub send_packet: Duration,
pub receive_frame: Duration,
pub convert: Duration,
pub seek: Duration,
}Expand description
Where one video decode session’s wall time went, split so hardware decode is told apart from mere submission.
Fields§
§demux: Durationav_read_frame: container demux and file I/O.
send_packet: Durationavcodec_send_packet: handing a packet to the codec.
receive_frame: Durationavcodec_receive_frame: producing one picture. A hardware session waits here for FFmpeg’s
synchronization, so this separates decode from submission.
convert: DurationTurning the picture into a host frame: pixel conversion (software) or surface metadata (hardware).
seek: Durationav_seek_frame and the codec flush that follows it.
Implementations§
Trait Implementations§
Source§impl Clone for DecodeStageTimings
impl Clone for DecodeStageTimings
impl Copy for DecodeStageTimings
Source§impl Debug for DecodeStageTimings
impl Debug for DecodeStageTimings
Source§impl Default for DecodeStageTimings
impl Default for DecodeStageTimings
impl Eq for DecodeStageTimings
Source§impl PartialEq for DecodeStageTimings
impl PartialEq for DecodeStageTimings
impl StructuralPartialEq for DecodeStageTimings
Auto Trait Implementations§
impl Freeze for DecodeStageTimings
impl RefUnwindSafe for DecodeStageTimings
impl Send for DecodeStageTimings
impl Sync for DecodeStageTimings
impl Unpin for DecodeStageTimings
impl UnsafeUnpin for DecodeStageTimings
impl UnwindSafe for DecodeStageTimings
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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> ⓘ
Converts
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> ⓘ
Converts
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