eyevinn-channel-engine 4.3.10 → 4.3.12

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/README.md CHANGED
@@ -18,6 +18,12 @@
18
18
  [![made with hearth by Eyevinn](https://img.shields.io/badge/made%20with%20%E2%99%A5%20by-Eyevinn-59cbe8.svg?style=flat-square)](https://github.com/eyevinn)
19
19
  [![Slack](http://slack.streamingtech.se/badge.svg)](http://slack.streamingtech.se)
20
20
 
21
+
22
+ </div>
23
+ <div align="center">
24
+
25
+ [![Badge OSC](https://img.shields.io/badge/Evaluate-24243B?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTIiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8yODIxXzMxNjcyKSIvPgo8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI3IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiLz4KPGRlZnM%2BCjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl8yODIxXzMxNjcyIiB4MT0iMTIiIHkxPSIwIiB4Mj0iMTIiIHkyPSIyNCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjQzE4M0ZGIi8%2BCjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzREQzlGRiIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM%2BCjwvc3ZnPgo%3D)](https://app.osaas.io/browse/channel-engine)
26
+
21
27
  </div>
22
28
 
23
29
  Eyevinn Channel Engine is a core component library for creating FAST channels based on VOD2Live technology. Combine this vod2live technology component with your business and scheduling logic to build your very own and unique FAST channel engine.
@@ -416,15 +416,12 @@ var Session = /** @class */ (function () {
416
416
  };
417
417
  Session.prototype.stopPlayheadAsync = function () {
418
418
  return __awaiter(this, void 0, void 0, function () {
419
- var isLeader;
420
419
  return __generator(this, function (_a) {
421
420
  switch (_a.label) {
422
- case 0: return [4 /*yield*/, this._sessionStateStore.isLeader(this._instanceId)];
423
- case 1:
424
- isLeader = _a.sent();
421
+ case 0:
425
422
  debug("[".concat(this._sessionId, "]: Stopping playhead consumer"));
426
- return [4 /*yield*/, this._playheadState.set("state", PlayheadState.STOPPED, isLeader)];
427
- case 2:
423
+ return [4 /*yield*/, this._playheadState.setState(PlayheadState.STOPPED)];
424
+ case 1:
428
425
  _a.sent();
429
426
  return [2 /*return*/];
430
427
  }
@@ -1440,7 +1437,7 @@ var Session = /** @class */ (function () {
1440
1437
  };
1441
1438
  Session.prototype._insertSlate = function (currentVod) {
1442
1439
  return __awaiter(this, void 0, void 0, function () {
1443
- var slateVod, sessionState, endValue, endValueAudio, lastDiscontinuity, lastDiscontinuityAudio, isLeader, updatedSessionState, _a;
1440
+ var slateVod, sessionState, endValue, endValueAudio, endValueSubtitle, lastDiscontinuity, lastDiscontinuityAudio, lastDiscontinuitySubtitle, isLeader, updatedSessionState, _a;
1444
1441
  return __generator(this, function (_b) {
1445
1442
  switch (_b.label) {
1446
1443
  case 0:
@@ -1450,24 +1447,29 @@ var Session = /** @class */ (function () {
1450
1447
  case 1:
1451
1448
  slateVod = _b.sent();
1452
1449
  debug("[".concat(this._sessionId, "]: slate loaded"));
1453
- return [4 /*yield*/, this._sessionState.getValues(["slateCount", "mediaSeq", "discSeq", "mediaSeqAudio", "discSeqAudio"])];
1450
+ return [4 /*yield*/, this._sessionState.getValues(["slateCount", "mediaSeq", "discSeq", "mediaSeqAudio", "discSeqAudio", "mediaSeqSubtitle", "discSeqSubtitle"])];
1454
1451
  case 2:
1455
1452
  sessionState = _b.sent();
1456
1453
  endValue = 0;
1457
1454
  endValueAudio = 0;
1455
+ endValueSubtitle = 0;
1458
1456
  lastDiscontinuity = 0;
1459
1457
  lastDiscontinuityAudio = 0;
1458
+ lastDiscontinuitySubtitle = 0;
1460
1459
  if (currentVod) {
1461
1460
  if (currentVod.sequenceAlwaysContainNewSegments) {
1462
1461
  endValue = currentVod.getLastSequenceMediaSequenceValue();
1463
1462
  endValueAudio = currentVod.getLastSequenceMediaSequenceValueAudio();
1463
+ endValueSubtitle = currentVod.getLastSequenceMediaSequenceValueSubtitle();
1464
1464
  }
1465
1465
  else {
1466
1466
  endValue = currentVod.getLiveMediaSequencesCount();
1467
1467
  endValueAudio = currentVod.getLiveMediaSequencesCount("audio");
1468
+ endValueSubtitle = currentVod.getLiveMediaSequencesCount("subtitle");
1468
1469
  }
1469
1470
  lastDiscontinuity = currentVod.getLastDiscontinuity();
1470
1471
  lastDiscontinuityAudio = currentVod.getLastDiscontinuityAudio();
1472
+ lastDiscontinuitySubtitle = currentVod.getLastDiscontinuitySubtitle();
1471
1473
  }
1472
1474
  return [4 /*yield*/, this._sessionStateStore.isLeader(this._instanceId)];
1473
1475
  case 3:
@@ -1475,11 +1477,14 @@ var Session = /** @class */ (function () {
1475
1477
  return [4 /*yield*/, this._sessionState.setValues({
1476
1478
  "vodMediaSeqVideo": 0,
1477
1479
  "vodMediaSeqAudio": 0,
1480
+ "vodMediaSeqSubtitle": 0,
1478
1481
  "state": SessionState.VOD_NEXT_INITIATING,
1479
1482
  "mediaSeq": sessionState.mediaSeq + endValue,
1480
1483
  "mediaSeqAudio": sessionState.mediaSeqAudio + endValueAudio,
1484
+ "mediaSeqSubtitle": sessionState.mediaSeqSubtitle + endValueAudio,
1481
1485
  "discSeq": sessionState.discSeq + lastDiscontinuity,
1482
1486
  "discSeqAudio": sessionState.discSeqAudio + lastDiscontinuityAudio,
1487
+ "discSeqSubtitle": sessionState.discSeqSubtitle + lastDiscontinuitySubtitle,
1483
1488
  "slateCount": sessionState.slateCount + 1
1484
1489
  })];
1485
1490
  case 4:
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eyevinn-channel-engine",
3
- "version": "4.3.10",
3
+ "version": "4.3.12",
4
4
  "description": "OTT TV Channel Engine",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/engine/session.js CHANGED
@@ -312,9 +312,8 @@ class Session {
312
312
  }
313
313
 
314
314
  async stopPlayheadAsync() {
315
- const isLeader = await this._sessionStateStore.isLeader(this._instanceId);
316
315
  debug(`[${this._sessionId}]: Stopping playhead consumer`);
317
- await this._playheadState.set("state", PlayheadState.STOPPED, isLeader);
316
+ await this._playheadState.setState(PlayheadState.STOPPED);
318
317
  }
319
318
 
320
319
  async getStatusAsync() {
@@ -1071,32 +1070,40 @@ class Session {
1071
1070
  console.error(`[${this._sessionId}]: Will insert slate`);
1072
1071
  const slateVod = await this._loadSlate(currentVod);
1073
1072
  debug(`[${this._sessionId}]: slate loaded`);
1074
- let sessionState = await this._sessionState.getValues(["slateCount", "mediaSeq", "discSeq", "mediaSeqAudio", "discSeqAudio"]);
1073
+ let sessionState = await this._sessionState.getValues(["slateCount", "mediaSeq", "discSeq", "mediaSeqAudio", "discSeqAudio", "mediaSeqSubtitle", "discSeqSubtitle"]);
1075
1074
  let endValue = 0;
1076
1075
  let endValueAudio = 0;
1076
+ let endValueSubtitle = 0;
1077
1077
  let lastDiscontinuity = 0;
1078
1078
  let lastDiscontinuityAudio = 0;
1079
+ let lastDiscontinuitySubtitle = 0;
1079
1080
  if (currentVod) {
1080
1081
  if (currentVod.sequenceAlwaysContainNewSegments) {
1081
1082
  endValue = currentVod.getLastSequenceMediaSequenceValue();
1082
1083
  endValueAudio = currentVod.getLastSequenceMediaSequenceValueAudio();
1084
+ endValueSubtitle = currentVod.getLastSequenceMediaSequenceValueSubtitle();
1083
1085
  } else {
1084
1086
  endValue = currentVod.getLiveMediaSequencesCount();
1085
1087
  endValueAudio = currentVod.getLiveMediaSequencesCount("audio");
1088
+ endValueSubtitle = currentVod.getLiveMediaSequencesCount("subtitle");
1086
1089
  }
1087
1090
  lastDiscontinuity = currentVod.getLastDiscontinuity();
1088
1091
  lastDiscontinuityAudio = currentVod.getLastDiscontinuityAudio();
1092
+ lastDiscontinuitySubtitle = currentVod.getLastDiscontinuitySubtitle();
1089
1093
  }
1090
1094
  const isLeader = await this._sessionStateStore.isLeader(this._instanceId);
1091
1095
 
1092
1096
  const updatedSessionState = await this._sessionState.setValues({
1093
1097
  "vodMediaSeqVideo": 0,
1094
1098
  "vodMediaSeqAudio": 0,
1099
+ "vodMediaSeqSubtitle": 0,
1095
1100
  "state": SessionState.VOD_NEXT_INITIATING,
1096
1101
  "mediaSeq": sessionState.mediaSeq + endValue,
1097
1102
  "mediaSeqAudio": sessionState.mediaSeqAudio + endValueAudio,
1103
+ "mediaSeqSubtitle": sessionState.mediaSeqSubtitle + endValueAudio,
1098
1104
  "discSeq": sessionState.discSeq + lastDiscontinuity,
1099
1105
  "discSeqAudio": sessionState.discSeqAudio + lastDiscontinuityAudio,
1106
+ "discSeqSubtitle": sessionState.discSeqSubtitle + lastDiscontinuitySubtitle,
1100
1107
  "slateCount": sessionState.slateCount + 1
1101
1108
  });
1102
1109
  sessionState = { ...sessionState, ...updatedSessionState };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eyevinn-channel-engine",
3
- "version": "4.3.10",
3
+ "version": "4.3.12",
4
4
  "description": "OTT TV Channel Engine",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",