Kaydet (Commit) eb21b682 authored tarafından Caolán McNamara's avatar Caolán McNamara

Related: rhbz#1130264 plausible fix for reported crash

Change-Id: I4ccdf19bfc7986881f7022109f22f47a0f493591
üst 2035b719
...@@ -74,7 +74,9 @@ Player::Player( const uno::Reference< lang::XMultiServiceFactory >& rxMgr ) : ...@@ -74,7 +74,9 @@ Player::Player( const uno::Reference< lang::XMultiServiceFactory >& rxMgr ) :
mpXOverlay( NULL ), mpXOverlay( NULL ),
mnDuration( 0 ), mnDuration( 0 ),
mnWidth( 0 ), mnWidth( 0 ),
mnHeight( 0 ) mnHeight( 0 ),
mnWatchID( 0 ),
mbWatchID( false )
{ {
// Initialize GStreamer library // Initialize GStreamer library
int argc = 1; int argc = 1;
...@@ -127,11 +129,15 @@ void SAL_CALL Player::disposing() ...@@ -127,11 +129,15 @@ void SAL_CALL Player::disposing()
g_object_unref( G_OBJECT ( mpXOverlay ) ); g_object_unref( G_OBJECT ( mpXOverlay ) );
mpXOverlay = NULL; mpXOverlay = NULL;
} }
}
if (mbWatchID)
{
g_source_remove(mnWatchID);
mbWatchID = false;
} }
} }
static gboolean pipeline_bus_callback( GstBus *, GstMessage *message, gpointer data ) static gboolean pipeline_bus_callback( GstBus *, GstMessage *message, gpointer data )
{ {
Player* pPlayer = static_cast<Player*>(data); Player* pPlayer = static_cast<Player*>(data);
...@@ -357,7 +363,13 @@ void Player::preparePlaybin( const OUString& rURL, GstElement *pSink ) ...@@ -357,7 +363,13 @@ void Player::preparePlaybin( const OUString& rURL, GstElement *pSink )
g_object_set( G_OBJECT( mpPlaybin ), "uri", ascURL.getStr() , NULL ); g_object_set( G_OBJECT( mpPlaybin ), "uri", ascURL.getStr() , NULL );
pBus = gst_element_get_bus( mpPlaybin ); pBus = gst_element_get_bus( mpPlaybin );
gst_bus_add_watch( pBus, pipeline_bus_callback, this ); if (mbWatchID)
{
g_source_remove(mnWatchID);
mbWatchID = false;
}
mnWatchID = gst_bus_add_watch( pBus, pipeline_bus_callback, this );
mbWatchID = true;
DBG( "%p set sync handler", this ); DBG( "%p set sync handler", this );
#ifdef AVMEDIA_GST_0_10 #ifdef AVMEDIA_GST_0_10
gst_bus_set_sync_handler( pBus, pipeline_bus_sync_handler, this ); gst_bus_set_sync_handler( pBus, pipeline_bus_sync_handler, this );
......
...@@ -97,6 +97,9 @@ protected: ...@@ -97,6 +97,9 @@ protected:
int mnWidth; int mnWidth;
int mnHeight; int mnHeight;
guint mnWatchID;
bool mbWatchID;
osl::Condition maSizeCondition; osl::Condition maSizeCondition;
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment