fix crash on HLS live playback

fixes #774

Signed-off-by: Toni Förster <toni.foerster@gmail.com>
This commit is contained in:
Toni Förster 2024-08-31 14:22:28 +02:00
parent a194738bb6
commit 6978e9437c
No known key found for this signature in database
GPG Key ID: 292F3E5086C83FC7

View File

@ -153,7 +153,8 @@ extension PlayerBackend {
// Filter out non-HLS streams and streams with resolution more than maxResolution // Filter out non-HLS streams and streams with resolution more than maxResolution
let nonHLSStreams = streams.filter { let nonHLSStreams = streams.filter {
let isHLS = $0.kind == .hls let isHLS = $0.kind == .hls
let isWithinResolution = $0.resolution <= maxResolution.value // Safely unwrap resolution and maxResolution.value to avoid crashes
let isWithinResolution = ($0.resolution != nil && maxResolution.value != nil) ? $0.resolution! <= maxResolution.value! : false
logger.info("Stream ID: \($0.id) - Kind: \(String(describing: $0.kind)) - Resolution: \(String(describing: $0.resolution)) - Bitrate: \($0.bitrate ?? 0)") logger.info("Stream ID: \($0.id) - Kind: \(String(describing: $0.kind)) - Resolution: \(String(describing: $0.resolution)) - Bitrate: \($0.bitrate ?? 0)")
logger.info("Is HLS: \(isHLS), Is within resolution: \(isWithinResolution)") logger.info("Is HLS: \(isHLS), Is within resolution: \(isWithinResolution)")
return !isHLS && isWithinResolution return !isHLS && isWithinResolution
@ -187,7 +188,8 @@ extension PlayerBackend {
} }
let filteredStreams = adjustedStreams.filter { stream in let filteredStreams = adjustedStreams.filter { stream in
let isWithinResolution = stream.resolution <= maxResolution.value // Safely unwrap resolution and maxResolution.value to avoid crashes
let isWithinResolution = (stream.resolution != nil && maxResolution.value != nil) ? stream.resolution! <= maxResolution.value! : false
logger.info("Filtered stream ID: \(stream.id) - Is within max resolution: \(isWithinResolution)") logger.info("Filtered stream ID: \(stream.id) - Is within max resolution: \(isWithinResolution)")
return isWithinResolution return isWithinResolution
} }