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
"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 {

View file

@ -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

View file

@ -9,11 +9,13 @@ const stringResolutionMap = new Map<string, ResolutionEnum>([
["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 = (

View file

@ -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";