break;
case OMX_IndexParamPortDefinition:
{
- OMX_PARAM_PORTDEFINITIONTYPE *pPortDefinition = (OMX_PARAM_PORTDEFINITIONTYPE *)ComponentParameterStructure;
- OMX_U32 portIndex = pPortDefinition->nPortIndex;
- EXYNOS_OMX_BASEPORT *pExynosPort;
+ OMX_PARAM_PORTDEFINITIONTYPE *pPortDefinition = (OMX_PARAM_PORTDEFINITIONTYPE *)ComponentParameterStructure;
+ EXYNOS_OMX_VIDEODEC_COMPONENT *pVideoDec = (EXYNOS_OMX_VIDEODEC_COMPONENT *)pExynosComponent->hComponentHandle;
+ OMX_U32 portIndex = pPortDefinition->nPortIndex;
+ EXYNOS_OMX_BASEPORT *pExynosPort;
OMX_U32 width, height, size;
OMX_U32 realWidth, realHeight;
goto EXIT;
}
}
- if (pPortDefinition->nBufferCountActual < pExynosPort->portDefinition.nBufferCountMin) {
+ if ((pPortDefinition->nBufferCountActual < pExynosPort->portDefinition.nBufferCountMin) ||
+ ((pVideoDec->bDRMPlayerMode == OMX_TRUE) &&
+ (pPortDefinition->nBufferCountActual > (pExynosPort->portDefinition.nBufferCountMin + MAX_DISPLAY_EXTRA_BUFFER)))) {
ret = OMX_ErrorBadParameter;
goto EXIT;
}
OMX_U32 stride;
if ((pUseBuffer->bufferHeader != NULL) && (pUseBuffer->bufferHeader->pBuffer != NULL)) {
if (pExynosPort->bIsANBEnabled == OMX_TRUE) {
- Exynos_OSAL_LockANB(pUseBuffer->bufferHeader->pBuffer, width, height, pExynosPort->portDefinition.format.video.eColorFormat, &stride, planes);
+ Exynos_OSAL_LockANBHandle(pUseBuffer->bufferHeader->pBuffer, width, height, pExynosPort->portDefinition.format.video.eColorFormat, &stride, planes);
} else if (pExynosPort->bStoreMetaData == OMX_TRUE) {
Exynos_OSAL_LockMetaData(pUseBuffer->bufferHeader->pBuffer, width, height, pExynosPort->portDefinition.format.video.eColorFormat, &stride, planes);
}
}
if (pExynosPort->bIsANBEnabled == OMX_TRUE) {
- Exynos_OSAL_UnlockANB(pUseBuffer->bufferHeader->pBuffer);
+ Exynos_OSAL_UnlockANBHandle(pUseBuffer->bufferHeader->pBuffer);
} else if (pExynosPort->bStoreMetaData == OMX_TRUE) {
Exynos_OSAL_UnlockMetaData(pUseBuffer->bufferHeader->pBuffer);
} else {