[0.6.137] apply gapless for looping function 04/205304/1 accepted/tizen/5.0/unified/20190508.044904 submit/tizen_5.0/20190507.040758
authorEunhye Choi <eunhae1.choi@samsung.com>
Thu, 2 May 2019 06:45:50 +0000 (15:45 +0900)
committerEunhye Choi <eunhae1.choi@samsung.com>
Thu, 2 May 2019 06:45:54 +0000 (15:45 +0900)
- fix uri condition error for looping with gapless
- release video decoder resource before building new source path
- cherry-pick : 85bbaaf404e4afaeb7daf81a538705135de1f0a8

Change-Id: I3a136463a89d8864a5c73a694b0208bcec02a99f

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

index 5d90858f6578fad1264d0247a3edc91daab05ff8..ca25fffaa87497fc029f28f9925117872dc67e17 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-player
 Summary:    Multimedia Framework Player Library
-Version:    0.6.136
+Version:    0.6.137
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index 49285a1c0e312c85a9482cfedaba8bfb4aca425d..6257088f43f0b19bc730e250134044f50b2ec593 100644 (file)
@@ -7340,7 +7340,7 @@ __mmplayer_verify_next_play_path(mm_player_t *player)
 
        LOGD("repeat count = %d, num_of_list = %d", count, num_of_list);
 
-       if (num_of_list == 0) {
+       if (num_of_list == 1) {
                /* audio looping path */
                if (count >= REPEAT_COUNT_MIN) {
                        /* decrease play count */
@@ -7377,6 +7377,7 @@ static void
 __mmplayer_initialize_next_play(mm_player_t *player)
 {
        int i;
+       int rm_ret = MM_RESOURCE_MANAGER_ERROR_NONE;
 
        MMPLAYER_FENTER();
 
@@ -7442,6 +7443,22 @@ __mmplayer_initialize_next_play(mm_player_t *player)
                player->audio_decoders = NULL;
        }
 
+       if (player->video_decoder_resource != NULL) {
+               rm_ret = mm_resource_manager_mark_for_release(player->resource_manager,
+                               player->video_decoder_resource);
+               if (rm_ret != MM_RESOURCE_MANAGER_ERROR_NONE) {
+                       LOGE("failed to mark decoder resource for release, ret(0x%x)\n", rm_ret);
+                       return;
+               }
+               player->video_decoder_resource = NULL;
+       }
+
+       rm_ret = mm_resource_manager_commit(player->resource_manager);
+       if (rm_ret != MM_RESOURCE_MANAGER_ERROR_NONE) {
+               LOGE("failed to commit resource releases, ret(0x%x)\n", rm_ret);
+               return;
+       }
+
        MMPLAYER_FLEAVE();
 }