summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEunhae Choi <eunhae1.choi@samsung.com>2016-07-07 17:26:26 +0900
committerEunhae Choi <eunhae1.choi@samsung.com>2016-07-07 19:24:41 +0900
commit8e225014f6c12b47e151bc78ff6c1ba9244a4c04 (patch)
tree125fc4fa5f9070a5300e640b5312c1d6bdc9c1ff
parenta2baab8940dd3234d0d032e03561ebe161425921 (diff)
downloadlibmm-player-8e225014f6c12b47e151bc78ff6c1ba9244a4c04.tar.gz
libmm-player-8e225014f6c12b47e151bc78ff6c1ba9244a4c04.tar.bz2
libmm-player-8e225014f6c12b47e151bc78ff6c1ba9244a4c04.zip
Change-Id: I6e44633907796d61d708430d1235b40addae6f7d
-rw-r--r--packaging/libmm-player.spec2
-rw-r--r--src/mm_player_priv.c24
-rw-r--r--src/mm_player_resource.c3
3 files changed, 25 insertions, 4 deletions
diff --git a/packaging/libmm-player.spec b/packaging/libmm-player.spec
index e935fa8..fab2987 100644
--- a/packaging/libmm-player.spec
+++ b/packaging/libmm-player.spec
@@ -1,6 +1,6 @@
Name: libmm-player
Summary: Multimedia Framework Player Library
-Version: 0.5.88
+Version: 0.5.89
Release: 0
Group: Multimedia/Libraries
License: Apache-2.0
diff --git a/src/mm_player_priv.c b/src/mm_player_priv.c
index eaa341b..a84cb77 100644
--- a/src/mm_player_priv.c
+++ b/src/mm_player_priv.c
@@ -1485,6 +1485,13 @@ __mmplayer_gst_callback(GstBus *bus, GstMessage *msg, gpointer data) // @
if (!MMPLAYER_IS_STREAMING(player))
break;
+ /* ignore the buffering messages during building pipeline, *
+ * not to block the main loop */
+ if (MMPLAYER_CURRENT_STATE(player) <= MM_PLAYER_STATE_READY) {
+ LOGW("ignore the buffering msg (state:%d)", MMPLAYER_CURRENT_STATE(player));
+ break;
+ }
+
/* ignore the prev buffering message */
if ((player->streamer) && (player->streamer->is_buffering == FALSE) && (player->streamer->is_buffering_done == TRUE))
{
@@ -2644,6 +2651,23 @@ __mmplayer_gst_decode_pad_added (GstElement *elem, GstPad *pad, gpointer data)
if (stype == MM_DISPLAY_SURFACE_NULL || stype == MM_DISPLAY_SURFACE_REMOTE)
{
LOGD ("no video sink by null surface or multiple track");
+ MMPlayerResourceState resource_state = RESOURCE_STATE_NONE;
+ if (_mmplayer_resource_manager_get_state(&player->resource_manager, &resource_state)
+ == MM_ERROR_NONE)
+ {
+ /* acquire resources for video playing */
+ if (resource_state >= RESOURCE_STATE_PREPARED)
+ {
+ if (_mmplayer_resource_manager_acquire(&player->resource_manager)
+ != MM_ERROR_NONE)
+ {
+ LOGE("could not acquire resources for video playing\n");
+ _mmplayer_resource_manager_unprepare(&player->resource_manager);
+ goto ERROR;
+ }
+ }
+ }
+
gchar *caps_str = gst_caps_to_string(caps);
if (strstr(caps_str, "ST12") || strstr(caps_str, "SN12"))
{
diff --git a/src/mm_player_resource.c b/src/mm_player_resource.c
index b218fee..0ef7d68 100644
--- a/src/mm_player_resource.c
+++ b/src/mm_player_resource.c
@@ -413,7 +413,6 @@ int _mmplayer_resource_manager_acquire(MMPlayerResourceManager *resource_manager
LOGE("- could not acquire resource, ret(%d)\n", ret);
ret = MM_ERROR_RESOURCE_INTERNAL;
}
-#if 0 /* Fix me: Disable below logic temporarily */
else
{
gint64 end_time = g_get_monotonic_time() + MMPLAYER_RESOURCE_ACQUIRE_TIMEOUT*G_TIME_SPAN_SECOND;
@@ -427,8 +426,6 @@ int _mmplayer_resource_manager_acquire(MMPlayerResourceManager *resource_manager
LOGD("- resources are acquired\n");
}
}
-#endif
-
MMPLAYER_RESOURCE_UNLOCK(resource_manager);
}
}