Browse Source

Backport pull request #15176 from jellyfin/release-10.11.z

Only save chapters that are within the runtime of the video file

Original-merge: 442af96ed9c7b9cfadf46e85e8119ac0476408e0

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Bond_009 <bond.009@outlook.com>
CeruleanRed 1 week ago
parent
commit
6514196e8d
1 changed files with 4 additions and 2 deletions
  1. 4 2
      Emby.Server.Implementations/Chapters/ChapterManager.cs

+ 4 - 2
Emby.Server.Implementations/Chapters/ChapterManager.cs

@@ -223,7 +223,7 @@ public class ChapterManager : IChapterManager
 
 
         if (saveChapters && changesMade)
         if (saveChapters && changesMade)
         {
         {
-            _chapterRepository.SaveChapters(video.Id, chapters);
+            SaveChapters(video, chapters);
         }
         }
 
 
         DeleteDeadImages(currentImages, chapters);
         DeleteDeadImages(currentImages, chapters);
@@ -234,7 +234,9 @@ public class ChapterManager : IChapterManager
     /// <inheritdoc />
     /// <inheritdoc />
     public void SaveChapters(Video video, IReadOnlyList<ChapterInfo> chapters)
     public void SaveChapters(Video video, IReadOnlyList<ChapterInfo> chapters)
     {
     {
-        _chapterRepository.SaveChapters(video.Id, chapters);
+        // Remove any chapters that are outside of the runtime of the video
+        var validChapters = chapters.Where(c => c.StartPositionTicks < video.RunTimeTicks).ToList();
+        _chapterRepository.SaveChapters(video.Id, validChapters);
     }
     }
 
 
     /// <inheritdoc />
     /// <inheritdoc />