1 /* 2 * 3 * Copyright 2012 Samsung Electronics S.LSI Co. LTD 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 /* 19 * @file Exynos_OMX_Component_Register.h 20 * @brief Exynos OpenMAX IL Component Register 21 * @author SeungBeom Kim (sbcrux.kim (at) samsung.com) 22 * @version 2.0.0 23 * @history 24 * 2012.02.20 : Create 25 */ 26 27 #ifndef EXYNOS_OMX_COMPONENT_REG 28 #define EXYNOS_OMX_COMPONENT_REG 29 30 #include "Exynos_OMX_Def.h" 31 #include "OMX_Types.h" 32 #include "OMX_Core.h" 33 #include "OMX_Component.h" 34 35 36 typedef struct _ExynosRegisterComponentType 37 { 38 OMX_U8 componentName[MAX_OMX_COMPONENT_NAME_SIZE]; 39 OMX_U8 roles[MAX_OMX_COMPONENT_ROLE_NUM][MAX_OMX_COMPONENT_ROLE_SIZE]; 40 OMX_U32 totalRoleNum; 41 } ExynosRegisterComponentType; 42 43 typedef struct _EXYNOS_OMX_COMPONENT_REGLIST 44 { 45 ExynosRegisterComponentType component; 46 OMX_U8 libName[MAX_OMX_COMPONENT_LIBNAME_SIZE]; 47 } EXYNOS_OMX_COMPONENT_REGLIST; 48 49 struct EXYNOS_OMX_COMPONENT; 50 typedef struct _EXYNOS_OMX_COMPONENT 51 { 52 OMX_U8 componentName[MAX_OMX_COMPONENT_NAME_SIZE]; 53 OMX_U8 libName[MAX_OMX_COMPONENT_LIBNAME_SIZE]; 54 OMX_HANDLETYPE libHandle; 55 OMX_COMPONENTTYPE *pOMXComponent; 56 struct _EXYNOS_OMX_COMPONENT *nextOMXComp; 57 } EXYNOS_OMX_COMPONENT; 58 59 60 #ifdef __cplusplus 61 extern "C" { 62 #endif 63 64 65 OMX_ERRORTYPE Exynos_OMX_Component_Register(EXYNOS_OMX_COMPONENT_REGLIST **compList, OMX_U32 *compNum); 66 OMX_ERRORTYPE Exynos_OMX_Component_Unregister(EXYNOS_OMX_COMPONENT_REGLIST *componentList); 67 OMX_ERRORTYPE Exynos_OMX_ComponentLoad(EXYNOS_OMX_COMPONENT *exynos_component); 68 OMX_ERRORTYPE Exynos_OMX_ComponentUnload(EXYNOS_OMX_COMPONENT *exynos_component); 69 70 71 #ifdef __cplusplus 72 } 73 #endif 74 75 #endif 76