16ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/* ------------------------------------------------------------------ 26ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Copyright (C) 1998-2009 PacketVideo 36ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * 46ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 56ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * you may not use this file except in compliance with the License. 66ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * You may obtain a copy of the License at 76ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * 86ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * http://www.apache.org/licenses/LICENSE-2.0 96ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * 106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Unless required by applicable law or agreed to in writing, software 116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * express or implied. 146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * See the License for the specific language governing permissions 156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * and limitations under the License. 166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * ------------------------------------------------------------------- 176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/* 196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Copyright (c) 2008 The Khronos Group Inc. 206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * 216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Permission is hereby granted, free of charge, to any person obtaining 226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * a copy of this software and associated documentation files (the 236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * "Software"), to deal in the Software without restriction, including 246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * without limitation the rights to use, copy, modify, merge, publish, 256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * distribute, sublicense, and/or sell copies of the Software, and to 266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * permit persons to whom the Software is furnished to do so, subject 276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * to the following conditions: 286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * The above copyright notice and this permission notice shall be included 296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * in all copies or substantial portions of the Software. 306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * 316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * 396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** OMX_Component.h - OpenMax IL version 1.1.2 426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * The OMX_Component header file contains the definitions used to define 436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * the public interface of a component. This header file is intended to 446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * be used by both the application and the component. 456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#ifndef OMX_Component_h 486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_Component_h 496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#ifdef __cplusplus 516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huberextern "C" { 526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#endif /* __cplusplus */ 536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/* Each OMX header must include all required header files to allow the 576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * header to compile without errors. The includes below are required 586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * for this header file to compile successfully 596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#include <OMX_Audio.h> 626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#include <OMX_Video.h> 636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#include <OMX_Image.h> 646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#include <OMX_Other.h> 656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup comp */ 676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_PORTDOMAINTYPE { 686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_PortDomainAudio, 696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_PortDomainVideo, 706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_PortDomainImage, 716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_PortDomainOther, 726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_PortDomainKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_PortDomainVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_PortDomainMax = 0x7ffffff 756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_PORTDOMAINTYPE; 766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup comp */ 786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_PARAM_PORTDEFINITIONTYPE { 796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nSize; /**< Size of the structure in bytes */ 806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nPortIndex; /**< Port number the structure applies to */ 826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_DIRTYPE eDir; /**< Direction (input or output) of this port */ 836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nBufferCountActual; /**< The actual number of buffers allocated on this port */ 846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nBufferCountMin; /**< The minimum number of buffers this port requires */ 856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nBufferSize; /**< Size, in bytes, for buffers to be used for this channel */ 866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_BOOL bEnabled; /**< Ports default to enabled and are enabled/disabled by 876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_CommandPortEnable/OMX_CommandPortDisable. 886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber When disabled a port is unpopulated. A disabled port 896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber is not populated with buffers on a transition to IDLE. */ 906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_BOOL bPopulated; /**< Port is populated with all of its buffers as indicated by 916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber nBufferCountActual. A disabled port is always unpopulated. 926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber An enabled port is populated on a transition to OMX_StateIdle 936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber and unpopulated on a transition to loaded. */ 946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_PORTDOMAINTYPE eDomain; /**< Domain of the port. Determines the contents of metadata below. */ 956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber union { 966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_AUDIO_PORTDEFINITIONTYPE audio; 976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_VIDEO_PORTDEFINITIONTYPE video; 986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IMAGE_PORTDEFINITIONTYPE image; 996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_OTHER_PORTDEFINITIONTYPE other; 1006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber } format; 1016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_BOOL bBuffersContiguous; 1026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nBufferAlignment; 1036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_PARAM_PORTDEFINITIONTYPE; 1046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 1056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup comp */ 1066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_PARAM_U32TYPE { 1076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nSize; /**< Size of this structure, in Bytes */ 1086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 1096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nPortIndex; /**< port that this structure applies to */ 1106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nU32; /**< U32 value */ 1116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_PARAM_U32TYPE; 1126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 1136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup rpm */ 1146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_SUSPENSIONPOLICYTYPE { 1156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_SuspensionDisabled, /**< No suspension; v1.0 behavior */ 1166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_SuspensionEnabled, /**< Suspension allowed */ 1176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_SuspensionPolicyKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 1186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_SuspensionPolicyStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 1196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_SuspensionPolicyMax = 0x7fffffff 1206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_SUSPENSIONPOLICYTYPE; 1216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 1226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup rpm */ 1236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_PARAM_SUSPENSIONPOLICYTYPE { 1246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nSize; 1256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_VERSIONTYPE nVersion; 1266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_SUSPENSIONPOLICYTYPE ePolicy; 1276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_PARAM_SUSPENSIONPOLICYTYPE; 1286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 1296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup rpm */ 1306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_SUSPENSIONTYPE { 1316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_NotSuspended, /**< component is not suspended */ 1326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_Suspended, /**< component is suspended */ 1336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_SuspensionKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 1346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_SuspensionVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 1356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_SuspendMax = 0x7FFFFFFF 1366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_SUSPENSIONTYPE; 1376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 1386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup rpm */ 1396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_PARAM_SUSPENSIONTYPE { 1406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nSize; 1416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_VERSIONTYPE nVersion; 1426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_SUSPENSIONTYPE eType; 1436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_PARAM_SUSPENSIONTYPE ; 1446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 1456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_BOOLEANTYPE { 1466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nSize; 1476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_VERSIONTYPE nVersion; 1486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_BOOL bEnabled; 1496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_BOOLEANTYPE; 1506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 1516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/* Parameter specifying the content uri to use. */ 1526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup cp */ 1536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_PARAM_CONTENTURITYPE 1546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber{ 1556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nSize; /**< size of the structure in bytes, including 1566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber actual URI name */ 1576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 1586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U8 contentURI[1]; /**< The URI name */ 1596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_PARAM_CONTENTURITYPE; 1606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 1616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/* Parameter specifying the pipe to use. */ 1626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup cp */ 1636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_PARAM_CONTENTPIPETYPE 1646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber{ 1656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nSize; /**< size of the structure in bytes */ 1666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 1676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_HANDLETYPE hPipe; /**< The pipe handle*/ 1686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_PARAM_CONTENTPIPETYPE; 1696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 1706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup rpm */ 1716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_RESOURCECONCEALMENTTYPE { 1726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nSize; /**< size of the structure in bytes */ 1736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 1746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_BOOL bResourceConcealmentForbidden; /**< disallow the use of resource concealment 1756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber methods (like degrading algorithm quality to 1766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber lower resource consumption or functional bypass) 1776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber on a component as a resolution to resource conflicts. */ 1786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_RESOURCECONCEALMENTTYPE; 1796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 1806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 1816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup metadata */ 1826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_METADATACHARSETTYPE { 1836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetUnknown = 0, 1846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetASCII, 1856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetBinary, 1866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetCodePage1252, 1876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetUTF8, 1886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetJavaConformantUTF8, 1896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetUTF7, 1906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetImapUTF7, 1916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetUTF16LE, 1926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetUTF16BE, 1936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetGB12345, 1946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetHZGB2312, 1956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetGB2312, 1966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetGB18030, 1976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetGBK, 1986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetBig5, 1996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetISO88591, 2006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetISO88592, 2016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetISO88593, 2026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetISO88594, 2036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetISO88595, 2046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetISO88596, 2056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetISO88597, 2066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetISO88598, 2076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetISO88599, 2086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetISO885910, 2096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetISO885913, 2106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetISO885914, 2116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetISO885915, 2126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetShiftJIS, 2136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetISO2022JP, 2146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetISO2022JP1, 2156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetISOEUCJP, 2166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetSMS7Bit, 2176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 2186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 2196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataCharsetTypeMax= 0x7FFFFFFF 2206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_METADATACHARSETTYPE; 2216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 2226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup metadata */ 2236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_METADATASCOPETYPE 2246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber{ 2256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataScopeAllLevels, 2266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataScopeTopLevel, 2276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataScopePortLevel, 2286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataScopeNodeLevel, 2296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataScopeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 2306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataScopeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 2316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataScopeTypeMax = 0x7fffffff 2326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_METADATASCOPETYPE; 2336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 2346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup metadata */ 2356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_METADATASEARCHMODETYPE 2366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber{ 2376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataSearchValueSizeByIndex, 2386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataSearchItemByIndex, 2396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataSearchNextItemByKey, 2406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataSearchKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 2416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataSearchVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 2426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_MetadataSearchTypeMax = 0x7fffffff 2436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_METADATASEARCHMODETYPE; 2446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup metadata */ 2456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_METADATAITEMCOUNTTYPE 2466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber{ 2476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nSize; 2486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_VERSIONTYPE nVersion; 2496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_METADATASCOPETYPE eScopeMode; 2506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nScopeSpecifier; 2516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nMetadataItemCount; 2526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_METADATAITEMCOUNTTYPE; 2536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 2546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup metadata */ 2556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_METADATAITEMTYPE 2566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber{ 2576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nSize; 2586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_VERSIONTYPE nVersion; 2596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_METADATASCOPETYPE eScopeMode; 2606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nScopeSpecifier; 2616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nMetadataItemIndex; 2626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_METADATASEARCHMODETYPE eSearchMode; 2636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_METADATACHARSETTYPE eKeyCharset; 2646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U8 nKeySizeUsed; 2656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U8 nKey[128]; 2666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_METADATACHARSETTYPE eValueCharset; 2676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_STRING sLanguageCountry; 2686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nValueMaxSize; 2696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nValueSizeUsed; 2706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U8 nValue[1]; 2716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_METADATAITEMTYPE; 2726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 2736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/* @ingroup metadata */ 2746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_CONTAINERNODECOUNTTYPE 2756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber{ 2766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nSize; 2776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_VERSIONTYPE nVersion; 2786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_BOOL bAllKeys; 2796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nParentNodeID; 2806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nNumNodes; 2816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_CONTAINERNODECOUNTTYPE; 2826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 2836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup metadata */ 2846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_CONTAINERNODEIDTYPE 2856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber{ 2866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nSize; 2876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_VERSIONTYPE nVersion; 2886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_BOOL bAllKeys; 2896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nParentNodeID; 2906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nNodeIndex; 2916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nNodeID; 2926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_STRING cNodeName; 2936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_BOOL bIsLeafType; 2946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_CONTAINERNODEIDTYPE; 2956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 2966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @ingroup metadata */ 2976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_PARAM_METADATAFILTERTYPE 2986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber{ 2996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nSize; 3006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_VERSIONTYPE nVersion; 3016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_BOOL bAllKeys; /* if true then this structure refers to all keys and 3026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * the three key fields below are ignored */ 3036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_METADATACHARSETTYPE eKeyCharset; 3046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nKeySizeUsed; 3056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U8 nKey [128]; 3066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nLanguageCountrySizeUsed; 3076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U8 nLanguageCountry[128]; 3086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_BOOL bEnabled; /* if true then key is part of filter (e.g. 3096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * retained for query later). If false then 3106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * key is not part of filter */ 3116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_PARAM_METADATAFILTERTYPE; 3126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 3136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** The OMX_HANDLETYPE structure defines the component handle. The component 3146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * handle is used to access all of the component's public methods and also 3156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * contains pointers to the component's private data area. The component 3166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * handle is initialized by the OMX core (with help from the component) 3176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * during the process of loading the component. After the component is 3186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * successfully loaded, the application can safely access any of the 3196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * component's public functions (although some may return an error because 3206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * the state is inappropriate for the access). 3216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * 3226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @ingroup comp 3236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 3246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_COMPONENTTYPE 3256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber{ 3266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** The size of this structure, in bytes. It is the responsibility 3276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber of the allocator of this structure to fill in this value. Since 3286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber this structure is allocated by the GetHandle function, this 3296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber function will fill in this value. */ 3306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_U32 nSize; 3316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 3326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** nVersion is the version of the OMX specification that the structure 3336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber is built against. It is the responsibility of the creator of this 3346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber structure to initialize this value and every user of this structure 3356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber should verify that it knows how to use the exact version of 3366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber this structure found herein. */ 3376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_VERSIONTYPE nVersion; 3386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 3396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** pComponentPrivate is a pointer to the component private data area. 3406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber This member is allocated and initialized by the component when the 3416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber component is first loaded. The application should not access this 3426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber data area. */ 3436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_PTR pComponentPrivate; 3446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 3456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** pApplicationPrivate is a pointer that is a parameter to the 3466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_GetHandle method, and contains an application private value 3476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber provided by the IL client. This application private data is 3486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber returned to the IL Client by OMX in all callbacks */ 3496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_PTR pApplicationPrivate; 3506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 3516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** refer to OMX_GetComponentVersion in OMX_core.h or the OMX IL 3526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber specification for details on the GetComponentVersion method. 3536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 3546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*GetComponentVersion)( 3556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent, 3566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_OUT OMX_STRING pComponentName, 3576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_OUT OMX_VERSIONTYPE* pComponentVersion, 3586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_OUT OMX_VERSIONTYPE* pSpecVersion, 3596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_OUT OMX_UUIDTYPE* pComponentUUID); 3606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 3616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** refer to OMX_SendCommand in OMX_core.h or the OMX IL 3626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber specification for details on the SendCommand method. 3636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 3646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*SendCommand)( 3656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent, 3666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_COMMANDTYPE Cmd, 3676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_U32 nParam1, 3686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_PTR pCmdData); 3696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 3706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** refer to OMX_GetParameter in OMX_core.h or the OMX IL 3716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber specification for details on the GetParameter method. 3726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 3736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*GetParameter)( 3746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent, 3756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_INDEXTYPE nParamIndex, 3766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_INOUT OMX_PTR pComponentParameterStructure); 3776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 3786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 3796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** refer to OMX_SetParameter in OMX_core.h or the OMX IL 3806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber specification for details on the SetParameter method. 3816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 3826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*SetParameter)( 3836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent, 3846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_INDEXTYPE nIndex, 3856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_PTR pComponentParameterStructure); 3866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 3876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 3886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** refer to OMX_GetConfig in OMX_core.h or the OMX IL 3896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber specification for details on the GetConfig method. 3906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 3916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*GetConfig)( 3926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent, 3936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_INDEXTYPE nIndex, 3946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_INOUT OMX_PTR pComponentConfigStructure); 3956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 3966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 3976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** refer to OMX_SetConfig in OMX_core.h or the OMX IL 3986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber specification for details on the SetConfig method. 3996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 4006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*SetConfig)( 4016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent, 4026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_INDEXTYPE nIndex, 4036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_PTR pComponentConfigStructure); 4046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 4056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 4066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** refer to OMX_GetExtensionIndex in OMX_core.h or the OMX IL 4076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber specification for details on the GetExtensionIndex method. 4086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 4096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*GetExtensionIndex)( 4106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent, 4116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_STRING cParameterName, 4126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_OUT OMX_INDEXTYPE* pIndexType); 4136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 4146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 4156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** refer to OMX_GetState in OMX_core.h or the OMX IL 4166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber specification for details on the GetState method. 4176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 4186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*GetState)( 4196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent, 4206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_OUT OMX_STATETYPE* pState); 4216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 4226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 4236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** The ComponentTunnelRequest method will interact with another OMX 4246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber component to determine if tunneling is possible and to setup the 4256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber tunneling. The return codes for this method can be used to 4266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber determine if tunneling is not possible, or if tunneling is not 4276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber supported. 4286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 4296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber Base profile components (i.e. non-interop) do not support this 4306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber method and should return OMX_ErrorNotImplemented 4316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 4326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber The interop profile component MUST support tunneling to another 4336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber interop profile component with a compatible port parameters. 4346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber A component may also support proprietary communication. 4356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 4366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber If proprietary communication is supported the negotiation of 4376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber proprietary communication is done outside of OMX in a vendor 4386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber specific way. It is only required that the proper result be 4396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber returned and the details of how the setup is done is left 4406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber to the component implementation. 4416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 4426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber When this method is invoked when nPort in an output port, the 4436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber component will: 4446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 1. Populate the pTunnelSetup structure with the output port's 4456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber requirements and constraints for the tunnel. 4466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 4476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber When this method is invoked when nPort in an input port, the 4486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber component will: 4496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 1. Query the necessary parameters from the output port to 4506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber determine if the ports are compatible for tunneling 4516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 2. If the ports are compatible, the component should store 4526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber the tunnel step provided by the output port 4536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 3. Determine which port (either input or output) is the buffer 4546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber supplier, and call OMX_SetParameter on the output port to 4556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber indicate this selection. 4566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 4576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber The component will return from this call within 5 msec. 4586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 4596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @param [in] hComp 4606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber Handle of the component to be accessed. This is the component 4616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber handle returned by the call to the OMX_GetHandle method. 4626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @param [in] nPort 4636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber nPort is used to select the port on the component to be used 4646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber for tunneling. 4656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @param [in] hTunneledComp 4666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber Handle of the component to tunnel with. This is the component 4676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber handle returned by the call to the OMX_GetHandle method. When 4686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber this parameter is 0x0 the component should setup the port for 4696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber communication with the application / IL Client. 4706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @param [in] nPortOutput 4716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber nPortOutput is used indicate the port the component should 4726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber tunnel with. 4736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @param [in] pTunnelSetup 4746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber Pointer to the tunnel setup structure. When nPort is an output port 4756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber the component should populate the fields of this structure. When 4766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber When nPort is an input port the component should review the setup 4776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber provided by the component with the output port. 4786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @return OMX_ERRORTYPE 4796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber If the command successfully executes, the return code will be 4806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. 4816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @ingroup tun 4826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 4836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 4846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*ComponentTunnelRequest)( 4856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComp, 4866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_U32 nPort, 4876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hTunneledComp, 4886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_U32 nTunneledPort, 4896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_INOUT OMX_TUNNELSETUPTYPE* pTunnelSetup); 4906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 4916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** refer to OMX_UseBuffer in OMX_core.h or the OMX IL 4926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber specification for details on the UseBuffer method. 4936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @ingroup buf 4946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 4956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*UseBuffer)( 4966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent, 4976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr, 4986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_U32 nPortIndex, 4996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_PTR pAppPrivate, 5006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_U32 nSizeBytes, 5016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_U8* pBuffer); 5026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 5036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** refer to OMX_AllocateBuffer in OMX_core.h or the OMX IL 5046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber specification for details on the AllocateBuffer method. 5056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @ingroup buf 5066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 5076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*AllocateBuffer)( 5086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent, 5096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_INOUT OMX_BUFFERHEADERTYPE** ppBuffer, 5106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_U32 nPortIndex, 5116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_PTR pAppPrivate, 5126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_U32 nSizeBytes); 5136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 5146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** refer to OMX_FreeBuffer in OMX_core.h or the OMX IL 5156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber specification for details on the FreeBuffer method. 5166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @ingroup buf 5176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 5186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*FreeBuffer)( 5196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent, 5206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_U32 nPortIndex, 5216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_BUFFERHEADERTYPE* pBuffer); 5226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 5236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** refer to OMX_EmptyThisBuffer in OMX_core.h or the OMX IL 5246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber specification for details on the EmptyThisBuffer method. 5256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @ingroup buf 5266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 5276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*EmptyThisBuffer)( 5286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent, 5296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_BUFFERHEADERTYPE* pBuffer); 5306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 5316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** refer to OMX_FillThisBuffer in OMX_core.h or the OMX IL 5326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber specification for details on the FillThisBuffer method. 5336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @ingroup buf 5346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 5356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*FillThisBuffer)( 5366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent, 5376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_BUFFERHEADERTYPE* pBuffer); 5386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 5396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** The SetCallbacks method is used by the core to specify the callback 5406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber structure from the application to the component. This is a blocking 5416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber call. The component will return from this call within 5 msec. 5426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @param [in] hComponent 5436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber Handle of the component to be accessed. This is the component 5446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber handle returned by the call to the GetHandle function. 5456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @param [in] pCallbacks 5466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber pointer to an OMX_CALLBACKTYPE structure used to provide the 5476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber callback information to the component 5486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @param [in] pAppData 5496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber pointer to an application defined value. It is anticipated that 5506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber the application will pass a pointer to a data structure or a "this 5516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber pointer" in this area to allow the callback (in the application) 5526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber to determine the context of the call 5536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @return OMX_ERRORTYPE 5546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber If the command successfully executes, the return code will be 5556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. 5566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 5576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*SetCallbacks)( 5586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent, 5596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_CALLBACKTYPE* pCallbacks, 5606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_PTR pAppData); 5616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 5626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** ComponentDeInit method is used to deinitialize the component 5636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber providing a means to free any resources allocated at component 5646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber initialization. NOTE: After this call the component handle is 5656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber not valid for further use. 5666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @param [in] hComponent 5676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber Handle of the component to be accessed. This is the component 5686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber handle returned by the call to the GetHandle function. 5696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber @return OMX_ERRORTYPE 5706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber If the command successfully executes, the return code will be 5716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. 5726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */ 5736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*ComponentDeInit)( 5746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent); 5756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 5766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber /** @ingroup buf */ 5776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*UseEGLImage)( 5786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent, 5796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr, 5806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_U32 nPortIndex, 5816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_PTR pAppPrivate, 5826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN void* eglImage); 5836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 5846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_ERRORTYPE (*ComponentRoleEnum)( 5856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_HANDLETYPE hComponent, 5866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_OUT OMX_U8 *cRole, 5876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber OMX_IN OMX_U32 nIndex); 5886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 5896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_COMPONENTTYPE; 5906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 5916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#ifdef __cplusplus 5926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} 5936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#endif /* __cplusplus */ 5946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber 5956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#endif 5966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/* File EOF */ 597