diff options
| -rw-r--r-- | indra/media_plugins/quicktime/media_plugin_quicktime.cpp | 16 | ||||
| -rw-r--r-- | indra/test_apps/llplugintest/llmediaplugintest.cpp | 18 | 
2 files changed, 23 insertions, 11 deletions
| diff --git a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp index dac0509531..182fab69d0 100644 --- a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp +++ b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp @@ -552,7 +552,7 @@ private:  		processState();  		// see if title arrived and if so, update member variable with contents -		checkTitle(); +		//checkTitle();  		// QT call to see if we are at the end - can't do with controller  		if ( IsMovieDone( mMovieHandle ) ) @@ -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/test_apps/llplugintest/llmediaplugintest.cpp b/indra/test_apps/llplugintest/llmediaplugintest.cpp index d987915bb8..ee27ad77df 100644 --- a/indra/test_apps/llplugintest/llmediaplugintest.cpp +++ b/indra/test_apps/llplugintest/llmediaplugintest.cpp @@ -223,13 +223,16 @@ LLMediaPluginTest::LLMediaPluginTest( int app_window, int window_width, int wind  	resetView();  	// initial media panel +	//const int num_initial_panels = 1; +	//for( int i = 0; i < num_initial_panels; ++i ) +	//{ +	//	//addMediaPanel( mBookmarks[ rand() % ( mBookmarks.size() - 1 ) + 1 ].second ); +	//	addMediaPanel( mHomeWebUrl ); +	//}; + +addMediaPanel( "http://chemicaljump.com/wp-content/uploads/2009/10/lth34/Proxy-8000.mp3" ); +addMediaPanel( "http://movies.apple.com/movies/sony_pictures/zombieland/zombieland-inttlr_h.320.mov" ); -	const int num_initial_panels = 1; -	for( int i = 0; i < num_initial_panels; ++i ) -	{ -		//addMediaPanel( mBookmarks[ rand() % ( mBookmarks.size() - 1 ) + 1 ].second ); -		addMediaPanel( mHomeWebUrl ); -	};  }  //////////////////////////////////////////////////////////////////////////////// @@ -1460,6 +1463,9 @@ std::string LLMediaPluginTest::mimeTypeFromUrl( std::string& url )  	if ( url.find( ".txt" ) != std::string::npos )	// Apple Text descriptors  		mime_type = "video/quicktime";  	else +	if ( url.find( ".mp3" ) != std::string::npos )	// Apple Text descriptors +		mime_type = "video/quicktime"; +	else  	if ( url.find( "example://" ) != std::string::npos )	// Example plugin  		mime_type = "example/example"; | 
