From 0f45570302ceee406dcc373eeaf207d982150ea0 Mon Sep 17 00:00:00 2001 From: huangdarwin Date: Mon, 16 Jan 2023 14:14:33 +0000 Subject: [PATCH] HDR: Use human-readable values for ColorInfo.toString(). This should make debugging much easier as values will be more human-readable. Before this CL, one needed to reference MediaFormatUtil to check the colorSpace/colorTransfer/colorRange values and make sure values were as expected. PiperOrigin-RevId: 502367147 --- .../androidx/media3/common/ColorInfo.java | 56 ++++++++++++++++++- 1 file changed, 53 insertions(+), 3 deletions(-) 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 bdcadacffc..24ba81ecdb 100644 --- a/libraries/common/src/main/java/androidx/media3/common/ColorInfo.java +++ b/libraries/common/src/main/java/androidx/media3/common/ColorInfo.java @@ -256,16 +256,66 @@ public final class ColorInfo implements Bundleable { @Override public String toString() { return "ColorInfo(" - + colorSpace + + colorSpaceToString(colorSpace) + ", " - + colorRange + + colorRangeToString(colorRange) + ", " - + colorTransfer + + colorTransferToString(colorTransfer) + ", " + (hdrStaticInfo != null) + ")"; } + private static String colorSpaceToString(@C.ColorSpace int colorSpace) { + // LINT.IfChange(color_space) + switch (colorSpace) { + case Format.NO_VALUE: + return "Unset color space"; + case C.COLOR_SPACE_BT601: + return "BT601"; + case C.COLOR_SPACE_BT709: + return "BT709"; + case C.COLOR_SPACE_BT2020: + return "BT2020"; + default: + return "Undefined color space"; + } + } + + private static String colorTransferToString(@C.ColorTransfer int colorTransfer) { + // LINT.IfChange(color_transfer) + switch (colorTransfer) { + case Format.NO_VALUE: + return "Unset color transfer"; + case C.COLOR_TRANSFER_LINEAR: + return "Linear"; + case C.COLOR_TRANSFER_SDR: + return "SDR SMPTE 170M"; + case C.COLOR_TRANSFER_GAMMA_2_2: + return "Gamma 2.2"; + case C.COLOR_TRANSFER_ST2084: + return "ST2084 PQ"; + case C.COLOR_TRANSFER_HLG: + return "HLG"; + default: + return "Undefined color transfer"; + } + } + + private static String colorRangeToString(@C.ColorRange int colorRange) { + // LINT.IfChange(color_range) + switch (colorRange) { + case Format.NO_VALUE: + return "Unset color range"; + case C.COLOR_RANGE_LIMITED: + return "Limited range"; + case C.COLOR_RANGE_FULL: + return "Full range"; + default: + return "Undefined color range"; + } + } + @Override public int hashCode() { if (hashCode == 0) {