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
@@ -1,4 +1,5 @@
|
||||
import Foundation
|
||||
import MediaKit
|
||||
|
||||
/// Eine Datei auf der Platte des Servers.
|
||||
///
|
||||
@@ -144,23 +145,19 @@ public struct PlexMedia: Sendable, Equatable, Codable, Identifiable {
|
||||
}
|
||||
}
|
||||
|
||||
/// Die Auflösung in der Schreibweise, die Menschen erwarten.
|
||||
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 in der Schreibweise, die Menschen erwarten.
|
||||
public var resolutionLabel: String? { resolution?.name }
|
||||
|
||||
/// Eine kurze Beschreibung für die Versionsauswahl auf der Detailseite,
|
||||
/// etwa „4K · HEVC · 38,2 Mbit/s".
|
||||
public var qualityLabel: String {
|
||||
var pieces: [String] = []
|
||||
if let videoResolution { pieces.append(videoResolution.uppercased()) }
|
||||
if let label = resolutionLabel { pieces.append(label) }
|
||||
if let videoCodec { pieces.append(videoCodec.uppercased()) }
|
||||
if let bitrate { pieces.append("\(bitrate / 1000) Mbit/s") }
|
||||
return pieces.joined(separator: " · ")
|
||||
|
||||
Reference in New Issue
Block a user