pub struct EncodeStageTimings {
pub video_input_ready_wait: Duration,
pub video_send_frame: Duration,
pub video_receive_packet: Duration,
pub video_mux_write: Duration,
pub audio_send_frame: Duration,
pub audio_receive_packet: Duration,
pub audio_mux_write: Duration,
}Expand description
Where one encode sink’s wall time went.
The codec, the packet drain and the mux write move for different reasons:
a codec change moves the first, a channel-depth change moves the second,
and a container change moves the third. A single total such as
videoEncodeMs cannot say which one did, so each is timed apart.
Fields§
§video_input_ready_wait: DurationWaiting, before avcodec_send_frame, for the GPU to finish writing a
surface the encoder cannot wait for on its own. Zero on every path
whose encoder waits on the GPU itself or takes CPU frames.
video_send_frame: Durationavcodec_send_frame for video: the codec itself.
video_receive_packet: Durationavcodec_receive_packet for video.
video_mux_write: Durationav_interleaved_write_frame for video packets.
audio_send_frame: Durationavcodec_send_frame for audio.
audio_receive_packet: Durationavcodec_receive_packet for audio.
audio_mux_write: Durationav_interleaved_write_frame for audio packets.
Implementations§
Trait Implementations§
Source§impl Clone for EncodeStageTimings
impl Clone for EncodeStageTimings
impl Copy for EncodeStageTimings
Source§impl Debug for EncodeStageTimings
impl Debug for EncodeStageTimings
Source§impl Default for EncodeStageTimings
impl Default for EncodeStageTimings
impl Eq for EncodeStageTimings
Source§impl PartialEq for EncodeStageTimings
impl PartialEq for EncodeStageTimings
impl StructuralPartialEq for EncodeStageTimings
Auto Trait Implementations§
impl Freeze for EncodeStageTimings
impl RefUnwindSafe for EncodeStageTimings
impl Send for EncodeStageTimings
impl Sync for EncodeStageTimings
impl Unpin for EncodeStageTimings
impl UnsafeUnpin for EncodeStageTimings
impl UnwindSafe for EncodeStageTimings
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.