summaryrefslogtreecommitdiff
path: root/src/mm_player_resource.c
diff options
context:
space:
mode:
authorEunhae Choi <eunhae1.choi@samsung.com>2017-01-13 03:21:21 -0800
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>2017-01-13 03:21:21 -0800
commit5dba9eeb9dbcafd2d3ad9aab6c722671aeed8d32 (patch)
tree9555bf7b36ebd9ac4cb745b81fdbc90f683d1bd3 /src/mm_player_resource.c
parent61095e50ad93ae637100d18ad7929b8a95054c07 (diff)
parent3af1cdce8a85568d09336f39b043125fd372301e (diff)
downloadlibmm-player-5dba9eeb9dbcafd2d3ad9aab6c722671aeed8d32.tar.gz
libmm-player-5dba9eeb9dbcafd2d3ad9aab6c722671aeed8d32.tar.bz2
libmm-player-5dba9eeb9dbcafd2d3ad9aab6c722671aeed8d32.zip
Merge "[v0.6.22] post resource conflict msg regardless of videobin" into tizen_3.0
Diffstat (limited to 'src/mm_player_resource.c')
-rw-r--r--src/mm_player_resource.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/mm_player_resource.c b/src/mm_player_resource.c
index c886b0c..ab95c86 100644
--- a/src/mm_player_resource.c
+++ b/src/mm_player_resource.c
@@ -189,6 +189,7 @@ static void mrp_resource_release_cb(mrp_res_context_t *cx, const mrp_res_resourc
int result = MM_ERROR_NONE;
mm_player_t* player = NULL;
mrp_res_resource_t *res;
+ gboolean resource_released = FALSE;
MMPLAYER_FENTER();
@@ -206,10 +207,13 @@ static void mrp_resource_release_cb(mrp_res_context_t *cx, const mrp_res_resourc
LOGD(" - resource set state of player(%p) is changed to [%s]\n", player, state_to_str(rs->state));
for (i = 0; i < MRP_RESOURCE_MAX; i++) {
res = mrp_res_get_resource_by_name(rs, resource_str[i]);
- if (res == NULL)
+ if (res == NULL) {
LOGW(" -- %s not present in resource set\n", resource_str[i]);
- else
+ } else {
LOGD(" -- resource name [%s] -> [%s]'\n", res->name, state_to_str(res->state));
+ if (res->state == MRP_RES_RESOURCE_ABOUT_TO_LOOSE)
+ resource_released = TRUE;
+ }
}
/* do something to release resource here.
@@ -217,7 +221,7 @@ static void mrp_resource_release_cb(mrp_res_context_t *cx, const mrp_res_resourc
if (!__mmplayer_can_do_interrupt(player)) {
LOGW("no need to interrupt, so leave");
} else {
- if (player->pipeline->videobin) {
+ if (resource_released) {
player->resource_manager.by_rm_cb = TRUE;
LOGD("video resource conflict so, resource will be freed by unrealizing");
result = _mmplayer_unrealize((MMHandleType)player);