The player does not end properly after replaying the same video
Created by: richardngn
Environment
-
The MPD passes the DASH-IF Conformance Tool on http://dashif.org/conformance.html -
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 -
The issue observed is not mentioned on https://github.com/Dash-Industry-Forum/dash.js/wiki/FAQ -
The issue occurs in the latest reference client on http://reference.dashif.org/dash.js/ and not just on my page
- Link to playable MPD file: https://dash.akamaized.net/dash264/TestCases/1a/sony/SNE_DASH_SD_CASE1A_REVISED.mpd
- Dash.js version: 2.8.0 and development, commit 49b516b1
- Browser name/version: Chrome 67.0.3396.99 (64 bits)
- OS name/version: Windows 10
Steps to reproduce
- Load the reference player http://reference.dashif.org/dash.js/v2.8.0/samples/dash-if-reference-player/index.html
- Load the playable MPD file: https://dash.akamaized.net/dash264/TestCases/1a/sony/SNE_DASH_SD_CASE1A_REVISED.mpd
- Disable auto-play and loop in options
- Start the video
- Seek to approximately 9:50
- Wait until the end of the video
- When video has ended, press play to restart it
- Seek to approximately 9:50
- The bug should happen
Observed behaviour
When the video ends for the second time, it looks like the video ended sooner than the first time, maybe because we got PLAYBACK_ENDED but native video element didn't fire ended. When we press the play button, the video does not restart and the progress bar is not reset.
Console output
Output
17:32:09.991 Debug.js:236 [115125][PlaybackController] Native video element event: stalled [object Event]
17:32:10.289 Debug.js:236 [115423][Protection] EME detected on this user agent! (ProtectionModel_21Jan2015)
17:32:10.290 Debug.js:236 [115423][MediaPlayer] Streaming Initialized
17:32:10.292 Debug.js:236 [115425][MediaPlayer] Playback Initialized
17:32:10.319 Debug.js:236 [115453][DashParser] Parsing complete: ( xml2json: 2.10ms, objectiron: 0.100ms, total: 0.00220s)
17:32:10.322 Debug.js:236 [115454][ManifestUpdater] Manifest has been refreshed at Tue Jul 10 2018 17:32:10 GMT+0200 (heure d’été d’Europe centrale)[1531236730.32]
17:32:10.334 Debug.js:236 [115467][Stream] No text data.
17:32:10.338 Debug.js:236 [115471][Stream] No fragmentedText data.
17:32:10.338 Debug.js:236 [115471][Stream] No embeddedText data.
17:32:10.338 Debug.js:236 [115472][Stream] No muxed data.
17:32:10.339 Debug.js:236 [115472][Stream] No image data.
17:32:10.801 Debug.js:236 [115934][AbrController] AbrController (video) switch from 0 to 3/3 (buffer: 0) .
17:32:10.831 Debug.js:236 [115965][BufferController][video] Init fragment finished loading saving to video's init cache
17:32:10.832 Debug.js:236 [115966][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track1.m4v
17:32:10.834 Debug.js:236 [115967][BufferController][audio] Init fragment finished loading saving to audio's init cache
17:32:10.835 Debug.js:236 [115968][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:10.838 Debug.js:236 [115971][PlaybackController] Native video element event: loadedmetadata
17:32:10.838 Debug.js:236 [115972][ScheduleController][video] Top quality video index has changed from undefined to 3
17:32:10.840 Debug.js:236 [115973][ScheduleController][audio] Top quality audio index has changed from undefined to 0
17:32:10.866 Debug.js:236 [115999][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:10.898 Debug.js:236 [116031][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:10.968 Debug.js:236 [116102][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track1.m4v
17:32:11.083 Debug.js:236 [116216][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track1.m4v
17:32:11.218 Debug.js:236 [116351][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track1.m4v
17:32:11.330 Debug.js:236 [116464][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track1.m4v
17:32:11.442 Debug.js:236 [116575][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track1.m4v
17:32:11.444 Debug.js:236 [116577][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:11.447 Debug.js:236 [116581][AbrController] AbrController (video) switching from throughput to buffer occupancy ABR rule (buffer: 24.816).
17:32:11.476 Debug.js:236 [116609][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:11.513 Debug.js:236 [116646][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:11.550 Debug.js:236 [116684][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:11.566 Debug.js:236 [116699][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track1.m4v
17:32:11.580 Debug.js:236 [116713][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:11.582 Debug.js:236 [116715][AbrController] AbrController (audio) switching from throughput to buffer occupancy ABR rule (buffer: 21.205).
17:32:11.618 Debug.js:236 [116751][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:11.666 Debug.js:236 [116800][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:11.694 Debug.js:236 [116828][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track1.m4v
17:32:11.709 Debug.js:236 [116843][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:11.754 Debug.js:236 [116887][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:11.776 Debug.js:236 [116909][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:14.424 Debug.js:236 [119557][PlaybackController] Native video element event: play
17:32:14.425 Debug.js:236 [119558][PlaybackController] Native video element event: playing
17:32:16.500 Debug.js:236 [121634][PlaybackController] Requesting seek to time: 592
17:32:16.505 Debug.js:236 [121639][PlaybackController] Seeking to: 592
17:32:16.506 Debug.js:236 [121640][PlaybackController] Native video element event: waiting
17:32:16.510 Debug.js:236 [121643][AbrController] AbrController (video) switching from buffer occupancy to throughput ABR rule (buffer: 0.000).
17:32:16.511 Debug.js:236 [121644][AbrController] AbrController (audio) switching from buffer occupancy to throughput ABR rule (buffer: 0.000).
17:32:16.543 Debug.js:236 [121676][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:16.565 Debug.js:236 [121698][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:16.792 Debug.js:236 [121926][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track1.m4v
17:32:16.815 Debug.js:236 [121948][PlaybackController] Native video element event: seeked
17:32:16.815 Debug.js:236 [121948][PlaybackController] Native video element event: playing
17:32:16.847 Debug.js:236 [121980][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track1.m4v
17:32:16.851 Debug.js:236 [121984][Stream] onBufferingCompleted - can't trigger STREAM_BUFFERING_COMPLETED because streamProcessor audio is not buffering completed
17:32:16.851 Debug.js:236 [121984][ScheduleController][video] Stream is complete
17:32:17.087 Debug.js:236 [122221][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:17.090 Debug.js:236 [122224][StreamController] [onStreamBufferingCompleted] calls signalEndOfStream of mediaSourceController.
17:32:17.091 Debug.js:236 [122224][ScheduleController][audio] Stream is complete
17:32:20.474 Debug.js:236 [125608][PlaybackController] Native video element event: stalled [object Event]
17:32:21.880 Debug.js:236 [127013][PlaybackController] Native video element event: pause
17:32:21.880 Debug.js:236 [127013][PlaybackController] Native video element event: ended
17:32:24.641 Debug.js:236 [129774][PlaybackController] Seeking to: 0
17:32:24.642 Debug.js:236 [129775][PlaybackController] Native video element event: play
17:32:24.642 Debug.js:236 [129776][PlaybackController] Native video element event: waiting
17:32:24.643 Debug.js:236 [129776][ThroughputRule] requesting switch to index: 3 type: video Average throughput 73773 kbps
17:32:24.644 Debug.js:236 [129777][AbrController] AbrController (video) switch from 3 to 0/3 (buffer: 0) .
17:32:24.655 Debug.js:236 [129788][ThroughputRule] requesting switch to index: 0 type: audio Average throughput 6498 kbps
17:32:24.671 Debug.js:236 [129804][BufferController][video] Init fragment finished loading saving to video's init cache
17:32:24.672 Debug.js:236 [129805][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track4.m4v
17:32:24.676 Debug.js:236 [129810][ThroughputRule] requesting switch to index: 3 type: video Average throughput 73773 kbps
17:32:24.677 Debug.js:236 [129810][SwitchHistoryRule] Switch history rule index: 2 samples: 8 drops: 1
17:32:24.685 Debug.js:236 [129819][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:24.689 Debug.js:236 [129822][ThroughputRule] requesting switch to index: 0 type: audio Average throughput 6498 kbps
17:32:24.736 Debug.js:236 [129869][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track4.m4v
17:32:24.739 Debug.js:236 [129872][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:24.743 Debug.js:236 [129876][ThroughputRule] requesting switch to index: 3 type: video Average throughput 73773 kbps
17:32:24.744 Debug.js:236 [129877][SwitchHistoryRule] Switch history rule index: 2 samples: 8 drops: 1
17:32:24.744 Debug.js:236 [129877][AbrController] AbrController (video) switch from 0 to 2/3 (buffer: 4.963) .
17:32:24.764 Debug.js:236 [129897][PlaybackController] Native video element event: seeked
17:32:24.764 Debug.js:236 [129897][PlaybackController] Native video element event: playing
17:32:24.775 Debug.js:236 [129908][BufferController][video] Init fragment finished loading saving to video's init cache
17:32:24.775 Debug.js:236 [129908][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track2.m4v
17:32:24.779 Debug.js:236 [129913][ThroughputRule] requesting switch to index: 3 type: video Average throughput 73773 kbps
17:32:24.780 Debug.js:236 [129914][SwitchHistoryRule] Switch history rule index: 2 samples: 8 drops: 1
17:32:24.854 Debug.js:236 [129987][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track2.m4v
17:32:24.859 Debug.js:236 [129992][ThroughputRule] requesting switch to index: 3 type: video Average throughput 77493 kbps
17:32:24.860 Debug.js:236 [129993][SwitchHistoryRule] Switch history rule index: 2 samples: 8 drops: 1
17:32:24.935 Debug.js:236 [130068][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track2.m4v
17:32:24.939 Debug.js:236 [130073][ThroughputRule] requesting switch to index: 3 type: video Average throughput 77963 kbps
17:32:24.940 Debug.js:236 [130073][SwitchHistoryRule] Switch history rule index: 2 samples: 8 drops: 1
17:32:25.014 Debug.js:236 [130147][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track2.m4v
17:32:25.026 Debug.js:236 [130160][ThroughputRule] requesting switch to index: 3 type: video Average throughput 77916 kbps
17:32:25.027 Debug.js:236 [130161][SwitchHistoryRule] Switch history rule index: 2 samples: 8 drops: 1
17:32:25.216 Debug.js:236 [130349][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track2.m4v
17:32:25.220 Debug.js:236 [130353][AbrController] AbrController (video) switching from throughput to buffer occupancy ABR rule (buffer: 24.396).
17:32:25.243 Debug.js:236 [130376][ThroughputRule] requesting switch to index: 0 type: audio Average throughput 6129 kbps
17:32:25.267 Debug.js:236 [130400][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:25.271 Debug.js:236 [130404][ThroughputRule] requesting switch to index: 0 type: audio Average throughput 6129 kbps
17:32:25.296 Debug.js:236 [130430][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:25.300 Debug.js:236 [130434][ThroughputRule] requesting switch to index: 0 type: audio Average throughput 6129 kbps
17:32:25.338 Debug.js:236 [130472][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:25.342 Debug.js:236 [130475][ThroughputRule] requesting switch to index: 0 type: audio Average throughput 6129 kbps
17:32:25.366 Debug.js:236 [130499][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:25.370 Debug.js:236 [130503][ThroughputRule] requesting switch to index: 0 type: audio Average throughput 6129 kbps
17:32:25.395 Debug.js:236 [130528][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:25.397 Debug.js:236 [130531][AbrController] AbrController (audio) switching from throughput to buffer occupancy ABR rule (buffer: 20.606).
17:32:25.422 Debug.js:236 [130555][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:25.445 Debug.js:236 [130579][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:26.549 Debug.js:236 [131682][PlaybackController] Requesting seek to time: 591
17:32:26.553 Debug.js:236 [131687][PlaybackController] Seeking to: 591
17:32:26.554 Debug.js:236 [131688][PlaybackController] Native video element event: waiting
17:32:26.557 Debug.js:236 [131690][AbrController] AbrController (video) switching from buffer occupancy to throughput ABR rule (buffer: 0.000).
17:32:26.558 Debug.js:236 [131691][AbrController] AbrController (audio) switching from buffer occupancy to throughput ABR rule (buffer: 0.000).
17:32:26.558 Debug.js:236 [131692][SwitchHistoryRule] Switch history rule index: 2 samples: 8 drops: 1
17:32:26.598 Debug.js:236 [131731][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:26.634 Debug.js:236 [131767][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:26.637 Debug.js:236 [131770][Stream] onBufferingCompleted - can't trigger STREAM_BUFFERING_COMPLETED because streamProcessor video is not buffering completed
17:32:26.643 Debug.js:236 [131777][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track2.m4v
17:32:26.649 Debug.js:236 [131783][SwitchHistoryRule] Switch history rule index: 2 samples: 8 drops: 1
17:32:26.683 Debug.js:236 [131816][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodvideo_Track2.m4v
17:32:26.684 Debug.js:236 [131817][StreamController] [onStreamBufferingCompleted] calls signalEndOfStream of mediaSourceController.
17:32:26.690 Debug.js:236 [131823][ThroughputRule] requesting switch to index: 3 type: video Average throughput 68705 kbps
17:32:26.691 Debug.js:236 [131824][AbrController] AbrController (video) switch from 2 to 3/3 (buffer: 6.013) .
17:32:26.700 Debug.js:236 [131834][BufferController][video] Append Init fragment video with representationId: 1_2 and quality: 3
17:32:26.713 Debug.js:236 [131846][PlaybackController] Native video element event: seeked
17:32:26.714 Debug.js:236 [131848][PlaybackController] Native video element event: playing
17:32:26.719 Debug.js:236 [131852][ThroughputRule] requesting switch to index: 3 type: video Average throughput 68705 kbps
17:32:26.720 Debug.js:236 [131854][ScheduleController][video] Stream is complete
17:32:27.146 Debug.js:236 [132279][ThroughputRule] requesting switch to index: 0 type: audio Average throughput 6685 kbps
17:32:27.165 Debug.js:236 [132298][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://dash.akamaized.net/dash264/TestCases/1a/sony/DASH_vodaudio_Track5.m4a
17:32:27.168 Debug.js:236 [132301][ThroughputRule] requesting switch to index: 0 type: audio Average throughput 6241 kbps
17:32:27.169 Debug.js:236 [132303][ScheduleController][audio] Stream is complete
17:32:30.624 Debug.js:236 [135757][PlaybackController] Native video element event: stalled [object Event]
17:32:32.759 Debug.js:236 [137893][PlaybackController] Native video element event: waiting
17:32:36.193 Debug.js:236 [141327][StreamController] Jumping media gap (discontinuity) at time 597.020136 . Jumping to end of the stream
17:32:36.194 Debug.js:236 [141327][PlaybackController] [PlaybackController] onPlaybackEnded -- PLAYBACK_ENDED but native video element didn't fire ended
17:32:36.195 Debug.js:236 [141328][PlaybackController] Seeking to: 597
17:32:36.196 Debug.js:236 [141329][Stream] onBufferingCompleted - can't trigger STREAM_BUFFERING_COMPLETED because streamProcessor audio is not buffering completed
17:32:36.197 Debug.js:236 [141330][StreamController] [onStreamBufferingCompleted] calls signalEndOfStream of mediaSourceController.
17:32:36.198 Debug.js:236 [141331][PlaybackController] Native video element event: pause
17:32:36.206 Debug.js:236 [141339][ThroughputRule] requesting switch to index: 3 type: video Average throughput 68705 kbps
17:32:36.207 Debug.js:236 [141340][AbrController] AbrController (video) switch from 3 to 0/3 (buffer: 0.013) .
17:32:36.215 Debug.js:236 [141349][BufferController][video] Append Init fragment video with representationId: 1_4 and quality: 0
17:32:36.216 Debug.js:236 [141349][ThroughputRule] requesting switch to index: 0 type: audio Average throughput 6241 kbps
17:32:36.223 Debug.js:236 [141356][ThroughputRule] requesting switch to index: 3 type: video Average throughput 68705 kbps
17:32:36.224 Debug.js:236 [141357][SwitchHistoryRule] Switch history rule index: 2 samples: 8 drops: 1
17:32:36.225 Debug.js:236 [141358][ScheduleController][video] Stream is complete
17:32:36.719 Debug.js:236 [141852][ThroughputRule] requesting switch to index: 0 type: audio Average throughput 6241 kbps
17:32:36.719 Debug.js:236 [141853][ScheduleController][audio] Stream is complete
17:32:39.374 Debug.js:236 [144507][PlaybackController] Native video element event: stalled [object Event]
17:32:42.024 Debug.js:236 [147157][PlaybackController] Native video element event: play
17:32:42.025 Debug.js:236 [147158][ScheduleController][video] Start denied to Schedule Controller
17:32:42.025 Debug.js:236 [147159][PlaybackController] Native video element event: waiting