-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Switching text languages mid-playback clears buffer and remains with old languages until next period #1774
Comments
Hi @salmoro |
@ismena Sorry. I too am having trouble reproducing with the above content (even though I'm pretty sure I was yesterday). On private content I'm able to reproduced consistently. Can I PM you a link to private content? |
Yes! Please send it to [email protected] (mention the issue # in the subject) and we'll take a look. |
Closing due to inactivity. If this is still an issue for you or if you have further questions, you can ask us to reopen or have the bot reopen it by including |
Hello @salmoro , I am seeing 'Invalid Token' from the link you sent us via email. Is your content still available for testing? |
@michellezhuogg Sorry about that. We've removed the authorization requirements for that link. |
@salmoro, I don't see any subtitles on this content. Several text languages show up in the menu, but I have yet to see any cues after a few minutes of playback. So I'm unable to reproduce this issue. |
If this is still an issue in the latest code, please provide instructions on how to reproduce (specific languages and timestamps may help), and we will take another look. |
@joeyparrish I've just emailed a new link of our private content to [email protected] (titled Issue #1774). Steps to reproduce:
|
Thanks! I can confirm this bug now in v2.5.0. Notes:
|
This bug and all of the symptoms I documented above can still be seen in the nightly build. |
When switch() is called, it checks for what segment/period the media state will need to fetch next. As text is much smaller than audio/ video, it might be the case that text has all the segments in period i while audio and video are still in the process of fetching them. Thus, the next period needed for text will be i+1, while for other media states it will be i. Switch() assumes that if the period needed is not the same as current period, a perios transition is about to happen and there's no point in switching streams now since they're about to change on the next update anyway. However, the period transition only happenes if all the media states require it. In our edge case, only text is ready for the next period, so transition will not happen. This change corrects the assumption "if a media state is ready for the new period, don't switch" to assumption "if ALL media states are ready for the new period, don't switch." Issue #1774 Change-Id: I35f1b7ae10704922fb5692e02fc5f2edc6982575
Hi @salmoro
We'll need to look into this further. |
@salmoro the content is no longer available on the server. If you're interested in pursuing this issue further, please let us know by providing an updated manifest! |
@ismena Sorry about that. Just sent you a new link via email. TY |
Got the link! Please try the new master and let me know if you have any questions :) |
When switch() is called, it checks for what segment/period the media state will need to fetch next. As text is much smaller than audio/ video, it might be the case that text has all the segments in period i while audio and video are still in the process of fetching them. Thus, the next period needed for text will be i+1, while for other media states it will be i. Switch() assumes that if the period needed is not the same as current period, a perios transition is about to happen and there's no point in switching streams now since they're about to change on the next update anyway. However, the period transition only happenes if all the media states require it. In our edge case, only text is ready for the next period, so transition will not happen. This change corrects the assumption "if a media state is ready for the new period, don't switch" to assumption "if ALL media states are ready for the new period, don't switch." Issue #1774 Change-Id: I35f1b7ae10704922fb5692e02fc5f2edc6982575
When switch() is called, it checks for what segment/period the media state will need to fetch next. As text is much smaller than audio/ video, it might be the case that text has all the segments in period i while audio and video are still in the process of fetching them. Thus, the next period needed for text will be i+1, while for other media states it will be i. Switch() assumes that if the period needed is not the same as current period, a perios transition is about to happen and there's no point in switching streams now since they're about to change on the next update anyway. However, the period transition only happenes if all the media states require it. In our edge case, only text is ready for the next period, so transition will not happen. This change corrects the assumption "if a media state is ready for the new period, don't switch" to assumption "if ALL media states are ready for the new period, don't switch." Issue shaka-project#1774 Change-Id: I35f1b7ae10704922fb5692e02fc5f2edc6982575
I also cannot reproduce any error. If this is still an issue for you or if you have further questions, you can ask us to reopen or have the bot reopen it by including @shaka-bot reopen in a comment. |
Have you read the FAQ and checked for duplicate open issues?
Yes
What version of Shaka Player are you using?
2.5.0-beta2 (also applicable to 2.4.5)
Can you reproduce the issue with our latest release version?
Yes
Can you reproduce the issue with the latest code from
master
?Haven't tried
Are 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?
Windows 10 chrome 73 (applicable to other OSs as well)
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
What are the manifest and license server URIs?
https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine-hls/hls.m3u8
What did you do?
What did you expect to happen?
What actually happened?
The text was updated successfully, but these errors were encountered: