From 5d6ffaaf5576fd83b039ffc32b4be1aef594bafc Mon Sep 17 00:00:00 2001 From: tofunmi Date: Wed, 5 Apr 2023 11:14:04 +0100 Subject: [PATCH] Fix HDR effect pipeline NPE in toneMap_hlgFrame_matchesGoldenFile and toneMap_pqFrame_matchesGoldenFile was created because a uEnableColorTransfer uniform was being created on the HDR path, when HDR shader files don't have this uniform. (they don't support disable color transfers right now) Fix: only create the uniform when input is SDR. manually tested on failing tests PiperOrigin-RevId: 522002603 --- .../main/java/androidx/media3/effect/DefaultShaderProgram.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/effect/src/main/java/androidx/media3/effect/DefaultShaderProgram.java b/libraries/effect/src/main/java/androidx/media3/effect/DefaultShaderProgram.java index e87f671822..3950b1a729 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/DefaultShaderProgram.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/DefaultShaderProgram.java @@ -334,7 +334,6 @@ import java.util.List; ColorInfo outputColorInfo, boolean enableColorTransfers) throws VideoFrameProcessingException { - glProgram.setIntUniform("uEnableColorTransfer", enableColorTransfers ? GL_TRUE : GL_FALSE); boolean isInputTransferHdr = ColorInfo.isTransferHdr(inputColorInfo); @C.ColorTransfer int outputColorTransfer = outputColorInfo.colorTransfer; if (isInputTransferHdr) { @@ -362,6 +361,7 @@ import java.util.List; outputColorTransfer != Format.NO_VALUE && outputColorTransfer != C.COLOR_TRANSFER_SDR); glProgram.setIntUniform("uOutputColorTransfer", outputColorTransfer); } else { + glProgram.setIntUniform("uEnableColorTransfer", enableColorTransfers ? GL_TRUE : GL_FALSE); checkArgument( outputColorInfo.colorSpace != C.COLOR_SPACE_BT2020, "Converting from SDR to HDR is not supported.");