summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt31
-rw-r--r--media/java/android/media/MediaCodecInfo.java69
-rw-r--r--media/java/android/media/MediaFormat.java1
3 files changed, 74 insertions, 27 deletions
diff --git a/api/current.txt b/api/current.txt
index 40264045d4d7..af65762c1fa0 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -24365,6 +24365,33 @@ package android.media {
field public static final int AACObjectSSR = 3; // 0x3
field public static final int AACObjectScalable = 6; // 0x6
field public static final int AACObjectXHE = 42; // 0x2a
+ field public static final int AV1Level2 = 1; // 0x1
+ field public static final int AV1Level21 = 2; // 0x2
+ field public static final int AV1Level22 = 4; // 0x4
+ field public static final int AV1Level23 = 8; // 0x8
+ field public static final int AV1Level3 = 16; // 0x10
+ field public static final int AV1Level31 = 32; // 0x20
+ field public static final int AV1Level32 = 64; // 0x40
+ field public static final int AV1Level33 = 128; // 0x80
+ field public static final int AV1Level4 = 256; // 0x100
+ field public static final int AV1Level41 = 512; // 0x200
+ field public static final int AV1Level42 = 1024; // 0x400
+ field public static final int AV1Level43 = 2048; // 0x800
+ field public static final int AV1Level5 = 4096; // 0x1000
+ field public static final int AV1Level51 = 8192; // 0x2000
+ field public static final int AV1Level52 = 16384; // 0x4000
+ field public static final int AV1Level53 = 32768; // 0x8000
+ field public static final int AV1Level6 = 65536; // 0x10000
+ field public static final int AV1Level61 = 131072; // 0x20000
+ field public static final int AV1Level62 = 262144; // 0x40000
+ field public static final int AV1Level63 = 524288; // 0x80000
+ field public static final int AV1Level7 = 1048576; // 0x100000
+ field public static final int AV1Level71 = 2097152; // 0x200000
+ field public static final int AV1Level72 = 4194304; // 0x400000
+ field public static final int AV1Level73 = 8388608; // 0x800000
+ field public static final int AV1Profile0 = 1; // 0x1
+ field public static final int AV1Profile1 = 2; // 0x2
+ field public static final int AV1Profile2 = 4; // 0x4
field public static final int AVCLevel1 = 1; // 0x1
field public static final int AVCLevel11 = 4; // 0x4
field public static final int AVCLevel12 = 8; // 0x8
@@ -24382,6 +24409,9 @@ package android.media {
field public static final int AVCLevel5 = 16384; // 0x4000
field public static final int AVCLevel51 = 32768; // 0x8000
field public static final int AVCLevel52 = 65536; // 0x10000
+ field public static final int AVCLevel6 = 131072; // 0x20000
+ field public static final int AVCLevel61 = 262144; // 0x40000
+ field public static final int AVCLevel62 = 524288; // 0x80000
field public static final int AVCProfileBaseline = 1; // 0x1
field public static final int AVCProfileConstrainedBaseline = 65536; // 0x10000
field public static final int AVCProfileConstrainedHigh = 524288; // 0x80000
@@ -25002,6 +25032,7 @@ package android.media {
field public static final java.lang.String MIMETYPE_TEXT_CEA_708 = "text/cea-708";
field public static final java.lang.String MIMETYPE_TEXT_SUBRIP = "application/x-subrip";
field public static final java.lang.String MIMETYPE_TEXT_VTT = "text/vtt";
+ field public static final java.lang.String MIMETYPE_VIDEO_AV1 = "video/av01";
field public static final java.lang.String MIMETYPE_VIDEO_AVC = "video/avc";
field public static final java.lang.String MIMETYPE_VIDEO_DOLBY_VISION = "video/dolby-vision";
field public static final java.lang.String MIMETYPE_VIDEO_H263 = "video/3gpp";
diff --git a/media/java/android/media/MediaCodecInfo.java b/media/java/android/media/MediaCodecInfo.java
index 10a1e3a72225..01def960189a 100644
--- a/media/java/android/media/MediaCodecInfo.java
+++ b/media/java/android/media/MediaCodecInfo.java
@@ -163,7 +163,7 @@ public final class MediaCodecInfo {
// such as B-frame support, arithmetic coding...
public CodecProfileLevel[] profileLevels; // NOTE this array is modifiable by user
- // from OMX_COLOR_FORMATTYPE
+ // from MediaCodecConstants
/** @deprecated Use {@link #COLOR_Format24bitBGR888}. */
public static final int COLOR_FormatMonochrome = 1;
/** @deprecated Use {@link #COLOR_Format24bitBGR888}. */
@@ -344,7 +344,7 @@ public final class MediaCodecInfo {
/** @deprecated Use {@link #COLOR_FormatYUV420Flexible}. */
public static final int COLOR_TI_FormatYUV420PackedSemiPlanar = 0x7f000100;
// COLOR_FormatSurface indicates that the data will be a GraphicBuffer metadata reference.
- // In OMX this is called OMX_COLOR_FormatAndroidOpaque.
+ // Note: in OMX this is called OMX_COLOR_FormatAndroidOpaque.
public static final int COLOR_FormatSurface = 0x7F000789;
/**
@@ -435,8 +435,7 @@ public final class MediaCodecInfo {
public static final int COLOR_QCOM_FormatYUV420SemiPlanar = 0x7fa30c00;
/**
- * Defined in the OpenMAX IL specs, color format values are drawn from
- * OMX_COLOR_FORMATTYPE.
+ * The color format for the media. This is one of the color constants defined in this class.
*/
public int[] colorFormats; // NOTE this array is modifiable by user
@@ -2879,7 +2878,9 @@ public final class MediaCodecInfo {
* {@link MediaCodecInfo.CodecCapabilities#profileLevels} field.
*/
public static final class CodecProfileLevel {
- // from OMX_VIDEO_AVCPROFILETYPE
+ // These constants were originally in-line with OMX values, but this
+ // correspondence is no longer maintained.
+
public static final int AVCProfileBaseline = 0x01;
public static final int AVCProfileMain = 0x02;
public static final int AVCProfileExtended = 0x04;
@@ -2890,7 +2891,6 @@ public final class MediaCodecInfo {
public static final int AVCProfileConstrainedBaseline = 0x10000;
public static final int AVCProfileConstrainedHigh = 0x80000;
- // from OMX_VIDEO_AVCLEVELTYPE
public static final int AVCLevel1 = 0x01;
public static final int AVCLevel1b = 0x02;
public static final int AVCLevel11 = 0x04;
@@ -2908,8 +2908,10 @@ public final class MediaCodecInfo {
public static final int AVCLevel5 = 0x4000;
public static final int AVCLevel51 = 0x8000;
public static final int AVCLevel52 = 0x10000;
+ public static final int AVCLevel6 = 0x20000;
+ public static final int AVCLevel61 = 0x40000;
+ public static final int AVCLevel62 = 0x80000;
- // from OMX_VIDEO_H263PROFILETYPE
public static final int H263ProfileBaseline = 0x01;
public static final int H263ProfileH320Coding = 0x02;
public static final int H263ProfileBackwardCompatible = 0x04;
@@ -2920,7 +2922,6 @@ public final class MediaCodecInfo {
public static final int H263ProfileInterlace = 0x80;
public static final int H263ProfileHighLatency = 0x100;
- // from OMX_VIDEO_H263LEVELTYPE
public static final int H263Level10 = 0x01;
public static final int H263Level20 = 0x02;
public static final int H263Level30 = 0x04;
@@ -2930,7 +2931,6 @@ public final class MediaCodecInfo {
public static final int H263Level60 = 0x40;
public static final int H263Level70 = 0x80;
- // from OMX_VIDEO_MPEG4PROFILETYPE
public static final int MPEG4ProfileSimple = 0x01;
public static final int MPEG4ProfileSimpleScalable = 0x02;
public static final int MPEG4ProfileCore = 0x04;
@@ -2948,7 +2948,6 @@ public final class MediaCodecInfo {
public static final int MPEG4ProfileAdvancedScalable = 0x4000;
public static final int MPEG4ProfileAdvancedSimple = 0x8000;
- // from OMX_VIDEO_MPEG4LEVELTYPE
public static final int MPEG4Level0 = 0x01;
public static final int MPEG4Level0b = 0x02;
public static final int MPEG4Level1 = 0x04;
@@ -2960,7 +2959,6 @@ public final class MediaCodecInfo {
public static final int MPEG4Level5 = 0x80;
public static final int MPEG4Level6 = 0x100;
- // from OMX_VIDEO_MPEG2PROFILETYPE
public static final int MPEG2ProfileSimple = 0x00;
public static final int MPEG2ProfileMain = 0x01;
public static final int MPEG2Profile422 = 0x02;
@@ -2968,14 +2966,12 @@ public final class MediaCodecInfo {
public static final int MPEG2ProfileSpatial = 0x04;
public static final int MPEG2ProfileHigh = 0x05;
- // from OMX_VIDEO_MPEG2LEVELTYPE
public static final int MPEG2LevelLL = 0x00;
public static final int MPEG2LevelML = 0x01;
public static final int MPEG2LevelH14 = 0x02;
public static final int MPEG2LevelHL = 0x03;
public static final int MPEG2LevelHP = 0x04;
- // from OMX_AUDIO_AACPROFILETYPE
public static final int AACObjectMain = 1;
public static final int AACObjectLC = 2;
public static final int AACObjectSSR = 3;
@@ -2990,16 +2986,13 @@ public final class MediaCodecInfo {
/** xHE-AAC (includes USAC) */
public static final int AACObjectXHE = 42;
- // from OMX_VIDEO_VP8LEVELTYPE
public static final int VP8Level_Version0 = 0x01;
public static final int VP8Level_Version1 = 0x02;
public static final int VP8Level_Version2 = 0x04;
public static final int VP8Level_Version3 = 0x08;
- // from OMX_VIDEO_VP8PROFILETYPE
public static final int VP8ProfileMain = 0x01;
- // from OMX_VIDEO_VP9PROFILETYPE
public static final int VP9Profile0 = 0x01;
public static final int VP9Profile1 = 0x02;
public static final int VP9Profile2 = 0x04;
@@ -3010,7 +3003,6 @@ public final class MediaCodecInfo {
public static final int VP9Profile2HDR10Plus = 0x4000;
public static final int VP9Profile3HDR10Plus = 0x8000;
- // from OMX_VIDEO_VP9LEVELTYPE
public static final int VP9Level1 = 0x1;
public static final int VP9Level11 = 0x2;
public static final int VP9Level2 = 0x4;
@@ -3026,14 +3018,12 @@ public final class MediaCodecInfo {
public static final int VP9Level61 = 0x1000;
public static final int VP9Level62 = 0x2000;
- // from OMX_VIDEO_HEVCPROFILETYPE
public static final int HEVCProfileMain = 0x01;
public static final int HEVCProfileMain10 = 0x02;
public static final int HEVCProfileMainStill = 0x04;
public static final int HEVCProfileMain10HDR10 = 0x1000;
public static final int HEVCProfileMain10HDR10Plus = 0x2000;
- // from OMX_VIDEO_HEVCLEVELTYPE
public static final int HEVCMainTierLevel1 = 0x1;
public static final int HEVCHighTierLevel1 = 0x2;
public static final int HEVCMainTierLevel2 = 0x4;
@@ -3067,7 +3057,6 @@ public final class MediaCodecInfo {
HEVCHighTierLevel51 | HEVCHighTierLevel52 | HEVCHighTierLevel6 | HEVCHighTierLevel61 |
HEVCHighTierLevel62;
- // from OMX_VIDEO_DOLBYVISIONPROFILETYPE
public static final int DolbyVisionProfileDvavPer = 0x1;
public static final int DolbyVisionProfileDvavPen = 0x2;
public static final int DolbyVisionProfileDvheDer = 0x4;
@@ -3079,7 +3068,6 @@ public final class MediaCodecInfo {
public static final int DolbyVisionProfileDvheSt = 0x100;
public static final int DolbyVisionProfileDvavSe = 0x200;
- // from OMX_VIDEO_DOLBYVISIONLEVELTYPE
public static final int DolbyVisionLevelHd24 = 0x1;
public static final int DolbyVisionLevelHd30 = 0x2;
public static final int DolbyVisionLevelFhd24 = 0x4;
@@ -3090,17 +3078,44 @@ public final class MediaCodecInfo {
public static final int DolbyVisionLevelUhd48 = 0x80;
public static final int DolbyVisionLevelUhd60 = 0x100;
+ public static final int AV1Profile0 = 0x1;
+ public static final int AV1Profile1 = 0x2;
+ public static final int AV1Profile2 = 0x4;
+
+ public static final int AV1Level2 = 0x1;
+ public static final int AV1Level21 = 0x2;
+ public static final int AV1Level22 = 0x4;
+ public static final int AV1Level23 = 0x8;
+ public static final int AV1Level3 = 0x10;
+ public static final int AV1Level31 = 0x20;
+ public static final int AV1Level32 = 0x40;
+ public static final int AV1Level33 = 0x80;
+ public static final int AV1Level4 = 0x100;
+ public static final int AV1Level41 = 0x200;
+ public static final int AV1Level42 = 0x400;
+ public static final int AV1Level43 = 0x800;
+ public static final int AV1Level5 = 0x1000;
+ public static final int AV1Level51 = 0x2000;
+ public static final int AV1Level52 = 0x4000;
+ public static final int AV1Level53 = 0x8000;
+ public static final int AV1Level6 = 0x10000;
+ public static final int AV1Level61 = 0x20000;
+ public static final int AV1Level62 = 0x40000;
+ public static final int AV1Level63 = 0x80000;
+ public static final int AV1Level7 = 0x100000;
+ public static final int AV1Level71 = 0x200000;
+ public static final int AV1Level72 = 0x400000;
+ public static final int AV1Level73 = 0x800000;
+
/**
- * Defined in the OpenMAX IL specs, depending on the type of media
- * this can be OMX_VIDEO_AVCPROFILETYPE, OMX_VIDEO_H263PROFILETYPE,
- * OMX_VIDEO_MPEG4PROFILETYPE, OMX_VIDEO_VP8PROFILETYPE or OMX_VIDEO_VP9PROFILETYPE.
+ * The profile of the media content. Depending on the type of media this can be
+ * one of the profile values defined in this class.
*/
public int profile;
/**
- * Defined in the OpenMAX IL specs, depending on the type of media
- * this can be OMX_VIDEO_AVCLEVELTYPE, OMX_VIDEO_H263LEVELTYPE
- * OMX_VIDEO_MPEG4LEVELTYPE, OMX_VIDEO_VP8LEVELTYPE or OMX_VIDEO_VP9LEVELTYPE.
+ * The level of the media content. Depending on the type of media this can be
+ * one of the level values defined in this class.
*
* Note that VP9 decoder on platforms before {@link android.os.Build.VERSION_CODES#N} may
* not advertise a profile level support. For those VP9 decoders, please use
diff --git a/media/java/android/media/MediaFormat.java b/media/java/android/media/MediaFormat.java
index 594a22457cc3..c82b5f6f12a1 100644
--- a/media/java/android/media/MediaFormat.java
+++ b/media/java/android/media/MediaFormat.java
@@ -124,6 +124,7 @@ import java.util.stream.Collectors;
public final class MediaFormat {
public static final String MIMETYPE_VIDEO_VP8 = "video/x-vnd.on2.vp8";
public static final String MIMETYPE_VIDEO_VP9 = "video/x-vnd.on2.vp9";
+ public static final String MIMETYPE_VIDEO_AV1 = "video/av01";
public static final String MIMETYPE_VIDEO_AVC = "video/avc";
public static final String MIMETYPE_VIDEO_HEVC = "video/hevc";
public static final String MIMETYPE_VIDEO_MPEG4 = "video/mp4v-es";