diff options
| -rw-r--r-- | AconfigFlags.bp | 1 | ||||
| -rw-r--r-- | core/api/current.txt | 1 | ||||
| -rw-r--r-- | media/java/android/media/MediaFormat.java | 31 | 
3 files changed, 33 insertions, 0 deletions
diff --git a/AconfigFlags.bp b/AconfigFlags.bp index 2ae72ef4e81c..c43aa7518f32 100644 --- a/AconfigFlags.bp +++ b/AconfigFlags.bp @@ -75,6 +75,7 @@ aconfig_srcjars = [      ":android.speech.flags-aconfig-java{.generated_srcjars}",      ":power_flags_lib{.generated_srcjars}",      ":android.content.flags-aconfig-java{.generated_srcjars}", +    ":aconfig_mediacodec_flags_java_lib{.generated_srcjars}",  ]  filegroup { diff --git a/core/api/current.txt b/core/api/current.txt index 6fe0769d3a1d..98b326f2e6d7 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -23342,6 +23342,7 @@ package android.media {      field public static final String KEY_HDR10_PLUS_INFO = "hdr10-plus-info";      field public static final String KEY_HDR_STATIC_INFO = "hdr-static-info";      field public static final String KEY_HEIGHT = "height"; +    field @FlaggedApi("com.android.media.codec.flags.codec_importance") public static final String KEY_IMPORTANCE = "importance";      field public static final String KEY_INTRA_REFRESH_PERIOD = "intra-refresh-period";      field public static final String KEY_IS_ADTS = "is-adts";      field public static final String KEY_IS_AUTOSELECT = "is-autoselect"; diff --git a/media/java/android/media/MediaFormat.java b/media/java/android/media/MediaFormat.java index 46db77708521..587e35b4b1fc 100644 --- a/media/java/android/media/MediaFormat.java +++ b/media/java/android/media/MediaFormat.java @@ -16,6 +16,9 @@  package android.media; +import static com.android.media.codec.flags.Flags.FLAG_CODEC_IMPORTANCE; + +import android.annotation.FlaggedApi;  import android.annotation.IntDef;  import android.annotation.NonNull;  import android.annotation.Nullable; @@ -1635,6 +1638,34 @@ public final class MediaFormat {       */      public static final String KEY_ALLOW_FRAME_DROP = "allow-frame-drop"; +    /** +     * A key describing the desired codec importance for the application. +     * <p> +     * The associated value is a positive integer including zero. +     * Higher value means lesser importance. +     * <p> +     * The resource manager may use the codec importance, along with other factors +     * when reclaiming codecs from an application. +     * The specifics of reclaim policy is device dependent, but specifying the codec importance, +     * will allow the resource manager to prioritize reclaiming less important codecs +     * (assigned higher values) from the (reclaim) requesting application first. +     * So, the codec importance is only relevant within the context of that application. +     * <p> +     * The codec importance can be set: +     * <ul> +     * <li>through {@link MediaCodec#configure}. </li> +     * <li>through {@link MediaCodec#setParameters} if the codec has been configured already, +     * which allows the users to change the codec importance multiple times. +     * </ul> +     * Any change/update in codec importance is guaranteed upon the completion of the function call +     * that sets the codec importance. So, in case of concurrent codec operations, +     * make sure to wait for the change in codec importance, before using another codec. +     * Note that unless specified, by default the codecs will have highest importance (of value 0). +     * +     */ +    @FlaggedApi(FLAG_CODEC_IMPORTANCE) +    public static final String KEY_IMPORTANCE = "importance"; +      /* package private */ MediaFormat(@NonNull Map<String, Object> map) {          mMap = map;      }  |