From 234b47ed369d013093b79f8363075d1d7dd7d4b0 Mon Sep 17 00:00:00 2001 From: Younghwan Ahn Date: Wed, 1 May 2013 20:08:15 +0900 Subject: [PATCH] disconnect all signal handler if failed to change in paused Change-Id: I24261df1d58eb5aba37790eb6bb30dc4ef5dd63b --- packaging/libmm-player.spec | 2 +- src/mm_player_priv.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packaging/libmm-player.spec b/packaging/libmm-player.spec index 63d12a4..50dd46d 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.2.19 +Version: 0.2.20 Release: 0 Group: System/Libraries License: Apache-2.0 diff --git a/src/mm_player_priv.c b/src/mm_player_priv.c index 4a474bc..8659350 100755 --- a/src/mm_player_priv.c +++ b/src/mm_player_priv.c @@ -478,6 +478,9 @@ __mmplayer_gst_set_state (mm_player_t* player, GstElement * element, GstState s if ( ret == GST_STATE_CHANGE_FAILURE || ( state != element_state ) ) { + if (MMPLAYER_CURRENT_STATE(player) == MM_PLAYER_STATE_READY) + __mmplayer_release_signal_connection( player ); + debug_error("failed to change [%s] element state to [%s] within %d sec\n", GST_ELEMENT_NAME(element), gst_element_state_get_name(state), timeout ); @@ -9214,7 +9217,7 @@ __mmplayer_dump_pipeline_state( mm_player_t* player ) gst_element_get_state(GST_ELEMENT (item),&state, &pending,time); factory = gst_element_get_factory (item) ; - if (!factory) + if (factory) { debug_error("%s:%s : From:%s To:%s refcount : %d\n", GST_OBJECT_NAME(factory) , GST_ELEMENT_NAME(item) , gst_element_state_get_name(state), gst_element_state_get_name(pending) , GST_OBJECT_REFCOUNT_VALUE(item)); @@ -9240,7 +9243,7 @@ __mmplayer_dump_pipeline_state( mm_player_t* player ) factory = gst_element_get_factory (item) ; - if (!factory) + if (factory) { debug_error("%s:%s : From:%s To:%s refcount : %d\n", GST_OBJECT_NAME(factory), @@ -10279,6 +10282,7 @@ __mmplayer_release_signal_connection(mm_player_t* player) debug_fenter(); return_if_fail( player ); + return_if_fail( player->signals ); for ( ; sig_list; sig_list = sig_list->next ) { -- 2.34.1