Dash.js: Dash.js v3.0 player freezes when trying to seek to the last available timecode positions

Created on 8 Jul 2019  路  9Comments  路  Source: Dash-Industry-Forum/dash.js

Environment

dash-file1.txt

  • Dash.js version: v3.0.0
  • Browser name/version: Google Chrome 75.0.3770.100 (Official Build) (64-bit)
  • OS name/version: Windows 10 Enterprise Edition
Steps to reproduce
  1. Please provide clear steps to reproduce your problem:
  2. load manifest file in the dash reference player: http://reference.dashif.org/dash.js/v3.0.0/samples/dash-if-reference-player/index.html
  3. use default configuration for the player
  4. the player starts playing the file
  5. seek to a position to the end of the file
  6. pause player
  7. seek to a position to the beginning of the file
  8. seek to position 59.55
    Observed behaviour
  • player is freezing in there(with readyState = 1, paused = false), the last event thrown is: waiting. after that, no error, no segment request/loading/, no javascript unhandled exception etc.
  • clicking pause/play button has no effect on the player freezing state(a play promise abort error is thrown in the logs); the only way to unfreeze the player is to seek to a new position.
Console output
[6314][MediaPlayer] Streaming Initialized 
dash.all.debug.js:15658 [6317][MediaPlayer] Playback Initialized 
dash.all.debug.js:15658 [6341][DashParser] Parsing complete: ( xml2json: 3.91ms, objectiron: 0.245ms, total: 0.00415s) 
dash.all.debug.js:15658 [6354][ManifestUpdater] Manifest has been refreshed at Mon Jul 08 2019 17:00:55 GMT+0200 (Central European Summer Time)[1562598055.697]  
dash.all.debug.js:15658 [6377][Stream] No text data. 
dash.all.debug.js:15658 [6377][Stream] No fragmentedText data. 
dash.all.debug.js:15658 [6377][Stream] No embeddedText data. 
dash.all.debug.js:15658 [6378][Stream] No muxed data. 
dash.all.debug.js:15658 [6378][Stream] No image data. 
dash.all.debug.js:15658 [6393][PlaybackController] Native video element event: play 
dash.all.debug.js:15658 [6396][PlaybackController] Native video element event: waiting 
dash.all.debug.js:15658 [6418][BufferController][video] Init fragment finished loading saving to video's init cache 
dash.all.debug.js:15658 [6419][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-init-0.m4s , Range: undefined 
dash.all.debug.js:15658 [6420][BufferController][audio] Init fragment finished loading saving to audio's init cache 
dash.all.debug.js:15658 [6422][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-init-1.m4s , Range: undefined 
dash.all.debug.js:15658 [6429][PlaybackController] Native video element event: loadedmetadata 
dash.all.debug.js:15658 [6431][ScheduleController][video] Top quality video index has changed from undefined to 0 
dash.all.debug.js:15658 [6436][ScheduleController][audio] Top quality audio index has changed from undefined to 0 
dash.all.debug.js:15658 [6455][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00001.m4s , Range: undefined 
dash.all.debug.js:15658 [6457][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00001.m4s , Range: undefined 
dash.all.debug.js:15658 [6486][PlaybackController] Native video element event: playing 
dash.all.debug.js:15658 [6504][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00002.m4s , Range: undefined 
dash.all.debug.js:15658 [6520][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00003.m4s , Range: undefined 
dash.all.debug.js:15658 [6549][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00004.m4s , Range: undefined 
dash.all.debug.js:15658 [6571][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00005.m4s , Range: undefined 
dash.all.debug.js:15658 [6573][AbrController] AbrController (video) switching from throughput to buffer occupancy ABR rule (buffer: 12.800). 
dash.all.debug.js:15658 [6590][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00006.m4s , Range: undefined 
dash.all.debug.js:15658 [6604][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00007.m4s , Range: undefined 
dash.all.debug.js:15658 [6622][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00008.m4s , Range: undefined 
dash.all.debug.js:15658 [6639][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00009.m4s , Range: undefined 
dash.all.debug.js:15658 [6655][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00010.m4s , Range: undefined 
dash.all.debug.js:15658 [6671][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00011.m4s , Range: undefined 
dash.all.debug.js:15658 [6686][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00012.m4s , Range: undefined 
dash.all.debug.js:15658 [6982][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00002.m4s , Range: undefined 
dash.all.debug.js:15658 [7001][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00003.m4s , Range: undefined 
dash.all.debug.js:15658 [7017][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00004.m4s , Range: undefined 
dash.all.debug.js:15658 [7033][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00005.m4s , Range: undefined 
dash.all.debug.js:15658 [7034][AbrController] AbrController (audio) switching from throughput to buffer occupancy ABR rule (buffer: 12.604). 
dash.all.debug.js:15658 [7050][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00006.m4s , Range: undefined 
dash.all.debug.js:15658 [7067][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00007.m4s , Range: undefined 
dash.all.debug.js:15658 [7080][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00008.m4s , Range: undefined 
dash.all.debug.js:15658 [7100][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00009.m4s , Range: undefined 
dash.all.debug.js:15658 [7115][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00010.m4s , Range: undefined 
dash.all.debug.js:15658 [7124][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00011.m4s , Range: undefined 
dash.all.debug.js:15658 [7141][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00012.m4s , Range: undefined 
dash.all.debug.js:15658 [7158][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00013.m4s , Range: undefined 
dash.all.debug.js:15658 [7350][PlaybackController] Native video element event: pause 
dash.all.debug.js:15658 [8579][PlaybackController] Requesting seek to time: 49 
dash.all.debug.js:15658 [8581][PlaybackController] Seeking to: 49 
dash.all.debug.js:15658 [8584][AbrController] AbrController (video) switching from buffer occupancy to throughput ABR rule (buffer: 0.000). 
dash.all.debug.js:15658 [8586][AbrController] AbrController (audio) switching from buffer occupancy to throughput ABR rule (buffer: 0.000). 
dash.all.debug.js:15658 [8593][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00019.m4s , Range: undefined 
dash.all.debug.js:15658 [8599][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00019.m4s , Range: undefined 
dash.all.debug.js:15658 [8618][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00020.m4s , Range: undefined 
dash.all.debug.js:15658 [8620][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00020.m4s , Range: undefined 
dash.all.debug.js:15658 [8639][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00021.m4s , Range: undefined 
dash.all.debug.js:15658 [8643][PlaybackController] Native video element event: seeked 
dash.all.debug.js:15658 [8649][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00021.m4s , Range: undefined 
dash.all.debug.js:15658 [8667][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00022.m4s , Range: undefined 
dash.all.debug.js:15658 [8692][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00023.m4s , Range: undefined 
dash.all.debug.js:15658 [8709][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00024.m4s , Range: undefined 
dash.all.debug.js:15658 [8721][Stream] onBufferingCompleted - One streamProcessor has finished but audio one is not buffering completed 
doLog @ dash.all.debug.js:15658
warn @ dash.all.debug.js:15609
onBufferingCompleted @ dash.all.debug.js:29447
(anonymous) @ dash.all.debug.js:15793
trigger @ dash.all.debug.js:15792
checkIfBufferingCompleted @ dash.all.debug.js:32266
onStreamCompleted @ dash.all.debug.js:32495
(anonymous) @ dash.all.debug.js:15793
trigger @ dash.all.debug.js:15792
executeRequest @ dash.all.debug.js:40163
getNextFragment @ dash.all.debug.js:34959
schedule @ dash.all.debug.js:34974
setTimeout (async)
startScheduleTimer @ dash.all.debug.js:35014
onBytesAppended @ dash.all.debug.js:35224
(anonymous) @ dash.all.debug.js:15793
trigger @ dash.all.debug.js:15792
onAppended @ dash.all.debug.js:32045
afterSuccess @ dash.all.debug.js:28631
executeCallback @ dash.all.debug.js:28712
updateEndHandler @ dash.all.debug.js:28729
dash.all.debug.js:15658 [8722][ScheduleController][video] Stream is complete 
dash.all.debug.js:15658 [9155][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00022.m4s , Range: undefined 
dash.all.debug.js:15658 [9165][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00023.m4s , Range: undefined 
dash.all.debug.js:15658 [9180][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00024.m4s , Range: undefined 
dash.all.debug.js:15658 [9553][PlaybackController] Requesting seek to time: 2 
dash.all.debug.js:15658 [9555][PlaybackController] Seeking to: 2 
dash.all.debug.js:15658 [9565][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00001.m4s , Range: undefined 
dash.all.debug.js:15658 [9568][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00001.m4s , Range: undefined 
dash.all.debug.js:15658 [9579][PlaybackController] Native video element event: seeked 
dash.all.debug.js:15658 [9584][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00002.m4s , Range: undefined 
dash.all.debug.js:15658 [9587][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00002.m4s , Range: undefined 
dash.all.debug.js:15658 [9621][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00003.m4s , Range: undefined 
dash.all.debug.js:15658 [9640][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00004.m4s , Range: undefined 
dash.all.debug.js:15658 [9655][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00005.m4s , Range: undefined 
dash.all.debug.js:15658 [9674][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00006.m4s , Range: undefined 
dash.all.debug.js:15658 [9676][AbrController] AbrController (video) switching from throughput to buffer occupancy ABR rule (buffer: 13.360). 
dash.all.debug.js:15658 [9693][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00007.m4s , Range: undefined 
dash.all.debug.js:15658 [9710][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00008.m4s , Range: undefined 
dash.all.debug.js:15658 [9730][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00009.m4s , Range: undefined 
dash.all.debug.js:15658 [9751][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00010.m4s , Range: undefined 
dash.all.debug.js:15658 [9772][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00011.m4s , Range: undefined 
dash.all.debug.js:15658 [9790][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00012.m4s , Range: undefined 
dash.all.debug.js:15658 [9810][ScheduleController][video] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-0-00013.m4s , Range: undefined 
dash.all.debug.js:15658 [10097][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00003.m4s , Range: undefined 
dash.all.debug.js:15658 [10105][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00004.m4s , Range: undefined 
dash.all.debug.js:15658 [10113][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00005.m4s , Range: undefined 
dash.all.debug.js:15658 [10129][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00006.m4s , Range: undefined 
dash.all.debug.js:15658 [10133][AbrController] AbrController (audio) switching from throughput to buffer occupancy ABR rule (buffer: 13.360). 
dash.all.debug.js:15658 [10155][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00007.m4s , Range: undefined 
dash.all.debug.js:15658 [10185][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00008.m4s , Range: undefined 
dash.all.debug.js:15658 [10205][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00009.m4s , Range: undefined 
dash.all.debug.js:15658 [10213][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00010.m4s , Range: undefined 
dash.all.debug.js:15658 [10231][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00011.m4s , Range: undefined 
dash.all.debug.js:15658 [10249][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00012.m4s , Range: undefined 
dash.all.debug.js:15658 [10267][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00013.m4s , Range: undefined 
window.player.seek(59.55);
dash.all.debug.js:15658 [13672][PlaybackController] Requesting seek to time: 59.55 
undefined
dash.all.debug.js:15658 [13673][PlaybackController] Seeking to: 59.55 
dash.all.debug.js:15658 [13680][Stream] onBufferingCompleted - One streamProcessor has finished but audio one is not buffering completed 
doLog @ dash.all.debug.js:15658
warn @ dash.all.debug.js:15609
onBufferingCompleted @ dash.all.debug.js:29447
(anonymous) @ dash.all.debug.js:15793
trigger @ dash.all.debug.js:15792
checkIfSufficientBuffer @ dash.all.debug.js:32278
updateBufferLevel @ dash.all.debug.js:32251
onRemoved @ dash.all.debug.js:32467
(anonymous) @ dash.all.debug.js:15793
trigger @ dash.all.debug.js:15792
(anonymous) @ dash.all.debug.js:28592
executeCallback @ dash.all.debug.js:28712
updateEndHandler @ dash.all.debug.js:28729
dash.all.debug.js:15658 [13682][AbrController] AbrController (audio) switching from buffer occupancy to throughput ABR rule (buffer: 0.000). 
dash.all.debug.js:15658 [13700][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00023.m4s , Range: undefined 
dash.all.debug.js:15658 [13709][ScheduleController][audio] OnFragmentLoadingCompleted - Url: http://test-dash-domain/dash-file1-chunk-output-1-00024.m4s , Range: undefined 
dash.all.debug.js:15658 [13710][AbrController] AbrController (video) switching from buffer occupancy to throughput ABR rule (buffer: 0.000). 
dash.all.debug.js:15658 [13716][StreamController] [onStreamBufferingCompleted] calls signalEndOfStream of mediaSourceController. 
dash.all.debug.js:15658 [13717][ScheduleController][audio] Stream is complete 
dash.all.debug.js:15658 [14912][PlaybackController] Native video element event: play 
dash.all.debug.js:15658 [14913][ScheduleController][audio] Start denied to Schedule Controller 
doLog @ dash.all.debug.js:15658
warn @ dash.all.debug.js:15609
start @ dash.all.debug.js:34867
onPlaybackStarted @ dash.all.debug.js:35303
(anonymous) @ dash.all.debug.js:15793
trigger @ dash.all.debug.js:15792
onPlaybackStart @ dash.all.debug.js:34326
play (async)
play @ dash.all.debug.js:41470
play @ dash.all.debug.js:33991
play @ dash.all.debug.js:25940
onPlayPauseClick @ ControlBar.js:133
dash.all.debug.js:15658 [14914][PlaybackController] Native video element event: waiting 
dash.all.debug.js:15658 [16873][PlaybackController] Native video element event: pause 
dash.all.debug.js:15658 [16874][VideoModel] Caught pending play exception - continuing (AbortError: The play() request was interrupted by a call to pause(). https://goo.gl/LdLk22) 
doLog @ dash.all.debug.js:15658
warn @ dash.all.debug.js:15609
(anonymous) @ dash.all.debug.js:41476
Promise.catch (async)
play @ dash.all.debug.js:41472
play @ dash.all.debug.js:33991
play @ dash.all.debug.js:25940
onPlayPauseClick @ ControlBar.js:133
dash.all.debug.js:15658 [18521][PlaybackController] Native video element event: play 
dash.all.debug.js:15658 [18522][ScheduleController][audio] Start denied to Schedule Controller 
doLog @ dash.all.debug.js:15658
warn @ dash.all.debug.js:15609
start @ dash.all.debug.js:34867
onPlaybackStarted @ dash.all.debug.js:35303
(anonymous) @ dash.all.debug.js:15793
trigger @ dash.all.debug.js:15792
onPlaybackStart @ dash.all.debug.js:34326
play (async)
play @ dash.all.debug.js:41470
play @ dash.all.debug.js:33991
play @ dash.all.debug.js:25940
onPlayPauseClick @ ControlBar.js:133
dash.all.debug.js:15658 [18522][PlaybackController] Native video element event: waiting 
Investigate

Most helpful comment

Thanks for the detailed feedback. I am going to test it in the new version I am preparing, dash.js v3.0.1. It has some timing related improvements and includes a new mechanism to auto-recover from playback stall situations. Plan is to freeze this new version this week so it will be released by Wednesday next week. I will let you know once I have a version that you can start testing with.

All 9 comments

@galileogalilei, one question before start taking a look. Did you get to reproduce this issue with any of our test streams? Thanks!

Thank you for your prompt reply!

Yes, managed to reproduce it also with the default test stream: https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd

The steps to reproduce were pretty much the same:

  • load manifest with default settings, video start paying, pause the video then seek at different positions, to the end and then back to the beginning of the video and then seek(programatically this time cause you need precision to seek right at the edge of the video) to the last available frames of the last segment, e.g. seek(634.55) in this case.
  • I would say the issue only happens when trying to seek to the last available frames of the video, in this case >= 634.54 of 634.566.
  • In my testing video(mp4, codecs: avc1.42c01e, res: 720 x 576 @ 25 fps, ratio:16:9), seek() >= 59.55 of 60.00. but in this particular case, before seeking to 59.55 and player freeze, player.duration() shows 60.031999 seconds instead of the initial 60.00s (as stated in the manifest as the item duration). This is probably due to the fact that audio representation seems to be a bit longer than the video one(if you check audio duration from the manifest is exactly 60.031999 while the video representation is 60.00) and after trying to play to the last frame at least once the player.duration then changes to this value. Even if this does not seem to be ok(audio has a length less than one full frame more than the video representation), I don't think it has anything to do with the issue, taking into account is it also occuring with the test stream which did not have this particularity.
  • Also, buffer length seems to always be empty when the player freeze in the waiting state(so probably seek(to last frames) needs to be executed before the buffer had any chance to fill-in ranges).

Let me know if you need other details!

Thanks!
freeze_end_30fps

Thanks for the detailed feedback. I am going to test it in the new version I am preparing, dash.js v3.0.1. It has some timing related improvements and includes a new mechanism to auto-recover from playback stall situations. Plan is to freeze this new version this week so it will be released by Wednesday next week. I will let you know once I have a version that you can start testing with.

Are there going to be any fix for this in dash.js v3.0.1? I have tested all released versions and saw that this is not reproducible in dash.js v2.5.0, but somehow broke in dash.js v2.6.0 and every version after.

Yes, it will. I am closing the branch with the latest changes of 3.0.1. Stay tuned

Note: This is still not working for the nightly build either. Tested with /*! v3.0.0-9291d30, 2019-08-09T22:54:48Z */

@galileogalilei can youcheck if the issue is still present with latest version?
appendWinwoend is now used in dash.js as explained in PR #3153, and it may resolve your original issue.
Let us know.

I do not manage to reproduce, even when disabling use of appendWindowEnd property.
Please reopen it if you manage to reproduce.

Hi,

with 3.0.3 versi贸n I have the same problem when seek to random positions with a Live isml.

Environment

  • The stream has correct Access-Control-Allow-Origin headers (CORS)
  • There are no network errors such as 404s in the browser console when trying to play the stream
  • Dash.js version: v3.0.3
  • Browser name/version: Google Chrome 80.0.3987.149 (Official Build) (64-bit)
  • OS name/version: Windows 10 Enterprise Edition
  • The manifest used:
    Manifest.txt

Steps to reproduce

  • load manifest file in the dash reference player
  • using that settings:
    streaming.scheduleWhilePaused = true
    streaming.fastSwitchEnabled = true
  • the player starts playing the file
  • seek to a position randonly

Observed behaviour

  • After some seeks, player is freezing
  • clicking pause/play button has no effect on the player freezing state
  • In console the next message is shown:
    core\Debug.js:168 [67381][FragmentController] No audio bytes to push or stream is inactive.
Was this page helpful?
0 / 5 - 0 ratings