Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d7706942 authored by Jean-Michel Trivi's avatar Jean-Michel Trivi Committed by Android (Google) Code Review
Browse files

Merge "Definitions for IAMF profiles and MIME" into main

parents e0b0cf79 b23d4567
Loading
Loading
Loading
Loading
+13 −0
Original line number Original line Diff line number Diff line
@@ -23509,6 +23509,18 @@ package android.media {
    field public static final int HEVCProfileMain10HDR10 = 4096; // 0x1000
    field public static final int HEVCProfileMain10HDR10 = 4096; // 0x1000
    field public static final int HEVCProfileMain10HDR10Plus = 8192; // 0x2000
    field public static final int HEVCProfileMain10HDR10Plus = 8192; // 0x2000
    field public static final int HEVCProfileMainStill = 4; // 0x4
    field public static final int HEVCProfileMainStill = 4; // 0x4
    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int IAMFProfileBaseAac = 16908290; // 0x1020002
    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int IAMFProfileBaseEnhancedAac = 17039362; // 0x1040002
    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int IAMFProfileBaseEnhancedFlac = 17039364; // 0x1040004
    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int IAMFProfileBaseEnhancedOpus = 17039361; // 0x1040001
    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int IAMFProfileBaseEnhancedPcm = 17039368; // 0x1040008
    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int IAMFProfileBaseFlac = 16908292; // 0x1020004
    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int IAMFProfileBaseOpus = 16908289; // 0x1020001
    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int IAMFProfileBasePcm = 16908296; // 0x1020008
    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int IAMFProfileSimpleAac = 16842754; // 0x1010002
    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int IAMFProfileSimpleFlac = 16842756; // 0x1010004
    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int IAMFProfileSimpleOpus = 16842753; // 0x1010001
    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int IAMFProfileSimplePcm = 16842760; // 0x1010008
    field public static final int MPEG2LevelH14 = 2; // 0x2
    field public static final int MPEG2LevelH14 = 2; // 0x2
    field public static final int MPEG2LevelHL = 3; // 0x3
    field public static final int MPEG2LevelHL = 3; // 0x3
    field public static final int MPEG2LevelHP = 4; // 0x4
    field public static final int MPEG2LevelHP = 4; // 0x4
@@ -24206,6 +24218,7 @@ package android.media {
    field public static final String MIMETYPE_AUDIO_FLAC = "audio/flac";
    field public static final String MIMETYPE_AUDIO_FLAC = "audio/flac";
    field public static final String MIMETYPE_AUDIO_G711_ALAW = "audio/g711-alaw";
    field public static final String MIMETYPE_AUDIO_G711_ALAW = "audio/g711-alaw";
    field public static final String MIMETYPE_AUDIO_G711_MLAW = "audio/g711-mlaw";
    field public static final String MIMETYPE_AUDIO_G711_MLAW = "audio/g711-mlaw";
    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final String MIMETYPE_AUDIO_IAMF = "audio/iamf";
    field public static final String MIMETYPE_AUDIO_IEC61937 = "audio/x-iec61937";
    field public static final String MIMETYPE_AUDIO_IEC61937 = "audio/x-iec61937";
    field public static final String MIMETYPE_AUDIO_MPEG = "audio/mpeg";
    field public static final String MIMETYPE_AUDIO_MPEG = "audio/mpeg";
    field public static final String MIMETYPE_AUDIO_MPEGH_BL_L3 = "audio/mhm1.03";
    field public static final String MIMETYPE_AUDIO_MPEGH_BL_L3 = "audio/mhm1.03";
+136 −2
Original line number Original line Diff line number Diff line
@@ -16,14 +16,15 @@


package android.media;
package android.media;


import static android.media.Utils.intersectSortedDistinctRanges;
import static android.media.audio.Flags.FLAG_IAMF_DEFINITIONS_API;
import static android.media.Utils.sortDistinctRanges;
import static android.media.codec.Flags.FLAG_DYNAMIC_COLOR_ASPECTS;
import static android.media.codec.Flags.FLAG_DYNAMIC_COLOR_ASPECTS;
import static android.media.codec.Flags.FLAG_HLG_EDITING;
import static android.media.codec.Flags.FLAG_HLG_EDITING;
import static android.media.codec.Flags.FLAG_IN_PROCESS_SW_AUDIO_CODEC;
import static android.media.codec.Flags.FLAG_IN_PROCESS_SW_AUDIO_CODEC;
import static android.media.codec.Flags.FLAG_NULL_OUTPUT_SURFACE;
import static android.media.codec.Flags.FLAG_NULL_OUTPUT_SURFACE;
import static android.media.codec.Flags.FLAG_REGION_OF_INTEREST;
import static android.media.codec.Flags.FLAG_REGION_OF_INTEREST;
import static android.media.codec.Flags.FLAG_APV_SUPPORT;
import static android.media.codec.Flags.FLAG_APV_SUPPORT;
import static android.media.Utils.intersectSortedDistinctRanges;
import static android.media.Utils.sortDistinctRanges;
import static android.media.MediaCodec.GetFlag;
import static android.media.MediaCodec.GetFlag;


import android.annotation.FlaggedApi;
import android.annotation.FlaggedApi;
@@ -4758,6 +4759,139 @@ public final class MediaCodecInfo {
        @FlaggedApi(FLAG_APV_SUPPORT)
        @FlaggedApi(FLAG_APV_SUPPORT)
        public static final int APVLevel71Band3 = 0x200008;
        public static final int APVLevel71Band3 = 0x200008;


        // IAMF profiles are defined as the combination of the (listed from LSB to MSB):
        //  - audio codec (2 bytes)
        //  - profile (1 byte, offset 16)
        //  - specification version (1 byte, offset 24)
        private static final int IAMF_CODEC_OPUS = 0x1;
        private static final int IAMF_CODEC_AAC  = 0x1 << 1;
        private static final int IAMF_CODEC_FLAC = 0x1 << 2;
        private static final int IAMF_CODEC_PCM  = 0x1 << 3;
        private static final int IAMF_PROFILE_SIMPLE        = 0x1 << 16;
        private static final int IAMF_PROFILE_BASE          = 0x1 << 17;
        private static final int IAMF_PROFILE_BASE_ENHANCED = 0x1 << 18;
        private static final int IAMF_v1 = 0x1 << 24;
        /**
         * IAMF profile using the
         * <a href="https://aomediacodec.github.io/iamf/#profiles-simple">simple profile</a>
         * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a>
         * in OPUS.
         */
        @SuppressLint("AllUpper")
        @FlaggedApi(FLAG_IAMF_DEFINITIONS_API)
        public static final int IAMFProfileSimpleOpus =
                IAMF_v1 + IAMF_PROFILE_SIMPLE + IAMF_CODEC_OPUS;
        /**
         * IAMF profile using the
         * <a href="https://aomediacodec.github.io/iamf/#profiles-simple">simple profile</a>
         * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a>
         * in AAC.
         */
        @SuppressLint("AllUpper")
        @FlaggedApi(FLAG_IAMF_DEFINITIONS_API)
        public static final int IAMFProfileSimpleAac =
                IAMF_v1 + IAMF_PROFILE_SIMPLE + IAMF_CODEC_AAC;
        /**
         * IAMF profile using the
         * <a href="https://aomediacodec.github.io/iamf/#profiles-simple">simple profile</a>
         * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a>
         * in FLAC.
         */
        @SuppressLint("AllUpper")
        @FlaggedApi(FLAG_IAMF_DEFINITIONS_API)
        public static final int IAMFProfileSimpleFlac =
                IAMF_v1 + IAMF_PROFILE_SIMPLE + IAMF_CODEC_FLAC;
        /**
         * IAMF profile using the
         * <a href="https://aomediacodec.github.io/iamf/#profiles-simple">simple profile</a>
         * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a>
         * in PCM.
         */
        @SuppressLint("AllUpper")
        @FlaggedApi(FLAG_IAMF_DEFINITIONS_API)
        public static final int IAMFProfileSimplePcm =
                IAMF_v1 + IAMF_PROFILE_SIMPLE + IAMF_CODEC_PCM;
        /**
         * IAMF profile using the
         * <a href="https://aomediacodec.github.io/iamf/#profiles-base">base profile</a>
         * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a>
         * in OPUS.
         */
        @SuppressLint("AllUpper")
        @FlaggedApi(FLAG_IAMF_DEFINITIONS_API)
        public static final int IAMFProfileBaseOpus =
                IAMF_v1 + IAMF_PROFILE_BASE + IAMF_CODEC_OPUS;
        /**
         * IAMF profile using the
         * <a href="https://aomediacodec.github.io/iamf/#profiles-base">base profile</a>
         * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a>
         * in AAC.
         */
        @SuppressLint("AllUpper")
        @FlaggedApi(FLAG_IAMF_DEFINITIONS_API)
        public static final int IAMFProfileBaseAac =
                IAMF_v1 + IAMF_PROFILE_BASE + IAMF_CODEC_AAC;
        /**
         * IAMF profile using the
         * <a href="https://aomediacodec.github.io/iamf/#profiles-base">base profile</a>
         * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a>
         * in FLAC.
         */
        @SuppressLint("AllUpper")
        @FlaggedApi(FLAG_IAMF_DEFINITIONS_API)
        public static final int IAMFProfileBaseFlac =
                IAMF_v1 + IAMF_PROFILE_BASE + IAMF_CODEC_FLAC;
        /**
         * IAMF profile using the
         * <a href="https://aomediacodec.github.io/iamf/#profiles-base">base profile</a>
         * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a>
         * in PCM.
         */
        @SuppressLint("AllUpper")
        @FlaggedApi(FLAG_IAMF_DEFINITIONS_API)
        public static final int IAMFProfileBasePcm =
                IAMF_v1 + IAMF_PROFILE_BASE + IAMF_CODEC_PCM;
        /**
         * IAMF profile using the
         * <a href="https://aomediacodec.github.io/iamf/#profiles-base-enhanced">base-enhanced profile</a>
         * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a>
         * in OPUS.
         */
        @SuppressLint("AllUpper")
        @FlaggedApi(FLAG_IAMF_DEFINITIONS_API)
        public static final int IAMFProfileBaseEnhancedOpus =
                IAMF_v1 + IAMF_PROFILE_BASE_ENHANCED + IAMF_CODEC_OPUS;
        /**
         * IAMF profile using the
         * <a href="https://aomediacodec.github.io/iamf/#profiles-base-enhanced">base-enhanced profile</a>
         * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a>
         * in AAC.
         */
        @SuppressLint("AllUpper")
        @FlaggedApi(FLAG_IAMF_DEFINITIONS_API)
        public static final int IAMFProfileBaseEnhancedAac =
                IAMF_v1 + IAMF_PROFILE_BASE_ENHANCED + IAMF_CODEC_AAC;
        /**
         * IAMF profile using the
         * <a href="https://aomediacodec.github.io/iamf/#profiles-base-enhanced">base-enhanced profile</a>
         * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a>
         * in FLAC.
         */
        @SuppressLint("AllUpper")
        @FlaggedApi(FLAG_IAMF_DEFINITIONS_API)
        public static final int IAMFProfileBaseEnhancedFlac =
                IAMF_v1 + IAMF_PROFILE_BASE_ENHANCED + IAMF_CODEC_FLAC;
        /**
         * IAMF profile using the
         * <a href="https://aomediacodec.github.io/iamf/#profiles-base-enhanced">base-enhanced profile</a>
         * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a>
         * in PCM.
         */
        @SuppressLint("AllUpper")
        @FlaggedApi(FLAG_IAMF_DEFINITIONS_API)
        public static final int IAMFProfileBaseEnhancedPcm =
                IAMF_v1 + IAMF_PROFILE_BASE_ENHANCED + IAMF_CODEC_PCM;

        /**
        /**
         * The profile of the media content. Depending on the type of media this can be
         * The profile of the media content. Depending on the type of media this can be
         * one of the profile values defined in this class.
         * one of the profile values defined in this class.
+7 −0
Original line number Original line Diff line number Diff line
@@ -16,6 +16,8 @@


package android.media;
package android.media;



import static android.media.audio.Flags.FLAG_IAMF_DEFINITIONS_API;
import static android.media.codec.Flags.FLAG_IN_PROCESS_SW_AUDIO_CODEC;
import static android.media.codec.Flags.FLAG_IN_PROCESS_SW_AUDIO_CODEC;
import static android.media.codec.Flags.FLAG_NUM_INPUT_SLOTS;
import static android.media.codec.Flags.FLAG_NUM_INPUT_SLOTS;
import static android.media.codec.Flags.FLAG_REGION_OF_INTEREST;
import static android.media.codec.Flags.FLAG_REGION_OF_INTEREST;
@@ -262,6 +264,11 @@ public final class MediaFormat {
     * MIME type for the IEC61937 audio stream encapsulation. This type isn't defined by IANA.
     * MIME type for the IEC61937 audio stream encapsulation. This type isn't defined by IANA.
     */
     */
    public static final String MIMETYPE_AUDIO_IEC61937 = "audio/x-iec61937";
    public static final String MIMETYPE_AUDIO_IEC61937 = "audio/x-iec61937";
    /**
     * MIME type for IAMF audio stream
     */
    @FlaggedApi(FLAG_IAMF_DEFINITIONS_API)
    public static final String MIMETYPE_AUDIO_IAMF = "audio/iamf";


    /**
    /**
     * MIME type for HEIF still image data encoded in HEVC.
     * MIME type for HEIF still image data encoded in HEVC.