1203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin/* 2203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * Copyright (c) 2010 The Khronos Group Inc. 3203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * 4203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * Permission is hereby granted, free of charge, to any person obtaining 5203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * a copy of this software and associated documentation files (the 6203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * "Software"), to deal in the Software without restriction, including 7203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * without limitation the rights to use, copy, modify, merge, publish, 8203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * distribute, sublicense, and/or sell copies of the Software, and to 9203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * permit persons to whom the Software is furnished to do so, subject 10203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * to the following conditions: 11203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * The above copyright notice and this permission notice shall be included 12203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * in all copies or substantial portions of the Software. 13203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * 14203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 18203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 19203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 20203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * 22203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin */ 23203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 24203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin/** @file OMX_IndexExt.h - OpenMax IL version 1.1.2 25203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * The OMX_IndexExt header file contains extensions to the definitions 26203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * for both applications and components . 27203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin */ 28203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 29203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin#ifndef OMX_IndexExt_h 30203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin#define OMX_IndexExt_h 31203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 32203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin#ifdef __cplusplus 33203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekinextern "C" { 34203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin#endif /* __cplusplus */ 35203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 36203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin/* Each OMX header shall include all required header files to allow the 37203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * header to compile without errors. The includes below are required 38203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin * for this header file to compile successfully 39203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin */ 40203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin#include <OMX_Index.h> 41203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 42203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 43203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin/** Khronos standard extension indices. 44203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 45203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter GultekinThis enum lists the current Khronos extension indices to OpenMAX IL. 46203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin*/ 47203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekintypedef enum OMX_INDEXEXTTYPE { 48203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 49203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin /* Component parameters and configurations */ 50203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexExtComponentStartUnused = OMX_IndexKhronosExtensions + 0x00100000, 51203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexConfigCallbackRequest, /**< reference: OMX_CONFIG_CALLBACKREQUESTTYPE */ 52203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexConfigCommitMode, /**< reference: OMX_CONFIG_COMMITMODETYPE */ 53203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexConfigCommit, /**< reference: OMX_CONFIG_COMMITTYPE */ 541aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_IndexConfigAndroidVendorExtension, /**< reference: OMX_CONFIG_VENDOR_EXTENSIONTYPE */ 55203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 56203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin /* Port parameters and configurations */ 57203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexExtPortStartUnused = OMX_IndexKhronosExtensions + 0x00200000, 58203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 59203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin /* Audio parameters and configurations */ 60203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexExtAudioStartUnused = OMX_IndexKhronosExtensions + 0x00400000, 61c9a8a34e40b4e5ba76ace8879e479ebf5fbca3c5Changwan Ryu OMX_IndexParamAudioAndroidAc3, /**< reference: OMX_AUDIO_PARAM_ANDROID_AC3TYPE */ 621a8b0ed985b3767fdd795fb5216014e05b30791bVignesh Venkatasubramanian OMX_IndexParamAudioAndroidOpus, /**< reference: OMX_AUDIO_PARAM_ANDROID_OPUSTYPE */ 63e91cd213d439c076051b1fb02c8bc40c11791dbbJean-Michel Trivi OMX_IndexParamAudioAndroidAacPresentation, /**< reference: OMX_AUDIO_PARAM_ANDROID_AACPRESENTATIONTYPE */ 64806f23de71be2494cfabbe08d11c09606966a5d5Rachad OMX_IndexParamAudioAndroidEac3, /**< reference: OMX_AUDIO_PARAM_ANDROID_EAC3TYPE */ 655761a9abdb560b15379501ecf52d5bb01e7cc708Wonsik Kim OMX_IndexParamAudioProfileQuerySupported, /**< reference: OMX_AUDIO_PARAM_ANDROID_PROFILETYPE */ 6669eaed3663318ca4b7f881c2fa85b59958160ca0Chong Zhang OMX_IndexExtAudioEndUnused, 67203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 68203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin /* Image parameters and configurations */ 69203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexExtImageStartUnused = OMX_IndexKhronosExtensions + 0x00500000, 70203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 71203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin /* Video parameters and configurations */ 72203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexExtVideoStartUnused = OMX_IndexKhronosExtensions + 0x00600000, 73203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexParamNalStreamFormatSupported, /**< reference: OMX_NALSTREAMFORMATTYPE */ 74203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexParamNalStreamFormat, /**< reference: OMX_NALSTREAMFORMATTYPE */ 75203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexParamNalStreamFormatSelect, /**< reference: OMX_NALSTREAMFORMATTYPE */ 76203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexParamVideoVp8, /**< reference: OMX_VIDEO_PARAM_VP8TYPE */ 77203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexConfigVideoVp8ReferenceFrame, /**< reference: OMX_VIDEO_VP8REFERENCEFRAMETYPE */ 78203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexConfigVideoVp8ReferenceFrameType, /**< reference: OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE */ 795b155b84a24e0c7018e68a70c25de6c806c7ed4dAlex Glaznev OMX_IndexParamVideoAndroidVp8Encoder, /**< reference: OMX_VIDEO_PARAM_ANDROID_VP8ENCODERTYPE */ 80184077dee460d235c2f9ed3e6ecf9a6df06ae80cRachad OMX_IndexParamVideoHevc, /**< reference: OMX_VIDEO_PARAM_HEVCTYPE */ 81184077dee460d235c2f9ed3e6ecf9a6df06ae80cRachad OMX_IndexParamSliceSegments, /**< reference: OMX_VIDEO_SLICESEGMENTSTYPE */ 82dbadc8459b225acfca672b4301347d805a532fe0Hangyu Kuang OMX_IndexConfigAndroidIntraRefresh, /**< reference: OMX_VIDEO_CONFIG_ANDROID_INTRAREFRESHTYPE */ 833717b164fad9308483fd75eff85fdefb21a9bd12Praveen Chavan OMX_IndexParamAndroidVideoTemporalLayering, /**< reference: OMX_VIDEO_PARAM_ANDROID_TEMPORALLAYERINGTYPE */ 843717b164fad9308483fd75eff85fdefb21a9bd12Praveen Chavan OMX_IndexConfigAndroidVideoTemporalLayering, /**< reference: OMX_VIDEO_CONFIG_ANDROID_TEMPORALLAYERINGTYPE */ 8569eaed3663318ca4b7f881c2fa85b59958160ca0Chong Zhang OMX_IndexParamMaxFrameDurationForBitrateControl,/**< reference: OMX_PARAM_U32TYPE */ 8679d98e22071ec705cbeb32a5ba6872dfdc74cce7Vignesh Venkatasubramanian OMX_IndexParamVideoVp9, /**< reference: OMX_VIDEO_PARAM_VP9TYPE */ 8779d98e22071ec705cbeb32a5ba6872dfdc74cce7Vignesh Venkatasubramanian OMX_IndexParamVideoAndroidVp9Encoder, /**< reference: OMX_VIDEO_PARAM_ANDROID_VP9ENCODERTYPE */ 8869eaed3663318ca4b7f881c2fa85b59958160ca0Chong Zhang OMX_IndexExtVideoEndUnused, 89203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 90203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin /* Image & Video common configurations */ 91203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexExtCommonStartUnused = OMX_IndexKhronosExtensions + 0x00700000, 92203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 93203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin /* Other configurations */ 94203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexExtOtherStartUnused = OMX_IndexKhronosExtensions + 0x00800000, 9576d4c5cf733bbc15026611d555eb1497e5ab25d4Lajos Molnar OMX_IndexConfigAutoFramerateConversion, /**< reference: OMX_CONFIG_BOOLEANTYPE */ 9649bf8f78a8979de8c76265c1c3c3a1f8637e713cRonghua Wu OMX_IndexConfigPriority, /**< reference: OMX_PARAM_U32TYPE */ 97a39c205f87c6feebefc4a73043c3b1278373dbd3Ronghua Wu OMX_IndexConfigOperatingRate, /**< reference: OMX_PARAM_U32TYPE in Q16 format for video and in Hz for audio */ 981017a1eaa7e47e15b4f834e7d7b91e9cd2d09f35Lajos Molnar OMX_IndexParamConsumerUsageBits, /**< reference: OMX_PARAM_U32TYPE */ 990c77369428af1e6baaf98a069aa2873bc4d3df1dHangyu Kuang OMX_IndexConfigLatency, /**< reference: OMX_PARAM_U32TYPE */ 10069eaed3663318ca4b7f881c2fa85b59958160ca0Chong Zhang OMX_IndexExtOtherEndUnused, 101203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 102203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin /* Time configurations */ 103203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexExtTimeStartUnused = OMX_IndexKhronosExtensions + 0x00900000, 104203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 105203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin OMX_IndexExtMax = 0x7FFFFFFF 106203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin} OMX_INDEXEXTTYPE; 107203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 1081aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar#define OMX_MAX_STRINGVALUE_SIZE OMX_MAX_STRINGNAME_SIZE 1091aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar#define OMX_MAX_ANDROID_VENDOR_PARAMCOUNT 32 1101aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar 1111aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnartypedef enum OMX_ANDROID_VENDOR_VALUETYPE { 1121aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_AndroidVendorValueInt32 = 0, /*<< int32_t value */ 1131aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_AndroidVendorValueInt64, /*<< int64_t value */ 1141aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_AndroidVendorValueString, /*<< string value */ 1151aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_AndroidVendorValueEndUnused, 1161aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar} OMX_ANDROID_VENDOR_VALUETYPE; 1171aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar 1181aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar/** 1191aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * Structure describing a single value of an Android vendor extension. 1201aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * 1211aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * STRUCTURE MEMBERS: 1221aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * cKey : parameter value name. 1231aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * eValueType : parameter value type 1241aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * bSet : if false, the parameter is not set (for OMX_GetConfig) or is unset (OMX_SetConfig) 1251aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * if true, the parameter is set to the corresponding value below 1261aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * nInt64 : int64 value 1271aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * cString : string value 1281aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar */ 1291aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnartypedef struct OMX_CONFIG_ANDROID_VENDOR_PARAMTYPE { 1301aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_U8 cKey[OMX_MAX_STRINGNAME_SIZE]; 1311aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_ANDROID_VENDOR_VALUETYPE eValueType; 1321aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_BOOL bSet; 1331aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar union { 1341aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_S32 nInt32; 1351aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_S64 nInt64; 1361aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_U8 cString[OMX_MAX_STRINGVALUE_SIZE]; 1371aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar }; 1381aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar} OMX_CONFIG_ANDROID_VENDOR_PARAMTYPE; 1391aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar 1401aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar/** 1411aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * OMX_CONFIG_ANDROID_VENDOR_EXTENSIONTYPE is the structure for an Android vendor extension 1421aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * supported by the component. This structure enumerates the various extension parameters and their 1431aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * values. 1441aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * 1451aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * Android vendor extensions have a name and one or more parameter values - each with a string key - 1461aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * that are set together. The values are exposed to Android applications via a string key that is 1471aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * the concatenation of 'vendor', the extension name and the parameter key, each separated by dot 1481aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * (.), with any trailing '.value' suffix(es) removed (though optionally allowed). 1491aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * 1501aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * Extension names and parameter keys are subject to the following rules: 1511aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * - Each SHALL contain a set of lowercase alphanumeric (underscore allowed) tags separated by 1521aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * dot (.) or dash (-). 1531aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * - The first character of the first tag, and any tag following a dot SHALL not start with a 1541aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * digit. 1551aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * - Tags 'value', 'vendor', 'omx' and 'android' (even if trailed and/or followed by any number 1561aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * of underscores) are prohibited in the extension name. 1571aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * - Tags 'vendor', 'omx' and 'android' (even if trailed and/or followed by any number 1581aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * of underscores) are prohibited in parameter keys. 1591aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * - The tag 'value' (even if trailed and/or followed by any number 1601aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * of underscores) is prohibited in parameter keys with the following exception: 1611aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * the parameter key may be exactly 'value' 1621aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * - The parameter key for extensions with a single parameter value SHALL be 'value' 1631aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * - No two extensions SHALL have the same name 1641aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * - No extension's name SHALL start with another extension's NAME followed by a dot (.) 1651aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * - No two parameters of an extension SHALL have the same key 1661aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * 1671aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * This config can be used with both OMX_GetConfig and OMX_SetConfig. In the OMX_GetConfig 1681aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * case, the caller specifies nIndex and nParamSizeUsed. The component fills in cName, 1691aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * eDir and nParamCount. Additionally, if nParamSizeUsed is not less than nParamCount, the 1701aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * component fills out the parameter values (nParam) with the current values for each parameter 1711aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * of the vendor extension. 1721aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * 1731aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * The value of nIndex goes from 0 to N-1, where N is the number of Android vendor extensions 1741aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * supported by the component. The component does not need to report N as the caller can determine 1751aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * N by enumerating all extensions supported by the component. The component may not support any 1761aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * extensions. If there are no more extensions, OMX_GetParameter returns OMX_ErrorNoMore. The 1771aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * component supplies extensions in the order it wants clients to set them. 1781aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * 1791aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * The component SHALL return OMX_ErrorNone for all cases where nIndex is less than N (specifically 1801aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * even in the case of where nParamCount is greater than nParamSizeUsed). 1811aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * 1821aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * In the OMX_SetConfig case the field nIndex is ignored. If the component supports an Android 1831aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * vendor extension with the name in cName, it SHALL configure the parameter values for that 1841aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * extension according to the parameters in nParam. nParamCount is the number of valid parameters 1851aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * in the nParam array, and nParamSizeUsed is the size of the nParam array. (nParamSizeUsed 1861aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * SHALL be at least nParamCount) Parameters that are part of a vendor extension but are not 1871aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * in the nParam array are assumed to be unset (this is different from not changed). 1881aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * All parameter values SHALL have distinct keys in nParam (the component can assume that this 1891aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * is the case. Otherwise, the actual value for the parameters that are multiply defined can 1901aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * be any of the set values.) 1911aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * 1921aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * Return values in case of OMX_SetConfig: 1931aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * OMX_ErrorUnsupportedIndex: the component does not support the extension specified by cName 1941aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * OMX_ErrorUnsupportedSetting: the component does not support some or any of the parameters 1951aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * (names) specified in nParam 1961aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * OMX_ErrorBadParameter: the parameter is invalid (e.g. nParamCount is greater than 1971aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * nParamSizeUsed, or some parameter value has invalid type) 1981aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * 1991aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * STRUCTURE MEMBERS: 2001aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * nSize : size of the structure in bytes 2011aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * nVersion : OMX specification version information 2021aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * cName : name of vendor extension 2031aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * nParamCount : the number of parameter values that are part of this vendor extension 2041aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * nParamSizeUsed : the size of nParam 2051aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * (must be at least 1 and at most OMX_MAX_ANDROID_VENDOR_PARAMCOUNT) 2061aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar * param : the parameter values 2071aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar */ 2081aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnartypedef struct OMX_CONFIG_ANDROID_VENDOR_EXTENSIONTYPE { 2091aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_U32 nSize; 2101aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_VERSIONTYPE nVersion; 2111aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_U32 nIndex; 2121aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_U8 cName[OMX_MAX_STRINGNAME_SIZE]; 2131aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_DIRTYPE eDir; 2141aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_U32 nParamCount; 2151aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_U32 nParamSizeUsed; 2161aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar OMX_CONFIG_ANDROID_VENDOR_PARAMTYPE param[1]; 2171aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar} OMX_CONFIG_ANDROID_VENDOR_EXTENSIONTYPE; 2181aeef218c90557b42763f8bf78c1a6bd8c0717d8Lajos Molnar 219203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin#ifdef __cplusplus 220203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin} 221203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin#endif /* __cplusplus */ 222203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin 223203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin#endif /* OMX_IndexExt_h */ 224203f89a75a28222b1d9940227d266a3bdd7f99b9Kunter Gultekin/* File EOF */ 225