Skip to content

Commit 08f72cd

Browse files
JustAMandmitrylyzo
authored andcommitted
Reduce blinking of subs when in lite mode
Cherry-picked from: jellyfin@a8d670e
1 parent c1e20f3 commit 08f72cd

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/subtitles-octopus.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ var SubtitlesOctopus = function (options) {
249249
self.setSubUrl = function (subUrl) {
250250
self.subUrl = subUrl;
251251
};
252-
252+
253253
function _cleanPastRendered(currentTime, seekClean) {
254254
var retainedItems = [];
255255
for (var i = 0, len = self.renderedItems.length; i < len; i++) {
@@ -361,7 +361,7 @@ var SubtitlesOctopus = function (options) {
361361
var finishTime = -1, eventShown = false, animated = false;
362362
for (var i = 0, len = self.renderedItems.length; i < len; i++) {
363363
var item = self.renderedItems[i];
364-
if (!eventShown && item.eventStart <= currentTime && (item.emptyFinish < 0 || item.emptyFinish >= currentTime)) {
364+
if (!eventShown && item.eventStart <= currentTime && (item.emptyFinish < 0 || item.emptyFinish > currentTime)) {
365365
_renderSubtitleEvent(item, currentTime);
366366
eventShown = true;
367367
finishTime = item.emptyFinish;
@@ -566,10 +566,13 @@ var SubtitlesOctopus = function (options) {
566566
});
567567
size += item.buffer.byteLength;
568568
}
569+
570+
var eventSplitted = false;
569571
if ((data.emptyFinish > 0 && data.emptyFinish - data.eventStart < 1.0 / self.targetFps) || data.animated) {
570572
var newFinish = data.eventStart + 1.0 / self.targetFps;
571573
data.emptyFinish = newFinish;
572574
data.eventFinish = newFinish;
575+
eventSplitted = true;
573576
}
574577
self.renderedItems.push({
575578
eventStart: data.eventStart,
@@ -581,7 +584,7 @@ var SubtitlesOctopus = function (options) {
581584
animated: data.animated,
582585
size: size
583586
});
584-
587+
585588
self.renderedItems.sort(function (a, b) {
586589
return a.eventStart - b.eventStart;
587590
});
@@ -593,7 +596,7 @@ var SubtitlesOctopus = function (options) {
593596
console.info('oneshot received "end of frames" event');
594597
} else if (data.emptyFinish >= 0) {
595598
// there's some more event to render, try requesting next event
596-
tryRequestOneshot(data.emptyFinish, data.animated);
599+
tryRequestOneshot(data.emptyFinish, eventSplitted);
597600
} else {
598601
console.info('there are no more events to prerender');
599602
}

0 commit comments

Comments
 (0)