160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber/*
260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber * Copyright (C) 2012 The Android Open Source Project
360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber *
460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber * Licensed under the Apache License, Version 2.0 (the "License");
560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber * you may not use this file except in compliance with the License.
660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber * You may obtain a copy of the License at
760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber *
860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber *      http://www.apache.org/licenses/LICENSE-2.0
960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber *
1060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber * Unless required by applicable law or agreed to in writing, software
1160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber * distributed under the License is distributed on an "AS IS" BASIS,
1260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber * See the License for the specific language governing permissions and
1460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber * limitations under the License.
1560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber */
1660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
1760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huberpackage android.media;
1860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
1960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huberpublic final class MediaCodecInfo {
2060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    private int mIndex;
2160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
2260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    /* package private */ MediaCodecInfo(int index) {
2360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        mIndex = index;
2460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    }
2560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
2660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    /**
2760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber     * Retrieve the codec name.
2860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber     */
2960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    public final String getName() {
3060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        return MediaCodecList.getCodecName(mIndex);
3160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    }
3260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
3360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    /**
3460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber     * Query if the codec is an encoder.
3560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber     */
3660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    public final boolean isEncoder() {
3760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        return MediaCodecList.isEncoder(mIndex);
3860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    }
3960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
4060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    /**
4160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber     * Query the media types supported by the codec.
4260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber     */
4360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    public final String[] getSupportedTypes() {
4460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        return MediaCodecList.getSupportedTypes(mIndex);
4560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    }
4660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
4760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    public static final class CodecCapabilities {
4860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public CodecProfileLevel[] profileLevels;
4960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
5060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        // from OMX_COLOR_FORMATTYPE
5160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatMonochrome              = 1;
5260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format8bitRGB332              = 2;
5360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format12bitRGB444             = 3;
5460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format16bitARGB4444           = 4;
5560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format16bitARGB1555           = 5;
5660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format16bitRGB565             = 6;
5760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format16bitBGR565             = 7;
5860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format18bitRGB666             = 8;
5960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format18bitARGB1665           = 9;
6060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format19bitARGB1666           = 10;
6160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format24bitRGB888             = 11;
6260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format24bitBGR888             = 12;
6360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format24bitARGB1887           = 13;
6460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format25bitARGB1888           = 14;
6560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format32bitBGRA8888           = 15;
6660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format32bitARGB8888           = 16;
6760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatYUV411Planar            = 17;
6860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatYUV411PackedPlanar      = 18;
6960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatYUV420Planar            = 19;
7060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatYUV420PackedPlanar      = 20;
7160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatYUV420SemiPlanar        = 21;
7260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatYUV422Planar            = 22;
7360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatYUV422PackedPlanar      = 23;
7460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatYUV422SemiPlanar        = 24;
7560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatYCbYCr                  = 25;
7660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatYCrYCb                  = 26;
7760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatCbYCrY                  = 27;
7860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatCrYCbY                  = 28;
7960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatYUV444Interleaved       = 29;
8060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatRawBayer8bit            = 30;
8160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatRawBayer10bit           = 31;
8260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatRawBayer8bitcompressed  = 32;
8360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatL2                      = 33;
8460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatL4                      = 34;
8560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatL8                      = 35;
8660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatL16                     = 36;
8760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatL24                     = 37;
8860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatL32                     = 38;
8960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatYUV420PackedSemiPlanar  = 39;
9060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_FormatYUV422PackedSemiPlanar  = 40;
9160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format18BitBGR666             = 41;
9260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format24BitARGB6666           = 42;
9360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_Format24BitABGR6666           = 43;
9460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
9560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_TI_FormatYUV420PackedSemiPlanar = 0x7f000100;
9660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public final static int COLOR_QCOM_FormatYUV420SemiPlanar     = 0x7fa30c00;
9760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
9860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        /**
9960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber         * Defined in the OpenMAX IL specs, color format values are drawn from
10060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber         * OMX_COLOR_FORMATTYPE.
10160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber         */
10260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public int[] colorFormats;
10360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    };
10460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
10560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    public static final class CodecProfileLevel {
10660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        // from OMX_VIDEO_AVCPROFILETYPE
10760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCProfileBaseline = 0x01;
10860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCProfileMain     = 0x02;
10960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCProfileExtended = 0x04;
11060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCProfileHigh     = 0x08;
11160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCProfileHigh10   = 0x10;
11260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCProfileHigh422  = 0x20;
11360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCProfileHigh444  = 0x40;
11460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
11560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        // from OMX_VIDEO_AVCLEVELTYPE
11660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCLevel1       = 0x01;
11760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCLevel1b      = 0x02;
11860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCLevel11      = 0x04;
11960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCLevel12      = 0x08;
12060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCLevel13      = 0x10;
12160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCLevel2       = 0x20;
12260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCLevel21      = 0x40;
12360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCLevel22      = 0x80;
12460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCLevel3       = 0x100;
12560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCLevel31      = 0x200;
12660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCLevel32      = 0x400;
12760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCLevel4       = 0x800;
12860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCLevel41      = 0x1000;
12960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCLevel42      = 0x2000;
13060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCLevel5       = 0x4000;
13160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AVCLevel51      = 0x8000;
13260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
13360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        // from OMX_VIDEO_H263PROFILETYPE
13460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263ProfileBaseline             = 0x01;
13560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263ProfileH320Coding           = 0x02;
13660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263ProfileBackwardCompatible   = 0x04;
13760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263ProfileISWV2                = 0x08;
13860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263ProfileISWV3                = 0x10;
13960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263ProfileHighCompression      = 0x20;
14060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263ProfileInternet             = 0x40;
14160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263ProfileInterlace            = 0x80;
14260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263ProfileHighLatency          = 0x100;
14360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
14460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        // from OMX_VIDEO_H263LEVELTYPE
14560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263Level10      = 0x01;
14660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263Level20      = 0x02;
14760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263Level30      = 0x04;
14860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263Level40      = 0x08;
14960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263Level45      = 0x10;
15060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263Level50      = 0x20;
15160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263Level60      = 0x40;
15260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int H263Level70      = 0x80;
15360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
15460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        // from OMX_VIDEO_MPEG4PROFILETYPE
15560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4ProfileSimple              = 0x01;
15660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4ProfileSimpleScalable      = 0x02;
15760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4ProfileCore                = 0x04;
15860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4ProfileMain                = 0x08;
15960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4ProfileNbit                = 0x10;
16060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4ProfileScalableTexture     = 0x20;
16160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4ProfileSimpleFace          = 0x40;
16260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4ProfileSimpleFBA           = 0x80;
16360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4ProfileBasicAnimated       = 0x100;
16460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4ProfileHybrid              = 0x200;
16560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4ProfileAdvancedRealTime    = 0x400;
16660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4ProfileCoreScalable        = 0x800;
16760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4ProfileAdvancedCoding      = 0x1000;
16860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4ProfileAdvancedCore        = 0x2000;
16960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4ProfileAdvancedScalable    = 0x4000;
17060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4ProfileAdvancedSimple      = 0x8000;
17160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
17260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        // from OMX_VIDEO_MPEG4LEVELTYPE
17360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4Level0      = 0x01;
17460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4Level0b     = 0x02;
17560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4Level1      = 0x04;
17660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4Level2      = 0x08;
17760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4Level3      = 0x10;
17860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4Level4      = 0x20;
17960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4Level4a     = 0x40;
18060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int MPEG4Level5      = 0x80;
18160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
18260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        // from OMX_AUDIO_AACPROFILETYPE
18360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AACObjectMain       = 1;
18460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AACObjectLC         = 2;
18560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AACObjectSSR        = 3;
18660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AACObjectLTP        = 4;
18760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AACObjectHE         = 5;
18860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AACObjectScalable   = 6;
18960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AACObjectERLC       = 17;
19060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AACObjectLD         = 23;
19160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AACObjectHE_PS      = 29;
19260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public static final int AACObjectELD        = 39;
19360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
19460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        /**
19560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber         * Defined in the OpenMAX IL specs, depending on the type of media
19660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber         * this can be OMX_VIDEO_AVCPROFILETYPE, OMX_VIDEO_H263PROFILETYPE,
19760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber         * or OMX_VIDEO_MPEG4PROFILETYPE.
19860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber         */
19960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public int profile;
20060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
20160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        /**
20260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber         * Defined in the OpenMAX IL specs, depending on the type of media
20360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber         * this can be OMX_VIDEO_AVCLEVELTYPE, OMX_VIDEO_H263LEVELTYPE
20460d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber         * or OMX_VIDEO_MPEG4LEVELTYPE.
20560d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber         */
20660d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        public int level;
20760d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    };
20860d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber
20960d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    public final CodecCapabilities getCapabilitiesForType(
21060d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber            String type) {
21160d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber        return MediaCodecList.getCodecCapabilities(mIndex, type);
21260d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber    }
21360d610bf103379277a4b29a7ead4f013f6128e4eAndreas Huber}
214