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

Re-create MediaKeys at each loadVideo on WebOS #1175

Merged
merged 1 commit into from
Oct 28, 2022

Conversation

peaBerberian
Copy link
Collaborator

We noticed of an issue on WebOS (LG TV) 2021 and 2022 models where loading an already-loaded encrypted content would not succeed: it would load indefinitely.

After investigation, nothing in the JavaScript code seemed to go wrong, licences were loaded, but nothing was playing.

However, we found out that re-creating the MediaKeys instance at each zap completely fixed the issue, with the cost of potential longer loading time (not measured yet).

This seems to be an issue linked to LG's software and we will share to them what we found, but we still chose to preemptively do a work-around specifically for WebOS 2021 and 2022 models so it works even know.

If the issue become fixed in the future, we may remove that work-around.

The major part of this commit are added tests on the code handling content decryption, to ensure that a MediaKeys is only re-created in some very specific cases (and keep being re-created in those).

@peaBerberian peaBerberian added bug This is an RxPlayer issue (unexpected result when comparing to the API) DRM Relative to DRM (EncryptedMediaExtensions) Compatibility Relative to the RxPlayer's compatibility with various devices and environments labels Oct 27, 2022
@peaBerberian peaBerberian added this to the 3.29.0 milestone Oct 27, 2022
We noticed of an issue on WebOS (LG TV) 2021 and 2022 models where
loading an already-loaded encrypted content would not succeed: it would
load indefinitely.

After investigation, nothing in the JavaScript code seemed to go wrong,
licences were loaded, but nothing was playing.

However, we found out that re-creating the `MediaKeys` instance at each
zap completely fixed the issue, with the cost of potential longer
loading time (not measured yet).

This seems to be definitely an issue linked to LG's software and we will
share to them what we found, but we still chose to preemptively do a
work-around specifically for WebOS 2021 and 2022 models so it works
even know.

If the issue become fixed in the future, we may remove that work-around.

The major part of this commit are added tests on the code handling
content decryption, to ensure that a MediaKeys is only re-created in
some very specific cases (and keep being re-created in those).
@peaBerberian peaBerberian force-pushed the fix/lg-rezap-doesnt-work branch from 55e75cb to e021232 Compare October 28, 2022 08:21
@peaBerberian peaBerberian merged commit 97730bc into master Oct 28, 2022
@peaBerberian peaBerberian mentioned this pull request Nov 15, 2022
peaBerberian added a commit that referenced this pull request Nov 30, 2022
In the last release, we added a work-around a WebOS (LG TVs) issue [#1175]
where playing multiple times the same encrypted content could lead to
infinite rebuffering.

We thought at the beginning that the issue was only reproducible on
WebOS for 2021 and 2022 TV models. However, we recently reproduced it on a
WebOS 2019 TV, only on different contents - weirdly (the contents triggering
the issue on more recent TV are different from the one triggering it on
older ones).

We're in the process of exchanging with LG on those find but for now, I
chose to just activate the work-around, which may lead to higher loading
time on LG TV, to all kinds of LG TVs.
peaBerberian added a commit that referenced this pull request Dec 1, 2022
In the last release, we added a work-around a WebOS (LG TVs) issue [#1175]
where playing multiple times the same encrypted content could lead to
infinite rebuffering.

We thought at the beginning that the issue was only reproducible on
WebOS for 2021 and 2022 TV models. However, we recently reproduced it on a
WebOS 2019 TV, only on different contents - weirdly (the contents triggering
the issue on more recent TV are different from the one triggering it on
older ones).

We're in the process of exchanging with LG on those find but for now, I
chose to just activate the work-around, which may lead to higher loading
time on LG TV, to all kinds of LG TVs.
@peaBerberian peaBerberian deleted the fix/lg-rezap-doesnt-work branch July 6, 2023 12:05
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) Compatibility Relative to the RxPlayer's compatibility with various devices and environments DRM Relative to DRM (EncryptedMediaExtensions)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant