UNPKG

@observertc/client-monitor-js

Version:

ObserveRTC Client Integration Javascript Library

1 lines 1.17 kB
export class DryInboundTrackDetector{trackMonitor;static ISSUE_TYPE="dry-inbound-track";name="dry-inbound-track-detector";constructor(t){this.trackMonitor=t}_evented=!1;get peerConnection(){return this.trackMonitor.getPeerConnection()}get config(){return this.peerConnection.parent.config.dryInboundTrackDetector}_activatedAt;update(){if(this.config.disabled)return;if(this.trackMonitor.remoteOutboundTrackPaused)return void(this._activatedAt=void 0);if(0!==this.trackMonitor.getInboundRtp()?.deltaBytesReceived)return this._activatedAt=void 0,void(this._evented&&(this._resolveIssue(),this._evented=!1));this._activatedAt||(this._activatedAt=Date.now());const t=Date.now()-this._activatedAt,e=this.peerConnection.parent;t<this.config.thresholdInMs||(e.emit("dry-inbound-track",{trackMonitor:this.trackMonitor,clientMonitor:e}),this.config.createIssue&&e.addIssue({type:DryInboundTrackDetector.ISSUE_TYPE,payload:{trackId:this.trackMonitor.track.id,duration:t}}),this._evented=!0)}_resolveIssue(){const t=this.peerConnection.parent;this.config.createIssue&&t.resolveActiveIssues(DryInboundTrackDetector.ISSUE_TYPE,(t=>t.payload?.trackId===this.trackMonitor.track.id))}}