# must fail: multivariant_playlists_o9_wai_m3u8 # AVERAGE-BANDWIDTH rounded down (hls::bandwidths) diff --git a/wai/wai-rs/src/http_binding/hls.rs b/wai/wai-rs/src/http_binding/hls.rs index 2623644b..604ff92b 100644 --- a/wai/wai-rs/src/http_binding/hls.rs +++ b/wai/wai-rs/src/http_binding/hls.rs @@ -608,7 +608,7 @@ pub fn bandwidths(objects: &[(u64, u64)]) -> Option<(u64, u64)> { let rate = |n: u128, d: u128| u64::try_from((8000 * n).div_ceil(d)).unwrap_or(u64::MAX); let peak = objects.iter().map(|&(n, d)| rate(u128::from(n), u128::from(d))).max()?; let (sn, sd) = objects.iter().fold((0u128, 0u128), |(a, b), &(n, d)| (a + u128::from(n), b + u128::from(d))); - Some((peak, rate(sn, sd))) + Some((peak, u64::try_from(8000 * sn / sd).unwrap_or(u64::MAX))) } /// One variant of `wai.m3u8` (ยง11.1).