Home | History | Annotate | Download | only in core
      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