Home | History | Annotate | Download | only in mpeg4
      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_Mpeg4dec.h
     20  * @brief
     21  * @author      Yunji Kim (yunji.kim (at) samsung.com)
     22  * @author      SeungBeom Kim (sbcrux.kim (at) samsung.com)
     23  * @version     2.0.0
     24  * @history
     25  *   2012.02.20 : Create
     26  */
     27 
     28 #ifndef EXYNOS_OMX_MPEG4_DEC_COMPONENT
     29 #define EXYNOS_OMX_MPEG4_DEC_COMPONENT
     30 
     31 #include "Exynos_OMX_Def.h"
     32 #include "OMX_Component.h"
     33 #include "OMX_Video.h"
     34 #include "ExynosVideoApi.h"
     35 
     36 
     37 typedef enum _CODEC_TYPE
     38 {
     39     CODEC_TYPE_H263,
     40     CODEC_TYPE_MPEG4
     41 } CODEC_TYPE;
     42 
     43 /*
     44  * This structure is the same as BitmapInfoHhr struct in pv_avifile_typedefs.h file
     45  */
     46 typedef struct _BitmapInfoHhr
     47 {
     48     OMX_U32    BiSize;
     49     OMX_U32    BiWidth;
     50     OMX_U32    BiHeight;
     51     OMX_U16    BiPlanes;
     52     OMX_U16    BiBitCount;
     53     OMX_U32    BiCompression;
     54     OMX_U32    BiSizeImage;
     55     OMX_U32    BiXPelsPerMeter;
     56     OMX_U32    BiYPelsPerMeter;
     57     OMX_U32    BiClrUsed;
     58     OMX_U32    BiClrImportant;
     59 } BitmapInfoHhr;
     60 
     61 typedef struct _EXYNOS_MFC_MPEG4DEC_HANDLE
     62 {
     63     OMX_HANDLETYPE             hMFCHandle;
     64     OMX_U32                    indexTimestamp;
     65     OMX_U32                    outputIndexTimestamp;
     66     OMX_BOOL                   bConfiguredMFCSrc;
     67     OMX_BOOL                   bConfiguredMFCDst;
     68     OMX_U32                    maxDPBNum;
     69     CODEC_TYPE                 codecType;
     70 
     71     ExynosVideoColorFormatType MFCOutputColorType;
     72     ExynosVideoDecOps         *pDecOps;
     73     ExynosVideoDecBufferOps   *pInbufOps;
     74     ExynosVideoDecBufferOps   *pOutbufOps;
     75     ExynosVideoGeometry        codecOutbufConf;
     76 } EXYNOS_MFC_MPEG4DEC_HANDLE;
     77 
     78 typedef struct _EXYNOS_MPEG4DEC_HANDLE
     79 {
     80     /* OMX Codec specific */
     81     OMX_VIDEO_PARAM_H263TYPE            h263Component[ALL_PORT_NUM];
     82     OMX_VIDEO_PARAM_MPEG4TYPE           mpeg4Component[ALL_PORT_NUM];
     83     OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE errorCorrectionType[ALL_PORT_NUM];
     84 
     85     /* EXYNOS MFC Codec specific */
     86     EXYNOS_MFC_MPEG4DEC_HANDLE          hMFCMpeg4Handle;
     87 
     88     OMX_BOOL bSourceStart;
     89     OMX_BOOL bDestinationStart;
     90     OMX_HANDLETYPE hSourceStartEvent;
     91     OMX_HANDLETYPE hDestinationStartEvent;
     92 } EXYNOS_MPEG4DEC_HANDLE;
     93 
     94 #ifdef __cplusplus
     95 extern "C" {
     96 #endif
     97 
     98 OSCL_EXPORT_REF OMX_ERRORTYPE Exynos_OMX_ComponentInit(
     99     OMX_HANDLETYPE hComponent,
    100     OMX_STRING componentName);
    101 OMX_ERRORTYPE Exynos_OMX_ComponentDeinit(
    102     OMX_HANDLETYPE hComponent);
    103 
    104 #ifdef __cplusplus
    105 };
    106 #endif
    107 
    108 #endif
    109