mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-20 17:14:42 +01:00
fix: retain subtitles spanning HLS segment boundaries (#16594)
fix: retain subtitles spanning HLS segment boundaries
This commit is contained in:
committed by
GitHub
parent
b5885fe234
commit
8ba9319f27
@@ -101,11 +101,11 @@ namespace MediaBrowser.MediaEncoding.Subtitles
|
||||
return ms;
|
||||
}
|
||||
|
||||
private void FilterEvents(SubtitleTrackInfo track, long startPositionTicks, long endTimeTicks, bool preserveTimestamps)
|
||||
internal void FilterEvents(SubtitleTrackInfo track, long startPositionTicks, long endTimeTicks, bool preserveTimestamps)
|
||||
{
|
||||
// Drop subs that are earlier than what we're looking for
|
||||
// Drop subs that have fully elapsed before the requested start position
|
||||
track.TrackEvents = track.TrackEvents
|
||||
.SkipWhile(i => (i.StartPositionTicks - startPositionTicks) < 0 || (i.EndPositionTicks - startPositionTicks) < 0)
|
||||
.SkipWhile(i => (i.StartPositionTicks - startPositionTicks) < 0 && (i.EndPositionTicks - startPositionTicks) < 0)
|
||||
.ToArray();
|
||||
|
||||
if (endTimeTicks > 0)
|
||||
@@ -119,8 +119,8 @@ namespace MediaBrowser.MediaEncoding.Subtitles
|
||||
{
|
||||
foreach (var trackEvent in track.TrackEvents)
|
||||
{
|
||||
trackEvent.EndPositionTicks -= startPositionTicks;
|
||||
trackEvent.StartPositionTicks -= startPositionTicks;
|
||||
trackEvent.EndPositionTicks = Math.Max(0, trackEvent.EndPositionTicks - startPositionTicks);
|
||||
trackEvent.StartPositionTicks = Math.Max(0, trackEvent.StartPositionTicks - startPositionTicks);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user