1826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/*-------------------------------------------------------------------------- 26eec4d1ea65df853450a6e158718981cba900bf6Shashank MittalCopyright (c) 2009, The Linux Foundation. All rights reserved. 3826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 4826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevRedistribution and use in source and binary forms, with or without 5826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevmodification, are permitted provided that the following conditions are met: 6826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Redistributions of source code must retain the above copyright 7826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev notice, this list of conditions and the following disclaimer. 8826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Redistributions in binary form must reproduce the above copyright 9826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev notice, this list of conditions and the following disclaimer in the 10826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev documentation and/or other materials provided with the distribution. 116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Neither the name of The Linux Foundation nor 12826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev the names of its contributors may be used to endorse or promote 13826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev products derived from this software without specific prior written 14826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev permission. 15826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 16826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevIMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevNON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 20826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 21826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 22826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 23826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 25826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev--------------------------------------------------------------------------*/ 28826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/*============================================================================ 29826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev O p e n M A X w r a p p e r s 30826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev O p e n M A X C o r e 31826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 32826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev This module contains the implementation of the OpenMAX core Macros which 33826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev operate directly on the component. 34826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 35826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev*//*========================================================================*/ 36826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 37826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev////////////////////////////////////////////////////////////////////////////// 38826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev// Include Files 39826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev////////////////////////////////////////////////////////////////////////////// 40826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#include "qc_omx_common.h" 41826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#include "omx_core_cmp.h" 42826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#include "qc_omx_component.h" 43826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#include <string.h> 44826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 45826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 46826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevvoid * qc_omx_create_component_wrapper(OMX_PTR obj_ptr) 47826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 48826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (qc_omx_component *)obj_ptr; 49826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_COMPONENTTYPE* component = &(pThis->m_cmp); 50826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev memset(&pThis->m_cmp,0,sizeof(OMX_COMPONENTTYPE)); 51826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 52826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->nSize = sizeof(OMX_COMPONENTTYPE); 53826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->nVersion.nVersion = OMX_SPEC_VERSION; 54826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->pApplicationPrivate = 0; 55826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->pComponentPrivate = obj_ptr; 56826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 57826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->AllocateBuffer = &qc_omx_component_allocate_buffer; 58826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->FreeBuffer = &qc_omx_component_free_buffer; 59826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->GetParameter = &qc_omx_component_get_parameter; 60826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->SetParameter = &qc_omx_component_set_parameter; 61826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->SendCommand = &qc_omx_component_send_command; 62826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->FillThisBuffer = &qc_omx_component_fill_this_buffer; 63826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->EmptyThisBuffer = &qc_omx_component_empty_this_buffer; 64826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->GetState = &qc_omx_component_get_state; 65826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->GetComponentVersion = &qc_omx_component_get_version; 66826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->GetConfig = &qc_omx_component_get_config; 67826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->SetConfig = &qc_omx_component_set_config; 68826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->GetExtensionIndex = &qc_omx_component_get_extension_index; 69826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->ComponentTunnelRequest = &qc_omx_component_tunnel_request; 70826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->UseBuffer = &qc_omx_component_use_buffer; 71826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->SetCallbacks = &qc_omx_component_set_callbacks; 72826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->UseEGLImage = &qc_omx_component_use_EGL_image; 73826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->ComponentRoleEnum = &qc_omx_component_role_enum; 74826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component->ComponentDeInit = &qc_omx_component_deinit; 75826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return (void *)component; 76826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 77826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 78826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 79826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 80826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/************************************************************************/ 81826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/* COMPONENT INTERFACE */ 82826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/************************************************************************/ 83826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 84826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE 85826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_init(OMX_IN OMX_HANDLETYPE hComp, OMX_IN OMX_STRING componentName) 86826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 87826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 88826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 898767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_init %p\n", hComp); 90826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 91826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 92826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 93826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev // call the init fuction 94826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->component_init(componentName); 95826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 96826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(eRet != OMX_ErrorNone) 97826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 98826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev // in case of error, please destruct the component created 99826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev delete pThis; 100826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 101826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 102826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 103826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 104826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 105826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 106826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE 107826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_get_version(OMX_IN OMX_HANDLETYPE hComp, 108826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_OUT OMX_STRING componentName, 109826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_OUT OMX_VERSIONTYPE* componentVersion, 110826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_OUT OMX_VERSIONTYPE* specVersion, 111826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_OUT OMX_UUIDTYPE* componentUUID) 112826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 113826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 114826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 1158767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_get_version %p, %s , %p\n", hComp, componentName, componentVersion); 116826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 117826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 118826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->get_component_version(hComp,componentName,componentVersion,specVersion,componentUUID); 119826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 120826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 121826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 122826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 123826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE 124826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_send_command(OMX_IN OMX_HANDLETYPE hComp, 125826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_COMMANDTYPE cmd, 126826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 param1, 127826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_PTR cmdData) 128826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 129826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 130826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 1318767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_send_command %p, %d , %d\n", hComp,(unsigned)cmd,(unsigned)param1); 132826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 133826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 134826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 135826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->send_command(hComp,cmd,param1,cmdData); 136826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 137826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 138826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 139826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 140826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE 141826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_get_parameter(OMX_IN OMX_HANDLETYPE hComp, 142826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_INDEXTYPE paramIndex, 143826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_INOUT OMX_PTR paramData) 144826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 145826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 146826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 1478767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_get_parameter %p, %p , %d\n", hComp, paramData, paramIndex); 148826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 149826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 150826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 151826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->get_parameter(hComp,paramIndex,paramData); 152826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 153826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 154826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 155826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 156826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOMX_ERRORTYPE 157826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_set_parameter(OMX_IN OMX_HANDLETYPE hComp, 158826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_INDEXTYPE paramIndex, 159826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_PTR paramData) 160826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 161826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 162826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 1638767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_set_parameter %p, %p , %d\n", hComp, paramData, paramIndex); 164826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 165826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 166826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 167826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->set_parameter(hComp,paramIndex,paramData); 168826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 169826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 170826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 171826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 172826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE 173826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_get_config(OMX_IN OMX_HANDLETYPE hComp, 174826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_INDEXTYPE configIndex, 175826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_INOUT OMX_PTR configData) 176826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 177826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 178826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 1798767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_get_config %p\n", hComp); 180826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 181826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 182826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 183826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->get_config(hComp, 184826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev configIndex, 185826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev configData); 186826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 187826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 188826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 189826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 190826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE 191826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_set_config(OMX_IN OMX_HANDLETYPE hComp, 192826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_INDEXTYPE configIndex, 193826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_PTR configData) 194826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 195826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 196826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 1978767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_set_config %p\n", hComp); 198826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 199826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 200826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 201826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->set_config(hComp, 202826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev configIndex, 203826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev configData); 204826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 205826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 206826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 207826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 208826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE 209826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_get_extension_index(OMX_IN OMX_HANDLETYPE hComp, 210826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_STRING paramName, 211826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_OUT OMX_INDEXTYPE* indexType) 212826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 213826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 214826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 215826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 216826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 217826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->get_extension_index(hComp,paramName,indexType); 218826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 219826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 220826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 221826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 222826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE 223826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_get_state(OMX_IN OMX_HANDLETYPE hComp, 224826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_OUT OMX_STATETYPE* state) 225826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 226826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 227826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 2288767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_get_state %p\n", hComp); 229826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 230826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 231826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 232826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->get_state(hComp,state); 233826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 234826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 235826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 236826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 237826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE 238826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_tunnel_request(OMX_IN OMX_HANDLETYPE hComp, 239826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 port, 240826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE peerComponent, 241826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 peerPort, 242826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_INOUT OMX_TUNNELSETUPTYPE* tunnelSetup) 243826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 2448767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan (void) hComp, (void) port, (void) peerComponent, (void) peerPort, (void) tunnelSetup; 245826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev DEBUG_PRINT("Error: qc_omx_component_tunnel_request Not Implemented\n"); 246826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return OMX_ErrorNotImplemented; 247826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 248826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 249826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE 250826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_use_buffer(OMX_IN OMX_HANDLETYPE hComp, 251826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr, 252826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 port, 253826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_PTR appData, 254826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 bytes, 255826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U8* buffer) 256826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 257826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 258826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 2598767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_use_buffer %p\n", hComp); 260826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 261826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 262826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 263826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->use_buffer(hComp, 264826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev bufferHdr, 265826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev port, 266826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev appData, 267826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev bytes, 268826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev buffer); 269826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 270826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 271826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 272826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 273826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 274826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev// qc_omx_component_allocate_buffer -- API Call 275826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE 276826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_allocate_buffer(OMX_IN OMX_HANDLETYPE hComp, 277826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr, 278826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 port, 279826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_PTR appData, 280826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 bytes) 281826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 282826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 283826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 284826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 2858767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_allocate_buffer %p, %p , %d\n",hComp, bufferHdr,(unsigned)port); 286826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 287826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 288826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 289826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->allocate_buffer(hComp,bufferHdr,port,appData,bytes); 290826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 291826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 292826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 293826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 294826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE 295826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_free_buffer(OMX_IN OMX_HANDLETYPE hComp, 296826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 port, 297826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_BUFFERHEADERTYPE* buffer) 298826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 299826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 300826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 301826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 3028767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_free_buffer[%d] %p, %p\n", (unsigned)port, hComp, buffer); 303826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 304826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 305826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 306826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->free_buffer(hComp,port,buffer); 307826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 308826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 309826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 310826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 311826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE 312826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_empty_this_buffer(OMX_IN OMX_HANDLETYPE hComp, 313826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_BUFFERHEADERTYPE* buffer) 314826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 315826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 316826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 3178767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_empty_this_buffer %p, %p\n",hComp, buffer); 318826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 319826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 320826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 321826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->empty_this_buffer(hComp,buffer); 322826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 323826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 324826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 325826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 326826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE 327826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_fill_this_buffer(OMX_IN OMX_HANDLETYPE hComp, 328826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_BUFFERHEADERTYPE* buffer) 329826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 330826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 331826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 3328767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_fill_this_buffer %p, %p\n", hComp, buffer); 333826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 334826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 335826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->fill_this_buffer(hComp,buffer); 336826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 337826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 338826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 339826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 340826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE 341826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_set_callbacks(OMX_IN OMX_HANDLETYPE hComp, 342826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_CALLBACKTYPE* callbacks, 343826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_PTR appData) 344826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 345826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 346826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 3478767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_set_callbacks %p, %p , %p\n", hComp, callbacks, appData); 348826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 349826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 350826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 351826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->set_callbacks(hComp,callbacks,appData); 352826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 353826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 354826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 355826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 356826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE 357826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_deinit(OMX_IN OMX_HANDLETYPE hComp) 358826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 359826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 360826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 3618767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_deinit %p\n", hComp); 362826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 363826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 364826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 365826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev // call the deinit fuction first 366826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_STATETYPE state; 367826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev pThis->get_state(hComp,&state); 368826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev DEBUG_PRINT("Calling FreeHandle in state %d \n", state); 369826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->component_deinit(hComp); 370826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev // destroy the component. 371826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev delete pThis; 372826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 373826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 374826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 375826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 376826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE 377826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_use_EGL_image(OMX_IN OMX_HANDLETYPE hComp, 378826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr, 379826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 port, 380826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_PTR appData, 381826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN void* eglImage) 382826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 383826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 384826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 3858767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_use_EGL_image %p, %p , %d\n", hComp, bufferHdr,(unsigned)port); 386826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 387826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 388826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->use_EGL_image(hComp,bufferHdr,port,appData,eglImage); 389826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 390826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 391826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 392826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 393826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE 394826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevqc_omx_component_role_enum(OMX_IN OMX_HANDLETYPE hComp, 395826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_OUT OMX_U8* role, 396826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 index) 397826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 398826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 399826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 4008767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan DEBUG_PRINT("OMXCORE: qc_omx_component_role_enum %p, %p , %d\n", hComp, role,(unsigned)index); 401826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 402826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev if(pThis) 403826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev { 404826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev eRet = pThis->component_role_enum(hComp,role,index); 405826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } 406826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev return eRet; 407826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 408