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_Mpeg4enc.h
20 * @brief
21 * @author      Yunji Kim (yunji.kim@samsung.com)
22 * @version     2.0.0
23 * @history
24 *   2012.02.20 : Create
25 */
26
27#ifndef EXYNOS_OMX_MPEG4_ENC_COMPONENT
28#define EXYNOS_OMX_MPEG4_ENC_COMPONENT
29
30#include "Exynos_OMX_Def.h"
31#include "OMX_Component.h"
32#include "OMX_Video.h"
33
34typedef enum _CODEC_TYPE
35{
36    CODEC_TYPE_H263,
37    CODEC_TYPE_MPEG4
38} CODEC_TYPE;
39
40typedef struct _EXYNOS_MFC_MPEG4ENC_HANDLE
41{
42    OMX_HANDLETYPE             hMFCHandle;
43
44    OMX_U32                    indexTimestamp;
45    OMX_U32 outputIndexTimestamp;
46    OMX_BOOL bConfiguredMFCSrc;
47    OMX_BOOL bConfiguredMFCDst;
48    CODEC_TYPE                 codecType;
49
50    ExynosVideoDecOps *pEncOps;
51    ExynosVideoDecBufferOps *pInbufOps;
52    ExynosVideoDecBufferOps *pOutbufOps;
53    ExynosVideoEncParam      encParam;
54} EXYNOS_MFC_MPEG4ENC_HANDLE;
55
56typedef struct _EXYNOS_MPEG4ENC_HANDLE
57{
58    /* OMX Codec specific */
59    OMX_VIDEO_PARAM_H263TYPE  h263Component[ALL_PORT_NUM];
60    OMX_VIDEO_PARAM_MPEG4TYPE mpeg4Component[ALL_PORT_NUM];
61    OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE errorCorrectionType[ALL_PORT_NUM];
62
63    /* SEC MFC Codec specific */
64    EXYNOS_MFC_MPEG4ENC_HANDLE   hMFCMpeg4Handle;
65
66    OMX_BOOL bSourceStart;
67    OMX_BOOL bDestinationStart;
68    OMX_HANDLETYPE hSourceStartEvent;
69    OMX_HANDLETYPE hDestinationStartEvent;
70} EXYNOS_MPEG4ENC_HANDLE;
71
72
73#ifdef __cplusplus
74extern "C" {
75#endif
76
77OSCL_EXPORT_REF OMX_ERRORTYPE Exynos_OMX_ComponentInit(OMX_HANDLETYPE hComponent, OMX_STRING componentName);
78                OMX_ERRORTYPE Exynos_OMX_ComponentDeinit(OMX_HANDLETYPE hComponent);
79
80#ifdef __cplusplus
81};
82#endif
83
84#endif
85