[0.6.233] Execute commit after checking the return value of marking at resource destroy 29/238629/4
authorYoungHun Kim <yh8004.kim@samsung.com>
Wed, 15 Jul 2020 23:49:03 +0000 (08:49 +0900)
committerYoungHun Kim <yh8004.kim@samsung.com>
Thu, 16 Jul 2020 23:53:20 +0000 (08:53 +0900)
Change-Id: I1c8d0848b4b1fb9136962cd94b7c1bd4a673ff5e

packaging/libmm-player.spec
src/mm_player_priv.c

index a24f255..2ba0a5b 100644 (file)
@@ -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
index 71db29e..7107352 100644 (file)
@@ -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;
        }