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 MSE queue blocked in some situations #1561

Merged
merged 1 commit into from
Oct 2, 2024

Conversation

peaBerberian
Copy link
Collaborator

I noticed that an error thrown (and not a promise rejected) by the MSE appendBuffer and remove API did not lead to an updatestart nor an updateend events which were our triggers to start the next MSE operation in our logic.

If we were unlucky to have future operations waiting (in reality this situation is kind of rare as consecutive push operations are merged together) we would be left with a queue only being filled and never being emptied.

To reproduce it, I had to play a local content with a huge buffer size and seeking between DASH Periods like crazy, so hopefully this seems not easily reproducible, but it may well be on non-powerful devices with a too high buffer size?

As written in the code, the solution comes with caveats, but it's still better than what we had before.

@peaBerberian peaBerberian added bug This is an RxPlayer issue (unexpected result when comparing to the API) Priority: 0 (Very high) This issue or PR has a very high priority. Efforts should be concentrated on it first. labels Oct 2, 2024
@peaBerberian peaBerberian added this to the 4.2.0 milestone Oct 2, 2024
I noticed that an error thrown (and not a promise rejected) by the
MSE `appendBuffer` and `remove` API did not lead to an `updatestart` nor
an `updateend` events which were our triggers to start the next MSE
operation in our logic.

If we were unlucky to have future operations waiting (in reality
this situation is kind of rare as consecutive push operations are
merged together) we would be left with a queue only being filled
and never being emptied.

To reproduce it, I had to play a local content with a huge buffer size
and seeking between DASH Periods like crazy, so hopefully this seems
not easily reproducible, but it may well be on non-powerful devices
with a too high buffer size?

As written in the code, the solution comes with caveats, but it's still
better than what we had before.
@peaBerberian peaBerberian merged commit 7b1a840 into dev Oct 2, 2024
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug This is an RxPlayer issue (unexpected result when comparing to the API) Priority: 0 (Very high) This issue or PR has a very high priority. Efforts should be concentrated on it first.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants