1 /* 2 * 3 * Copyright 2010 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 SEC_OMX_Mpeg4enc.h 20 * @brief 21 * @author Yunji Kim (yunji.kim (at) samsung.com) 22 * @version 1.0 23 * @history 24 * 2010.7.15 : Create 25 */ 26 27 #ifndef SEC_OMX_MPEG4_ENC_COMPONENT 28 #define SEC_OMX_MPEG4_ENC_COMPONENT 29 30 #include "SEC_OMX_Def.h" 31 #include "OMX_Component.h" 32 #include "SsbSipMfcApi.h" 33 34 35 typedef enum _CODEC_TYPE 36 { 37 CODEC_TYPE_H263, 38 CODEC_TYPE_MPEG4 39 } CODEC_TYPE; 40 41 typedef struct _SEC_MFC_MPEG4ENC_HANDLE 42 { 43 OMX_HANDLETYPE hMFCHandle; 44 SSBSIP_MFC_ENC_MPEG4_PARAM mpeg4MFCParam; 45 SSBSIP_MFC_ENC_H263_PARAM h263MFCParam; 46 SSBSIP_MFC_ENC_INPUT_INFO inputInfo; 47 OMX_U32 indexTimestamp; 48 OMX_BOOL bConfiguredMFC; 49 CODEC_TYPE codecType; 50 OMX_S32 returnCodec; 51 } SEC_MFC_MPEG4ENC_HANDLE; 52 53 typedef struct _SEC_MPEG4ENC_HANDLE 54 { 55 /* OMX Codec specific */ 56 OMX_VIDEO_PARAM_H263TYPE h263Component[ALL_PORT_NUM]; 57 OMX_VIDEO_PARAM_MPEG4TYPE mpeg4Component[ALL_PORT_NUM]; 58 OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE errorCorrectionType[ALL_PORT_NUM]; 59 60 /* SEC MFC Codec specific */ 61 SEC_MFC_MPEG4ENC_HANDLE hMFCMpeg4Handle; 62 63 /* For Non-Block mode */ 64 SEC_MFC_NBENC_THREAD NBEncThread; 65 OMX_BOOL bFirstFrame; 66 MFC_ENC_INPUT_BUFFER MFCEncInputBuffer[MFC_INPUT_BUFFER_NUM_MAX]; 67 OMX_U32 indexInputBuffer; 68 } SEC_MPEG4ENC_HANDLE; 69 70 71 #ifdef __cplusplus 72 extern "C" { 73 #endif 74 75 76 OSCL_EXPORT_REF OMX_ERRORTYPE SEC_OMX_ComponentInit(OMX_HANDLETYPE hComponent, OMX_STRING componentName); 77 OMX_ERRORTYPE SEC_OMX_ComponentDeinit(OMX_HANDLETYPE hComponent); 78 79 #ifdef __cplusplus 80 }; 81 #endif 82 83 #endif 84