buffering msg can be delievered right after _destroy is called
but the player handle is still valid.
Add checking the pipeline validation as soon as getting cmd lock.
and check mutex lock state before clearing it.
Change-Id: I043801f39480dfd0d54d3a7cc9803528bb32f51c
Name: libmm-player
Summary: Multimedia Framework Player Library
-Version: 0.6.75
+Version: 0.6.76
Release: 0
Group: Multimedia/Libraries
License: Apache-2.0
MMPLAYER_CMD_UNLOCK(player);
+ /* to make sure unlocked.
+ @see __mmplayer_gst_callback, GST_MESSAGE_BUFFERING handling */
+ MMPLAYER_CMD_LOCK(player);
+ MMPLAYER_CMD_UNLOCK(player);
+
g_mutex_clear(&((mm_player_t*)player)->cmd_lock);
g_mutex_clear(&((mm_player_t*)player)->playback_lock);
}
} else {
MMPLAYER_CMD_LOCK(player);
+ if (!player->pipeline) { /* during destroy, msg can be delivered. */
+ LOGE("pipeline is destroyed.");
+ MMPLAYER_CMD_UNLOCK(player);
+ break;
+ }
}
__mmplayer_update_buffer_setting(player, msg);