diff options
| author | Shadowghost <Ghost_of_Stone@web.de> | 2026-03-06 00:16:04 +0100 |
|---|---|---|
| committer | Shadowghost <Ghost_of_Stone@web.de> | 2026-03-06 00:16:04 +0100 |
| commit | 268f23f39ac18e783156b91b575ee6a105b6937c (patch) | |
| tree | e09b0dd1801dd6738135e30101dce34242eebec8 | |
| parent | 744c5539d8471addca131c9d9f7e8c4e30f8c4b5 (diff) | |
Fix trickplay generation for parts and alt versions
5 files changed, 14 insertions, 4 deletions
diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs index 6b575fbad3..23a426ac58 100644 --- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs +++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs @@ -3583,7 +3583,7 @@ public sealed class BaseItemRepository .Where(e => e.OwnerId == null); } } - else if (filter.OwnerIds.Length == 0 && filter.ExtraTypes.Length == 0) + else if (filter.OwnerIds.Length == 0 && filter.ExtraTypes.Length == 0 && !filter.IncludeOwnedItems) { // Exclude alternate versions from general queries. Alternate versions have // OwnerId set (pointing to their primary) but no ExtraType. diff --git a/Jellyfin.Server/Migrations/Routines/MoveTrickplayFiles.cs b/Jellyfin.Server/Migrations/Routines/MoveTrickplayFiles.cs index 0f55465e86..79a8f9577c 100644 --- a/Jellyfin.Server/Migrations/Routines/MoveTrickplayFiles.cs +++ b/Jellyfin.Server/Migrations/Routines/MoveTrickplayFiles.cs @@ -57,7 +57,8 @@ public class MoveTrickplayFiles : IMigrationRoutine MediaTypes = [MediaType.Video], SourceTypes = [SourceType.Library], IsVirtualItem = false, - IsFolder = false + IsFolder = false, + IncludeOwnedItems = true }; do diff --git a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs index 23fce3f368..53acaf123a 100644 --- a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs +++ b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs @@ -360,6 +360,12 @@ namespace MediaBrowser.Controller.Entities public bool? HasOwnerId { get; set; } + /// <summary> + /// Gets or sets a value indicating whether to include items with an OwnerId + /// (additional parts, alternate versions) that are normally excluded from general queries. + /// </summary> + public bool IncludeOwnedItems { get; set; } + public bool? Is4K { get; set; } public int? MaxHeight { get; set; } diff --git a/MediaBrowser.Providers/Trickplay/TrickplayImagesTask.cs b/MediaBrowser.Providers/Trickplay/TrickplayImagesTask.cs index 81dcbf893e..6ea05c6471 100644 --- a/MediaBrowser.Providers/Trickplay/TrickplayImagesTask.cs +++ b/MediaBrowser.Providers/Trickplay/TrickplayImagesTask.cs @@ -79,6 +79,7 @@ public class TrickplayImagesTask : IScheduledTask IsVirtualItem = false, IsFolder = false, Recursive = true, + IncludeOwnedItems = true, Limit = QueryPageLimit }; diff --git a/MediaBrowser.Providers/Trickplay/TrickplayMoveImagesTask.cs b/MediaBrowser.Providers/Trickplay/TrickplayMoveImagesTask.cs index c0b8a8c75c..03bb5ff397 100644 --- a/MediaBrowser.Providers/Trickplay/TrickplayMoveImagesTask.cs +++ b/MediaBrowser.Providers/Trickplay/TrickplayMoveImagesTask.cs @@ -70,7 +70,8 @@ public class TrickplayMoveImagesTask : IScheduledTask SourceTypes = [SourceType.Library], IsVirtualItem = false, IsFolder = false, - Recursive = true + Recursive = true, + IncludeOwnedItems = true }); var trickplayQuery = new InternalItemsQuery @@ -78,7 +79,8 @@ public class TrickplayMoveImagesTask : IScheduledTask MediaTypes = [MediaType.Video], SourceTypes = [SourceType.Library], IsVirtualItem = false, - IsFolder = false + IsFolder = false, + IncludeOwnedItems = true }; do |
