diff options
Diffstat (limited to 'indra')
-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"; |