Merge "exynos_omx: multi_thread: Fix the wrong type casting and data access." into...
authorLajos Molnar <lajos@google.com>
Thu, 31 Jul 2014 14:31:06 +0000 (14:31 +0000)
committerAndroid (Google) Code Review <android-gerrit@google.com>
Tue, 29 Jul 2014 22:44:51 +0000 (22:44 +0000)
1  2 
exynos_omx/openmax/exynos_omx/component/video/dec/Exynos_OMX_VdecControl.c

index 63ee7ea8c7da2fc0b54205efd38e7074798cad11,dda45d9c78ace6ebf6b1f2bf30551057b207c894..e072a22e8b367f8c7b79eabf0f445c1d4cc1c294
@@@ -1208,10 -1208,9 +1208,10 @@@ OMX_ERRORTYPE Exynos_OMX_VideoDecodeSet
          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;
          }
@@@ -1512,7 -1509,7 +1512,7 @@@ OMX_ERRORTYPE Exynos_Shared_ANBBufferTo
          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);
              }
@@@ -1573,7 -1570,7 +1573,7 @@@ OMX_ERRORTYPE Exynos_Shared_DataToANBBu
      }
  
      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 {