krishna-k's picture
Upload folder using huggingface_hub
06555b5 verified
import datetime
from dataclasses import dataclass
from typing import Optional
@dataclass
class RTCStats:
"""
Base class for statistics.
"""
timestamp: datetime.datetime
"The timestamp associated with this object."
type: str
id: str
@dataclass
class RTCRtpStreamStats(RTCStats):
ssrc: int
kind: str
transportId: str
@dataclass
class RTCReceivedRtpStreamStats(RTCRtpStreamStats):
packetsReceived: int
packetsLost: int
jitter: int
@dataclass
class RTCSentRtpStreamStats(RTCRtpStreamStats):
packetsSent: int
"Total number of RTP packets sent for this SSRC."
bytesSent: int
"Total number of bytes sent for this SSRC."
@dataclass
class RTCInboundRtpStreamStats(RTCReceivedRtpStreamStats):
"""
The :class:`RTCInboundRtpStreamStats` dictionary represents the measurement
metrics for the incoming RTP media stream.
"""
pass
@dataclass
class RTCRemoteInboundRtpStreamStats(RTCReceivedRtpStreamStats):
"""
The :class:`RTCRemoteInboundRtpStreamStats` dictionary represents the remote
endpoint's measurement metrics for a particular incoming RTP stream.
"""
roundTripTime: float
fractionLost: float
@dataclass
class RTCOutboundRtpStreamStats(RTCSentRtpStreamStats):
"""
The :class:`RTCOutboundRtpStreamStats` dictionary represents the measurement
metrics for the outgoing RTP stream.
"""
trackId: str
@dataclass
class RTCRemoteOutboundRtpStreamStats(RTCSentRtpStreamStats):
"""
The :class:`RTCRemoteOutboundRtpStreamStats` dictionary represents the remote
endpoint's measurement metrics for its outgoing RTP stream.
"""
remoteTimestamp: Optional[datetime.datetime] = None
@dataclass
class RTCTransportStats(RTCStats):
packetsSent: int
"Total number of packets sent over this transport."
packetsReceived: int
"Total number of packets received over this transport."
bytesSent: int
"Total number of bytes sent over this transport."
bytesReceived: int
"Total number of bytes received over this transport."
iceRole: str
"The current value of :attr:`RTCIceTransport.role`."
dtlsState: str
"The current value of :attr:`RTCDtlsTransport.state`."
class RTCStatsReport(dict):
"""
Provides statistics data about WebRTC connections as returned by the
:meth:`RTCPeerConnection.getStats()`, :meth:`RTCRtpReceiver.getStats()`
and :meth:`RTCRtpSender.getStats()` coroutines.
This object consists of a mapping of string identifiers to objects which
are instances of:
- :class:`RTCInboundRtpStreamStats`
- :class:`RTCOutboundRtpStreamStats`
- :class:`RTCRemoteInboundRtpStreamStats`
- :class:`RTCRemoteOutboundRtpStreamStats`
- :class:`RTCTransportStats`
"""
def add(self, stats: RTCStats) -> None:
self[stats.id] = stats