Index: /OpenSceneGraph/trunk/src/osgPlugins/quicktime/MovieData.h
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/quicktime/MovieData.h (revision 8792)
+++ /OpenSceneGraph/trunk/src/osgPlugins/quicktime/MovieData.h (revision 9932)
@@ -100,5 +100,4 @@
         protected:
             char*           _pointer;
-            short           _resref;
             Movie           _movie;
             GWorldPtr       _gw;
Index: /OpenSceneGraph/trunk/src/osgPlugins/quicktime/ReaderWriterQT.cpp
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/quicktime/ReaderWriterQT.cpp (revision 9769)
+++ /OpenSceneGraph/trunk/src/osgPlugins/quicktime/ReaderWriterQT.cpp (revision 9932)
@@ -132,4 +132,5 @@
         supportsExtension("dv","Movie format");
         supportsExtension("avi","Movie format");
+        supportsExtension("sdp","RTSP Movie format");
         supportsExtension("flv","Movie format");
         supportsExtension("swf","Movie format");
@@ -137,4 +138,7 @@
 
         supportsExtension("live","Live video streaming");
+        
+        supportsProtocol("http", "streaming media per http");
+        supportsProtocol("rtsp", "streaming media per rtsp");
 
         #ifdef QT_HANDLE_IMAGES_ALSO
@@ -168,4 +172,5 @@
          osgDB::equalCaseInsensitive(extension,"dv")  ||
          osgDB::equalCaseInsensitive(extension,"avi") ||
+         osgDB::equalCaseInsensitive(extension,"sdp") ||
          osgDB::equalCaseInsensitive(extension,"flv") ||
          osgDB::equalCaseInsensitive(extension,"swf") ||
@@ -295,7 +300,8 @@
 
       // Not an encoded "live" psuedo file - so check a real file exists
-      std::string fileName = osgDB::findDataFile( file,  options);
-      if (fileName.empty()) return ReadResult::FILE_NOT_FOUND;
-
+      // only find the file if it isn't a URL
+      std::string fileName = file;
+      
+      
       // Note from Riccardo Corsi 
       // Quicktime initialization is done here, when a media is found
@@ -309,4 +315,10 @@
       if (acceptsMovieExtension(ext))
       {
+         // quicktime supports playing movies from URLs
+         if (!osgDB::containsServerAddress(fileName)) {
+             fileName = osgDB::findDataFile( file,  options);
+            if (fileName.empty()) return ReadResult::FILE_NOT_FOUND;
+         }
+         
          // note from Robert Osfield when integrating, we should probably have so
          // error handling mechanism here.  Possibly move the load from
@@ -322,5 +334,11 @@
          return moov;
       }
- 
+        
+        
+        // no live-video, no movie-file, so try to load as an image
+        
+        fileName = osgDB::findDataFile( file,  options);
+        if (fileName.empty()) return ReadResult::FILE_NOT_FOUND;
+            
         QuicktimeImportExport importer;
 
Index: /OpenSceneGraph/trunk/src/osgPlugins/quicktime/QTUtils.cpp
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/quicktime/QTUtils.cpp (revision 9769)
+++ /OpenSceneGraph/trunk/src/osgPlugins/quicktime/QTUtils.cpp (revision 9932)
@@ -7,58 +7,2 @@
  *
  */
-#include <osg/ref_ptr>
-#include <osg/Referenced>
-#include <osg/Notify>
-#include "QTUtils.h"
-#include "osgDB/Registry"
-
-
-using namespace std;
-
-
-    // ---------------------------------------------------------------------------
-    // MakeFSSPecFromPath
-    // wandelt einen Posix-Pfad in ein FSSpec um.
-    // ---------------------------------------------------------------------------
-    OSStatus MakeFSSpecFromPath(const char* path, FSSpec* spec) {
-#ifdef __APPLE__
-        OSStatus err;
-        FSRef fsref;
-        Boolean isdir;
-          /*
-           FSPathMakeRef is only available in Carbon.  It takes a POSIX path and
-           tries to convert it into a MacOS FSRef object.
-           We don't want folders, only files, so we'll fail here if we got a
-           directory.
-           */
-        err = FSPathMakeRef((const UInt8*)path, &fsref, &isdir);
-        if (err!=0) return err;
-        if (isdir) return 1;
-          // Ditto
-        err = FSGetCatalogInfo(&fsref, kFSCatInfoNone, NULL, NULL, spec, NULL);
-        return err;
-#else
-        return -1;
-#endif
-    }
-
-    // ---------------------------------------------------------------------------
-    // MakeMovieFromPath
-    // ---------------------------------------------------------------------------
-    OSStatus MakeMovieFromPath(const char* path, Movie* movie, short& resref) {
-        OSStatus err;
-        FSSpec   spec;
-#ifdef __APPLE__
-        MakeFSSpecFromPath(path, &spec);
-#else
-        err = NativePathNameToFSSpec((char*)path, &spec, 0 /* flags */);
-#endif
-        err = OpenMovieFile(&spec, &resref, fsRdPerm);
-        if (err!=0) return err;
-        err = NewMovieFromFile(movie, resref, NULL, NULL, 0, NULL);
-        if (err==0) err=GetMoviesError();
-        return err;
-    }
-
-
-
Index: /OpenSceneGraph/trunk/src/osgPlugins/quicktime/MovieData.cpp
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/quicktime/MovieData.cpp (revision 8792)
+++ /OpenSceneGraph/trunk/src/osgPlugins/quicktime/MovieData.cpp (revision 9932)
@@ -29,5 +29,4 @@
 
     if (_movie) {
-        CloseMovieFile(_resref);
         DisposeMovie(_movie);
     }
@@ -39,18 +38,61 @@
 void MovieData::load(osg::Image* image, std::string afilename, float startTime)
 {
+    bool isUrl( osgDB::containsServerAddress(afilename) );
+    
+    std::string filename = afilename;
+    if (!isUrl) {
+        if (!osgDB::isFileNameNativeStyle(filename)) 
+            filename = osgDB::convertFileNameToNativeStyle(filename);
+    }
+    
+    image->setFileName(filename);
+    
+
+    QTNewMoviePropertyElement newMovieProperties[2];
+    CFStringRef movieLocation = CFStringCreateWithCString(NULL, filename.c_str(), kCFStringEncodingUTF8);
+    CFURLRef movieURL(NULL);
+    Boolean trueValue = true;
+
+    newMovieProperties[0].propClass = kQTPropertyClass_DataLocation;
+    if (!isUrl) 
+    {
+        #ifdef __APPLE__
+            newMovieProperties[0].propID = kQTDataLocationPropertyID_CFStringPosixPath;
+        #else
+            newMovieProperties[0].propID = kQTDataLocationPropertyID_CFStringWindowsPath;
+        #endif
+        
+        newMovieProperties[0].propValueSize = sizeof(CFStringRef);
+        newMovieProperties[0].propValueAddress = &movieLocation;
+    } 
+    else 
+    {
+        movieURL = CFURLCreateWithString(kCFAllocatorDefault, movieLocation, NULL);
+        
+        newMovieProperties[0].propID = kQTDataLocationPropertyID_CFURL;
+        newMovieProperties[0].propValueSize = sizeof(movieURL);
+        newMovieProperties[0].propValueAddress = (void*)&movieURL;
+    }
+
+    // make movie active
+    newMovieProperties[1].propClass = kQTPropertyClass_NewMovieProperty;
+    newMovieProperties[1].propID = kQTNewMoviePropertyID_Active;
+    newMovieProperties[1].propValueSize = sizeof(trueValue);
+    newMovieProperties[1].propValueAddress = &trueValue;
+    
+    // Instantiate the Movie
+    OSStatus status = NewMovieFromProperties(2, newMovieProperties, 0, NULL, &_movie);
+    CFRelease(movieLocation);
+    if (movieURL) CFRelease(movieURL);
+    
+    if (status !=0) {
+        _fError = true;
+        osg::notify(osg::FATAL) << " MovieData :: NewMovieFromProperties failed with err " << status<< std::endl;
+        return;
+    }
+    
+    
     Rect bounds;
-    std::string filename = afilename;
-    if (!osgDB::isFileNameNativeStyle(filename)) 
-        filename = osgDB::convertFileNameToNativeStyle(filename);
-
-    osg::notify(osg::INFO) << "MovieData :: opening movie '" << filename << "'" << std::endl;
-    
-    OSStatus err = MakeMovieFromPath(filename.c_str(), &_movie, _resref);
-    if (err !=0) {
-        _fError = true;
-        osg::notify(osg::FATAL) << " MovieData :: MakeMovieFromPath failed with err " << err << std::endl;
-        return;
-    }
-
+ 
     GetMovieBox(_movie, &bounds);
     _checkMovieError("Can't get movie box\n");
Index: /OpenSceneGraph/trunk/src/osgPlugins/quicktime/QTUtils.h
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/quicktime/QTUtils.h (revision 9769)
+++ /OpenSceneGraph/trunk/src/osgPlugins/quicktime/QTUtils.h (revision 9932)
@@ -51,9 +51,4 @@
 #endif
     
-    /** constructs an FSSpec out of an path */
-     OSStatus MakeFSSpecFromPath(const char* path, FSSpec* spec);
-    
-    /** opens a movie from a path */
-      OSStatus MakeMovieFromPath(const char* path, Movie* movie, short& resref);
 
 
