Wiedergabe: „Umwandlung ok" war eine Zusage und wurde als Absage gelesen
Der Server antwortet auf eine angeforderte Umrechnung mit „direkte Wiedergabe nicht verfügbar; Umwandlung ok" — Code 1001. Meine Prüfung ließ nur 1000 durch, also ausschließlich DirectPlay. Damit blockierte die App ausgerechnet den Fall, den sie selbst angefordert hatte: wer im Player eine Stufe wählt, will umgerechnet bekommen, und die einzige richtige Antwort darauf kam als Fehler an. Es spielte gar nichts mehr. 1000 heißt „direkt abspielbar", 1001 „direkt nicht, umrechnen schon", 2000 „Umwandlung in Ordnung" — alles Zusagen. Abgelehnt wird erst ab 3000, etwa bei fehlender Berechtigung oder überlastetem Transcoder. Vier Tests halten die Codes fest, damit die Grenze nicht wieder zur Auslegungssache wird. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
f628819765
commit
0bafec4838
@@ -149,12 +149,24 @@ public struct TranscodeDecision: Sendable, Decodable {
|
||||
|
||||
/// Ob der Server die Wiedergabe grundsätzlich zulässt.
|
||||
///
|
||||
/// Code 1000 heißt „in Ordnung". Alles andere ist eine Absage — meist
|
||||
/// fehlende Berechtigungen oder ein überlasteter Transcoder.
|
||||
/// `1000` heißt „direkt abspielbar", `1001` „direkt nicht, umrechnen
|
||||
/// schon", `2000` „Umwandlung in Ordnung". Das sind alles **Zusagen** —
|
||||
/// erst ab `3000` wird abgelehnt, etwa bei fehlender Berechtigung oder
|
||||
/// überlastetem Transcoder.
|
||||
///
|
||||
/// Vorher galt nur `1000` als Zusage. Damit wurde ausgerechnet der Fall
|
||||
/// blockiert, den die App selbst angefordert hatte: wer im Player eine
|
||||
/// Stufe wählt, will umgerechnet bekommen, und der Server antwortete
|
||||
/// „direkte Wiedergabe nicht verfügbar; Umwandlung ok" — eine Zusage, die
|
||||
/// hier als Absage ankam. Es spielte dann gar nichts.
|
||||
public var isAllowed: Bool {
|
||||
generalDecisionCode == nil || generalDecisionCode == 1000
|
||||
guard let generalDecisionCode else { return true }
|
||||
return generalDecisionCode < Self.firstRefusalCode
|
||||
}
|
||||
|
||||
/// Ab hier lehnt Plex ab.
|
||||
static let firstRefusalCode = 3_000
|
||||
|
||||
public var explanation: String? {
|
||||
generalDecisionText ?? transcodeDecisionText
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user