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 +6 -0
- package/dist/engine/session.js +13 -8
- package/dist/package.json +1 -1
- package/engine/session.js +10 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,6 +18,12 @@
|
|
|
18
18
|
[](https://github.com/eyevinn)
|
|
19
19
|
[](http://slack.streamingtech.se)
|
|
20
20
|
|
|
21
|
+
|
|
22
|
+
</div>
|
|
23
|
+
<div align="center">
|
|
24
|
+
|
|
25
|
+
[](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.
|
package/dist/engine/session.js
CHANGED
|
@@ -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:
|
|
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.
|
|
427
|
-
case
|
|
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
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.
|
|
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 };
|