@observertc/client-monitor-js
Version:
ObserveRTC Client Integration Javascript Library
1 lines • 2.61 kB
JavaScript
import{positiveDelta as t}from"../utils/common";export class RemoteInboundRtpMonitor{_peerConnection;_visited=!0;timestamp;id;ssrc;kind;transportId;codecId;packetsReceived;packetsReceivedWithEct1;packetsReceivedWithCe;packetsReportedAsLost;packetsReportedAsLostButRecovered;packetsLost;jitter;localId;roundTripTime;totalRoundTripTime;fractionLost;roundTripTimeMeasurements;packetsWithBleachedEct1Marking;packetRate;deltaPacketsLost;deltaPacketsReceived;deltaFractionLost;avgRoundTripTimeInSec;deltaTotalRoundTripTime;deltaRoundTripTimeMeasurements;attachments;appData;constructor(t,e){this._peerConnection=t,this.id=e.id,this.timestamp=e.timestamp,this.ssrc=e.ssrc,this.kind=e.kind,Object.assign(this,e)}get visited(){const t=this._visited;return this._visited=!1,t}getPeerConnection(){return this._peerConnection}getOutboundRtp(){return this._peerConnection.mappedOutboundRtpMonitors.get(this.ssrc)}getCodec(){return this._peerConnection.mappedCodecMonitors.get(this.codecId??"")}accept(e){this._visited=!0;const i=e.timestamp-this.timestamp;if(i<=0)return;const s=i/1e3;if(this.deltaPacketsReceived=t(e.packetsReceived,this.packetsReceived),void 0!==this.deltaPacketsReceived&&(this.packetRate=this.deltaPacketsReceived/s),this.deltaPacketsLost=t(e.packetsLost,this.packetsLost),this.deltaTotalRoundTripTime=t(e.totalRoundTripTime,this.totalRoundTripTime),this.deltaRoundTripTimeMeasurements=t(e.roundTripTimeMeasurements,this.roundTripTimeMeasurements),this.avgRoundTripTimeInSec=void 0!==this.deltaTotalRoundTripTime&&void 0!==this.deltaRoundTripTimeMeasurements&&this.deltaRoundTripTimeMeasurements>0?this.deltaTotalRoundTripTime/this.deltaRoundTripTimeMeasurements:void 0,void 0!==this.deltaPacketsReceived&&void 0!==this.deltaPacketsLost){const t=this.deltaPacketsReceived+this.deltaPacketsLost;this.deltaFractionLost=t>0?this.deltaPacketsLost/t:0}Object.assign(this,e)}createSample(){return{timestamp:this.timestamp,id:this.id,ssrc:this.ssrc,kind:this.kind,transportId:this.transportId,codecId:this.codecId,packetsReceived:this.packetsReceived,packetsReceivedWithEct1:this.packetsReceivedWithEct1,packetsReceivedWithCe:this.packetsReceivedWithCe,packetsReportedAsLost:this.packetsReportedAsLost,packetsReportedAsLostButRecovered:this.packetsReportedAsLostButRecovered,packetsLost:this.packetsLost,jitter:this.jitter,localId:this.localId,roundTripTime:this.roundTripTime,totalRoundTripTime:this.totalRoundTripTime,fractionLost:this.fractionLost,roundTripTimeMeasurements:this.roundTripTimeMeasurements,packetsWithBleachedEct1Marking:this.packetsWithBleachedEct1Marking,attachments:this.attachments}}}