Link to playable MPD file: Not publicly accessible. This is a multiple period version of Tears of Steel with first period duration 60 seconds. MPD included here.
Dash.js version: 4.5.2 or newer
Browser name/version: Chrome 111.0.5563.65
OS name/version: Windows 10 Enterprise
Steps to reproduce
Play from the beginning. Wait for the buffering beyond first period, i.e. 2nd period buffering started. This problem needs to have fast segment download so the 1st period is fully loaded well ahead of the playback. This is an important precondition and maybe tricky to trigger depending on the network condition.
Seek to sometime before the end of 1st period. In our case, 58 seconds mark.
Wait for the playback into 2nd period. The playback will stall.
100% reproducible. This problem does not occur with version older than 4.5.2.
Observed behavior
The playback stalled because it is no longer fetching segments. This seems to be caused by canceling preload during the seek which canceled the 2nd period preload in progress but the loading of the 2nd period never got restarted. When 2nd period buffer runs out, the playback stalls.
The player should not stall. The seek is intra-period and should not cancel preloading of the next period. Pruning buffers might be reasonable but loading should not be canceled.
Environment
Steps to reproduce
Observed behavior
The playback stalled because it is no longer fetching segments. This seems to be caused by canceling preload during the seek which canceled the 2nd period preload in progress but the loading of the 2nd period never got restarted. When 2nd period buffer runs out, the playback stalls.
MPD
Console output
dash-stall.log
Expected behavior
The player should not stall. The seek is intra-period and should not cancel preloading of the next period. Pruning buffers might be reasonable but loading should not be canceled.