120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/*
220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang *
338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * Copyright 2012 Samsung Electronics S.LSI Co. LTD
420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang *
520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Licensed under the Apache License, Version 2.0 (the "License");
620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * you may not use this file except in compliance with the License.
720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * You may obtain a copy of the License at
820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang *
920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang *      http://www.apache.org/licenses/LICENSE-2.0
1020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang *
1120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Unless required by applicable law or agreed to in writing, software
1220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * distributed under the License is distributed on an "AS IS" BASIS,
1320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * See the License for the specific language governing permissions and
1520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * limitations under the License.
1620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */
1720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
1820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/*
1920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @file        library_register.c
2020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @brief
2120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @author      Yunji Kim (yunji.kim@samsung.com)
2238ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * @version     2.0.0
2320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @history
2438ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang *   2012.02.20 : Create
2520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */
2620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
2720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include <stdio.h>
2820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include <stdlib.h>
2920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include <string.h>
3020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include <dlfcn.h>
3120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
3220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include "Exynos_OSAL_Memory.h"
3320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include "Exynos_OSAL_ETC.h"
3420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include "library_register.h"
3520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
3620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#undef  EXYNOS_LOG_TAG
3720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define EXYNOS_LOG_TAG    "EXYNOS_MPEG4_ENC"
3820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define EXYNOS_LOG_OFF
3920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include "Exynos_OSAL_Log.h"
4020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
4120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho ChangOSCL_EXPORT_REF int Exynos_OMX_COMPONENT_Library_Register(ExynosRegisterComponentType **ppExynosComponent)
4220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang{
4338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    FunctionIn();
4420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
4538ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    if (ppExynosComponent == NULL)
4638ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang        goto EXIT;
4720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
4838ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    /* component 1 - video encoder MPEG4 */
4938ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    Exynos_OSAL_Strcpy(ppExynosComponent[0]->componentName, EXYNOS_OMX_COMPONENT_MPEG4_ENC);
5038ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    Exynos_OSAL_Strcpy(ppExynosComponent[0]->roles[0], EXYNOS_OMX_COMPONENT_MPEG4_ENC_ROLE);
5138ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    ppExynosComponent[0]->totalRoleNum = MAX_COMPONENT_ROLE_NUM;
5220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
5338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    /* component 2 - video encoder H.263 */
5438ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    Exynos_OSAL_Strcpy(ppExynosComponent[1]->componentName, EXYNOS_OMX_COMPONENT_H263_ENC);
5538ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    Exynos_OSAL_Strcpy(ppExynosComponent[1]->roles[0], EXYNOS_OMX_COMPONENT_H263_ENC_ROLE);
5638ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    ppExynosComponent[1]->totalRoleNum = MAX_COMPONENT_ROLE_NUM;
5720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
5820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho ChangEXIT:
5938ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    FunctionOut();
60800a8d754f6251b19a56b1aebde0e239c0e5f3cdJiho Chang
6138ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    return MAX_COMPONENT_NUM;
6220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang}
63