diff --git a/libraries/common/src/main/java/androidx/media3/common/ColorInfo.java b/libraries/common/src/main/java/androidx/media3/common/ColorInfo.java index b1ee267326..aae29250d1 100644 --- a/libraries/common/src/main/java/androidx/media3/common/ColorInfo.java +++ b/libraries/common/src/main/java/androidx/media3/common/ColorInfo.java @@ -90,7 +90,7 @@ public final class ColorInfo implements Bundleable { } /** Returns whether the {@code ColorInfo} uses an HDR {@link C.ColorTransfer}. */ - public static boolean isHdr(@Nullable ColorInfo colorInfo) { + public static boolean isTransferHdr(@Nullable ColorInfo colorInfo) { return colorInfo != null && colorInfo.colorTransfer != Format.NO_VALUE && colorInfo.colorTransfer != C.COLOR_TRANSFER_SDR; diff --git a/libraries/effect/src/main/java/androidx/media3/effect/FinalMatrixTransformationProcessorWrapper.java b/libraries/effect/src/main/java/androidx/media3/effect/FinalMatrixTransformationProcessorWrapper.java index 91f2e7e130..bd4ac4283a 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/FinalMatrixTransformationProcessorWrapper.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/FinalMatrixTransformationProcessorWrapper.java @@ -218,7 +218,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; SurfaceInfo outputSurfaceInfo = this.outputSurfaceInfo; @Nullable EGLSurface outputEglSurface = this.outputEglSurface; if (outputEglSurface == null) { - boolean colorInfoIsHdr = ColorInfo.isHdr(colorInfo); + boolean colorInfoIsHdr = ColorInfo.isTransferHdr(colorInfo); if (colorInfoIsHdr) { outputEglSurface = GlUtil.getEglSurfaceRgba1010102(eglDisplay, outputSurfaceInfo.surface); } else { diff --git a/libraries/effect/src/main/java/androidx/media3/effect/GlEffectsFrameProcessor.java b/libraries/effect/src/main/java/androidx/media3/effect/GlEffectsFrameProcessor.java index e8f3408694..9f5db2a4ac 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/GlEffectsFrameProcessor.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/GlEffectsFrameProcessor.java @@ -119,7 +119,7 @@ public final class GlEffectsFrameProcessor implements FrameProcessor { // TODO(b/237674316): Delay initialization of things requiring the colorInfo, to // configure based on the color info from the decoder output media format instead. - boolean useHdr = ColorInfo.isHdr(colorInfo); + boolean useHdr = ColorInfo.isTransferHdr(colorInfo); EGLDisplay eglDisplay = GlUtil.createEglDisplay(); EGLContext eglContext = useHdr @@ -197,7 +197,7 @@ public final class GlEffectsFrameProcessor implements FrameProcessor { sampleFromExternalTexture = false; } textureProcessorListBuilder.add( - glEffect.toGlTextureProcessor(context, ColorInfo.isHdr(colorInfo))); + glEffect.toGlTextureProcessor(context, ColorInfo.isTransferHdr(colorInfo))); } textureProcessorListBuilder.add( new FinalMatrixTransformationProcessorWrapper( diff --git a/libraries/effect/src/main/java/androidx/media3/effect/MatrixTransformationProcessor.java b/libraries/effect/src/main/java/androidx/media3/effect/MatrixTransformationProcessor.java index cb13d68851..e231a39fb1 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/MatrixTransformationProcessor.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/MatrixTransformationProcessor.java @@ -160,12 +160,12 @@ import java.util.Arrays; * the external texture. * @param opticalColorInfo The optical {@link ColorInfo}, only used to transform between color * spaces and transfers, when {@code inputOpticalColorsFromExternalTexture} or {@code - * outputOpticalColors} are {@code true}. If it {@link ColorInfo#isHdr(ColorInfo)}, + * outputOpticalColors} are {@code true}. If it {@link ColorInfo#isTransferHdr(ColorInfo)}, * intermediate {@link GlTextureProcessor} colors will be in linear RGB BT.2020. Otherwise, * these colors will be in gamma RGB BT.709. * @param outputOpticalColors If {@code true}, outputs {@code opticalColorInfo}. If {@code false}, * outputs intermediate colors of linear RGB BT.2020 if {@code opticalColorInfo} {@link - * ColorInfo#isHdr(ColorInfo)}, and gamma RGB BT.709 otherwise. + * ColorInfo#isTransferHdr(ColorInfo)}, and gamma RGB BT.709 otherwise. * @throws FrameProcessingException If a problem occurs while reading shader files or an OpenGL * operation fails or is unsupported. */ @@ -180,11 +180,11 @@ import java.util.Arrays; createGlProgram( context, inputOpticalColorsFromExternalTexture, - ColorInfo.isHdr(opticalColorInfo), + ColorInfo.isTransferHdr(opticalColorInfo), outputOpticalColors), matrixTransformations, - ColorInfo.isHdr(opticalColorInfo)); - if (!ColorInfo.isHdr(opticalColorInfo) || !inputOpticalColorsFromExternalTexture) { + ColorInfo.isTransferHdr(opticalColorInfo)); + if (!ColorInfo.isTransferHdr(opticalColorInfo) || !inputOpticalColorsFromExternalTexture) { return; } // TODO(b/227624622): Implement YUV to RGB conversions in COLOR_RANGE_LIMITED as well, using diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultEncoderFactory.java b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultEncoderFactory.java index 33f50445c6..d1364dcde3 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultEncoderFactory.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultEncoderFactory.java @@ -283,7 +283,7 @@ public final class DefaultEncoderFactory implements Codec.EncoderFactory { } MediaFormatUtil.maybeSetColorInfo(mediaFormat, encoderSupportedFormat.colorInfo); - if (Util.SDK_INT >= 31 && ColorInfo.isHdr(format.colorInfo)) { + if (Util.SDK_INT >= 31 && ColorInfo.isTransferHdr(format.colorInfo)) { if (EncoderUtil.getSupportedColorFormats(encoderInfo, mimeType) .contains(MediaCodecInfo.CodecCapabilities.COLOR_Format32bitABGR2101010)) { mediaFormat.setInteger( diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java index 00e5ed117f..2c4574e739 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java @@ -99,7 +99,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; return false; } Format inputFormat = checkNotNull(formatHolder.format); - if (SDK_INT < 31 && ColorInfo.isHdr(inputFormat.colorInfo)) { + if (SDK_INT < 31 && ColorInfo.isTransferHdr(inputFormat.colorInfo)) { throw TransformationException.createForCodec( new IllegalArgumentException("HDR editing not supported under API 31."), /* isVideo= */ true, diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java index d536e1add9..3bb4ea0cf7 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java @@ -156,8 +156,8 @@ import org.checkerframework.dataflow.qual.Pure; decodedWidth, decodedHeight, inputFormat.pixelWidthHeightRatio, streamOffsetUs)); boolean isToneMappingRequired = - ColorInfo.isHdr(inputFormat.colorInfo) - && !ColorInfo.isHdr(encoderWrapper.getSupportedInputColor()); + ColorInfo.isTransferHdr(inputFormat.colorInfo) + && !ColorInfo.isTransferHdr(encoderWrapper.getSupportedInputColor()); decoder = decoderFactory.createForVideoDecoding( inputFormat, frameProcessor.getInputSurface(), isToneMappingRequired); @@ -363,7 +363,8 @@ import org.checkerframework.dataflow.qual.Pure; transformationRequest.enableHdrEditing && !transformationRequest.enableRequestSdrToneMapping && !supportedEncoderNamesForHdrEditing.isEmpty(); - boolean isInputToneMapped = !isHdrEditingEnabled && ColorInfo.isHdr(inputFormat.colorInfo); + boolean isInputToneMapped = + !isHdrEditingEnabled && ColorInfo.isTransferHdr(inputFormat.colorInfo); if (isInputToneMapped) { // When tone-mapping HDR to SDR is enabled, assume we get BT.709 to avoid having the encoder // populate default color info, which depends on the resolution. @@ -413,7 +414,7 @@ import org.checkerframework.dataflow.qual.Pure; encoderFactory.createForVideoEncoding(requestedEncoderFormat, allowedOutputMimeTypes); Format encoderSupportedFormat = encoder.getConfigurationFormat(); - if (ColorInfo.isHdr(requestedEncoderFormat.colorInfo)) { + if (ColorInfo.isTransferHdr(requestedEncoderFormat.colorInfo)) { if (!requestedOutputMimeType.equals(encoderSupportedFormat.sampleMimeType)) { throw createEncodingException( new IllegalStateException("MIME type fallback unsupported with HDR editing"), @@ -425,8 +426,8 @@ import org.checkerframework.dataflow.qual.Pure; } } boolean isInputToneMapped = - ColorInfo.isHdr(inputFormat.colorInfo) - && !ColorInfo.isHdr(requestedEncoderFormat.colorInfo); + ColorInfo.isTransferHdr(inputFormat.colorInfo) + && !ColorInfo.isTransferHdr(requestedEncoderFormat.colorInfo); fallbackListener.onTransformationRequestFinalized( createFallbackTransformationRequest( transformationRequest,