diff --git a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java index 32417f926a..1bb19178fa 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java @@ -211,7 +211,7 @@ public final class GlUtil { if (Util.areEqual(EGL14.eglGetCurrentContext(), EGL14.EGL_NO_CONTEXT)) { // Create a placeholder context and make it current to allow calling GLES20.glGetString(). try { - EGLDisplay eglDisplay = createEglDisplay(); + EGLDisplay eglDisplay = getDefaultEglDisplay(); EGLContext eglContext = createEglContext(eglDisplay); createFocusedPlaceholderEglSurface(eglContext, eglDisplay); glExtensions = GLES20.glGetString(GLES20.GL_EXTENSIONS); @@ -235,8 +235,8 @@ public final class GlUtil { /** Returns an initialized default {@link EGLDisplay}. */ @RequiresApi(17) - public static EGLDisplay createEglDisplay() throws GlException { - return Api17.createEglDisplay(); + public static EGLDisplay getDefaultEglDisplay() throws GlException { + return Api17.getDefaultEglDisplay(); } /** @@ -424,8 +424,14 @@ public final class GlUtil { } } - /** Fills the pixels in the current output render target with (r=0, g=0, b=0, a=0). */ - public static void clearOutputFrame() throws GlException { + /** + * Fills the pixels in the current output render target buffers with (r=0, g=0, b=0, a=0). + * + *
Buffers can be focused using {@link #focusEglSurface} and {@link + * #focusFramebufferUsingCurrentContext}, {@link #focusFramebuffer}, and {@link + * #createFocusedPlaceholderEglSurface}. + */ + public static void clearFocusedBuffers() throws GlException { GLES20.glClearColor(/* red= */ 0, /* green= */ 0, /* blue= */ 0, /* alpha= */ 0); GLES20.glClearDepthf(1.0f); GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT); @@ -672,7 +678,7 @@ public final class GlUtil { private Api17() {} @DoNotInline - public static EGLDisplay createEglDisplay() throws GlException { + public static EGLDisplay getDefaultEglDisplay() throws GlException { EGLDisplay eglDisplay = EGL14.eglGetDisplay(EGL14.EGL_DEFAULT_DISPLAY); checkGlException(!eglDisplay.equals(EGL14.EGL_NO_DISPLAY), "No EGL display."); checkGlException( diff --git a/libraries/effect/src/androidTest/java/androidx/media3/effect/ContrastPixelTest.java b/libraries/effect/src/androidTest/java/androidx/media3/effect/ContrastPixelTest.java index 685e9f5c91..c363ba46cf 100644 --- a/libraries/effect/src/androidTest/java/androidx/media3/effect/ContrastPixelTest.java +++ b/libraries/effect/src/androidTest/java/androidx/media3/effect/ContrastPixelTest.java @@ -78,7 +78,7 @@ public class ContrastPixelTest { @Before public void createGlObjects() throws Exception { - eglDisplay = GlUtil.createEglDisplay(); + eglDisplay = GlUtil.getDefaultEglDisplay(); eglContext = GlUtil.createEglContext(eglDisplay); placeholderEglSurface = GlUtil.createFocusedPlaceholderEglSurface(eglContext, eglDisplay); diff --git a/libraries/effect/src/androidTest/java/androidx/media3/effect/CropPixelTest.java b/libraries/effect/src/androidTest/java/androidx/media3/effect/CropPixelTest.java index 01ef711fb0..90bb08180c 100644 --- a/libraries/effect/src/androidTest/java/androidx/media3/effect/CropPixelTest.java +++ b/libraries/effect/src/androidTest/java/androidx/media3/effect/CropPixelTest.java @@ -71,7 +71,7 @@ public final class CropPixelTest { @Before public void createGlObjects() throws IOException, GlUtil.GlException { - eglDisplay = GlUtil.createEglDisplay(); + eglDisplay = GlUtil.getDefaultEglDisplay(); eglContext = GlUtil.createEglContext(eglDisplay); placeholderEglSurface = GlUtil.createFocusedPlaceholderEglSurface(eglContext, eglDisplay); diff --git a/libraries/effect/src/androidTest/java/androidx/media3/effect/DefaultShaderProgramPixelTest.java b/libraries/effect/src/androidTest/java/androidx/media3/effect/DefaultShaderProgramPixelTest.java index 4f6c00cc11..722975bd9f 100644 --- a/libraries/effect/src/androidTest/java/androidx/media3/effect/DefaultShaderProgramPixelTest.java +++ b/libraries/effect/src/androidTest/java/androidx/media3/effect/DefaultShaderProgramPixelTest.java @@ -71,7 +71,7 @@ public final class DefaultShaderProgramPixelTest { @Before public void createGlObjects() throws IOException, GlUtil.GlException { - eglDisplay = GlUtil.createEglDisplay(); + eglDisplay = GlUtil.getDefaultEglDisplay(); eglContext = GlUtil.createEglContext(eglDisplay); EGLSurface placeholderEglSurface = GlUtil.createFocusedPlaceholderEglSurface(eglContext, eglDisplay); diff --git a/libraries/effect/src/androidTest/java/androidx/media3/effect/DefaultVideoFrameProcessorVideoFrameRenderingTest.java b/libraries/effect/src/androidTest/java/androidx/media3/effect/DefaultVideoFrameProcessorVideoFrameRenderingTest.java index 146b1a4f91..fdb8d3a426 100644 --- a/libraries/effect/src/androidTest/java/androidx/media3/effect/DefaultVideoFrameProcessorVideoFrameRenderingTest.java +++ b/libraries/effect/src/androidTest/java/androidx/media3/effect/DefaultVideoFrameProcessorVideoFrameRenderingTest.java @@ -387,7 +387,7 @@ public final class DefaultVideoFrameProcessorVideoFrameRenderingTest { int fboId = GlUtil.createFboForTexture(texId); blankTexture = new GlTextureInfo(texId, fboId, /* rboId= */ C.INDEX_UNSET, WIDTH, HEIGHT); GlUtil.focusFramebufferUsingCurrentContext(fboId, WIDTH, HEIGHT); - GlUtil.clearOutputFrame(); + GlUtil.clearFocusedBuffers(); } catch (GlUtil.GlException e) { throw new VideoFrameProcessingException(e); } diff --git a/libraries/effect/src/androidTest/java/androidx/media3/effect/HslAdjustmentPixelTest.java b/libraries/effect/src/androidTest/java/androidx/media3/effect/HslAdjustmentPixelTest.java index 1451cef3fc..914813ee6d 100644 --- a/libraries/effect/src/androidTest/java/androidx/media3/effect/HslAdjustmentPixelTest.java +++ b/libraries/effect/src/androidTest/java/androidx/media3/effect/HslAdjustmentPixelTest.java @@ -83,7 +83,7 @@ public final class HslAdjustmentPixelTest { @Before public void createGlObjects() throws IOException, GlUtil.GlException { - eglDisplay = GlUtil.createEglDisplay(); + eglDisplay = GlUtil.getDefaultEglDisplay(); eglContext = GlUtil.createEglContext(eglDisplay); placeholderEglSurface = GlUtil.createFocusedPlaceholderEglSurface(eglContext, eglDisplay); diff --git a/libraries/effect/src/androidTest/java/androidx/media3/effect/OverlayShaderProgramPixelTest.java b/libraries/effect/src/androidTest/java/androidx/media3/effect/OverlayShaderProgramPixelTest.java index 77dd4a7131..43a4a68990 100644 --- a/libraries/effect/src/androidTest/java/androidx/media3/effect/OverlayShaderProgramPixelTest.java +++ b/libraries/effect/src/androidTest/java/androidx/media3/effect/OverlayShaderProgramPixelTest.java @@ -90,7 +90,7 @@ public class OverlayShaderProgramPixelTest { @Before public void createGlObjects() throws IOException, GlUtil.GlException { - eglDisplay = GlUtil.createEglDisplay(); + eglDisplay = GlUtil.getDefaultEglDisplay(); eglContext = GlUtil.createEglContext(eglDisplay); placeholderEglSurface = GlUtil.createFocusedPlaceholderEglSurface(eglContext, eglDisplay); diff --git a/libraries/effect/src/androidTest/java/androidx/media3/effect/PresentationPixelTest.java b/libraries/effect/src/androidTest/java/androidx/media3/effect/PresentationPixelTest.java index 71d8bc5f39..55418e8249 100644 --- a/libraries/effect/src/androidTest/java/androidx/media3/effect/PresentationPixelTest.java +++ b/libraries/effect/src/androidTest/java/androidx/media3/effect/PresentationPixelTest.java @@ -80,7 +80,7 @@ public final class PresentationPixelTest { @Before public void createGlObjects() throws IOException, GlUtil.GlException { - eglDisplay = GlUtil.createEglDisplay(); + eglDisplay = GlUtil.getDefaultEglDisplay(); eglContext = GlUtil.createEglContext(eglDisplay); placeholderEglSurface = GlUtil.createFocusedPlaceholderEglSurface(eglContext, eglDisplay); diff --git a/libraries/effect/src/androidTest/java/androidx/media3/effect/RgbAdjustmentPixelTest.java b/libraries/effect/src/androidTest/java/androidx/media3/effect/RgbAdjustmentPixelTest.java index aaf4762038..2bd5a55242 100644 --- a/libraries/effect/src/androidTest/java/androidx/media3/effect/RgbAdjustmentPixelTest.java +++ b/libraries/effect/src/androidTest/java/androidx/media3/effect/RgbAdjustmentPixelTest.java @@ -77,7 +77,7 @@ public final class RgbAdjustmentPixelTest { @Before public void createGlObjects() throws IOException, GlUtil.GlException { - eglDisplay = GlUtil.createEglDisplay(); + eglDisplay = GlUtil.getDefaultEglDisplay(); eglContext = GlUtil.createEglContext(eglDisplay); placeholderEglSurface = GlUtil.createFocusedPlaceholderEglSurface(eglContext, eglDisplay); diff --git a/libraries/effect/src/androidTest/java/androidx/media3/effect/RgbFilterPixelTest.java b/libraries/effect/src/androidTest/java/androidx/media3/effect/RgbFilterPixelTest.java index 86a5efde78..a44ddde930 100644 --- a/libraries/effect/src/androidTest/java/androidx/media3/effect/RgbFilterPixelTest.java +++ b/libraries/effect/src/androidTest/java/androidx/media3/effect/RgbFilterPixelTest.java @@ -72,7 +72,7 @@ public final class RgbFilterPixelTest { @Before public void createGlObjects() throws IOException, GlUtil.GlException { - eglDisplay = GlUtil.createEglDisplay(); + eglDisplay = GlUtil.getDefaultEglDisplay(); eglContext = GlUtil.createEglContext(eglDisplay); placeholderEglSurface = GlUtil.createFocusedPlaceholderEglSurface(eglContext, eglDisplay); diff --git a/libraries/effect/src/androidTest/java/androidx/media3/effect/SingleColorLutPixelTest.java b/libraries/effect/src/androidTest/java/androidx/media3/effect/SingleColorLutPixelTest.java index f6261d8cfb..439d2a4616 100644 --- a/libraries/effect/src/androidTest/java/androidx/media3/effect/SingleColorLutPixelTest.java +++ b/libraries/effect/src/androidTest/java/androidx/media3/effect/SingleColorLutPixelTest.java @@ -77,7 +77,7 @@ public class SingleColorLutPixelTest { @Before public void createGlObjects() throws Exception { - eglDisplay = GlUtil.createEglDisplay(); + eglDisplay = GlUtil.getDefaultEglDisplay(); eglContext = GlUtil.createEglContext(eglDisplay); placeholderEglSurface = GlUtil.createFocusedPlaceholderEglSurface(eglContext, eglDisplay); diff --git a/libraries/effect/src/main/java/androidx/media3/effect/BaseGlShaderProgram.java b/libraries/effect/src/main/java/androidx/media3/effect/BaseGlShaderProgram.java index 9bb384c36b..35e2193e4a 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/BaseGlShaderProgram.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/BaseGlShaderProgram.java @@ -140,7 +140,7 @@ public abstract class BaseGlShaderProgram implements GlShaderProgram { // Copy frame to fbo. GlUtil.focusFramebufferUsingCurrentContext( outputTexture.getFboId(), outputTexture.getWidth(), outputTexture.getHeight()); - GlUtil.clearOutputFrame(); + GlUtil.clearFocusedBuffers(); drawFrame(inputTexture.getTexId(), presentationTimeUs); inputListener.onInputFrameProcessed(inputTexture); outputListener.onOutputFrameAvailable(outputTexture, presentationTimeUs); diff --git a/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoFrameProcessor.java b/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoFrameProcessor.java index e618243a4b..e0bd45a3fb 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoFrameProcessor.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/DefaultVideoFrameProcessor.java @@ -607,7 +607,7 @@ public final class DefaultVideoFrameProcessor implements VideoFrameProcessor { throws GlUtil.GlException, VideoFrameProcessingException { checkState(Thread.currentThread().getName().equals(THREAD_NAME)); - EGLDisplay eglDisplay = GlUtil.createEglDisplay(); + EGLDisplay eglDisplay = GlUtil.getDefaultEglDisplay(); int[] configAttributes = ColorInfo.isTransferHdr(outputColorInfo) ? GlUtil.EGL_CONFIG_ATTRIBUTES_RGBA_1010102 diff --git a/libraries/effect/src/main/java/androidx/media3/effect/FinalShaderProgramWrapper.java b/libraries/effect/src/main/java/androidx/media3/effect/FinalShaderProgramWrapper.java index 512b8e7d97..fa1994bf1c 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/FinalShaderProgramWrapper.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/FinalShaderProgramWrapper.java @@ -364,7 +364,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; outputEglSurface, outputSurfaceInfo.width, outputSurfaceInfo.height); - GlUtil.clearOutputFrame(); + GlUtil.clearFocusedBuffers(); defaultShaderProgram.drawFrame(inputTexture.getTexId(), presentationTimeUs); EGLExt.eglPresentationTimeANDROID( @@ -383,7 +383,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; outputTextureTimestamps.add(presentationTimeUs); GlUtil.focusFramebufferUsingCurrentContext( outputTexture.getFboId(), outputTexture.getWidth(), outputTexture.getHeight()); - GlUtil.clearOutputFrame(); + GlUtil.clearFocusedBuffers(); checkNotNull(defaultShaderProgram).drawFrame(inputTexture.getTexId(), presentationTimeUs); // TODO(b/262694346): If Compositor's VFPs all use the same context, media3 should be able to // avoid calling glFinish, and require the onTextureRendered listener to decide whether to @@ -529,7 +529,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; checkNotNull(debugSurfaceViewWrapper) .maybeRenderToSurfaceView( () -> { - GlUtil.clearOutputFrame(); + GlUtil.clearFocusedBuffers(); if (enableColorTransfers) { @C.ColorTransfer int configuredColorTransfer = defaultShaderProgram.getOutputColorTransfer(); diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java index e2e4dc651c..400604c120 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/AndroidTestUtil.java @@ -559,7 +559,7 @@ public final class AndroidTestUtil { * {@link EGLContext}. */ public static EGLContext createOpenGlObjects() throws GlUtil.GlException { - EGLDisplay eglDisplay = GlUtil.createEglDisplay(); + EGLDisplay eglDisplay = GlUtil.getDefaultEglDisplay(); int[] configAttributes = GlUtil.EGL_CONFIG_ATTRIBUTES_RGBA_8888; GlObjectsProvider glObjectsProvider = new DefaultGlObjectsProvider(/* sharedEglContext= */ null);