X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=openmax%2Fcomponent%2Fvideo%2Fenc%2Fmpeg4%2FExynos_OMX_Mpeg4enc.c;h=99c475707b70b710f7ba1eb58466c7a088198152;hb=f34455209d002bbe1374cfbb01067d085efbb367;hp=c582237f2db2026d969858988474e6f045a6e1bd;hpb=209a5e483e5bf95c12e79cac71a0018225b62c06;p=platform%2Fadaptation%2Fap_samsung%2Flibomxil-e3250-v4l2.git diff --git a/openmax/component/video/enc/mpeg4/Exynos_OMX_Mpeg4enc.c b/openmax/component/video/enc/mpeg4/Exynos_OMX_Mpeg4enc.c index c582237..99c4757 100755 --- a/openmax/component/video/enc/mpeg4/Exynos_OMX_Mpeg4enc.c +++ b/openmax/component/video/enc/mpeg4/Exynos_OMX_Mpeg4enc.c @@ -40,6 +40,7 @@ //#include "ExynosVideoApi.h" #include "Exynos_OSAL_SharedMemory.h" #include "Exynos_OSAL_Event.h" +#include "Exynos_OMX_VencControl.h" /* To use CSC_METHOD_HW in EXYNOS OMX, gralloc should allocate physical memory using FIMC */ /* It means GRALLOC_USAGE_HW_FIMC1 should be set on Native Window usage */ @@ -491,10 +492,7 @@ static void Change_H263Enc_Param(EXYNOS_OMX_BASECOMPONENT *pExynosComponent) OMX_ERRORTYPE GetCodecInputPrivateData(OMX_PTR codecBuffer, OMX_PTR addr[], OMX_U32 size[]) { - OMX_ERRORTYPE ret = OMX_ErrorNone; - -EXIT: - return ret; + return OMX_ErrorNone; } OMX_ERRORTYPE GetCodecOutputPrivateData(OMX_PTR codecBuffer, OMX_PTR *pVirtAddr, OMX_U32 *dataSize) @@ -673,7 +671,6 @@ OMX_ERRORTYPE Mpeg4CodecStart(OMX_COMPONENTTYPE *pOMXComponent, OMX_U32 nPortInd { OMX_ERRORTYPE ret = OMX_ErrorNone; void *hMFCHandle = NULL; - ExynosVideoEncOps *pEncOps = NULL; ExynosVideoEncBufferOps *pInbufOps = NULL; ExynosVideoEncBufferOps *pOutbufOps = NULL; EXYNOS_OMX_VIDEOENC_COMPONENT *pVideoEnc = NULL; @@ -699,7 +696,6 @@ OMX_ERRORTYPE Mpeg4CodecStart(OMX_COMPONENTTYPE *pOMXComponent, OMX_U32 nPortInd } hMFCHandle = pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle; - pEncOps = pMpeg4Enc->hMFCMpeg4Handle.pEncOps; pInbufOps = pMpeg4Enc->hMFCMpeg4Handle.pInbufOps; pOutbufOps = pMpeg4Enc->hMFCMpeg4Handle.pOutbufOps; @@ -720,7 +716,6 @@ OMX_ERRORTYPE Mpeg4CodecStop(OMX_COMPONENTTYPE *pOMXComponent, OMX_U32 nPortInde { OMX_ERRORTYPE ret = OMX_ErrorNone; void *hMFCHandle = NULL; - ExynosVideoEncOps *pEncOps = NULL; ExynosVideoEncBufferOps *pInbufOps = NULL; ExynosVideoEncBufferOps *pOutbufOps = NULL; EXYNOS_OMX_VIDEOENC_COMPONENT *pVideoEnc = NULL; @@ -745,7 +740,6 @@ OMX_ERRORTYPE Mpeg4CodecStop(OMX_COMPONENTTYPE *pOMXComponent, OMX_U32 nPortInde } hMFCHandle = pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle; - pEncOps = pMpeg4Enc->hMFCMpeg4Handle.pEncOps; pInbufOps = pMpeg4Enc->hMFCMpeg4Handle.pInbufOps; pOutbufOps = pMpeg4Enc->hMFCMpeg4Handle.pOutbufOps; @@ -771,16 +765,16 @@ OMX_ERRORTYPE Mpeg4CodecSrcInit(OMX_COMPONENTTYPE *pOMXComponent) EXYNOS_MFC_MPEG4ENC_HANDLE *pMFCMpeg4Handle = &pMpeg4Enc->hMFCMpeg4Handle; void *hMFCHandle = pMFCMpeg4Handle->hMFCHandle; EXYNOS_OMX_BASEPORT *pExynosInputPort = &pExynosComponent->pExynosPort[INPUT_PORT_INDEX]; - EXYNOS_OMX_BASEPORT *pExynosOutputPort = &pExynosComponent->pExynosPort[OUTPUT_PORT_INDEX]; + ExynosVideoEncOps *pEncOps = pMpeg4Enc->hMFCMpeg4Handle.pEncOps; ExynosVideoEncBufferOps *pInbufOps = pMpeg4Enc->hMFCMpeg4Handle.pInbufOps; - ExynosVideoEncBufferOps *pOutbufOps = pMpeg4Enc->hMFCMpeg4Handle.pOutbufOps; + ExynosVideoEncParam *pEncParam = NULL; ExynosVideoGeometry bufferConf; OMX_U32 inputBufferNumber = 0; - int i, nOutbufs; + int i; FunctionIn(); @@ -909,10 +903,6 @@ EXIT: OMX_ERRORTYPE Mpeg4CodecOutputBufferProcessRun(OMX_COMPONENTTYPE *pOMXComponent, OMX_U32 nPortIndex) { OMX_ERRORTYPE ret = OMX_ErrorNone; - void *hMFCHandle = NULL; - ExynosVideoEncOps *pEncOps = NULL; - ExynosVideoEncBufferOps *pInbufOps = NULL; - ExynosVideoEncBufferOps *pOutbufOps = NULL; EXYNOS_OMX_VIDEOENC_COMPONENT *pVideoEnc = NULL; EXYNOS_MPEG4ENC_HANDLE *pMpeg4Enc = NULL; @@ -934,11 +924,6 @@ OMX_ERRORTYPE Mpeg4CodecOutputBufferProcessRun(OMX_COMPONENTTYPE *pOMXComponent, goto EXIT; } - hMFCHandle = pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle; - pEncOps = pMpeg4Enc->hMFCMpeg4Handle.pEncOps; - pInbufOps = pMpeg4Enc->hMFCMpeg4Handle.pInbufOps; - pOutbufOps = pMpeg4Enc->hMFCMpeg4Handle.pOutbufOps; - if (nPortIndex == INPUT_PORT_INDEX) { if (pMpeg4Enc->bSourceStart == OMX_FALSE) { Exynos_OSAL_SignalSet(pMpeg4Enc->hSourceStartEvent); @@ -968,11 +953,8 @@ OMX_ERRORTYPE Mpeg4CodecEnqueueAllBuffer(OMX_COMPONENTTYPE *pOMXComponent, OMX_U EXYNOS_OMX_VIDEOENC_COMPONENT *pVideoEnc = (EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle; EXYNOS_MPEG4ENC_HANDLE *pMpeg4Enc = (EXYNOS_MPEG4ENC_HANDLE *)((EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle)->hCodecHandle; void *hMFCHandle = pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle; - EXYNOS_OMX_BASEPORT *pExynosInputPort = &pExynosComponent->pExynosPort[INPUT_PORT_INDEX]; - EXYNOS_OMX_BASEPORT *pExynosOutputPort = &pExynosComponent->pExynosPort[OUTPUT_PORT_INDEX]; - int i, nOutbufs; + int i; - ExynosVideoEncOps *pEncOps = pMpeg4Enc->hMFCMpeg4Handle.pEncOps; ExynosVideoEncBufferOps *pInbufOps = pMpeg4Enc->hMFCMpeg4Handle.pInbufOps; ExynosVideoEncBufferOps *pOutbufOps = pMpeg4Enc->hMFCMpeg4Handle.pOutbufOps; @@ -998,7 +980,6 @@ OMX_ERRORTYPE Mpeg4CodecEnqueueAllBuffer(OMX_COMPONENTTYPE *pOMXComponent, OMX_U pInbufOps->Clear_Queue(hMFCHandle); } else if ((nPortIndex == OUTPUT_PORT_INDEX) && (pMpeg4Enc->bDestinationStart == OMX_TRUE)) { - OMX_U32 dataLen[2] = {0, 0}; ExynosVideoBuffer *pBuffer = NULL; Exynos_CodecBufferReset(pExynosComponent, OUTPUT_PORT_INDEX); @@ -1023,23 +1004,10 @@ OMX_ERRORTYPE Mpeg4CodecSrcSetup(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX_DA { OMX_ERRORTYPE ret = OMX_ErrorNone; EXYNOS_OMX_BASECOMPONENT *pExynosComponent = (EXYNOS_OMX_BASECOMPONENT *)pOMXComponent->pComponentPrivate; - EXYNOS_OMX_VIDEOENC_COMPONENT *pVideoEnc = (EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle; EXYNOS_MPEG4ENC_HANDLE *pMpeg4Enc = (EXYNOS_MPEG4ENC_HANDLE *)((EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle)->hCodecHandle; - EXYNOS_MFC_MPEG4ENC_HANDLE *pMFCMpeg4Handle = &pMpeg4Enc->hMFCMpeg4Handle; - void *hMFCHandle = pMFCMpeg4Handle->hMFCHandle; EXYNOS_OMX_BASEPORT *pExynosInputPort = &pExynosComponent->pExynosPort[INPUT_PORT_INDEX]; - EXYNOS_OMX_BASEPORT *pExynosOutputPort = &pExynosComponent->pExynosPort[OUTPUT_PORT_INDEX]; OMX_U32 oneFrameSize = pSrcInputData->dataLen; - ExynosVideoEncOps *pEncOps = pMpeg4Enc->hMFCMpeg4Handle.pEncOps; - ExynosVideoEncBufferOps *pInbufOps = pMpeg4Enc->hMFCMpeg4Handle.pInbufOps; - ExynosVideoEncBufferOps *pOutbufOps = pMpeg4Enc->hMFCMpeg4Handle.pOutbufOps; - ExynosVideoEncParam *pEncParam = NULL; - - ExynosVideoGeometry bufferConf; - OMX_U32 inputBufferNumber = 0; - int i, nOutbufs; - FunctionIn(); if ((oneFrameSize <= 0) && (pSrcInputData->nFlags & OMX_BUFFERFLAG_EOS)) { @@ -1052,9 +1020,10 @@ OMX_ERRORTYPE Mpeg4CodecSrcSetup(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX_DA OMXBuffer->nTimeStamp = pSrcInputData->timeStamp; OMXBuffer->nFlags = pSrcInputData->nFlags; - Exynos_OMX_OutputBufferReturn(pOMXComponent, OMXBuffer); - - ret = OMX_ErrorNone; + ret = Exynos_OMX_OutputBufferReturn(pOMXComponent, OMXBuffer); + if (ret != OMX_ErrorNone) { + goto EXIT; + } goto EXIT; } @@ -1087,14 +1056,11 @@ OMX_ERRORTYPE Mpeg4CodecDstSetup(OMX_COMPONENTTYPE *pOMXComponent) EXYNOS_MPEG4ENC_HANDLE *pMpeg4Enc = (EXYNOS_MPEG4ENC_HANDLE *)((EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle)->hCodecHandle; EXYNOS_MFC_MPEG4ENC_HANDLE *pMFCMpeg4Handle = &pMpeg4Enc->hMFCMpeg4Handle; void *hMFCHandle = pMFCMpeg4Handle->hMFCHandle; - EXYNOS_OMX_BASEPORT *pExynosInputPort = &pExynosComponent->pExynosPort[INPUT_PORT_INDEX]; EXYNOS_OMX_BASEPORT *pExynosOutputPort = &pExynosComponent->pExynosPort[OUTPUT_PORT_INDEX]; - ExynosVideoEncOps *pEncOps = pMpeg4Enc->hMFCMpeg4Handle.pEncOps; - ExynosVideoEncBufferOps *pInbufOps = pMpeg4Enc->hMFCMpeg4Handle.pInbufOps; ExynosVideoEncBufferOps *pOutbufOps = pMpeg4Enc->hMFCMpeg4Handle.pOutbufOps; ExynosVideoGeometry bufferConf; - int i, nOutbufs, nPlanes, OutBufferSize; + int i, nPlanes, OutBufferSize; FunctionIn(); @@ -1686,7 +1652,7 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_SetConfig( pVideoEnc = (EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle; pMpeg4Enc = (EXYNOS_MPEG4ENC_HANDLE *)pVideoEnc->hCodecHandle; - switch (nIndex) { + switch ((EXYNOS_OMX_INDEXTYPE)nIndex) { case OMX_IndexConfigVideoIntraPeriod: { OMX_U32 nPFrames = (*((OMX_U32 *)pComponentConfigStructure)) - 1; @@ -1816,15 +1782,11 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_Init(OMX_COMPONENTTYPE *pOMXComponent) EXYNOS_OMX_BASEPORT *pExynosInputPort = &pExynosComponent->pExynosPort[INPUT_PORT_INDEX]; EXYNOS_OMX_BASEPORT *pExynosOutputPort = &pExynosComponent->pExynosPort[OUTPUT_PORT_INDEX]; EXYNOS_MPEG4ENC_HANDLE *pMpeg4Enc = (EXYNOS_MPEG4ENC_HANDLE *)((EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle)->hCodecHandle;; - EXYNOS_MFC_MPEG4ENC_HANDLE *pMFCMpeg4Handle = &pMpeg4Enc->hMFCMpeg4Handle; - OMX_PTR hMFCHandle = pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle; OMX_COLOR_FORMATTYPE eColorFormat; - ExynosVideoEncOps *pEncOps = NULL; - ExynosVideoEncBufferOps *pInbufOps = NULL; - ExynosVideoEncBufferOps *pOutbufOps = NULL; CSC_METHOD csc_method = CSC_METHOD_SW; + int i = 0; FunctionIn(); @@ -1845,8 +1807,8 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_Init(OMX_COMPONENTTYPE *pOMXComponent) } #endif } else { - if (eColorFormat == OMX_SEC_COLOR_FormatNV12L_DmaBuf_Fd || - eColorFormat == OMX_SEC_COLOR_FormatNV12T_DmaBuf_Fd) { + if (eColorFormat == (OMX_COLOR_FORMATTYPE)OMX_SEC_COLOR_FormatNV12L_DmaBuf_Fd || + eColorFormat == (OMX_COLOR_FORMATTYPE)OMX_SEC_COLOR_FormatNV12T_DmaBuf_Fd) { pExynosInputPort->bufferProcessType = BUFFER_SHARE; } else { pExynosInputPort->bufferProcessType = BUFFER_COPY; @@ -1859,10 +1821,6 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_Init(OMX_COMPONENTTYPE *pOMXComponent) goto EXIT; } - pEncOps = pMpeg4Enc->hMFCMpeg4Handle.pEncOps; - pInbufOps = pMpeg4Enc->hMFCMpeg4Handle.pInbufOps; - pOutbufOps = pMpeg4Enc->hMFCMpeg4Handle.pOutbufOps; - if (pExynosInputPort->bufferProcessType & BUFFER_COPY) { Exynos_OSAL_SemaphoreCreate(&pExynosInputPort->codecSemID); Exynos_OSAL_QueueCreate(&pExynosInputPort->codecBufferQ, MAX_QUEUE_ELEMENTS); @@ -1870,6 +1828,11 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_Init(OMX_COMPONENTTYPE *pOMXComponent) if (pMpeg4Enc->hMFCMpeg4Handle.bShareableBuf == OMX_TRUE) { for (i = 0; i < MFC_INPUT_BUFFER_NUM_MAX; i++) { pVideoEnc->pMFCEncInputBuffer[i] = Exynos_OSAL_Malloc(sizeof(CODEC_ENC_BUFFER)); + if (pVideoEnc->pMFCEncInputBuffer[i] == NULL) { + Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Failed to Alloc input buffer"); + ret = OMX_ErrorInsufficientResources; + goto EXIT; + } /* Use ION Allocator */ /*Alloc Y-Buffer */ pVideoEnc->pMFCEncInputBuffer[i]->pVirAddr[0] = (void *)Exynos_OSAL_SharedMemory_Alloc(pVideoEnc->hSharedMemory, DEFAULT_MFC_INPUT_YBUFFER_SIZE, NORMAL_MEMORY); @@ -1959,13 +1922,8 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_Terminate(OMX_COMPONENTTYPE *pOMXComponent) EXYNOS_OMX_BASEPORT *pExynosInputPort = &pExynosComponent->pExynosPort[INPUT_PORT_INDEX]; EXYNOS_OMX_BASEPORT *pExynosOutputPort = &pExynosComponent->pExynosPort[OUTPUT_PORT_INDEX]; EXYNOS_MPEG4ENC_HANDLE *pMpeg4Enc = (EXYNOS_MPEG4ENC_HANDLE *)((EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle)->hCodecHandle; - OMX_PTR hMFCHandle = pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle; - ExynosVideoEncOps *pEncOps = pMpeg4Enc->hMFCMpeg4Handle.pEncOps; - ExynosVideoEncBufferOps *pInbufOps = pMpeg4Enc->hMFCMpeg4Handle.pInbufOps; - ExynosVideoEncBufferOps *pOutbufOps = pMpeg4Enc->hMFCMpeg4Handle.pOutbufOps; - - int i = 0, plane = 0; + int i = 0; FunctionIn(); @@ -1986,7 +1944,7 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_Terminate(OMX_COMPONENTTYPE *pOMXComponent) for (i = 0; i < MFC_INPUT_BUFFER_NUM_MAX; i++) { if (pVideoEnc->pMFCEncInputBuffer[i] != NULL) { #ifndef TIZEN_FEATURE_E3250 /* do not use ion */ - for (plane = 0; plane < MFC_INPUT_BUFFER_PLANE; plane++) { + for (int plane = 0; plane < MFC_INPUT_BUFFER_PLANE; plane++) { if (pVideoEnc->pMFCEncInputBuffer[i]->pVirAddr[plane] != NULL) Exynos_OSAL_SharedMemory_Free(pVideoEnc->hSharedMemory, pVideoEnc->pMFCEncInputBuffer[i]->pVirAddr[plane]); } @@ -2010,7 +1968,7 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_Terminate(OMX_COMPONENTTYPE *pOMXComponent) for (i = 0; i < MFC_INPUT_BUFFER_NUM_MAX; i++) { if (pVideoEnc->pMFCEncInputBuffer[i] != NULL) { #ifndef TIZEN_FEATURE_E3250 /* do not use ion */ - for (plane = 0; plane < MFC_INPUT_BUFFER_PLANE; plane++) { + for (int plane = 0; plane < MFC_INPUT_BUFFER_PLANE; plane++) { if (pVideoEnc->pMFCEncInputBuffer[i]->pVirAddr[plane] != NULL) Exynos_OSAL_SharedMemory_Free(pVideoEnc->hSharedMemory, pVideoEnc->pMFCEncInputBuffer[i]->pVirAddr[plane]); } @@ -2030,7 +1988,6 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_Terminate(OMX_COMPONENTTYPE *pOMXComponent) } Mpeg4CodecClose(pMpeg4Enc); -EXIT: FunctionOut(); return ret; @@ -2044,13 +2001,10 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_SrcIn(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX EXYNOS_MPEG4ENC_HANDLE *pMpeg4Enc = (EXYNOS_MPEG4ENC_HANDLE *)((EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle)->hCodecHandle; void *hMFCHandle = pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle; EXYNOS_OMX_BASEPORT *pExynosInputPort = &pExynosComponent->pExynosPort[INPUT_PORT_INDEX]; - EXYNOS_OMX_BASEPORT *pExynosOutputPort = &pExynosComponent->pExynosPort[OUTPUT_PORT_INDEX]; OMX_U32 oneFrameSize = pSrcInputData->dataLen; ExynosVideoEncOps *pEncOps = pMpeg4Enc->hMFCMpeg4Handle.pEncOps; ExynosVideoEncBufferOps *pInbufOps = pMpeg4Enc->hMFCMpeg4Handle.pInbufOps; - ExynosVideoEncBufferOps *pOutbufOps = pMpeg4Enc->hMFCMpeg4Handle.pOutbufOps; ExynosVideoErrorType codecReturn = VIDEO_ERROR_NONE; - int i; FunctionIn(); @@ -2074,9 +2028,8 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_SrcIn(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX } - if ((pSrcInputData->dataLen >= 0) || - ((pSrcInputData->nFlags & OMX_BUFFERFLAG_EOS) == OMX_BUFFERFLAG_EOS)) { - OMX_U32 pMFCYUVDataSize[MFC_INPUT_BUFFER_PLANE] = {NULL, NULL}; + if ((pSrcInputData->nFlags & OMX_BUFFERFLAG_EOS) == OMX_BUFFERFLAG_EOS) { + OMX_U32 pMFCYUVDataSize[MFC_INPUT_BUFFER_PLANE] = {0, }; ExynosVideoPlane planes[MFC_INPUT_BUFFER_PLANE]; int plane; @@ -2154,7 +2107,6 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_SrcOut(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OM EXYNOS_MPEG4ENC_HANDLE *pMpeg4Enc = (EXYNOS_MPEG4ENC_HANDLE *)((EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle)->hCodecHandle; void *hMFCHandle = pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle; EXYNOS_OMX_BASEPORT *pExynosInputPort = &pExynosComponent->pExynosPort[INPUT_PORT_INDEX]; - ExynosVideoEncOps *pEncOps = pMpeg4Enc->hMFCMpeg4Handle.pEncOps; ExynosVideoEncBufferOps *pInbufOps = pMpeg4Enc->hMFCMpeg4Handle.pInbufOps; ExynosVideoBuffer *pVideoBuffer; @@ -2213,10 +2165,8 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_DstIn(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX { OMX_ERRORTYPE ret = OMX_ErrorNone; EXYNOS_OMX_BASECOMPONENT *pExynosComponent = (EXYNOS_OMX_BASECOMPONENT *)pOMXComponent->pComponentPrivate; - EXYNOS_OMX_VIDEOENC_COMPONENT *pVideoEnc = (EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle; EXYNOS_MPEG4ENC_HANDLE *pMpeg4Enc = (EXYNOS_MPEG4ENC_HANDLE *)((EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle)->hCodecHandle; void *hMFCHandle = pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle; - ExynosVideoEncOps *pEncOps = pMpeg4Enc->hMFCMpeg4Handle.pEncOps; ExynosVideoEncBufferOps *pOutbufOps = pMpeg4Enc->hMFCMpeg4Handle.pOutbufOps; OMX_U32 dataLen = 0; ExynosVideoErrorType codecReturn = VIDEO_ERROR_NONE; @@ -2252,13 +2202,12 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_DstOut(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OM OMX_ERRORTYPE ret = OMX_ErrorNone; EXYNOS_OMX_BASECOMPONENT *pExynosComponent = (EXYNOS_OMX_BASECOMPONENT *)pOMXComponent->pComponentPrivate; EXYNOS_OMX_VIDEOENC_COMPONENT *pVideoEnc = (EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle; - EXYNOS_MPEG4ENC_HANDLE *pMpeg4Enc = (EXYNOS_MPEG4ENC_HANDLE *)((EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle)->hCodecHandle; + EXYNOS_MPEG4ENC_HANDLE *pMpeg4Enc = (EXYNOS_MPEG4ENC_HANDLE *)pVideoEnc->hCodecHandle; void *hMFCHandle = pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle; ExynosVideoEncOps *pEncOps = pMpeg4Enc->hMFCMpeg4Handle.pEncOps; ExynosVideoEncBufferOps *pOutbufOps = pMpeg4Enc->hMFCMpeg4Handle.pOutbufOps; ExynosVideoBuffer *pVideoBuffer; ExynosVideoFrameStatusType displayStatus = VIDEO_FRAME_STATUS_UNKNOWN; - ExynosVideoGeometry bufferGeometry; OMX_S32 indexTimestamp = 0; FunctionIn(); @@ -2287,7 +2236,6 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_DstOut(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OM pDstOutputData->bufferHeader = (OMX_BUFFERHEADERTYPE *)pVideoBuffer->pPrivate; if (pVideoEnc->bFirstOutput == OMX_FALSE) { - OMX_U8 *p = NULL; pDstOutputData->timeStamp = 0; pDstOutputData->nFlags |= OMX_BUFFERFLAG_CODECCONFIG; @@ -2326,7 +2274,6 @@ OMX_ERRORTYPE Exynos_Mpeg4Enc_srcInputBufferProcess(OMX_COMPONENTTYPE *pOMXCompo { OMX_ERRORTYPE ret = OMX_ErrorNone; EXYNOS_OMX_BASECOMPONENT *pExynosComponent = (EXYNOS_OMX_BASECOMPONENT *)pOMXComponent->pComponentPrivate; - EXYNOS_MPEG4ENC_HANDLE *pMpeg4Enc = (EXYNOS_MPEG4ENC_HANDLE *)((EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle)->hCodecHandle; EXYNOS_OMX_BASEPORT *pExynosInputPort = &pExynosComponent->pExynosPort[INPUT_PORT_INDEX]; FunctionIn(); @@ -2683,9 +2630,12 @@ OMX_ERRORTYPE Exynos_OMX_ComponentDeinit(OMX_HANDLETYPE hComponent) OMX_ERRORTYPE ret = OMX_ErrorNone; OMX_COMPONENTTYPE *pOMXComponent = NULL; EXYNOS_OMX_BASECOMPONENT *pExynosComponent = NULL; - EXYNOS_OMX_VIDEOENC_COMPONENT *pVideoEnc = NULL; EXYNOS_MPEG4ENC_HANDLE *pMpeg4Enc = NULL; +#ifndef TIZEN_FEATURE_E3250 /* do not use ion */ + EXYNOS_OMX_VIDEOENC_COMPONENT *pVideoEnc = NULL; + pVideoEnc = (EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle; +#endif FunctionIn(); if (hComponent == NULL) { @@ -2694,7 +2644,6 @@ OMX_ERRORTYPE Exynos_OMX_ComponentDeinit(OMX_HANDLETYPE hComponent) } pOMXComponent = (OMX_COMPONENTTYPE *)hComponent; pExynosComponent = (EXYNOS_OMX_BASECOMPONENT *)pOMXComponent->pComponentPrivate; - pVideoEnc = (EXYNOS_OMX_VIDEOENC_COMPONENT *)pExynosComponent->hComponentHandle; #ifndef TIZEN_FEATURE_E3250 /* do not use ion */ Exynos_OSAL_SharedMemory_Close(pVideoEnc->hSharedMemory); #endif