matrix-js-sdk
Version:
Matrix Client-Server SDK for Javascript
99 lines • 3.27 kB
TypeScript
import { ConnectionStatsBandwidth, ConnectionStatsBitrate, PacketLoss } from "./connectionStats";
import { TransportStats } from "./transportStats";
import { Resolution } from "./media/mediaTrackStats";
export declare enum StatsReport {
CONNECTION_STATS = "StatsReport.connection_stats",
CALL_FEED_REPORT = "StatsReport.call_feed_report",
BYTE_SENT_STATS = "StatsReport.byte_sent_stats",
SUMMARY_STATS = "StatsReport.summary_stats"
}
export interface ByteSentStatsReport extends Map<TrackID, ByteSend> {
callId?: string;
opponentMemberId?: string;
}
export type TrackID = string;
export type ByteSend = number;
export interface ConnectionStatsReport {
callId?: string;
opponentMemberId?: string;
bandwidth: ConnectionStatsBandwidth;
bitrate: ConnectionStatsBitrate;
packetLoss: PacketLoss;
audioConcealment: Map<TrackID, AudioConcealment>;
totalAudioConcealment: AudioConcealment;
resolution: ResolutionMap;
framerate: FramerateMap;
codec: CodecMap;
jitter: Map<TrackID, number>;
transport: TransportStats[];
}
export interface AudioConcealment {
concealedAudio: number;
totalAudioDuration: number;
}
export interface ResolutionMap {
local: Map<TrackID, Resolution>;
remote: Map<TrackID, Resolution>;
}
export interface FramerateMap {
local: Map<TrackID, number>;
remote: Map<TrackID, number>;
}
export interface CodecMap {
local: Map<TrackID, string>;
remote: Map<TrackID, string>;
}
export interface SummaryStatsReport {
/**
* Aggregated the information for percentage of received media
*
* This measure whether the current user receive data from a call participants.
* As soon as a participant sends at least a byte media to this user, this counts as one measurement unit.
* The units of measure divided by the total number of participants is a value between 0 and 1.
*/
percentageReceivedMedia: number;
percentageReceivedAudioMedia: number;
percentageReceivedVideoMedia: number;
maxJitter: number;
maxPacketLoss: number;
percentageConcealedAudio: number;
peerConnections: number;
opponentUsersInCall?: number;
opponentDevicesInCall?: number;
diffDevicesToPeerConnections?: number;
ratioPeerConnectionToDevices?: number;
}
export interface CallFeedReport {
callId: string;
opponentMemberId: string;
transceiver: TransceiverStats[];
callFeeds: CallFeedStats[];
}
export interface CallFeedStats {
stream: string;
type: "remote" | "local";
audio: TrackStats | null;
video: TrackStats | null;
purpose: string;
prefix: string;
isVideoMuted: boolean;
isAudioMuted: boolean;
}
export interface TransceiverStats {
readonly mid: string;
readonly sender: TrackStats | null;
readonly receiver: TrackStats | null;
readonly direction: string;
readonly currentDirection: string;
}
export interface TrackStats {
readonly id: string;
readonly kind: "audio" | "video";
readonly settingDeviceId: string;
readonly constrainDeviceId: string;
readonly muted: boolean;
readonly enabled: boolean;
readonly readyState: "ended" | "live";
readonly label: string;
}
//# sourceMappingURL=statsReport.d.ts.map