From: Sejun Park Date: Thu, 15 Mar 2018 06:07:08 +0000 (+0900) Subject: fixed coverity issues X-Git-Tag: submit/tizen/20180315.080954~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=851569d522d4b4f4159f8888da5296569a8ed149;p=platform%2Fcore%2Fapi%2Fmediacodec.git fixed coverity issues Change-Id: I564f3d25eaa051c5792e7f9afb7fd61683950523 --- diff --git a/src/media_codec.c b/src/media_codec.c index 88784ba..445b069 100644 --- a/src/media_codec.c +++ b/src/media_codec.c @@ -363,6 +363,7 @@ int mediacodec_unprepare(mediacodec_h mediacodec) { MEDIACODEC_INSTANCE_CHECK(mediacodec); mediacodec_s *handle = (mediacodec_s *)mediacodec; + int rm_ret = MM_RESOURCE_MANAGER_ERROR_NONE; int ret = mc_unprepare(handle->mc_handle); @@ -373,7 +374,16 @@ int mediacodec_unprepare(mediacodec_h mediacodec) mm_resource_manager_mark_for_release(resource_manager, handle->codec_resource); handle->codec_resource = NULL; - mm_resource_manager_commit(resource_manager); + rm_ret = mm_resource_manager_commit(resource_manager); + if (rm_ret != MM_RESOURCE_MANAGER_ERROR_NONE) { + mm_resource_manager_mark_for_release(resource_manager, resource); + switch (rm_ret) { + case MM_RESOURCE_MANAGER_ERROR_LOW_PRIORITY: + return MEDIACODEC_ERROR_RESOURCE_OVERLOADED; + default: + return MEDIACODEC_ERROR_INTERNAL; + } + } } else { LOGD("No codec resource to release. Probably resource release cb called\n"); } @@ -713,8 +723,12 @@ static int __mediacodec_resource_release_cb(mm_resource_manager_h rm, static void __mediacodec_init_lib() { mediacodec_handles = g_ptr_array_sized_new(MC_PREALLOCATED_HANDLE_ARRAY_SIZE); - mm_resource_manager_create(MM_RESOURCE_MANAGER_APP_CLASS_MEDIA, - __mediacodec_resource_release_cb, NULL, &resource_manager); + + if (MM_RESOURCE_MANAGER_ERROR_NONE != mm_resource_manager_create(MM_RESOURCE_MANAGER_APP_CLASS_MEDIA, + __mediacodec_resource_release_cb, NULL, &resource_manager)) { + LOGE("Failed to initialize resource manager"); + g_ptr_array_unref(mediacodec_handles); + } } static void __mediacodec_deinit_lib() diff --git a/src/media_codec_port_gst.c b/src/media_codec_port_gst.c index 5bf33cf..c787b0c 100644 --- a/src/media_codec_port_gst.c +++ b/src/media_codec_port_gst.c @@ -2582,6 +2582,8 @@ static MMVideoBuffer *__mc_gst_make_tbm_buffer(mc_gst_core_t *core, media_packet { gint i; gint num_bos; + gint err; + int ret = MEDIA_PACKET_ERROR_NONE; tbm_surface_h surface = NULL; tbm_surface_info_s surface_info; tbm_bo_handle handle_bo; @@ -2599,9 +2601,15 @@ static MMVideoBuffer *__mc_gst_make_tbm_buffer(mc_gst_core_t *core, media_packet } memset(mm_vbuffer, 0x00, sizeof(MMVideoBuffer)); - media_packet_get_tbm_surface(packet, &surface); + ret = media_packet_get_tbm_surface(packet, &surface); + if (ret != MEDIA_PACKET_ERROR_NONE) { + LOGE("Failed to get tbm surface"); + free(mm_vbuffer); + return NULL; + } + num_bos = tbm_surface_internal_get_num_bos(surface); - gint err = tbm_surface_get_info((tbm_surface_h)surface, &surface_info); + err = tbm_surface_get_info((tbm_surface_h)surface, &surface_info); if (err != TBM_SURFACE_ERROR_NONE) { LOGE("get tbm surface is failed"); free(mm_vbuffer);