117e995d39771569792c528f3dea559c83f0fc238Andreas Huber/* 217e995d39771569792c528f3dea559c83f0fc238Andreas Huber * Copyright (C) 2009 The Android Open Source Project 317e995d39771569792c528f3dea559c83f0fc238Andreas Huber * 417e995d39771569792c528f3dea559c83f0fc238Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 517e995d39771569792c528f3dea559c83f0fc238Andreas Huber * you may not use this file except in compliance with the License. 617e995d39771569792c528f3dea559c83f0fc238Andreas Huber * You may obtain a copy of the License at 717e995d39771569792c528f3dea559c83f0fc238Andreas Huber * 817e995d39771569792c528f3dea559c83f0fc238Andreas Huber * http://www.apache.org/licenses/LICENSE-2.0 917e995d39771569792c528f3dea559c83f0fc238Andreas Huber * 1017e995d39771569792c528f3dea559c83f0fc238Andreas Huber * Unless required by applicable law or agreed to in writing, software 1117e995d39771569792c528f3dea559c83f0fc238Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 1217e995d39771569792c528f3dea559c83f0fc238Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1317e995d39771569792c528f3dea559c83f0fc238Andreas Huber * See the License for the specific language governing permissions and 1417e995d39771569792c528f3dea559c83f0fc238Andreas Huber * limitations under the License. 1517e995d39771569792c528f3dea559c83f0fc238Andreas Huber */ 1617e995d39771569792c528f3dea559c83f0fc238Andreas Huber 1717e995d39771569792c528f3dea559c83f0fc238Andreas Huber#ifndef TI_OMX_PLUGIN_H_ 1817e995d39771569792c528f3dea559c83f0fc238Andreas Huber 1917e995d39771569792c528f3dea559c83f0fc238Andreas Huber#define TI_OMX_PLUGIN_H_ 2017e995d39771569792c528f3dea559c83f0fc238Andreas Huber 2117e995d39771569792c528f3dea559c83f0fc238Andreas Huber#include <media/stagefright/OMXPluginBase.h> 2217e995d39771569792c528f3dea559c83f0fc238Andreas Huber 2317e995d39771569792c528f3dea559c83f0fc238Andreas Hubernamespace android { 2417e995d39771569792c528f3dea559c83f0fc238Andreas Huber 2517e995d39771569792c528f3dea559c83f0fc238Andreas Huberstruct TIOMXPlugin : public OMXPluginBase { 2617e995d39771569792c528f3dea559c83f0fc238Andreas Huber TIOMXPlugin(); 2717e995d39771569792c528f3dea559c83f0fc238Andreas Huber virtual ~TIOMXPlugin(); 2817e995d39771569792c528f3dea559c83f0fc238Andreas Huber 2917e995d39771569792c528f3dea559c83f0fc238Andreas Huber virtual OMX_ERRORTYPE makeComponentInstance( 3017e995d39771569792c528f3dea559c83f0fc238Andreas Huber const char *name, 3117e995d39771569792c528f3dea559c83f0fc238Andreas Huber const OMX_CALLBACKTYPE *callbacks, 3217e995d39771569792c528f3dea559c83f0fc238Andreas Huber OMX_PTR appData, 3317e995d39771569792c528f3dea559c83f0fc238Andreas Huber OMX_COMPONENTTYPE **component); 3417e995d39771569792c528f3dea559c83f0fc238Andreas Huber 35f40810585b61295f84d7d6b4e63ef935222bf18eAndreas Huber virtual OMX_ERRORTYPE destroyComponentInstance( 36f40810585b61295f84d7d6b4e63ef935222bf18eAndreas Huber OMX_COMPONENTTYPE *component); 37f40810585b61295f84d7d6b4e63ef935222bf18eAndreas Huber 3817e995d39771569792c528f3dea559c83f0fc238Andreas Huber virtual OMX_ERRORTYPE enumerateComponents( 3917e995d39771569792c528f3dea559c83f0fc238Andreas Huber OMX_STRING name, 4017e995d39771569792c528f3dea559c83f0fc238Andreas Huber size_t size, 4117e995d39771569792c528f3dea559c83f0fc238Andreas Huber OMX_U32 index); 4217e995d39771569792c528f3dea559c83f0fc238Andreas Huber 436239f8a9287b511c2a7e417979ca5299a15436bcAndreas Huber virtual OMX_ERRORTYPE getRolesOfComponent( 446239f8a9287b511c2a7e417979ca5299a15436bcAndreas Huber const char *name, 456239f8a9287b511c2a7e417979ca5299a15436bcAndreas Huber Vector<String8> *roles); 466239f8a9287b511c2a7e417979ca5299a15436bcAndreas Huber 4717e995d39771569792c528f3dea559c83f0fc238Andreas Huberprivate: 4817e995d39771569792c528f3dea559c83f0fc238Andreas Huber void *mLibHandle; 4917e995d39771569792c528f3dea559c83f0fc238Andreas Huber 5017e995d39771569792c528f3dea559c83f0fc238Andreas Huber typedef OMX_ERRORTYPE (*InitFunc)(); 5117e995d39771569792c528f3dea559c83f0fc238Andreas Huber typedef OMX_ERRORTYPE (*DeinitFunc)(); 5217e995d39771569792c528f3dea559c83f0fc238Andreas Huber typedef OMX_ERRORTYPE (*ComponentNameEnumFunc)( 5317e995d39771569792c528f3dea559c83f0fc238Andreas Huber OMX_STRING, OMX_U32, OMX_U32); 5417e995d39771569792c528f3dea559c83f0fc238Andreas Huber 5517e995d39771569792c528f3dea559c83f0fc238Andreas Huber typedef OMX_ERRORTYPE (*GetHandleFunc)( 5617e995d39771569792c528f3dea559c83f0fc238Andreas Huber OMX_HANDLETYPE *, OMX_STRING, OMX_PTR, OMX_CALLBACKTYPE *); 5717e995d39771569792c528f3dea559c83f0fc238Andreas Huber 58f40810585b61295f84d7d6b4e63ef935222bf18eAndreas Huber typedef OMX_ERRORTYPE (*FreeHandleFunc)(OMX_HANDLETYPE *); 59f40810585b61295f84d7d6b4e63ef935222bf18eAndreas Huber 606239f8a9287b511c2a7e417979ca5299a15436bcAndreas Huber typedef OMX_ERRORTYPE (*GetRolesOfComponentFunc)( 616239f8a9287b511c2a7e417979ca5299a15436bcAndreas Huber OMX_STRING, OMX_U32 *, OMX_U8 **); 626239f8a9287b511c2a7e417979ca5299a15436bcAndreas Huber 6317e995d39771569792c528f3dea559c83f0fc238Andreas Huber InitFunc mInit; 6417e995d39771569792c528f3dea559c83f0fc238Andreas Huber DeinitFunc mDeinit; 6517e995d39771569792c528f3dea559c83f0fc238Andreas Huber ComponentNameEnumFunc mComponentNameEnum; 6617e995d39771569792c528f3dea559c83f0fc238Andreas Huber GetHandleFunc mGetHandle; 67f40810585b61295f84d7d6b4e63ef935222bf18eAndreas Huber FreeHandleFunc mFreeHandle; 686239f8a9287b511c2a7e417979ca5299a15436bcAndreas Huber GetRolesOfComponentFunc mGetRolesOfComponentHandle; 6917e995d39771569792c528f3dea559c83f0fc238Andreas Huber 7017e995d39771569792c528f3dea559c83f0fc238Andreas Huber TIOMXPlugin(const TIOMXPlugin &); 7117e995d39771569792c528f3dea559c83f0fc238Andreas Huber TIOMXPlugin &operator=(const TIOMXPlugin &); 7217e995d39771569792c528f3dea559c83f0fc238Andreas Huber}; 7317e995d39771569792c528f3dea559c83f0fc238Andreas Huber 7417e995d39771569792c528f3dea559c83f0fc238Andreas Huber} // namespace android 7517e995d39771569792c528f3dea559c83f0fc238Andreas Huber 7617e995d39771569792c528f3dea559c83f0fc238Andreas Huber#endif // TI_OMX_PLUGIN_H_ 77