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