Change-Id: Ib7f02e17d2d986aa9d5f3e2edd7d01767ce1b5b3
temp1 = left&0x3F;
if (temp3 > 192) {
memcpy(yuv420_dest+linear_offset, nv12t_src+tiled_offset+temp1, 64-temp1);
temp1 = left&0x3F;
if (temp3 > 192) {
memcpy(yuv420_dest+linear_offset, nv12t_src+tiled_offset+temp1, 64-temp1);
- temp2 = ((left+63)>>6)<<6;
- temp3 = ((yuv420_width-right)>>6)<<6;
- if (temp2 == temp3) {
- temp2 = yuv420_width-right-(64-temp1);
- }
memcpy(yuv420_dest+linear_offset+64-temp1, nv12t_src+tiled_offset+2048, 64);
memcpy(yuv420_dest+linear_offset+128-temp1, nv12t_src+tiled_offset1, 64);
memcpy(yuv420_dest+linear_offset+192-temp1, nv12t_src+tiled_offset1+2048, 64);
memcpy(yuv420_dest+linear_offset+64-temp1, nv12t_src+tiled_offset+2048, 64);
memcpy(yuv420_dest+linear_offset+128-temp1, nv12t_src+tiled_offset1, 64);
memcpy(yuv420_dest+linear_offset+192-temp1, nv12t_src+tiled_offset1+2048, 64);
EXYNOS_OMX_RM_COMPONENT_LIST *pCandidateComp = NULL;
if (RMComp_list == NULL)
EXYNOS_OMX_RM_COMPONENT_LIST *pCandidateComp = NULL;
if (RMComp_list == NULL)
pTempComp = RMComp_list;
*outLowComp = 0;
pTempComp = RMComp_list;
*outLowComp = 0;
EXYNOS_H264DEC_HANDLE *pH264Dec = (EXYNOS_H264DEC_HANDLE *)((EXYNOS_OMX_VIDEODEC_COMPONENT *)pExynosComponent->hComponentHandle)->hCodecHandle;
void *hMFCHandle = pH264Dec->hMFCH264Handle.hMFCHandle;
EXYNOS_OMX_BASEPORT *pExynosInputPort = &pExynosComponent->pExynosPort[INPUT_PORT_INDEX];
EXYNOS_H264DEC_HANDLE *pH264Dec = (EXYNOS_H264DEC_HANDLE *)((EXYNOS_OMX_VIDEODEC_COMPONENT *)pExynosComponent->hComponentHandle)->hCodecHandle;
void *hMFCHandle = pH264Dec->hMFCH264Handle.hMFCHandle;
EXYNOS_OMX_BASEPORT *pExynosInputPort = &pExynosComponent->pExynosPort[INPUT_PORT_INDEX];
- EXYNOS_OMX_BASEPORT *pExynosOutputPort = &pExynosComponent->pExynosPort[OUTPUT_PORT_INDEX];
ExynosVideoDecOps *pDecOps = pH264Dec->hMFCH264Handle.pDecOps;
ExynosVideoDecBufferOps *pInbufOps = pH264Dec->hMFCH264Handle.pInbufOps;
ExynosVideoDecOps *pDecOps = pH264Dec->hMFCH264Handle.pDecOps;
ExynosVideoDecBufferOps *pInbufOps = pH264Dec->hMFCH264Handle.pInbufOps;
(displayStatus == VIDEO_FRAME_STATUS_CHANGE_RESOL) ||
(displayStatus == VIDEO_FRAME_STATUS_DECODING_FINISHED) ||
(CHECK_PORT_BEING_FLUSHED(pExynosOutputPort))) {
(displayStatus == VIDEO_FRAME_STATUS_CHANGE_RESOL) ||
(displayStatus == VIDEO_FRAME_STATUS_DECODING_FINISHED) ||
(CHECK_PORT_BEING_FLUSHED(pExynosOutputPort))) {
- if (pVideoBuffer != NULL) {
- ret = OMX_ErrorNone;
- break;
- } else {
- ret = OMX_ErrorUndefined;
- break;
- }
+ ret = OMX_ErrorNone;
+ break;
EXYNOS_MPEG4DEC_HANDLE *pMpeg4Dec = (EXYNOS_MPEG4DEC_HANDLE *)((EXYNOS_OMX_VIDEODEC_COMPONENT *)pExynosComponent->hComponentHandle)->hCodecHandle;
void *hMFCHandle = pMpeg4Dec->hMFCMpeg4Handle.hMFCHandle;
EXYNOS_OMX_BASEPORT *pExynosInputPort = &pExynosComponent->pExynosPort[INPUT_PORT_INDEX];
EXYNOS_MPEG4DEC_HANDLE *pMpeg4Dec = (EXYNOS_MPEG4DEC_HANDLE *)((EXYNOS_OMX_VIDEODEC_COMPONENT *)pExynosComponent->hComponentHandle)->hCodecHandle;
void *hMFCHandle = pMpeg4Dec->hMFCMpeg4Handle.hMFCHandle;
EXYNOS_OMX_BASEPORT *pExynosInputPort = &pExynosComponent->pExynosPort[INPUT_PORT_INDEX];
- EXYNOS_OMX_BASEPORT *pExynosOutputPort = &pExynosComponent->pExynosPort[OUTPUT_PORT_INDEX];
ExynosVideoDecOps *pDecOps = pMpeg4Dec->hMFCMpeg4Handle.pDecOps;
ExynosVideoDecBufferOps *pInbufOps = pMpeg4Dec->hMFCMpeg4Handle.pInbufOps;
ExynosVideoDecOps *pDecOps = pMpeg4Dec->hMFCMpeg4Handle.pDecOps;
ExynosVideoDecBufferOps *pInbufOps = pMpeg4Dec->hMFCMpeg4Handle.pInbufOps;
}
if (pMpeg4Dec->hMFCMpeg4Handle.bConfiguredMFCDst == OMX_FALSE) {
ret = Mpeg4CodecDstSetup(pOMXComponent);
}
if (pMpeg4Dec->hMFCMpeg4Handle.bConfiguredMFCDst == OMX_FALSE) {
ret = Mpeg4CodecDstSetup(pOMXComponent);
+
+ if (ret != OMX_ErrorNone) {
+ Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Mpeg4CodecDstSetup Failed");
+ goto EXIT;
+ }
}
if (((bInStartCode = Check_Stream_StartCode(pSrcInputData->buffer.singlePlaneBuffer.dataBuffer, oneFrameSize, pMpeg4Dec->hMFCMpeg4Handle.codecType)) == OMX_TRUE) ||
}
if (((bInStartCode = Check_Stream_StartCode(pSrcInputData->buffer.singlePlaneBuffer.dataBuffer, oneFrameSize, pMpeg4Dec->hMFCMpeg4Handle.codecType)) == OMX_TRUE) ||
(displayStatus == VIDEO_FRAME_STATUS_CHANGE_RESOL) ||
(displayStatus == VIDEO_FRAME_STATUS_DECODING_FINISHED) ||
(CHECK_PORT_BEING_FLUSHED(pExynosOutputPort))) {
(displayStatus == VIDEO_FRAME_STATUS_CHANGE_RESOL) ||
(displayStatus == VIDEO_FRAME_STATUS_DECODING_FINISHED) ||
(CHECK_PORT_BEING_FLUSHED(pExynosOutputPort))) {
- if (pVideoBuffer != NULL) {
- ret = OMX_ErrorNone;
- break;
- } else {
- ret = OMX_ErrorUndefined;
- break;
- }
+ ret = OMX_ErrorNone;
+ break;
(displayStatus == VIDEO_FRAME_STATUS_CHANGE_RESOL) ||
(displayStatus == VIDEO_FRAME_STATUS_DECODING_FINISHED) ||
(CHECK_PORT_BEING_FLUSHED(pExynosOutputPort))) {
(displayStatus == VIDEO_FRAME_STATUS_CHANGE_RESOL) ||
(displayStatus == VIDEO_FRAME_STATUS_DECODING_FINISHED) ||
(CHECK_PORT_BEING_FLUSHED(pExynosOutputPort))) {
- if (pVideoBuffer != NULL) {
- ret = OMX_ErrorNone;
- break;
- } else {
- ret = OMX_ErrorUndefined;
- break;
- }
+ ret = OMX_ErrorNone;
+ break;
Exynos_OSAL_MutexLock(pDataBuffer[1]->bufferMutex);
ret = Exynos_OMX_FlushPort(pOMXComponent, nPortIndex);
Exynos_OSAL_MutexLock(pDataBuffer[1]->bufferMutex);
ret = Exynos_OMX_FlushPort(pOMXComponent, nPortIndex);
- if (ret != OMX_ErrorNone)
+ if (ret != OMX_ErrorNone) {
+ if (pDataBuffer[1] != NULL)
+ Exynos_OSAL_MutexUnlock(pDataBuffer[1]->bufferMutex);
+
+ Exynos_OSAL_MutexUnlock(pDataBuffer[0]->bufferMutex);
+
if (pExynosPort->bufferProcessType & BUFFER_COPY)
pVideoEnc->exynos_codec_enqueueAllBuffer(pOMXComponent, nPortIndex);
if (pExynosPort->bufferProcessType & BUFFER_COPY)
pVideoEnc->exynos_codec_enqueueAllBuffer(pOMXComponent, nPortIndex);
}
if (pH264Enc->hMFCH264Handle.bConfiguredMFCDst == OMX_FALSE) {
ret = H264CodecDstSetup(pOMXComponent);
}
if (pH264Enc->hMFCH264Handle.bConfiguredMFCDst == OMX_FALSE) {
ret = H264CodecDstSetup(pOMXComponent);
+
+ if (ret != OMX_ErrorNone)
+ goto EXIT;
}
if (pVideoEnc->configChange == OMX_TRUE) {
Change_H264Enc_Param(pExynosComponent);
}
if (pVideoEnc->configChange == OMX_TRUE) {
Change_H264Enc_Param(pExynosComponent);
Exynos_OSAL_Log(EXYNOS_LOG_TRACE,"foramt is %d, and y_size=%d, uv_size=%d",pExynosInPort->portDefinition.format.video.eCompressionFormat ,pSlpOutBuf->size[0],pSlpOutBuf->size[1]);
}
Exynos_OSAL_Log(EXYNOS_LOG_TRACE,"foramt is %d, and y_size=%d, uv_size=%d",pExynosInPort->portDefinition.format.video.eCompressionFormat ,pSlpOutBuf->size[0],pSlpOutBuf->size[1]);
}
pSlpOutBuf->type = MM_VIDEO_BUFFER_TYPE_TBM_BO; /* use bo mode */
pSlpOutBuf->handle_num = 2;
pSlpOutBuf->plane_num = 2;
pSlpOutBuf->type = MM_VIDEO_BUFFER_TYPE_TBM_BO; /* use bo mode */
pSlpOutBuf->handle_num = 2;
pSlpOutBuf->plane_num = 2;