UNPKG

@observertc/client-monitor-js

Version:

ObserveRTC Client Integration Javascript Library

47 lines (46 loc) 2.04 kB
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; }