Dash-Industry-Forum / dash.js

A reference client implementation for the playback of MPEG DASH via Javascript and compliant browsers.
http://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html
Other
5.06k stars 1.66k forks source link

[StreamProcessor][null] TypeError: Cannot read property 'getContinuousBufferTimeForTargetTime' of null #4473

Open clementhoubrecrunchy opened 2 months ago

clementhoubrecrunchy commented 2 months ago
Environment
Steps to reproduce

This bug is intermittent, it's difficult to reproduce:

I'm sorry to not be able to add more informations, but I wasn't able to reproduce by myself the issue.

Observed behavior

When this bug occurred, the player starts an infinite loading and never recovers and is not able to play the video.

Console output
[StreamProcessor][null] TypeError: Cannot read property 'getContinuousBufferTimeForTargetTime' of null
Expected behavior

The player should be able to seek correctly and play the video.

More comments
dsilhavy commented 2 months ago

Can you paste the full log here? There are multiple places in the code where getContinuousBufferTimeForTargetTime is called. I assume the bufferController object is null for some reason but I dont know why this would be the case.

clementhoubrecrunchy commented 2 months ago

Thank you for your reply! Unfortunately, I'm not able to reproduce the bug by myself. I will try anyway to get more informations to help you to find the issue.

clementhoubrecrunchy commented 1 month ago

We managed to reproduce it. Here are the dash.js logs. After the seek at 800, the video doesn't play and we have an infinite loading. The only way to unblock it is to seek again.

[537213] [AbrController] [video] switching from buffer occupancy to throughput ABR rule (buffer: 0.000).
[537228] [AbrController] [audio] switching from buffer occupancy to throughput ABR rule (buffer: 0.000).
[537407] [StreamProcessor] [videol OnFragmentLoadingCompleted for stream id defaultId_0 and media type video
[537422] [StreamProcessor] laudio] OnFragmentLoadingCompleted for stream id defaultId_0 and media type audio
[537434] [StreamProcessor][videol [video] lastInitializedRepresentationInfo changed to 4
[537438] [StreamProcessor][audio] [audio] lastInitializedRepresentationInfo changed to 2
[537814] [StreamProcessor] [audio] OnFragmentLoadingCompleted for stream id defaultId_0 and media type audio
[537845] [StreamProcessor] [video] OnFragmentLoadingCompleted for stream id defaultId_0 and media type video
[538219] [PlaybackController] Native video element event: seeked
[538287] [PlaybackController] Native video element event: playing
[538317] [StreamProcessor] [audio] OnFragmentLoadingCompleted for stream id defaultId_0 and media type audio
[538565] [StreamProcessor] [video] OnFragmentLoadingCompleted for stream id defaultId_0 and media type video
[539507] [StreamProcessor] [video] OnFragmentLoadingCompleted for stream id defaultId_0 and media type video
[539736] [PlaybackController] Native video element event: pause
[540018] [StreamProcessor] [audio] OnFragmentLoadingCompleted for stream id defaultId_0 and media type audio
[540764] [StreamProcessor] [audio] OnFragmentLoadingCompleted for stream id defaultId_0 and media type audio
[540933] [StreamProcessor] [video] OnFragmentLoadingCompleted for stream id defaultId_0 and media type video
[542072] [StreamProcessor] [audio] OnFragmentLoadingCompleted for stream id defaultId_0 and media type audio
[542170] [StreamProcessor] [video] OnFragmentLoadingCompleted for stream id defaultId_0 and media type video
[542966] [StreamProcessor] [video] OnFragmentLoadingCompleted for stream id defaultId_0 and media type video
[543187] [StreamProcessor] [audio] OnFragmentLoadingCompleted for stream id defaultId_0 and media type audio
[543201] [AbrController] [audio] switching from throughput to buffer occupancy ABR rule (buffer: 22.193)
[543338] [AbController] [videol switching from throughput to buffer occupancy ABR rule (buffer: 22.889)
[543809] [StreamProcessor] [audio] OnFragmentLoadingCompleted for stream id defaultId_0 and media type audio
[544159] [PlaybackController] Seeking to: 800
[544249] [PlaybackController] Native video element event: play
[544267] [PlaybackControllerl Native video element event: playing
[544383] [PlaybackController] Native video element event: waiting
grace-quek commented 4 weeks ago

Following up on this thread @dsilhavy - were you able to glean any insight from the log provided by @clementhoubrecrunchy ?