111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/*-------------------------------------------------------------------------- 211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelCopyright (c) 2009, The Linux Foundation. All rights reserved. 311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelRedistribution and use in source and binary forms, with or without 511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelmodification, are permitted provided that the following conditions are met: 611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Redistributions of source code must retain the above copyright 711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel notice, this list of conditions and the following disclaimer. 811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Redistributions in binary form must reproduce the above copyright 911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel notice, this list of conditions and the following disclaimer in the 1011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel documentation and/or other materials provided with the distribution. 1111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Neither the name of The Linux Foundation nor 1211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel the names of its contributors may be used to endorse or promote 1311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel products derived from this software without specific prior written 1411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel permission. 1511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 1611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 1711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelIMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 1911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelNON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 2011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 2111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 2211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 2311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 2411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 2511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 2611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel--------------------------------------------------------------------------*/ 2811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/*============================================================================ 2911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel O p e n M A X w r a p p e r s 3011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel O p e n M A X C o r e 3111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 3211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel This module contains the implementation of the OpenMAX core Macros which 3311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel operate directly on the component. 3411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 3511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel*//*========================================================================*/ 3611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 3711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel////////////////////////////////////////////////////////////////////////////// 3811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel// Include Files 3911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel////////////////////////////////////////////////////////////////////////////// 4011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#include "qc_omx_common.h" 4111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#include "omx_core_cmp.h" 4211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#include "qc_omx_component.h" 4311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#include <string.h> 4411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 4511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 4611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelvoid * qc_omx_create_component_wrapper(OMX_PTR obj_ptr) 4711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 4811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (qc_omx_component *)obj_ptr; 4911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_COMPONENTTYPE* component = &(pThis->m_cmp); 5011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel memset(&pThis->m_cmp,0,sizeof(OMX_COMPONENTTYPE)); 5111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 5211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->nSize = sizeof(OMX_COMPONENTTYPE); 5311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->nVersion.nVersion = OMX_SPEC_VERSION; 5411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->pApplicationPrivate = 0; 5511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->pComponentPrivate = obj_ptr; 5611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 5711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->AllocateBuffer = &qc_omx_component_allocate_buffer; 5811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->FreeBuffer = &qc_omx_component_free_buffer; 5911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->GetParameter = &qc_omx_component_get_parameter; 6011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->SetParameter = &qc_omx_component_set_parameter; 6111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->SendCommand = &qc_omx_component_send_command; 6211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->FillThisBuffer = &qc_omx_component_fill_this_buffer; 6311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->EmptyThisBuffer = &qc_omx_component_empty_this_buffer; 6411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->GetState = &qc_omx_component_get_state; 6511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->GetComponentVersion = &qc_omx_component_get_version; 6611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->GetConfig = &qc_omx_component_get_config; 6711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->SetConfig = &qc_omx_component_set_config; 6811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->GetExtensionIndex = &qc_omx_component_get_extension_index; 6911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->ComponentTunnelRequest = &qc_omx_component_tunnel_request; 7011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->UseBuffer = &qc_omx_component_use_buffer; 7111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->SetCallbacks = &qc_omx_component_set_callbacks; 7211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->UseEGLImage = &qc_omx_component_use_EGL_image; 7311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->ComponentRoleEnum = &qc_omx_component_role_enum; 7411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel component->ComponentDeInit = &qc_omx_component_deinit; 7511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return (void *)component; 7611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 7711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 7811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 7911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 8011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/************************************************************************/ 8111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/* COMPONENT INTERFACE */ 8211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/************************************************************************/ 8311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 8411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE 8511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_init(OMX_IN OMX_HANDLETYPE hComp, OMX_IN OMX_STRING componentName) 8611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 8711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 8811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 8911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_init %p\n", hComp); 9011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 9111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 9211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 9311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel // call the init fuction 9411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->component_init(componentName); 9511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 9611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(eRet != OMX_ErrorNone) 9711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 9811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel // in case of error, please destruct the component created 9911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel delete pThis; 10011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 10111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 10211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 10311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 10411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 10511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 10611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE 10711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_get_version(OMX_IN OMX_HANDLETYPE hComp, 10811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_OUT OMX_STRING componentName, 10911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_OUT OMX_VERSIONTYPE* componentVersion, 11011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_OUT OMX_VERSIONTYPE* specVersion, 11111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_OUT OMX_UUIDTYPE* componentUUID) 11211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 11311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 11411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 11511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_get_version %p, %s , %p\n", hComp, componentName, componentVersion); 11611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 11711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 11811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->get_component_version(hComp,componentName,componentVersion,specVersion,componentUUID); 11911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 12011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 12111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 12211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 12311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE 12411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_send_command(OMX_IN OMX_HANDLETYPE hComp, 12511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_COMMANDTYPE cmd, 12611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_U32 param1, 12711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_PTR cmdData) 12811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 12911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 13011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 13111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_send_command %p, %d , %d\n", hComp,(unsigned)cmd,(unsigned)param1); 13211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 13311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 13411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 13511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->send_command(hComp,cmd,param1,cmdData); 13611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 13711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 13811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 13911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 14011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE 14111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_get_parameter(OMX_IN OMX_HANDLETYPE hComp, 14211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_INDEXTYPE paramIndex, 14311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_INOUT OMX_PTR paramData) 14411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 14511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 14611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 14711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_get_parameter %p, %p , %d\n", hComp, paramData, paramIndex); 14811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 14911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 15011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 15111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->get_parameter(hComp,paramIndex,paramData); 15211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 15311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 15411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 15511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 15611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOMX_ERRORTYPE 15711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_set_parameter(OMX_IN OMX_HANDLETYPE hComp, 15811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_INDEXTYPE paramIndex, 15911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_PTR paramData) 16011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 16111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 16211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 16311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_set_parameter %p, %p , %d\n", hComp, paramData, paramIndex); 16411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 16511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 16611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 16711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->set_parameter(hComp,paramIndex,paramData); 16811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 16911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 17011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 17111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 17211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE 17311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_get_config(OMX_IN OMX_HANDLETYPE hComp, 17411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_INDEXTYPE configIndex, 17511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_INOUT OMX_PTR configData) 17611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 17711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 17811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 17911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_get_config %p\n", hComp); 18011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 18111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 18211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 18311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->get_config(hComp, 18411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel configIndex, 18511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel configData); 18611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 18711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 18811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 18911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 19011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE 19111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_set_config(OMX_IN OMX_HANDLETYPE hComp, 19211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_INDEXTYPE configIndex, 19311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_PTR configData) 19411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 19511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 19611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 19711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_set_config %p\n", hComp); 19811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 19911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 20011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 20111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->set_config(hComp, 20211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel configIndex, 20311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel configData); 20411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 20511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 20611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 20711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 20811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE 20911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_get_extension_index(OMX_IN OMX_HANDLETYPE hComp, 21011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_STRING paramName, 21111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_OUT OMX_INDEXTYPE* indexType) 21211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 21311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 21411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 21511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 21611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 21711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->get_extension_index(hComp,paramName,indexType); 21811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 21911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 22011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 22111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 22211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE 22311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_get_state(OMX_IN OMX_HANDLETYPE hComp, 22411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_OUT OMX_STATETYPE* state) 22511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 22611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 22711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 22811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_get_state %p\n", hComp); 22911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 23011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 23111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 23211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->get_state(hComp,state); 23311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 23411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 23511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 23611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 23711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE 23811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_tunnel_request(OMX_IN OMX_HANDLETYPE hComp, 23911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_U32 port, 24011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_HANDLETYPE peerComponent, 24111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_U32 peerPort, 24211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_INOUT OMX_TUNNELSETUPTYPE* tunnelSetup) 24311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 24411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel (void) hComp, (void) port, (void) peerComponent, (void) peerPort, (void) tunnelSetup; 24511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("Error: qc_omx_component_tunnel_request Not Implemented\n"); 24611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return OMX_ErrorNotImplemented; 24711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 24811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 24911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE 25011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_use_buffer(OMX_IN OMX_HANDLETYPE hComp, 25111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr, 25211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_U32 port, 25311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_PTR appData, 25411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_U32 bytes, 25511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_U8* buffer) 25611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 25711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 25811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 25911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_use_buffer %p\n", hComp); 26011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 26111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 26211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 26311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->use_buffer(hComp, 26411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel bufferHdr, 26511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel port, 26611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel appData, 26711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel bytes, 26811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel buffer); 26911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 27011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 27111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 27211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 27311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 27411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel// qc_omx_component_allocate_buffer -- API Call 27511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE 27611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_allocate_buffer(OMX_IN OMX_HANDLETYPE hComp, 27711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr, 27811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_U32 port, 27911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_PTR appData, 28011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_U32 bytes) 28111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 28211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 28311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 28411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 28511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_allocate_buffer %p, %p , %d\n",hComp, bufferHdr,(unsigned)port); 28611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 28711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 28811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 28911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->allocate_buffer(hComp,bufferHdr,port,appData,bytes); 29011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 29111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 29211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 29311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 29411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE 29511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_free_buffer(OMX_IN OMX_HANDLETYPE hComp, 29611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_U32 port, 29711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_BUFFERHEADERTYPE* buffer) 29811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 29911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 30011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 30111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 30211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_free_buffer[%d] %p, %p\n", (unsigned)port, hComp, buffer); 30311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 30411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 30511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 30611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->free_buffer(hComp,port,buffer); 30711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 30811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 30911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 31011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 31111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE 31211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_empty_this_buffer(OMX_IN OMX_HANDLETYPE hComp, 31311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_BUFFERHEADERTYPE* buffer) 31411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 31511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 31611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 31711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_empty_this_buffer %p, %p\n",hComp, buffer); 31811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 31911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 32011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 32111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->empty_this_buffer(hComp,buffer); 32211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 32311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 32411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 32511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 32611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE 32711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_fill_this_buffer(OMX_IN OMX_HANDLETYPE hComp, 32811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_BUFFERHEADERTYPE* buffer) 32911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 33011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 33111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 33211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_fill_this_buffer %p, %p\n", hComp, buffer); 33311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 33411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 33511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->fill_this_buffer(hComp,buffer); 33611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 33711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 33811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 33911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 34011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE 34111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_set_callbacks(OMX_IN OMX_HANDLETYPE hComp, 34211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_CALLBACKTYPE* callbacks, 34311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_PTR appData) 34411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 34511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 34611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 34711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_set_callbacks %p, %p , %p\n", hComp, callbacks, appData); 34811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 34911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 35011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 35111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->set_callbacks(hComp,callbacks,appData); 35211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 35311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 35411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 35511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 35611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE 35711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_deinit(OMX_IN OMX_HANDLETYPE hComp) 35811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 35911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 36011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 36111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_deinit %p\n", hComp); 36211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 36311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 36411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 36511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel // call the deinit fuction first 36611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_STATETYPE state; 36711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel pThis->get_state(hComp,&state); 36811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("Calling FreeHandle in state %d \n", state); 36911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->component_deinit(hComp); 37011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel // destroy the component. 37111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel delete pThis; 37211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 37311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 37411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 37511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 37611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE 37711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_use_EGL_image(OMX_IN OMX_HANDLETYPE hComp, 37811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr, 37911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_U32 port, 38011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_PTR appData, 38111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN void* eglImage) 38211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 38311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 38411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 38511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_use_EGL_image %p, %p , %d\n", hComp, bufferHdr,(unsigned)port); 38611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 38711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 38811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->use_EGL_image(hComp,bufferHdr,port,appData,eglImage); 38911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 39011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 39111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 39211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 39311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE 39411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelqc_omx_component_role_enum(OMX_IN OMX_HANDLETYPE hComp, 39511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_OUT OMX_U8* role, 39611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IN OMX_U32 index) 39711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 39811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ERRORTYPE eRet = OMX_ErrorBadParameter; 39911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel qc_omx_component *pThis = (hComp)? (qc_omx_component *)(((OMX_COMPONENTTYPE *)hComp)->pComponentPrivate):NULL; 40011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel DEBUG_PRINT("OMXCORE: qc_omx_component_role_enum %p, %p , %d\n", hComp, role,(unsigned)index); 40111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 40211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel if(pThis) 40311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel { 40411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel eRet = pThis->component_role_enum(hComp,role,index); 40511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel } 40611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel return eRet; 40711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 408