-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Stalls on WebOS #1704
Comments
We don't have a WebOS TV yet, so we have no way to test or verify on that platform. Disabling gap-jumping or stall-recovery on the whole platform does not sound like a solution we would accept, though. I would prefer if we could improve the signals we use to detect gaps/stalls to cover this additional platform. Could you please investigate a little more and find out what conditions differ between WebOS and other platforms? For example, for both WebOS and a browser that works, check the values of |
Although it is hard to say something without internal TV logs, we had a similar issue like this one. After further discussion with LG engineers, they told us their platform does not support seeking before 'loaddata' event. If you try to change video.currentTime before this event, it was causing the playback to stall. Check this doc page . So, they were suggesting us that we should use mediaOptions if we want to adjust video.currentTime before 'loadeddata' event. You may try to investigate your issue which is based on this platform limitation. |
I think that is not the same error. We can reproduce some seconds (30~40) and after the stall is produced without any intervention. The problem is not on the stream intialization. @joeyparrish Tomorrow i'll try to get more logs and the values when the player enter in handleStall_ . Thanks. |
Based on the log, it does appear to be stalled. It's not paused, But you said that if the platform is excluded from these checks, playback doesn't stall at all? Or does it stall and then self-correct? In addition to that clarification, one more thing would be helpful: can you log the full buffered ranges instead of the object? For example: shaka.log.debug('handleStall_', this.video_.paused, this.video_.playbackRate,
this.video_.readyState, this.video_.currentTime, buffered.length);
for (let i = 0; i < buffered.length; ++i) {
shaka.log.debug('buffered[' + i + ']:',
{start: buffered.start(i), end: buffered.end(i)});
} This way, we can see the full contents of |
Hi @joeyparrish "But you said that if the platform is excluded from these checks, playback doesn't stall at all? Or does it stall and then self-correct?"
I attach a new image with the text selected when the stall is produced. I'll send you a private video with the current behaviour and the behaviour with my proposal. |
That's really strange. Because the debug logs show that all the conditions for stall detection are correctly met: video.currentTime doesn't advance, it's not paused, and the current time is well inside a buffered range (current = 125, buffered = 121 through 143). Can you produce one more set of logs for us? This time, instead of excluding WebOS, comment out I expect to see one of two things with that:
Either of these would amount to a WebOS platform bug. |
I just looked at the videos you sent us. I noticed that it seems that the stall happens at the same time as the resolution changes. Does the issue reproduce if adaptation is disabled? player.configure('abr.enabled', false); |
I made the first test (comment out this.video_.currentTime += 0.1) Full logs on txt: No with the abr.enabled = false Full logs on txt: Note: there are the same error. |
Similar problem on WebOS (SDK Version: 3.3.0, Firmware Version: 05.30.25) with HLS. |
I think, this may be due to the webOS jvm oddity (just a guess) |
@joeyparrish, have you been able to review my previous results? |
@avelad Hi! I noticed, that when upd |
@Kogoruhn with 1500 for me it's not working. |
I just tested with 3000 and it works 99% of the time |
@avelad, if you have a patch that is working for you locally, could you please create a pull request? I can test your PR thoroughly on the devices that we have in our lab, so that we can be confident the fix doesn't create any regressions for any other platforms. Thanks! |
I have simular issue on both TizenOS and WebOS. I loaded a live stream(DASH with DRM) on both platform, although the behaviour on both platform are different but at last the stream will stall. Below are the details information for both platform. TizenOSDevice / OS version : UA43NU7100 / TizenOS 4.0 WebOSDevice/ OS version: UK6300PCD / WebOS 4.0.0-1601805 If any additional informations are needed, please let me know. |
@joeyparrish I created a patch, I'll wait to make PR to next week in case someone from the thread has objections.
Note: I checked that with 3000 is not working always, with some combination on encoder+packager is not working, but the solution disabling the stall Detector is always working. |
That would certainly not affect other platforms. :-) Since we don't have a WebOS device ourselves, we will trust that your PR solves this issue for you. So please submit the PR at your earliest convenience. |
@skipness, please wait until we close this issue with @avelad's PR. If, after the PR is merged, you still have the issue you described, please file a separate issue on github, and we will investigate. Thanks! |
Sure, no problem👍 |
I'll send the PR this monday. Thanks! |
Disable the StallDetector on WebOS, where we often mistake slowness for stalling. Fix for #1704
Fixed in #1820 |
Have you read the FAQ and checked for duplicate open issues?: Yes
What version of Shaka Player are you using?: v2.5.0-beta2
Can you reproduce the issue with our latest release version?: Yes
Can you reproduce the issue with the latest code from
master
?: YesAre you using the demo app or your own custom app?: Both
If custom app, can you reproduce the issue using our demo app?: Yes
What browser and OS are you using?:
WebOS 3.5 & WebOS 4.0
What are the manifest and license server URIs?:
https://cdn.digital.com.bo/__cl/cg:default/__c/BOLIVIATV/__op/dash-default/__f/manifest.mpd
What did you do?
Load the stream on the TV
What did you expect to happen?
There is a smooth reproduction as in Chrome/Firefox/Tizen/...
What actually happened?
A few seconds after load the stream (~30-40 seconds), there are a stall not recoverable without seek or unload/load.
After investigate a bit, I found that the function shaka.media.GapJumpingController.prototype.handleStall_ cause the stall in the TV. If use the condition if (!this.video_.paused && this.video_.playbackRate > 0 && !navigator.userAgent.includes('Web0S')) { all works perfectly.
Do you have any idea why this happens?
Would you accept a PR with this change?
The text was updated successfully, but these errors were encountered: