UNPKG

@observertc/client-monitor-js

Version:

ObserveRTC Client Integration Javascript Library

49 lines (48 loc) 1.57 kB
import { Detector } from "./Detector"; import { OutboundTrackMonitor } from "../monitors/OutboundTrackMonitor"; export type CaptureBottleneckIssuePayload = { peerConnectionId: string; trackId: string; sourceFps?: number; expectedFps?: number; sourceWidth?: number; sourceHeight?: number; consecutiveTicks: number; durationInMs?: number; }; export type EncoderBottleneckIssuePayload = { peerConnectionId: string; trackId: string; sourceFps?: number; encodedFps?: number; encodeTimePerFrameInMs?: number; qualityLimitationReason?: string; cpuLimitationShare?: number; encoderImplementation?: string; powerEfficientEncoder?: boolean; consecutiveTicks: number; durationInMs?: number; }; export declare class SourceEncoderBottleneckDetector implements Detector { readonly trackMonitor: OutboundTrackMonitor; static readonly CAPTURE_ISSUE_TYPE = "capture-bottleneck"; static readonly ENCODER_ISSUE_TYPE = "encoder-bottleneck"; readonly name = "source-encoder-bottleneck-detector"; disabled: boolean; private readonly _captureIssueKey; private readonly _encoderIssueKey; private _captureTicks; private _captureOn; private _captureStartedAt?; private _encoderTicks; private _encoderOn; private _encoderStartedAt?; constructor(trackMonitor: OutboundTrackMonitor); private get config(); private get peerConnection(); update(): void; private _expectedFps; private _checkCapture; private _checkEncoder; private _resolve; }