diff options
| author | Tofu Linden <tofu.linden@lindenlab.com> | 2010-06-13 12:36:02 +0100 | 
|---|---|---|
| committer | Tofu Linden <tofu.linden@lindenlab.com> | 2010-06-13 12:36:02 +0100 | 
| commit | 818e970b3efe65f6e471d071ae5f01603f61da79 (patch) | |
| tree | 3619d88268654a96cb37e3490c702d79252ebca5 | |
| parent | b228915d1f45dc6d2c88a9381957b904410428f8 (diff) | |
SNOW-541 PARTIAL GSTREAMER fail to load (slplugin?)
Robustify the plugin a bunch more, and turn off a dodgy-and-unused visualization feature.
(transplanted from 43273f751dac21d53dba83a90d7f9e057865f789)
| -rw-r--r-- | indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp | 28 | 
1 files changed, 21 insertions, 7 deletions
| diff --git a/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp b/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp index 033c4ba2f3..e6d2ad3edc 100644 --- a/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp +++ b/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp @@ -544,8 +544,12 @@ MediaPluginGStreamer010::pause()  {  	DEBUGMSG("pausing media...");  	// todo: error-check this? -	llgst_element_set_state(mPlaybin, GST_STATE_PAUSED); -	return true; +	if (mDoneInit && mPlaybin) +	{ +		llgst_element_set_state(mPlaybin, GST_STATE_PAUSED); +		return true; +	} +	return false;  }  bool @@ -553,8 +557,12 @@ MediaPluginGStreamer010::stop()  {  	DEBUGMSG("stopping media...");  	// todo: error-check this? -	llgst_element_set_state(mPlaybin, GST_STATE_READY); -	return true; +	if (mDoneInit && mPlaybin) +	{ +		llgst_element_set_state(mPlaybin, GST_STATE_READY); +		return true; +	} +	return false;  }  bool @@ -564,8 +572,12 @@ MediaPluginGStreamer010::play(double rate)          DEBUGMSG("playing media... rate=%f", rate);  	// todo: error-check this? -	llgst_element_set_state(mPlaybin, GST_STATE_PLAYING); -	return true; +	if (mDoneInit && mPlaybin) +	{ +		llgst_element_set_state(mPlaybin, GST_STATE_PLAYING); +		return true; +	} +	return false;  }  bool @@ -608,7 +620,7 @@ bool  MediaPluginGStreamer010::getTimePos(double &sec_out)  {  	bool got_position = false; -	if (mPlaybin) +	if (mDoneInit && mPlaybin)  	{  		gint64 pos;  		GstFormat timefmt = GST_FORMAT_TIME; @@ -688,6 +700,7 @@ MediaPluginGStreamer010::load()  					   this);  	llgst_object_unref (bus); +#if 0 // not quite stable/correct yet  	// get a visualizer element (bonus feature!)  	char* vis_name = getenv("LL_GST_VIS_NAME");  	if (!vis_name || @@ -714,6 +727,7 @@ MediaPluginGStreamer010::load()  			}  		}  	} +#endif  	if (NULL == getenv("LL_GSTREAMER_EXTERNAL")) {  		// instantiate a custom video sink | 
