From 2e524ed9d7e19871e24c1b7159d309ec5f6d04e0 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Tue, 27 Jul 2004 10:23:11 +0000 Subject: [PATCH] Changes to fix multiple thread start. --- src/osgPlugins/quicktime/QuicktimeImageStream.cpp | 3 --- src/osgPlugins/quicktime/QuicktimeImageStream.h | 7 ++++++- src/osgPlugins/quicktime/ReaderWriterQT.cpp | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/osgPlugins/quicktime/QuicktimeImageStream.cpp b/src/osgPlugins/quicktime/QuicktimeImageStream.cpp index 16c042e19..429923ce6 100644 --- a/src/osgPlugins/quicktime/QuicktimeImageStream.cpp +++ b/src/osgPlugins/quicktime/QuicktimeImageStream.cpp @@ -60,9 +60,6 @@ QuicktimeImageStream::QuicktimeImageStream(std::string fileName) : ImageStream() if (!fileName.empty()) setFileName(fileName); - - startThread(); - start(); } diff --git a/src/osgPlugins/quicktime/QuicktimeImageStream.h b/src/osgPlugins/quicktime/QuicktimeImageStream.h index 23307b118..23c46870a 100644 --- a/src/osgPlugins/quicktime/QuicktimeImageStream.h +++ b/src/osgPlugins/quicktime/QuicktimeImageStream.h @@ -51,7 +51,12 @@ namespace osg { virtual const char* className() const { return "QuicktimeImageStream"; } /// Start or continue stream. - virtual void play() { setCmd(THREAD_START); } + virtual void play() + { + if (!isRunning()) start(); + + setCmd(THREAD_START); + } /// Pause stream at current position. virtual void pause() { setCmd(THREAD_STOP); } diff --git a/src/osgPlugins/quicktime/ReaderWriterQT.cpp b/src/osgPlugins/quicktime/ReaderWriterQT.cpp index 8a307b5f3..09824e8bc 100644 --- a/src/osgPlugins/quicktime/ReaderWriterQT.cpp +++ b/src/osgPlugins/quicktime/ReaderWriterQT.cpp @@ -70,7 +70,7 @@ class ReaderWriterQT : public osgDB::ReaderWriter // state on the ImageStream... will integrated as is right now // to get things off the ground. osg::QuicktimeImageStream* moov = new osg::QuicktimeImageStream(fileName); - moov->start(); + moov->play(); return moov; }