Closed wseymour15 closed 3 months ago
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 86.36%. Comparing base (
d23539a
) to head (efe1d0d
).
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Description
Currently there is an edge case in DASH where certain points of audio segments and video segments do not always exist on the same timeline.
Example: We seek to
100
seconds into the video. There is an audio segment that is from 98-100.25 seconds, and the video segment is from 100-109.95. The audio segment is on a timeline from 90-99.99, and the video segment is on a timeline from 110-119.99. We fall into a loop in this scenario because VHS catches that we have bad timelines, but we do not do anything to fix it in this scenario.This change allows us to check for this specific scenario. When we attempt to load an audio segment that is on a prior timeline to the video segment, we will now force the player forward to just past the faulty audio segment. This ensures that the audio and video segments will now be on the same timeline.
Specific Changes proposed
fixBadTimeline
logic outside of thehasEnoughInfoToLoad_
andhasEnoughInfoToAppend_
functions so we do not have unexpected actions on a function that should just return a boolean.currentTime
to just after the end of the faulty audio segment.Requirements Checklist