Hi David, change now merged. Cheers, Robert.
On Mon, Jul 26, 2010 at 5:30 PM, David Fries <[email protected]> wrote: > enable thread locking in libavcodec > > This is required for a multithreaded application using ffmpeg from > another thread. > --- > src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp | 33 > ++++++++++++++++++++++++++ > 1 files changed, 33 insertions(+), 0 deletions(-) > > diff --git a/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp > b/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp > index fb1a0dd..28eb31e 100644 > --- a/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp > +++ b/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp > @@ -45,6 +45,9 @@ public: > supportsExtension("sav", "MPEG-4"); > supportsExtension("3gp", "MPEG-4"); > supportsExtension("sdp", "MPEG-4"); > + > + // enable thread locking > + av_lockmgr_register(&lockMgr); > > // Register all FFmpeg formats/codecs > av_register_all(); > @@ -97,6 +100,36 @@ public: > > private: > > + static int lockMgr(void **mutex, enum AVLockOp op) > + { > + // returns are 0 success > + OpenThreads::Mutex **m=(OpenThreads::Mutex**)mutex; > + if (op==AV_LOCK_CREATE) > + { > + *m=new OpenThreads::Mutex; > + return !*m; > + } > + else if (op==AV_LOCK_DESTROY) > + { > + delete *m; > + return 0; > + } > + else if (op==AV_LOCK_OBTAIN) > + { > + (*m)->lock(); > + return 0; > + } > + else if (op==AV_LOCK_RELEASE) > + { > + (*m)->unlock(); > + return 0; > + } > + else > + { > + return -1; > + } > + } > + > }; > > > -- > 1.7.0 > > > _______________________________________________ > osg-submissions mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org > > _______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
