[0.6.219] Execute commit after checking the return value of marking at resource destroy 79/238779/1
authorYoungHun Kim <yh8004.kim@samsung.com>
Wed, 15 Jul 2020 23:49:03 +0000 (08:49 +0900)
committerGilbok Lee <gilbok.lee@samsung.com>
Fri, 17 Jul 2020 08:16:00 +0000 (17:16 +0900)
Change-Id: I1c8d0848b4b1fb9136962cd94b7c1bd4a673ff5e

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

index 0bbda67f66a1f3c947cb1738ed5ab94a1d6440d0..c661ddb7ec350e80450b489aca4ace2c436e4b3f 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-player
 Summary:    Multimedia Framework Player Library
-Version:    0.6.218
+Version:    0.6.219
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index 3d295a7ddebb0818ab8bbdc674fa725c9cf41d0b..03f2966eca93e112c69089b917cec8ae24c7284e 100644 (file)
@@ -590,6 +590,7 @@ static int __mmplayer_acquire_hw_resource(mmplayer_t *player, mmplayer_resource_
                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);
@@ -607,16 +608,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;
 
@@ -643,9 +651,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;
        }