[0.6.231] Always release resource when called resource_release_cb 46/233546/9
authorGilbok Lee <gilbok.lee@samsung.com>
Fri, 15 May 2020 08:29:54 +0000 (17:29 +0900)
committerGilbok Lee <gilbok.lee@samsung.com>
Thu, 9 Jul 2020 06:11:58 +0000 (15:11 +0900)
remove unused log

Change-Id: I27a3555df10752950570439c3911ed66b5589d7a

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

index 9179855..cf0f4ba 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-player
 Summary:    Multimedia Framework Player Library
-Version:    0.6.230
+Version:    0.6.231
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index b472ad2..10a1c23 100644 (file)
@@ -4544,55 +4544,6 @@ _mmplayer_parse_profile(const char *uri, void *param, mmplayer_parse_profile_t *
        return ret;
 }
 
-static gboolean
-__mmplayer_can_do_interrupt(mmplayer_t *player)
-{
-       if (!player || !player->pipeline || !player->attrs) {
-               LOGW("not initialized");
-               goto FAILED;
-       }
-
-       if (player->audio_decoded_cb) {
-               LOGW("not support in pcm extraction mode");
-               goto FAILED;
-       }
-
-       /* check if seeking */
-       if (player->seek_state != MMPLAYER_SEEK_NONE) {
-               MMMessageParamType msg_param;
-               memset(&msg_param, 0, sizeof(MMMessageParamType));
-               msg_param.code = MM_ERROR_PLAYER_SEEK;
-               player->seek_state = MMPLAYER_SEEK_NONE;
-               MMPLAYER_POST_MSG(player, MM_MESSAGE_ERROR, &msg_param);
-               goto FAILED;
-       }
-
-       /* check other thread */
-       if (!MMPLAYER_CMD_TRYLOCK(player)) {
-               LOGW("locked already, cmd state : %d", player->cmd);
-
-               /* check application command */
-               if (player->cmd == MMPLAYER_COMMAND_START || player->cmd == MMPLAYER_COMMAND_RESUME) {
-                       LOGW("playing.. should wait cmd lock then, will be interrupted");
-
-                       /* lock will be released at mrp_resource_release_cb() */
-                       MMPLAYER_CMD_LOCK(player);
-                       goto INTERRUPT;
-               }
-               LOGW("nothing to do");
-               goto FAILED;
-       } else {
-               LOGW("can interrupt immediately");
-               goto INTERRUPT;
-       }
-
-FAILED:    /* with CMD UNLOCKED */
-       return FALSE;
-
-INTERRUPT: /* with CMD LOCKED, will do UNLOCK at __resource_release_cb() */
-       return TRUE;
-}
-
 static int
 __resource_release_cb(mm_resource_manager_h rm, mm_resource_manager_res_h res,
                void *user_data)
@@ -4606,14 +4557,25 @@ __resource_release_cb(mm_resource_manager_h rm, mm_resource_manager_res_h res,
 
        if (!user_data) {
                LOGE("user_data is null");
-               return FALSE;
+               return TRUE;
        }
+
        player = (mmplayer_t *)user_data;
 
-       if (!__mmplayer_can_do_interrupt(player)) {
-               LOGW("no need to interrupt, so leave");
-               /* FIXME: there is no way to avoid releasing resource. */
-               return FALSE;
+       if (!player->pipeline || !player->attrs) {
+               LOGW("not initialized");
+               return TRUE;
+       }
+
+       LOGD("cmd lock player, cmd state : %d", player->cmd);
+       MMPLAYER_CMD_LOCK(player);
+       LOGD("cmd locked player");
+
+       if (MMPLAYER_CURRENT_STATE(player) == MM_PLAYER_STATE_NULL
+               || MMPLAYER_CURRENT_STATE(player) == MM_PLAYER_STATE_NONE) {
+               LOGW("player alreay destoryed");
+               MMPLAYER_CMD_UNLOCK(player);
+               return TRUE;
        }
 
        player->interrupted_by_resource = TRUE;
@@ -4631,7 +4593,6 @@ __resource_release_cb(mm_resource_manager_h rm, mm_resource_manager_res_h res,
        if (_mmplayer_unrealize((MMHandleType)player) != MM_ERROR_NONE)
                LOGE("failed to unrealize");
 
-       /* lock is called in __mmplayer_can_do_interrupt() */
        MMPLAYER_CMD_UNLOCK(player);
 
        for (res_idx = MMPLAYER_RESOURCE_TYPE_VIDEO_DECODER; res_idx < MMPLAYER_RESOURCE_TYPE_MAX; res_idx++) {
@@ -5161,6 +5122,8 @@ _mmplayer_unrealize(MMHandleType hplayer)
 {
        mmplayer_t *player = (mmplayer_t *)hplayer;
        int ret = MM_ERROR_NONE;
+       int rm_ret = MM_ERROR_NONE;
+       mmplayer_resource_type_e res_idx = MMPLAYER_RESOURCE_TYPE_MAX;
 
        MMPLAYER_FENTER();
 
@@ -5182,15 +5145,10 @@ _mmplayer_unrealize(MMHandleType hplayer)
        /* unrealize pipeline */
        ret = __mmplayer_gst_unrealize(player);
 
-       if (!player->interrupted_by_resource) {
-               int rm_ret = MM_ERROR_NONE;
-               mmplayer_resource_type_e res_idx = MMPLAYER_RESOURCE_TYPE_MAX;
-
-               for (res_idx = MMPLAYER_RESOURCE_TYPE_VIDEO_DECODER; res_idx < MMPLAYER_RESOURCE_TYPE_MAX; res_idx++) {
-                       rm_ret = __mmplayer_release_hw_resource(player, res_idx);
-                       if (rm_ret != MM_ERROR_NONE)
-                               LOGE("failed to release [%d] resources", res_idx);
-               }
+       for (res_idx = MMPLAYER_RESOURCE_TYPE_VIDEO_DECODER; res_idx < MMPLAYER_RESOURCE_TYPE_MAX; res_idx++) {
+               rm_ret = __mmplayer_release_hw_resource(player, res_idx);
+               if (rm_ret != MM_ERROR_NONE)
+                       LOGE("failed to release [%d] resources", res_idx);
        }
 
        player->interrupted_by_resource = FALSE;
index 0620af0..b7acd33 100644 (file)
@@ -662,26 +662,22 @@ gboolean _mmplayer_use_decodebin(mmplayer_t *player) /* MMPLAYER_USE_DECODEBIN(p
 
 void _mmplayer_cmd_lock_init(mmplayer_t *player)
 {
-       MMPLAYER_FENTER();
        MMPLAYER_RETURN_IF_FAIL(player);
        player->cmd_lock = g_new0(mmplayer_ticket_lock_t, 1);
        g_mutex_init(&player->cmd_lock->ticket_mutex);
        g_cond_init(&player->cmd_lock->ticket_cond);
        player->cmd_lock->ticket_queue_head = 0;
        player->cmd_lock->ticket_queue_tail = 0;
-       MMPLAYER_FLEAVE();
 }
 
 void _mmplayer_cmd_lock_deinit(mmplayer_t *player)
 {
-       MMPLAYER_FENTER();
        MMPLAYER_RETURN_IF_FAIL(player && player->cmd_lock);
        g_mutex_clear(&player->cmd_lock->ticket_mutex);
        g_cond_clear(&player->cmd_lock->ticket_cond);
        player->cmd_lock->ticket_queue_head = 0;
        player->cmd_lock->ticket_queue_tail = 0;
        g_free(player->cmd_lock);
-       MMPLAYER_FLEAVE();
 }
 
 void _mmplayer_cmd_lock(mmplayer_t *player)
@@ -690,7 +686,6 @@ void _mmplayer_cmd_lock(mmplayer_t *player)
        GCond *cond;
        GMutex *mutex;
 
-       MMPLAYER_FENTER();
        MMPLAYER_RETURN_IF_FAIL(player && player->cmd_lock);
 
        cond = &player->cmd_lock->ticket_cond;
@@ -701,32 +696,26 @@ void _mmplayer_cmd_lock(mmplayer_t *player)
        while (queue_me != player->cmd_lock->ticket_queue_head)
                g_cond_wait(cond, mutex);
        g_mutex_unlock(mutex);
-       MMPLAYER_FLEAVE();
 }
 
 gboolean _mmplayer_cmd_trylock(mmplayer_t *player)
 {
        GMutex *mutex;
 
-       MMPLAYER_FENTER();
        MMPLAYER_RETURN_VAL_IF_FAIL(player && player->cmd_lock, FALSE);
 
        mutex = &player->cmd_lock->ticket_mutex;
 
-       if (!g_mutex_trylock(mutex)) {
-               MMPLAYER_FLEAVE();
+       if (!g_mutex_trylock(mutex))
                return FALSE;
-       }
 
        if (player->cmd_lock->ticket_queue_tail != player->cmd_lock->ticket_queue_head) {
                g_mutex_unlock(mutex);
-               MMPLAYER_FLEAVE();
                return FALSE;
        }
        g_mutex_unlock(mutex);
 
        _mmplayer_cmd_lock(player);
-       MMPLAYER_FLEAVE();
        return TRUE;
 }
 
@@ -735,7 +724,6 @@ void _mmplayer_cmd_unlock(mmplayer_t *player)
        GCond *cond;
        GMutex *mutex;
 
-       MMPLAYER_FENTER();
        MMPLAYER_RETURN_IF_FAIL(player && player->cmd_lock);
 
        cond = &player->cmd_lock->ticket_cond;
@@ -746,5 +734,4 @@ void _mmplayer_cmd_unlock(mmplayer_t *player)
                (player->cmd_lock->ticket_queue_head + 1) % CMD_LOCK_TICKET_MAX;
        g_cond_broadcast(cond);
        g_mutex_unlock(mutex);
-       MMPLAYER_FLEAVE();
 }