From 52566fb3a89c8608a5e7f0b78855c69c5029cab2 Mon Sep 17 00:00:00 2001 From: YoungHun Kim Date: Thu, 16 Jul 2020 08:49:03 +0900 Subject: [PATCH] [0.6.233] Execute commit after checking the return value of marking at resource destroy Change-Id: I1c8d0848b4b1fb9136962cd94b7c1bd4a673ff5e --- packaging/libmm-player.spec | 2 +- src/mm_player_priv.c | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/packaging/libmm-player.spec b/packaging/libmm-player.spec index a24f255..2ba0a5b 100644 --- a/packaging/libmm-player.spec +++ b/packaging/libmm-player.spec @@ -1,6 +1,6 @@ Name: libmm-player Summary: Multimedia Framework Player Library -Version: 0.6.232 +Version: 0.6.233 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/mm_player_priv.c b/src/mm_player_priv.c index 71db29e..7107352 100644 --- a/src/mm_player_priv.c +++ b/src/mm_player_priv.c @@ -584,6 +584,7 @@ int _mmplayer_acquire_hw_resource(mmplayer_t *player, mmplayer_resource_type_e t return MM_ERROR_PLAYER_INTERNAL; } + LOGD("commit [%d type] resource", type); rm_ret = mm_resource_manager_commit(player->resource_manager); if (rm_ret != MM_RESOURCE_MANAGER_ERROR_NONE) { LOGE("failed to commit of resource, ret(0x%x)", rm_ret); @@ -601,16 +602,23 @@ static void __mmplayer_destroy_hw_resource(mmplayer_t *player) MMPLAYER_RETURN_IF_FAIL(player); MMPLAYER_RETURN_IF_FAIL(player->resource_manager); - mm_resource_manager_mark_all_for_release(player->resource_manager); + rm_ret = mm_resource_manager_mark_all_for_release(player->resource_manager); + if (rm_ret != MM_RESOURCE_MANAGER_ERROR_NONE) { + LOGW("failed to mark all for release of resource, ret(0x%x)", rm_ret); + goto rm_destroy; + } rm_ret = mm_resource_manager_commit(player->resource_manager); if (rm_ret != MM_RESOURCE_MANAGER_ERROR_NONE) - LOGW("failed to commit of resource, ret(0x%x)", rm_ret); + LOGW("failed to commit resource, ret(0x%x)", rm_ret); +rm_destroy: /* de-initialize resource manager */ rm_ret = mm_resource_manager_destroy(player->resource_manager); - if (rm_ret != MM_RESOURCE_MANAGER_ERROR_NONE) + if (rm_ret != MM_RESOURCE_MANAGER_ERROR_NONE) { LOGW("failed to destroy resource manager, ret(0x%x)", rm_ret); + return; + } player->resource_manager = NULL; @@ -637,9 +645,10 @@ static int __mmplayer_release_hw_resource(mmplayer_t *player, mmplayer_resource_ player->hw_resource[type] = NULL; + LOGD("commit [%d type] resource", type); rm_ret = mm_resource_manager_commit(player->resource_manager); if (rm_ret != MM_RESOURCE_MANAGER_ERROR_NONE) { - LOGE("failed to commit of resource, ret(0x%x)", rm_ret); + LOGE("failed to commit resource, ret(0x%x)", rm_ret); return MM_ERROR_PLAYER_INTERNAL; } -- 2.7.4