1334de520b0369215b7931fefa424fb92d295f0ebJames Dong/* ------------------------------------------------------------------ 2334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Copyright (C) 1998-2009 PacketVideo 3334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 4334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Licensed under the Apache License, Version 2.0 (the "License"); 5334de520b0369215b7931fefa424fb92d295f0ebJames Dong * you may not use this file except in compliance with the License. 6334de520b0369215b7931fefa424fb92d295f0ebJames Dong * You may obtain a copy of the License at 7334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 8334de520b0369215b7931fefa424fb92d295f0ebJames Dong * http://www.apache.org/licenses/LICENSE-2.0 9334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 10334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Unless required by applicable law or agreed to in writing, software 11334de520b0369215b7931fefa424fb92d295f0ebJames Dong * distributed under the License is distributed on an "AS IS" BASIS, 12334de520b0369215b7931fefa424fb92d295f0ebJames Dong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13334de520b0369215b7931fefa424fb92d295f0ebJames Dong * express or implied. 14334de520b0369215b7931fefa424fb92d295f0ebJames Dong * See the License for the specific language governing permissions 15334de520b0369215b7931fefa424fb92d295f0ebJames Dong * and limitations under the License. 16334de520b0369215b7931fefa424fb92d295f0ebJames Dong * ------------------------------------------------------------------- 17334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 18334de520b0369215b7931fefa424fb92d295f0ebJames Dong/* 19a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Copyright (c) 2008 The Khronos Group Inc. 20a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * 21334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Permission is hereby granted, free of charge, to any person obtaining 22334de520b0369215b7931fefa424fb92d295f0ebJames Dong * a copy of this software and associated documentation files (the 23334de520b0369215b7931fefa424fb92d295f0ebJames Dong * "Software"), to deal in the Software without restriction, including 24334de520b0369215b7931fefa424fb92d295f0ebJames Dong * without limitation the rights to use, copy, modify, merge, publish, 25334de520b0369215b7931fefa424fb92d295f0ebJames Dong * distribute, sublicense, and/or sell copies of the Software, and to 26334de520b0369215b7931fefa424fb92d295f0ebJames Dong * permit persons to whom the Software is furnished to do so, subject 27a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * to the following conditions: 28334de520b0369215b7931fefa424fb92d295f0ebJames Dong * The above copyright notice and this permission notice shall be included 29a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * in all copies or substantial portions of the Software. 30a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * 31334de520b0369215b7931fefa424fb92d295f0ebJames Dong * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 32334de520b0369215b7931fefa424fb92d295f0ebJames Dong * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 33334de520b0369215b7931fefa424fb92d295f0ebJames Dong * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 34334de520b0369215b7931fefa424fb92d295f0ebJames Dong * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 35334de520b0369215b7931fefa424fb92d295f0ebJames Dong * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 36334de520b0369215b7931fefa424fb92d295f0ebJames Dong * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 37a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 38334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 39334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 40334de520b0369215b7931fefa424fb92d295f0ebJames Dong 41334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** OMX_Component.h - OpenMax IL version 1.1.2 42334de520b0369215b7931fefa424fb92d295f0ebJames Dong * The OMX_Component header file contains the definitions used to define 43334de520b0369215b7931fefa424fb92d295f0ebJames Dong * the public interface of a component. This header file is intended to 44334de520b0369215b7931fefa424fb92d295f0ebJames Dong * be used by both the application and the component. 45334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 46334de520b0369215b7931fefa424fb92d295f0ebJames Dong 47334de520b0369215b7931fefa424fb92d295f0ebJames Dong#ifndef OMX_Component_h 48334de520b0369215b7931fefa424fb92d295f0ebJames Dong#define OMX_Component_h 49334de520b0369215b7931fefa424fb92d295f0ebJames Dong 50334de520b0369215b7931fefa424fb92d295f0ebJames Dong#ifdef __cplusplus 51334de520b0369215b7931fefa424fb92d295f0ebJames Dongextern "C" { 52334de520b0369215b7931fefa424fb92d295f0ebJames Dong#endif /* __cplusplus */ 53334de520b0369215b7931fefa424fb92d295f0ebJames Dong 54334de520b0369215b7931fefa424fb92d295f0ebJames Dong 55334de520b0369215b7931fefa424fb92d295f0ebJames Dong 56334de520b0369215b7931fefa424fb92d295f0ebJames Dong/* Each OMX header must include all required header files to allow the 57334de520b0369215b7931fefa424fb92d295f0ebJames Dong * header to compile without errors. The includes below are required 58a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * for this header file to compile successfully 59334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 60334de520b0369215b7931fefa424fb92d295f0ebJames Dong 61334de520b0369215b7931fefa424fb92d295f0ebJames Dong#include <OMX_Audio.h> 62334de520b0369215b7931fefa424fb92d295f0ebJames Dong#include <OMX_Video.h> 63334de520b0369215b7931fefa424fb92d295f0ebJames Dong#include <OMX_Image.h> 64334de520b0369215b7931fefa424fb92d295f0ebJames Dong#include <OMX_Other.h> 65334de520b0369215b7931fefa424fb92d295f0ebJames Dong 66334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup comp */ 67a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnartypedef enum OMX_PORTDOMAINTYPE { 68a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_PortDomainAudio, 69a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_PortDomainVideo, 70a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_PortDomainImage, 71334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_PortDomainOther, 72a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_PortDomainKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 73334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_PortDomainVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 74334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_PortDomainMax = 0x7ffffff 75334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_PORTDOMAINTYPE; 76334de520b0369215b7931fefa424fb92d295f0ebJames Dong 77334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup comp */ 78334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_PARAM_PORTDEFINITIONTYPE { 79334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; /**< Size of the structure in bytes */ 80334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 81334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; /**< Port number the structure applies to */ 82334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_DIRTYPE eDir; /**< Direction (input or output) of this port */ 83334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nBufferCountActual; /**< The actual number of buffers allocated on this port */ 84334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nBufferCountMin; /**< The minimum number of buffers this port requires */ 85334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nBufferSize; /**< Size, in bytes, for buffers to be used for this channel */ 86334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bEnabled; /**< Ports default to enabled and are enabled/disabled by 87334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_CommandPortEnable/OMX_CommandPortDisable. 88334de520b0369215b7931fefa424fb92d295f0ebJames Dong When disabled a port is unpopulated. A disabled port 89334de520b0369215b7931fefa424fb92d295f0ebJames Dong is not populated with buffers on a transition to IDLE. */ 90334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bPopulated; /**< Port is populated with all of its buffers as indicated by 91a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar nBufferCountActual. A disabled port is always unpopulated. 92334de520b0369215b7931fefa424fb92d295f0ebJames Dong An enabled port is populated on a transition to OMX_StateIdle 93334de520b0369215b7931fefa424fb92d295f0ebJames Dong and unpopulated on a transition to loaded. */ 94334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_PORTDOMAINTYPE eDomain; /**< Domain of the port. Determines the contents of metadata below. */ 95334de520b0369215b7931fefa424fb92d295f0ebJames Dong union { 96334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_AUDIO_PORTDEFINITIONTYPE audio; 97334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_PORTDEFINITIONTYPE video; 98334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IMAGE_PORTDEFINITIONTYPE image; 99334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_OTHER_PORTDEFINITIONTYPE other; 100334de520b0369215b7931fefa424fb92d295f0ebJames Dong } format; 101334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bBuffersContiguous; 102334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nBufferAlignment; 103334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_PARAM_PORTDEFINITIONTYPE; 104334de520b0369215b7931fefa424fb92d295f0ebJames Dong 105334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup comp */ 106a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnartypedef struct OMX_PARAM_U32TYPE { 107a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSize; /**< Size of this structure, in Bytes */ 108a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 109a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nPortIndex; /**< port that this structure applies to */ 110334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nU32; /**< U32 value */ 111334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_PARAM_U32TYPE; 112334de520b0369215b7931fefa424fb92d295f0ebJames Dong 113334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup rpm */ 114334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_SUSPENSIONPOLICYTYPE { 115334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_SuspensionDisabled, /**< No suspension; v1.0 behavior */ 116a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_SuspensionEnabled, /**< Suspension allowed */ 117a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_SuspensionPolicyKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 118334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_SuspensionPolicyStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 119334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_SuspensionPolicyMax = 0x7fffffff 120334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_SUSPENSIONPOLICYTYPE; 121334de520b0369215b7931fefa424fb92d295f0ebJames Dong 122334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup rpm */ 123334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_PARAM_SUSPENSIONPOLICYTYPE { 124a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSize; 125a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VERSIONTYPE nVersion; 126334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_SUSPENSIONPOLICYTYPE ePolicy; 127334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_PARAM_SUSPENSIONPOLICYTYPE; 128334de520b0369215b7931fefa424fb92d295f0ebJames Dong 129334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup rpm */ 130334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_SUSPENSIONTYPE { 131334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_NotSuspended, /**< component is not suspended */ 132334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_Suspended, /**< component is suspended */ 133a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_SuspensionKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 134334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_SuspensionVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 135334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_SuspendMax = 0x7FFFFFFF 136334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_SUSPENSIONTYPE; 137334de520b0369215b7931fefa424fb92d295f0ebJames Dong 138334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup rpm */ 139334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_PARAM_SUSPENSIONTYPE { 140a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSize; 141a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VERSIONTYPE nVersion; 142a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_SUSPENSIONTYPE eType; 143334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_PARAM_SUSPENSIONTYPE ; 144334de520b0369215b7931fefa424fb92d295f0ebJames Dong 145334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_CONFIG_BOOLEANTYPE { 146334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 147334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 148a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL bEnabled; 149334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_CONFIG_BOOLEANTYPE; 150334de520b0369215b7931fefa424fb92d295f0ebJames Dong 151334de520b0369215b7931fefa424fb92d295f0ebJames Dong/* Parameter specifying the content uri to use. */ 152334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup cp */ 153334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_PARAM_CONTENTURITYPE 154334de520b0369215b7931fefa424fb92d295f0ebJames Dong{ 155334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; /**< size of the structure in bytes, including 156334de520b0369215b7931fefa424fb92d295f0ebJames Dong actual URI name */ 157334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 158334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U8 contentURI[1]; /**< The URI name */ 159334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_PARAM_CONTENTURITYPE; 160334de520b0369215b7931fefa424fb92d295f0ebJames Dong 161334de520b0369215b7931fefa424fb92d295f0ebJames Dong/* Parameter specifying the pipe to use. */ 162334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup cp */ 163334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_PARAM_CONTENTPIPETYPE 164334de520b0369215b7931fefa424fb92d295f0ebJames Dong{ 165334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; /**< size of the structure in bytes */ 166334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 167334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_HANDLETYPE hPipe; /**< The pipe handle*/ 168334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_PARAM_CONTENTPIPETYPE; 169334de520b0369215b7931fefa424fb92d295f0ebJames Dong 170334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup rpm */ 171334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_RESOURCECONCEALMENTTYPE { 172334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; /**< size of the structure in bytes */ 173334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 174a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL bResourceConcealmentForbidden; /**< disallow the use of resource concealment 175a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar methods (like degrading algorithm quality to 176a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar lower resource consumption or functional bypass) 177334de520b0369215b7931fefa424fb92d295f0ebJames Dong on a component as a resolution to resource conflicts. */ 178334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_RESOURCECONCEALMENTTYPE; 179334de520b0369215b7931fefa424fb92d295f0ebJames Dong 180334de520b0369215b7931fefa424fb92d295f0ebJames Dong 181334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup metadata */ 182334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_METADATACHARSETTYPE { 183334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetUnknown = 0, 184334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetASCII, 185334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetBinary, 186334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetCodePage1252, 187334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetUTF8, 188334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetJavaConformantUTF8, 189334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetUTF7, 190334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetImapUTF7, 191a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_MetadataCharsetUTF16LE, 192334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetUTF16BE, 193334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetGB12345, 194334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetHZGB2312, 195334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetGB2312, 196334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetGB18030, 197334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetGBK, 198334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetBig5, 199334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetISO88591, 200334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetISO88592, 201334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetISO88593, 202334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetISO88594, 203334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetISO88595, 204334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetISO88596, 205334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetISO88597, 206334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetISO88598, 207334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetISO88599, 208334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetISO885910, 209334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetISO885913, 210334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetISO885914, 211334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetISO885915, 212334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetShiftJIS, 213334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetISO2022JP, 214334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetISO2022JP1, 215334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetISOEUCJP, 216334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetSMS7Bit, 217a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_MetadataCharsetKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 218334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 219334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataCharsetTypeMax= 0x7FFFFFFF 220334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_METADATACHARSETTYPE; 221334de520b0369215b7931fefa424fb92d295f0ebJames Dong 222334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup metadata */ 223334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_METADATASCOPETYPE 224334de520b0369215b7931fefa424fb92d295f0ebJames Dong{ 225334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataScopeAllLevels, 226334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataScopeTopLevel, 227334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataScopePortLevel, 228334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataScopeNodeLevel, 229a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_MetadataScopeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 230334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataScopeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 231334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataScopeTypeMax = 0x7fffffff 232334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_METADATASCOPETYPE; 233334de520b0369215b7931fefa424fb92d295f0ebJames Dong 234334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup metadata */ 235334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_METADATASEARCHMODETYPE 236334de520b0369215b7931fefa424fb92d295f0ebJames Dong{ 237334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataSearchValueSizeByIndex, 238334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataSearchItemByIndex, 239334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataSearchNextItemByKey, 240a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_MetadataSearchKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 241334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataSearchVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 242334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_MetadataSearchTypeMax = 0x7fffffff 243334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_METADATASEARCHMODETYPE; 244334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup metadata */ 245334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_CONFIG_METADATAITEMCOUNTTYPE 246334de520b0369215b7931fefa424fb92d295f0ebJames Dong{ 247334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 248334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 249334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_METADATASCOPETYPE eScopeMode; 250334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nScopeSpecifier; 251334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nMetadataItemCount; 252334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_CONFIG_METADATAITEMCOUNTTYPE; 253334de520b0369215b7931fefa424fb92d295f0ebJames Dong 254334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup metadata */ 255334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_CONFIG_METADATAITEMTYPE 256334de520b0369215b7931fefa424fb92d295f0ebJames Dong{ 257334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 258334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 259334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_METADATASCOPETYPE eScopeMode; 260334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nScopeSpecifier; 261a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nMetadataItemIndex; 262334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_METADATASEARCHMODETYPE eSearchMode; 263334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_METADATACHARSETTYPE eKeyCharset; 264334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U8 nKeySizeUsed; 265334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U8 nKey[128]; 266334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_METADATACHARSETTYPE eValueCharset; 267334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_STRING sLanguageCountry; 268334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nValueMaxSize; 269334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nValueSizeUsed; 270334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U8 nValue[1]; 271334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_CONFIG_METADATAITEMTYPE; 272334de520b0369215b7931fefa424fb92d295f0ebJames Dong 273334de520b0369215b7931fefa424fb92d295f0ebJames Dong/* @ingroup metadata */ 274334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_CONFIG_CONTAINERNODECOUNTTYPE 275334de520b0369215b7931fefa424fb92d295f0ebJames Dong{ 276334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 277334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 278334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bAllKeys; 279334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nParentNodeID; 280334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nNumNodes; 281334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_CONFIG_CONTAINERNODECOUNTTYPE; 282334de520b0369215b7931fefa424fb92d295f0ebJames Dong 283334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup metadata */ 284334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_CONFIG_CONTAINERNODEIDTYPE 285334de520b0369215b7931fefa424fb92d295f0ebJames Dong{ 286334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 287334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 288334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bAllKeys; 289334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nParentNodeID; 290a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nNodeIndex; 291a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nNodeID; 292334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_STRING cNodeName; 293334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bIsLeafType; 294334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_CONFIG_CONTAINERNODEIDTYPE; 295334de520b0369215b7931fefa424fb92d295f0ebJames Dong 296334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @ingroup metadata */ 297a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnartypedef struct OMX_PARAM_METADATAFILTERTYPE 298a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar{ 299a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSize; 300a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VERSIONTYPE nVersion; 301a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL bAllKeys; /* if true then this structure refers to all keys and 302334de520b0369215b7931fefa424fb92d295f0ebJames Dong * the three key fields below are ignored */ 303334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_METADATACHARSETTYPE eKeyCharset; 304a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nKeySizeUsed; 305a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U8 nKey [128]; 306334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nLanguageCountrySizeUsed; 307334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U8 nLanguageCountry[128]; 308a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL bEnabled; /* if true then key is part of filter (e.g. 309334de520b0369215b7931fefa424fb92d295f0ebJames Dong * retained for query later). If false then 310334de520b0369215b7931fefa424fb92d295f0ebJames Dong * key is not part of filter */ 311a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar} OMX_PARAM_METADATAFILTERTYPE; 312334de520b0369215b7931fefa424fb92d295f0ebJames Dong 313a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** The OMX_HANDLETYPE structure defines the component handle. The component 314334de520b0369215b7931fefa424fb92d295f0ebJames Dong * handle is used to access all of the component's public methods and also 315334de520b0369215b7931fefa424fb92d295f0ebJames Dong * contains pointers to the component's private data area. The component 316334de520b0369215b7931fefa424fb92d295f0ebJames Dong * handle is initialized by the OMX core (with help from the component) 317334de520b0369215b7931fefa424fb92d295f0ebJames Dong * during the process of loading the component. After the component is 318334de520b0369215b7931fefa424fb92d295f0ebJames Dong * successfully loaded, the application can safely access any of the 319334de520b0369215b7931fefa424fb92d295f0ebJames Dong * component's public functions (although some may return an error because 320334de520b0369215b7931fefa424fb92d295f0ebJames Dong * the state is inappropriate for the access). 321a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * 322334de520b0369215b7931fefa424fb92d295f0ebJames Dong * @ingroup comp 323334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 324334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_COMPONENTTYPE 325334de520b0369215b7931fefa424fb92d295f0ebJames Dong{ 326334de520b0369215b7931fefa424fb92d295f0ebJames Dong /** The size of this structure, in bytes. It is the responsibility 327334de520b0369215b7931fefa424fb92d295f0ebJames Dong of the allocator of this structure to fill in this value. Since 328334de520b0369215b7931fefa424fb92d295f0ebJames Dong this structure is allocated by the GetHandle function, this 329334de520b0369215b7931fefa424fb92d295f0ebJames Dong function will fill in this value. */ 330334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 331334de520b0369215b7931fefa424fb92d295f0ebJames Dong 332a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar /** nVersion is the version of the OMX specification that the structure 333a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar is built against. It is the responsibility of the creator of this 334a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar structure to initialize this value and every user of this structure 335a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar should verify that it knows how to use the exact version of 336334de520b0369215b7931fefa424fb92d295f0ebJames Dong this structure found herein. */ 337334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 338334de520b0369215b7931fefa424fb92d295f0ebJames Dong 339a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar /** pComponentPrivate is a pointer to the component private data area. 340a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar This member is allocated and initialized by the component when the 341a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar component is first loaded. The application should not access this 342334de520b0369215b7931fefa424fb92d295f0ebJames Dong data area. */ 343334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_PTR pComponentPrivate; 344334de520b0369215b7931fefa424fb92d295f0ebJames Dong 345a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar /** pApplicationPrivate is a pointer that is a parameter to the 346a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_GetHandle method, and contains an application private value 347a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar provided by the IL client. This application private data is 348334de520b0369215b7931fefa424fb92d295f0ebJames Dong returned to the IL Client by OMX in all callbacks */ 349334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_PTR pApplicationPrivate; 350334de520b0369215b7931fefa424fb92d295f0ebJames Dong 351a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar /** refer to OMX_GetComponentVersion in OMX_core.h or the OMX IL 352334de520b0369215b7931fefa424fb92d295f0ebJames Dong specification for details on the GetComponentVersion method. 353334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 354334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*GetComponentVersion)( 355334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hComponent, 356334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_OUT OMX_STRING pComponentName, 357334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_OUT OMX_VERSIONTYPE* pComponentVersion, 358334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_OUT OMX_VERSIONTYPE* pSpecVersion, 359334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_OUT OMX_UUIDTYPE* pComponentUUID); 360334de520b0369215b7931fefa424fb92d295f0ebJames Dong 361a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar /** refer to OMX_SendCommand in OMX_core.h or the OMX IL 362334de520b0369215b7931fefa424fb92d295f0ebJames Dong specification for details on the SendCommand method. 363334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 364334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*SendCommand)( 365334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hComponent, 366334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_COMMANDTYPE Cmd, 367334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_U32 nParam1, 368334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_PTR pCmdData); 369334de520b0369215b7931fefa424fb92d295f0ebJames Dong 370a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar /** refer to OMX_GetParameter in OMX_core.h or the OMX IL 371334de520b0369215b7931fefa424fb92d295f0ebJames Dong specification for details on the GetParameter method. 372334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 373334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*GetParameter)( 374a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_IN OMX_HANDLETYPE hComponent, 375a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_IN OMX_INDEXTYPE nParamIndex, 376334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_INOUT OMX_PTR pComponentParameterStructure); 377334de520b0369215b7931fefa424fb92d295f0ebJames Dong 378334de520b0369215b7931fefa424fb92d295f0ebJames Dong 379a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar /** refer to OMX_SetParameter in OMX_core.h or the OMX IL 380334de520b0369215b7931fefa424fb92d295f0ebJames Dong specification for details on the SetParameter method. 381334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 382334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*SetParameter)( 383a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_IN OMX_HANDLETYPE hComponent, 384334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_INDEXTYPE nIndex, 385334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_PTR pComponentParameterStructure); 386334de520b0369215b7931fefa424fb92d295f0ebJames Dong 387334de520b0369215b7931fefa424fb92d295f0ebJames Dong 388a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar /** refer to OMX_GetConfig in OMX_core.h or the OMX IL 389334de520b0369215b7931fefa424fb92d295f0ebJames Dong specification for details on the GetConfig method. 390334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 391334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*GetConfig)( 392334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hComponent, 393a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_IN OMX_INDEXTYPE nIndex, 394334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_INOUT OMX_PTR pComponentConfigStructure); 395334de520b0369215b7931fefa424fb92d295f0ebJames Dong 396334de520b0369215b7931fefa424fb92d295f0ebJames Dong 397a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar /** refer to OMX_SetConfig in OMX_core.h or the OMX IL 398334de520b0369215b7931fefa424fb92d295f0ebJames Dong specification for details on the SetConfig method. 399334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 400334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*SetConfig)( 401334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hComponent, 402a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_IN OMX_INDEXTYPE nIndex, 403334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_PTR pComponentConfigStructure); 404334de520b0369215b7931fefa424fb92d295f0ebJames Dong 405334de520b0369215b7931fefa424fb92d295f0ebJames Dong 406a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar /** refer to OMX_GetExtensionIndex in OMX_core.h or the OMX IL 407334de520b0369215b7931fefa424fb92d295f0ebJames Dong specification for details on the GetExtensionIndex method. 408334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 409334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*GetExtensionIndex)( 410334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hComponent, 411334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_STRING cParameterName, 412334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_OUT OMX_INDEXTYPE* pIndexType); 413334de520b0369215b7931fefa424fb92d295f0ebJames Dong 414334de520b0369215b7931fefa424fb92d295f0ebJames Dong 415a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar /** refer to OMX_GetState in OMX_core.h or the OMX IL 416334de520b0369215b7931fefa424fb92d295f0ebJames Dong specification for details on the GetState method. 417334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 418334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*GetState)( 419334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hComponent, 420334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_OUT OMX_STATETYPE* pState); 421334de520b0369215b7931fefa424fb92d295f0ebJames Dong 422a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar 423334de520b0369215b7931fefa424fb92d295f0ebJames Dong /** The ComponentTunnelRequest method will interact with another OMX 424334de520b0369215b7931fefa424fb92d295f0ebJames Dong component to determine if tunneling is possible and to setup the 425a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar tunneling. The return codes for this method can be used to 426334de520b0369215b7931fefa424fb92d295f0ebJames Dong determine if tunneling is not possible, or if tunneling is not 427a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar supported. 428a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar 429334de520b0369215b7931fefa424fb92d295f0ebJames Dong Base profile components (i.e. non-interop) do not support this 430a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar method and should return OMX_ErrorNotImplemented 431334de520b0369215b7931fefa424fb92d295f0ebJames Dong 432a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar The interop profile component MUST support tunneling to another 433a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar interop profile component with a compatible port parameters. 434334de520b0369215b7931fefa424fb92d295f0ebJames Dong A component may also support proprietary communication. 435a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar 436a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar If proprietary communication is supported the negotiation of 437a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar proprietary communication is done outside of OMX in a vendor 438a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar specific way. It is only required that the proper result be 439a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar returned and the details of how the setup is done is left 440a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar to the component implementation. 441a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar 442334de520b0369215b7931fefa424fb92d295f0ebJames Dong When this method is invoked when nPort in an output port, the 443334de520b0369215b7931fefa424fb92d295f0ebJames Dong component will: 444a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar 1. Populate the pTunnelSetup structure with the output port's 445334de520b0369215b7931fefa424fb92d295f0ebJames Dong requirements and constraints for the tunnel. 446334de520b0369215b7931fefa424fb92d295f0ebJames Dong 447334de520b0369215b7931fefa424fb92d295f0ebJames Dong When this method is invoked when nPort in an input port, the 448334de520b0369215b7931fefa424fb92d295f0ebJames Dong component will: 449a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar 1. Query the necessary parameters from the output port to 450334de520b0369215b7931fefa424fb92d295f0ebJames Dong determine if the ports are compatible for tunneling 451334de520b0369215b7931fefa424fb92d295f0ebJames Dong 2. If the ports are compatible, the component should store 452334de520b0369215b7931fefa424fb92d295f0ebJames Dong the tunnel step provided by the output port 453334de520b0369215b7931fefa424fb92d295f0ebJames Dong 3. Determine which port (either input or output) is the buffer 454334de520b0369215b7931fefa424fb92d295f0ebJames Dong supplier, and call OMX_SetParameter on the output port to 455334de520b0369215b7931fefa424fb92d295f0ebJames Dong indicate this selection. 456a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar 457334de520b0369215b7931fefa424fb92d295f0ebJames Dong The component will return from this call within 5 msec. 458a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar 459334de520b0369215b7931fefa424fb92d295f0ebJames Dong @param [in] hComp 460334de520b0369215b7931fefa424fb92d295f0ebJames Dong Handle of the component to be accessed. This is the component 461334de520b0369215b7931fefa424fb92d295f0ebJames Dong handle returned by the call to the OMX_GetHandle method. 462334de520b0369215b7931fefa424fb92d295f0ebJames Dong @param [in] nPort 463334de520b0369215b7931fefa424fb92d295f0ebJames Dong nPort is used to select the port on the component to be used 464334de520b0369215b7931fefa424fb92d295f0ebJames Dong for tunneling. 465334de520b0369215b7931fefa424fb92d295f0ebJames Dong @param [in] hTunneledComp 466a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar Handle of the component to tunnel with. This is the component 467334de520b0369215b7931fefa424fb92d295f0ebJames Dong handle returned by the call to the OMX_GetHandle method. When 468334de520b0369215b7931fefa424fb92d295f0ebJames Dong this parameter is 0x0 the component should setup the port for 469334de520b0369215b7931fefa424fb92d295f0ebJames Dong communication with the application / IL Client. 470334de520b0369215b7931fefa424fb92d295f0ebJames Dong @param [in] nPortOutput 471334de520b0369215b7931fefa424fb92d295f0ebJames Dong nPortOutput is used indicate the port the component should 472334de520b0369215b7931fefa424fb92d295f0ebJames Dong tunnel with. 473334de520b0369215b7931fefa424fb92d295f0ebJames Dong @param [in] pTunnelSetup 474334de520b0369215b7931fefa424fb92d295f0ebJames Dong Pointer to the tunnel setup structure. When nPort is an output port 475334de520b0369215b7931fefa424fb92d295f0ebJames Dong the component should populate the fields of this structure. When 476334de520b0369215b7931fefa424fb92d295f0ebJames Dong When nPort is an input port the component should review the setup 477334de520b0369215b7931fefa424fb92d295f0ebJames Dong provided by the component with the output port. 478334de520b0369215b7931fefa424fb92d295f0ebJames Dong @return OMX_ERRORTYPE 479334de520b0369215b7931fefa424fb92d295f0ebJames Dong If the command successfully executes, the return code will be 480334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. 481334de520b0369215b7931fefa424fb92d295f0ebJames Dong @ingroup tun 482334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 483334de520b0369215b7931fefa424fb92d295f0ebJames Dong 484334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*ComponentTunnelRequest)( 485334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hComp, 486334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_U32 nPort, 487334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hTunneledComp, 488334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_U32 nTunneledPort, 489a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_INOUT OMX_TUNNELSETUPTYPE* pTunnelSetup); 490334de520b0369215b7931fefa424fb92d295f0ebJames Dong 491a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar /** refer to OMX_UseBuffer in OMX_core.h or the OMX IL 492334de520b0369215b7931fefa424fb92d295f0ebJames Dong specification for details on the UseBuffer method. 493334de520b0369215b7931fefa424fb92d295f0ebJames Dong @ingroup buf 494334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 495334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*UseBuffer)( 496334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hComponent, 497334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr, 498334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_U32 nPortIndex, 499334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_PTR pAppPrivate, 500334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_U32 nSizeBytes, 501334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_U8* pBuffer); 502334de520b0369215b7931fefa424fb92d295f0ebJames Dong 503a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar /** refer to OMX_AllocateBuffer in OMX_core.h or the OMX IL 504334de520b0369215b7931fefa424fb92d295f0ebJames Dong specification for details on the AllocateBuffer method. 505334de520b0369215b7931fefa424fb92d295f0ebJames Dong @ingroup buf 506334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 507334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*AllocateBuffer)( 508334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hComponent, 509334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_INOUT OMX_BUFFERHEADERTYPE** ppBuffer, 510334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_U32 nPortIndex, 511334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_PTR pAppPrivate, 512334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_U32 nSizeBytes); 513334de520b0369215b7931fefa424fb92d295f0ebJames Dong 514a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar /** refer to OMX_FreeBuffer in OMX_core.h or the OMX IL 515334de520b0369215b7931fefa424fb92d295f0ebJames Dong specification for details on the FreeBuffer method. 516334de520b0369215b7931fefa424fb92d295f0ebJames Dong @ingroup buf 517334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 518334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*FreeBuffer)( 519334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hComponent, 520334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_U32 nPortIndex, 521334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_BUFFERHEADERTYPE* pBuffer); 522334de520b0369215b7931fefa424fb92d295f0ebJames Dong 523a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar /** refer to OMX_EmptyThisBuffer in OMX_core.h or the OMX IL 524334de520b0369215b7931fefa424fb92d295f0ebJames Dong specification for details on the EmptyThisBuffer method. 525334de520b0369215b7931fefa424fb92d295f0ebJames Dong @ingroup buf 526334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 527334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*EmptyThisBuffer)( 528334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hComponent, 529334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_BUFFERHEADERTYPE* pBuffer); 530334de520b0369215b7931fefa424fb92d295f0ebJames Dong 531a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar /** refer to OMX_FillThisBuffer in OMX_core.h or the OMX IL 532334de520b0369215b7931fefa424fb92d295f0ebJames Dong specification for details on the FillThisBuffer method. 533334de520b0369215b7931fefa424fb92d295f0ebJames Dong @ingroup buf 534334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 535334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*FillThisBuffer)( 536334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hComponent, 537334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_BUFFERHEADERTYPE* pBuffer); 538334de520b0369215b7931fefa424fb92d295f0ebJames Dong 539334de520b0369215b7931fefa424fb92d295f0ebJames Dong /** The SetCallbacks method is used by the core to specify the callback 540334de520b0369215b7931fefa424fb92d295f0ebJames Dong structure from the application to the component. This is a blocking 541334de520b0369215b7931fefa424fb92d295f0ebJames Dong call. The component will return from this call within 5 msec. 542334de520b0369215b7931fefa424fb92d295f0ebJames Dong @param [in] hComponent 543334de520b0369215b7931fefa424fb92d295f0ebJames Dong Handle of the component to be accessed. This is the component 544334de520b0369215b7931fefa424fb92d295f0ebJames Dong handle returned by the call to the GetHandle function. 545334de520b0369215b7931fefa424fb92d295f0ebJames Dong @param [in] pCallbacks 546a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar pointer to an OMX_CALLBACKTYPE structure used to provide the 547334de520b0369215b7931fefa424fb92d295f0ebJames Dong callback information to the component 548334de520b0369215b7931fefa424fb92d295f0ebJames Dong @param [in] pAppData 549a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar pointer to an application defined value. It is anticipated that 550334de520b0369215b7931fefa424fb92d295f0ebJames Dong the application will pass a pointer to a data structure or a "this 551334de520b0369215b7931fefa424fb92d295f0ebJames Dong pointer" in this area to allow the callback (in the application) 552334de520b0369215b7931fefa424fb92d295f0ebJames Dong to determine the context of the call 553334de520b0369215b7931fefa424fb92d295f0ebJames Dong @return OMX_ERRORTYPE 554334de520b0369215b7931fefa424fb92d295f0ebJames Dong If the command successfully executes, the return code will be 555334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. 556334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 557334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*SetCallbacks)( 558334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hComponent, 559a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_IN OMX_CALLBACKTYPE* pCallbacks, 560334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_PTR pAppData); 561334de520b0369215b7931fefa424fb92d295f0ebJames Dong 562334de520b0369215b7931fefa424fb92d295f0ebJames Dong /** ComponentDeInit method is used to deinitialize the component 563334de520b0369215b7931fefa424fb92d295f0ebJames Dong providing a means to free any resources allocated at component 564334de520b0369215b7931fefa424fb92d295f0ebJames Dong initialization. NOTE: After this call the component handle is 565334de520b0369215b7931fefa424fb92d295f0ebJames Dong not valid for further use. 566334de520b0369215b7931fefa424fb92d295f0ebJames Dong @param [in] hComponent 567334de520b0369215b7931fefa424fb92d295f0ebJames Dong Handle of the component to be accessed. This is the component 568334de520b0369215b7931fefa424fb92d295f0ebJames Dong handle returned by the call to the GetHandle function. 569334de520b0369215b7931fefa424fb92d295f0ebJames Dong @return OMX_ERRORTYPE 570334de520b0369215b7931fefa424fb92d295f0ebJames Dong If the command successfully executes, the return code will be 571334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. 572334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 573334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*ComponentDeInit)( 574334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hComponent); 575334de520b0369215b7931fefa424fb92d295f0ebJames Dong 576334de520b0369215b7931fefa424fb92d295f0ebJames Dong /** @ingroup buf */ 577334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*UseEGLImage)( 578334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hComponent, 579334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr, 580334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_U32 nPortIndex, 581334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_PTR pAppPrivate, 582334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN void* eglImage); 583334de520b0369215b7931fefa424fb92d295f0ebJames Dong 584334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_ERRORTYPE (*ComponentRoleEnum)( 585334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IN OMX_HANDLETYPE hComponent, 586a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_OUT OMX_U8 *cRole, 587a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_IN OMX_U32 nIndex); 588334de520b0369215b7931fefa424fb92d295f0ebJames Dong 589334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_COMPONENTTYPE; 590334de520b0369215b7931fefa424fb92d295f0ebJames Dong 591334de520b0369215b7931fefa424fb92d295f0ebJames Dong#ifdef __cplusplus 592334de520b0369215b7931fefa424fb92d295f0ebJames Dong} 593334de520b0369215b7931fefa424fb92d295f0ebJames Dong#endif /* __cplusplus */ 594334de520b0369215b7931fefa424fb92d295f0ebJames Dong 595334de520b0369215b7931fefa424fb92d295f0ebJames Dong#endif 596334de520b0369215b7931fefa424fb92d295f0ebJames Dong/* File EOF */ 597