From 92eb09fa6f4c6d94d866d934f6e9f9eece491954 Mon Sep 17 00:00:00 2001 From: hschlueter Date: Fri, 25 Mar 2022 15:44:18 +0000 Subject: [PATCH] Fix output viewport size of empty FrameProcessorChain. Since the output size can be overridden, the viewport should be ouputWidth/Height and NOT the ExternalCopyFrameProcessor's output size which matches the input size. PiperOrigin-RevId: 437256635 --- .../media3/transformer/FrameProcessorChain.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java index fd96d9c5a6..687dbeff19 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameProcessorChain.java @@ -398,18 +398,16 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; private void processFrame() { checkState(Thread.currentThread().equals(glThread)); - Size outputSize = inputSizes.get(0); if (frameProcessors.isEmpty()) { - GlUtil.focusEglSurface( - eglDisplay, eglContext, eglSurface, outputSize.getWidth(), outputSize.getHeight()); + GlUtil.focusEglSurface(eglDisplay, eglContext, eglSurface, outputWidth, outputHeight); } else { GlUtil.focusFramebuffer( eglDisplay, eglContext, eglSurface, framebuffers[0], - outputSize.getWidth(), - outputSize.getHeight()); + inputSizes.get(0).getWidth(), + inputSizes.get(0).getHeight()); } inputSurfaceTexture.updateTexImage(); inputSurfaceTexture.getTransformMatrix(textureTransformMatrix); @@ -418,7 +416,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; externalCopyFrameProcessor.updateProgramAndDraw(presentationTimeNs); for (int i = 0; i < frameProcessors.size() - 1; i++) { - outputSize = inputSizes.get(i + 1); + Size outputSize = inputSizes.get(i + 1); GlUtil.focusFramebuffer( eglDisplay, eglContext,