UNPKG

@observertc/client-monitor-js

Version:

ObserveRTC Client Integration Javascript Library

1 lines 1.01 kB
export class FreezedVideoTrackDetector{trackMonitor;static ISSUE_TYPE="freezed-video-track";name="freezed-video-track-detector";constructor(e){this.trackMonitor=e}get _config(){return this.peerConnection.parent.config.videoFreezesDetector}get peerConnection(){return this.trackMonitor.getPeerConnection()}_lastFreezeCount=0;update(){const e=this.trackMonitor.getInboundRtp();if(!e||!e.freezeCount||this._config.disabled)return;const t=e.isFreezed,r=this.peerConnection.parent;e.isFreezed=0<Math.max(0,e.freezeCount-this._lastFreezeCount),this._lastFreezeCount=e.freezeCount,!t&&e.isFreezed?(r.emit("freezed-video-track",{clientMonitor:this.peerConnection.parent,trackMonitor:this.trackMonitor}),this._config.createIssue&&r.addIssue({type:FreezedVideoTrackDetector.ISSUE_TYPE,payload:{trackId:e.trackIdentifier}})):t&&!e.isFreezed&&this._resolveIssue()}_resolveIssue(){return this.peerConnection.parent.resolveActiveIssues(FreezedVideoTrackDetector.ISSUE_TYPE,(e=>e.payload?.trackId===this.trackMonitor.track.id))}}