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:
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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user