RtcOutboundRtpStreamStats

Struct RtcOutboundRtpStreamStats 

Source
pub struct RtcOutboundRtpStreamStats {
Show 14 fields pub sent_stream: RtcSentRtpStreamStats, pub media_specific: OutboundRtpMediaType, pub mid: Option<String>, pub media_source_id: Option<String>, pub remote_id: Option<String>, pub header_bytes_sent: Option<u64>, pub retransmitted_packets_sent: Option<u64>, pub retransmitted_bytes_sent: Option<u64>, pub rtx_ssrc: Option<u32>, pub target_bitrate: Option<Double>, pub total_packet_send_delay: Option<Double>, pub nack_count: Option<u32>, pub active: Option<bool>, pub packets_sent_with_ect1: Option<u64>,
}
Expand description

Measurement metrics for the outgoing RTP stream.

The timestamp reported in the statistics object is the time at which the data was sampled.

Full doc on W3C.

Fields§

§sent_stream: RtcSentRtpStreamStats

Generic egress RTP stream data.

§media_specific: OutboundRtpMediaType

Media kind specific part of these RtcOutboundRtpStreamStats.

§mid: Option<String>

mid value of the RTCRtpTransceiver owning this stream.

If the RTCRtpTransceiver owning this stream has a mid value that is not null, this is that value, otherwise this member MUST NOT be present.

§media_source_id: Option<String>

Identifier of the stats object representing the track currently attached to the sender of this stream, an RtcMediaSourceStats.

§remote_id: Option<String>

Identifier for looking up the remote RtcRemoteInboundRtpStreamStats object for the same SSRC.

§header_bytes_sent: Option<u64>

Total number of RTP header and padding bytes sent for this SSRC.

This does not include the size of transport layer headers such as IP or UDP.

header_bytes_sent + RtcSentRtpStreamStats::bytes_sent equals the number of bytes sent as payload over the transport.

§retransmitted_packets_sent: Option<u64>

Total number of packets that were retransmitted for this SSRC.

This is a subset of the RtcSentRtpStreamStats::packets_sent.

If RTX is not negotiated, retransmitted packets are sent over this SSRC.

If RTX was negotiated, retransmitted packets are sent over a separate SSRC but is still accounted for here.

§retransmitted_bytes_sent: Option<u64>

Total number of bytes that were retransmitted for this SSRC, only including payload bytes.

This is a subset of RtcSentRtpStreamStats::bytes_sent.

If RTX is not negotiated, retransmitted bytes are sent over this SSRC.

If RTX was negotiated, retransmitted bytes are sent over a separate SSRC but is still accounted for here.

§rtx_ssrc: Option<u32>

SSRC of the RTX stream that is associated with this stream’s SSRC.

If RTX is negotiated for retransmissions on a separate RTP stream, this is the SSRC of the RTX stream that is associated with this stream’s SSRC.

If RTX is not negotiated, this value MUST NOT be present.

§target_bitrate: Option<Double>

Current encoder target in bits per second.

The target is an instantaneous value reflecting the encoder’s settings, but the resulting payload bytes sent per second, excluding retransmissions, SHOULD closely correlate to the target.

See also the RtcSentRtpStreamStats::bytes_sent and the retransmitted_bytes_sent.

This is defined in the same way as the “TIAS” bitrate RFC3890.

§total_packet_send_delay: Option<Double>

Total number of seconds that packets have spent buffered locally before being transmitted onto the network.

The time is measured from when a packet is emitted from the RTP packetizer until it is handed over to the OS network socket. This measurement is added to total_packet_send_delay when RtcSentRtpStreamStats::packets_sent is incremented.

§nack_count: Option<u32>

Total number of Negative ACKnowledgement (NACK) packets, as defined in RFC4585 Section 6.2.1, received by this sender.

§active: Option<bool>

Indicates whether this RTP stream is configured to be sent or disabled.

Note that an active stream can still not be sending, e.g. when being limited by network conditions.

§packets_sent_with_ect1: Option<u64>

Total number of RTP packets sent for this SSRC with the ECT(1) marking defined in RFC3168 Section 5 and used by the L4S protocol described in RFC9331.

Trait Implementations§

Source§

impl Clone for RtcOutboundRtpStreamStats

Source§

fn clone(&self) -> RtcOutboundRtpStreamStats

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 RtcOutboundRtpStreamStats

Source§

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

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

impl<'de> Deserialize<'de> for RtcOutboundRtpStreamStats

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 RtcOutboundRtpStreamStats

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 RtcOutboundRtpStreamStats

Source§

fn eq(&self, other: &RtcOutboundRtpStreamStats) -> 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 RtcOutboundRtpStreamStats

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 RtcOutboundRtpStreamStats

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>,