[media-source] Live stream with live seekable range and removal of buffered media around currentTime can cause currentTime to be outside of HTMLME.seekable (#291)

wolenetz has just created a new issue for https://github.com/w3c/media-source:

== Live stream with live seekable range and removal of buffered media around currentTime can cause currentTime to be outside of HTMLME.seekable ==
Perhaps surprising to API users, there is a scenario where currentTime can become outside of the seekable range simply due to a change in what is buffered, when the duration is +Infinity and |live seekable range| is not empty.

Example:

* HTMLMediaElement.buffered is { [3,6) [20,30} }
* MediaSource.duration is +Infinity
* MediaSource live seekable range is set to start=10, end=50
* HTMLMediaElement.seekable is thus { [3, 50) }

Then, let's suppose a seek to and playback of media buffered at time [3,6) is done. currentTime begins to progress.
Then, let's suppose app removes [3,6). currentTime remains somewhere in that range, since it previously could not have progressed across the buffered range gap to the next buffered range that begins at time 20.

So, currentTime is somewhere in 3..6.
But HTMLMediaElement.seekable is now { [10, 50) }.

I think this scenario merits at least a non-normative note in the MSE-extended `seekable` steps.

Also, is this a normative issue with the spec? (Should .seekable also depend on currentTime in this scenario??)

Please view or discuss this issue at https://github.com/w3c/media-source/issues/291 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Wednesday, 4 August 2021 20:54:43 UTC