Fixed double thread start problem.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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); }
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user