eyevinn-channel-engine 4.2.8 → 4.2.9

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.
@@ -2143,53 +2143,53 @@ var Session = /** @class */ (function () {
2143
2143
  currentVod = newVod;
2144
2144
  debug("[".concat(this._sessionId, "]: msequences=").concat(currentVod.getLiveMediaSequencesCount(), "; audio msequences=").concat(currentVod.getLiveMediaSequencesCount("audio"), "; subtitle msequences=").concat(currentVod.getLiveMediaSequencesCount("subtitle")));
2145
2145
  _w = sessionState;
2146
- return [4 /*yield*/, this._sessionState.set("vodMediaSeqVideo", 0)];
2146
+ return [4 /*yield*/, this._sessionState.setCurrentVod(currentVod, { ttl: currentVod.getDuration() * 1000 })];
2147
2147
  case 56:
2148
- _w.vodMediaSeqVideo = _10.sent();
2149
- _x = sessionState;
2150
- return [4 /*yield*/, this._sessionState.set("vodMediaSeqAudio", 0)];
2148
+ _w.currentVod = _10.sent();
2149
+ return [4 /*yield*/, this._playheadState.set("playheadRef", Date.now(), isLeader)];
2151
2150
  case 57:
2152
- _x.vodMediaSeqAudio = _10.sent();
2153
- _y = sessionState;
2154
- return [4 /*yield*/, this._sessionState.set("vodMediaSeqSubtitle", 0)];
2151
+ _10.sent();
2152
+ _x = sessionState;
2153
+ return [4 /*yield*/, this._sessionState.set("vodMediaSeqVideo", 0)];
2155
2154
  case 58:
2156
- _y.vodMediaSeqSubtitle = _10.sent();
2157
- _z = sessionState;
2158
- return [4 /*yield*/, this._sessionState.set("mediaSeq", sessionState.mediaSeq + endMseqValue)];
2155
+ _x.vodMediaSeqVideo = _10.sent();
2156
+ _y = sessionState;
2157
+ return [4 /*yield*/, this._sessionState.set("vodMediaSeqAudio", 0)];
2159
2158
  case 59:
2160
- _z.mediaSeq = _10.sent();
2161
- _0 = sessionState;
2162
- return [4 /*yield*/, this._sessionState.set("mediaSeqAudio", sessionState.mediaSeqAudio + endMseqValueAudio)];
2159
+ _y.vodMediaSeqAudio = _10.sent();
2160
+ _z = sessionState;
2161
+ return [4 /*yield*/, this._sessionState.set("vodMediaSeqSubtitle", 0)];
2163
2162
  case 60:
2164
- _0.mediaSeqAudio = _10.sent();
2165
- _1 = sessionState;
2166
- return [4 /*yield*/, this._sessionState.set("mediaSeqSubtitle", sessionState.mediaSeqSubtitle + endMseqValueSubtitle)];
2163
+ _z.vodMediaSeqSubtitle = _10.sent();
2164
+ _0 = sessionState;
2165
+ return [4 /*yield*/, this._sessionState.set("mediaSeq", sessionState.mediaSeq + endMseqValue)];
2167
2166
  case 61:
2168
- _1.mediaSeqSubtitle = _10.sent();
2169
- _2 = sessionState;
2170
- return [4 /*yield*/, this._sessionState.set("discSeq", sessionState.discSeq + lastDiscontinuity)];
2167
+ _0.mediaSeq = _10.sent();
2168
+ _1 = sessionState;
2169
+ return [4 /*yield*/, this._sessionState.set("mediaSeqAudio", sessionState.mediaSeqAudio + endMseqValueAudio)];
2171
2170
  case 62:
2172
- _2.discSeq = _10.sent();
2173
- _3 = sessionState;
2174
- return [4 /*yield*/, this._sessionState.set("discSeqAudio", sessionState.discSeqAudio + lastDiscontinuityAudio)];
2171
+ _1.mediaSeqAudio = _10.sent();
2172
+ _2 = sessionState;
2173
+ return [4 /*yield*/, this._sessionState.set("mediaSeqSubtitle", sessionState.mediaSeqSubtitle + endMseqValueSubtitle)];
2175
2174
  case 63:
2176
- _3.discSeqAudio = _10.sent();
2177
- _4 = sessionState;
2178
- return [4 /*yield*/, this._sessionState.set("discSeqSubtitle", sessionState.discSeqSubtitle + lastDiscontinuitySubtitle)];
2175
+ _2.mediaSeqSubtitle = _10.sent();
2176
+ _3 = sessionState;
2177
+ return [4 /*yield*/, this._sessionState.set("discSeq", sessionState.discSeq + lastDiscontinuity)];
2179
2178
  case 64:
2180
- _4.discSeqSubtitle = _10.sent();
2181
- debug("[".concat(this._sessionId, "]: new sequence data set in store V[").concat(sessionState.mediaSeq, "][").concat(sessionState.discSeq, "]_A[").concat(sessionState.mediaSeqAudio, "][").concat(sessionState.discSeqAudio, "]_S[").concat(sessionState.mediaSeqSubtitle, "][").concat(sessionState.discSeqSubtitle, "]"));
2182
- return [4 /*yield*/, this._sessionState.remove("nextVod")];
2179
+ _3.discSeq = _10.sent();
2180
+ _4 = sessionState;
2181
+ return [4 /*yield*/, this._sessionState.set("discSeqAudio", sessionState.discSeqAudio + lastDiscontinuityAudio)];
2183
2182
  case 65:
2184
- _10.sent();
2183
+ _4.discSeqAudio = _10.sent();
2185
2184
  _5 = sessionState;
2186
- return [4 /*yield*/, this._sessionState.setCurrentVod(currentVod, { ttl: currentVod.getDuration() * 1000 })];
2185
+ return [4 /*yield*/, this._sessionState.set("discSeqSubtitle", sessionState.discSeqSubtitle + lastDiscontinuitySubtitle)];
2187
2186
  case 66:
2188
- _5.currentVod = _10.sent();
2189
- this.leaderIsSettingNextVod = false;
2190
- return [4 /*yield*/, this._playheadState.set("playheadRef", Date.now(), isLeader)];
2187
+ _5.discSeqSubtitle = _10.sent();
2188
+ debug("[".concat(this._sessionId, "]: new sequence data set in store V[").concat(sessionState.mediaSeq, "][").concat(sessionState.discSeq, "]_A[").concat(sessionState.mediaSeqAudio, "][").concat(sessionState.discSeqAudio, "]_S[").concat(sessionState.mediaSeqSubtitle, "][").concat(sessionState.discSeqSubtitle, "]"));
2189
+ return [4 /*yield*/, this._sessionState.remove("nextVod")];
2191
2190
  case 67:
2192
2191
  _10.sent();
2192
+ this.leaderIsSettingNextVod = false;
2193
2193
  return [4 /*yield*/, this._playheadState.set("diffCompensation", this.diffCompensation, isLeader)];
2194
2194
  case 68:
2195
2195
  _10.sent();
@@ -2761,9 +2761,9 @@ var Session = /** @class */ (function () {
2761
2761
  }
2762
2762
  };
2763
2763
  Session.prototype._isOldVod = function (refTs, vodDur) {
2764
- var TIME_PADDING_MS = 20 * 1000; // 20secs
2765
2764
  var VOD_DURATION_MS = vodDur * 1000;
2766
- var TIME_SINCE_VOD_STARTED_MS = (Date.now() - refTs) + TIME_PADDING_MS;
2765
+ var TIME_PADDING_MS = VOD_DURATION_MS * 0.05; //5 percent of content duration
2766
+ var TIME_SINCE_VOD_STARTED_MS = Date.now() - refTs + TIME_PADDING_MS;
2767
2767
  if (TIME_SINCE_VOD_STARTED_MS > VOD_DURATION_MS) {
2768
2768
  return true;
2769
2769
  }
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eyevinn-channel-engine",
3
- "version": "4.2.8",
3
+ "version": "4.2.9",
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
@@ -1553,6 +1553,8 @@ class Session {
1553
1553
  debug(`[${this._sessionId}]: playhead positions [A]=${newVod.getPlayheadPositions("audio")}`);
1554
1554
  currentVod = newVod;
1555
1555
  debug(`[${this._sessionId}]: msequences=${currentVod.getLiveMediaSequencesCount()}; audio msequences=${currentVod.getLiveMediaSequencesCount("audio")}; subtitle msequences=${currentVod.getLiveMediaSequencesCount("subtitle")}`);
1556
+ sessionState.currentVod = await this._sessionState.setCurrentVod(currentVod, { ttl: currentVod.getDuration() * 1000 });
1557
+ await this._playheadState.set("playheadRef", Date.now(), isLeader);
1556
1558
  sessionState.vodMediaSeqVideo = await this._sessionState.set("vodMediaSeqVideo", 0);
1557
1559
  sessionState.vodMediaSeqAudio = await this._sessionState.set("vodMediaSeqAudio", 0);
1558
1560
  sessionState.vodMediaSeqSubtitle = await this._sessionState.set("vodMediaSeqSubtitle", 0);
@@ -1564,9 +1566,7 @@ class Session {
1564
1566
  sessionState.discSeqSubtitle = await this._sessionState.set("discSeqSubtitle", sessionState.discSeqSubtitle + lastDiscontinuitySubtitle);
1565
1567
  debug(`[${this._sessionId}]: new sequence data set in store V[${sessionState.mediaSeq}][${sessionState.discSeq}]_A[${sessionState.mediaSeqAudio}][${sessionState.discSeqAudio}]_S[${sessionState.mediaSeqSubtitle}][${sessionState.discSeqSubtitle}]`);
1566
1568
  await this._sessionState.remove("nextVod");
1567
- sessionState.currentVod = await this._sessionState.setCurrentVod(currentVod, { ttl: currentVod.getDuration() * 1000 });
1568
1569
  this.leaderIsSettingNextVod = false;
1569
- await this._playheadState.set("playheadRef", Date.now(), isLeader);
1570
1570
  await this._playheadState.set("diffCompensation", this.diffCompensation, isLeader);
1571
1571
  debug(`[${this._sessionId}]: sharing durrent vods diffCompensation=${this.diffCompensation}`);
1572
1572
  this.produceEvent({
@@ -2037,9 +2037,9 @@ class Session {
2037
2037
  }
2038
2038
 
2039
2039
  _isOldVod(refTs, vodDur) {
2040
- const TIME_PADDING_MS = 20 * 1000 // 20secs
2041
2040
  const VOD_DURATION_MS = vodDur * 1000;
2042
- const TIME_SINCE_VOD_STARTED_MS = (Date.now() - refTs) + TIME_PADDING_MS;
2041
+ const TIME_PADDING_MS = VOD_DURATION_MS * 0.05; //5 percent of content duration
2042
+ const TIME_SINCE_VOD_STARTED_MS = Date.now() - refTs + TIME_PADDING_MS;
2043
2043
  if (TIME_SINCE_VOD_STARTED_MS > VOD_DURATION_MS) {
2044
2044
  return true;
2045
2045
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eyevinn-channel-engine",
3
- "version": "4.2.8",
3
+ "version": "4.2.9",
4
4
  "description": "OTT TV Channel Engine",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",