From bca10c51aebe6d34d1cb5351bc8c808b1592a82b Mon Sep 17 00:00:00 2001 From: Lajos Molnar Date: Thu, 6 Jan 2022 12:42:17 -0800 Subject: [PATCH] MediaCodecInfo: add FEATURE_HdrEditing FEATURE_HdrEditing signals that a video encoder can generate HDR metadata if it is missing from the YUV or RGB input. Bug: 197651595 Test: build Change-Id: If3a9648e204fe3efbd565521227b5c01d3ef7d5a --- core/api/current.txt | 1 + media/java/android/media/MediaCodecInfo.java | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) 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), };