From 6f00685ab63c884bbd94e613c872acabaedc285a Mon Sep 17 00:00:00 2001 From: Eunhae Choi Date: Fri, 28 Oct 2016 14:06:08 +0900 Subject: [PATCH] [0.6.8] do not check bus err msg if the error is already posted Change-Id: I5fe6b4acce0522b3f2fc15b5e4d12933cce35ced --- packaging/libmm-player.spec | 2 +- src/mm_player_priv.c | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/packaging/libmm-player.spec b/packaging/libmm-player.spec index fb09a13..2c9ff87 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.6.7 +Version: 0.6.8 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/mm_player_priv.c b/src/mm_player_priv.c index de792b3..aa57339 100644 --- a/src/mm_player_priv.c +++ b/src/mm_player_priv.c @@ -7442,14 +7442,18 @@ int __gst_pause(mm_player_t* player, gboolean async) // @ LOGE("failed to set state to PAUSED"); + if (player->msg_posted) { + LOGE("error msg is already posted."); + return ret; + } + timer = g_timer_new(); g_timer_start(timer); GstBus *bus = gst_pipeline_get_bus(GST_PIPELINE(player->pipeline->mainbin[MMPLAYER_M_PIPE].gst)); - gboolean got_msg = FALSE; - /* check if gst error posted or not */ + do { - msg = gst_bus_timed_pop(bus, GST_SECOND / 2); + msg = gst_bus_timed_pop(bus, 100 * GST_MSECOND); if (msg) { if (GST_MESSAGE_TYPE(msg) == GST_MESSAGE_ERROR) { GError *error = NULL; @@ -7475,13 +7479,11 @@ int __gst_pause(mm_player_t* player, gboolean async) // @ else if (error->domain == GST_CORE_ERROR) ret = __gst_handle_core_error(player, error->code); } - - got_msg = TRUE; player->msg_posted = TRUE; } gst_message_unref(msg); } - } while (!got_msg && (g_timer_elapsed(timer, NULL) < MAX_TIMEOUT_SEC)); + } while (!player->msg_posted && (g_timer_elapsed(timer, NULL) < MAX_TIMEOUT_SEC)); /* clean */ gst_object_unref(bus); g_timer_stop(timer); -- 2.7.4