mirror of
https://github.com/zoriya/Kyoo.git
synced 2026-05-13 19:34:18 +00:00
30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
from .hls_utils import assert_no_large_gaps_or_overlaps, probe_segment_timeline
|
|
|
|
|
|
def test_variant_playlists_have_continuous_timeline(
|
|
media_playlists: dict, test_config, byte_cache
|
|
) -> None:
|
|
playlists = media_playlists["variants"] + media_playlists["audios"]
|
|
|
|
for playlist in playlists:
|
|
segment_urls = playlist.segment_urls[: test_config.max_segments]
|
|
assert len(segment_urls) >= 3, f"Not enough segments in playlist {playlist.url}"
|
|
|
|
timelines = [
|
|
probe_segment_timeline(
|
|
segment_url=url,
|
|
map_url=playlist.map_url,
|
|
timeout_seconds=test_config.timeout_seconds,
|
|
byte_cache=byte_cache,
|
|
headers=test_config.headers,
|
|
)
|
|
for url in segment_urls
|
|
]
|
|
|
|
stream_kind = timelines[0].stream_kind
|
|
gap_tol = 0.06 if stream_kind == "audio" else 0.05
|
|
overlap_tol = 0.02 if stream_kind == "audio" else 0.04
|
|
assert_no_large_gaps_or_overlaps(timelines, gap_tol, overlap_tol)
|