@observertc/client-monitor-js
Version:
ObserveRTC Client Integration Javascript Library
49 lines (48 loc) • 1.57 kB
TypeScript
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;
}