Add srgb color transfer
PiperOrigin-RevId: 525467798
This commit is contained in:
parent
9406410c48
commit
aa0d7d7339
@ -1111,9 +1111,9 @@ public final class C {
|
||||
|
||||
// LINT.IfChange(color_transfer)
|
||||
/**
|
||||
* Video color transfer characteristics. One of {@link Format#NO_VALUE}, {@link
|
||||
* #COLOR_TRANSFER_LINEAR}, {@link #COLOR_TRANSFER_SDR}, {@link #COLOR_TRANSFER_GAMMA_2_2} {@link
|
||||
* #COLOR_TRANSFER_ST2084} or {@link #COLOR_TRANSFER_HLG}.
|
||||
* Video/image color transfer characteristics. One of {@link Format#NO_VALUE}, {@link
|
||||
* #COLOR_TRANSFER_LINEAR}, {@link #COLOR_TRANSFER_SDR}, {@link #COLOR_TRANSFER_SRGB}, {@link
|
||||
* #COLOR_TRANSFER_GAMMA_2_2}, {@link #COLOR_TRANSFER_ST2084} or {@link #COLOR_TRANSFER_HLG}.
|
||||
*/
|
||||
@UnstableApi
|
||||
@Documented
|
||||
@ -1123,6 +1123,7 @@ public final class C {
|
||||
Format.NO_VALUE,
|
||||
COLOR_TRANSFER_LINEAR,
|
||||
COLOR_TRANSFER_SDR,
|
||||
COLOR_TRANSFER_SRGB,
|
||||
COLOR_TRANSFER_GAMMA_2_2,
|
||||
COLOR_TRANSFER_ST2084,
|
||||
COLOR_TRANSFER_HLG
|
||||
@ -1132,6 +1133,13 @@ public final class C {
|
||||
@UnstableApi public static final int COLOR_TRANSFER_LINEAR = MediaFormat.COLOR_TRANSFER_LINEAR;
|
||||
/** See {@link MediaFormat#COLOR_TRANSFER_SDR_VIDEO}. The SMPTE 170M transfer function. */
|
||||
@UnstableApi public static final int COLOR_TRANSFER_SDR = MediaFormat.COLOR_TRANSFER_SDR_VIDEO;
|
||||
/**
|
||||
* See {@link android.hardware.DataSpace#TRANSFER_SRGB}. The standard RGB transfer function, used
|
||||
* for some SDR use-cases like image input.
|
||||
*/
|
||||
// Value sourced from ordering here:
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/native/headers/media_plugin/media/hardware/VideoAPI.h;drc=55e9bd7c487ee235631f302ab8626776547ac913;l=138.
|
||||
@UnstableApi public static final int COLOR_TRANSFER_SRGB = 2;
|
||||
/**
|
||||
* See {@link android.hardware.DataSpace#TRANSFER_GAMMA2_2}. The Gamma 2.2 transfer function, used
|
||||
* for some SDR use-cases like tone-mapping.
|
||||
|
@ -130,6 +130,17 @@ public final class ColorInfo implements Bundleable {
|
||||
C.COLOR_TRANSFER_SDR,
|
||||
/* hdrStaticInfo= */ null);
|
||||
|
||||
/**
|
||||
* Color info representing SDR sRGB in accordance with {@link
|
||||
* android.hardware.DataSpace#DATASPACE_SRGB}, which is a common SDR image color format.
|
||||
*/
|
||||
public static final ColorInfo SRGB_FULL =
|
||||
new ColorInfo.Builder()
|
||||
.setColorSpace(C.COLOR_SPACE_BT709)
|
||||
.setColorRange(C.COLOR_RANGE_FULL)
|
||||
.setColorTransfer(C.COLOR_TRANSFER_SRGB)
|
||||
.build();
|
||||
|
||||
/**
|
||||
* Returns the {@link C.ColorSpace} corresponding to the given ISO color primary code, as per
|
||||
* table A.7.21.1 in Rec. ITU-T T.832 (03/2009), or {@link Format#NO_VALUE} if no mapping can be
|
||||
@ -165,6 +176,10 @@ public final class ColorInfo implements Bundleable {
|
||||
case 6: // SMPTE 170M.
|
||||
case 7: // SMPTE 240M.
|
||||
return C.COLOR_TRANSFER_SDR;
|
||||
case 4:
|
||||
return C.COLOR_TRANSFER_GAMMA_2_2;
|
||||
case 13:
|
||||
return C.COLOR_TRANSFER_SRGB;
|
||||
case 16:
|
||||
return C.COLOR_TRANSFER_ST2084;
|
||||
case 18:
|
||||
@ -308,6 +323,8 @@ public final class ColorInfo implements Bundleable {
|
||||
return "Linear";
|
||||
case C.COLOR_TRANSFER_SDR:
|
||||
return "SDR SMPTE 170M";
|
||||
case C.COLOR_TRANSFER_SRGB:
|
||||
return "sRGB";
|
||||
case C.COLOR_TRANSFER_GAMMA_2_2:
|
||||
return "Gamma 2.2";
|
||||
case C.COLOR_TRANSFER_ST2084:
|
||||
|
@ -366,8 +366,8 @@ public final class MediaFormatUtil {
|
||||
/** Whether this is a valid {@link C.ColorTransfer} instance. */
|
||||
private static boolean isValidColorTransfer(int colorTransfer) {
|
||||
// LINT.IfChange(color_transfer)
|
||||
// C.COLOR_TRANSFER_GAMMA_2_2 isn't valid because MediaCodec, and hence MediaFormat, does not
|
||||
// support it.
|
||||
// C.COLOR_TRANSFER_GAMMA_2_2 & C.COLOR_TRANSFER_SRGB aren't valid because MediaCodec, and
|
||||
// hence MediaFormat, do not support them.
|
||||
return colorTransfer == C.COLOR_TRANSFER_LINEAR
|
||||
|| colorTransfer == C.COLOR_TRANSFER_SDR
|
||||
|| colorTransfer == C.COLOR_TRANSFER_ST2084
|
||||
|
Loading…
x
Reference in New Issue
Block a user