From 47c3e855c859004b82eccfe3a4cbdb25a059ef9c Mon Sep 17 00:00:00 2001 From: vt-idiot <81622808+vt-idiot@users.noreply.github.com> Date: Thu, 15 Jun 2023 20:19:46 -0400 Subject: [PATCH] Make displayed resolution information coherent for 2:1/VR files (#3798) * Update text.ts Displayed resolutions in Stash were confusing as hell when it came to VR files - which are typically 2:1. Now I understand why, it's assuming 16:9 files/looking at height only. --- graphql/schema/types/filters.graphql | 12 +++++++----- pkg/models/resolution.go | 20 ++++++++++++++------ ui/v2.5/src/utils/resolution.ts | 4 +++- ui/v2.5/src/utils/text.ts | 17 ++++++++++------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/graphql/schema/types/filters.graphql b/graphql/schema/types/filters.graphql index 55724cc42..190432594 100644 --- a/graphql/schema/types/filters.graphql +++ b/graphql/schema/types/filters.graphql @@ -21,11 +21,13 @@ enum ResolutionEnum { "720p", STANDARD_HD "1080p", FULL_HD "1440p", QUAD_HD - "1920p", VR_HD - "4k", FOUR_K - "5k", FIVE_K - "6k", SIX_K - "8k", EIGHT_K + "1920p", VR_HD @deprecated(reason: "Use 4K instead") + "4K", FOUR_K + "5K", FIVE_K + "6K", SIX_K + "7K", SEVEN_K + "8K", EIGHT_K + "8K+", HUGE } input ResolutionCriterionInput { diff --git a/pkg/models/resolution.go b/pkg/models/resolution.go index 6b955797a..4904f1dfd 100644 --- a/pkg/models/resolution.go +++ b/pkg/models/resolution.go @@ -20,10 +20,12 @@ var resolutionRanges = map[ResolutionEnum]ResolutionRange{ ResolutionEnum("FULL_HD"): {1080, 1439}, ResolutionEnum("QUAD_HD"): {1440, 1919}, ResolutionEnum("VR_HD"): {1920, 2159}, - ResolutionEnum("FOUR_K"): {2160, 2879}, - ResolutionEnum("FIVE_K"): {2880, 3383}, - ResolutionEnum("SIX_K"): {3384, 4319}, - ResolutionEnum("EIGHT_K"): {4320, 8639}, + ResolutionEnum("FOUR_K"): {1920, 2559}, + ResolutionEnum("FIVE_K"): {2560, 2999}, + ResolutionEnum("SIX_K"): {3000, 3583}, + ResolutionEnum("SEVEN_K"): {3584, 3839}, + ResolutionEnum("EIGHT_K"): {3840, 6143}, + ResolutionEnum("HUGE"): {6144, 9999}, } type ResolutionEnum string @@ -45,7 +47,7 @@ const ( ResolutionEnumFullHd ResolutionEnum = "FULL_HD" // 1440p ResolutionEnumQuadHd ResolutionEnum = "QUAD_HD" - // 1920p + // 1920p - deprecated ResolutionEnumVrHd ResolutionEnum = "VR_HD" // 4k ResolutionEnumFourK ResolutionEnum = "FOUR_K" @@ -53,8 +55,12 @@ const ( ResolutionEnumFiveK ResolutionEnum = "FIVE_K" // 6k ResolutionEnumSixK ResolutionEnum = "SIX_K" + // 7k + ResolutionEnumSevenK ResolutionEnum = "SEVEN_K" // 8k ResolutionEnumEightK ResolutionEnum = "EIGHT_K" + // 8K+ + ResolutionEnumHuge ResolutionEnum = "HUGE" ) var AllResolutionEnum = []ResolutionEnum{ @@ -70,12 +76,14 @@ var AllResolutionEnum = []ResolutionEnum{ ResolutionEnumFourK, ResolutionEnumFiveK, ResolutionEnumSixK, + ResolutionEnumSevenK, ResolutionEnumEightK, + ResolutionEnumHuge, } func (e ResolutionEnum) IsValid() bool { switch e { - case ResolutionEnumVeryLow, ResolutionEnumLow, ResolutionEnumR360p, ResolutionEnumStandard, ResolutionEnumWebHd, ResolutionEnumStandardHd, ResolutionEnumFullHd, ResolutionEnumQuadHd, ResolutionEnumVrHd, ResolutionEnumFourK, ResolutionEnumFiveK, ResolutionEnumSixK, ResolutionEnumEightK: + case ResolutionEnumVeryLow, ResolutionEnumLow, ResolutionEnumR360p, ResolutionEnumStandard, ResolutionEnumWebHd, ResolutionEnumStandardHd, ResolutionEnumFullHd, ResolutionEnumQuadHd, ResolutionEnumVrHd, ResolutionEnumFourK, ResolutionEnumFiveK, ResolutionEnumSixK, ResolutionEnumSevenK, ResolutionEnumEightK, ResolutionEnumHuge: return true } return false diff --git a/ui/v2.5/src/utils/resolution.ts b/ui/v2.5/src/utils/resolution.ts index 8f8327206..c13241610 100644 --- a/ui/v2.5/src/utils/resolution.ts +++ b/ui/v2.5/src/utils/resolution.ts @@ -9,11 +9,13 @@ const stringResolutionMap = new Map([ ["720p", ResolutionEnum.StandardHd], ["1080p", ResolutionEnum.FullHd], ["1440p", ResolutionEnum.QuadHd], - ["1920p", ResolutionEnum.VrHd], + // ["1920p", ResolutionEnum.VrHd], ["4k", ResolutionEnum.FourK], ["5k", ResolutionEnum.FiveK], ["6k", ResolutionEnum.SixK], + ["7k", ResolutionEnum.SevenK], ["8k", ResolutionEnum.EightK], + ["Huge", ResolutionEnum.Huge], ]); export const stringToResolution = ( diff --git a/ui/v2.5/src/utils/text.ts b/ui/v2.5/src/utils/text.ts index a4150df91..16ad8beda 100644 --- a/ui/v2.5/src/utils/text.ts +++ b/ui/v2.5/src/utils/text.ts @@ -280,20 +280,23 @@ const bitRate = (bitrate: number) => { const resolution = (width: number, height: number) => { const number = width > height ? height : width; - if (number >= 4320) { + if (number >= 6144) { + return "HUGE"; + } + if (number >= 3840) { return "8K"; } - if (number >= 3384) { + if (number >= 3584) { + return "7K"; + } + if (number >= 3000) { return "6K"; } - if (number >= 2880) { + if (number >= 2560) { return "5K"; } - if (number >= 2160) { - return "4K"; - } if (number >= 1920) { - return "1920p"; + return "4K"; } if (number >= 1440) { return "1440p";