@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.
@@ -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 = 11;
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 = 8;
5981
+ _context2.next = 9;
5313
5982
  return pc.createOffer();
5314
- case 8:
5983
+ case 9:
5315
5984
  offer = _context2.sent;
5316
- _context2.next = 14;
5985
+ _context2.next = 15;
5317
5986
  break;
5318
- case 11:
5319
- _context2.next = 13;
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 = 22;
6021
+ _context2.next = 23;
5353
6022
  return pc.setLocalDescription(offer);
5354
- case 22:
6023
+ case 23:
5355
6024
  finnalUrl = this._url;
5356
- _context2.prev = 23;
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 = 32;
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 32:
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 = 40;
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 40:
6060
+ case 41:
5392
6061
  if (!((answer === null || answer === void 0 ? void 0 : answer.code) !== 200)) {
5393
- _context2.next = 42;
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 42:
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 = 52;
6081
+ _context2.next = 53;
5413
6082
  return this._pc.setRemoteDescription(answer.remoteSdp);
5414
- case 52:
6083
+ case 53:
5415
6084
  this._networkEvaluate = new NetworkEvaluate(pc, this._opts.networkEvaluateInterval);
5416
- _context2.next = 58;
6085
+ _context2.next = 59;
5417
6086
  break;
5418
- case 55:
5419
- _context2.prev = 55;
5420
- _context2.t0 = _context2["catch"](23);
6087
+ case 56:
6088
+ _context2.prev = 56;
6089
+ _context2.t0 = _context2["catch"](24);
5421
6090
  this._emitError(StreamingError.network(_context2.t0));
5422
- case 58:
6091
+ case 59:
5423
6092
  case "end":
5424
6093
  return _context2.stop();
5425
6094
  }
5426
- }, _callee2, this, [[23, 55]]);
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.2";
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, {