UNPKG

@observertc/client-monitor-js

Version:

ObserveRTC Client Integration Javascript Library

1 lines 909 B
export class PlayoutDiscrepancyDetector{trackMonitor;name="playout-discrepancy-detector";constructor(e){this.trackMonitor=e}get peerConnection(){return this.trackMonitor.getPeerConnection()}get config(){return this.peerConnection.parent.config.playoutDiscrepancyDetector}active=!1;update(){if(this.config.disabled)return;const e=this.trackMonitor.getInboundRtp();if(!(e&&e.deltaFramesReceived&&e.deltaFramesRendered&&e.ewmaFps))return;const t=e.deltaFramesReceived-e.deltaFramesRendered;if(this.active)return t<this.config.lowSkewThreshold?void(this.active=!1):void 0;if(t<this.config.highSkewThreshold)return;this.active=!0;const i=this.peerConnection.parent;i.emit("inbound-video-playout-discrepancy",{trackMonitor:this.trackMonitor,clientMonitor:i}),this.config.createIssue&&i.addIssue({type:"inbound-video-playout-discrepancy",payload:{trackId:this.trackMonitor.track.id,frameSkew:t,ewmaFps:e.ewmaFps}})}}