19bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava/* 22b06e56031ef8bd1b5155ec3225f37248d4833b4Basavapatna Dattaguru * Copyright (C) 2011 The Android Open Source Project 39bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * 49bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * Licensed under the Apache License, Version 2.0 (the "License"); 59bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * you may not use this file except in compliance with the License. 69bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * You may obtain a copy of the License at 79bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * 89bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * http://www.apache.org/licenses/LICENSE-2.0 99bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * 109bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * Unless required by applicable law or agreed to in writing, software 119bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * distributed under the License is distributed on an "AS IS" BASIS, 129bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * See the License for the specific language governing permissions and 149bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * limitations under the License. 159bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 169bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 179bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 189bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhavapackage android.media.videoeditor; 199bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 20600acf14ff12eaf139f0ac644fb7e17849af65faHong Tengimport android.media.videoeditor.VideoEditorProfile; 219bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhavaimport android.util.Pair; 22600acf14ff12eaf139f0ac644fb7e17849af65faHong Tengimport java.lang.System; 239bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava/** 249bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * This class defines all properties of a media file such as supported height, 259bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * aspect ratio, bitrate for export function. 269bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * {@hide} 279bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 289bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhavapublic class MediaProperties { 299bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 309bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * Supported heights 319bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 329bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int HEIGHT_144 = 144; 33bcbf68583e38eeb79266f9f3a8c3d1b17f75a8c2Santosh Madhava public static final int HEIGHT_288 = 288; 349bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int HEIGHT_360 = 360; 359bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int HEIGHT_480 = 480; 369bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int HEIGHT_720 = 720; 37600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng public static final int HEIGHT_1080 = 1080; 389bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 399bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 409bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * Supported aspect ratios 419bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 429bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int ASPECT_RATIO_UNDEFINED = 0; 439bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int ASPECT_RATIO_3_2 = 1; 449bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int ASPECT_RATIO_16_9 = 2; 459bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int ASPECT_RATIO_4_3 = 3; 469bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int ASPECT_RATIO_5_3 = 4; 479bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int ASPECT_RATIO_11_9 = 5; 489bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 499bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 509bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * The array of supported aspect ratios 519bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 529bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava private static final int[] ASPECT_RATIOS = new int[] { 539bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava ASPECT_RATIO_3_2, 549bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava ASPECT_RATIO_16_9, 559bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava ASPECT_RATIO_4_3, 569bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava ASPECT_RATIO_5_3, 579bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava ASPECT_RATIO_11_9 589bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava }; 599bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 609bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 619bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * Supported resolutions for specific aspect ratios 629bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 639bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava @SuppressWarnings({"unchecked"}) 649bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava private static final Pair<Integer, Integer>[] ASPECT_RATIO_3_2_RESOLUTIONS = 659bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava new Pair[] { 669bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava new Pair<Integer, Integer>(720, HEIGHT_480), 67600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng new Pair<Integer, Integer>(1080, HEIGHT_720) 689bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava }; 699bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 709bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava @SuppressWarnings({"unchecked"}) 719bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava private static final Pair<Integer, Integer>[] ASPECT_RATIO_4_3_RESOLUTIONS = 729bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava new Pair[] { 739bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava new Pair<Integer, Integer>(640, HEIGHT_480), 749bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava new Pair<Integer, Integer>(960, HEIGHT_720) 759bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava }; 769bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 779bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava @SuppressWarnings({"unchecked"}) 789bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava private static final Pair<Integer, Integer>[] ASPECT_RATIO_5_3_RESOLUTIONS = 799bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava new Pair[] { 809bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava new Pair<Integer, Integer>(800, HEIGHT_480) 819bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava }; 829bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 839bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava @SuppressWarnings({"unchecked"}) 849bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava private static final Pair<Integer, Integer>[] ASPECT_RATIO_11_9_RESOLUTIONS = 859bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava new Pair[] { 86bcbf68583e38eeb79266f9f3a8c3d1b17f75a8c2Santosh Madhava new Pair<Integer, Integer>(176, HEIGHT_144), 87bcbf68583e38eeb79266f9f3a8c3d1b17f75a8c2Santosh Madhava new Pair<Integer, Integer>(352, HEIGHT_288) 889bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava }; 899bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 909bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava @SuppressWarnings({"unchecked"}) 919bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava private static final Pair<Integer, Integer>[] ASPECT_RATIO_16_9_RESOLUTIONS = 929bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava new Pair[] { 939bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava new Pair<Integer, Integer>(848, HEIGHT_480), 949bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava new Pair<Integer, Integer>(1280, HEIGHT_720), 95600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng new Pair<Integer, Integer>(1920, HEIGHT_1080), 969bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava }; 979bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 989bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 999bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * Bitrate values (in bits per second) 1009bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 1019bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int BITRATE_28K = 28000; 1029bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int BITRATE_40K = 40000; 1039bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int BITRATE_64K = 64000; 1049bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int BITRATE_96K = 96000; 1059bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int BITRATE_128K = 128000; 1069bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int BITRATE_192K = 192000; 1079bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int BITRATE_256K = 256000; 1089bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int BITRATE_384K = 384000; 1099bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int BITRATE_512K = 512000; 1109bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int BITRATE_800K = 800000; 1119bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int BITRATE_2M = 2000000; 1129bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int BITRATE_5M = 5000000; 1139bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int BITRATE_8M = 8000000; 1149bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 1159bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 1169bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * The array of supported bitrates 1179bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 1189bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava private static final int[] SUPPORTED_BITRATES = new int[] { 1199bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava BITRATE_28K, 1209bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava BITRATE_40K, 1219bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava BITRATE_64K, 1229bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava BITRATE_96K, 1239bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava BITRATE_128K, 1249bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava BITRATE_192K, 1259bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava BITRATE_256K, 1269bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava BITRATE_384K, 1279bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava BITRATE_512K, 1289bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava BITRATE_800K, 1299bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava BITRATE_2M, 1309bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava BITRATE_5M, 1319bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava BITRATE_8M 1329bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava }; 1339bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 1349bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 1359bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * Video codec types 1369bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 1379bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int VCODEC_H263 = 1; 1383ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int VCODEC_H264 = 2; 1393ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int VCODEC_MPEG4 = 3; 1409bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 1419bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 1429bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * The array of supported video codecs 1439bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 1449bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava private static final int[] SUPPORTED_VCODECS = new int[] { 1453ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury VCODEC_H264, 1469bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava VCODEC_H263, 1479bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava VCODEC_MPEG4, 1489bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava }; 1499bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 1503ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury /** 1513ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury * The H264 profile, the values are same as the one in OMX_Video.h 1523ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury */ 1533ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public final class H264Profile { 1543ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264ProfileBaseline = 0x01; /**< Baseline profile */ 1553ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264ProfileMain = 0x02; /**< Main profile */ 1563ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264ProfileExtended = 0x04; /**< Extended profile */ 1573ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264ProfileHigh = 0x08; /**< High profile */ 1583ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264ProfileHigh10 = 0x10; /**< High 10 profile */ 1593ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264ProfileHigh422 = 0x20; /**< High 4:2:2 profile */ 1603ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264ProfileHigh444 = 0x40; /**< High 4:4:4 profile */ 1613ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264ProfileUnknown = 0x7FFFFFFF; 1623ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury } 1633ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury /** 1643ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury * The H264 level, the values are same as the one in OMX_Video.h 1653ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury */ 1663ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public final class H264Level { 1673ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264Level1 = 0x01; /**< Level 1 */ 1683ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264Level1b = 0x02; /**< Level 1b */ 1693ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264Level11 = 0x04; /**< Level 1.1 */ 1703ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264Level12 = 0x08; /**< Level 1.2 */ 1713ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264Level13 = 0x10; /**< Level 1.3 */ 1723ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264Level2 = 0x20; /**< Level 2 */ 1733ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264Level21 = 0x40; /**< Level 2.1 */ 1743ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264Level22 = 0x80; /**< Level 2.2 */ 1753ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264Level3 = 0x100; /**< Level 3 */ 1763ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264Level31 = 0x200; /**< Level 3.1 */ 1773ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264Level32 = 0x400; /**< Level 3.2 */ 1783ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264Level4 = 0x800; /**< Level 4 */ 1793ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264Level41 = 0x1000; /**< Level 4.1 */ 1803ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264Level42 = 0x2000; /**< Level 4.2 */ 1813ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264Level5 = 0x4000; /**< Level 5 */ 1823ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264Level51 = 0x8000; /**< Level 5.1 */ 1833ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H264LevelUnknown = 0x7FFFFFFF; 1843ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury } 1853ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury /** 1863ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury * The H263 profile, the values are same as the one in OMX_Video.h 1873ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury */ 1883ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public final class H263Profile { 1893ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263ProfileBaseline = 0x01; 1903ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263ProfileH320Coding = 0x02; 1913ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263ProfileBackwardCompatible = 0x04; 1923ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263ProfileISWV2 = 0x08; 1933ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263ProfileISWV3 = 0x10; 1943ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263ProfileHighCompression = 0x20; 1953ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263ProfileInternet = 0x40; 1963ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263ProfileInterlace = 0x80; 1973ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263ProfileHighLatency = 0x100; 1983ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263ProfileUnknown = 0x7FFFFFFF; 1993ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury } 2003ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury /** 2013ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury * The H263 level, the values are same as the one in OMX_Video.h 2023ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury */ 2033ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public final class H263Level { 2043ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263Level10 = 0x01; 2053ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263Level20 = 0x02; 2063ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263Level30 = 0x04; 2073ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263Level40 = 0x08; 2083ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263Level45 = 0x10; 2093ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263Level50 = 0x20; 2103ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263Level60 = 0x40; 2113ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263Level70 = 0x80; 2123ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int H263LevelUnknown = 0x7FFFFFFF; 2133ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury } 2143ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury /** 2153ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury * The mpeg4 profile, the values are same as the one in OMX_Video.h 2163ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury */ 2173ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public final class MPEG4Profile { 2183ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileSimple = 0x01; 2193ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileSimpleScalable = 0x02; 2203ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileCore = 0x04; 2213ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileMain = 0x08; 2223ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileNbit = 0x10; 2233ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileScalableTexture = 0x20; 2243ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileSimpleFace = 0x40; 2253ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileSimpleFBA = 0x80; 2263ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileBasicAnimated = 0x100; 2273ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileHybrid = 0x200; 2283ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileAdvancedRealTime = 0x400; 2293ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileCoreScalable = 0x800; 2303ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileAdvancedCoding = 0x1000; 2313ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileAdvancedCore = 0x2000; 2323ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileAdvancedScalable = 0x4000; 2333ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileAdvancedSimple = 0x8000; 2343ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4ProfileUnknown = 0x7FFFFFFF; 2353ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury } 2363ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury /** 2373ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury * The mpeg4 level, the values are same as the one in OMX_Video.h 2383ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury */ 2393ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public final class MPEG4Level { 2403ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4Level0 = 0x01; /**< Level 0 */ 2413ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4Level0b = 0x02; /**< Level 0b */ 2423ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4Level1 = 0x04; /**< Level 1 */ 2433ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4Level2 = 0x08; /**< Level 2 */ 2443ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4Level3 = 0x10; /**< Level 3 */ 2453ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4Level4 = 0x20; /**< Level 4 */ 2463ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4Level4a = 0x40; /**< Level 4a */ 2473ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4Level5 = 0x80; /**< Level 5 */ 2483ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury public static final int MPEG4LevelUnknown = 0x7FFFFFFF; 2493ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury } 2509bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 2519bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * Audio codec types 2529bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 2539bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int ACODEC_NO_AUDIO = 0; 2549bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int ACODEC_AMRNB = 1; 2559bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int ACODEC_AAC_LC = 2; 2569bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int ACODEC_AAC_PLUS = 3; 2579bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int ACODEC_ENHANCED_AAC_PLUS = 4; 2589bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int ACODEC_MP3 = 5; 2599bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int ACODEC_EVRC = 6; 2609bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava // 7 value is used for PCM 2619bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int ACODEC_AMRWB = 8; 2629bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int ACODEC_OGG = 9; 2639bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 2649bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 2652b06e56031ef8bd1b5155ec3225f37248d4833b4Basavapatna Dattaguru * The array of supported audio codecs 2669bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 2679bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava private static final int[] SUPPORTED_ACODECS = new int[] { 2689bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava ACODEC_AAC_LC, 2699bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava ACODEC_AMRNB, 2709bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava ACODEC_AMRWB 2719bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava }; 2729bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 2739bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 2749bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * Samples per frame for each audio codec 2759bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 2769bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int SAMPLES_PER_FRAME_AAC = 1024; 2779bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int SAMPLES_PER_FRAME_MP3 = 1152; 2789bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int SAMPLES_PER_FRAME_AMRNB = 160; 2799bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int SAMPLES_PER_FRAME_AMRWB = 320; 2809bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 2819bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int DEFAULT_SAMPLING_FREQUENCY = 32000; 2829bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int DEFAULT_CHANNEL_COUNT = 2; 2839bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 2849bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 2859bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * File format types 2869bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 2879bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int FILE_3GP = 0; 2889bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int FILE_MP4 = 1; 289f58ba6506959947d2e646833789c859ae50e6767James Dong public static final int FILE_AMR = 2; 2909bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int FILE_MP3 = 3; 2919bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava // 4 is for PCM 2929bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int FILE_JPEG = 5; 2934e7032052137345450bfd2b7a4a9a05ecde17076Dharmaray Kundargi // 6 is for BMP 2944e7032052137345450bfd2b7a4a9a05ecde17076Dharmaray Kundargi // 7 is for GIF 2954e7032052137345450bfd2b7a4a9a05ecde17076Dharmaray Kundargi public static final int FILE_PNG = 8; 2964e7032052137345450bfd2b7a4a9a05ecde17076Dharmaray Kundargi // 9 is for ARGB8888 2974e7032052137345450bfd2b7a4a9a05ecde17076Dharmaray Kundargi public static final int FILE_M4V = 10; 2989bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int FILE_UNSUPPORTED = 255; 2994e7032052137345450bfd2b7a4a9a05ecde17076Dharmaray Kundargi 3009bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 3017b3f26328bb2555a1728db38780a4cb3be00a893Danny Fernandes * Undefined video codec profiles 3027b3f26328bb2555a1728db38780a4cb3be00a893Danny Fernandes */ 3037b3f26328bb2555a1728db38780a4cb3be00a893Danny Fernandes public static final int UNDEFINED_VIDEO_PROFILE = 255; 3047b3f26328bb2555a1728db38780a4cb3be00a893Danny Fernandes 3057b3f26328bb2555a1728db38780a4cb3be00a893Danny Fernandes /** 3069bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * The array of the supported file formats 3079bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 3089bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava private static final int[] SUPPORTED_VIDEO_FILE_FORMATS = new int[] { 3099bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava FILE_3GP, 3104e7032052137345450bfd2b7a4a9a05ecde17076Dharmaray Kundargi FILE_MP4, 3114e7032052137345450bfd2b7a4a9a05ecde17076Dharmaray Kundargi FILE_M4V 3129bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava }; 3139bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 3149bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 3159bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * The maximum count of audio tracks supported 3169bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 3179bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int AUDIO_MAX_TRACK_COUNT = 1; 3189bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 3199bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** The maximum volume supported (100 means that no amplification is 3209bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * supported, i.e. attenuation only) 3219bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 3229bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static final int AUDIO_MAX_VOLUME_PERCENT = 100; 3239bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 3249bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 3259bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * This class cannot be instantiated 3269bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 3279bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava private MediaProperties() { 3289bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava } 3299bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 3309bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 3319bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * @return The array of supported aspect ratios 3329bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 3339bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static int[] getAllSupportedAspectRatios() { 3349bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava return ASPECT_RATIOS; 3359bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava } 3369bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 3379bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 3389bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * Get the supported resolutions for the specified aspect ratio. 3399bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * 3409bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * @param aspectRatio The aspect ratio for which the resolutions are 3419bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * requested 3429bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * @return The array of width and height pairs 3439bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 3449bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static Pair<Integer, Integer>[] getSupportedResolutions(int aspectRatio) { 3459bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava final Pair<Integer, Integer>[] resolutions; 3469bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava switch (aspectRatio) { 3479bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava case ASPECT_RATIO_3_2: { 3489bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava resolutions = ASPECT_RATIO_3_2_RESOLUTIONS; 3499bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava break; 3509bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava } 3519bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 3529bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava case ASPECT_RATIO_4_3: { 3539bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava resolutions = ASPECT_RATIO_4_3_RESOLUTIONS; 3549bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava break; 3559bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava } 3569bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 3579bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava case ASPECT_RATIO_5_3: { 3589bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava resolutions = ASPECT_RATIO_5_3_RESOLUTIONS; 3599bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava break; 3609bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava } 3619bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 3629bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava case ASPECT_RATIO_11_9: { 3639bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava resolutions = ASPECT_RATIO_11_9_RESOLUTIONS; 3649bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava break; 3659bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava } 3669bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 3679bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava case ASPECT_RATIO_16_9: { 3689bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava resolutions = ASPECT_RATIO_16_9_RESOLUTIONS; 3699bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava break; 3709bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava } 3719bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 3729bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava default: { 3739bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava throw new IllegalArgumentException("Unknown aspect ratio: " + aspectRatio); 3749bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava } 3759bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava } 3769bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 377600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng /** Check the platform specific maximum export resolution */ 378600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng VideoEditorProfile veProfile = VideoEditorProfile.get(); 379600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng if (veProfile == null) { 380600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng throw new RuntimeException("Can't get the video editor profile"); 381600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng } 382600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng final int maxWidth = veProfile.maxOutputVideoFrameWidth; 383600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng final int maxHeight = veProfile.maxOutputVideoFrameHeight; 384600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng Pair<Integer, Integer>[] tmpResolutions = new Pair[resolutions.length]; 385600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng int numSupportedResolution = 0; 386600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng int i = 0; 387600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng 388600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng /** Get supported resolution list */ 389600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng for (i = 0; i < resolutions.length; i++) { 390600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng if ((resolutions[i].first <= maxWidth) && 391600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng (resolutions[i].second <= maxHeight)) { 392600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng tmpResolutions[numSupportedResolution] = resolutions[i]; 393600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng numSupportedResolution++; 394600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng } 395600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng } 396600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng final Pair<Integer, Integer>[] supportedResolutions = 397600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng new Pair[numSupportedResolution]; 398600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng System.arraycopy(tmpResolutions, 0, 399600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng supportedResolutions, 0, numSupportedResolution); 400600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng 401600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng return supportedResolutions; 4029bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava } 4039bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 4049bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 4059bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * @return The array of supported video codecs 4069bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 4079bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static int[] getSupportedVideoCodecs() { 4089bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava return SUPPORTED_VCODECS; 4099bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava } 4109bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 4119bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 4129bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * @return The array of supported audio codecs 4139bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 4149bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static int[] getSupportedAudioCodecs() { 4159bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava return SUPPORTED_ACODECS; 4169bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava } 4179bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 4189bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 4199bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * @return The array of supported file formats 4209bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 4219bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static int[] getSupportedVideoFileFormat() { 4229bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava return SUPPORTED_VIDEO_FILE_FORMATS; 4239bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava } 4249bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 4259bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 4269bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * @return The array of supported video bitrates 4279bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 4289bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static int[] getSupportedVideoBitrates() { 4299bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava return SUPPORTED_BITRATES; 4309bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava } 4319bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 4329bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 4339bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * @return The maximum value for the audio volume 4349bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 4359bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static int getSupportedMaxVolume() { 4369bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava return MediaProperties.AUDIO_MAX_VOLUME_PERCENT; 4379bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava } 4389bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava 4399bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava /** 4409bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava * @return The maximum number of audio tracks supported 4419bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava */ 4429bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava public static int getSupportedAudioTrackCount() { 4439bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava return MediaProperties.AUDIO_MAX_TRACK_COUNT; 4449bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava } 4459bcedf7cf3e9c981837f2d8ec98cd118efad3f01Santosh Madhava} 446