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

Reply via email to