pub struct RtcAudioPlayoutStats {
pub kind: Option<String>,
pub synthesized_samples_duration: Option<Double>,
pub synthesized_samples_events: Option<u32>,
pub total_samples_duration: Option<Double>,
pub total_playout_delay: Option<Double>,
pub total_samples_count: Option<u64>,
}Expand description
Statistics of one playout path.
If the same playout statistics object is referenced by multiple
RtcInboundRtpStreamStats this is an indication that audio mixing is
happening in which case sample counters in this statistics object refer to
the samples after mixing.
Fields§
§kind: Option<String>For audio playout, this has the value audio.
This reflects the kind attribute of the MediaStreamTrack
being played out.
synthesized_samples_duration: Option<Double>Total duration, in seconds, of synthesized audio samples that have been played out.
If the playout path is unable to produce audio samples on time for
device playout, samples are synthesized to be playout out instead.
synthesized_samples_duration is measured in seconds and is
incremented each time an audio sample is synthesized by this playout
path.
This metric can be used together with total_samples_duration to
calculate the percentage of played out media being synthesized.
Synthesization typically only happens if the pipeline is
underperforming. Samples synthesized by the RtcInboundRtpStreamStats
are not counted for here, but in
InboundRtpMediaType::Audio::concealed_samples.
synthesized_samples_events: Option<u32>Number of synthesized samples events.
This counter increases every time a sample is synthesized after a
non-synthesized sample. That is, multiple consecutive synthesized
samples will increase the synthesized_samples_duration multiple
times but is a single synthesization samples event.
total_samples_duration: Option<Double>Total duration, in seconds, of all audio samples that have been played out.
Includes both synthesized and non-synthesized samples.
total_playout_delay: Option<Double>Total estimated delay of the playout path for all audio samples.
When audio samples are pulled by the playout device, this counter is incremented with the estimated delay of the playout path for that audio sample. The playout delay includes the delay from being emitted to the actual time of playout on the device.
This metric can be used together with total_samples_count to
calculate the average playout delay per sample.
total_samples_count: Option<u64>Total number of samples emitted for playout.
When audio samples are pulled by the playout device, this counter is incremented with the number of samples emitted for playout.
Trait Implementations§
Source§impl Clone for RtcAudioPlayoutStats
impl Clone for RtcAudioPlayoutStats
Source§fn clone(&self) -> RtcAudioPlayoutStats
fn clone(&self) -> RtcAudioPlayoutStats
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RtcAudioPlayoutStats
impl Debug for RtcAudioPlayoutStats
Source§impl<'de> Deserialize<'de> for RtcAudioPlayoutStats
impl<'de> Deserialize<'de> for RtcAudioPlayoutStats
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Hash for RtcAudioPlayoutStats
impl Hash for RtcAudioPlayoutStats
Source§impl PartialEq for RtcAudioPlayoutStats
impl PartialEq for RtcAudioPlayoutStats
Source§impl Serialize for RtcAudioPlayoutStats
impl Serialize for RtcAudioPlayoutStats
impl StructuralPartialEq for RtcAudioPlayoutStats
Auto Trait Implementations§
impl Freeze for RtcAudioPlayoutStats
impl RefUnwindSafe for RtcAudioPlayoutStats
impl Send for RtcAudioPlayoutStats
impl Sync for RtcAudioPlayoutStats
impl Unpin for RtcAudioPlayoutStats
impl UnwindSafe for RtcAudioPlayoutStats
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)