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_H264enc.h 20 * @brief 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_H264_ENC_COMPONENT 28 #define EXYNOS_OMX_H264_ENC_COMPONENT 29 30 #include "Exynos_OMX_Def.h" 31 #include "OMX_Component.h" 32 #include "OMX_Video.h" 33 34 typedef struct _EXTRA_DATA 35 { 36 OMX_PTR pHeaderSPS; 37 OMX_U32 SPSLen; 38 OMX_PTR pHeaderPPS; 39 OMX_U32 PPSLen; 40 } EXTRA_DATA; 41 42 typedef struct _EXYNOS_MFC_H264ENC_HANDLE 43 { 44 OMX_HANDLETYPE hMFCHandle; 45 46 OMX_U32 indexTimestamp; 47 OMX_U32 outputIndexTimestamp; 48 OMX_BOOL bConfiguredMFCSrc; 49 OMX_BOOL bConfiguredMFCDst; 50 OMX_BOOL bPrependSpsPpsToIdr; 51 EXTRA_DATA headerData; 52 53 ExynosVideoDecOps *pEncOps; 54 ExynosVideoDecBufferOps *pInbufOps; 55 ExynosVideoDecBufferOps *pOutbufOps; 56 ExynosVideoEncParam encParam; 57 } EXYNOS_MFC_H264ENC_HANDLE; 58 59 typedef struct _EXYNOS_H264ENC_HANDLE 60 { 61 /* OMX Codec specific */ 62 OMX_VIDEO_PARAM_AVCTYPE AVCComponent[ALL_PORT_NUM]; 63 OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE errorCorrectionType[ALL_PORT_NUM]; 64 65 /* SEC MFC Codec specific */ 66 EXYNOS_MFC_H264ENC_HANDLE hMFCH264Handle; 67 68 OMX_BOOL bSourceStart; 69 OMX_BOOL bDestinationStart; 70 OMX_HANDLETYPE hSourceStartEvent; 71 OMX_HANDLETYPE hDestinationStartEvent; 72 } EXYNOS_H264ENC_HANDLE; 73 74 #ifdef __cplusplus 75 extern "C" { 76 #endif 77 78 OSCL_EXPORT_REF OMX_ERRORTYPE Exynos_OMX_ComponentInit(OMX_HANDLETYPE hComponent, OMX_STRING componentName); 79 OMX_ERRORTYPE Exynos_OMX_ComponentDeinit(OMX_HANDLETYPE hComponent); 80 81 #ifdef __cplusplus 82 }; 83 #endif 84 85 #endif 86