Skip to content
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

fix: jumping gap resulting in loop #3887

Closed

Conversation

bwallberg
Copy link
Contributor

A gap occurs and the player ends up in an endlessly looping state.

👋 This fixes a bug that happens when playing back MSS ( probably an issue with MPD as well ).
The reason this happens is because the Samsung TVs ( in this case ) won’t seek to the requested position but rather a few seconds before which causes it to end up in the gap… again.

Log of the behavior

[2/1/2022, 8:59:36 AM] [5196938][GapController] Jumping gap occuring in period defaultId_0 starting at 1643702228.779 and ending at 1643702229.013. Jumping by: 0.09999999999999998 
[2/1/2022, 8:59:36 AM] [5196991][PlaybackController] Native video element event: seeked 
[2/1/2022, 8:59:36 AM] [5196993][PlaybackController] Native video element event: playing 
[2/1/2022, 8:59:38 AM] [5198668][PlaybackController] Native video element event: waiting 
[2/1/2022, 8:59:38 AM] [5198933][PlaybackController] Requesting seek to time: 1643702229.013 (internal) 
[2/1/2022, 8:59:38 AM] [5198933][GapController] Jumping gap occuring in period defaultId_0 starting at 1643702228.779 and ending at 1643702229.013. Jumping by: 0.09999999999999998 
[2/1/2022, 8:59:38 AM] [5198974][PlaybackController] Native video element event: seeked 
[2/1/2022, 8:59:38 AM] [5198978][PlaybackController] Native video element event: playing 
[2/1/2022, 8:59:40 AM] [5200664][PlaybackController] Native video element event: waiting 
[2/1/2022, 8:59:40 AM] [5200935][PlaybackController] Requesting seek to time: 1643702229.013 (internal) 
[2/1/2022, 8:59:40 AM] [5200936][GapController] Jumping gap occuring in period defaultId_0 starting at 1643702228.779 and ending at 1643702229.013. Jumping by: 0.09999999999999998 
[2/1/2022, 8:59:40 AM] [5200995][PlaybackController] Native video element event: seeked 
[2/1/2022, 8:59:40 AM] [5200996][PlaybackController] Native video element event: playing 
[2/1/2022, 8:59:42 AM] [5202681][PlaybackController] Native video element event: waiting 
[2/1/2022, 8:59:42 AM] [5202932][PlaybackController] Requesting seek to time: 1643702229.013 (internal) 
[2/1/2022, 8:59:42 AM] [5202933][GapController] Jumping gap occuring in period defaultId_0 starting at 1643702228.779 and ending at 1643702229.013. Jumping by: 0.09999999999999998 
[2/1/2022, 8:59:42 AM] [5202974][PlaybackController] Native video element event: seeked 
[2/1/2022, 8:59:42 AM] [5202976][PlaybackController] Native video element event: playing 
[2/1/2022, 8:59:44 AM] [5204666][PlaybackController] Native video element event: waiting 
[2/1/2022, 8:59:44 AM] [5204935][PlaybackController] Requesting seek to time: 1643702229.013 (internal) 
[2/1/2022, 8:59:44 AM] [5204936][GapController] Jumping gap occuring in period defaultId_0 starting at 1643702228.779 and ending at 1643702229.013. Jumping by: 0.09999999999999998 
[2/1/2022, 8:59:44 AM] [5204984][PlaybackController] Native video element event: seeked 
[2/1/2022, 8:59:44 AM] [5204985][PlaybackController] Native video element event: playing 
[2/1/2022, 8:59:46 AM] [5206668][PlaybackController] Native video element event: waiting 
[2/1/2022, 8:59:46 AM] [5206935][PlaybackController] Requesting seek to time: 1643702229.013 (internal) 
[2/1/2022, 8:59:46 AM] [5206936][GapController] Jumping gap occuring in period defaultId_0 starting at 1643702228.779 and ending at 1643702229.013. Jumping by: 0.09999999999999998 
[2/1/2022, 8:59:46 AM] [5206990][PlaybackController] Native video element event: seeked 
[2/1/2022, 8:59:46 AM] [5206992][PlaybackController] Native video element event: playing 
[2/1/2022, 8:59:48 AM] [5208665][PlaybackController] Native video element event: waiting 
[2/1/2022, 8:59:48 AM] [5208932][PlaybackController] Requesting seek to time: 1643702229.013 (internal) 
[2/1/2022, 8:59:48 AM] [5208933][GapController] Jumping gap occuring in period defaultId_0 starting at 1643702228.779 and ending at 1643702229.013. Jumping by: 0.09999999999999998 
[2/1/2022, 8:59:48 AM] [5209016][PlaybackController] Native video element event: seeked 
[2/1/2022, 8:59:48 AM] [5209017][PlaybackController] Native video element event: playing 
[2/1/2022, 8:59:50 AM] [5210702][PlaybackController] Native video element event: waiting 
[2/1/2022, 8:59:50 AM] [5210935][PlaybackController] Requesting seek to time: 1643702229.013 (internal) 
[2/1/2022, 8:59:50 AM] [5210935][GapController] Jumping gap occuring in period defaultId_0 starting at 1643702228.779 and ending at 1643702229.013. Jumping by: 0.09999999999999998 
[2/1/2022, 8:59:50 AM] [5210973][PlaybackController] Native video element event: seeked 
[2/1/2022, 8:59:50 AM] [5210976][PlaybackController] Native video element event: playing 
[2/1/2022, 8:59:52 AM] [5212658][PlaybackController] Native video element event: waiting 
[2/1/2022, 8:59:52 AM] [5212935][PlaybackController] Requesting seek to time: 1643702229.013 (internal) 
[2/1/2022, 8:59:52 AM] [5212935][GapController] Jumping gap occuring in period defaultId_0 starting at 1643702228.779 and ending at 1643702229.013. Jumping by: 0.09999999999999998 
[2/1/2022, 8:59:52 AM] [5212988][PlaybackController] Native video element event: seeked 
[2/1/2022, 8:59:52 AM] [5212991][PlaybackController] Native video element event: playing 
[2/1/2022, 8:59:54 AM] [5214670][PlaybackController] Native video element event: waiting 
[2/1/2022, 8:59:54 AM] [5214935][PlaybackController] Requesting seek to time: 1643702229.013 (internal) 
[2/1/2022, 8:59:54 AM] [5214937][GapController] Jumping gap occuring in period defaultId_0 starting at 1643702228.779 and ending at 1643702229.013. Jumping by: 0.09999999999999998 
[2/1/2022, 8:59:54 AM] [5214986][PlaybackController] Native video element event: seeked 
[2/1/2022, 8:59:54 AM] [5214989][PlaybackController] Native video element event: playing 
[2/1/2022, 8:59:56 AM] [5216655][PlaybackController] Native video element event: waiting 
[2/1/2022, 8:59:56 AM] [5216935][PlaybackController] Requesting seek to time: 1643702229.013 (internal)

The solution is to detect that the seek didn't jump and simply increase the seek time slightly.

@dsilhavy dsilhavy added this to the 4.3.1 milestone Feb 24, 2022
@dsilhavy
Copy link
Collaborator

@bwallberg Can you plase do a check again and confirm that this is still an issue with version 4.3.0 when you enable enableSeekDecorrelationFix. I understand the problem but I want to avoid to add various custom workarounds for different platforms.

@bwallberg
Copy link
Contributor Author

@bwallberg Can you plase do a check again and confirm that this is still an issue with version 4.3.0 when you enable enableSeekDecorrelationFix. I understand the problem but I want to avoid to add various custom workarounds for different platforms.

I'm pretty sure I've already tested it but I'll double check.

@bwallberg
Copy link
Contributor Author

Hi,
Sorry for not getting back to you sooner! Had some delays.
I had to test using my other PR ( #3888 ) since I kept getting stalls.

I can confirm that even with enableSeekDecorrelationFix the looping still occured.

@dsilhavy dsilhavy modified the milestones: 4.4.0, 4.4.1 Apr 20, 2022
@bwallberg
Copy link
Contributor Author

I'm closing this since it's growing stale, the sponsor of this fix has decided to go with DASH instead where these types of gaps won't occur anymore.

@bwallberg bwallberg closed this Apr 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants