summaryrefslogtreecommitdiff
path: root/indra/media_plugins
diff options
context:
space:
mode:
Diffstat (limited to 'indra/media_plugins')
-rw-r--r--indra/media_plugins/quicktime/media_plugin_quicktime.cpp28
-rw-r--r--indra/media_plugins/webkit/media_plugin_webkit.cpp15
2 files changed, 25 insertions, 18 deletions
diff --git a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp
index dac0509531..236f79978d 100644
--- a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp
+++ b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp
@@ -531,13 +531,13 @@ private:
// this wasn't required in 1.xx viewer but we have to manually
// work the Windows message pump now
#if defined( LL_WINDOWS )
- MSG msg;
- while ( PeekMessage( &msg, NULL, 0, 0, PM_NOREMOVE ) )
- {
- GetMessage( &msg, NULL, 0, 0 );
- TranslateMessage( &msg );
- DispatchMessage( &msg );
- };
+ MSG msg;
+ while ( PeekMessage( &msg, NULL, 0, 0, PM_NOREMOVE ) )
+ {
+ GetMessage( &msg, NULL, 0, 0 );
+ TranslateMessage( &msg );
+ DispatchMessage( &msg );
+ };
#endif
MCIdle( mMovieController );
@@ -718,18 +718,24 @@ private:
// find the size of the title
ByteCount size;
result = QTMetaDataGetItemValue( media_data_ref, item, NULL, 0, &size );
- if ( noErr != result || size <= 0 )
+ if ( noErr != result || size <= 0 /*|| size > 1024 FIXME: arbitrary limit */ )
return false;
// allocate some space and grab it
- UInt8* item_data = new UInt8( size );
- memset( item_data, 0, size * sizeof( UInt8* ) );
+ UInt8* item_data = new UInt8( size + 1 );
+ memset( item_data, 0, ( size + 1 ) * sizeof( UInt8* ) );
result = QTMetaDataGetItemValue( media_data_ref, item, item_data, size, NULL );
if ( noErr != result )
+ {
+ delete [] item_data;
return false;
+ };
// save it
- mMovieTitle = std::string( (char* )item_data );
+ if ( strlen( (char*)item_data ) )
+ mMovieTitle = std::string( (char* )item_data );
+ else
+ mMovieTitle = "";
// clean up
delete [] item_data;
diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp
index 1e79720f43..09348782a4 100644
--- a/indra/media_plugins/webkit/media_plugin_webkit.cpp
+++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp
@@ -296,7 +296,7 @@ private:
// virtual
void onNavigateBegin(const EventType& event)
{
- if(mInitState > INIT_STATE_NAVIGATE_COMPLETE)
+ if(mInitState >= INIT_STATE_NAVIGATE_COMPLETE)
{
LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "navigate_begin");
message.setValue("uri", event.getEventUri());
@@ -304,7 +304,8 @@ private:
setStatus(STATUS_LOADING);
}
- else if(mInitState == INIT_STATE_NAVIGATE_COMPLETE)
+
+ if(mInitState == INIT_STATE_NAVIGATE_COMPLETE)
{
mInitState = INIT_STATE_WAIT_REDRAW;
}
@@ -315,7 +316,7 @@ private:
// virtual
void onNavigateComplete(const EventType& event)
{
- if(mInitState > INIT_STATE_NAVIGATE_COMPLETE)
+ if(mInitState >= INIT_STATE_NAVIGATE_COMPLETE)
{
LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "navigate_complete");
message.setValue("uri", event.getEventUri());
@@ -338,7 +339,7 @@ private:
// virtual
void onUpdateProgress(const EventType& event)
{
- if(mInitState > INIT_STATE_NAVIGATE_COMPLETE)
+ if(mInitState >= INIT_STATE_NAVIGATE_COMPLETE)
{
LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "progress");
message.setValueS32("percent", event.getIntValue());
@@ -350,7 +351,7 @@ private:
// virtual
void onStatusTextChange(const EventType& event)
{
- if(mInitState > INIT_STATE_NAVIGATE_COMPLETE)
+ if(mInitState >= INIT_STATE_NAVIGATE_COMPLETE)
{
LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "status_text");
message.setValue("status", event.getStringValue());
@@ -362,7 +363,7 @@ private:
// virtual
void onTitleChange(const EventType& event)
{
- if(mInitState > INIT_STATE_NAVIGATE_COMPLETE)
+ if(mInitState >= INIT_STATE_NAVIGATE_COMPLETE)
{
LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "name_text");
message.setValue("name", event.getStringValue());
@@ -374,7 +375,7 @@ private:
// virtual
void onLocationChange(const EventType& event)
{
- if(mInitState > INIT_STATE_NAVIGATE_COMPLETE)
+ if(mInitState >= INIT_STATE_NAVIGATE_COMPLETE)
{
LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "location_changed");
message.setValue("uri", event.getEventUri());