@observertc/client-monitor-js
Version:
ObserveRTC Client Integration Javascript Library
47 lines (46 loc) • 2.04 kB
TypeScript
import { ClientMonitor } from "../ClientMonitor";
import { TrackMonitor } from "../monitors/TrackMonitor";
export type DefaultScoreCalculatorOutboundVideoTrackScoreAppData = {
lastNScores: number[];
diffBitrateSquares: number[];
lastBitrate?: number;
ewmaBitrate?: number;
};
export type DefaultScoreCalculatorSubtractionReason = 'high-rtt' | 'very-high-rtt' | 'high-packetloss' | 'low-fps' | 'volatile-fps' | 'dropped-video-frames' | 'video-frame-corruptions' | 'high-deviation-from-target-bitrate' | 'cpu-limitation' | 'high-volatile-bitrate';
export type DefaultScoreCalculatorSubtractions = {
[x in DefaultScoreCalculatorSubtractionReason]?: number;
};
export type DefaultScoreCalculatorOutboundAudioTrackScoreAppData = {
lastNScores: number[];
};
export type DefaultScoreCalculatorInboundVideoTrackScoreAppData = {
lastNScores: number[];
};
export type DefaultScoreCalculatorPeerConnectionScoreAppData = {
lastNScores: number[];
};
export declare class DefaultScoreCalculator {
private readonly clientMonitor;
static readonly MAX_SCORE = 5;
static readonly MIN_SCORE = 0;
static lastNScoresMaxLength: number;
static lastNScoresMinLength: number;
static readonly TARGET_AUDIO_BITRATE = 32000;
static readonly MIN_AUDIO_BITRATE = 6000;
private static readonly NORMALIZATION_FACTOR;
currentReasons: DefaultScoreCalculatorSubtractions;
totalReasons: DefaultScoreCalculatorSubtractions;
constructor(clientMonitor: ClientMonitor);
update(): void;
encodeScoreReasons<T extends Record<string, number>>(reasons?: T): string;
_calculateClientMonitorScore(): void;
private _calculatePeerConnectionStabilityScore;
_calculateTrackScore(trackMonitor: TrackMonitor): void;
private _calculateInboundVideoTrackScore;
private _calculateOutboundVideoTrackScore;
private _calculateInboundAudioTrackScore;
private _calculateOutboundAudioTrackScore;
private _calculateFinalScore;
private _getRoundedScore;
private _getTotalSubtraction;
}