Der Plex-Vergleich verglich zwei Mal dasselbe

`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 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-09-27 17:49:36 +02:00
co-authored by Claude Opus 5
parent e324a474fd
commit 165a82acd0
@@ -163,12 +163,26 @@ if CommandLine.arguments.contains("--leiter") {
} }
print("Leiter-Probe mit: \(movie.title)\n") 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( let ohne = TranscodeRequest(
ratingKey: movie.ratingKey, ratingKey: movie.ratingKey,
maximumBitrate: 8_000, maximumBitrate: 8_000,
isLocal: connection.local 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)] { for (name, anfrage) in [("ohne autoAdjustQuality", ohne), ("mit autoAdjustQuality=1", mit)] {
print("=== \(name) ===") print("=== \(name) ===")
@@ -180,9 +194,10 @@ if CommandLine.arguments.contains("--leiter") {
print() 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) await server.stopTranscode(sessionIdentifier: ohne.sessionIdentifier)
print("Transcoder angehalten.") await server.stopTranscode(sessionIdentifier: mit.sessionIdentifier)
print("Beide Transcoder angehalten.")
exit(0) exit(0)
} }