From 165a82acd0257ecb51b318d286b55490e4a75414 Mon Sep 17 00:00:00 2001 From: Scarriffle Date: Sun, 27 Sep 2026 17:49:36 +0200 Subject: [PATCH] Der Plex-Vergleich verglich zwei Mal dasselbe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `askingForLadder()` behält die Sitzungskennung bei — richtig für die App, weil sonst beim Aufräumen ein Transcoder stehen bliebe. Für eine Gegenüberstellung ist es tödlich: die zweite Anfrage bekam die laufende Sitzung der ersten zurück, und die Antwort war zwangsläufig identisch. Im Wortlaut stand zweimal dieselbe Sitzungs-GUID — der Beweis, dass gar nichts gemessen wurde. Jetzt zwei eigenständige Anfragen mit getrennten Kennungen, beide Kennungen werden gedruckt, und beide Transcoder werden hinterher angehalten. Co-Authored-By: Claude Opus 5 --- .../FlixyKit/Sources/FlixyProbe/main.swift | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/Packages/FlixyKit/Sources/FlixyProbe/main.swift b/Packages/FlixyKit/Sources/FlixyProbe/main.swift index c0be70e..d0fab80 100644 --- a/Packages/FlixyKit/Sources/FlixyProbe/main.swift +++ b/Packages/FlixyKit/Sources/FlixyProbe/main.swift @@ -163,12 +163,26 @@ if CommandLine.arguments.contains("--leiter") { } print("Leiter-Probe mit: \(movie.title)\n") + // **Zwei getrennte Sitzungen, und das ist der Kern des Vergleichs.** + // + // `askingForLadder()` behält die Sitzungskennung bei — richtig für die + // App, weil sonst beim Aufräumen ein Transcoder stehen bliebe. Für eine + // Gegenüberstellung ist es tödlich: die zweite Anfrage bekommt dann die + // laufende Sitzung der ersten zurück, die Antwort ist zwangsläufig + // identisch, und man hält das für ein Ergebnis. Genau das ist hier + // passiert. let ohne = TranscodeRequest( ratingKey: movie.ratingKey, maximumBitrate: 8_000, isLocal: connection.local ) - let mit = ohne.askingForLadder() + let mit = TranscodeRequest( + ratingKey: movie.ratingKey, + maximumBitrate: 8_000, + isLocal: connection.local, + adaptive: true + ) + print("Sitzungen: \(ohne.sessionIdentifier.prefix(8)) / \(mit.sessionIdentifier.prefix(8))\n") for (name, anfrage) in [("ohne autoAdjustQuality", ohne), ("mit autoAdjustQuality=1", mit)] { print("=== \(name) ===") @@ -180,9 +194,10 @@ if CommandLine.arguments.contains("--leiter") { print() } - // Aufräumen: beide Anfragen haben am Server einen Transcoder angeworfen. + // Aufräumen: **beide** Anfragen haben je einen Transcoder angeworfen. await server.stopTranscode(sessionIdentifier: ohne.sessionIdentifier) - print("Transcoder angehalten.") + await server.stopTranscode(sessionIdentifier: mit.sessionIdentifier) + print("Beide Transcoder angehalten.") exit(0) }