UNPKG

@observertc/client-monitor-js

Version:

ObserveRTC Client Integration Javascript Library

110 lines (109 loc) 5.64 kB
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;