1dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/*-------------------------------------------------------------------------- 26eec4d1ea65df853450a6e158718981cba900bf6Shashank MittalCopyright (c) 2009, The The Linux Foundation. All rights reserved. 3dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 4dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandRedistribution and use in source and binary forms, with or without 5dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandmodification, are permitted provided that the following conditions are met: 6dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Redistributions of source code must retain the above copyright 7dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand notice, this list of conditions and the following disclaimer. 8dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Redistributions in binary form must reproduce the above copyright 9dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand notice, this list of conditions and the following disclaimer in the 10dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand documentation and/or other materials provided with the distribution. 116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Neither the name of The Linux Foundation nor 12dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand the names of its contributors may be used to endorse or promote 13dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand products derived from this software without specific prior written 14dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand permission. 15dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 16dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandIMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandNON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 20dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 21dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 22dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 23dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandOR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 25dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandOTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand--------------------------------------------------------------------------*/ 28dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/*============================================================================ 29dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand O p e n M A X w r a p p e r s 30dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand O p e n M A X C o r e 31dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 32dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand This module contains the implementation of the OpenMAX core Macros which 33dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand operate directly on the component. 34dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 35dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand*//*========================================================================*/ 36dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 37dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand////////////////////////////////////////////////////////////////////////////// 38dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand// Include Files 39dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand////////////////////////////////////////////////////////////////////////////// 40dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#include "qc_omx_common.h" 41dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#include "omx_core_cmp.h" 42dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#include "qc_omx_component.h" 43dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#include <string.h> 44dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 45dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 46dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandvoid * qc_omx_create_component_wrapper(OMX_PTR obj_ptr) 47dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 48dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (qc_omx_component *)obj_ptr; 49dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_COMPONENTTYPE* component = &(pThis->m_cmp); 50dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand memset(&pThis->m_cmp,0,sizeof(OMX_COMPONENTTYPE)); 51dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 52dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->nSize = sizeof(OMX_COMPONENTTYPE); 53dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->nVersion.nVersion = OMX_SPEC_VERSION; 54dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->pApplicationPrivate = 0; 55dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->pComponentPrivate = obj_ptr; 56dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 57dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->AllocateBuffer = &qc_omx_component_allocate_buffer; 58dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->FreeBuffer = &qc_omx_component_free_buffer; 59dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->GetParameter = &qc_omx_component_get_parameter; 60dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->SetParameter = &qc_omx_component_set_parameter; 61dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->SendCommand = &qc_omx_component_send_command; 62dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->FillThisBuffer = &qc_omx_component_fill_this_buffer; 63dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->EmptyThisBuffer = &qc_omx_component_empty_this_buffer; 64dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->GetState = &qc_omx_component_get_state; 65dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->GetComponentVersion = &qc_omx_component_get_version; 66dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->GetConfig = &qc_omx_component_get_config; 67dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->SetConfig = &qc_omx_component_set_config; 68dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->GetExtensionIndex = &qc_omx_component_get_extension_index; 69dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->ComponentTunnelRequest = &qc_omx_component_tunnel_request; 70dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->UseBuffer = &qc_omx_component_use_buffer; 71dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->SetCallbacks = &qc_omx_component_set_callbacks; 72dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->UseEGLImage = &qc_omx_component_use_EGL_image; 73dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->ComponentRoleEnum = &qc_omx_component_role_enum; 74dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand component->ComponentDeInit = &qc_omx_component_deinit; 75dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return (void *)component; 76dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 77dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 78dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 79dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 80dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/************************************************************************/ 81dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/* COMPONENT INTERFACE */ 82dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/************************************************************************/ 83dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 84dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandOMX_ERRORTYPE 85dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_init(OMX_IN OMX_HANDLETYPE hComp, OMX_IN OMX_STRING componentName) 86dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 87dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 88dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 89dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_init %x\n",(unsigned)hComp); 90dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 91dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 92dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 93dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand // call the init fuction 94dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->component_init(componentName); 95dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 96dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(eRet != OMX_ErrorNone) 97dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 98dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand // in case of error, please destruct the component created 99dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand delete pThis; 100dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 101dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 102dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 103dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 104dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 105dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 106dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandOMX_ERRORTYPE 107dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_get_version(OMX_IN OMX_HANDLETYPE hComp, 108dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_OUT OMX_STRING componentName, 109dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_OUT OMX_VERSIONTYPE* componentVersion, 110dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_OUT OMX_VERSIONTYPE* specVersion, 111dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_OUT OMX_UUIDTYPE* componentUUID) 112dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 113dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 114dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 115dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_get_version %x, %s , %x\n",(unsigned)hComp,componentName,(unsigned)componentVersion); 116dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 117dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 118dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->get_component_version(hComp,componentName,componentVersion,specVersion,componentUUID); 119dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 120dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 121dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 122dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 123dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandOMX_ERRORTYPE 124dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_send_command(OMX_IN OMX_HANDLETYPE hComp, 125dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_COMMANDTYPE cmd, 126dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_U32 param1, 127dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_PTR cmdData) 128dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 129dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 130dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 131dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_send_command %x, %d , %d\n",(unsigned)hComp,(unsigned)cmd,(unsigned)param1); 132dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 133dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 134dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 135dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->send_command(hComp,cmd,param1,cmdData); 136dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 137dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 138dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 139dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 140dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandOMX_ERRORTYPE 141dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_get_parameter(OMX_IN OMX_HANDLETYPE hComp, 142dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_INDEXTYPE paramIndex, 143dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_INOUT OMX_PTR paramData) 144dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 145dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 146dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 147dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_get_parameter %x, %x , %d\n",(unsigned)hComp,(unsigned)paramData,paramIndex); 148dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 149dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 150dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 151dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->get_parameter(hComp,paramIndex,paramData); 152dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 153dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 154dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 155dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 156dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandOMX_ERRORTYPE 157dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_set_parameter(OMX_IN OMX_HANDLETYPE hComp, 158dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_INDEXTYPE paramIndex, 159dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_PTR paramData) 160dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 161dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 162dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 163dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_set_parameter %x, %x , %d\n",(unsigned)hComp,(unsigned)paramData,paramIndex); 164dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 165dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 166dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 167dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->set_parameter(hComp,paramIndex,paramData); 168dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 169dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 170dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 171dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 172dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE 173dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_get_config(OMX_IN OMX_HANDLETYPE hComp, 174dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_INDEXTYPE configIndex, 175dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_INOUT OMX_PTR configData) 176dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 177dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 178dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 179dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_get_config %x\n",(unsigned)hComp); 180dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 181dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 182dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 183dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->get_config(hComp, 184dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand configIndex, 185dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand configData); 186dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 187dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 188dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 189dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 190dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE 191dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_set_config(OMX_IN OMX_HANDLETYPE hComp, 192dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_INDEXTYPE configIndex, 193dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_PTR configData) 194dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 195dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 196dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 197dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_set_config %x\n",(unsigned)hComp); 198dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 199dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 200dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 201dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->set_config(hComp, 202dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand configIndex, 203dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand configData); 204dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 205dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 206dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 207dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 208dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE 209dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_get_extension_index(OMX_IN OMX_HANDLETYPE hComp, 210dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_STRING paramName, 211dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_OUT OMX_INDEXTYPE* indexType) 212dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 213dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 214dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 215dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 216dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 217dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->get_extension_index(hComp,paramName,indexType); 218dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 219dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 220dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 221dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 222dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE 223dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_get_state(OMX_IN OMX_HANDLETYPE hComp, 224dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_OUT OMX_STATETYPE* state) 225dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 226dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 227dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 228dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_get_state %x\n",(unsigned)hComp); 229dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 230dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 231dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 232dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->get_state(hComp,state); 233dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 234dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 235dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 236dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 237dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE 238dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_tunnel_request(OMX_IN OMX_HANDLETYPE hComp, 239dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_U32 port, 240dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_HANDLETYPE peerComponent, 241dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_U32 peerPort, 242dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_INOUT OMX_TUNNELSETUPTYPE* tunnelSetup) 243dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 244dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("Error: qc_omx_component_tunnel_request Not Implemented\n"); 245dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return OMX_ErrorNotImplemented; 246dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 247dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 248dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE 249dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_use_buffer(OMX_IN OMX_HANDLETYPE hComp, 250dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr, 251dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_U32 port, 252dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_PTR appData, 253dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_U32 bytes, 254dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_U8* buffer) 255dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 256dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 257dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 258dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_use_buffer %x\n",(unsigned)hComp); 259dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 260dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 261dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 262dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->use_buffer(hComp, 263dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand bufferHdr, 264dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand port, 265dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand appData, 266dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand bytes, 267dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand buffer); 268dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 269dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 270dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 271dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 272dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 273dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand// qc_omx_component_allocate_buffer -- API Call 274dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE 275dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_allocate_buffer(OMX_IN OMX_HANDLETYPE hComp, 276dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr, 277dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_U32 port, 278dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_PTR appData, 279dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_U32 bytes) 280dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 281dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 282dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 283dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 284dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_allocate_buffer %x, %x , %d\n",(unsigned)hComp,(unsigned)bufferHdr,(unsigned)port); 285dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 286dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 287dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 288dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->allocate_buffer(hComp,bufferHdr,port,appData,bytes); 289dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 290dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 291dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 292dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 293dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE 294dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_free_buffer(OMX_IN OMX_HANDLETYPE hComp, 295dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_U32 port, 296dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_BUFFERHEADERTYPE* buffer) 297dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 298dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 299dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 300dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 301dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_free_buffer[%d] %x, %x\n", (unsigned)port, (unsigned)hComp, (unsigned)buffer); 302dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 303dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 304dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 305dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->free_buffer(hComp,port,buffer); 306dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 307dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 308dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 309dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 310dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE 311dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_empty_this_buffer(OMX_IN OMX_HANDLETYPE hComp, 312dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_BUFFERHEADERTYPE* buffer) 313dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 314dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 315dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 316dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_empty_this_buffer %x, %x\n",(unsigned)hComp,(unsigned)buffer); 317dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 318dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 319dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 320dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->empty_this_buffer(hComp,buffer); 321dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 322dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 323dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 324dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 325dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE 326dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_fill_this_buffer(OMX_IN OMX_HANDLETYPE hComp, 327dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_BUFFERHEADERTYPE* buffer) 328dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 329dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 330dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 331dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_fill_this_buffer %x, %x\n",(unsigned)hComp,(unsigned)buffer); 332dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 333dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 334dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->fill_this_buffer(hComp,buffer); 335dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 336dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 337dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 338dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 339dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE 340dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_set_callbacks(OMX_IN OMX_HANDLETYPE hComp, 341dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_CALLBACKTYPE* callbacks, 342dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_PTR appData) 343dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 344dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 345dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 346dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_set_callbacks %x, %x , %x\n",(unsigned)hComp,(unsigned)callbacks,(unsigned)appData); 347dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 348dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 349dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 350dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->set_callbacks(hComp,callbacks,appData); 351dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 352dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 353dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 354dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 355dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE 356dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_deinit(OMX_IN OMX_HANDLETYPE hComp) 357dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 358dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 359dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 360dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_deinit %x\n",(unsigned)hComp); 361dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 362dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 363dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 364dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand // call the deinit fuction first 365dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_STATETYPE state; 366dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand pThis->get_state(hComp,&state); 367dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("Calling FreeHandle in state %d \n", state); 368dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->component_deinit(hComp); 369dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand // destroy the component. 370dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand delete pThis; 371dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand ((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate = NULL; 372dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 373dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 374dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 375dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 376dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE 377dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_use_EGL_image(OMX_IN OMX_HANDLETYPE hComp, 378dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr, 379dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_U32 port, 380dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_PTR appData, 381dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN void* eglImage) 382dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 383dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 384dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 385dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_use_EGL_image %x, %x , %d\n",(unsigned)hComp,(unsigned)bufferHdr,(unsigned)port); 386dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 387dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 388dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->use_EGL_image(hComp,bufferHdr,port,appData,eglImage); 389dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 390dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 391dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 392dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 393dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE 394dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandqc_omx_component_role_enum(OMX_IN OMX_HANDLETYPE hComp, 395dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_OUT OMX_U8* role, 396dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IN OMX_U32 index) 397dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 398dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 399dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 400dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand DEBUG_PRINT("OMXCORE: qc_omx_component_role_enum %x, %x , %d\n",(unsigned)hComp,(unsigned)role,(unsigned)index); 401dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 402dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand if(pThis) 403dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand { 404dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand eRet = pThis->component_role_enum(hComp,role,index); 405dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand } 406dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand return eRet; 407dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 408