-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
When seeking to position where's a gap - stream freezes #3808
Comments
@Zahoq We do have a workaround for that in place. This workaround was added shortly before the release of 4.1.0 which is why we disabled it by default. The basic idea is to adjust the seek target by seeking close to the target time. This is only supported for static content as of today. Please try by enabling it as follows: player.updateSettings({streaming: {gaps: {enableSeekFix: true}}}) It would be great if you can share your results here. If this proves to be stable we will consider enabling it by default. |
@dsilhavy we're already using |
Can you please share a playable version/link to the stream then we can check. Also please check if this still occurs with the latest development branch, specifically after this fix: 5965ab6 |
@dsilhavy my apologies for long delay between responses. Sadly I am unable to provide link to stream, it requires established session with our content provider servers. I'll try to prepare something, however it will take some time. I've verified fix 5965ab6 , it didn't solve the issue. Let me investigate it further, I'll provide more details. |
@dsilhavy investigation led me to conclusion that issue occurs because of the missing range that contains our seekTarget. I've noticed that BufferController has a function called So far I've found no issues with that fix, however I still need to test thoroughly seeking far outside fetched buffer. |
Thanks, please issue a pull request with your changes against development. You can add the label "Work in Progress - Don't Merge" to indicate that this is still ongoing. That makes it easier for me to check. Thank you |
@Zahoq Thanks. I checked your logs and the manifest. For video there is clearly a gap in the manifest as This is exactly what Please remember to enable gaps: {
enableSeekFix: true
}, I think your PR is good as well but I would prefer fixing this using the existing logic. |
@dsilhavy Sadly asset with gap at the beginning went down. I'm waiting for our 3rd party team to bring it back. I should be able to test it tomorrow. |
@dsilhavy asset with gap at the beginning has been removed from our BO, it will take some time to bring it back to retest this issue:( My team will update this issue once it's retested. |
I will close this for now as the issue is solved in my tests and |
I have a concern with the modification that has been made in the TimelineSegmentGetter.
With previous of TimelineSegmentGetter, the first segment of the dvr window would have been returned then the BufferController would have adjusted the seeking time. Don't know to fix it yet. |
@bbert I added a workaround for dynamic SegmentTimeline streams in
Do you think this solves the error? |
This issue has been automatically marked as stale because it has not had recent activity. However, it might still be relevant so please leave a short comment if it should remain open. Otherwise the issue will be closed automatically after two weeks. Thank you for your contributions. |
This issue has been automatically closed because no further activity occurred. If you think this issue is still relevant please reopen it or contact @dsilhavy. Thank you for your contributions. |
Environment
Link to playable MPD file:
MPD has a termination date so I'll copy its body:
GlobalManifest.txt
Dash.js version: 4.1.0
Browser name/version: Chrome 95, Tizen 5
OS name/version: Mac 11.6 BigSur
Steps to reproduce
set playback position to 0 on stream where there's a gap at the beginning.
Observed behavior
If there's a gap at the beginning of playback, playback freezes after seeking to position 0. GapController doesn't skip gap as it's suspended while seeking. In logs below you can see that gap is present in range 0 - 2.475.
I've verified a workaround that modifies
GapController
_shouldIgnoreSeekingState
to return true by default. After that seeking to position 0 properly continues playback from ~2.475.Console output
Expected behavior
Dont freeze playback when seeking to the middle of gap.
Additional questions:
The text was updated successfully, but these errors were encountered: