fixed svace issues 75/170175/2 accepted/tizen/unified/20180220.064107 submit/tizen/20180219.073606
authorSejun Park <sejun79.park@samsung.com>
Wed, 14 Feb 2018 02:55:40 +0000 (11:55 +0900)
committerSejun Park <sejun79.park@samsung.com>
Wed, 14 Feb 2018 04:46:20 +0000 (13:46 +0900)
Change-Id: Ifcbcc3e561831c91c6236d792080481f70b50f8f

exynos4/libcodec/video/v4l2/dec/ExynosVideoDecoder.c
exynos4/libcodec/video/v4l2/enc/ExynosVideoEncoder.c
openmax/component/video/enc/h264/Exynos_OMX_H264enc.c
openmax/component/video/enc/mpeg4/Exynos_OMX_Mpeg4enc.c

index eb3dc3edfacb432ea2548e0b511817bfe6fa7496..7d015f7d0b808d9e5eca41d23ede8f85599a48fe 100755 (executable)
@@ -128,7 +128,6 @@ static unsigned int __ColorFormatType_To_V4L2PixelFormat(ExynosVideoColorFormatT
 static void *MFC_Decoder_Init(int nMemoryType)
 {
     ExynosVideoDecContext *pCtx     = NULL;
-    pthread_mutex_t       *pMutex   = NULL;
     /* int needCaps = (V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING);*/
     int needCaps = (V4L2_CAP_VIDEO_CAPTURE_MPLANE | V4L2_CAP_VIDEO_OUTPUT_MPLANE | V4L2_CAP_VIDEO_M2M_MPLANE |V4L2_CAP_STREAMING);
     /* XU3 fix for capabilities */
@@ -160,27 +159,23 @@ static void *MFC_Decoder_Init(int nMemoryType)
 
     pCtx->nMemoryType = nMemoryType;
 
-    pMutex = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
-    if (pMutex == NULL) {
+    pCtx->pInMutex = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
+    if (pCtx->pInMutex == NULL) {
         ALOGE("%s: Failed to allocate mutex about input buffer", __func__);
         goto EXIT_QUERYCAP_FAIL;
     }
-    if (pthread_mutex_init(pMutex, NULL) != 0) {
-        free(pMutex);
+    if (pthread_mutex_init(pCtx->pInMutex, NULL) != 0) {
         goto EXIT_QUERYCAP_FAIL;
     }
-    pCtx->pInMutex = (void*)pMutex;
 
-    pMutex = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
-    if (pMutex == NULL) {
+    pCtx->pOutMutex = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
+    if (pCtx->pOutMutex == NULL) {
         ALOGE("%s: Failed to allocate mutex about output buffer", __func__);
         goto EXIT_QUERYCAP_FAIL;
     }
-    if (pthread_mutex_init(pMutex, NULL) != 0) {
-        free(pMutex);
+    if (pthread_mutex_init(pCtx->pOutMutex, NULL) != 0) {
         goto EXIT_QUERYCAP_FAIL;
     }
-    pCtx->pOutMutex = (void*)pMutex;
 
     return (void *)pCtx;
 
index 5744e76b9adbc871697bb870d865d25ab47cfe66..1cf375130671d0d635dc41b978f77dca2476d93f 100755 (executable)
@@ -133,7 +133,6 @@ static unsigned int __ColorFormatType_To_V4L2PixelFormat(ExynosVideoColorFormatT
 static void *MFC_Encoder_Init(int nMemoryType)
 {
     ExynosVideoEncContext *pCtx     = NULL;
-    pthread_mutex_t       *pMutex   = NULL;
     int needCaps = (V4L2_CAP_VIDEO_CAPTURE_MPLANE | V4L2_CAP_VIDEO_OUTPUT_MPLANE | V4L2_CAP_STREAMING);
 
     /* XU3 fix for capabilities */
@@ -163,27 +162,23 @@ static void *MFC_Encoder_Init(int nMemoryType)
 
     pCtx->nMemoryType = nMemoryType;
 
-    pMutex = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
-    if (pMutex == NULL) {
+    pCtx->pInMutex = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
+    if (pCtx->pInMutex == NULL) {
         ALOGE("%s: Failed to allocate mutex about input buffer", __func__);
         goto EXIT_QUERYCAP_FAIL;
     }
-    if (pthread_mutex_init(pMutex, NULL) != 0) {
-        free(pMutex);
+    if (pthread_mutex_init(pCtx->pInMutex, NULL) != 0) {
         goto EXIT_QUERYCAP_FAIL;
     }
-    pCtx->pInMutex = (void*)pMutex;
 
-    pMutex = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
-    if (pMutex == NULL) {
+    pCtx->pOutMutex = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
+    if (pCtx->pOutMutex == NULL) {
         ALOGE("%s: Failed to allocate mutex about output buffer", __func__);
         goto EXIT_QUERYCAP_FAIL;
     }
-    if (pthread_mutex_init(pMutex, NULL) != 0) {
-        free(pMutex);
+    if (pthread_mutex_init(pCtx->pOutMutex, NULL) != 0) {
         goto EXIT_QUERYCAP_FAIL;
     }
-    pCtx->pOutMutex = (void*)pMutex;
 
     return (void *)pCtx;
 
index 9fac3407439999a7eeba1f2d889f8ff2fbfdd985..944af8f8f993a07132a03ea25b10036bec993ce0 100755 (executable)
@@ -1026,6 +1026,11 @@ OMX_ERRORTYPE H264CodecDstSetup(OMX_COMPONENTTYPE *pOMXComponent)
 
                 pVideoEnc->pMFCEncOutputBuffer[i] = (CODEC_ENC_BUFFER *)Exynos_OSAL_Malloc(sizeof(CODEC_ENC_BUFFER));
 
+                if (!pVideoEnc->pMFCEncOutputBuffer[i]) {
+                    ret = OMX_ErrorInsufficientResources;
+                    goto ALLOC_FAILED;
+                }
+
                 if (pOutbufOps->Get_Buffer) {
                      if (pOutbufOps->Get_Buffer(pH264Enc->hMFCH264Handle.hMFCHandle, i, &pBuffer) != VIDEO_ERROR_NONE) {
                          Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Failed to get Output buffer info");
@@ -1077,6 +1082,16 @@ OMX_ERRORTYPE H264CodecDstSetup(OMX_COMPONENTTYPE *pOMXComponent)
 EXIT:
     FunctionOut();
 
+    return ret;
+
+ALLOC_FAILED:
+    for (i = 0; i < MFC_OUTPUT_BUFFER_NUM_MAX; i++) {
+        if (pVideoEnc->pMFCEncOutputBuffer[i])
+            Exynos_OSAL_Free(pVideoEnc->pMFCEncOutputBuffer[i]);
+    }
+    Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Failed to allocate buffers");
+    FunctionOut();
+
     return ret;
 }
 
index f1ff7e47cc67285c1f54e4111cde5b9a0d0fa1a8..3b1778d66313d84789893e84199d680f4c4b6223 100755 (executable)
@@ -1156,6 +1156,11 @@ OMX_ERRORTYPE Mpeg4CodecDstSetup(OMX_COMPONENTTYPE *pOMXComponent)
 
                 pVideoEnc->pMFCEncOutputBuffer[i] = (CODEC_ENC_BUFFER *)Exynos_OSAL_Malloc(sizeof(CODEC_ENC_BUFFER));
 
+                if (!pVideoEnc->pMFCEncOutputBuffer[i]) {
+                    ret = OMX_ErrorInsufficientResources;
+                    goto ALLOC_FAILED;
+                }
+
                 if (pOutbufOps->Get_Buffer) {
                      if (pOutbufOps->Get_Buffer(pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle, i, &pBuffer) != VIDEO_ERROR_NONE) {
                          Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Failed to get Output buffer info");
@@ -1208,6 +1213,16 @@ EXIT:
     FunctionOut();
 
     return ret;
+
+ALLOC_FAILED:
+    for (i = 0; i < MFC_OUTPUT_BUFFER_NUM_MAX; i++) {
+        if (pVideoEnc->pMFCEncOutputBuffer[i])
+            Exynos_OSAL_Free(pVideoEnc->pMFCEncOutputBuffer[i]);
+    }
+    Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Failed to allocate buffers");
+
+    FunctionOut();
+    return ret;
 }
 
 OMX_ERRORTYPE Exynos_Mpeg4Enc_GetParameter(