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.
This commit is contained in:
vt-idiot 2023-06-15 20:19:46 -04:00 committed by GitHub
parent 4f11a2820f
commit 47c3e855c8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 34 additions and 19 deletions

View file

@ -21,11 +21,13 @@ enum ResolutionEnum {
"720p", STANDARD_HD "720p", STANDARD_HD
"1080p", FULL_HD "1080p", FULL_HD
"1440p", QUAD_HD "1440p", QUAD_HD
"1920p", VR_HD "1920p", VR_HD @deprecated(reason: "Use 4K instead")
"4k", FOUR_K "4K", FOUR_K
"5k", FIVE_K "5K", FIVE_K
"6k", SIX_K "6K", SIX_K
"8k", EIGHT_K "7K", SEVEN_K
"8K", EIGHT_K
"8K+", HUGE
} }
input ResolutionCriterionInput { input ResolutionCriterionInput {

View file

@ -20,10 +20,12 @@ var resolutionRanges = map[ResolutionEnum]ResolutionRange{
ResolutionEnum("FULL_HD"): {1080, 1439}, ResolutionEnum("FULL_HD"): {1080, 1439},
ResolutionEnum("QUAD_HD"): {1440, 1919}, ResolutionEnum("QUAD_HD"): {1440, 1919},
ResolutionEnum("VR_HD"): {1920, 2159}, ResolutionEnum("VR_HD"): {1920, 2159},
ResolutionEnum("FOUR_K"): {2160, 2879}, ResolutionEnum("FOUR_K"): {1920, 2559},
ResolutionEnum("FIVE_K"): {2880, 3383}, ResolutionEnum("FIVE_K"): {2560, 2999},
ResolutionEnum("SIX_K"): {3384, 4319}, ResolutionEnum("SIX_K"): {3000, 3583},
ResolutionEnum("EIGHT_K"): {4320, 8639}, ResolutionEnum("SEVEN_K"): {3584, 3839},
ResolutionEnum("EIGHT_K"): {3840, 6143},
ResolutionEnum("HUGE"): {6144, 9999},
} }
type ResolutionEnum string type ResolutionEnum string
@ -45,7 +47,7 @@ const (
ResolutionEnumFullHd ResolutionEnum = "FULL_HD" ResolutionEnumFullHd ResolutionEnum = "FULL_HD"
// 1440p // 1440p
ResolutionEnumQuadHd ResolutionEnum = "QUAD_HD" ResolutionEnumQuadHd ResolutionEnum = "QUAD_HD"
// 1920p // 1920p - deprecated
ResolutionEnumVrHd ResolutionEnum = "VR_HD" ResolutionEnumVrHd ResolutionEnum = "VR_HD"
// 4k // 4k
ResolutionEnumFourK ResolutionEnum = "FOUR_K" ResolutionEnumFourK ResolutionEnum = "FOUR_K"
@ -53,8 +55,12 @@ const (
ResolutionEnumFiveK ResolutionEnum = "FIVE_K" ResolutionEnumFiveK ResolutionEnum = "FIVE_K"
// 6k // 6k
ResolutionEnumSixK ResolutionEnum = "SIX_K" ResolutionEnumSixK ResolutionEnum = "SIX_K"
// 7k
ResolutionEnumSevenK ResolutionEnum = "SEVEN_K"
// 8k // 8k
ResolutionEnumEightK ResolutionEnum = "EIGHT_K" ResolutionEnumEightK ResolutionEnum = "EIGHT_K"
// 8K+
ResolutionEnumHuge ResolutionEnum = "HUGE"
) )
var AllResolutionEnum = []ResolutionEnum{ var AllResolutionEnum = []ResolutionEnum{
@ -70,12 +76,14 @@ var AllResolutionEnum = []ResolutionEnum{
ResolutionEnumFourK, ResolutionEnumFourK,
ResolutionEnumFiveK, ResolutionEnumFiveK,
ResolutionEnumSixK, ResolutionEnumSixK,
ResolutionEnumSevenK,
ResolutionEnumEightK, ResolutionEnumEightK,
ResolutionEnumHuge,
} }
func (e ResolutionEnum) IsValid() bool { func (e ResolutionEnum) IsValid() bool {
switch e { 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 true
} }
return false return false

View file

@ -9,11 +9,13 @@ const stringResolutionMap = new Map<string, ResolutionEnum>([
["720p", ResolutionEnum.StandardHd], ["720p", ResolutionEnum.StandardHd],
["1080p", ResolutionEnum.FullHd], ["1080p", ResolutionEnum.FullHd],
["1440p", ResolutionEnum.QuadHd], ["1440p", ResolutionEnum.QuadHd],
["1920p", ResolutionEnum.VrHd], // ["1920p", ResolutionEnum.VrHd],
["4k", ResolutionEnum.FourK], ["4k", ResolutionEnum.FourK],
["5k", ResolutionEnum.FiveK], ["5k", ResolutionEnum.FiveK],
["6k", ResolutionEnum.SixK], ["6k", ResolutionEnum.SixK],
["7k", ResolutionEnum.SevenK],
["8k", ResolutionEnum.EightK], ["8k", ResolutionEnum.EightK],
["Huge", ResolutionEnum.Huge],
]); ]);
export const stringToResolution = ( export const stringToResolution = (

View file

@ -280,20 +280,23 @@ const bitRate = (bitrate: number) => {
const resolution = (width: number, height: number) => { const resolution = (width: number, height: number) => {
const number = width > height ? height : width; const number = width > height ? height : width;
if (number >= 4320) { if (number >= 6144) {
return "HUGE";
}
if (number >= 3840) {
return "8K"; return "8K";
} }
if (number >= 3384) { if (number >= 3584) {
return "7K";
}
if (number >= 3000) {
return "6K"; return "6K";
} }
if (number >= 2880) { if (number >= 2560) {
return "5K"; return "5K";
} }
if (number >= 2160) {
return "4K";
}
if (number >= 1920) { if (number >= 1920) {
return "1920p"; return "4K";
} }
if (number >= 1440) { if (number >= 1440) {
return "1440p"; return "1440p";