disable transfer colors in DefaultShaderProgram.createApplyingOetf
PiperOrigin-RevId: 522347729
This commit is contained in:
parent
24ca6828eb
commit
54ebfa986a
@ -294,7 +294,8 @@ import java.util.List;
|
||||
Context context,
|
||||
List<GlMatrixTransformation> matrixTransformations,
|
||||
List<RgbMatrix> rgbMatrices,
|
||||
ColorInfo outputColorInfo)
|
||||
ColorInfo outputColorInfo,
|
||||
boolean enableColorTransfers)
|
||||
throws VideoFrameProcessingException {
|
||||
boolean outputIsHdr = ColorInfo.isTransferHdr(outputColorInfo);
|
||||
String vertexShaderFilePath =
|
||||
@ -303,6 +304,9 @@ import java.util.List;
|
||||
outputIsHdr
|
||||
? FRAGMENT_SHADER_OETF_ES3_PATH
|
||||
: FRAGMENT_SHADER_TRANSFORMATION_SDR_OETF_ES2_PATH;
|
||||
if (!enableColorTransfers) {
|
||||
fragmentShaderFilePath = FRAGMENT_SHADER_TRANSFORMATION_PATH;
|
||||
}
|
||||
GlProgram glProgram = createGlProgram(context, vertexShaderFilePath, fragmentShaderFilePath);
|
||||
|
||||
@C.ColorTransfer int outputColorTransfer = outputColorInfo.colorTransfer;
|
||||
@ -310,8 +314,9 @@ import java.util.List;
|
||||
checkArgument(
|
||||
outputColorTransfer == C.COLOR_TRANSFER_HLG
|
||||
|| outputColorTransfer == C.COLOR_TRANSFER_ST2084);
|
||||
checkArgument(enableColorTransfers);
|
||||
glProgram.setIntUniform("uOutputColorTransfer", outputColorTransfer);
|
||||
} else {
|
||||
} else if (enableColorTransfers) {
|
||||
checkArgument(
|
||||
outputColorTransfer == C.COLOR_TRANSFER_SDR
|
||||
|| outputColorTransfer == C.COLOR_TRANSFER_GAMMA_2_2);
|
||||
|
@ -509,7 +509,11 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
} else {
|
||||
defaultShaderProgram =
|
||||
DefaultShaderProgram.createApplyingOetf(
|
||||
context, expandedMatrixTransformations, rgbMatrices, outputColorInfo);
|
||||
context,
|
||||
expandedMatrixTransformations,
|
||||
rgbMatrices,
|
||||
outputColorInfo,
|
||||
enableColorTransfers);
|
||||
}
|
||||
|
||||
defaultShaderProgram.setTextureTransformMatrix(textureTransformMatrix);
|
||||
@ -527,12 +531,16 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
.maybeRenderToSurfaceView(
|
||||
() -> {
|
||||
GlUtil.clearOutputFrame();
|
||||
@C.ColorTransfer
|
||||
int configuredColorTransfer = defaultShaderProgram.getOutputColorTransfer();
|
||||
defaultShaderProgram.setOutputColorTransfer(
|
||||
debugSurfaceViewWrapper.outputColorTransfer);
|
||||
defaultShaderProgram.drawFrame(inputTexture.texId, presentationTimeUs);
|
||||
defaultShaderProgram.setOutputColorTransfer(configuredColorTransfer);
|
||||
if (enableColorTransfers) {
|
||||
@C.ColorTransfer
|
||||
int configuredColorTransfer = defaultShaderProgram.getOutputColorTransfer();
|
||||
defaultShaderProgram.setOutputColorTransfer(
|
||||
debugSurfaceViewWrapper.outputColorTransfer);
|
||||
defaultShaderProgram.drawFrame(inputTexture.texId, presentationTimeUs);
|
||||
defaultShaderProgram.setOutputColorTransfer(configuredColorTransfer);
|
||||
} else {
|
||||
defaultShaderProgram.drawFrame(inputTexture.texId, presentationTimeUs);
|
||||
}
|
||||
},
|
||||
glObjectsProvider);
|
||||
} catch (VideoFrameProcessingException | GlUtil.GlException e) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user