Dash-Industry-Forum/dash.js — pull request #19 by kirkshoop (2013-06-17 18:47:35+00:00)
Title: Stability

Primarily, this fixes some seek issues. These were reported in issue 13:
https://github.com/Dash-Industry-Forum/dash.js/issues/13

The IndexHandler was getting out of sync with the current playing position after a backwards seek. The result was that at the time the bufferLength triggered a should buffer, the IndexHandler index is sitting back at the seek point, thus the request returned is behind the play position and for a segment that is already in the buffer. This means that the player is actively downloading segments for the past and the playback stops, waiting for the index to catch up with the current play position.

I tried several different approaches to this. The ranges in the mse buffer after data is appended are different from the ranges in the request generated from the mpd data. This made correlating the end of the buffer range to the segment list in the MPD unstable. The solution that worked was to track past requests in the buffercontroller and use that to reject requests from the IndexHandler that have already been appended to the buffer.

feedback appreciated.