Fixed double thread start problem.

This commit is contained in:
Robert Osfield
2004-07-27 09:04:56 +00:00
parent 8837d667f0
commit a4f93740d1
3 changed files with 8 additions and 4 deletions

View File

@@ -57,8 +57,6 @@ MpegImageStream::MpegImageStream(const char* fileName) : ImageStream()
if (fileName)
setFileName(fileName);
startThread();
}
@@ -269,6 +267,7 @@ void MpegImageStream::run()
0, 0, _s, _t,
_s, _t,
MPEG3_RGB888, str);
dirty(); //Image();
++frameNumber;

View File

@@ -52,7 +52,12 @@ namespace osg {
virtual const char* className() const { return "MpegImageStream"; }
/// 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); }

View File

@@ -30,7 +30,7 @@ class ReaderWriterMPEG : public osgDB::ReaderWriter
if (fileName.empty()) return ReadResult::FILE_NOT_FOUND;
osg::MpegImageStream* mpeg = new osg::MpegImageStream(fileName.c_str());
mpeg->start();
mpeg->play();
return mpeg;
}