@webex/internal-media-core 2.24.1 → 2.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js
CHANGED
|
@@ -4925,7 +4925,7 @@ for(i=listeners.length-1;i>=0;i--){this.removeListener(type,listeners[i]);}}retu
|
|
|
4925
4925
|
// EventEmitters, we do not listen for `error` events here.
|
|
4926
4926
|
emitter.addEventListener(name,function wrapListener(arg){// IE does not have builtin `{ once: true }` support so we
|
|
4927
4927
|
// have to do it manually.
|
|
4928
|
-
if(flags.once){emitter.removeEventListener(name,wrapListener);}listener(arg);});}else {throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof emitter);}}class EventEmitter$2 extends events$1.exports.EventEmitter{}class IngressSdpMunger{constructor(){this.customCodecParameters=new Map();this.ssrc=generateSsrc();}getReceiverId(){return Object.assign({ssrc:this.ssrc},this.rtxSsrc?{rtxSsrc:this.rtxSsrc}:{});}mungeLocalDescription(mediaDescription,options){retainCodecsByMimeType(mediaDescription,options.supportedCodecs);if(mediaDescription.codecs.size===0){logErrorAndThrow(exports.WcmeErrorType.SDP_MUNGE_MISSING_CODECS,"No codecs present in m-line with MID ".concat(mediaDescription.mid," after filtering."));}removeMidRidExtensions(mediaDescription);this.customCodecParameters.forEach((codecParams,codecMimeType)=>{setFormatParameters(mediaDescription,codecMimeType,codecParams);});if(options.twccDisabled){disableTwcc(mediaDescription);}}mungeRemoteDescription(mediaDescription){if(!mediaDescription.ssrcs.length){mediaDescription.addLine(new SsrcLine$1(this.ssrc,'cname',"".concat(this.ssrc,"-cname")));mediaDescription.addLine(new SsrcLine$1(this.ssrc,'msid','-',"".concat(mediaDescription.mid)));if(hasCodec('rtx',mediaDescription)){if(!this.rtxSsrc){this.rtxSsrc=generateSsrc();}mediaDescription.addLine(new SsrcLine$1(this.rtxSsrc,'cname',"".concat(this.ssrc,"-cname")));mediaDescription.addLine(new SsrcLine$1(this.rtxSsrc,'msid','-',"".concat(mediaDescription.mid)));mediaDescription.addLine(new SsrcGroupLine$1('FID',[this.ssrc,this.rtxSsrc]));}}if(retainCandidatesByTransportType(mediaDescription,['udp','tcp'])){logger.log("Some unsupported remote candidates have been removed from mid ".concat(mediaDescription.mid));}var rtxParams=this.customCodecParameters.get(exports.MediaCodecMimeType.RTX);if(rtxParams){setFormatParameters(mediaDescription,exports.MediaCodecMimeType.RTX,rtxParams);}}setCustomCodecParameters(codecMimeType,parameters){setCodecParameters(this.customCodecParameters,codecMimeType,parameters);}markCustomCodecParametersForDeletion(codecMimeType,parameters){markCodecParametersForDeletion(this.customCodecParameters,codecMimeType,parameters);}reset(){this.ssrc=generateSsrc();}}var HomerMsgType;(function(HomerMsgType){HomerMsgType["Multistream"]="multistream";})(HomerMsgType||(HomerMsgType={}));class HomerMsg{constructor(msgType,payload){this.msgType=msgType;this.payload=payload;}static fromJson(data){if(!data.msgType||!data.payload){return null;}return new HomerMsg(data.msgType,data.payload);}}var EncodedTransformType;(function(EncodedTransformType){EncodedTransformType["AudioLevelMonitor"]="audio-level-monitor";})(EncodedTransformType||(EncodedTransformType={}));var MainMsgType;(function(MainMsgType){MainMsgType["GetMetadata"]="get-metadata";MainMsgType["ClearMetadata"]="clear-metadata";})(MainMsgType||(MainMsgType={}));var WorkerMsgType;(function(WorkerMsgType){WorkerMsgType["Response"]="response";WorkerMsgType["Log"]="log";})(WorkerMsgType||(WorkerMsgType={}));class MidPredictor{constructor(){this.currentMid=0;this.midMap=new Map();}getNextMid(mediaType){var mid=this.currentMid++;var mids=this.midMap.get(mediaType)||[];mids.push("".concat(mid));this.midMap.set(mediaType,mids);return "".concat(mid);}allocateMidForDatachannel(){this.currentMid+=1;}reset(){this.midMap=new Map();this.currentMid=0;}getMidMap(){return this.midMap;}}var OveruseState;(function(OveruseState){OveruseState[OveruseState["NOT_OVERUSED"]=0]="NOT_OVERUSED";OveruseState[OveruseState["OVERUSED"]=1]="OVERUSED";})(OveruseState||(OveruseState={}));class OveruseStateManager{constructor(callback){this.monitors=[];this.lastOverallOveruseState=OveruseState.NOT_OVERUSED;this.isRunning=false;this.overuseUpdateCallback=callback;}addMonitor(monitor){this.monitors.push(monitor);if(this.isRunning){monitor.startMonitoring(()=>this.onMonitorOveruseUpdate());}}start(){this.isRunning=true;this.monitors.forEach(monitor=>monitor.startMonitoring(()=>this.onMonitorOveruseUpdate()));}stop(){this.isRunning=false;this.monitors.forEach(monitor=>monitor.stopMonitoring());}onMonitorOveruseUpdate(){var overuseStates=this.monitors.map(monitor=>monitor.getLastOveruseState());var overallOveruseState=overuseStates.some(overuseState=>overuseState===OveruseState.OVERUSED)?OveruseState.OVERUSED:OveruseState.NOT_OVERUSED;if(overallOveruseState!==this.lastOverallOveruseState){this.lastOverallOveruseState=overallOveruseState;this.overuseUpdateCallback(overallOveruseState);}}}exports.ReceiveSlotEvents = void 0;(function(ReceiveSlotEvents){ReceiveSlotEvents["MediaStarted"]="media-started";ReceiveSlotEvents["MediaStopped"]="media-stopped";ReceiveSlotEvents["MediaEnded"]="media-ended";ReceiveSlotEvents["SourceUpdate"]="source-update";})(exports.ReceiveSlotEvents||(exports.ReceiveSlotEvents={}));class ReceiveSlot extends EventEmitter$2{constructor(idGetter,track){super();this._isRequested=false;this._idGetter=idGetter;this.handleStreamMediaStateChange=this.handleStreamMediaStateChange.bind(this);this.handleStreamEnded=this.handleStreamEnded.bind(this);this._stream=new RemoteStream(new MediaStream([track]));this._sourceState=track.kind===exports.MediaStreamTrackKind.Video?'no source':undefined;this._stream.on(exports.RemoteStreamEventNames.MediaStateChange,this.handleStreamMediaStateChange);this._stream.on(exports.StreamEventNames.Ended,this.handleStreamEnded);}handleStreamMediaStateChange(state){if(state===RemoteMediaState.Stopped){this.emit(exports.ReceiveSlotEvents.MediaStopped);}else {this.emit(exports.ReceiveSlotEvents.MediaStarted);}}handleStreamEnded(){this.emit(exports.ReceiveSlotEvents.MediaEnded);}_replaceTrack(newTrack){this._stream.replaceTrack(newTrack);}_updateSource(state,csi){if(state!==this._sourceState||csi!==this._currentRxCsi){this._sourceState=state;this._currentRxCsi=csi;this.emit(exports.ReceiveSlotEvents.SourceUpdate,state,csi);}}close(){this._stream.off(exports.RemoteStreamEventNames.MediaStateChange,this.handleStreamMediaStateChange);this._stream.off(exports.StreamEventNames.Ended,this.handleStreamEnded);}get id(){return this._idGetter();}get stream(){return this._stream.outputStream;}get currentRxCsi(){return this._currentRxCsi;}get sourceState(){return this._sourceState;}}ReceiveSlot.Events=exports.ReceiveSlotEvents;function getCurrentTimestamp(){return performance.timeOrigin+performance.now();}class StatsManager{constructor(statsGetter){var statsPreprocessor=arguments.length>1&&arguments[1]!==undefined?arguments[1]:()=>__awaiter(this,void 0,void 0,function*(){});this.statsGetter=statsGetter;this.statsPreProcessor=statsPreprocessor;}getStats(){return __awaiter(this,void 0,void 0,function*(){var statsReport=yield this.statsGetter();var statsMap=new Map();statsReport.forEach((stats,key)=>statsMap.set(key,stats));yield this.statsPreProcessor(statsMap);return statsMap;});}}class Transceiver{constructor(config){this.twccDisabled=false;this._rtcRtpTransceiver=config.rtcRtpTransceiver;this.mid=config.mid;this.mediaType=config.mediaType;}replaceTransceiver(newRtcRtpTransceiver){this._rtcRtpTransceiver=newRtcRtpTransceiver;}get receiver(){return this._rtcRtpTransceiver.receiver;}get sender(){return this._rtcRtpTransceiver.sender;}close(){try{this._rtcRtpTransceiver.stop();}catch(error){if(error instanceof DOMException&&error.name==='InvalidStateError'){logger.warn('Peer connection is already closed, skipping call to RTCRtpTransceiver.stop()');}else {logger.error('An unexpected error occurred while stopping the RTCRtpTransceiver:',error);throw error;}}}}class ReceiveOnlyTransceiver extends Transceiver{constructor(config){super(config);this.metadata={isActiveSpeaker:false};this.getEncodedStreamMetadataCallback=()=>Promise.resolve(undefined);this.munger=config.munger;this.supportedCodecs=config.supportedCodecs;this._receiveSlot=new ReceiveSlot(()=>{if(!this._rtcRtpTransceiver.mid){return null;}return this.munger.getReceiverId();},this._rtcRtpTransceiver.receiver.track);}setEncodedStreamMetadataCallback(callback){this.getEncodedStreamMetadataCallback=callback;}replaceTransceiver(newRtcRtpTransceiver){super.replaceTransceiver(newRtcRtpTransceiver);this._receiveSlot._replaceTrack(newRtcRtpTransceiver.receiver.track);}close(){super.close();this._receiveSlot.close();}get receiveSlot(){return this._receiveSlot;}getStats(){return __awaiter(this,void 0,void 0,function*(){var statsMap=new Map();var[statsReport,encodedStreamMetadata]=yield Promise.all([this.receiver.getStats(),this.getEncodedStreamMetadataCallback()]);statsReport.forEach((stats,key)=>{if(stats.type==='inbound-rtp'){stats.mid=this.mid;stats.csi=this.receiveSlot.currentRxCsi;stats.sourceState=this.receiveSlot.sourceState;stats.calliopeMediaType=this.mediaType;stats.requestedBitrate=this.metadata.requestedBitrate;stats.requestedFrameSize=this.metadata.requestedFrameSize;stats.requestedFrameRate=this.metadata.requestedFrameRate;stats.isRequested=this.receiveSlot._isRequested;stats.lastRequestedUpdateTimestamp=this.metadata.lastRequestedUpdateTimestamp;stats.isActiveSpeaker=this.metadata.isActiveSpeaker;stats.lastActiveSpeakerUpdateTimestamp=this.metadata.lastActiveSpeakerUpdateTimestamp;stats.maxAudioLevelFromRtpHeader=encodedStreamMetadata&&'maxAudioLevel'in encodedStreamMetadata?encodedStreamMetadata.maxAudioLevel:undefined;Object.assign(stats,this.receiverId);}statsMap.set(key,stats);});return statsMap;});}mungeLocalDescription(mediaDescription){this.munger.mungeLocalDescription(mediaDescription,{twccDisabled:this.twccDisabled,supportedCodecs:this.supportedCodecs});}mungeRemoteDescription(mediaDescription){this.munger.mungeRemoteDescription(mediaDescription);}get receiverId(){return this.munger.getReceiverId();}resetSdpMunger(){this.munger.reset();}handleRequested(streamRequest){if(!this.receiveSlot._isRequested){this.receiveSlot._isRequested=true;this.metadata.lastRequestedUpdateTimestamp=getCurrentTimestamp();}this.metadata.requestedBitrate=streamRequest.maxPayloadBitsPerSecond;var firstCodecInfo=streamRequest.codecInfos[0];if(firstCodecInfo===null||firstCodecInfo===void 0?void 0:firstCodecInfo.h264){this.metadata.requestedFrameSize=firstCodecInfo.h264.maxFs;this.metadata.requestedFrameRate=firstCodecInfo.h264.maxFps;}else if(firstCodecInfo===null||firstCodecInfo===void 0?void 0:firstCodecInfo.av1){this.metadata.requestedFrameSize=getFrameSizeForPicSize(firstCodecInfo.av1.maxPicSize);if(firstCodecInfo.av1.maxPicSize>0&&firstCodecInfo.av1.maxDecodeRate>0){this.metadata.requestedFrameRate=Math.round(firstCodecInfo.av1.maxDecodeRate/firstCodecInfo.av1.maxPicSize);}}}handleUnrequested(){if(this.receiveSlot._isRequested){this.receiveSlot._isRequested=false;this.metadata.lastRequestedUpdateTimestamp=getCurrentTimestamp();}this.metadata.requestedBitrate=undefined;this.metadata.requestedFrameSize=undefined;this.metadata.requestedFrameRate=undefined;this.receiveSlot._updateSource('no source',undefined);}handleActiveSpeakerUpdate(value){if(this.metadata.isActiveSpeaker!==value){this.metadata.isActiveSpeaker=value;this.metadata.lastActiveSpeakerUpdateTimestamp=getCurrentTimestamp();}}setCustomCodecParameters(codecMimeType,parameters){this.munger.setCustomCodecParameters(codecMimeType,parameters);}}var events={exports:{}};var R=typeof Reflect==='object'?Reflect:null;var ReflectApply=R&&typeof R.apply==='function'?R.apply:function ReflectApply(target,receiver,args){return Function.prototype.apply.call(target,receiver,args);};var ReflectOwnKeys;if(R&&typeof R.ownKeys==='function'){ReflectOwnKeys=R.ownKeys;}else if(Object.getOwnPropertySymbols){ReflectOwnKeys=function ReflectOwnKeys(target){return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));};}else {ReflectOwnKeys=function ReflectOwnKeys(target){return Object.getOwnPropertyNames(target);};}function ProcessEmitWarning(warning){if(console&&console.warn)console.warn(warning);}var NumberIsNaN=Number.isNaN||function NumberIsNaN(value){return value!==value;};function EventEmitter$1(){EventEmitter$1.init.call(this);}events.exports=EventEmitter$1;events.exports.once=once$1;// Backwards-compat with node 0.10.x
|
|
4928
|
+
if(flags.once){emitter.removeEventListener(name,wrapListener);}listener(arg);});}else {throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof emitter);}}class EventEmitter$2 extends events$1.exports.EventEmitter{}class IngressSdpMunger{constructor(){this.customCodecParameters=new Map();this.ssrc=generateSsrc();}getReceiverId(){return Object.assign({ssrc:this.ssrc},this.rtxSsrc?{rtxSsrc:this.rtxSsrc}:{});}mungeLocalDescription(mediaDescription,options){retainCodecsByMimeType(mediaDescription,options.supportedCodecs);if(mediaDescription.codecs.size===0){logErrorAndThrow(exports.WcmeErrorType.SDP_MUNGE_MISSING_CODECS,"No codecs present in m-line with MID ".concat(mediaDescription.mid," after filtering."));}removeMidRidExtensions(mediaDescription);this.customCodecParameters.forEach((codecParams,codecMimeType)=>{setFormatParameters(mediaDescription,codecMimeType,codecParams);});if(options.twccDisabled){disableTwcc(mediaDescription);}}mungeRemoteDescription(mediaDescription){if(!mediaDescription.ssrcs.length){mediaDescription.addLine(new SsrcLine$1(this.ssrc,'cname',"".concat(this.ssrc,"-cname")));mediaDescription.addLine(new SsrcLine$1(this.ssrc,'msid','-',"".concat(mediaDescription.mid)));if(hasCodec('rtx',mediaDescription)){if(!this.rtxSsrc){this.rtxSsrc=generateSsrc();}mediaDescription.addLine(new SsrcLine$1(this.rtxSsrc,'cname',"".concat(this.ssrc,"-cname")));mediaDescription.addLine(new SsrcLine$1(this.rtxSsrc,'msid','-',"".concat(mediaDescription.mid)));mediaDescription.addLine(new SsrcGroupLine$1('FID',[this.ssrc,this.rtxSsrc]));}}if(retainCandidatesByTransportType(mediaDescription,['udp','tcp'])){logger.log("Some unsupported remote candidates have been removed from mid ".concat(mediaDescription.mid));}var rtxParams=this.customCodecParameters.get(exports.MediaCodecMimeType.RTX);if(rtxParams){setFormatParameters(mediaDescription,exports.MediaCodecMimeType.RTX,rtxParams);}}setCustomCodecParameters(codecMimeType,parameters){setCodecParameters(this.customCodecParameters,codecMimeType,parameters);}markCustomCodecParametersForDeletion(codecMimeType,parameters){markCodecParametersForDeletion(this.customCodecParameters,codecMimeType,parameters);}reset(){this.ssrc=generateSsrc();}}var HomerMsgType;(function(HomerMsgType){HomerMsgType["Multistream"]="multistream";})(HomerMsgType||(HomerMsgType={}));class HomerMsg{constructor(msgType,payload){this.msgType=msgType;this.payload=payload;}static fromJson(data){if(!data.msgType||!data.payload){return null;}return new HomerMsg(data.msgType,data.payload);}}var EncodedTransformType;(function(EncodedTransformType){EncodedTransformType["AudioLevelMonitor"]="audio-level-monitor";})(EncodedTransformType||(EncodedTransformType={}));var MainMsgType;(function(MainMsgType){MainMsgType["GetMetadata"]="get-metadata";MainMsgType["ClearMetadata"]="clear-metadata";})(MainMsgType||(MainMsgType={}));var WorkerMsgType;(function(WorkerMsgType){WorkerMsgType["Response"]="response";WorkerMsgType["Log"]="log";})(WorkerMsgType||(WorkerMsgType={}));class MidPredictor{constructor(){this.currentMid=0;this.midMap=new Map();}getNextMid(mediaType){var mid=this.currentMid++;var mids=this.midMap.get(mediaType)||[];mids.push("".concat(mid));this.midMap.set(mediaType,mids);return "".concat(mid);}allocateMidForDatachannel(){this.currentMid+=1;}reset(){this.midMap=new Map();this.currentMid=0;}getMidMap(){return this.midMap;}}var OveruseState;(function(OveruseState){OveruseState[OveruseState["NOT_OVERUSED"]=0]="NOT_OVERUSED";OveruseState[OveruseState["OVERUSED"]=1]="OVERUSED";})(OveruseState||(OveruseState={}));class OveruseStateManager{constructor(callback){this.monitors=[];this.lastOverallOveruseState=OveruseState.NOT_OVERUSED;this.isRunning=false;this.overuseUpdateCallback=callback;}addMonitor(monitor){this.monitors.push(monitor);if(this.isRunning){monitor.startMonitoring(()=>this.onMonitorOveruseUpdate());}}start(){this.isRunning=true;this.monitors.forEach(monitor=>monitor.startMonitoring(()=>this.onMonitorOveruseUpdate()));}stop(){this.isRunning=false;this.monitors.forEach(monitor=>monitor.stopMonitoring());}onMonitorOveruseUpdate(){var overuseStates=this.monitors.map(monitor=>monitor.getLastOveruseState());var overallOveruseState=overuseStates.some(overuseState=>overuseState===OveruseState.OVERUSED)?OveruseState.OVERUSED:OveruseState.NOT_OVERUSED;if(overallOveruseState!==this.lastOverallOveruseState){this.lastOverallOveruseState=overallOveruseState;this.overuseUpdateCallback(overallOveruseState);}}}exports.ReceiveSlotEvents = void 0;(function(ReceiveSlotEvents){ReceiveSlotEvents["MediaStarted"]="media-started";ReceiveSlotEvents["MediaStopped"]="media-stopped";ReceiveSlotEvents["MediaEnded"]="media-ended";ReceiveSlotEvents["SourceUpdate"]="source-update";})(exports.ReceiveSlotEvents||(exports.ReceiveSlotEvents={}));class ReceiveSlot extends EventEmitter$2{constructor(idGetter,track){super();this._isRequested=false;this._idGetter=idGetter;this.handleStreamMediaStateChange=this.handleStreamMediaStateChange.bind(this);this.handleStreamEnded=this.handleStreamEnded.bind(this);this._stream=new RemoteStream(new MediaStream([track]));this._sourceState=track.kind===exports.MediaStreamTrackKind.Video?'no source':undefined;this._stream.on(exports.RemoteStreamEventNames.MediaStateChange,this.handleStreamMediaStateChange);this._stream.on(exports.StreamEventNames.Ended,this.handleStreamEnded);}handleStreamMediaStateChange(state){if(state===RemoteMediaState.Stopped){this.emit(exports.ReceiveSlotEvents.MediaStopped);}else {this.emit(exports.ReceiveSlotEvents.MediaStarted);}}handleStreamEnded(){this.emit(exports.ReceiveSlotEvents.MediaEnded);}_replaceTrack(newTrack){this._stream.replaceTrack(newTrack);}_updateSource(state,csi){if(state!==this._sourceState||csi!==this._currentRxCsi){this._sourceState=state;this._currentRxCsi=csi;this.emit(exports.ReceiveSlotEvents.SourceUpdate,state,csi);}}close(){this._stream.off(exports.RemoteStreamEventNames.MediaStateChange,this.handleStreamMediaStateChange);this._stream.off(exports.StreamEventNames.Ended,this.handleStreamEnded);}get id(){return this._idGetter();}get stream(){return this._stream.outputStream;}get currentRxCsi(){return this._currentRxCsi;}get sourceState(){return this._sourceState;}}ReceiveSlot.Events=exports.ReceiveSlotEvents;function getCurrentTimestamp(){return performance.timeOrigin+performance.now();}class StatsManager{constructor(statsGetter){var statsPreprocessor=arguments.length>1&&arguments[1]!==undefined?arguments[1]:()=>__awaiter(this,void 0,void 0,function*(){});this.statsGetter=statsGetter;this.statsPreProcessor=statsPreprocessor;}getStats(){return __awaiter(this,void 0,void 0,function*(){var statsReport=yield this.statsGetter();var statsMap=new Map();statsReport.forEach((stats,key)=>statsMap.set(key,stats));yield this.statsPreProcessor(statsMap);return statsMap;});}}class Transceiver{constructor(config){this.twccDisabled=false;this._rtcRtpTransceiver=config.rtcRtpTransceiver;this.mid=config.mid;this.mediaType=config.mediaType;}replaceTransceiver(newRtcRtpTransceiver){this._rtcRtpTransceiver=newRtcRtpTransceiver;}get receiver(){return this._rtcRtpTransceiver.receiver;}get sender(){return this._rtcRtpTransceiver.sender;}close(){try{this._rtcRtpTransceiver.stop();}catch(error){if(error instanceof DOMException&&error.name==='InvalidStateError'){logger.warn('Peer connection is already closed, skipping call to RTCRtpTransceiver.stop()');}else {logger.error('An unexpected error occurred while stopping the RTCRtpTransceiver:',error);throw error;}}}}class ReceiveOnlyTransceiver extends Transceiver{constructor(config){super(config);this.metadata={isActiveSpeaker:false};this.getEncodedStreamMetadataCallback=()=>Promise.resolve(undefined);this.munger=config.munger;this.supportedCodecs=config.supportedCodecs;this._receiveSlot=new ReceiveSlot(()=>{if(!this._rtcRtpTransceiver.mid){return null;}return this.munger.getReceiverId();},this._rtcRtpTransceiver.receiver.track);}setEncodedStreamMetadataCallback(callback){this.getEncodedStreamMetadataCallback=callback;}replaceTransceiver(newRtcRtpTransceiver){super.replaceTransceiver(newRtcRtpTransceiver);this._receiveSlot._replaceTrack(newRtcRtpTransceiver.receiver.track);}close(){super.close();this._receiveSlot.close();}get receiveSlot(){return this._receiveSlot;}getStats(){return __awaiter(this,void 0,void 0,function*(){var statsMap=new Map();var[statsReport,encodedStreamMetadata]=yield Promise.all([this.receiver.getStats(),this.getEncodedStreamMetadataCallback()]);statsReport.forEach((stats,key)=>{if(stats.type==='inbound-rtp'){stats.mid=this.mid;stats.csi=this.receiveSlot.currentRxCsi;stats.sourceState=this.receiveSlot.sourceState;stats.calliopeMediaType=this.mediaType;stats.requestedBitrate=this.metadata.requestedBitrate;stats.requestedFrameSize=this.metadata.requestedFrameSize;stats.requestedFrameRate=this.metadata.requestedFrameRate;stats.isRequested=this.receiveSlot._isRequested;stats.lastRequestedUpdateTimestamp=this.metadata.lastRequestedUpdateTimestamp;stats.isActiveSpeaker=this.metadata.isActiveSpeaker;stats.lastActiveSpeakerUpdateTimestamp=this.metadata.lastActiveSpeakerUpdateTimestamp;stats.trackReadyState=this._rtcRtpTransceiver.receiver.track.readyState;stats.trackMuted=this._rtcRtpTransceiver.receiver.track.muted;stats.trackEnabled=this._rtcRtpTransceiver.receiver.track.enabled;stats.maxAudioLevelFromRtpHeader=encodedStreamMetadata&&'maxAudioLevel'in encodedStreamMetadata?encodedStreamMetadata.maxAudioLevel:undefined;Object.assign(stats,this.receiverId);}statsMap.set(key,stats);});return statsMap;});}mungeLocalDescription(mediaDescription){this.munger.mungeLocalDescription(mediaDescription,{twccDisabled:this.twccDisabled,supportedCodecs:this.supportedCodecs});}mungeRemoteDescription(mediaDescription){this.munger.mungeRemoteDescription(mediaDescription);}get receiverId(){return this.munger.getReceiverId();}resetSdpMunger(){this.munger.reset();}handleRequested(streamRequest){if(!this.receiveSlot._isRequested){this.receiveSlot._isRequested=true;this.metadata.lastRequestedUpdateTimestamp=getCurrentTimestamp();}this.metadata.requestedBitrate=streamRequest.maxPayloadBitsPerSecond;var firstCodecInfo=streamRequest.codecInfos[0];if(firstCodecInfo===null||firstCodecInfo===void 0?void 0:firstCodecInfo.h264){this.metadata.requestedFrameSize=firstCodecInfo.h264.maxFs;this.metadata.requestedFrameRate=firstCodecInfo.h264.maxFps;}else if(firstCodecInfo===null||firstCodecInfo===void 0?void 0:firstCodecInfo.av1){this.metadata.requestedFrameSize=getFrameSizeForPicSize(firstCodecInfo.av1.maxPicSize);if(firstCodecInfo.av1.maxPicSize>0&&firstCodecInfo.av1.maxDecodeRate>0){this.metadata.requestedFrameRate=Math.round(firstCodecInfo.av1.maxDecodeRate/firstCodecInfo.av1.maxPicSize);}}}handleUnrequested(){if(this.receiveSlot._isRequested){this.receiveSlot._isRequested=false;this.metadata.lastRequestedUpdateTimestamp=getCurrentTimestamp();}this.metadata.requestedBitrate=undefined;this.metadata.requestedFrameSize=undefined;this.metadata.requestedFrameRate=undefined;this.receiveSlot._updateSource('no source',undefined);}handleActiveSpeakerUpdate(value){if(this.metadata.isActiveSpeaker!==value){this.metadata.isActiveSpeaker=value;this.metadata.lastActiveSpeakerUpdateTimestamp=getCurrentTimestamp();}}setCustomCodecParameters(codecMimeType,parameters){this.munger.setCustomCodecParameters(codecMimeType,parameters);}}var events={exports:{}};var R=typeof Reflect==='object'?Reflect:null;var ReflectApply=R&&typeof R.apply==='function'?R.apply:function ReflectApply(target,receiver,args){return Function.prototype.apply.call(target,receiver,args);};var ReflectOwnKeys;if(R&&typeof R.ownKeys==='function'){ReflectOwnKeys=R.ownKeys;}else if(Object.getOwnPropertySymbols){ReflectOwnKeys=function ReflectOwnKeys(target){return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));};}else {ReflectOwnKeys=function ReflectOwnKeys(target){return Object.getOwnPropertyNames(target);};}function ProcessEmitWarning(warning){if(console&&console.warn)console.warn(warning);}var NumberIsNaN=Number.isNaN||function NumberIsNaN(value){return value!==value;};function EventEmitter$1(){EventEmitter$1.init.call(this);}events.exports=EventEmitter$1;events.exports.once=once$1;// Backwards-compat with node 0.10.x
|
|
4929
4929
|
EventEmitter$1.EventEmitter=EventEmitter$1;EventEmitter$1.prototype._events=undefined;EventEmitter$1.prototype._eventsCount=0;EventEmitter$1.prototype._maxListeners=undefined;// By default EventEmitters will print a warning if more than 10 listeners are
|
|
4930
4930
|
// added to it. This is a useful default which helps finding memory leaks.
|
|
4931
4931
|
var defaultMaxListeners=10;function checkListener(listener){if(typeof listener!=='function'){throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof listener);}}Object.defineProperty(EventEmitter$1,'defaultMaxListeners',{enumerable:true,get:function get(){return defaultMaxListeners;},set:function set(arg){if(typeof arg!=='number'||arg<0||NumberIsNaN(arg)){throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+arg+'.');}defaultMaxListeners=arg;}});EventEmitter$1.init=function(){if(this._events===undefined||this._events===Object.getPrototypeOf(this)._events){this._events=Object.create(null);this._eventsCount=0;}this._maxListeners=this._maxListeners||undefined;};// Obviously not all Emitters should be limited to 10. This function allows
|
|
@@ -18749,6 +18749,7 @@ exports.InboundAudioIssueSubTypes = void 0;
|
|
|
18749
18749
|
(function (InboundAudioIssueSubTypes) {
|
|
18750
18750
|
InboundAudioIssueSubTypes["DECODE_RESULTS_IN_ZERO_AUDIO_LEVEL"] = "DECODE_RESULTS_IN_ZERO_AUDIO_LEVEL";
|
|
18751
18751
|
InboundAudioIssueSubTypes["ALL_PACKETS_DISCARDED"] = "ALL_PACKETS_DISCARDED";
|
|
18752
|
+
InboundAudioIssueSubTypes["PLAYOUT_INACTIVE"] = "PLAYOUT_INACTIVE";
|
|
18752
18753
|
})(exports.InboundAudioIssueSubTypes || (exports.InboundAudioIssueSubTypes = {}));
|
|
18753
18754
|
|
|
18754
18755
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -19263,6 +19264,10 @@ class StatsMonitor extends EventEmitter$5 {
|
|
|
19263
19264
|
var packetsReceived = getSumFromStatsByType(current, 'inbound-rtp', 'packetsReceived');
|
|
19264
19265
|
var packetsDiscarded = getSumFromStatsByType(current, 'inbound-rtp', 'packetsDiscarded');
|
|
19265
19266
|
var discardedRatio = packetsReceived > 0 ? packetsDiscarded / packetsReceived : 0;
|
|
19267
|
+
var totalSamplesReceived = getSumFromStatsByType(current, 'inbound-rtp', 'totalSamplesReceived');
|
|
19268
|
+
var previousTotalSamplesReceived = getSumFromStatsByType(previous, 'inbound-rtp', 'totalSamplesReceived');
|
|
19269
|
+
var jitterBufferEmittedCount = getSumFromStatsByType(current, 'inbound-rtp', 'jitterBufferEmittedCount');
|
|
19270
|
+
var previousJitterBufferEmittedCount = getSumFromStatsByType(previous, 'inbound-rtp', 'jitterBufferEmittedCount');
|
|
19266
19271
|
if (packetsReceived > MIN_AUDIO_PACKETS_RECEIVER_THRESHOLD && packetsReceived > previousPacketsReceived) {
|
|
19267
19272
|
if (this.hasAudioDecodeIssue(current, packetsReceived, discardedRatio)) {
|
|
19268
19273
|
this.emit(exports.StatsMonitorEventNames.INBOUND_AUDIO_ISSUE, {
|
|
@@ -19273,6 +19278,11 @@ class StatsMonitor extends EventEmitter$5 {
|
|
|
19273
19278
|
this.emit(exports.StatsMonitorEventNames.INBOUND_AUDIO_ISSUE, {
|
|
19274
19279
|
issueSubType: exports.InboundAudioIssueSubTypes.ALL_PACKETS_DISCARDED
|
|
19275
19280
|
});
|
|
19281
|
+
} else if (totalSamplesReceived === previousTotalSamplesReceived && jitterBufferEmittedCount === previousJitterBufferEmittedCount) {
|
|
19282
|
+
getLogger().info("StatsMonitor#checkInboundAudio --> Audio playout inactive: packetsReceived=".concat(packetsReceived, " totalSamplesReceived=").concat(totalSamplesReceived, " jitterBufferEmittedCount=").concat(jitterBufferEmittedCount));
|
|
19283
|
+
this.emit(exports.StatsMonitorEventNames.INBOUND_AUDIO_ISSUE, {
|
|
19284
|
+
issueSubType: exports.InboundAudioIssueSubTypes.PLAYOUT_INACTIVE
|
|
19285
|
+
});
|
|
19276
19286
|
}
|
|
19277
19287
|
}
|
|
19278
19288
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -4921,7 +4921,7 @@ for(i=listeners.length-1;i>=0;i--){this.removeListener(type,listeners[i]);}}retu
|
|
|
4921
4921
|
// EventEmitters, we do not listen for `error` events here.
|
|
4922
4922
|
emitter.addEventListener(name,function wrapListener(arg){// IE does not have builtin `{ once: true }` support so we
|
|
4923
4923
|
// have to do it manually.
|
|
4924
|
-
if(flags.once){emitter.removeEventListener(name,wrapListener);}listener(arg);});}else {throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof emitter);}}class EventEmitter$2 extends events$1.exports.EventEmitter{}class IngressSdpMunger{constructor(){this.customCodecParameters=new Map();this.ssrc=generateSsrc();}getReceiverId(){return Object.assign({ssrc:this.ssrc},this.rtxSsrc?{rtxSsrc:this.rtxSsrc}:{});}mungeLocalDescription(mediaDescription,options){retainCodecsByMimeType(mediaDescription,options.supportedCodecs);if(mediaDescription.codecs.size===0){logErrorAndThrow(WcmeErrorType.SDP_MUNGE_MISSING_CODECS,"No codecs present in m-line with MID ".concat(mediaDescription.mid," after filtering."));}removeMidRidExtensions(mediaDescription);this.customCodecParameters.forEach((codecParams,codecMimeType)=>{setFormatParameters(mediaDescription,codecMimeType,codecParams);});if(options.twccDisabled){disableTwcc(mediaDescription);}}mungeRemoteDescription(mediaDescription){if(!mediaDescription.ssrcs.length){mediaDescription.addLine(new SsrcLine$1(this.ssrc,'cname',"".concat(this.ssrc,"-cname")));mediaDescription.addLine(new SsrcLine$1(this.ssrc,'msid','-',"".concat(mediaDescription.mid)));if(hasCodec('rtx',mediaDescription)){if(!this.rtxSsrc){this.rtxSsrc=generateSsrc();}mediaDescription.addLine(new SsrcLine$1(this.rtxSsrc,'cname',"".concat(this.ssrc,"-cname")));mediaDescription.addLine(new SsrcLine$1(this.rtxSsrc,'msid','-',"".concat(mediaDescription.mid)));mediaDescription.addLine(new SsrcGroupLine$1('FID',[this.ssrc,this.rtxSsrc]));}}if(retainCandidatesByTransportType(mediaDescription,['udp','tcp'])){logger.log("Some unsupported remote candidates have been removed from mid ".concat(mediaDescription.mid));}var rtxParams=this.customCodecParameters.get(MediaCodecMimeType.RTX);if(rtxParams){setFormatParameters(mediaDescription,MediaCodecMimeType.RTX,rtxParams);}}setCustomCodecParameters(codecMimeType,parameters){setCodecParameters(this.customCodecParameters,codecMimeType,parameters);}markCustomCodecParametersForDeletion(codecMimeType,parameters){markCodecParametersForDeletion(this.customCodecParameters,codecMimeType,parameters);}reset(){this.ssrc=generateSsrc();}}var HomerMsgType;(function(HomerMsgType){HomerMsgType["Multistream"]="multistream";})(HomerMsgType||(HomerMsgType={}));class HomerMsg{constructor(msgType,payload){this.msgType=msgType;this.payload=payload;}static fromJson(data){if(!data.msgType||!data.payload){return null;}return new HomerMsg(data.msgType,data.payload);}}var EncodedTransformType;(function(EncodedTransformType){EncodedTransformType["AudioLevelMonitor"]="audio-level-monitor";})(EncodedTransformType||(EncodedTransformType={}));var MainMsgType;(function(MainMsgType){MainMsgType["GetMetadata"]="get-metadata";MainMsgType["ClearMetadata"]="clear-metadata";})(MainMsgType||(MainMsgType={}));var WorkerMsgType;(function(WorkerMsgType){WorkerMsgType["Response"]="response";WorkerMsgType["Log"]="log";})(WorkerMsgType||(WorkerMsgType={}));class MidPredictor{constructor(){this.currentMid=0;this.midMap=new Map();}getNextMid(mediaType){var mid=this.currentMid++;var mids=this.midMap.get(mediaType)||[];mids.push("".concat(mid));this.midMap.set(mediaType,mids);return "".concat(mid);}allocateMidForDatachannel(){this.currentMid+=1;}reset(){this.midMap=new Map();this.currentMid=0;}getMidMap(){return this.midMap;}}var OveruseState;(function(OveruseState){OveruseState[OveruseState["NOT_OVERUSED"]=0]="NOT_OVERUSED";OveruseState[OveruseState["OVERUSED"]=1]="OVERUSED";})(OveruseState||(OveruseState={}));class OveruseStateManager{constructor(callback){this.monitors=[];this.lastOverallOveruseState=OveruseState.NOT_OVERUSED;this.isRunning=false;this.overuseUpdateCallback=callback;}addMonitor(monitor){this.monitors.push(monitor);if(this.isRunning){monitor.startMonitoring(()=>this.onMonitorOveruseUpdate());}}start(){this.isRunning=true;this.monitors.forEach(monitor=>monitor.startMonitoring(()=>this.onMonitorOveruseUpdate()));}stop(){this.isRunning=false;this.monitors.forEach(monitor=>monitor.stopMonitoring());}onMonitorOveruseUpdate(){var overuseStates=this.monitors.map(monitor=>monitor.getLastOveruseState());var overallOveruseState=overuseStates.some(overuseState=>overuseState===OveruseState.OVERUSED)?OveruseState.OVERUSED:OveruseState.NOT_OVERUSED;if(overallOveruseState!==this.lastOverallOveruseState){this.lastOverallOveruseState=overallOveruseState;this.overuseUpdateCallback(overallOveruseState);}}}var ReceiveSlotEvents;(function(ReceiveSlotEvents){ReceiveSlotEvents["MediaStarted"]="media-started";ReceiveSlotEvents["MediaStopped"]="media-stopped";ReceiveSlotEvents["MediaEnded"]="media-ended";ReceiveSlotEvents["SourceUpdate"]="source-update";})(ReceiveSlotEvents||(ReceiveSlotEvents={}));class ReceiveSlot extends EventEmitter$2{constructor(idGetter,track){super();this._isRequested=false;this._idGetter=idGetter;this.handleStreamMediaStateChange=this.handleStreamMediaStateChange.bind(this);this.handleStreamEnded=this.handleStreamEnded.bind(this);this._stream=new RemoteStream(new MediaStream([track]));this._sourceState=track.kind===MediaStreamTrackKind.Video?'no source':undefined;this._stream.on(RemoteStreamEventNames.MediaStateChange,this.handleStreamMediaStateChange);this._stream.on(StreamEventNames.Ended,this.handleStreamEnded);}handleStreamMediaStateChange(state){if(state===RemoteMediaState.Stopped){this.emit(ReceiveSlotEvents.MediaStopped);}else {this.emit(ReceiveSlotEvents.MediaStarted);}}handleStreamEnded(){this.emit(ReceiveSlotEvents.MediaEnded);}_replaceTrack(newTrack){this._stream.replaceTrack(newTrack);}_updateSource(state,csi){if(state!==this._sourceState||csi!==this._currentRxCsi){this._sourceState=state;this._currentRxCsi=csi;this.emit(ReceiveSlotEvents.SourceUpdate,state,csi);}}close(){this._stream.off(RemoteStreamEventNames.MediaStateChange,this.handleStreamMediaStateChange);this._stream.off(StreamEventNames.Ended,this.handleStreamEnded);}get id(){return this._idGetter();}get stream(){return this._stream.outputStream;}get currentRxCsi(){return this._currentRxCsi;}get sourceState(){return this._sourceState;}}ReceiveSlot.Events=ReceiveSlotEvents;function getCurrentTimestamp(){return performance.timeOrigin+performance.now();}class StatsManager{constructor(statsGetter){var statsPreprocessor=arguments.length>1&&arguments[1]!==undefined?arguments[1]:()=>__awaiter(this,void 0,void 0,function*(){});this.statsGetter=statsGetter;this.statsPreProcessor=statsPreprocessor;}getStats(){return __awaiter(this,void 0,void 0,function*(){var statsReport=yield this.statsGetter();var statsMap=new Map();statsReport.forEach((stats,key)=>statsMap.set(key,stats));yield this.statsPreProcessor(statsMap);return statsMap;});}}class Transceiver{constructor(config){this.twccDisabled=false;this._rtcRtpTransceiver=config.rtcRtpTransceiver;this.mid=config.mid;this.mediaType=config.mediaType;}replaceTransceiver(newRtcRtpTransceiver){this._rtcRtpTransceiver=newRtcRtpTransceiver;}get receiver(){return this._rtcRtpTransceiver.receiver;}get sender(){return this._rtcRtpTransceiver.sender;}close(){try{this._rtcRtpTransceiver.stop();}catch(error){if(error instanceof DOMException&&error.name==='InvalidStateError'){logger.warn('Peer connection is already closed, skipping call to RTCRtpTransceiver.stop()');}else {logger.error('An unexpected error occurred while stopping the RTCRtpTransceiver:',error);throw error;}}}}class ReceiveOnlyTransceiver extends Transceiver{constructor(config){super(config);this.metadata={isActiveSpeaker:false};this.getEncodedStreamMetadataCallback=()=>Promise.resolve(undefined);this.munger=config.munger;this.supportedCodecs=config.supportedCodecs;this._receiveSlot=new ReceiveSlot(()=>{if(!this._rtcRtpTransceiver.mid){return null;}return this.munger.getReceiverId();},this._rtcRtpTransceiver.receiver.track);}setEncodedStreamMetadataCallback(callback){this.getEncodedStreamMetadataCallback=callback;}replaceTransceiver(newRtcRtpTransceiver){super.replaceTransceiver(newRtcRtpTransceiver);this._receiveSlot._replaceTrack(newRtcRtpTransceiver.receiver.track);}close(){super.close();this._receiveSlot.close();}get receiveSlot(){return this._receiveSlot;}getStats(){return __awaiter(this,void 0,void 0,function*(){var statsMap=new Map();var[statsReport,encodedStreamMetadata]=yield Promise.all([this.receiver.getStats(),this.getEncodedStreamMetadataCallback()]);statsReport.forEach((stats,key)=>{if(stats.type==='inbound-rtp'){stats.mid=this.mid;stats.csi=this.receiveSlot.currentRxCsi;stats.sourceState=this.receiveSlot.sourceState;stats.calliopeMediaType=this.mediaType;stats.requestedBitrate=this.metadata.requestedBitrate;stats.requestedFrameSize=this.metadata.requestedFrameSize;stats.requestedFrameRate=this.metadata.requestedFrameRate;stats.isRequested=this.receiveSlot._isRequested;stats.lastRequestedUpdateTimestamp=this.metadata.lastRequestedUpdateTimestamp;stats.isActiveSpeaker=this.metadata.isActiveSpeaker;stats.lastActiveSpeakerUpdateTimestamp=this.metadata.lastActiveSpeakerUpdateTimestamp;stats.maxAudioLevelFromRtpHeader=encodedStreamMetadata&&'maxAudioLevel'in encodedStreamMetadata?encodedStreamMetadata.maxAudioLevel:undefined;Object.assign(stats,this.receiverId);}statsMap.set(key,stats);});return statsMap;});}mungeLocalDescription(mediaDescription){this.munger.mungeLocalDescription(mediaDescription,{twccDisabled:this.twccDisabled,supportedCodecs:this.supportedCodecs});}mungeRemoteDescription(mediaDescription){this.munger.mungeRemoteDescription(mediaDescription);}get receiverId(){return this.munger.getReceiverId();}resetSdpMunger(){this.munger.reset();}handleRequested(streamRequest){if(!this.receiveSlot._isRequested){this.receiveSlot._isRequested=true;this.metadata.lastRequestedUpdateTimestamp=getCurrentTimestamp();}this.metadata.requestedBitrate=streamRequest.maxPayloadBitsPerSecond;var firstCodecInfo=streamRequest.codecInfos[0];if(firstCodecInfo===null||firstCodecInfo===void 0?void 0:firstCodecInfo.h264){this.metadata.requestedFrameSize=firstCodecInfo.h264.maxFs;this.metadata.requestedFrameRate=firstCodecInfo.h264.maxFps;}else if(firstCodecInfo===null||firstCodecInfo===void 0?void 0:firstCodecInfo.av1){this.metadata.requestedFrameSize=getFrameSizeForPicSize(firstCodecInfo.av1.maxPicSize);if(firstCodecInfo.av1.maxPicSize>0&&firstCodecInfo.av1.maxDecodeRate>0){this.metadata.requestedFrameRate=Math.round(firstCodecInfo.av1.maxDecodeRate/firstCodecInfo.av1.maxPicSize);}}}handleUnrequested(){if(this.receiveSlot._isRequested){this.receiveSlot._isRequested=false;this.metadata.lastRequestedUpdateTimestamp=getCurrentTimestamp();}this.metadata.requestedBitrate=undefined;this.metadata.requestedFrameSize=undefined;this.metadata.requestedFrameRate=undefined;this.receiveSlot._updateSource('no source',undefined);}handleActiveSpeakerUpdate(value){if(this.metadata.isActiveSpeaker!==value){this.metadata.isActiveSpeaker=value;this.metadata.lastActiveSpeakerUpdateTimestamp=getCurrentTimestamp();}}setCustomCodecParameters(codecMimeType,parameters){this.munger.setCustomCodecParameters(codecMimeType,parameters);}}var events={exports:{}};var R=typeof Reflect==='object'?Reflect:null;var ReflectApply=R&&typeof R.apply==='function'?R.apply:function ReflectApply(target,receiver,args){return Function.prototype.apply.call(target,receiver,args);};var ReflectOwnKeys;if(R&&typeof R.ownKeys==='function'){ReflectOwnKeys=R.ownKeys;}else if(Object.getOwnPropertySymbols){ReflectOwnKeys=function ReflectOwnKeys(target){return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));};}else {ReflectOwnKeys=function ReflectOwnKeys(target){return Object.getOwnPropertyNames(target);};}function ProcessEmitWarning(warning){if(console&&console.warn)console.warn(warning);}var NumberIsNaN=Number.isNaN||function NumberIsNaN(value){return value!==value;};function EventEmitter$1(){EventEmitter$1.init.call(this);}events.exports=EventEmitter$1;events.exports.once=once$1;// Backwards-compat with node 0.10.x
|
|
4924
|
+
if(flags.once){emitter.removeEventListener(name,wrapListener);}listener(arg);});}else {throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof emitter);}}class EventEmitter$2 extends events$1.exports.EventEmitter{}class IngressSdpMunger{constructor(){this.customCodecParameters=new Map();this.ssrc=generateSsrc();}getReceiverId(){return Object.assign({ssrc:this.ssrc},this.rtxSsrc?{rtxSsrc:this.rtxSsrc}:{});}mungeLocalDescription(mediaDescription,options){retainCodecsByMimeType(mediaDescription,options.supportedCodecs);if(mediaDescription.codecs.size===0){logErrorAndThrow(WcmeErrorType.SDP_MUNGE_MISSING_CODECS,"No codecs present in m-line with MID ".concat(mediaDescription.mid," after filtering."));}removeMidRidExtensions(mediaDescription);this.customCodecParameters.forEach((codecParams,codecMimeType)=>{setFormatParameters(mediaDescription,codecMimeType,codecParams);});if(options.twccDisabled){disableTwcc(mediaDescription);}}mungeRemoteDescription(mediaDescription){if(!mediaDescription.ssrcs.length){mediaDescription.addLine(new SsrcLine$1(this.ssrc,'cname',"".concat(this.ssrc,"-cname")));mediaDescription.addLine(new SsrcLine$1(this.ssrc,'msid','-',"".concat(mediaDescription.mid)));if(hasCodec('rtx',mediaDescription)){if(!this.rtxSsrc){this.rtxSsrc=generateSsrc();}mediaDescription.addLine(new SsrcLine$1(this.rtxSsrc,'cname',"".concat(this.ssrc,"-cname")));mediaDescription.addLine(new SsrcLine$1(this.rtxSsrc,'msid','-',"".concat(mediaDescription.mid)));mediaDescription.addLine(new SsrcGroupLine$1('FID',[this.ssrc,this.rtxSsrc]));}}if(retainCandidatesByTransportType(mediaDescription,['udp','tcp'])){logger.log("Some unsupported remote candidates have been removed from mid ".concat(mediaDescription.mid));}var rtxParams=this.customCodecParameters.get(MediaCodecMimeType.RTX);if(rtxParams){setFormatParameters(mediaDescription,MediaCodecMimeType.RTX,rtxParams);}}setCustomCodecParameters(codecMimeType,parameters){setCodecParameters(this.customCodecParameters,codecMimeType,parameters);}markCustomCodecParametersForDeletion(codecMimeType,parameters){markCodecParametersForDeletion(this.customCodecParameters,codecMimeType,parameters);}reset(){this.ssrc=generateSsrc();}}var HomerMsgType;(function(HomerMsgType){HomerMsgType["Multistream"]="multistream";})(HomerMsgType||(HomerMsgType={}));class HomerMsg{constructor(msgType,payload){this.msgType=msgType;this.payload=payload;}static fromJson(data){if(!data.msgType||!data.payload){return null;}return new HomerMsg(data.msgType,data.payload);}}var EncodedTransformType;(function(EncodedTransformType){EncodedTransformType["AudioLevelMonitor"]="audio-level-monitor";})(EncodedTransformType||(EncodedTransformType={}));var MainMsgType;(function(MainMsgType){MainMsgType["GetMetadata"]="get-metadata";MainMsgType["ClearMetadata"]="clear-metadata";})(MainMsgType||(MainMsgType={}));var WorkerMsgType;(function(WorkerMsgType){WorkerMsgType["Response"]="response";WorkerMsgType["Log"]="log";})(WorkerMsgType||(WorkerMsgType={}));class MidPredictor{constructor(){this.currentMid=0;this.midMap=new Map();}getNextMid(mediaType){var mid=this.currentMid++;var mids=this.midMap.get(mediaType)||[];mids.push("".concat(mid));this.midMap.set(mediaType,mids);return "".concat(mid);}allocateMidForDatachannel(){this.currentMid+=1;}reset(){this.midMap=new Map();this.currentMid=0;}getMidMap(){return this.midMap;}}var OveruseState;(function(OveruseState){OveruseState[OveruseState["NOT_OVERUSED"]=0]="NOT_OVERUSED";OveruseState[OveruseState["OVERUSED"]=1]="OVERUSED";})(OveruseState||(OveruseState={}));class OveruseStateManager{constructor(callback){this.monitors=[];this.lastOverallOveruseState=OveruseState.NOT_OVERUSED;this.isRunning=false;this.overuseUpdateCallback=callback;}addMonitor(monitor){this.monitors.push(monitor);if(this.isRunning){monitor.startMonitoring(()=>this.onMonitorOveruseUpdate());}}start(){this.isRunning=true;this.monitors.forEach(monitor=>monitor.startMonitoring(()=>this.onMonitorOveruseUpdate()));}stop(){this.isRunning=false;this.monitors.forEach(monitor=>monitor.stopMonitoring());}onMonitorOveruseUpdate(){var overuseStates=this.monitors.map(monitor=>monitor.getLastOveruseState());var overallOveruseState=overuseStates.some(overuseState=>overuseState===OveruseState.OVERUSED)?OveruseState.OVERUSED:OveruseState.NOT_OVERUSED;if(overallOveruseState!==this.lastOverallOveruseState){this.lastOverallOveruseState=overallOveruseState;this.overuseUpdateCallback(overallOveruseState);}}}var ReceiveSlotEvents;(function(ReceiveSlotEvents){ReceiveSlotEvents["MediaStarted"]="media-started";ReceiveSlotEvents["MediaStopped"]="media-stopped";ReceiveSlotEvents["MediaEnded"]="media-ended";ReceiveSlotEvents["SourceUpdate"]="source-update";})(ReceiveSlotEvents||(ReceiveSlotEvents={}));class ReceiveSlot extends EventEmitter$2{constructor(idGetter,track){super();this._isRequested=false;this._idGetter=idGetter;this.handleStreamMediaStateChange=this.handleStreamMediaStateChange.bind(this);this.handleStreamEnded=this.handleStreamEnded.bind(this);this._stream=new RemoteStream(new MediaStream([track]));this._sourceState=track.kind===MediaStreamTrackKind.Video?'no source':undefined;this._stream.on(RemoteStreamEventNames.MediaStateChange,this.handleStreamMediaStateChange);this._stream.on(StreamEventNames.Ended,this.handleStreamEnded);}handleStreamMediaStateChange(state){if(state===RemoteMediaState.Stopped){this.emit(ReceiveSlotEvents.MediaStopped);}else {this.emit(ReceiveSlotEvents.MediaStarted);}}handleStreamEnded(){this.emit(ReceiveSlotEvents.MediaEnded);}_replaceTrack(newTrack){this._stream.replaceTrack(newTrack);}_updateSource(state,csi){if(state!==this._sourceState||csi!==this._currentRxCsi){this._sourceState=state;this._currentRxCsi=csi;this.emit(ReceiveSlotEvents.SourceUpdate,state,csi);}}close(){this._stream.off(RemoteStreamEventNames.MediaStateChange,this.handleStreamMediaStateChange);this._stream.off(StreamEventNames.Ended,this.handleStreamEnded);}get id(){return this._idGetter();}get stream(){return this._stream.outputStream;}get currentRxCsi(){return this._currentRxCsi;}get sourceState(){return this._sourceState;}}ReceiveSlot.Events=ReceiveSlotEvents;function getCurrentTimestamp(){return performance.timeOrigin+performance.now();}class StatsManager{constructor(statsGetter){var statsPreprocessor=arguments.length>1&&arguments[1]!==undefined?arguments[1]:()=>__awaiter(this,void 0,void 0,function*(){});this.statsGetter=statsGetter;this.statsPreProcessor=statsPreprocessor;}getStats(){return __awaiter(this,void 0,void 0,function*(){var statsReport=yield this.statsGetter();var statsMap=new Map();statsReport.forEach((stats,key)=>statsMap.set(key,stats));yield this.statsPreProcessor(statsMap);return statsMap;});}}class Transceiver{constructor(config){this.twccDisabled=false;this._rtcRtpTransceiver=config.rtcRtpTransceiver;this.mid=config.mid;this.mediaType=config.mediaType;}replaceTransceiver(newRtcRtpTransceiver){this._rtcRtpTransceiver=newRtcRtpTransceiver;}get receiver(){return this._rtcRtpTransceiver.receiver;}get sender(){return this._rtcRtpTransceiver.sender;}close(){try{this._rtcRtpTransceiver.stop();}catch(error){if(error instanceof DOMException&&error.name==='InvalidStateError'){logger.warn('Peer connection is already closed, skipping call to RTCRtpTransceiver.stop()');}else {logger.error('An unexpected error occurred while stopping the RTCRtpTransceiver:',error);throw error;}}}}class ReceiveOnlyTransceiver extends Transceiver{constructor(config){super(config);this.metadata={isActiveSpeaker:false};this.getEncodedStreamMetadataCallback=()=>Promise.resolve(undefined);this.munger=config.munger;this.supportedCodecs=config.supportedCodecs;this._receiveSlot=new ReceiveSlot(()=>{if(!this._rtcRtpTransceiver.mid){return null;}return this.munger.getReceiverId();},this._rtcRtpTransceiver.receiver.track);}setEncodedStreamMetadataCallback(callback){this.getEncodedStreamMetadataCallback=callback;}replaceTransceiver(newRtcRtpTransceiver){super.replaceTransceiver(newRtcRtpTransceiver);this._receiveSlot._replaceTrack(newRtcRtpTransceiver.receiver.track);}close(){super.close();this._receiveSlot.close();}get receiveSlot(){return this._receiveSlot;}getStats(){return __awaiter(this,void 0,void 0,function*(){var statsMap=new Map();var[statsReport,encodedStreamMetadata]=yield Promise.all([this.receiver.getStats(),this.getEncodedStreamMetadataCallback()]);statsReport.forEach((stats,key)=>{if(stats.type==='inbound-rtp'){stats.mid=this.mid;stats.csi=this.receiveSlot.currentRxCsi;stats.sourceState=this.receiveSlot.sourceState;stats.calliopeMediaType=this.mediaType;stats.requestedBitrate=this.metadata.requestedBitrate;stats.requestedFrameSize=this.metadata.requestedFrameSize;stats.requestedFrameRate=this.metadata.requestedFrameRate;stats.isRequested=this.receiveSlot._isRequested;stats.lastRequestedUpdateTimestamp=this.metadata.lastRequestedUpdateTimestamp;stats.isActiveSpeaker=this.metadata.isActiveSpeaker;stats.lastActiveSpeakerUpdateTimestamp=this.metadata.lastActiveSpeakerUpdateTimestamp;stats.trackReadyState=this._rtcRtpTransceiver.receiver.track.readyState;stats.trackMuted=this._rtcRtpTransceiver.receiver.track.muted;stats.trackEnabled=this._rtcRtpTransceiver.receiver.track.enabled;stats.maxAudioLevelFromRtpHeader=encodedStreamMetadata&&'maxAudioLevel'in encodedStreamMetadata?encodedStreamMetadata.maxAudioLevel:undefined;Object.assign(stats,this.receiverId);}statsMap.set(key,stats);});return statsMap;});}mungeLocalDescription(mediaDescription){this.munger.mungeLocalDescription(mediaDescription,{twccDisabled:this.twccDisabled,supportedCodecs:this.supportedCodecs});}mungeRemoteDescription(mediaDescription){this.munger.mungeRemoteDescription(mediaDescription);}get receiverId(){return this.munger.getReceiverId();}resetSdpMunger(){this.munger.reset();}handleRequested(streamRequest){if(!this.receiveSlot._isRequested){this.receiveSlot._isRequested=true;this.metadata.lastRequestedUpdateTimestamp=getCurrentTimestamp();}this.metadata.requestedBitrate=streamRequest.maxPayloadBitsPerSecond;var firstCodecInfo=streamRequest.codecInfos[0];if(firstCodecInfo===null||firstCodecInfo===void 0?void 0:firstCodecInfo.h264){this.metadata.requestedFrameSize=firstCodecInfo.h264.maxFs;this.metadata.requestedFrameRate=firstCodecInfo.h264.maxFps;}else if(firstCodecInfo===null||firstCodecInfo===void 0?void 0:firstCodecInfo.av1){this.metadata.requestedFrameSize=getFrameSizeForPicSize(firstCodecInfo.av1.maxPicSize);if(firstCodecInfo.av1.maxPicSize>0&&firstCodecInfo.av1.maxDecodeRate>0){this.metadata.requestedFrameRate=Math.round(firstCodecInfo.av1.maxDecodeRate/firstCodecInfo.av1.maxPicSize);}}}handleUnrequested(){if(this.receiveSlot._isRequested){this.receiveSlot._isRequested=false;this.metadata.lastRequestedUpdateTimestamp=getCurrentTimestamp();}this.metadata.requestedBitrate=undefined;this.metadata.requestedFrameSize=undefined;this.metadata.requestedFrameRate=undefined;this.receiveSlot._updateSource('no source',undefined);}handleActiveSpeakerUpdate(value){if(this.metadata.isActiveSpeaker!==value){this.metadata.isActiveSpeaker=value;this.metadata.lastActiveSpeakerUpdateTimestamp=getCurrentTimestamp();}}setCustomCodecParameters(codecMimeType,parameters){this.munger.setCustomCodecParameters(codecMimeType,parameters);}}var events={exports:{}};var R=typeof Reflect==='object'?Reflect:null;var ReflectApply=R&&typeof R.apply==='function'?R.apply:function ReflectApply(target,receiver,args){return Function.prototype.apply.call(target,receiver,args);};var ReflectOwnKeys;if(R&&typeof R.ownKeys==='function'){ReflectOwnKeys=R.ownKeys;}else if(Object.getOwnPropertySymbols){ReflectOwnKeys=function ReflectOwnKeys(target){return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));};}else {ReflectOwnKeys=function ReflectOwnKeys(target){return Object.getOwnPropertyNames(target);};}function ProcessEmitWarning(warning){if(console&&console.warn)console.warn(warning);}var NumberIsNaN=Number.isNaN||function NumberIsNaN(value){return value!==value;};function EventEmitter$1(){EventEmitter$1.init.call(this);}events.exports=EventEmitter$1;events.exports.once=once$1;// Backwards-compat with node 0.10.x
|
|
4925
4925
|
EventEmitter$1.EventEmitter=EventEmitter$1;EventEmitter$1.prototype._events=undefined;EventEmitter$1.prototype._eventsCount=0;EventEmitter$1.prototype._maxListeners=undefined;// By default EventEmitters will print a warning if more than 10 listeners are
|
|
4926
4926
|
// added to it. This is a useful default which helps finding memory leaks.
|
|
4927
4927
|
var defaultMaxListeners=10;function checkListener(listener){if(typeof listener!=='function'){throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof listener);}}Object.defineProperty(EventEmitter$1,'defaultMaxListeners',{enumerable:true,get:function get(){return defaultMaxListeners;},set:function set(arg){if(typeof arg!=='number'||arg<0||NumberIsNaN(arg)){throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+arg+'.');}defaultMaxListeners=arg;}});EventEmitter$1.init=function(){if(this._events===undefined||this._events===Object.getPrototypeOf(this)._events){this._events=Object.create(null);this._eventsCount=0;}this._maxListeners=this._maxListeners||undefined;};// Obviously not all Emitters should be limited to 10. This function allows
|
|
@@ -18745,6 +18745,7 @@ var InboundAudioIssueSubTypes;
|
|
|
18745
18745
|
(function (InboundAudioIssueSubTypes) {
|
|
18746
18746
|
InboundAudioIssueSubTypes["DECODE_RESULTS_IN_ZERO_AUDIO_LEVEL"] = "DECODE_RESULTS_IN_ZERO_AUDIO_LEVEL";
|
|
18747
18747
|
InboundAudioIssueSubTypes["ALL_PACKETS_DISCARDED"] = "ALL_PACKETS_DISCARDED";
|
|
18748
|
+
InboundAudioIssueSubTypes["PLAYOUT_INACTIVE"] = "PLAYOUT_INACTIVE";
|
|
18748
18749
|
})(InboundAudioIssueSubTypes || (InboundAudioIssueSubTypes = {}));
|
|
18749
18750
|
|
|
18750
18751
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -19259,6 +19260,10 @@ class StatsMonitor extends EventEmitter$5 {
|
|
|
19259
19260
|
var packetsReceived = getSumFromStatsByType(current, 'inbound-rtp', 'packetsReceived');
|
|
19260
19261
|
var packetsDiscarded = getSumFromStatsByType(current, 'inbound-rtp', 'packetsDiscarded');
|
|
19261
19262
|
var discardedRatio = packetsReceived > 0 ? packetsDiscarded / packetsReceived : 0;
|
|
19263
|
+
var totalSamplesReceived = getSumFromStatsByType(current, 'inbound-rtp', 'totalSamplesReceived');
|
|
19264
|
+
var previousTotalSamplesReceived = getSumFromStatsByType(previous, 'inbound-rtp', 'totalSamplesReceived');
|
|
19265
|
+
var jitterBufferEmittedCount = getSumFromStatsByType(current, 'inbound-rtp', 'jitterBufferEmittedCount');
|
|
19266
|
+
var previousJitterBufferEmittedCount = getSumFromStatsByType(previous, 'inbound-rtp', 'jitterBufferEmittedCount');
|
|
19262
19267
|
if (packetsReceived > MIN_AUDIO_PACKETS_RECEIVER_THRESHOLD && packetsReceived > previousPacketsReceived) {
|
|
19263
19268
|
if (this.hasAudioDecodeIssue(current, packetsReceived, discardedRatio)) {
|
|
19264
19269
|
this.emit(StatsMonitorEventNames.INBOUND_AUDIO_ISSUE, {
|
|
@@ -19269,6 +19274,11 @@ class StatsMonitor extends EventEmitter$5 {
|
|
|
19269
19274
|
this.emit(StatsMonitorEventNames.INBOUND_AUDIO_ISSUE, {
|
|
19270
19275
|
issueSubType: InboundAudioIssueSubTypes.ALL_PACKETS_DISCARDED
|
|
19271
19276
|
});
|
|
19277
|
+
} else if (totalSamplesReceived === previousTotalSamplesReceived && jitterBufferEmittedCount === previousJitterBufferEmittedCount) {
|
|
19278
|
+
getLogger().info("StatsMonitor#checkInboundAudio --> Audio playout inactive: packetsReceived=".concat(packetsReceived, " totalSamplesReceived=").concat(totalSamplesReceived, " jitterBufferEmittedCount=").concat(jitterBufferEmittedCount));
|
|
19279
|
+
this.emit(StatsMonitorEventNames.INBOUND_AUDIO_ISSUE, {
|
|
19280
|
+
issueSubType: InboundAudioIssueSubTypes.PLAYOUT_INACTIVE
|
|
19281
|
+
});
|
|
19272
19282
|
}
|
|
19273
19283
|
}
|
|
19274
19284
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatsMonitor.d.ts","sourceRoot":"","sources":["../../../src/StatsAnalyzer/StatsMonitor.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAGL,kBAAkB,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAgB/C,qBAAa,YAAa,SAAQ,YAAY,CAAC,kBAAkB,CAAC;IAChE,OAAO,CAAC,oBAAoB,CAE1B;IAEF,OAAO,CAAC,mBAAmB;IAqF3B,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"StatsMonitor.d.ts","sourceRoot":"","sources":["../../../src/StatsAnalyzer/StatsMonitor.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAGL,kBAAkB,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAgB/C,qBAAa,YAAa,SAAQ,YAAY,CAAC,kBAAkB,CAAC;IAChE,OAAO,CAAC,oBAAoB,CAE1B;IAEF,OAAO,CAAC,mBAAmB;IAqF3B,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAiEvD,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAwDxD,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAoEvD,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAkDxD,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAoEvD,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;CA+BzD"}
|
|
@@ -50,7 +50,8 @@ export declare enum StatsMonitorEventNames {
|
|
|
50
50
|
}
|
|
51
51
|
export declare enum InboundAudioIssueSubTypes {
|
|
52
52
|
DECODE_RESULTS_IN_ZERO_AUDIO_LEVEL = "DECODE_RESULTS_IN_ZERO_AUDIO_LEVEL",
|
|
53
|
-
ALL_PACKETS_DISCARDED = "ALL_PACKETS_DISCARDED"
|
|
53
|
+
ALL_PACKETS_DISCARDED = "ALL_PACKETS_DISCARDED",
|
|
54
|
+
PLAYOUT_INACTIVE = "PLAYOUT_INACTIVE"
|
|
54
55
|
}
|
|
55
56
|
export interface InboundAudioIssueEvent {
|
|
56
57
|
issueSubType: InboundAudioIssueSubTypes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventTypes.d.ts","sourceRoot":"","sources":["../../../src/StatsAnalyzer/eventTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,oBAAY,uBAAuB;IACjC,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;IAC3C,mBAAmB,wBAAwB;IAC3C,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,YAAY,iBAAiB;CAC9B;AACD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,CAAC,uBAAuB,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC5E,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpF,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpF,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrF,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrF,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC3E;AAED,oBAAY,8BAA8B,GAAG;IAC3C,KAAK,EAAE,uBAAuB,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,mBAAmB,CAAC;IACjG,MAAM,EACF,uBAAuB,CAAC,oBAAoB,GAC5C,uBAAuB,CAAC,oBAAoB,CAAC;CAClD,CAAC;AAEF,oBAAY,0BAA0B,GAAG,OAAO,CAAC;IAC/C,KAAK,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC/C,KAAK,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC/C,KAAK,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;CAChD,CAAC,CAAC;AAEH,oBAAY,wBAAwB;IAClC,eAAe,oBAAoB;CACpC;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA4B,SAAQ,QAAQ;IAC3D,CAAC,wBAAwB,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAClF;AAED,oBAAY,sBAAsB;IAChC,mBAAmB,wBAAwB;CAC5C;AAED,oBAAY,yBAAyB;IACnC,kCAAkC,uCAAuC;IACzE,qBAAqB,0BAA0B;
|
|
1
|
+
{"version":3,"file":"eventTypes.d.ts","sourceRoot":"","sources":["../../../src/StatsAnalyzer/eventTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,oBAAY,uBAAuB;IACjC,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;IAC3C,mBAAmB,wBAAwB;IAC3C,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,YAAY,iBAAiB;CAC9B;AACD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,CAAC,uBAAuB,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC5E,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpF,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpF,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrF,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrF,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC3E;AAED,oBAAY,8BAA8B,GAAG;IAC3C,KAAK,EAAE,uBAAuB,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,mBAAmB,CAAC;IACjG,MAAM,EACF,uBAAuB,CAAC,oBAAoB,GAC5C,uBAAuB,CAAC,oBAAoB,CAAC;CAClD,CAAC;AAEF,oBAAY,0BAA0B,GAAG,OAAO,CAAC;IAC/C,KAAK,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC/C,KAAK,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC/C,KAAK,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;CAChD,CAAC,CAAC;AAEH,oBAAY,wBAAwB;IAClC,eAAe,oBAAoB;CACpC;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA4B,SAAQ,QAAQ;IAC3D,CAAC,wBAAwB,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAClF;AAED,oBAAY,sBAAsB;IAChC,mBAAmB,wBAAwB;CAC5C;AAED,oBAAY,yBAAyB;IACnC,kCAAkC,uCAAuC;IACzE,qBAAqB,0BAA0B;IAC/C,gBAAgB,qBAAqB;CACtC;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,yBAAyB,CAAC;CACzC;AAED,MAAM,WAAW,kBAAmB,SAAQ,QAAQ;IAClD,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACvF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/internal-media-core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.25.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist/cjs",
|
|
6
6
|
"dist/esm",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"@webex/rtcstats": "^1.5.5",
|
|
61
61
|
"@webex/ts-sdp": "1.8.2",
|
|
62
62
|
"@webex/web-capabilities": "^1.10.0",
|
|
63
|
-
"@webex/web-client-media-engine": "3.39.
|
|
63
|
+
"@webex/web-client-media-engine": "3.39.11",
|
|
64
64
|
"events": "^3.3.0",
|
|
65
65
|
"ip-anonymize": "^0.1.0",
|
|
66
66
|
"typed-emitter": "^2.1.0",
|