@bigbinary/neeto-media-recorder 2.4.0 → 2.4.2

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/core.js CHANGED
@@ -773,6 +773,14 @@ var partPresignedUrlApi = {
773
773
  create: retryableCreate
774
774
  };
775
775
 
776
+ // https://www.w3.org/TR/screen-capture/#displaycapturesurfacetype
777
+ var DISPLAY_SURFACE = {
778
+ monitor: "monitor",
779
+ window: "window",
780
+ browser: "browser"
781
+ };
782
+ var MINIMUM_CHROMIUM_VERSION_FOR_MP4 = "128.0.6613.85";
783
+
776
784
  var getUnSupportedConstraints = function getUnSupportedConstraints(mediaType) {
777
785
  var supportedMediaConstraints = navigator.mediaDevices.getSupportedConstraints();
778
786
  return Object.keys(mediaType).filter(function (constraint) {
@@ -799,9 +807,31 @@ var isStreamEnded = function isStreamEnded(mediaStream) {
799
807
  readyState: "ended"
800
808
  }, mediaStream.getTracks());
801
809
  };
810
+ function getChromiumVersion() {
811
+ var userAgent = navigator.userAgent;
812
+ var match = userAgent.match(/Chrom(e|ium)\/(([0-9][.]?)+)/);
813
+ if (match) {
814
+ return match[2];
815
+ }
816
+ return null;
817
+ }
818
+ var versionToInteger = function versionToInteger(version) {
819
+ return parseInt(version.replaceAll(".", ""));
820
+ };
802
821
  var getSupportedMimeType = function getSupportedMimeType(fallback) {
803
822
  if (MediaRecorder.isTypeSupported(MIME_TYPE.mp4)) {
804
- return MIME_TYPE.mp4;
823
+ if (platform.name === "Safari") {
824
+ return MIME_TYPE.mp4;
825
+ }
826
+ var chromiumVersion = getChromiumVersion();
827
+ if (isNil(chromiumVersion)) {
828
+ return MIME_TYPE.webmH264;
829
+ }
830
+ var isChromiumVersionSupported = versionToInteger(chromiumVersion) >= versionToInteger(MINIMUM_CHROMIUM_VERSION_FOR_MP4);
831
+ if (isChromiumVersionSupported) {
832
+ return MIME_TYPE.mp4;
833
+ }
834
+ return MIME_TYPE.webmH264;
805
835
  } else if (MediaRecorder.isTypeSupported(MIME_TYPE.webmH264)) {
806
836
  return MIME_TYPE.webmH264;
807
837
  }
@@ -1314,14 +1344,6 @@ function _slicedToArray(arr, i) {
1314
1344
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
1315
1345
  }
1316
1346
 
1317
- // https://www.w3.org/TR/screen-capture/#displaycapturesurfacetype
1318
- var DISPLAY_SURFACE = {
1319
- monitor: "monitor",
1320
- window: "window",
1321
- browser: "browser"
1322
- };
1323
- // 14 minutes
1324
-
1325
1347
  function ownKeys$1(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; }
1326
1348
  function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1327
1349
  var initialState = {