Auflösungen heissen jetzt, wie Menschen sie nennen
Auf der Detailseite stand „1080" — die Zeichenkette des Servers in Grossbuchstaben. Weder eine Zahl mit Bedeutung noch ein Name, den jemand benutzt. Jetzt steht dort „Full HD", „4K", „HD", „SD". Die Einstufung geht neu über die **Breite**, nicht über die Höhe. Ein Kinofilm in 2,39:1 misst 1920 × 804; nach der Höhe war das bisher „720p", und zwar ausgerechnet bei den grossen Filmen. Die Höhe bleibt als Notnagel für Server, die keine Breite melden, und der Name des Servers als letzter. Nebenbei fällt damit der 4K-Filter bei Jellyfin nicht mehr durch, wenn ein breitwandiges 4K nur 1608 Zeilen hat, und die doppelte Einstufung in PlexMedia verschwindet. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
e61cb0403d
commit
f47c6385e3
@@ -51,32 +51,22 @@ public struct MediaVersion: Sendable, Equatable, Identifiable {
|
||||
/// Danach richtet sich, welche Qualitätsstufen überhaupt Sinn ergeben —
|
||||
/// eine 720p-Datei auf 1080p hochzurechnen bringt kein Bild dazu.
|
||||
public var pixelHeight: Int? {
|
||||
if let height { return height }
|
||||
switch videoResolution?.lowercased() {
|
||||
case "4k": return 2_160
|
||||
case "1080": return 1_080
|
||||
case "720": return 720
|
||||
case "480": return 480
|
||||
case "sd": return 480
|
||||
default: return nil
|
||||
}
|
||||
if let height, height > 0 { return height }
|
||||
return resolution?.nominalHeight
|
||||
}
|
||||
|
||||
/// Die Auflösung als Wort — „4K", „1080p".
|
||||
///
|
||||
/// Aus der Bildhöhe, nicht aus dem Namen des Servers: Plex sagt „4k",
|
||||
/// Jellyfin gibt Zahlen. Gemeint ist dasselbe.
|
||||
public var resolutionLabel: String? {
|
||||
guard let pixelHeight else { return videoResolution?.uppercased() }
|
||||
switch pixelHeight {
|
||||
case 1_600...: return "4K"
|
||||
case 1_000..<1_600: return "1080p"
|
||||
case 700..<1_000: return "720p"
|
||||
case 1..<700: return "SD"
|
||||
default: return nil
|
||||
}
|
||||
/// Die Stufe, in der diese Fassung vorliegt.
|
||||
public var resolution: VideoResolution? {
|
||||
VideoResolution(width: width, height: height, serverLabel: videoResolution)
|
||||
}
|
||||
|
||||
/// Die Auflösung als Wort — „4K", „Full HD".
|
||||
///
|
||||
/// Nicht die Zeichenkette des Servers: Plex sagt „4k" und „1080",
|
||||
/// Jellyfin gibt Zahlen. Gemeint ist dasselbe, und keines davon ist ein
|
||||
/// Name, den jemand benutzt.
|
||||
public var resolutionLabel: String? { resolution?.name }
|
||||
|
||||
/// Eine kurze Beschreibung für die Versionsauswahl, etwa
|
||||
/// „4K · HEVC · 38 Mbit/s".
|
||||
public var qualityLabel: String {
|
||||
|
||||
Reference in New Issue
Block a user