mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2025-12-11 22:17:21 +03:00
Another fix for flashing on Firefox when skipping some segments at the end of the video
This commit is contained in:
@@ -98,6 +98,8 @@ utils.wait(() => Config.isReady(), 5000, 10).then(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const skipBuffer = 0.003;
|
const skipBuffer = 0.003;
|
||||||
|
// If this close to the end, skip to the end
|
||||||
|
const endTimeSkipBuffer = 0.5;
|
||||||
|
|
||||||
//was sponsor data found when doing SponsorsLookup
|
//was sponsor data found when doing SponsorsLookup
|
||||||
let sponsorDataFound = false;
|
let sponsorDataFound = false;
|
||||||
@@ -622,7 +624,8 @@ async function startSponsorSchedule(includeIntersectingSegments = false, current
|
|||||||
|
|
||||||
updateActiveSegment(currentTime);
|
updateActiveSegment(currentTime);
|
||||||
|
|
||||||
if (getVideo().paused) return;
|
if (getVideo().paused
|
||||||
|
|| (getVideo().currentTime >= getVideo().duration - 0.01 && getVideo().duration > 1)) return;
|
||||||
const skipInfo = getNextSkipIndex(currentTime, includeIntersectingSegments, includeNonIntersectingSegments);
|
const skipInfo = getNextSkipIndex(currentTime, includeIntersectingSegments, includeNonIntersectingSegments);
|
||||||
|
|
||||||
const currentSkip = skipInfo.array[skipInfo.index];
|
const currentSkip = skipInfo.array[skipInfo.index];
|
||||||
@@ -701,8 +704,12 @@ async function startSponsorSchedule(includeIntersectingSegments = false, current
|
|||||||
forcedSkipTime = skipTime[0] + 0.001;
|
forcedSkipTime = skipTime[0] + 0.001;
|
||||||
} else {
|
} else {
|
||||||
forcedSkipTime = skipTime[1];
|
forcedSkipTime = skipTime[1];
|
||||||
forcedIncludeIntersectingSegments = true;
|
|
||||||
forcedIncludeNonIntersectingSegments = false;
|
forcedIncludeNonIntersectingSegments = false;
|
||||||
|
|
||||||
|
// Only if not at the end of the video
|
||||||
|
if (Math.abs(skipTime[1] - getVideo().duration) > endTimeSkipBuffer) {
|
||||||
|
forcedIncludeIntersectingSegments = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
forcedSkipTime = forceVideoTime + 0.001;
|
forcedSkipTime = forceVideoTime + 0.001;
|
||||||
@@ -1665,7 +1672,7 @@ function skipToTime({v, skipTime, skippingSegments, openNotice, forceAutoSkip, u
|
|||||||
// MacOS will loop otherwise #1027
|
// MacOS will loop otherwise #1027
|
||||||
// Sometimes playlists loop too #1804
|
// Sometimes playlists loop too #1804
|
||||||
v.currentTime = v.duration - 0.001;
|
v.currentTime = v.duration - 0.001;
|
||||||
} else if (v.duration > 1 && Math.abs(skipTime[1] - v.duration) < 0.5
|
} else if (v.duration > 1 && Math.abs(skipTime[1] - v.duration) < endTimeSkipBuffer
|
||||||
&& isFirefoxOrSafari() && !isSafari()) {
|
&& isFirefoxOrSafari() && !isSafari()) {
|
||||||
v.currentTime = v.duration;
|
v.currentTime = v.duration;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user