diff options
Diffstat (limited to 'indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp')
| -rw-r--r-- | indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp | 58 | 
1 files changed, 30 insertions, 28 deletions
diff --git a/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp b/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp index 4c2dd64bb6..033c4ba2f3 100644 --- a/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp +++ b/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp @@ -986,33 +986,6 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string)  				message.setValue("plugin_version", getVersion());  				sendMessage(message); - -				// Plugin gets to decide the texture parameters to use. -				message.setMessage(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params"); -				// lame to have to decide this now, it depends on the movie.  Oh well. -				mDepth = 4; - -				mCurrentWidth = 1; -				mCurrentHeight = 1; -				mPreviousWidth = 1; -				mPreviousHeight = 1; -				mNaturalWidth = 1; -				mNaturalHeight = 1; -				mWidth = 1; -				mHeight = 1; -				mTextureWidth = 1; -				mTextureHeight = 1; - -				message.setValueU32("format", GL_RGBA); -				message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8_REV); - -				message.setValueS32("depth", mDepth); -				message.setValueS32("default_width", mWidth); -				message.setValueS32("default_height", mHeight); -				message.setValueU32("internalformat", GL_RGBA8); -				message.setValueBoolean("coords_opengl", true);	// true == use OpenGL-style coordinates, false == (0,0) is upper left. -				message.setValueBoolean("allow_downsample", true); // we respond with grace and performance if asked to downscale -				sendMessage(message);  			}  			else if(message_name == "idle")  			{ @@ -1077,7 +1050,36 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string)  		}  		else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA)  		{ -			if(message_name == "size_change") +			if(message_name == "init") +			{ +				// Plugin gets to decide the texture parameters to use. +				LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params"); +				// lame to have to decide this now, it depends on the movie.  Oh well. +				mDepth = 4; + +				mCurrentWidth = 1; +				mCurrentHeight = 1; +				mPreviousWidth = 1; +				mPreviousHeight = 1; +				mNaturalWidth = 1; +				mNaturalHeight = 1; +				mWidth = 1; +				mHeight = 1; +				mTextureWidth = 1; +				mTextureHeight = 1; + +				message.setValueU32("format", GL_RGBA); +				message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8_REV); + +				message.setValueS32("depth", mDepth); +				message.setValueS32("default_width", mWidth); +				message.setValueS32("default_height", mHeight); +				message.setValueU32("internalformat", GL_RGBA8); +				message.setValueBoolean("coords_opengl", true);	// true == use OpenGL-style coordinates, false == (0,0) is upper left. +				message.setValueBoolean("allow_downsample", true); // we respond with grace and performance if asked to downscale +				sendMessage(message); +			} +			else if(message_name == "size_change")  			{  				std::string name = message_in.getValue("name");  				S32 width = message_in.getValueS32("width");  | 
