summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSangchul Lee <sc11.lee@samsung.com>2015-11-09 17:20:36 +0900
committerSangchul Lee <sc11.lee@samsung.com>2015-11-09 17:20:36 +0900
commit1c1de18dda064e8c3cac4c0a0df93e5e1cee8c97 (patch)
treecf83c4ebf4b106d30f3600817a3456d8248547a5
parentaf291b8b2bda0f0bfa6d3ad2f21ee968e56ac59e (diff)
downloadlibmm-player-1c1de18dda064e8c3cac4c0a0df93e5e1cee8c97.tar.gz
libmm-player-1c1de18dda064e8c3cac4c0a0df93e5e1cee8c97.tar.bz2
libmm-player-1c1de18dda064e8c3cac4c0a0df93e5e1cee8c97.zip
Change-Id: If16382cecffd28a86628a1c1b022eef236bb7517
-rw-r--r--packaging/libmm-player.spec2
-rw-r--r--src/server/mm_player_priv.c23
-rw-r--r--src/server/mm_player_resource.c6
3 files changed, 20 insertions, 11 deletions
diff --git a/packaging/libmm-player.spec b/packaging/libmm-player.spec
index db11b36..72edfa9 100644
--- a/packaging/libmm-player.spec
+++ b/packaging/libmm-player.spec
@@ -3,7 +3,7 @@
Name: libmm-player
Summary: Multimedia Framework Player Library
-Version: 0.5.66
+Version: 0.5.67
Release: 0
Group: Multimedia/Libraries
License: Apache-2.0
diff --git a/src/server/mm_player_priv.c b/src/server/mm_player_priv.c
index 5598c0d..76893e8 100644
--- a/src/server/mm_player_priv.c
+++ b/src/server/mm_player_priv.c
@@ -9016,10 +9016,10 @@ __mmplayer_can_do_interrupt(mm_player_t *player)
goto INTERRUPT;
}
-FAILED:
+FAILED: /* with CMD UNLOCKED */
return FALSE;
-INTERRUPT:
+INTERRUPT: /* with CMD LOCKED */
return TRUE;
}
@@ -9086,7 +9086,7 @@ void __mmplayer_sound_focus_watch_callback(int id, mm_sound_focus_type_e focus_t
if (!__mmplayer_can_do_interrupt(player))
{
LOGW("no need to interrupt, so leave");
- goto EXIT;
+ goto EXIT_WITHOUT_UNLOCK;
}
if (player->sound_focus.session_flags & MM_SESSION_OPTION_UNINTERRUPTIBLE)
@@ -9169,9 +9169,13 @@ void __mmplayer_sound_focus_watch_callback(int id, mm_sound_focus_type_e focus_t
DONE:
player->sound_focus.by_asm_cb = FALSE;
player->sound_focus.cb_pending = FALSE;
- MMPLAYER_CMD_UNLOCK( player );
EXIT:
+ MMPLAYER_CMD_UNLOCK( player );
+ LOGW("dispatched");
+ return;
+
+EXIT_WITHOUT_UNLOCK:
LOGW("dispatched");
return;
}
@@ -9190,7 +9194,7 @@ __mmplayer_sound_focus_callback(int id, mm_sound_focus_type_e focus_type, mm_sou
if (!__mmplayer_can_do_interrupt(player))
{
LOGW("no need to interrupt, so leave");
- goto EXIT;
+ goto EXIT_WITHOUT_UNLOCK;
}
if (player->sound_focus.session_flags & MM_SESSION_OPTION_UNINTERRUPTIBLE)
@@ -9323,9 +9327,13 @@ DONE:
player->sound_focus.by_asm_cb = FALSE;
}
player->sound_focus.cb_pending = FALSE;
- MMPLAYER_CMD_UNLOCK( player );
EXIT:
+ MMPLAYER_CMD_UNLOCK( player );
+ LOGW("dispatched");
+ return;
+
+EXIT_WITHOUT_UNLOCK:
LOGW("dispatched");
return;
}
@@ -9982,7 +9990,7 @@ _mmplayer_unrealize(MMHandleType hplayer)
}
ret = _mmplayer_resource_manager_release(&player->resource_manager);
- if ( ret == MM_ERROR_RESOURCE_INVALID_STATE )
+ if (ret == MM_ERROR_RESOURCE_INVALID_STATE)
{
LOGW("it could be in the middle of resource callback or there's no acquired resource\n");
ret = MM_ERROR_NONE;
@@ -9992,6 +10000,7 @@ _mmplayer_unrealize(MMHandleType hplayer)
LOGE("failed to release resource, ret(0x%x)\n", ret);
}
ret = _mmplayer_resource_manager_unprepare(&player->resource_manager);
+ if (ret != MM_ERROR_NONE)
{
LOGE("failed to unprepare resource, ret(0x%x)\n", ret);
}
diff --git a/src/server/mm_player_resource.c b/src/server/mm_player_resource.c
index 58c913e..ffcddd9 100644
--- a/src/server/mm_player_resource.c
+++ b/src/server/mm_player_resource.c
@@ -104,14 +104,13 @@ static void mrp_state_callback(mrp_res_context_t *context, mrp_res_error_t err,
LOGE(" - user data is null\n");
return;
}
+ player = (mm_player_t*)user_data;
if (err != MRP_RES_ERROR_NONE)
{
- LOGE(" - error message received from Murphy, err(0x%x)\n", err);
+ LOGE(" - error message received from Murphy, for the player(%p), err(0x%x)\n", player, err);
return;
}
- player = (mm_player_t*)user_data;
-
switch(context->state)
{
case MRP_RES_CONNECTED:
@@ -236,6 +235,7 @@ static void mrp_resource_release_cb (mrp_res_context_t *cx, const mrp_res_resour
}
else
LOGW("could not find videobin");
+ MMPLAYER_CMD_UNLOCK(player);
}
MMPLAYER_FLEAVE();