pub enum RtcInboundRtpStreamMediaType {
    Audio {
        voice_activity_flag: Option<bool>,
        total_samples_received: Option<u64>,
        concealed_samples: Option<u64>,
        silent_concealed_samples: Option<u64>,
        audio_level: Option<Float>,
        total_audio_energy: Option<Float>,
        total_samples_duration: Option<HighResTimeStamp>,
    },
    Video {
        frames_decoded: Option<u64>,
        key_frames_decoded: Option<u64>,
        frame_width: Option<u64>,
        frame_height: Option<u64>,
        total_inter_frame_delay: Option<Float>,
        frames_per_second: Option<Float>,
        frame_bit_depth: Option<u64>,
        fir_count: Option<u64>,
        pli_count: Option<u64>,
        sli_count: Option<u64>,
        concealment_events: Option<u64>,
        frames_received: Option<u64>,
    },
}
Expand description

Fields of RtcStatsType::InboundRtp variant.

Variants§

§

Audio

Fields when the kind is audio.

Fields

§voice_activity_flag: Option<bool>

Indicator whether the last RTP packet whose frame was delivered to the RTCRtpReceiver’s MediaStreamTrack for playout contained voice activity or not based on the presence of the V bit in the extension header, as defined in RFC 6464.

§total_samples_received: Option<u64>

Total number of samples that have been received on this RTP stream. This includes concealedSamples.

§concealed_samples: Option<u64>

Total number of samples that are concealed samples.

A concealed sample is a sample that was replaced with synthesized samples generated locally before being played out. Examples of samples that have to be concealed are samples from lost packets (reported in packetsLost) or samples from packets that arrive too late to be played out (reported in packetsDiscarded).

§silent_concealed_samples: Option<u64>

Total number of concealed samples inserted that are “silent”.

Playing out silent samples results in silence or comfort noise. This is a subset of concealedSamples.

§audio_level: Option<Float>

Audio level of the receiving track.

§total_audio_energy: Option<Float>

Audio energy of the receiving track.

§total_samples_duration: Option<HighResTimeStamp>

Audio duration of the receiving track.

For audio durations of tracks attached locally, see RTCAudioSourceStats instead.

§

Video

Fields when the kind is video.

Fields

§frames_decoded: Option<u64>

Total number of frames correctly decoded for this RTP stream, i.e. frames that would be displayed if no frames are dropped.

§key_frames_decoded: Option<u64>

Total number of key frames, such as key frames in VP8 RFC 6386 or IDR-frames in H.264 RFC 6184, successfully decoded for this RTP media stream.

This is a subset of framesDecoded. framesDecoded - keyFramesDecoded gives you the number of delta frames decoded.

§frame_width: Option<u64>

Width of the last decoded frame.

Before the first frame is decoded this attribute is missing.

§frame_height: Option<u64>

Height of the last decoded frame.

Before the first frame is decoded this attribute is missing.

§total_inter_frame_delay: Option<Float>

Sum of the interframe delays in seconds between consecutively decoded frames, recorded just after a frame has been decoded.

§frames_per_second: Option<Float>

Number of decoded frames in the last second.

§frame_bit_depth: Option<u64>

Bit depth per pixel of the last decoded frame.

Typical values are 24, 30, or 36 bits. Before the first frame is decoded this attribute is missing.

§fir_count: Option<u64>

Total number of Full Intra Request (FIR) packets sent by this receiver.

§pli_count: Option<u64>

Total number of Picture Loss Indication (PLI) packets sent by this receiver.

§sli_count: Option<u64>

Total number of Slice Loss Indication (SLI) packets sent by this receiver.

§concealment_events: Option<u64>

Number of concealment events.

This counter increases every time a concealed sample is synthesized after a non-concealed sample. That is, multiple consecutive concealed samples will increase the concealedSamples count multiple times but is a single concealment event.

§frames_received: Option<u64>

Total number of complete frames received on this RTP stream.

This metric is incremented when the complete frame is received.

Trait Implementations§

source§

impl Clone for RtcInboundRtpStreamMediaType

source§

fn clone(&self) -> RtcInboundRtpStreamMediaType

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for RtcInboundRtpStreamMediaType

source§

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

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

impl<'de> Deserialize<'de> for RtcInboundRtpStreamMediaType

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 RtcInboundRtpStreamMediaType

source§

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

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

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 RtcInboundRtpStreamMediaType

source§

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

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

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 RtcInboundRtpStreamMediaType

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 Copy for RtcInboundRtpStreamMediaType

source§

impl StructuralPartialEq for RtcInboundRtpStreamMediaType

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

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

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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.
source§

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

Performs the conversion.
source§

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