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.
A single decodeMs cannot say whether a hardware session is fast because
the GPU decoded quickly or because the work has only been submitted. These
spans are the calls that take the time, so the answer is readable.
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 whatever FFmpeg synchronizes before it hands a surface
over, so this is the span that separates decode from submission.
convert: DurationTurning the produced picture into a frame this host can use: pixel conversion for a software session, surface metadata for a hardware one.
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.