Improve video resolution filtering and classification logic (#13332)

This commit is contained in:
theguymadmax 2025-04-19 12:45:19 -04:00 committed by GitHub
parent e84826297d
commit 1c190f7952
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1309,34 +1309,39 @@ public sealed class BaseItemRepository
JellyfinDbContext context,
InternalItemsQuery filter)
{
const int HDWidth = 1200;
const int UHDWidth = 3800;
const int UHDHeight = 2100;
var minWidth = filter.MinWidth;
var maxWidth = filter.MaxWidth;
var now = DateTime.UtcNow;
if (filter.IsHD.HasValue)
if (filter.IsHD.HasValue || filter.Is4K.HasValue)
{
const int Threshold = 1200;
if (filter.IsHD.Value)
{
minWidth = Threshold;
}
else
{
maxWidth = Threshold - 1;
}
}
bool includeSD = false;
bool includeHD = false;
bool include4K = false;
if (filter.Is4K.HasValue)
{
const int Threshold = 3800;
if (filter.Is4K.Value)
if (filter.IsHD.HasValue && !filter.IsHD.Value)
{
minWidth = Threshold;
includeSD = true;
}
else
if (filter.IsHD.HasValue && filter.IsHD.Value)
{
maxWidth = Threshold - 1;
includeHD = true;
}
if (filter.Is4K.HasValue && filter.Is4K.Value)
{
include4K = true;
}
baseQuery = baseQuery.Where(e =>
(includeSD && e.Width < HDWidth) ||
(includeHD && e.Width >= HDWidth && !(e.Width >= UHDWidth || e.Height >= UHDHeight)) ||
(include4K && (e.Width >= UHDWidth || e.Height >= UHDHeight)));
}
if (minWidth.HasValue)