@observertc/client-monitor-js
Version:
ObserveRTC Client Integration Javascript Library
110 lines (109 loc) • 5.64 kB
TypeScript
import { RaisedClientIssue, ResolvedClientIssue } from "./ClientMonitorEvents";
import { AudioDesyncIssuePayload } from "./detectors/AudioDesyncDetector";
import { CongestionIssuePayload } from "./detectors/CongestionDetector";
import { CpuPerformanceIssuePayload } from "./detectors/CpuPerformanceDetector";
import { DryInboundTrackIssuePayload } from "./detectors/DryInboundTrackDetector";
import { DryOutboundTrackIssuePayload } from "./detectors/DryOutboundTrackDetector";
import { FreezedVideoTrackIssuePayload } from "./detectors/FreezedVideoTrackDetector";
import { IceConnectionFailedIssuePayload, IceDisconnectedIssuePayload, IceTransportStalledIssuePayload, UnstableIcePathIssuePayload } from "./detectors/IceConnectivityDetector";
import { PlayoutDiscrepancyIssuePayload } from "./detectors/PlayoutDiscrepancyDetector";
import { AudioConcealmentIssuePayload } from "./detectors/AudioConcealmentDetector";
import { JitterBufferStressIssuePayload } from "./detectors/JitterBufferStressDetector";
import { DecoderPerformanceIssuePayload } from "./detectors/DecoderPerformanceDetector";
import { KeyframeStormIssuePayload, VideoRecoveryFailedIssuePayload } from "./detectors/FreezedVideoTrackDetector";
import { CaptureBottleneckIssuePayload, EncoderBottleneckIssuePayload } from "./detectors/SourceEncoderBottleneckDetector";
import { CaptureTrackEndedIssuePayload, SilentAudioSourceIssuePayload } from "./detectors/CaptureFailureDetector";
import { StuckDecoderIssuePayload } from "./detectors/StuckDecoderDetector";
export type ClientMonitorIssue = RaisedClientIssue<CpuPerformanceIssuePayload> & {
type: 'cpulimitation';
} | RaisedClientIssue<CongestionIssuePayload> & {
type: 'congestion';
} | RaisedClientIssue<AudioDesyncIssuePayload> & {
type: 'audio-desync';
} | RaisedClientIssue<DryInboundTrackIssuePayload> & {
type: 'dry-inbound-track';
} | RaisedClientIssue<DryOutboundTrackIssuePayload> & {
type: 'dry-outbound-track';
} | RaisedClientIssue<FreezedVideoTrackIssuePayload> & {
type: 'freezed-video-track';
} | RaisedClientIssue<PlayoutDiscrepancyIssuePayload> & {
type: 'inbound-video-playout-discrepancy';
} | RaisedClientIssue<UnstableIcePathIssuePayload> & {
type: 'unstable-ice-path';
} | RaisedClientIssue<IceDisconnectedIssuePayload> & {
type: 'ice-disconnected';
} | RaisedClientIssue<IceConnectionFailedIssuePayload> & {
type: 'ice-connection-failed';
} | RaisedClientIssue<IceTransportStalledIssuePayload> & {
type: 'ice-transport-stalled';
} | RaisedClientIssue<AudioConcealmentIssuePayload> & {
type: 'audio-concealment';
} | RaisedClientIssue<JitterBufferStressIssuePayload> & {
type: 'audio-jitter-buffer-stress';
} | RaisedClientIssue<DecoderPerformanceIssuePayload> & {
type: 'video-decoder-overloaded';
} | RaisedClientIssue<KeyframeStormIssuePayload> & {
type: 'keyframe-storm';
} | RaisedClientIssue<VideoRecoveryFailedIssuePayload> & {
type: 'video-recovery-failed';
} | RaisedClientIssue<CaptureBottleneckIssuePayload> & {
type: 'capture-bottleneck';
} | RaisedClientIssue<EncoderBottleneckIssuePayload> & {
type: 'encoder-bottleneck';
} | RaisedClientIssue<CaptureTrackEndedIssuePayload> & {
type: 'capture-track-ended';
} | RaisedClientIssue<SilentAudioSourceIssuePayload> & {
type: 'silent-audio-source';
} | RaisedClientIssue<StuckDecoderIssuePayload> & {
type: 'stuck-decoder';
};
export type ClientMonitorResolvedIssue = ResolvedClientIssue<CpuPerformanceIssuePayload> & {
type: 'cpulimitation';
} | ResolvedClientIssue<CongestionIssuePayload> & {
type: 'congestion';
} | ResolvedClientIssue<AudioDesyncIssuePayload> & {
type: 'audio-desync';
} | ResolvedClientIssue<DryInboundTrackIssuePayload> & {
type: 'dry-inbound-track';
} | ResolvedClientIssue<DryOutboundTrackIssuePayload> & {
type: 'dry-outbound-track';
} | ResolvedClientIssue<FreezedVideoTrackIssuePayload> & {
type: 'freezed-video-track';
} | ResolvedClientIssue<PlayoutDiscrepancyIssuePayload> & {
type: 'inbound-video-playout-discrepancy';
} | ResolvedClientIssue<UnstableIcePathIssuePayload> & {
type: 'unstable-ice-path';
} | ResolvedClientIssue<IceDisconnectedIssuePayload> & {
type: 'ice-disconnected';
} | ResolvedClientIssue<IceConnectionFailedIssuePayload> & {
type: 'ice-connection-failed';
} | ResolvedClientIssue<IceTransportStalledIssuePayload> & {
type: 'ice-transport-stalled';
} | ResolvedClientIssue<AudioConcealmentIssuePayload> & {
type: 'audio-concealment';
} | ResolvedClientIssue<JitterBufferStressIssuePayload> & {
type: 'audio-jitter-buffer-stress';
} | ResolvedClientIssue<DecoderPerformanceIssuePayload> & {
type: 'video-decoder-overloaded';
} | ResolvedClientIssue<KeyframeStormIssuePayload> & {
type: 'keyframe-storm';
} | ResolvedClientIssue<VideoRecoveryFailedIssuePayload> & {
type: 'video-recovery-failed';
} | ResolvedClientIssue<CaptureBottleneckIssuePayload> & {
type: 'capture-bottleneck';
} | ResolvedClientIssue<EncoderBottleneckIssuePayload> & {
type: 'encoder-bottleneck';
} | ResolvedClientIssue<CaptureTrackEndedIssuePayload> & {
type: 'capture-track-ended';
} | ResolvedClientIssue<SilentAudioSourceIssuePayload> & {
type: 'silent-audio-source';
} | ResolvedClientIssue<StuckDecoderIssuePayload> & {
type: 'stuck-decoder';
};
export type ClientMonitorIssueType = ClientMonitorIssue['type'];
export declare function isClientMonitorIssue(issue: {
type: string;
}): issue is ClientMonitorIssue;
export declare function isClientMonitorResolvedIssue(issue: {
type: string;
}): issue is ClientMonitorResolvedIssue;