RtcAudioPlayoutStats

Struct RtcAudioPlayoutStats 

Source
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.

Full doc on W3C.

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

Source§

fn clone(&self) -> RtcAudioPlayoutStats

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RtcAudioPlayoutStats

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for RtcAudioPlayoutStats

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Hash for RtcAudioPlayoutStats

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for RtcAudioPlayoutStats

Source§

fn eq(&self, other: &RtcAudioPlayoutStats) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for RtcAudioPlayoutStats

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for RtcAudioPlayoutStats

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,