1b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 2b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* 3b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Copyright (C) Texas Instruments - http://www.ti.com/ 4b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 5b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * This library is free software; you can redistribute it and/or 6b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * modify it under the terms of the GNU Lesser General Public 7b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * License as published by the Free Software Foundation; either 8b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * version 2.1 of the License, or (at your option) any later version. 9b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 10b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 11b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * This library is distributed in the hope that it will be useful, 12b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * but WITHOUT ANY WARRANTY; without even the implied warranty of 13b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Lesser General Public License for more details. 15b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 16b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * 17b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * You should have received a copy of the GNU Lesser General Public 18b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * License along with this library; if not, write to the Free Software 19b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 21b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifndef OMX_VPP_UTILS__H 22b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_VPP_UTILS__H 23b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 24b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <OMX_Component.h> 25b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include "LCML_DspCodec.h" 26b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef RESOURCE_MANAGER_ENABLED 27b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <ResourceManagerProxyAPI.h> 28b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 29b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include <OMX_TI_Common.h> 30b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 31b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef __PERF_INSTRUMENTATION__ 32b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#include "perf.h" 33b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 34b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 35b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define KHRONOS_1_2 36b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 37b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*Linked List */ 38b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 39b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct Node { 40b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin struct Node *pNextNode; 41b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin void *pValue; 42b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} Node; 43b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 44b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct LinkedList { 45b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin Node *pRoot; 46b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} LinkedList; 47b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 48b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinLinkedList AllocList; 49b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 50b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid LinkedList_Create(LinkedList *LinkedList); 51b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid LinkedList_AddElement(LinkedList *LinkedList, void *pValue); 52b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid LinkedList_FreeElement(LinkedList *LinkedList, void *pValue); 53b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid LinkedList_FreeAll(LinkedList *LinkedList); 54b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid LinkedList_DisplayAll(LinkedList *LinkedList); 55b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid LinkedList_Destroy(LinkedList *LinkedList); 56b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 57b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* 58b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * M A C R O S 59b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 60b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* configuration numbers */ 61b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 62b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*difine for Khronos 1.1*/ 63b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define KHRONOS_1_1 64b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 65b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*#define VPP_DEBUG*/ 66b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 67b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define VPP_MAJOR_VER 0x01 68b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*#ifdef KHRONOS_1_1 69b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define VPP_MINOR_VER 0x01 70b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else*/ 71b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define VPP_MINOR_VER 0x00 72b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*#endif*/ 73b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define VPP_REVISION 0x00 74b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define VPP_STEP 0x00 75b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 76b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NORMAL_BUFFER 0 77b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_NOPORT 0xFFFFFFFE 78b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NUM_OF_PORTS 4 79b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 80b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NUM_OF_VPP_BUFFERS (4) 81b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define MAX_VPP_BUFFERS (4) 82b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define NUM_OF_VPP_PORTS (4) 83b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define MIN_NUM_OF_VPP_BUFFERS 1 84b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 85b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define DEFAULT_WIDTH (176) 86b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define DEFAULT_HEIGHT (144) 87b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 88b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define VPP_ZERO 0 89b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define VPP_DSPSTOP 0x01 90b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define VPP_BUFFERBACK 0x02 91b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define VPP_IDLEREADY ( VPP_DSPSTOP | VPP_BUFFERBACK ) 92b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 93b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define DSP_MMU_FAULT_HANDLING 94b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 95b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef UNDER_CE 96b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define USN_DLL_NAME "/windows/usn.dll64P" 97b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define VPP_NODE_DLL "/windows/vpp_sn.dll64P" 98b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 99b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define USN_DLL_NAME "usn.dll64P" 100b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define VPP_NODE_DLL "vpp_sn.dll64P" 101b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 102b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 103b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef UNDER_CE 104b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin #include <oaf_debug.h> /* defines VPP_DPRINT*/ 105b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 106b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin #ifdef VPP_DEBUG 107b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin #define VPP_DPRINT(...) fprintf(stderr,__VA_ARGS__) 108b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin #else 109b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin #define VPP_DPRINT(...) 110b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin #endif 111b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 112b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 113b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_INIT_STRUCT(_s_, _name_) \ 114b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ \ 115b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin memset((_s_), 0x0, sizeof(_name_)); \ 116b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (_s_)->nSize = sizeof(_name_); \ 117b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (_s_)->nVersion.s.nVersionMajor = VPP_MAJOR_VER; \ 118b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (_s_)->nVersion.s.nVersionMinor = VPP_MINOR_VER; \ 119b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (_s_)->nVersion.s.nRevision = VPP_REVISION; \ 120b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin (_s_)->nVersion.s.nStep = VPP_STEP; \ 121b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 122b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 123b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_CHECK_CMD(_ptr1, _ptr2, _ptr3) \ 124b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ \ 125b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(!_ptr1 || !_ptr2 || !_ptr3){ \ 126b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin eError = OMX_ErrorBadParameter; \ 127b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin goto EXIT; \ 128b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } \ 129b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 130b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 131b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_SET_ERROR_BAIL(_eError, _eCode)\ 132b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ \ 133b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin _eError = _eCode; \ 134b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin goto EXIT; \ 135b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 136b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 137b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_MALLOC(_pStruct_, _size_) \ 138b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin _pStruct_ = malloc(_size_); \ 139b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if(_pStruct_ == NULL){ \ 140b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin eError = OMX_ErrorInsufficientResources; \ 141b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin goto EXIT; \ 142b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } \ 143b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin memset(_pStruct_, 0, _size_);\ 144b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin LinkedList_AddElement(&AllocList, _pStruct_); 145b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 146b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_FREE(_ptr) \ 147b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ \ 148b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin if (_ptr != NULL) { \ 149b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin LinkedList_FreeElement(&AllocList, _ptr);\ 150b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin _ptr = NULL; \ 151b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } \ 152b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 153b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 154b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#define OMX_FREEALL() \ 155b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ \ 156b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin LinkedList_FreeAll(&AllocList);\ 157b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} 158b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 159b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 160b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/********************************************************************** 161b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * GPP Internal data type 162b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin ********************************************************************** 163b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 164b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 165b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef enum OMX_VPP_PORT_NUMBER_TYPE { 166b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_VPP_INPUT_PORT = 0, 167b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_VPP_INPUT_OVERLAY_PORT = 1, 168b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_VPP_RGB_OUTPUT_PORT = 2, 169b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_VPP_YUV_OUTPUT_PORT = 3, 170b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_VPP_MAXPORT_NUM = 3 171b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} OMX_VPP_PORT_NUMBER_TYPE; 172b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 173b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef enum { 174b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin IUALG_CMD_SETCOEFF = 100, 175b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin IUALG_CMD_SETIO 176b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}IUALG_VppCmd; 177b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 178b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef enum VPP_BUFFER_OWNER 179b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 180b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin VPP_BUFFER_CLIENT = 0x0, 181b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin VPP_BUFFER_COMPONENT_IN, 182b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin VPP_BUFFER_COMPONENT_OUT, 183b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin VPP_BUFFER_DSP, 184b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin VPP_BUFFER_TUNNEL_COMPONENT 185b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} VPP_BUFFER_OWNER; 186b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef enum OMX_INDEXVPPTYPE 187b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 188b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef KHRONOS_1_2 189b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomSetZoomFactor = (OMX_IndexVendorStartUnused + 1), 190b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#else 191b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomSetZoomFactor = (OMX_IndexIndexVendorStartUnused + 1), 192b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 193b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomSetZoomLimit, 194b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomSetZoomSpeed, 195b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomSetZoomXoffsetFromCenter16, 196b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomSetZoomYoffsetFromCenter16, 197b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomSetFrostedGlassOvly, 198b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomVideoColorRange, 199b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomRGB4ColorFormat, 200b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_IndexCustomConfigInputSize 201b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} OMX_INDEXVPPTYPE; 202b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 203b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 204b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef enum VGPOP_IORange { 205b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin VGPOP_IN_16_235_OUT_16_235, /*limited range to limited range*/ 206b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin VGPOP_IN_00_255_OUT_00_255, /*full range to full range*/ 207b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin VGPOP_IN_00_255_OUT_16_235, /*full range to limited range*/ 208b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin VGPOP_IN_16_235_OUT_00_255 /*limited range to full range*/ 209b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} VGPOP_IORange; 210b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 211b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 212b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Parameter buffer which needs to be passed to DSP */ 213b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 214b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct GPPToVPPInputFrameStatus { 215b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 216b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* INPUT FRAME */ 217b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 218b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* input size*/ 219b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulInWidth; /* picture buffer width */ 220b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulInHeight; /* picture buffer height */ 221b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulCInOffset; /* offset of the C frame in the * 222b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * buffer (equal to zero if there * 223b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * is no C frame) */ 224b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 225b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* PROCESSING PARAMETERS */ 226b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 227b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* crop */ 228b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulInXstart; /* Hin active start */ 229b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulInXsize; /* Hin active width */ 230b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulInYstart; /* Vin active start */ 231b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulInYsize; /* Vin active height */ 232b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 233b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* zoom */ 234b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulZoomFactor; /*zooming ratio (/1024) */ 235b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulZoomLimit; /* zooming ratio limit (/1024) */ 236b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulZoomSpeed; /* speed of ratio change */ 237b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 238b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* stabilisation */ 239b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulXoffsetFromCenter16; /* add 1/16/th accuracy offset */ 240b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulYoffsetFromCenter16; /* add 1/16/th accuracy offset */ 241b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 242b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* gain and contrast */ 243b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulContrastType; /* Contrast method */ 244b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulVideoGain; /* gain on video (Y and C) */ 245b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 246b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* effect */ 247b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulFrostedGlassOvly; /* Frosted glass effect overlay */ 248b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulLightChroma; /* Light chrominance process */ 249b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulLockedRatio; /* keep H/V ratio */ 250b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulMirror; /* to mirror the picture */ 251b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulRGBRotation; /* 0, 90, 180, 270 deg. */ 252b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulYUVRotation; /* 0, 90, 180, 270 deg. */ 253b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 254b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifndef _55_ 255b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 eIORange; /* Video Color Range Conversion */ 256b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulDithering; /* dithering */ 257b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulOutPitch; /* output pitch (in bytes)*/ 258b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulAlphaRGB; /* Global A value of an ARGB output*/ 259b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 260b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 261b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}GPPToVPPInputFrameStatus; 262b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 263b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 264b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* OUTPPUT BUFFER */ 265b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 266b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct GPPToVPPOutputFrameStatus { 267b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 268b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulOutWidth; /* RGB/YUV picture buffer width */ 269b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulOutHeight; /* RGB/YUV picture buffer height */ 270b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 ulCOutOffset; /* Offset of the C frame in the buffer (equal to 0 if there is no C frame) */ 271b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 272b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}GPPToVPPOutputFrameStatus; 273b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 274b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* ALG CONTROL*/ 275b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 276b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct VPPIOConf { 277b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 278b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Optionnal input */ 279b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 overlayInputImage; 280b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /* Optionnal output */ 281b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 RGBOutputImage; 282b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 YUVOutputImage; 283b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 284b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} VPPIOConf; 285b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 286b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* UUID structure for DSP/BIOS Bridge nodes. COMMON_TI_UUID*/ 287b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinstatic const struct DSP_UUID COMMON_TI_UUID = { 288b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 0x79A3C8B3, 0x95F2, 0x403F, 0x9A, 0x4B, { 289b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 0xCF, 0x80, 0x57, 0x73, 0x05, 0x41 290b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin } 291b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}; 292b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 293b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 294b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 295b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*===================================================================*/ 296b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/** 297b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * OMX_VPP_PORT_NUMBER_TYPE enumeration for ports supported by 298b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin * this component. 299b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin */ 300b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/*===================================================================*/ 301b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct VPP_OVERLAY { 302b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 *iRBuff ; 303b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 *iGBuff; 304b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 *iBBuff ; 305b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 *iOvlyConvBufPtr ; 306b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 iRKey; 307b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 iGKey; 308b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 iBKey; 309b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 iAlign ; 310b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin}VPP_OVERLAY; 311b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 312b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* Component buffer */ 313b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct OMX_VPP_COMPONENT_BUFFER { 314b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERHEADERTYPE *pBufHeader; 315b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nIndex; 316b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BOOL bSelfAllocated; 317b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BOOL bHolding; 318b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin VPP_BUFFER_OWNER eBufferOwner; 319b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 *pBufferStart; 320b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} OMX_VPP_COMPONENT_BUFFER; 321b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 322b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct VPP_BUFFERDATA_PROPAGATION { 323b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 flag; 324b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 buffer_idYUV; 325b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 buffer_idRGB; 326b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_HANDLETYPE hMarkTargetComponent; 327b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PTR pMarkData; 328b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nTickCount; 329b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_TICKS nTimeStamp; 330b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} VPP_BUFFERDATA_PROPAGATION; 331b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 332b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* Component Port Context */ 333b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct VPP_PORT_TYPE 334b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 335b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_HANDLETYPE hTunnelComponent; 336b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nTunnelPort; 337b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERSUPPLIERTYPE eSupplierSetting; 338b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BUFFERSUPPLIERTYPE eSupplierPreference; 339b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nPortIndex; 340b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nBufferCount; 341b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_VPP_COMPONENT_BUFFER pVPPBufHeader[NUM_OF_VPP_BUFFERS]; 342b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin VPP_BUFFERDATA_PROPAGATION sBufferDataProp[NUM_OF_VPP_BUFFERS]; 343b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PARAM_PORTDEFINITIONTYPE pPortDef; 344b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BOOL nBufSupplier; 345b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nReturnedBufferCount; /*For tunneling*/ 346b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_MIRRORTYPE eMirror; 347b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} VPP_PORT_TYPE; 348b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 349b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct VPP_COMPONENT_PRIVATE 350b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 351b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Array of pointers to BUFFERHEADERTYPE structues 352b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin This pBufHeader[INPUT_PORT] will point to all the 353b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin BUFFERHEADERTYPE structures related to input port, 354b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin not just one structure. Same is for output port 355b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin also. */ 356b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 357b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 358b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin VPP_PORT_TYPE sCompPorts[NUM_OF_VPP_PORTS]; 359b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 360b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_CALLBACKTYPE cbInfo; 361b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Handle for use with async callbacks */ 362b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 363b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** This will contain info like how many buffers 364b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin are there for input/output ports, their size etc, but not 365b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin BUFFERHEADERTYPE POINTERS. */ 366b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 367b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PORT_PARAM_TYPE *pPortParamTypeImage; 368b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PORT_PARAM_TYPE *pPortParamTypeAudio; 369b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PORT_PARAM_TYPE *pPortParamTypeVideo; 370b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PORT_PARAM_TYPE *pPortParamTypeOthers; 371b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 372b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_VIDEO_PARAM_PORTFORMATTYPE *pInPortFormat; 373b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_VIDEO_PARAM_PORTFORMATTYPE *pInPortOverlayFormat; 374b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_VIDEO_PARAM_PORTFORMATTYPE *pOutPortRGBFormat; 375b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_VIDEO_PARAM_PORTFORMATTYPE *pOutPortYUVFormat; 376b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PRIORITYMGMTTYPE *pPriorityMgmt; 377b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 378b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** This is component handle */ 379b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_COMPONENTTYPE *pHandle; 380b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 381b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Current state of this component */ 382b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_STATETYPE curState; 383b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 384b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** The state to go **/ 385b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_STATETYPE toState; 386b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 387b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_STRING cComponentName; 388b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_VERSIONTYPE ComponentVersion; 389b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_VERSIONTYPE SpecVersion; 390b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 391b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** The component thread handle */ 392b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_t ComponentThread; 393b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin LCML_DSP_INTERFACE* pLCML; 394b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin void * pDllHandle; 395b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 396b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** The pipes for sending commands to the thread */ 397b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int cmdPipe[2]; 398b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int nCmdDataPipe[2]; 399b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** The pipes for sending buffers to the thread */ 400b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 401b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /*The Pipe to send empty output buffers to component*/ 402b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int nFree_oPipe[2]; 403b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /*The pipe for sending Filled Input buffers to component*/ 404b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin int nFilled_iPipe[2]; 405b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 406b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin /** Set to indicate component is stopping */ 407b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bIsStopping; 408b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 409b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 bIsEOFSent; 410b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 lcml_compID; 411b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 NumofOutputPort; 412b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 IsYUVdataout; 413b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 IsRGBdataout; 414b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 IsOverlay; 415b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_CONFIG_RECTTYPE *pCrop; 416b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 ExeToIdleFlag; /* StateCheck */ 417b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_HANDLETYPE pLcmlHandle; 418b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin VPP_OVERLAY *overlay; 419b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 *RGBbuffer ; 420b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 *colorKey; 421b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 422b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef __PERF_INSTRUMENTATION__ 423b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin PERF_OBJHANDLE pPERF, pPERFcomp; 424b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 425b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 426b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 lcml_nCntIp; 427b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 lcml_nCntOpReceived; 428b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nInputFrame; /*Buffer data propagation*/ 429b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nOverlayFrame; /*Buffer data propagation*/ 430b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nInYUVBufferCount; /*Buffer data propagation*/ 431b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nInRGBBufferCount; /*Buffer data propagation*/ 432b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nOutYUVBufferCount; /*Buffer data propagation*/ 433b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nOutRGBBufferCount; /*Buffer data propagation*/ 434b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PTR pMarkData; /*Buffer data propagation*/ 435b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_HANDLETYPE hMarkTargetComponent; /*Buffer data propagation*/ 436b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin VPPIOConf *tVPPIOConf; 437b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GPPToVPPInputFrameStatus *pIpFrameStatus; 438b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GPPToVPPOutputFrameStatus *pOpYUVFrameStatus; 439b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin GPPToVPPOutputFrameStatus *pOpRGBFrameStatus; 440b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_CONFIG_SCALEFACTORTYPE sScale; 441b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 CodecAlgCtrlAck; 442b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BOOL bFlushComplete; 443b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 nFlushPort; 444b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BOOL bDisable; 445b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BOOL bDisableIncomplete[NUM_OF_VPP_PORTS]; 446b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef RESOURCE_MANAGER_ENABLED 447b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin RMPROXY_CALLBACKTYPE rmproxyCallback; 448b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 449b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_BOOL bPreempted; 450b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 451b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 452b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_mutex_t buf_mutex; 453b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_mutex_t vpp_mutex; 454b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin pthread_cond_t stop_cond; 455b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 456b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#ifdef KHRONOS_1_1 457b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_PARAM_COMPONENTROLETYPE componentRole; 458b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 459b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} VPP_COMPONENT_PRIVATE; 460b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 461b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* structures for custom commands */ 462b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavintypedef struct _VPP_CUSTOM_PARAM_DEFINITION 463b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin{ 464b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 cCustomParamName[128]; 465b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_INDEXTYPE nCustomParamIndex; 466b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin} VPP_CUSTOM_PARAM_DEFINITION; 467b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 468b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin/* Function ProtoType */ 469b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 470b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_Fill_LCMLInitParams(OMX_HANDLETYPE pHandle, OMX_U16 arr[], LCML_DSP *plcml_Init); 471b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 472b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_GetBufferDirection(OMX_BUFFERHEADERTYPE *pBufHeader, OMX_DIRTYPE *eDir, OMX_U32 Index); 473b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 474b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_LCML_Callback (TUsnCodecEvent event,void * args [10]); 475b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 476b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_HandleCommand (VPP_COMPONENT_PRIVATE *pComponentPrivate, OMX_U32 nParam1); 477b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 478b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_HandleDataBuf_FromApp(OMX_BUFFERHEADERTYPE *pBufHeader, VPP_COMPONENT_PRIVATE *pComponentPrivate); 479b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 480b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 481b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_IsValidBuffer(OMX_BUFFERHEADERTYPE *pBufHeader, 482b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin VPP_COMPONENT_PRIVATE *pComponentPrivate, 483b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 pIndex, 484b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 *pCount); 485b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 486b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 487b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_GetPortDefFromBufHeader(OMX_BUFFERHEADERTYPE *pBufHeader, OMX_PARAM_PORTDEFINITIONTYPE **portDef ); 488b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 489b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_HandleDataBuf_FromLCML(VPP_COMPONENT_PRIVATE* pComponentPrivate); 490b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 491b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_HANDLETYPE VPP_GetLCMLHandle(VPP_COMPONENT_PRIVATE *pComponentPrivate); 492b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 493b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_GetCorresponding_LCMLHeader(VPP_COMPONENT_PRIVATE *pComponentPrivate, 494b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8 *pBuffer, 495b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_DIRTYPE eDir, 496b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_VPP_COMPONENT_BUFFER **ppCmpBuf, 497b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U32 Index); 498b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 499b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_Free_ComponentResources(OMX_HANDLETYPE pComponent); 500b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 501b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE ComputeTiOverlayImgFormat (VPP_COMPONENT_PRIVATE *pComponentPrivate, 502b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8* aPictureArray, 503b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8* aOutImagePtr, 504b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_U8* aTransparencyKey); 505b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 506b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_Start_ComponentThread(OMX_HANDLETYPE pHandle); 507b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 508b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_Stop_ComponentThread(OMX_HANDLETYPE pHandle); 509b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 510b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_DisablePort (VPP_COMPONENT_PRIVATE* pComponentPrivate, OMX_U32 nParam1); 511b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 512b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_EnablePort (VPP_COMPONENT_PRIVATE* pComponentPrivate, OMX_U32 nParam1); 513b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 514b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_HandleCommandFlush (VPP_COMPONENT_PRIVATE* pComponentPrivate, OMX_U32 nParam1, OMX_BOOL return_event); 515b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 516b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_Process_FilledInBuf(VPP_COMPONENT_PRIVATE* pComponentPrivate); 517b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 518b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_Process_FilledOutBuf(VPP_COMPONENT_PRIVATE* pComponentPrivate, 519b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_VPP_COMPONENT_BUFFER *pComponentBuf); 520b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 521b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_Process_FreeInBuf(VPP_COMPONENT_PRIVATE* pComponentPrivate, 522b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin OMX_VPP_COMPONENT_BUFFER *pComponentBuf); 523b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 524b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_Process_FreeOutBuf(VPP_COMPONENT_PRIVATE* pComponentPrivate); 525b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 526b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_ERRORTYPE VPP_Initialize_PrivateStruct(VPP_COMPONENT_PRIVATE *pComponentPrivate); 527b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 528b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz ZavinOMX_BOOL IsTIOMXComponent(OMX_HANDLETYPE hComp); 529b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 530b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavinvoid VPP_InitBufferDataPropagation(VPP_COMPONENT_PRIVATE * pComponentPrivate, OMX_U32 nPortIndex); 531b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin 532b44cdb1b44b144d09e8ec950d1e8e4c280064056Rebecca Schultz Zavin#endif 533