diff --git a/core/api/current.txt b/core/api/current.txt index 86fbcee7ffad7..29f2ed7868679 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -22549,6 +22549,7 @@ package android.media { field public static final String FEATURE_DynamicTimestamp = "dynamic-timestamp"; field public static final String FEATURE_EncodingStatistics = "encoding-statistics"; field public static final String FEATURE_FrameParsing = "frame-parsing"; + field public static final String FEATURE_HdrEditing = "hdr-editing"; field public static final String FEATURE_IntraRefresh = "intra-refresh"; field public static final String FEATURE_LowLatency = "low-latency"; field public static final String FEATURE_MultipleFrames = "multiple-frames"; diff --git a/media/java/android/media/MediaCodecInfo.java b/media/java/android/media/MediaCodecInfo.java index e75df1d9b6913..94d1bc9aa0978 100644 --- a/media/java/android/media/MediaCodecInfo.java +++ b/media/java/android/media/MediaCodecInfo.java @@ -614,6 +614,24 @@ public final class MediaCodecInfo { @SuppressLint("AllUpper") // for consistency with other FEATURE_* constants public static final String FEATURE_EncodingStatistics = "encoding-statistics"; + /** + * video encoder only: codec supports HDR editing. + *

+ * HDR editing support means that the codec accepts 10-bit HDR + * input surface, and it is capable of generating any HDR + * metadata required from both YUV and RGB input when the + * metadata is not present. This feature is only meaningful when + * using an HDR capable profile (and 10-bit HDR input). + *

+ * This feature implies that the codec is capable of encoding at + * least one HDR format, and that it supports RGBA_1010102 as + * well as P010, and optionally RGBA_FP16 input formats, and + * that the encoder can generate HDR metadata for all supported + * HDR input formats. + */ + @SuppressLint("AllUpper") + public static final String FEATURE_HdrEditing = "hdr-editing"; + /** * Query codec feature capabilities. *

@@ -654,6 +672,7 @@ public final class MediaCodecInfo { new Feature(FEATURE_DynamicTimestamp, (1 << 2), false), new Feature(FEATURE_QpBounds, (1 << 3), false), new Feature(FEATURE_EncodingStatistics, (1 << 4), false), + new Feature(FEATURE_HdrEditing, (1 << 5), false), // feature to exclude codec from REGULAR codec list new Feature(FEATURE_SpecialCodec, (1 << 30), false, true), };