[0.6.209] Fix crash when unprepare 68/217868/2
authorGilbok Lee <gilbok.lee@samsung.com>
Fri, 15 Nov 2019 04:57:54 +0000 (13:57 +0900)
committerGilbok Lee <gilbok.lee@samsung.com>
Fri, 15 Nov 2019 05:06:52 +0000 (14:06 +0900)
- Called __mmplayer_video_stream_decoded_render_cb() during unprepare.
- video_decodec_cb is changed NULL in __mmplayer_release_misc().
  So, the position of resetting the callback is changed to the
  _mmplayer_release_misc_post() function.

Change-Id: I6ed83ea85413ff92d795954aef7352435b5bc46d

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

index 1ec3577..a882d8d 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-player
 Summary:    Multimedia Framework Player Library
-Version:    0.6.208
+Version:    0.6.209
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index 1c585c3..ca2f129 100644 (file)
@@ -4909,6 +4909,9 @@ _mmplayer_destroy(MMHandleType handle)
                        player->resource_manager))
                LOGE("failed to deinitialize resource manager");
 
+       /* release miscellaneous information */
+       __mmplayer_release_misc(player);
+
        /* release pipeline */
        if (MM_ERROR_NONE != __mmplayer_gst_destroy_pipeline(player)) {
                LOGE("failed to destory pipeline");
@@ -4923,9 +4926,6 @@ _mmplayer_destroy(MMHandleType handle)
 
        __mmplayer_release_dump_list(player->dump_list);
 
-       /* release miscellaneous information */
-       __mmplayer_release_misc(player);
-
        /* release miscellaneous information.
           these info needs to be released after pipeline is destroyed. */
        __mmplayer_release_misc_post(player);
@@ -7475,17 +7475,6 @@ __mmplayer_release_misc(mmplayer_t *player)
 
        MMPLAYER_RETURN_IF_FAIL(player);
 
-       player->video_decoded_cb = NULL;
-       player->video_decoded_cb_user_param = NULL;
-       player->video_stream_prerolled = false;
-
-       player->audio_decoded_cb = NULL;
-       player->audio_decoded_cb_user_param = NULL;
-       player->audio_extract_opt = MM_PLAYER_AUDIO_EXTRACT_DEFAULT;
-
-       player->audio_stream_changed_cb = NULL;
-       player->audio_stream_changed_cb_user_param = NULL;
-
        player->sent_bos = FALSE;
        player->playback_rate = DEFAULT_PLAYBACK_RATE;
 
@@ -7566,9 +7555,19 @@ __mmplayer_release_misc_post(mmplayer_t *player)
        MMPLAYER_FENTER();
 
        /* player->pipeline is already released before. */
-
        MMPLAYER_RETURN_IF_FAIL(player);
 
+       player->video_decoded_cb = NULL;
+       player->video_decoded_cb_user_param = NULL;
+       player->video_stream_prerolled = false;
+
+       player->audio_decoded_cb = NULL;
+       player->audio_decoded_cb_user_param = NULL;
+       player->audio_extract_opt = MM_PLAYER_AUDIO_EXTRACT_DEFAULT;
+
+       player->audio_stream_changed_cb = NULL;
+       player->audio_stream_changed_cb_user_param = NULL;
+
        mm_player_set_attribute((MMHandleType)player, NULL, "content_video_found", 0, NULL);
 
        /* clean found audio decoders */