@observertc/samples-decoder
Version:
ObserveRTC Library for Decoding Samples
1,349 lines • 31.4 kB
TypeScript
export declare const schemaVersion = "3.0.0";
/**
* The WebRTC app provided custom stats payload
*/
export type ExtensionStat = {
/**
* The type of the extension stats the custom app provides
*/
type: string;
/**
* The payload of the extension stats the custom app provides
*/
payload?: string;
};
/**
* A list of additional client events.
*/
export type ClientMetaData = {
/**
* The name of the event used as an identifier (e.g., MEDIA_TRACK_MUTED, USER_REJOINED, etc.).
*/
type: string;
/**
* The value associated with the event, if applicable.
*/
payload?: string;
/**
* The unique identifier of the peer connection for which the event was generated.
*/
peerConnectionId?: string;
/**
* The identifier of the media track related to the event, if applicable.
*/
trackId?: string;
/**
* The SSRC (Synchronization Source) identifier associated with the event, if applicable.
*/
ssrc?: number;
/**
* The timestamp in epoch format when the event was generated.
*/
timestamp?: number;
};
/**
* A list of client issues.
*/
export type ClientIssue = {
/**
* The name of the issue
*/
type: string;
/**
* The value associated with the event, if applicable.
*/
payload?: string;
/**
* The timestamp in epoch format when the event was generated.
*/
timestamp?: number;
};
/**
* A list of client events.
*/
export type ClientEvent = {
/**
* The name of the event used as an identifier (e.g., MEDIA_TRACK_MUTED, USER_REJOINED, etc.).
*/
type: string;
/**
* The value associated with the event, if applicable.
*/
payload?: string;
/**
* The timestamp in epoch format when the event was generated.
*/
timestamp?: number;
};
/**
* Certificate Stats
*/
export type CertificateStats = {
/**
* The timestamp of the stat.
*/
timestamp: number;
/**
* A unique identifier for the stat.
*/
id: string;
/**
* The fingerprint of the certificate.
*/
fingerprint?: string;
/**
* The algorithm used for the fingerprint (e.g., 'SHA-256').
*/
fingerprintAlgorithm?: string;
/**
* The certificate encoded in base64 format.
*/
base64Certificate?: string;
/**
* The certificate ID of the issuer.
*/
issuerCertificateId?: string;
/**
* Additional information attached to this stats
*/
attachments?: Record<string, unknown>;
};
/**
* ICE Candidate Pair Stats
*/
export type IceCandidatePairStats = {
/**
* The unique identifier for this RTCStats object.
*/
id: string;
/**
* The timestamp of when the stats were recorded, in milliseconds.
*/
timestamp: number;
/**
* The transport id of the connection this candidate pair belongs to.
*/
transportId?: string;
/**
* The ID of the local ICE candidate in this pair.
*/
localCandidateId?: string;
/**
* The ID of the remote ICE candidate in this pair.
*/
remoteCandidateId?: string;
state?: "new" | "in-progress" | "waiting" | "failed" | "succeeded" | "cancelled" | "inprogress";
/**
* Whether this candidate pair has been nominated.
*/
nominated?: boolean;
/**
* The number of packets sent using this candidate pair.
*/
packetsSent?: number;
/**
* The number of packets received using this candidate pair.
*/
packetsReceived?: number;
/**
* The total number of bytes sent using this candidate pair.
*/
bytesSent?: number;
/**
* The total number of bytes received using this candidate pair.
*/
bytesReceived?: number;
/**
* The timestamp of the last packet sent using this candidate pair.
*/
lastPacketSentTimestamp?: number;
/**
* The timestamp of the last packet received using this candidate pair.
*/
lastPacketReceivedTimestamp?: number;
/**
* The total round trip time (RTT) for this candidate pair in seconds.
*/
totalRoundTripTime?: number;
/**
* The current round trip time (RTT) for this candidate pair in seconds.
*/
currentRoundTripTime?: number;
/**
* The available outgoing bitrate (in bits per second) for this candidate pair.
*/
availableOutgoingBitrate?: number;
/**
* The available incoming bitrate (in bits per second) for this candidate pair.
*/
availableIncomingBitrate?: number;
/**
* The number of ICE connection requests received by this candidate pair.
*/
requestsReceived?: number;
/**
* The number of ICE connection requests sent by this candidate pair.
*/
requestsSent?: number;
/**
* The number of ICE connection responses received by this candidate pair.
*/
responsesReceived?: number;
/**
* The number of ICE connection responses sent by this candidate pair.
*/
responsesSent?: number;
/**
* The number of ICE connection consent requests sent by this candidate pair.
*/
consentRequestsSent?: number;
/**
* The number of packets discarded while attempting to send via this candidate pair.
*/
packetsDiscardedOnSend?: number;
/**
* The total number of bytes discarded while attempting to send via this candidate pair.
*/
bytesDiscardedOnSend?: number;
/**
* Additional information attached to this stats
*/
attachments?: Record<string, unknown>;
};
/**
* ICE Candidate Stats
*/
export type IceCandidateStats = {
/**
* The timestamp of the stat.
*/
timestamp: number;
/**
* A unique identifier for the stat.
*/
id: string;
/**
* The transport ID associated with the ICE candidate.
*/
transportId?: string;
/**
* The IP address of the ICE candidate.
*/
address?: string;
/**
* The port number of the ICE candidate.
*/
port?: number;
/**
* The transport protocol used by the candidate (e.g., 'udp', 'tcp').
*/
protocol?: string;
/**
* The type of the ICE candidate (e.g., 'host', 'srflx', 'relay').
*/
candidateType?: string;
/**
* The priority of the ICE candidate.
*/
priority?: number;
/**
* The URL of the ICE candidate.
*/
url?: string;
/**
* The protocol used for the relay (e.g., 'tcp', 'udp').
*/
relayProtocol?: string;
/**
* A string representing the foundation for the ICE candidate.
*/
foundation?: string;
/**
* The related address for the ICE candidate (if any).
*/
relatedAddress?: string;
/**
* The related port for the ICE candidate (if any).
*/
relatedPort?: number;
/**
* The username fragment for the ICE candidate.
*/
usernameFragment?: string;
/**
* The TCP type of the ICE candidate (e.g., 'active', 'passive').
*/
tcpType?: string;
/**
* Additional information attached to this stats
*/
attachments?: Record<string, unknown>;
};
/**
* ICE Transport Stats
*/
export type IceTransportStats = {
/**
* The timestamp of the stat.
*/
timestamp: number;
/**
* A unique identifier for the stat.
*/
id: string;
/**
* The number of packets sent.
*/
packetsSent?: number;
/**
* The number of packets received.
*/
packetsReceived?: number;
/**
* The number of bytes sent.
*/
bytesSent?: number;
/**
* The number of bytes received.
*/
bytesReceived?: number;
/**
* The ICE role (e.g., 'controlling', 'controlled').
*/
iceRole?: string;
/**
* The local username fragment for ICE.
*/
iceLocalUsernameFragment?: string;
/**
* The DTLS transport state (e.g., 'new', 'connecting', 'connected').
*/
dtlsState?: string;
/**
* The ICE transport state (e.g., 'new', 'checking', 'connected').
*/
iceState?: string;
/**
* The ID of the selected ICE candidate pair.
*/
selectedCandidatePairId?: string;
/**
* The ID of the local certificate.
*/
localCertificateId?: string;
/**
* The ID of the remote certificate.
*/
remoteCertificateId?: string;
/**
* The TLS version used for encryption.
*/
tlsVersion?: string;
/**
* The DTLS cipher suite used.
*/
dtlsCipher?: string;
/**
* The role in the DTLS handshake (e.g., 'client', 'server').
*/
dtlsRole?: string;
/**
* The SRTP cipher used for encryption.
*/
srtpCipher?: string;
/**
* The number of changes to the selected ICE candidate pair.
*/
selectedCandidatePairChanges?: number;
/**
* Additional information attached to this stats
*/
attachments?: Record<string, unknown>;
};
/**
* Data Channels Stats
*/
export type DataChannelStats = {
/**
* The timestamp of the stat.
*/
timestamp: number;
/**
* A unique identifier for the stat.
*/
id: string;
/**
* The label of the data channel.
*/
label?: string;
/**
* The protocol of the data channel.
*/
protocol?: string;
/**
* The identifier for the data channel.
*/
dataChannelIdentifier?: number;
/**
* The state of the data channel (e.g., 'open', 'closed').
*/
state?: string;
/**
* The number of messages sent on the data channel.
*/
messagesSent?: number;
/**
* The number of bytes sent on the data channel.
*/
bytesSent?: number;
/**
* The number of messages received on the data channel.
*/
messagesReceived?: number;
/**
* The number of bytes received on the data channel.
*/
bytesReceived?: number;
/**
* Additional information attached to this stats
*/
attachments?: Record<string, unknown>;
};
/**
* PeerConnection Transport Stats
*/
export type PeerConnectionTransportStats = {
/**
* The timestamp of the stat.
*/
timestamp: number;
/**
* A unique identifier for the stat.
*/
id: string;
/**
* The number of data channels opened.
*/
dataChannelsOpened?: number;
/**
* The number of data channels closed.
*/
dataChannelsClosed?: number;
/**
* Additional information attached to this stats
*/
attachments?: Record<string, unknown>;
};
/**
* Media Playout Stats
*/
export type MediaPlayoutStats = {
/**
* The timestamp of the stat.
*/
timestamp: number;
/**
* A unique identifier for the stat.
*/
id: string;
/**
* The kind of media (audio/video).
*/
kind: string;
/**
* The duration of synthesized audio samples.
*/
synthesizedSamplesDuration?: number;
/**
* The number of synthesized audio samples events.
*/
synthesizedSamplesEvents?: number;
/**
* The total duration of all audio samples.
*/
totalSamplesDuration?: number;
/**
* The total delay experienced during audio playout.
*/
totalPlayoutDelay?: number;
/**
* The total count of audio samples.
*/
totalSamplesCount?: number;
/**
* Additional information attached to this stats
*/
attachments?: Record<string, unknown>;
};
/**
* Audio Source Stats
*/
export type MediaSourceStats = {
/**
* The timestamp of the stat.
*/
timestamp: number;
/**
* A unique identifier for the stat.
*/
id: string;
/**
* The type of media ('audio' or 'video').
*/
kind: string;
/**
* The identifier of the media track.
*/
trackIdentifier?: string;
/**
* The current audio level.
*/
audioLevel?: number;
/**
* The total audio energy.
*/
totalAudioEnergy?: number;
/**
* The total duration of audio samples.
*/
totalSamplesDuration?: number;
/**
* The echo return loss.
*/
echoReturnLoss?: number;
/**
* The enhancement of echo return loss.
*/
echoReturnLossEnhancement?: number;
/**
* The width of the video.
*/
width?: number;
/**
* The height of the video.
*/
height?: number;
/**
* The total number of frames.
*/
frames?: number;
/**
* The frames per second of the video.
*/
framesPerSecond?: number;
/**
* Additional information attached to this stats
*/
attachments?: Record<string, unknown>;
};
/**
* Remote Outbound RTP Stats
*/
export type RemoteOutboundRtpStats = {
/**
* The timestamp for this stats object in DOMHighResTimeStamp format.
*/
timestamp: number;
/**
* The unique identifier for this stats object.
*/
id: string;
/**
* The SSRC identifier of the RTP stream.
*/
ssrc: number;
/**
* The type of media ('audio' or 'video').
*/
kind: string;
/**
* The ID of the transport used for this stream.
*/
transportId?: string;
/**
* The ID of the codec used for this stream.
*/
codecId?: string;
/**
* The total number of packets sent on this stream.
*/
packetsSent?: number;
/**
* The total number of bytes sent on this stream.
*/
bytesSent?: number;
/**
* The ID of the local object corresponding to this stream.
*/
localId?: string;
/**
* The remote timestamp for this stats object in DOMHighResTimeStamp format.
*/
remoteTimestamp?: number;
/**
* The total number of reports sent on this stream.
*/
reportsSent?: number;
/**
* The current estimated round-trip time for this stream in seconds.
*/
roundTripTime?: number;
/**
* The total round-trip time for this stream in seconds.
*/
totalRoundTripTime?: number;
/**
* The total number of round-trip time measurements for this stream.
*/
roundTripTimeMeasurements?: number;
/**
* Additional information attached to this stats
*/
attachments?: Record<string, unknown>;
};
/**
* The duration of quality limitation reasons categorized by type.
*/
export type QualityLimitationDurations = {
/**
* Duration of no quality limitation in seconds.
*/
none: number;
/**
* Duration of CPU-based quality limitation in seconds.
*/
cpu: number;
/**
* Duration of bandwidth-based quality limitation in seconds.
*/
bandwidth: number;
/**
* Duration of other quality limitation reasons in seconds.
*/
other: number;
};
/**
* Outbound RTP Stats
*/
export type OutboundRtpStats = {
/**
* The timestamp for this stats object in DOMHighResTimeStamp format.
*/
timestamp: number;
/**
* The unique identifier for this stats object.
*/
id: string;
/**
* The SSRC identifier of the RTP stream.
*/
ssrc: number;
/**
* The type of media ('audio' or 'video').
*/
kind: string;
/**
* The ID of the transport used for this stream.
*/
transportId?: string;
/**
* The ID of the codec used for this stream.
*/
codecId?: string;
/**
* The total number of packets sent on this stream.
*/
packetsSent?: number;
/**
* The total number of bytes sent on this stream.
*/
bytesSent?: number;
/**
* The media ID associated with this RTP stream.
*/
mid?: string;
/**
* The ID of the media source associated with this stream.
*/
mediaSourceId?: string;
/**
* The ID of the remote object corresponding to this stream.
*/
remoteId?: string;
/**
* The RID value of the RTP stream.
*/
rid?: string;
/**
* The total number of header bytes sent on this stream.
*/
headerBytesSent?: number;
/**
* The number of retransmitted packets sent on this stream.
*/
retransmittedPacketsSent?: number;
/**
* The number of retransmitted bytes sent on this stream.
*/
retransmittedBytesSent?: number;
/**
* The SSRC for the RTX stream, if applicable.
*/
rtxSsrc?: number;
/**
* The target bitrate for this RTP stream in bits per second.
*/
targetBitrate?: number;
/**
* The total target encoded bytes for this stream.
*/
totalEncodedBytesTarget?: number;
/**
* The width of the frames sent in pixels.
*/
frameWidth?: number;
/**
* The height of the frames sent in pixels.
*/
frameHeight?: number;
/**
* The number of frames sent per second.
*/
framesPerSecond?: number;
/**
* The total number of frames sent on this stream.
*/
framesSent?: number;
/**
* The total number of huge frames sent on this stream.
*/
hugeFramesSent?: number;
/**
* The total number of frames encoded on this stream.
*/
framesEncoded?: number;
/**
* The total number of key frames encoded on this stream.
*/
keyFramesEncoded?: number;
/**
* The sum of QP values for all frames encoded on this stream.
*/
qpSum?: number;
/**
* The total time spent encoding frames on this stream in seconds.
*/
totalEncodeTime?: number;
/**
* The total delay for packets sent on this stream in seconds.
*/
totalPacketSendDelay?: number;
/**
* The reason for any quality limitation on this stream.
*/
qualityLimitationReason?: string;
/**
* The number of resolution changes due to quality limitations.
*/
qualityLimitationResolutionChanges?: number;
/**
* The total number of NACK packets sent on this stream.
*/
nackCount?: number;
/**
* The total number of FIR packets sent on this stream.
*/
firCount?: number;
/**
* The total number of PLI packets sent on this stream.
*/
pliCount?: number;
/**
* The implementation of the encoder used for this stream.
*/
encoderImplementation?: string;
/**
* Indicates whether the encoder is power-efficient.
*/
powerEfficientEncoder?: boolean;
/**
* Indicates whether this stream is actively sending data.
*/
active?: boolean;
/**
* The scalability mode of the encoder used for this stream.
*/
scalabilityMode?: string;
/**
* The duration of quality limitation reasons categorized by type.
*/
qualityLimitationDurations?: QualityLimitationDurations;
/**
* Additional information attached to this stats.
*/
attachments?: Record<string, unknown>;
};
/**
* Remote Inbound RTP Stats
*/
export type RemoteInboundRtpStats = {
/**
* The timestamp for this stats object in DOMHighResTimeStamp format.
*/
timestamp: number;
/**
* The unique identifier for this stats object.
*/
id: string;
/**
* The SSRC identifier of the RTP stream.
*/
ssrc: number;
/**
* The type of media ('audio' or 'video').
*/
kind: string;
/**
* The ID of the transport used for this stream.
*/
transportId?: string;
/**
* The ID of the codec used for this stream.
*/
codecId?: string;
/**
* The total number of packets received on this stream.
*/
packetsReceived?: number;
/**
* The total number of packets lost on this stream.
*/
packetsLost?: number;
/**
* The jitter value for this stream in seconds.
*/
jitter?: number;
/**
* The ID of the local object corresponding to this remote stream.
*/
localId?: string;
/**
* The most recent RTT measurement for this stream in seconds.
*/
roundTripTime?: number;
/**
* The cumulative RTT for all packets on this stream in seconds.
*/
totalRoundTripTime?: number;
/**
* The fraction of packets lost on this stream, calculated over a time interval.
*/
fractionLost?: number;
/**
* The total number of RTT measurements for this stream.
*/
roundTripTimeMeasurements?: number;
/**
* Additional information attached to this stats
*/
attachments?: Record<string, unknown>;
};
/**
* Inbound RTP Stats
*/
export type InboundRtpStats = {
/**
* The time the stats were collected, in high-resolution time.
*/
timestamp: number;
/**
* Unique identifier of the stats object.
*/
id: string;
/**
* Synchronization source identifier of the RTP stream.
*/
ssrc: number;
/**
* Kind of the media (e.g., 'audio' or 'video').
*/
kind: string;
/**
* Identifier for the media track associated with the RTP stream.
*/
trackIdentifier: string;
/**
* ID of the transport associated with the RTP stream.
*/
transportId?: string;
/**
* ID of the codec used for the RTP stream.
*/
codecId?: string;
/**
* Number of packets received on the RTP stream.
*/
packetsReceived?: number;
/**
* Number of packets lost on the RTP stream.
*/
packetsLost?: number;
/**
* Jitter of the RTP stream in seconds.
*/
jitter?: number;
/**
* The media stream identification tag from the SDP media section.
*/
mid?: string;
/**
* Remote stats object ID associated with the RTP stream.
*/
remoteId?: string;
/**
* Number of frames decoded.
*/
framesDecoded?: number;
/**
* Number of keyframes decoded.
*/
keyFramesDecoded?: number;
/**
* Number of frames rendered.
*/
framesRendered?: number;
/**
* Number of frames dropped.
*/
framesDropped?: number;
/**
* Width of the decoded video frames.
*/
frameWidth?: number;
/**
* Height of the decoded video frames.
*/
frameHeight?: number;
/**
* Frame rate in frames per second.
*/
framesPerSecond?: number;
/**
* Sum of the Quantization Parameter values for decoded frames.
*/
qpSum?: number;
/**
* Total time spent decoding in seconds.
*/
totalDecodeTime?: number;
/**
* Sum of inter-frame delays in seconds.
*/
totalInterFrameDelay?: number;
/**
* Sum of squared inter-frame delays in seconds.
*/
totalSquaredInterFrameDelay?: number;
/**
* Number of times playback was paused.
*/
pauseCount?: number;
/**
* Total duration of pauses in seconds.
*/
totalPausesDuration?: number;
/**
* Number of times playback was frozen.
*/
freezeCount?: number;
/**
* Total duration of freezes in seconds.
*/
totalFreezesDuration?: number;
/**
* Timestamp of the last packet received.
*/
lastPacketReceivedTimestamp?: number;
/**
* Total header bytes received.
*/
headerBytesReceived?: number;
/**
* Total packets discarded.
*/
packetsDiscarded?: number;
/**
* Total bytes received from FEC.
*/
fecBytesReceived?: number;
/**
* Total packets received from FEC.
*/
fecPacketsReceived?: number;
/**
* Total FEC packets discarded.
*/
fecPacketsDiscarded?: number;
/**
* Total bytes received on the RTP stream.
*/
bytesReceived?: number;
/**
* Number of NACKs received.
*/
nackCount?: number;
/**
* Number of Full Intra Requests received.
*/
firCount?: number;
/**
* Number of Picture Loss Indications received.
*/
pliCount?: number;
/**
* Total processing delay in seconds.
*/
totalProcessingDelay?: number;
/**
* Estimated timestamp of playout.
*/
estimatedPlayoutTimestamp?: number;
/**
* Total jitter buffer delay in seconds.
*/
jitterBufferDelay?: number;
/**
* Target delay for the jitter buffer in seconds.
*/
jitterBufferTargetDelay?: number;
/**
* Number of packets emitted from the jitter buffer.
*/
jitterBufferEmittedCount?: number;
/**
* Minimum delay of the jitter buffer in seconds.
*/
jitterBufferMinimumDelay?: number;
/**
* Total audio samples received.
*/
totalSamplesReceived?: number;
/**
* Number of concealed audio samples.
*/
concealedSamples?: number;
/**
* Number of silent audio samples concealed.
*/
silentConcealedSamples?: number;
/**
* Number of audio concealment events.
*/
concealmentEvents?: number;
/**
* Number of audio samples inserted for deceleration.
*/
insertedSamplesForDeceleration?: number;
/**
* Number of audio samples removed for acceleration.
*/
removedSamplesForAcceleration?: number;
/**
* Audio level in the range [0.0, 1.0].
*/
audioLevel?: number;
/**
* Total audio energy in the stream.
*/
totalAudioEnergy?: number;
/**
* Total duration of all received audio samples in seconds.
*/
totalSamplesDuration?: number;
/**
* Total number of frames received.
*/
framesReceived?: number;
/**
* Decoder implementation used for decoding frames.
*/
decoderImplementation?: string;
/**
* Playout identifier for the RTP stream.
*/
playoutId?: string;
/**
* Indicates if the decoder is power-efficient.
*/
powerEfficientDecoder?: boolean;
/**
* Number of frames assembled from multiple packets.
*/
framesAssembledFromMultiplePackets?: number;
/**
* Total assembly time for frames in seconds.
*/
totalAssemblyTime?: number;
/**
* Number of retransmitted packets received.
*/
retransmittedPacketsReceived?: number;
/**
* Number of retransmitted bytes received.
*/
retransmittedBytesReceived?: number;
/**
* SSRC of the retransmission stream.
*/
rtxSsrc?: number;
/**
* SSRC of the FEC stream.
*/
fecSsrc?: number;
/**
* Total corruption probability of packets.
*/
totalCorruptionProbability?: number;
/**
* Total squared corruption probability of packets.
*/
totalSquaredCorruptionProbability?: number;
/**
* Number of corruption measurements.
*/
corruptionMeasurements?: number;
/**
* Additional information attached to this stats
*/
attachments?: Record<string, unknown>;
};
/**
* Codec items
*/
export type CodecStats = {
/**
* The timestamp when the stats were generated.
*/
timestamp: number;
/**
* The unique identifier for the stats object.
*/
id: string;
/**
* The MIME type of the codec.
*/
mimeType: string;
/**
* The payload type of the codec.
*/
payloadType?: number;
/**
* The identifier of the transport associated with the codec.
*/
transportId?: string;
/**
* The clock rate of the codec in Hz.
*/
clockRate?: number;
/**
* The number of audio channels for the codec, if applicable.
*/
channels?: number;
/**
* The SDP format-specific parameters line for the codec.
*/
sdpFmtpLine?: string;
/**
* Additional information attached to this stats
*/
attachments?: Record<string, unknown>;
};
/**
* Outbound Track Stats items
*/
export type OutboundTrackSample = {
/**
* The timestamp when the stats were generated.
*/
timestamp: number;
/**
* The unique identifier for the stats object.
*/
id: string;
/**
* Kind of the media (e.g., 'audio' or 'video').
*/
kind: string;
/**
* Calculated score for track (details should be added to scoreReasons)
*/
score?: number;
/**
* Details for score calculation
*/
scoreReasons?: string;
/**
* Additional information attached to this stats
*/
attachments?: Record<string, unknown>;
};
/**
* Inbound Track Stats items
*/
export type InboundTrackSample = {
/**
* The timestamp when the stats were generated.
*/
timestamp: number;
/**
* The unique identifier for the stats object.
*/
id: string;
/**
* Kind of the media (e.g., 'audio' or 'video').
*/
kind: string;
/**
* Calculated score for track (details should be added to scoreReasons)
*/
score?: number;
/**
* Details for score calculation
*/
scoreReasons?: string;
/**
* Additional information attached to this stats
*/
attachments?: Record<string, unknown>;
};
/**
* A sample containing statistics and metrics for a WebRTC peer connection
*/
export type PeerConnectionSample = {
/**
* Unique identifier of the stats object.
*/
peerConnectionId: string;
/**
* Additional information attached to this sample
*/
attachments?: Record<string, unknown>;
/**
* Calculated score for peer connection (details should be added to scoreReasons)
*/
score?: number;
/**
* Details for score calculation
*/
scoreReasons?: string;
/**
* Inbound Track Stats items
*/
inboundTracks?: InboundTrackSample[];
/**
* Outbound Track Stats items
*/
outboundTracks?: OutboundTrackSample[];
/**
* Codec items
*/
codecs?: CodecStats[];
/**
* Inbound RTP Stats
*/
inboundRtps?: InboundRtpStats[];
/**
* Remote Inbound RTP Stats
*/
remoteInboundRtps?: RemoteInboundRtpStats[];
/**
* Outbound RTP Stats
*/
outboundRtps?: OutboundRtpStats[];
/**
* Remote Outbound RTP Stats
*/
remoteOutboundRtps?: RemoteOutboundRtpStats[];
/**
* Audio Source Stats
*/
mediaSources?: MediaSourceStats[];
/**
* Media Playout Stats
*/
mediaPlayouts?: MediaPlayoutStats[];
/**
* PeerConnection Transport Stats
*/
peerConnectionTransports?: PeerConnectionTransportStats[];
/**
* Data Channels Stats
*/
dataChannels?: DataChannelStats[];
/**
* ICE Transport Stats
*/
iceTransports?: IceTransportStats[];
/**
* ICE Candidate Stats
*/
iceCandidates?: IceCandidateStats[];
/**
* ICE Candidate Pair Stats
*/
iceCandidatePairs?: IceCandidatePairStats[];
/**
* Certificate Stats
*/
certificates?: CertificateStats[];
};
/**
* docs
*/
export type ClientSample = {
/**
* The timestamp the sample is created in GMT
*/
timestamp: number;
/**
* the unique identifier of the call or session
*/
callId?: string;
/**
* Unique id of the client providing samples.
*/
clientId?: string;
/**
* Additional information attached to this sample (e.g.: roomId, userId, displayName, etc...)
*/
attachments?: Record<string, unknown>;
/**
* Calculated score for client (details should be added to scoreReasons)
*/
score?: number;
/**
* Details for score calculation
*/
scoreReasons?: string;
/**
* Samples taken PeerConnections
*/
peerConnections?: PeerConnectionSample[];
/**
* A list of client events.
*/
clientEvents?: ClientEvent[];
/**
* A list of client issues.
*/
clientIssues?: ClientIssue[];
/**
* A list of additional client events.
*/
clientMetaItems?: ClientMetaData[];
/**
* The WebRTC app provided custom stats payload
*/
extensionStats?: ExtensionStat[];
};
//# sourceMappingURL=OutputSamples.d.ts.map