vani-meeting-client
Version:
Vani Meeting Clinet SDK
41 lines (40 loc) • 1.35 kB
TypeScript
import { DeviceTier } from '../model/MeetingStartRequest';
export type NetworkProfile = 'good' | 'degraded' | 'poor' | 'critical';
export interface ResolvedConfig {
videoEnabled: boolean;
videoWidth: number;
videoHeight: number;
videoFrameRate: number;
opusBitrate: number;
opusPtime: number;
opusFec: boolean;
opusDtx: boolean;
opusMaxPlaybackRate: number;
opusComplexity: number;
}
export declare class MediaAdaptationManager {
private readonly getPeerConnections;
private readonly getVideoTrack;
private readonly onProfileChange;
private readonly deviceTier;
private networkProfile;
private handle;
private tickCount;
private badSamples;
private goodSamples;
constructor(getPeerConnections: () => RTCPeerConnection[], getVideoTrack: () => any | null, onProfileChange: (profile: NetworkProfile, config: ResolvedConfig) => void, deviceTier?: DeviceTier);
start(): Promise<void>;
stop(): void;
applyToNewConnection(_pc: RTCPeerConnection): void;
private tick;
private switchProfile;
private applyVideo;
buildOpusFmtp(payloadType: string): string;
private collectStats;
private classify;
private resolved;
private rank;
private stepUp;
getCurrentProfile(): NetworkProfile;
getCurrentResolved(): ResolvedConfig;
}