New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fast, repeated switching of nextLevel will cause fragments to stop loading #385
Comments
indeed i can reproduce. I put some logs in there, onBufferFlushed() is triggered as expected, and this.state is correctly set to IDLE. I can see that although this.state is set to IDLE in onBufferFlushed(), when tick() is invoked its value is equal to PAUSED... although i did not find anything that could set this.state=PAUSED in between. really odd. |
if flush buffer operation is synchronous, onBufferFlushed() will be triggered before exiting from the processing of hls.trigger(Event.BUFFER_FLUSHING,... onBufferFlushed() set the state back to IDLE, but state was to put back to PAUSED state just after executing hls.trigger(Event.BUFFER_FLUSHING,... => fix fragment loading stuck when buffer is empty Also modify fragLoadIdx before triggering the event to avoid fragLoopLoadingError related to https://github.com/dailymotion/hls.js/issues/385
allow faster level switch control related to https://github.com/dailymotion/hls.js/issues/385
Hi @nhjm449 plz recheck on http://dailymotion.github.io/hls.js/demo, issue should be fixed now |
It's definitely improved, but now I get a new error if I switch really fast.
|
if flush buffer operation is synchronous, onBufferFlushed() will be triggered before exiting from the processing of hls.trigger(Event.BUFFER_FLUSHING,... onBufferFlushed() set the state back to IDLE, but state was to put back to PAUSED state just after executing hls.trigger(Event.BUFFER_FLUSHING,... => fix fragment loading stuck when buffer is empty Also modify fragLoadIdx before triggering the event to avoid fragLoopLoadingError related to https://github.com/dailymotion/hls.js/issues/385
allow faster level switch control related to https://github.com/dailymotion/hls.js/issues/385
I was able to reproduce it. logger.js:37 [log] > Loading 3 of [0 ,63],level 0, currentTime:2.405675,bufferEnd:29.996 |
*stream-controller: use level/sn to ensure consistency, discard outdated parsed segments related to https://github.com/dailymotion/hls.js/issues/385
Hi @nhjm449 could you recheck against latest master / v0.6.2-1 and ensure that everything is working as expected now ? |
Testing on http://dailymotion.github.io/hls.js/demo/ again, I'm no longer able to break it. 😄 Thanks! |
Observed on http://dailymotion.github.io/hls.js/demo/ with default settings.
Quickly switching through the 'next level' buttons repeatedly will eventually cause future fragments to stop loading, causing playback to stall.
When this happens, all of the 'next level' buttons appear to be in the 'disabled' state:
Two logs follow. Note that one instance threw a mediaError.
The text was updated successfully, but these errors were encountered: