-
Notifications
You must be signed in to change notification settings - Fork 6k
Description
This is a follow-up to issue 677. The DummySurface.java file was created in response to that issue (now closed).
EXT_protected_content doesn't explicitly support pbuffers and EglCreatePbufferSurface. That functionality was added as part of EXT_protected_surface.
The SECURE_SUPPORTED boolean should check for:
SECURE_SUPPORTED = extensions.contains("EGL_EXT_protected_content") && extensions.contains("EGL_EXT_protected_surface");
Some devices, like Nvidia Shield TV, support EXT_protected_content but not yet EXT_protected_surface. The DummySurface initInternal routine asserts.
Alternatives to using a PbufferSurface would be a temporary Window or Pixmap or make use of https://www.khronos.org/registry/EGL/extensions/KHR/EGL_KHR_surfaceless_context.txt
The issue can be reproduced while running the Google GTS (Google Mobile Services Test Suite) version 5.0_r2. The gts_tradefed command for the specific failure is:
run gts -m GtsExoPlayerTestCases -t com.google.android.exoplayer.gts.DashTest#testWidevineH264AdaptiveWithRendererDisabling --logcat-on-failure
The DummySurface code doesn't appear to be hit on the current release build for the Nvidia Shield TV. But an pre-release beta of the next version (for Android O) does and the asserts cause GTS to fail.
I cannot tell what version of ExoPlayer GTS-5.0R2 uses.