@volcengine/veplayer-plugin 2.4.2-rc.0 → 2.4.2-rc.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/esm/index.development.js +740 -128
- package/esm/index.production.js +4 -4
- package/esm/veplayer.plugin.rtm.development.js +696 -84
- package/esm/veplayer.plugin.rtm.production.js +1 -1
- package/package.json +1 -1
- package/umd/veplayer.plugin.rtm.development.js +696 -84
- package/umd/veplayer.plugin.rtm.production.js +1 -1
|
@@ -1,3 +1,29 @@
|
|
|
1
|
+
function _iterableToArrayLimit(arr, i) {
|
|
2
|
+
var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
|
|
3
|
+
if (null != _i) {
|
|
4
|
+
var _s, _e, _x, _r, _arr = [], _n = true, _d = false;
|
|
5
|
+
try {
|
|
6
|
+
if (_x = (_i = _i.call(arr)).next, 0 === i) {
|
|
7
|
+
if (Object(_i) !== _i)
|
|
8
|
+
return;
|
|
9
|
+
_n = false;
|
|
10
|
+
} else
|
|
11
|
+
for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = true)
|
|
12
|
+
;
|
|
13
|
+
} catch (err) {
|
|
14
|
+
_d = true, _e = err;
|
|
15
|
+
} finally {
|
|
16
|
+
try {
|
|
17
|
+
if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r))
|
|
18
|
+
return;
|
|
19
|
+
} finally {
|
|
20
|
+
if (_d)
|
|
21
|
+
throw _e;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return _arr;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
1
27
|
function ownKeys$2(object, enumerableOnly) {
|
|
2
28
|
var keys = Object.keys(object);
|
|
3
29
|
if (Object.getOwnPropertySymbols) {
|
|
@@ -475,6 +501,104 @@ function _createSuper$1(Derived) {
|
|
|
475
501
|
return _possibleConstructorReturn$1(this, result);
|
|
476
502
|
};
|
|
477
503
|
}
|
|
504
|
+
function _slicedToArray(arr, i) {
|
|
505
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$2(arr, i) || _nonIterableRest();
|
|
506
|
+
}
|
|
507
|
+
function _toConsumableArray$1(arr) {
|
|
508
|
+
return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _unsupportedIterableToArray$2(arr) || _nonIterableSpread$1();
|
|
509
|
+
}
|
|
510
|
+
function _arrayWithoutHoles$1(arr) {
|
|
511
|
+
if (Array.isArray(arr))
|
|
512
|
+
return _arrayLikeToArray$2(arr);
|
|
513
|
+
}
|
|
514
|
+
function _arrayWithHoles(arr) {
|
|
515
|
+
if (Array.isArray(arr))
|
|
516
|
+
return arr;
|
|
517
|
+
}
|
|
518
|
+
function _iterableToArray$1(iter) {
|
|
519
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null)
|
|
520
|
+
return Array.from(iter);
|
|
521
|
+
}
|
|
522
|
+
function _unsupportedIterableToArray$2(o, minLen) {
|
|
523
|
+
if (!o)
|
|
524
|
+
return;
|
|
525
|
+
if (typeof o === "string")
|
|
526
|
+
return _arrayLikeToArray$2(o, minLen);
|
|
527
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
528
|
+
if (n === "Object" && o.constructor)
|
|
529
|
+
n = o.constructor.name;
|
|
530
|
+
if (n === "Map" || n === "Set")
|
|
531
|
+
return Array.from(o);
|
|
532
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
|
|
533
|
+
return _arrayLikeToArray$2(o, minLen);
|
|
534
|
+
}
|
|
535
|
+
function _arrayLikeToArray$2(arr, len) {
|
|
536
|
+
if (len == null || len > arr.length)
|
|
537
|
+
len = arr.length;
|
|
538
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++)
|
|
539
|
+
arr2[i] = arr[i];
|
|
540
|
+
return arr2;
|
|
541
|
+
}
|
|
542
|
+
function _nonIterableSpread$1() {
|
|
543
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
544
|
+
}
|
|
545
|
+
function _nonIterableRest() {
|
|
546
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
547
|
+
}
|
|
548
|
+
function _createForOfIteratorHelper$1(o, allowArrayLike) {
|
|
549
|
+
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
550
|
+
if (!it) {
|
|
551
|
+
if (Array.isArray(o) || (it = _unsupportedIterableToArray$2(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
552
|
+
if (it)
|
|
553
|
+
o = it;
|
|
554
|
+
var i = 0;
|
|
555
|
+
var F = function() {
|
|
556
|
+
};
|
|
557
|
+
return {
|
|
558
|
+
s: F,
|
|
559
|
+
n: function() {
|
|
560
|
+
if (i >= o.length)
|
|
561
|
+
return {
|
|
562
|
+
done: true
|
|
563
|
+
};
|
|
564
|
+
return {
|
|
565
|
+
done: false,
|
|
566
|
+
value: o[i++]
|
|
567
|
+
};
|
|
568
|
+
},
|
|
569
|
+
e: function(e) {
|
|
570
|
+
throw e;
|
|
571
|
+
},
|
|
572
|
+
f: F
|
|
573
|
+
};
|
|
574
|
+
}
|
|
575
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
576
|
+
}
|
|
577
|
+
var normalCompletion = true, didErr = false, err;
|
|
578
|
+
return {
|
|
579
|
+
s: function() {
|
|
580
|
+
it = it.call(o);
|
|
581
|
+
},
|
|
582
|
+
n: function() {
|
|
583
|
+
var step = it.next();
|
|
584
|
+
normalCompletion = step.done;
|
|
585
|
+
return step;
|
|
586
|
+
},
|
|
587
|
+
e: function(e) {
|
|
588
|
+
didErr = true;
|
|
589
|
+
err = e;
|
|
590
|
+
},
|
|
591
|
+
f: function() {
|
|
592
|
+
try {
|
|
593
|
+
if (!normalCompletion && it.return != null)
|
|
594
|
+
it.return();
|
|
595
|
+
} finally {
|
|
596
|
+
if (didErr)
|
|
597
|
+
throw err;
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
};
|
|
601
|
+
}
|
|
478
602
|
function _toPrimitive$2(input, hint) {
|
|
479
603
|
if (typeof input !== "object" || input === null)
|
|
480
604
|
return input;
|
|
@@ -5061,6 +5185,519 @@ var NetworkEvaluate = /* @__PURE__ */ function() {
|
|
|
5061
5185
|
}]);
|
|
5062
5186
|
return NetworkEvaluate2;
|
|
5063
5187
|
}();
|
|
5188
|
+
var RTC_SEI_TYPE = /* @__PURE__ */ function(RTC_SEI_TYPE2) {
|
|
5189
|
+
RTC_SEI_TYPE2[RTC_SEI_TYPE2["internal"] = 0] = "internal";
|
|
5190
|
+
RTC_SEI_TYPE2[RTC_SEI_TYPE2["external"] = 1] = "external";
|
|
5191
|
+
RTC_SEI_TYPE2[RTC_SEI_TYPE2["bypass"] = 2] = "bypass";
|
|
5192
|
+
return RTC_SEI_TYPE2;
|
|
5193
|
+
}(RTC_SEI_TYPE || {});
|
|
5194
|
+
var UUID_INTERNAL = new Uint8Array([109, 167, 53, 190, 103, 90, 72, 1, 170, 89, 63, 164, 194, 199, 19, 85]);
|
|
5195
|
+
var UUID_EXTERNAL = new Uint8Array([109, 167, 53, 190, 103, 90, 72, 1, 170, 89, 63, 164, 194, 199, 19, 84]);
|
|
5196
|
+
var rbsp2ebsp = function rbsp2ebsp2(src) {
|
|
5197
|
+
var result = [];
|
|
5198
|
+
for (var i = 0; i < src.length; i++) {
|
|
5199
|
+
if (src[i] <= 3 && src[i - 1] === 0 && src[i - 2] === 0) {
|
|
5200
|
+
result.push(3);
|
|
5201
|
+
}
|
|
5202
|
+
result.push(src[i]);
|
|
5203
|
+
}
|
|
5204
|
+
return new Uint8Array(result);
|
|
5205
|
+
};
|
|
5206
|
+
var ebsp2rbsp = function ebsp2rbsp2(src) {
|
|
5207
|
+
var result = [];
|
|
5208
|
+
for (var i = 0; i < src.length; i++) {
|
|
5209
|
+
if (src[i] <= 3 && src[i - 1] === 0 && src[i - 2] === 0) {
|
|
5210
|
+
continue;
|
|
5211
|
+
}
|
|
5212
|
+
result.push(src[i]);
|
|
5213
|
+
}
|
|
5214
|
+
return new Uint8Array(result);
|
|
5215
|
+
};
|
|
5216
|
+
function serializeData(num) {
|
|
5217
|
+
var result = [];
|
|
5218
|
+
while (num >= 255) {
|
|
5219
|
+
num -= 255;
|
|
5220
|
+
result.push(255);
|
|
5221
|
+
}
|
|
5222
|
+
result.push(num);
|
|
5223
|
+
return new Uint8Array(result);
|
|
5224
|
+
}
|
|
5225
|
+
function deserializeData(data) {
|
|
5226
|
+
var offset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
|
|
5227
|
+
var result = 0;
|
|
5228
|
+
while (data[offset] === 255 && offset < data.byteLength) {
|
|
5229
|
+
offset++;
|
|
5230
|
+
result += 255;
|
|
5231
|
+
}
|
|
5232
|
+
if (offset < data.byteLength) {
|
|
5233
|
+
result += data[offset++];
|
|
5234
|
+
}
|
|
5235
|
+
return [result, offset];
|
|
5236
|
+
}
|
|
5237
|
+
var SEIHelper = /* @__PURE__ */ function() {
|
|
5238
|
+
function SEIHelper2() {
|
|
5239
|
+
_classCallCheck$2(this, SEIHelper2);
|
|
5240
|
+
}
|
|
5241
|
+
_createClass$2(SEIHelper2, null, [{
|
|
5242
|
+
key: "generateSEI",
|
|
5243
|
+
value: function generateSEI(src) {
|
|
5244
|
+
var internal = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
|
|
5245
|
+
var annexbHeader = new Uint8Array([0, 0, 0, 1]);
|
|
5246
|
+
var nalType = new Uint8Array([6]);
|
|
5247
|
+
var seiType = new Uint8Array([5]);
|
|
5248
|
+
var uuid = internal ? UUID_INTERNAL : UUID_EXTERNAL;
|
|
5249
|
+
var serializedPayloadSize = serializeData(src.byteLength + uuid.byteLength);
|
|
5250
|
+
var payloadEbsp = rbsp2ebsp(src);
|
|
5251
|
+
return new Uint8Array([].concat(_toConsumableArray$1(annexbHeader), _toConsumableArray$1(nalType), _toConsumableArray$1(seiType), _toConsumableArray$1(serializedPayloadSize), _toConsumableArray$1(uuid), _toConsumableArray$1(payloadEbsp), [128]));
|
|
5252
|
+
}
|
|
5253
|
+
}, {
|
|
5254
|
+
key: "decodeSeiBody",
|
|
5255
|
+
value: function decodeSeiBody(src) {
|
|
5256
|
+
src = src.slice(0, src.length - 1);
|
|
5257
|
+
var rbsp = ebsp2rbsp(src);
|
|
5258
|
+
if (rbsp.byteLength < 2) {
|
|
5259
|
+
return;
|
|
5260
|
+
}
|
|
5261
|
+
var offset = 0;
|
|
5262
|
+
if (!(rbsp[1] === 5 || rbsp[1] === 100)) {
|
|
5263
|
+
return;
|
|
5264
|
+
}
|
|
5265
|
+
offset += 2;
|
|
5266
|
+
var _deserializeData = deserializeData(rbsp, offset), _deserializeData2 = _slicedToArray(_deserializeData, 2), payloadLength = _deserializeData2[0], newOffset = _deserializeData2[1];
|
|
5267
|
+
offset = newOffset;
|
|
5268
|
+
var rtcSeiType = 2;
|
|
5269
|
+
var end = offset + payloadLength;
|
|
5270
|
+
if (rbsp.byteLength >= UUID_EXTERNAL.byteLength && payloadLength >= UUID_EXTERNAL.byteLength && rbsp.slice(offset, offset + UUID_EXTERNAL.byteLength).toString() === UUID_EXTERNAL.toString()) {
|
|
5271
|
+
offset += UUID_EXTERNAL.byteLength;
|
|
5272
|
+
rtcSeiType = 1;
|
|
5273
|
+
} else if (rbsp.byteLength >= UUID_EXTERNAL.byteLength && payloadLength >= UUID_EXTERNAL.byteLength && rbsp.slice(offset, offset + UUID_INTERNAL.byteLength).toString() === UUID_INTERNAL.toString()) {
|
|
5274
|
+
offset += UUID_INTERNAL.byteLength;
|
|
5275
|
+
rtcSeiType = 0;
|
|
5276
|
+
}
|
|
5277
|
+
var seiPayload = rbsp.slice(offset, end);
|
|
5278
|
+
return {
|
|
5279
|
+
type: rtcSeiType,
|
|
5280
|
+
payload: seiPayload
|
|
5281
|
+
};
|
|
5282
|
+
}
|
|
5283
|
+
}, {
|
|
5284
|
+
key: "parseInternalSEI",
|
|
5285
|
+
value: function parseInternalSEI(decodedSEI) {
|
|
5286
|
+
var result = /* @__PURE__ */ new Map();
|
|
5287
|
+
var offset = 0;
|
|
5288
|
+
if (decodedSEI.type === 0) {
|
|
5289
|
+
while (decodedSEI.payload.byteLength - offset >= 2) {
|
|
5290
|
+
var _deserializeData3 = deserializeData(decodedSEI.payload, offset), _deserializeData4 = _slicedToArray(_deserializeData3, 2), internalSeiType = _deserializeData4[0], newOffset = _deserializeData4[1];
|
|
5291
|
+
offset = newOffset;
|
|
5292
|
+
var _deserializeData5 = deserializeData(decodedSEI.payload, offset), _deserializeData6 = _slicedToArray(_deserializeData5, 2), internalSeiLength = _deserializeData6[0], newOff = _deserializeData6[1];
|
|
5293
|
+
offset = newOff;
|
|
5294
|
+
if (!result.get(internalSeiType) && internalSeiLength <= decodedSEI.payload.byteLength - offset) {
|
|
5295
|
+
result.set(internalSeiType, decodedSEI.payload.slice(offset, offset + internalSeiLength));
|
|
5296
|
+
offset += internalSeiLength;
|
|
5297
|
+
} else {
|
|
5298
|
+
break;
|
|
5299
|
+
}
|
|
5300
|
+
}
|
|
5301
|
+
return result;
|
|
5302
|
+
}
|
|
5303
|
+
}
|
|
5304
|
+
}, {
|
|
5305
|
+
key: "makeInternalSei",
|
|
5306
|
+
value: function makeInternalSei(map) {
|
|
5307
|
+
var resultSeiList = [];
|
|
5308
|
+
var _iterator = _createForOfIteratorHelper$1(map), _step;
|
|
5309
|
+
try {
|
|
5310
|
+
for (_iterator.s(); !(_step = _iterator.n()).done; ) {
|
|
5311
|
+
var _step$value = _slicedToArray(_step.value, 2), type = _step$value[0], payload = _step$value[1];
|
|
5312
|
+
var serializedType = serializeData(type);
|
|
5313
|
+
var size = serializeData(payload.byteLength);
|
|
5314
|
+
resultSeiList.push(serializedType, size, payload);
|
|
5315
|
+
}
|
|
5316
|
+
} catch (err) {
|
|
5317
|
+
_iterator.e(err);
|
|
5318
|
+
} finally {
|
|
5319
|
+
_iterator.f();
|
|
5320
|
+
}
|
|
5321
|
+
var resultLength = resultSeiList.reduce(function(pre, cur) {
|
|
5322
|
+
return pre + cur.byteLength;
|
|
5323
|
+
}, 0);
|
|
5324
|
+
var result = new Uint8Array(resultLength);
|
|
5325
|
+
resultSeiList.reduce(function(pre, cur) {
|
|
5326
|
+
result.set(cur, pre);
|
|
5327
|
+
return pre + cur.byteLength;
|
|
5328
|
+
}, 0);
|
|
5329
|
+
return result;
|
|
5330
|
+
}
|
|
5331
|
+
}]);
|
|
5332
|
+
return SEIHelper2;
|
|
5333
|
+
}();
|
|
5334
|
+
var Nalunit = /* @__PURE__ */ function() {
|
|
5335
|
+
function Nalunit2() {
|
|
5336
|
+
_classCallCheck$2(this, Nalunit2);
|
|
5337
|
+
}
|
|
5338
|
+
_createClass$2(Nalunit2, null, [{
|
|
5339
|
+
key: "getNalunits",
|
|
5340
|
+
value: function getNalunits(buffer) {
|
|
5341
|
+
if (buffer.length - buffer.position < 4) {
|
|
5342
|
+
return [];
|
|
5343
|
+
}
|
|
5344
|
+
var position = buffer.position;
|
|
5345
|
+
if (buffer.getInt32(position) === 1 || buffer.getInt16(position) === 0 && buffer.getInt8(position + 2) === 1) {
|
|
5346
|
+
return Nalunit2.getAnnexbNals(buffer);
|
|
5347
|
+
} else {
|
|
5348
|
+
return Nalunit2.getAvccNals(buffer);
|
|
5349
|
+
}
|
|
5350
|
+
}
|
|
5351
|
+
}, {
|
|
5352
|
+
key: "getAnnexbNals",
|
|
5353
|
+
value: function getAnnexbNals(buffer) {
|
|
5354
|
+
var nals = [];
|
|
5355
|
+
var position = Nalunit2.getHeaderPositionAnnexB(buffer);
|
|
5356
|
+
var start = position.pos;
|
|
5357
|
+
var end = start;
|
|
5358
|
+
while (start < buffer.length - 4) {
|
|
5359
|
+
var header = new Uint8Array(buffer.buffer.slice(start, start + position.headerLength));
|
|
5360
|
+
if (position.pos === buffer.position) {
|
|
5361
|
+
buffer.skip(position.headerLength);
|
|
5362
|
+
}
|
|
5363
|
+
position = Nalunit2.getHeaderPositionAnnexB(buffer);
|
|
5364
|
+
end = position.pos;
|
|
5365
|
+
var body = new Uint8Array(buffer.buffer.slice(start + header.byteLength, end));
|
|
5366
|
+
var unit = {
|
|
5367
|
+
header,
|
|
5368
|
+
body,
|
|
5369
|
+
type: -1
|
|
5370
|
+
};
|
|
5371
|
+
Nalunit2.analyseNal(unit);
|
|
5372
|
+
if (unit.type <= 9 && unit.type !== 0) {
|
|
5373
|
+
nals.push(unit);
|
|
5374
|
+
}
|
|
5375
|
+
buffer.skip(end - buffer.position);
|
|
5376
|
+
start = end;
|
|
5377
|
+
}
|
|
5378
|
+
return nals;
|
|
5379
|
+
}
|
|
5380
|
+
}, {
|
|
5381
|
+
key: "getAvccNals",
|
|
5382
|
+
value: function getAvccNals(buffer) {
|
|
5383
|
+
var nals = [];
|
|
5384
|
+
while (buffer.position < buffer.length - 4) {
|
|
5385
|
+
var length = buffer.getInt32(buffer.position);
|
|
5386
|
+
if (buffer.length - buffer.position >= length) {
|
|
5387
|
+
var header = new Uint8Array(buffer.buffer.slice(buffer.position, buffer.position + 4));
|
|
5388
|
+
buffer.skip(4);
|
|
5389
|
+
var body = new Uint8Array(buffer.buffer.slice(buffer.position, buffer.position + length));
|
|
5390
|
+
buffer.skip(length);
|
|
5391
|
+
var unit = {
|
|
5392
|
+
header,
|
|
5393
|
+
body,
|
|
5394
|
+
type: -1
|
|
5395
|
+
};
|
|
5396
|
+
Nalunit2.analyseNal(unit);
|
|
5397
|
+
if (unit.type <= 9 && unit.type !== 0) {
|
|
5398
|
+
nals.push(unit);
|
|
5399
|
+
}
|
|
5400
|
+
} else {
|
|
5401
|
+
break;
|
|
5402
|
+
}
|
|
5403
|
+
}
|
|
5404
|
+
return nals;
|
|
5405
|
+
}
|
|
5406
|
+
}, {
|
|
5407
|
+
key: "analyseNal",
|
|
5408
|
+
value: function analyseNal(unit) {
|
|
5409
|
+
var type = unit.body[0] & 31;
|
|
5410
|
+
unit.type = type;
|
|
5411
|
+
switch (type) {
|
|
5412
|
+
case 1:
|
|
5413
|
+
unit.ndr = true;
|
|
5414
|
+
break;
|
|
5415
|
+
case 5:
|
|
5416
|
+
unit.idr = true;
|
|
5417
|
+
break;
|
|
5418
|
+
case 6:
|
|
5419
|
+
unit.sei = true;
|
|
5420
|
+
break;
|
|
5421
|
+
case 7:
|
|
5422
|
+
unit.sps = true;
|
|
5423
|
+
break;
|
|
5424
|
+
case 8:
|
|
5425
|
+
unit.pps = true;
|
|
5426
|
+
break;
|
|
5427
|
+
}
|
|
5428
|
+
}
|
|
5429
|
+
}, {
|
|
5430
|
+
key: "getHeaderPositionAnnexB",
|
|
5431
|
+
value: function getHeaderPositionAnnexB(buffer) {
|
|
5432
|
+
var pos = buffer.position;
|
|
5433
|
+
var headerLength = 0;
|
|
5434
|
+
var bufferLen = buffer.length;
|
|
5435
|
+
while (headerLength !== 3 && headerLength !== 4 && pos < bufferLen - 4) {
|
|
5436
|
+
if (buffer.getInt16(pos) === 0) {
|
|
5437
|
+
if (buffer.getInt16(pos + 2) === 1) {
|
|
5438
|
+
headerLength = 4;
|
|
5439
|
+
} else if (buffer.getInt8(pos + 2) === 1) {
|
|
5440
|
+
headerLength = 3;
|
|
5441
|
+
} else {
|
|
5442
|
+
pos++;
|
|
5443
|
+
}
|
|
5444
|
+
} else {
|
|
5445
|
+
pos++;
|
|
5446
|
+
}
|
|
5447
|
+
}
|
|
5448
|
+
if (pos === bufferLen - 4) {
|
|
5449
|
+
if (buffer.getInt16(pos) === 0) {
|
|
5450
|
+
if (buffer.getInt16(pos + 2) === 1) {
|
|
5451
|
+
headerLength = 4;
|
|
5452
|
+
} else {
|
|
5453
|
+
pos = bufferLen;
|
|
5454
|
+
}
|
|
5455
|
+
} else {
|
|
5456
|
+
pos++;
|
|
5457
|
+
if (buffer.getInt16(pos) === 0 && buffer.getInt8(pos) === 1) {
|
|
5458
|
+
headerLength = 3;
|
|
5459
|
+
} else {
|
|
5460
|
+
pos = bufferLen;
|
|
5461
|
+
}
|
|
5462
|
+
}
|
|
5463
|
+
}
|
|
5464
|
+
return {
|
|
5465
|
+
pos,
|
|
5466
|
+
headerLength
|
|
5467
|
+
};
|
|
5468
|
+
}
|
|
5469
|
+
}]);
|
|
5470
|
+
return Nalunit2;
|
|
5471
|
+
}();
|
|
5472
|
+
var RTCDataView = /* @__PURE__ */ function() {
|
|
5473
|
+
function RTCDataView2(buffer) {
|
|
5474
|
+
_classCallCheck$2(this, RTCDataView2);
|
|
5475
|
+
this._position = 0;
|
|
5476
|
+
this._dataview = new DataView(buffer);
|
|
5477
|
+
}
|
|
5478
|
+
_createClass$2(RTCDataView2, [{
|
|
5479
|
+
key: "length",
|
|
5480
|
+
get: function get() {
|
|
5481
|
+
return this.buffer.byteLength;
|
|
5482
|
+
}
|
|
5483
|
+
}, {
|
|
5484
|
+
key: "buffer",
|
|
5485
|
+
get: function get() {
|
|
5486
|
+
return this._dataview.buffer;
|
|
5487
|
+
}
|
|
5488
|
+
}, {
|
|
5489
|
+
key: "position",
|
|
5490
|
+
get: function get() {
|
|
5491
|
+
return this._position;
|
|
5492
|
+
},
|
|
5493
|
+
set: function set(value) {
|
|
5494
|
+
this._position = value;
|
|
5495
|
+
}
|
|
5496
|
+
}, {
|
|
5497
|
+
key: "back",
|
|
5498
|
+
value: function back(count) {
|
|
5499
|
+
this.position -= count;
|
|
5500
|
+
}
|
|
5501
|
+
}, {
|
|
5502
|
+
key: "getUint8",
|
|
5503
|
+
value: function getUint8(offset) {
|
|
5504
|
+
return this._dataview.getUint8(offset);
|
|
5505
|
+
}
|
|
5506
|
+
}, {
|
|
5507
|
+
key: "getInt8",
|
|
5508
|
+
value: function getInt8(offset) {
|
|
5509
|
+
return this._dataview.getInt8(offset);
|
|
5510
|
+
}
|
|
5511
|
+
}, {
|
|
5512
|
+
key: "getInt16",
|
|
5513
|
+
value: function getInt16(offset) {
|
|
5514
|
+
return this._dataview.getInt16(offset);
|
|
5515
|
+
}
|
|
5516
|
+
}, {
|
|
5517
|
+
key: "getUint16",
|
|
5518
|
+
value: function getUint16(offset) {
|
|
5519
|
+
return this._dataview.getUint16(offset);
|
|
5520
|
+
}
|
|
5521
|
+
}, {
|
|
5522
|
+
key: "getUint32",
|
|
5523
|
+
value: function getUint32(offset) {
|
|
5524
|
+
return this._dataview.getUint32(offset);
|
|
5525
|
+
}
|
|
5526
|
+
}, {
|
|
5527
|
+
key: "getInt32",
|
|
5528
|
+
value: function getInt32(offset) {
|
|
5529
|
+
return this._dataview.getInt32(offset);
|
|
5530
|
+
}
|
|
5531
|
+
}, {
|
|
5532
|
+
key: "skip",
|
|
5533
|
+
value: function skip(count) {
|
|
5534
|
+
var loop = Math.floor(count / 4);
|
|
5535
|
+
var last = count % 4;
|
|
5536
|
+
for (var i = 0; i < loop; i++) {
|
|
5537
|
+
RTCDataView2.readByte(this, 4);
|
|
5538
|
+
}
|
|
5539
|
+
if (last > 0) {
|
|
5540
|
+
RTCDataView2.readByte(this, last);
|
|
5541
|
+
}
|
|
5542
|
+
}
|
|
5543
|
+
}, {
|
|
5544
|
+
key: "readUint8",
|
|
5545
|
+
value: function readUint8() {
|
|
5546
|
+
return RTCDataView2.readByte(this, 1);
|
|
5547
|
+
}
|
|
5548
|
+
}, {
|
|
5549
|
+
key: "readUint16",
|
|
5550
|
+
value: function readUint16() {
|
|
5551
|
+
return RTCDataView2.readByte(this, 2);
|
|
5552
|
+
}
|
|
5553
|
+
}, {
|
|
5554
|
+
key: "readUint24",
|
|
5555
|
+
value: function readUint24() {
|
|
5556
|
+
return RTCDataView2.readByte(this, 3);
|
|
5557
|
+
}
|
|
5558
|
+
}, {
|
|
5559
|
+
key: "readUint32",
|
|
5560
|
+
value: function readUint32() {
|
|
5561
|
+
return RTCDataView2.readByte(this, 4);
|
|
5562
|
+
}
|
|
5563
|
+
}, {
|
|
5564
|
+
key: "readUint64",
|
|
5565
|
+
value: function readUint64() {
|
|
5566
|
+
return RTCDataView2.readByte(this, 8);
|
|
5567
|
+
}
|
|
5568
|
+
}, {
|
|
5569
|
+
key: "readInt8",
|
|
5570
|
+
value: function readInt8() {
|
|
5571
|
+
return RTCDataView2.readByte(this, 1, true);
|
|
5572
|
+
}
|
|
5573
|
+
}, {
|
|
5574
|
+
key: "readInt16",
|
|
5575
|
+
value: function readInt16() {
|
|
5576
|
+
return RTCDataView2.readByte(this, 2, true);
|
|
5577
|
+
}
|
|
5578
|
+
}, {
|
|
5579
|
+
key: "readInt32",
|
|
5580
|
+
value: function readInt32() {
|
|
5581
|
+
return RTCDataView2.readByte(this, 4, true);
|
|
5582
|
+
}
|
|
5583
|
+
}, {
|
|
5584
|
+
key: "writeUint32",
|
|
5585
|
+
value: function writeUint32(value) {
|
|
5586
|
+
return new Uint8Array([value >>> 24 & 255, value >>> 16 & 255, value >>> 8 & 255, value & 255]);
|
|
5587
|
+
}
|
|
5588
|
+
}], [{
|
|
5589
|
+
key: "readByte",
|
|
5590
|
+
value: function readByte(buffer, size, sign) {
|
|
5591
|
+
var res;
|
|
5592
|
+
switch (size) {
|
|
5593
|
+
case 1:
|
|
5594
|
+
if (sign) {
|
|
5595
|
+
res = buffer.getInt8(buffer.position);
|
|
5596
|
+
} else {
|
|
5597
|
+
res = buffer.getUint8(buffer.position);
|
|
5598
|
+
}
|
|
5599
|
+
break;
|
|
5600
|
+
case 2:
|
|
5601
|
+
if (sign) {
|
|
5602
|
+
res = buffer.getInt16(buffer.position);
|
|
5603
|
+
} else {
|
|
5604
|
+
res = buffer.getUint16(buffer.position);
|
|
5605
|
+
}
|
|
5606
|
+
break;
|
|
5607
|
+
case 3:
|
|
5608
|
+
if (sign) {
|
|
5609
|
+
throw new Error("not supported for readByte 3");
|
|
5610
|
+
} else {
|
|
5611
|
+
res = buffer.getUint8(buffer.position) << 16;
|
|
5612
|
+
res |= buffer.getUint8(buffer.position + 1) << 8;
|
|
5613
|
+
res |= buffer.getUint8(buffer.position + 2);
|
|
5614
|
+
}
|
|
5615
|
+
break;
|
|
5616
|
+
case 4:
|
|
5617
|
+
if (sign) {
|
|
5618
|
+
res = buffer.getInt32(buffer.position);
|
|
5619
|
+
} else {
|
|
5620
|
+
res = buffer.getUint32(buffer.position);
|
|
5621
|
+
}
|
|
5622
|
+
break;
|
|
5623
|
+
case 8:
|
|
5624
|
+
if (sign) {
|
|
5625
|
+
throw new Error("not supported for readBody 8");
|
|
5626
|
+
} else {
|
|
5627
|
+
res = buffer.getUint32(buffer.position) << 32;
|
|
5628
|
+
res |= buffer.getUint32(buffer.position + 4);
|
|
5629
|
+
}
|
|
5630
|
+
break;
|
|
5631
|
+
default:
|
|
5632
|
+
res = "";
|
|
5633
|
+
}
|
|
5634
|
+
buffer.position += size;
|
|
5635
|
+
return res;
|
|
5636
|
+
}
|
|
5637
|
+
}]);
|
|
5638
|
+
return RTCDataView2;
|
|
5639
|
+
}();
|
|
5640
|
+
function isSupported() {
|
|
5641
|
+
if (!window.RTCPeerConnection || !window.RTCPeerConnection.prototype.addTransceiver) {
|
|
5642
|
+
return false;
|
|
5643
|
+
}
|
|
5644
|
+
return true;
|
|
5645
|
+
}
|
|
5646
|
+
function getCapacity() {
|
|
5647
|
+
if (!isSupported())
|
|
5648
|
+
return Promise.reject("RTCPeerConnection no support");
|
|
5649
|
+
var pc;
|
|
5650
|
+
try {
|
|
5651
|
+
pc = new RTCPeerConnection();
|
|
5652
|
+
pc.addTransceiver("video", {
|
|
5653
|
+
direction: "recvonly"
|
|
5654
|
+
});
|
|
5655
|
+
pc.addTransceiver("audio", {
|
|
5656
|
+
direction: "recvonly"
|
|
5657
|
+
});
|
|
5658
|
+
} catch (e) {
|
|
5659
|
+
return Promise.reject(e === null || e === void 0 ? void 0 : e.message);
|
|
5660
|
+
}
|
|
5661
|
+
return pc.createOffer().then(function(offer) {
|
|
5662
|
+
var _sdpJson$media, _sdpJson$media2, _vMedia$rtp, _aMedia$rtp;
|
|
5663
|
+
logger.log(offer.sdp);
|
|
5664
|
+
var sdpJson = lib.parse(offer.sdp);
|
|
5665
|
+
var vMedia = (_sdpJson$media = sdpJson.media) === null || _sdpJson$media === void 0 ? void 0 : _sdpJson$media.filter(function(x) {
|
|
5666
|
+
return x.type === "video";
|
|
5667
|
+
})[0];
|
|
5668
|
+
var aMedia = (_sdpJson$media2 = sdpJson.media) === null || _sdpJson$media2 === void 0 ? void 0 : _sdpJson$media2.filter(function(x) {
|
|
5669
|
+
return x.type === "audio";
|
|
5670
|
+
})[0];
|
|
5671
|
+
var vCodecs = vMedia === null || vMedia === void 0 ? void 0 : (_vMedia$rtp = vMedia.rtp) === null || _vMedia$rtp === void 0 ? void 0 : _vMedia$rtp.filter(function(x) {
|
|
5672
|
+
return x.codec === "VP8" || x.codec === "VP9" || x.codec === "H264";
|
|
5673
|
+
});
|
|
5674
|
+
var aCodecs = aMedia === null || aMedia === void 0 ? void 0 : (_aMedia$rtp = aMedia.rtp) === null || _aMedia$rtp === void 0 ? void 0 : _aMedia$rtp.filter(function(x) {
|
|
5675
|
+
return x.codec === "opus";
|
|
5676
|
+
});
|
|
5677
|
+
var vFmtp = vMedia === null || vMedia === void 0 ? void 0 : vMedia.fmtp;
|
|
5678
|
+
var aFmtp = aMedia === null || aMedia === void 0 ? void 0 : aMedia.fmtp;
|
|
5679
|
+
vFmtp && vCodecs.map(function(codec) {
|
|
5680
|
+
var _vFmtp$filter$;
|
|
5681
|
+
codec.config = (_vFmtp$filter$ = vFmtp.filter(function(x) {
|
|
5682
|
+
return x.payload === codec.payload;
|
|
5683
|
+
})[0]) === null || _vFmtp$filter$ === void 0 ? void 0 : _vFmtp$filter$.config;
|
|
5684
|
+
});
|
|
5685
|
+
aFmtp && aCodecs.map(function(codec) {
|
|
5686
|
+
var _aFmtp$filter$;
|
|
5687
|
+
codec.config = (_aFmtp$filter$ = aFmtp.filter(function(x) {
|
|
5688
|
+
return x.payload === codec.payload;
|
|
5689
|
+
})[0]) === null || _aFmtp$filter$ === void 0 ? void 0 : _aFmtp$filter$.config;
|
|
5690
|
+
});
|
|
5691
|
+
pc.close();
|
|
5692
|
+
return {
|
|
5693
|
+
video: vCodecs,
|
|
5694
|
+
audio: aCodecs
|
|
5695
|
+
};
|
|
5696
|
+
});
|
|
5697
|
+
}
|
|
5698
|
+
var isEncodedTransformSupported = function isEncodedTransformSupported2() {
|
|
5699
|
+
return typeof TransformStream !== "undefined" && typeof RTCRtpReceiver !== "undefined" && typeof RTCRtpReceiver.prototype.createEncodedStreams !== "undefined";
|
|
5700
|
+
};
|
|
5064
5701
|
var logger = new Logger("rts");
|
|
5065
5702
|
var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
5066
5703
|
_inherits$1(Rts2, _EventEmitter);
|
|
@@ -5276,6 +5913,37 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
5276
5913
|
this._mediaStream.addTrack(this._audio);
|
|
5277
5914
|
this._mediaStream.addTrack(this._video);
|
|
5278
5915
|
}
|
|
5916
|
+
}, {
|
|
5917
|
+
key: "initVideoEncodedTransform",
|
|
5918
|
+
value: function initVideoEncodedTransform() {
|
|
5919
|
+
var _this4 = this;
|
|
5920
|
+
if (!this._videoTransceicer || !this._videoTransceicer.receiver) {
|
|
5921
|
+
console.log("no receiver found when trying to bind encodedTransform");
|
|
5922
|
+
return;
|
|
5923
|
+
}
|
|
5924
|
+
var receiver = this._videoTransceicer.receiver;
|
|
5925
|
+
if (isEncodedTransformSupported()) {
|
|
5926
|
+
var _receiver$createEncod = receiver.createEncodedStreams(), readable = _receiver$createEncod.readable, writable = _receiver$createEncod.writable;
|
|
5927
|
+
readable.pipeThrough(new TransformStream({
|
|
5928
|
+
transform: function transform(chunk, controller) {
|
|
5929
|
+
var nals = Nalunit.getNalunits(new RTCDataView(chunk.data));
|
|
5930
|
+
nals.forEach(function(nalUnit) {
|
|
5931
|
+
if (nalUnit.sei) {
|
|
5932
|
+
var decodedSei = SEIHelper.decodeSeiBody(nalUnit.body);
|
|
5933
|
+
if (decodedSei && decodedSei.type !== RTC_SEI_TYPE.internal) {
|
|
5934
|
+
_this4.emit(EVENT.SEI, {
|
|
5935
|
+
sei: {
|
|
5936
|
+
content: decodedSei.payload
|
|
5937
|
+
}
|
|
5938
|
+
});
|
|
5939
|
+
}
|
|
5940
|
+
}
|
|
5941
|
+
});
|
|
5942
|
+
controller.enqueue(chunk);
|
|
5943
|
+
}
|
|
5944
|
+
})).pipeTo(writable);
|
|
5945
|
+
}
|
|
5946
|
+
}
|
|
5279
5947
|
}, {
|
|
5280
5948
|
key: "_bindMediaEvent",
|
|
5281
5949
|
value: function _bindMediaEvent() {
|
|
@@ -5293,7 +5961,7 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
5293
5961
|
case 0:
|
|
5294
5962
|
pc = this._pc;
|
|
5295
5963
|
if (!pc.addTransceiver) {
|
|
5296
|
-
_context2.next =
|
|
5964
|
+
_context2.next = 12;
|
|
5297
5965
|
break;
|
|
5298
5966
|
}
|
|
5299
5967
|
this._audioTransceicer = pc.addTransceiver("audio", {
|
|
@@ -5302,6 +5970,7 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
5302
5970
|
this._videoTransceicer = pc.addTransceiver("video", {
|
|
5303
5971
|
direction: "recvonly"
|
|
5304
5972
|
});
|
|
5973
|
+
this.initVideoEncodedTransform();
|
|
5305
5974
|
delayHint = this._opts.delayHint;
|
|
5306
5975
|
if (delayHint) {
|
|
5307
5976
|
this._audioTransceicer.receiver.playoutDelayHint = delayHint;
|
|
@@ -5309,22 +5978,22 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
5309
5978
|
this._videoTransceicer.receiver.playoutDelayHint = delayHint;
|
|
5310
5979
|
this._videoTransceicer.receiver.jitterBufferDelayHint = delayHint;
|
|
5311
5980
|
}
|
|
5312
|
-
_context2.next =
|
|
5981
|
+
_context2.next = 9;
|
|
5313
5982
|
return pc.createOffer();
|
|
5314
|
-
case
|
|
5983
|
+
case 9:
|
|
5315
5984
|
offer = _context2.sent;
|
|
5316
|
-
_context2.next =
|
|
5985
|
+
_context2.next = 15;
|
|
5317
5986
|
break;
|
|
5318
|
-
case
|
|
5319
|
-
_context2.next =
|
|
5987
|
+
case 12:
|
|
5988
|
+
_context2.next = 14;
|
|
5320
5989
|
return pc.createOffer({
|
|
5321
5990
|
iceRestart: true,
|
|
5322
5991
|
offerToReceiveAudio: true,
|
|
5323
5992
|
offerToReceiveVideo: true
|
|
5324
5993
|
});
|
|
5325
|
-
case 13:
|
|
5326
|
-
offer = _context2.sent;
|
|
5327
5994
|
case 14:
|
|
5995
|
+
offer = _context2.sent;
|
|
5996
|
+
case 15:
|
|
5328
5997
|
logger.log("local offer");
|
|
5329
5998
|
logger.log(offer.sdp);
|
|
5330
5999
|
parsed = lib.parse(offer.sdp);
|
|
@@ -5349,11 +6018,11 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
5349
6018
|
});
|
|
5350
6019
|
offer.sdp = lib.write(parsed);
|
|
5351
6020
|
logger.log("local offer modified:\n", offer.sdp);
|
|
5352
|
-
_context2.next =
|
|
6021
|
+
_context2.next = 23;
|
|
5353
6022
|
return pc.setLocalDescription(offer);
|
|
5354
|
-
case
|
|
6023
|
+
case 23:
|
|
5355
6024
|
finnalUrl = this._url;
|
|
5356
|
-
_context2.prev =
|
|
6025
|
+
_context2.prev = 24;
|
|
5357
6026
|
if (this._opts.preProcessUrl) {
|
|
5358
6027
|
finnalUrl = this._opts.preProcessUrl(finnalUrl).url;
|
|
5359
6028
|
}
|
|
@@ -5366,7 +6035,7 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
5366
6035
|
sessionId
|
|
5367
6036
|
});
|
|
5368
6037
|
reqStart = Date.now();
|
|
5369
|
-
_context2.next =
|
|
6038
|
+
_context2.next = 33;
|
|
5370
6039
|
return this._loader.load(finnalUrl, {
|
|
5371
6040
|
body: JSON.stringify({
|
|
5372
6041
|
sessionId,
|
|
@@ -5374,27 +6043,27 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
5374
6043
|
localSdp: offer
|
|
5375
6044
|
})
|
|
5376
6045
|
});
|
|
5377
|
-
case
|
|
6046
|
+
case 33:
|
|
5378
6047
|
res = _context2.sent;
|
|
5379
6048
|
this.emit(EVENT.LOAD_RESPONSE_HEADERS, {
|
|
5380
6049
|
headers: res.response.headers
|
|
5381
6050
|
});
|
|
5382
6051
|
answer = res === null || res === void 0 ? void 0 : res.data;
|
|
5383
6052
|
if (!((answer === null || answer === void 0 ? void 0 : answer.code) === 404 || (answer === null || answer === void 0 ? void 0 : answer.code) === 403)) {
|
|
5384
|
-
_context2.next =
|
|
6053
|
+
_context2.next = 41;
|
|
5385
6054
|
break;
|
|
5386
6055
|
}
|
|
5387
6056
|
err = StreamingError.create(answer.code === 404 ? ERR.NETWORK_NOTFOUND : ERR.NETWORK_FORBIDDEN, null, answer);
|
|
5388
6057
|
err.errorType = ERR.NETWORK;
|
|
5389
6058
|
this._emitError(err);
|
|
5390
6059
|
return _context2.abrupt("return");
|
|
5391
|
-
case
|
|
6060
|
+
case 41:
|
|
5392
6061
|
if (!((answer === null || answer === void 0 ? void 0 : answer.code) !== 200)) {
|
|
5393
|
-
_context2.next =
|
|
6062
|
+
_context2.next = 43;
|
|
5394
6063
|
break;
|
|
5395
6064
|
}
|
|
5396
6065
|
throw new Error("code: ".concat(answer === null || answer === void 0 ? void 0 : answer.code, ", message:").concat(answer === null || answer === void 0 ? void 0 : answer.message));
|
|
5397
|
-
case
|
|
6066
|
+
case 43:
|
|
5398
6067
|
logger.log("answer:");
|
|
5399
6068
|
logger.log((_answer$remoteSdp = answer.remoteSdp) === null || _answer$remoteSdp === void 0 ? void 0 : _answer$remoteSdp.sdp);
|
|
5400
6069
|
this.emit(EVENT.LOAD_COMPLETE, {
|
|
@@ -5409,21 +6078,21 @@ var Rts = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
5409
6078
|
answer.remoteSdp.sdp = lib.write(_parsed);
|
|
5410
6079
|
logger.log("answer modified:\n", answer.remoteSdp.sdp);
|
|
5411
6080
|
this._rctConnectStartTs = Date.now();
|
|
5412
|
-
_context2.next =
|
|
6081
|
+
_context2.next = 53;
|
|
5413
6082
|
return this._pc.setRemoteDescription(answer.remoteSdp);
|
|
5414
|
-
case
|
|
6083
|
+
case 53:
|
|
5415
6084
|
this._networkEvaluate = new NetworkEvaluate(pc, this._opts.networkEvaluateInterval);
|
|
5416
|
-
_context2.next =
|
|
6085
|
+
_context2.next = 59;
|
|
5417
6086
|
break;
|
|
5418
|
-
case
|
|
5419
|
-
_context2.prev =
|
|
5420
|
-
_context2.t0 = _context2["catch"](
|
|
6087
|
+
case 56:
|
|
6088
|
+
_context2.prev = 56;
|
|
6089
|
+
_context2.t0 = _context2["catch"](24);
|
|
5421
6090
|
this._emitError(StreamingError.network(_context2.t0));
|
|
5422
|
-
case
|
|
6091
|
+
case 59:
|
|
5423
6092
|
case "end":
|
|
5424
6093
|
return _context2.stop();
|
|
5425
6094
|
}
|
|
5426
|
-
}, _callee2, this, [[
|
|
6095
|
+
}, _callee2, this, [[24, 56]]);
|
|
5427
6096
|
}));
|
|
5428
6097
|
function _connect() {
|
|
5429
6098
|
return _connect2.apply(this, arguments);
|
|
@@ -5485,64 +6154,6 @@ try {
|
|
|
5485
6154
|
}
|
|
5486
6155
|
} catch (error) {
|
|
5487
6156
|
}
|
|
5488
|
-
function isSupported() {
|
|
5489
|
-
if (!window.RTCPeerConnection || !window.RTCPeerConnection.prototype.addTransceiver) {
|
|
5490
|
-
return false;
|
|
5491
|
-
}
|
|
5492
|
-
return true;
|
|
5493
|
-
}
|
|
5494
|
-
function getCapacity() {
|
|
5495
|
-
if (!isSupported())
|
|
5496
|
-
return Promise.reject("RTCPeerConnection no support");
|
|
5497
|
-
var pc;
|
|
5498
|
-
try {
|
|
5499
|
-
pc = new RTCPeerConnection();
|
|
5500
|
-
pc.addTransceiver("video", {
|
|
5501
|
-
direction: "recvonly"
|
|
5502
|
-
});
|
|
5503
|
-
pc.addTransceiver("audio", {
|
|
5504
|
-
direction: "recvonly"
|
|
5505
|
-
});
|
|
5506
|
-
} catch (e) {
|
|
5507
|
-
return Promise.reject(e === null || e === void 0 ? void 0 : e.message);
|
|
5508
|
-
}
|
|
5509
|
-
return pc.createOffer().then(function(offer) {
|
|
5510
|
-
var _sdpJson$media, _sdpJson$media2, _vMedia$rtp, _aMedia$rtp;
|
|
5511
|
-
logger.log(offer.sdp);
|
|
5512
|
-
var sdpJson = lib.parse(offer.sdp);
|
|
5513
|
-
var vMedia = (_sdpJson$media = sdpJson.media) === null || _sdpJson$media === void 0 ? void 0 : _sdpJson$media.filter(function(x) {
|
|
5514
|
-
return x.type === "video";
|
|
5515
|
-
})[0];
|
|
5516
|
-
var aMedia = (_sdpJson$media2 = sdpJson.media) === null || _sdpJson$media2 === void 0 ? void 0 : _sdpJson$media2.filter(function(x) {
|
|
5517
|
-
return x.type === "audio";
|
|
5518
|
-
})[0];
|
|
5519
|
-
var vCodecs = vMedia === null || vMedia === void 0 ? void 0 : (_vMedia$rtp = vMedia.rtp) === null || _vMedia$rtp === void 0 ? void 0 : _vMedia$rtp.filter(function(x) {
|
|
5520
|
-
return x.codec === "VP8" || x.codec === "VP9" || x.codec === "H264";
|
|
5521
|
-
});
|
|
5522
|
-
var aCodecs = aMedia === null || aMedia === void 0 ? void 0 : (_aMedia$rtp = aMedia.rtp) === null || _aMedia$rtp === void 0 ? void 0 : _aMedia$rtp.filter(function(x) {
|
|
5523
|
-
return x.codec === "opus";
|
|
5524
|
-
});
|
|
5525
|
-
var vFmtp = vMedia === null || vMedia === void 0 ? void 0 : vMedia.fmtp;
|
|
5526
|
-
var aFmtp = aMedia === null || aMedia === void 0 ? void 0 : aMedia.fmtp;
|
|
5527
|
-
vFmtp && vCodecs.map(function(codec) {
|
|
5528
|
-
var _vFmtp$filter$;
|
|
5529
|
-
codec.config = (_vFmtp$filter$ = vFmtp.filter(function(x) {
|
|
5530
|
-
return x.payload === codec.payload;
|
|
5531
|
-
})[0]) === null || _vFmtp$filter$ === void 0 ? void 0 : _vFmtp$filter$.config;
|
|
5532
|
-
});
|
|
5533
|
-
aFmtp && aCodecs.map(function(codec) {
|
|
5534
|
-
var _aFmtp$filter$;
|
|
5535
|
-
codec.config = (_aFmtp$filter$ = aFmtp.filter(function(x) {
|
|
5536
|
-
return x.payload === codec.payload;
|
|
5537
|
-
})[0]) === null || _aFmtp$filter$ === void 0 ? void 0 : _aFmtp$filter$.config;
|
|
5538
|
-
});
|
|
5539
|
-
pc.close();
|
|
5540
|
-
return {
|
|
5541
|
-
video: vCodecs,
|
|
5542
|
-
audio: aCodecs
|
|
5543
|
-
};
|
|
5544
|
-
});
|
|
5545
|
-
}
|
|
5546
6157
|
var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
5547
6158
|
_inherits$1(RtsPlugin2, _BasePlugin);
|
|
5548
6159
|
var _super = _createSuper$1(RtsPlugin2);
|
|
@@ -5638,7 +6249,7 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
5638
6249
|
}, {
|
|
5639
6250
|
key: "version",
|
|
5640
6251
|
get: function get() {
|
|
5641
|
-
return "0.2.1-alpha.
|
|
6252
|
+
return "0.2.1-alpha.5";
|
|
5642
6253
|
}
|
|
5643
6254
|
}, {
|
|
5644
6255
|
key: "beforePlayerInit",
|
|
@@ -5666,6 +6277,7 @@ var RtsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
5666
6277
|
this._transCoreEvent(EVENT.LOAD_RESPONSE_HEADERS);
|
|
5667
6278
|
this._transCoreEvent(EVENT.LOAD_RETRY);
|
|
5668
6279
|
this._transCoreEvent(EVENT.METADATA_PARSED);
|
|
6280
|
+
this._transCoreEvent(EVENT.SEI);
|
|
5669
6281
|
this._transCoreEvent(EXTEND_EVENTS.RTC_STATE_CHANGE);
|
|
5670
6282
|
try {
|
|
5671
6283
|
BasePlugin.defineGetterOrSetter(this.player, {
|