@webex/web-client-media-engine 3.38.2 → 3.39.1

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/esm/index.js CHANGED
@@ -7975,6 +7975,13 @@ class WebCapabilities {
7975
7975
  ? CapabilityState.CAPABLE
7976
7976
  : CapabilityState.NOT_CAPABLE;
7977
7977
  }
7978
+ static supportsEncodingCodec() {
7979
+ return ((BrowserInfo.isChrome() || BrowserInfo.isEdge()) &&
7980
+ BrowserInfo.isVersionGreaterThanOrEqualTo('140')) ||
7981
+ (BrowserInfo.isFirefox() && BrowserInfo.isVersionGreaterThanOrEqualTo('145'))
7982
+ ? CapabilityState.CAPABLE
7983
+ : CapabilityState.NOT_CAPABLE;
7984
+ }
7978
7985
  }
7979
7986
 
7980
7987
  var WcmeErrorType;
@@ -8503,11 +8510,6 @@ function getFrameSizeForPicSize(maxPicSize) {
8503
8510
  }
8504
8511
  return Math.ceil(maxPicSize / macroBlockSize);
8505
8512
  }
8506
- function isEncodingCodecSupported() {
8507
- return (((BrowserInfo.isChrome() || BrowserInfo.isEdge()) &&
8508
- BrowserInfo.isVersionGreaterThanOrEqualTo('140')) ||
8509
- (BrowserInfo.isFirefox() && BrowserInfo.isVersionGreaterThanOrEqualTo('145')));
8510
- }
8511
8513
  function getSupportedAudioCodecs() {
8512
8514
  return [MediaCodecMimeType.OPUS];
8513
8515
  }
@@ -8516,12 +8518,18 @@ function getSupportedVideoCodecs(options = {
8516
8518
  }) {
8517
8519
  const supportedCodecs = [MediaCodecMimeType.H264, MediaCodecMimeType.RTX];
8518
8520
  if (options.includeAV1) {
8519
- if (isEncodingCodecSupported()) {
8520
- supportedCodecs.push(MediaCodecMimeType.AV1);
8521
- }
8522
- else {
8521
+ const supportsEncodingCodec = WebCapabilities.supportsEncodingCodec() === CapabilityState.CAPABLE;
8522
+ const supportsAV1 = WebCapabilities.isCapableOfReceivingVideoCodec(MediaCodecMimeType.AV1) ===
8523
+ CapabilityState.CAPABLE;
8524
+ if (!supportsEncodingCodec) {
8523
8525
  logger.warn('AV1 codec was requested but browser does not support encoding.codec');
8524
8526
  }
8527
+ if (!supportsAV1) {
8528
+ logger.warn('AV1 codec was requested but browser does not support it');
8529
+ }
8530
+ if (supportsEncodingCodec && supportsAV1) {
8531
+ supportedCodecs.push(MediaCodecMimeType.AV1);
8532
+ }
8525
8533
  }
8526
8534
  return supportedCodecs;
8527
8535
  }
@@ -15515,15 +15523,7 @@ class SendOnlyTransceiver extends Transceiver {
15515
15523
  const encodingParams = requestedIdEncodingParamsMap.get(index);
15516
15524
  encoding.active = !!encodingParams;
15517
15525
  if (shouldUpdateSelectedCodec) {
15518
- if (isEncodingCodecSupported()) {
15519
- const isCodecCapable = selectedCodec &&
15520
- WebCapabilities.isCapableOfReceivingVideoCodec(selectedCodec.mimeType) ===
15521
- CapabilityState.CAPABLE;
15522
- if (!isCodecCapable) {
15523
- logErrorAndThrow(WcmeErrorType.INVALID_CODEC_PARAMS, `Codec ${selectedCodec === null || selectedCodec === void 0 ? void 0 : selectedCodec.mimeType} is not supported by the browser.`);
15524
- }
15525
- encoding.codec = selectedCodec;
15526
- }
15526
+ encoding.codec = selectedCodec;
15527
15527
  }
15528
15528
  if (encodingParams) {
15529
15529
  const { maxPayloadBitsPerSecond } = encodingParams;
@@ -16969,5 +16969,5 @@ class StreamRequest {
16969
16969
 
16970
16970
  const { DeviceKind } = media;
16971
16971
 
16972
- export { AV1Codec, ActiveSpeakerInfo, CodecInfo$1 as CodecInfo, ConnectionState, DeviceKind, H264Codec, Logger$1 as JMPLogger, LocalCameraStream, LocalDisplayStream, LocalMicrophoneStream, LocalStream, LocalStreamEventNames, LocalSystemAudioStream, Logger, MediaCodecMimeType, MediaContent, MediaFamily, MediaStreamTrackKind, MediaType, MultistreamConnection, MultistreamConnectionEventNames, PeerConnection, Policy, ReceiveSlot, ReceiveSlotEvents, ReceiverSelectedInfo, RecommendedOpusBitrates, RemoteMediaState, RemoteStream, RemoteStreamEventNames, SendSlot, StreamEventNames, StreamRequest, WcmeError, WcmeErrorType, Logger$2 as WebRtcCoreLogger, WebrtcCoreError, WebrtcCoreErrorType, areReceiveSlotIdsEqual, codecToEncodingParams, createCameraAndMicrophoneStreams, createCameraStream, createDisplayMedia, createDisplayStream, createDisplayStreamWithAudio, createMicrophoneStream, getAudioInputDevices, getAudioOutputDevices, getDevices, getFrameSizeForPicSize, getLogLevel, getMediaContent, getMediaFamily, getMediaType, getRecommendedMaxBitrateForFrameSize, getRecommendedMaxBitrateForPicSize, getVideoInputDevices, isEncodingCodecSupported, logErrorAndThrow, setLogHandler, setLogLevel, setOnDeviceChangeHandler };
16972
+ export { AV1Codec, ActiveSpeakerInfo, CodecInfo$1 as CodecInfo, ConnectionState, DeviceKind, H264Codec, Logger$1 as JMPLogger, LocalCameraStream, LocalDisplayStream, LocalMicrophoneStream, LocalStream, LocalStreamEventNames, LocalSystemAudioStream, Logger, MediaCodecMimeType, MediaContent, MediaFamily, MediaStreamTrackKind, MediaType, MultistreamConnection, MultistreamConnectionEventNames, PeerConnection, Policy, ReceiveSlot, ReceiveSlotEvents, ReceiverSelectedInfo, RecommendedOpusBitrates, RemoteMediaState, RemoteStream, RemoteStreamEventNames, SendSlot, StreamEventNames, StreamRequest, WcmeError, WcmeErrorType, Logger$2 as WebRtcCoreLogger, WebrtcCoreError, WebrtcCoreErrorType, areReceiveSlotIdsEqual, codecToEncodingParams, createCameraAndMicrophoneStreams, createCameraStream, createDisplayMedia, createDisplayStream, createDisplayStreamWithAudio, createMicrophoneStream, getAudioInputDevices, getAudioOutputDevices, getDevices, getFrameSizeForPicSize, getLogLevel, getMediaContent, getMediaFamily, getMediaType, getRecommendedMaxBitrateForFrameSize, getRecommendedMaxBitrateForPicSize, getVideoInputDevices, logErrorAndThrow, setLogHandler, setLogLevel, setOnDeviceChangeHandler };
16973
16973
  //# sourceMappingURL=index.js.map