ret = __gst_unrealize(player);
/* set asm stop if success */
- if (MM_ERROR_NONE == ret) {
+ if (ret == MM_ERROR_NONE) {
ret = _mmplayer_sound_release_focus(&player->sound_focus);
if (ret != MM_ERROR_NONE)
LOGE("failed to release sound focus, ret(0x%x)\n", ret);
- if (player->resource_manager[RESOURCE_TYPE_VIDEO_OVERLAY].by_rm_cb ||
- !player->resource_manager[RESOURCE_TYPE_VIDEO_DECODER].by_rm_cb) {
- ret = _mmplayer_resource_manager_release(&player->resource_manager[RESOURCE_TYPE_VIDEO_DECODER]);
- if (ret != MM_ERROR_NONE)
- LOGE("failed to release decoder resource, ret(0x%x)\n", ret);
+ if ((player->resource_manager[RESOURCE_TYPE_VIDEO_OVERLAY].by_rm_cb ||
+ !player->resource_manager[RESOURCE_TYPE_VIDEO_DECODER].by_rm_cb) &&
+ _mmplayer_resource_manager_get_state(&player->resource_manager[RESOURCE_TYPE_VIDEO_DECODER], &resource_state) == MM_ERROR_NONE) {
+ if (resource_state == RESOURCE_STATE_ACQUIRED) {
+ ret = _mmplayer_resource_manager_release(&player->resource_manager[RESOURCE_TYPE_VIDEO_DECODER]);
+ if (ret != MM_ERROR_NONE)
+ LOGE("failed to release decoder resource, ret(0x%x)\n", ret);
+ }
}
- if (player->resource_manager[RESOURCE_TYPE_VIDEO_DECODER].by_rm_cb ||
- !player->resource_manager[RESOURCE_TYPE_VIDEO_OVERLAY].by_rm_cb) {
- ret = _mmplayer_resource_manager_release(&player->resource_manager[RESOURCE_TYPE_VIDEO_OVERLAY]);
- if (ret != MM_ERROR_NONE)
- LOGE("failed to release overlay resource, ret(0x%x)\n", ret);
+
+ if ((player->resource_manager[RESOURCE_TYPE_VIDEO_DECODER].by_rm_cb ||
+ !player->resource_manager[RESOURCE_TYPE_VIDEO_OVERLAY].by_rm_cb) &&
+ _mmplayer_resource_manager_get_state(&player->resource_manager[RESOURCE_TYPE_VIDEO_DECODER], &resource_state) == MM_ERROR_NONE) {
+ if (resource_state == RESOURCE_STATE_ACQUIRED) {
+ ret = _mmplayer_resource_manager_release(&player->resource_manager[RESOURCE_TYPE_VIDEO_OVERLAY]);
+ if (ret != MM_ERROR_NONE)
+ LOGE("failed to release overlay resource, ret(0x%x)\n", ret);
+ }
}
if (_mmplayer_resource_manager_get_state(&player->resource_manager[RESOURCE_TYPE_VIDEO_DECODER], &resource_state) == MM_ERROR_NONE) {