Thank you for all of your responses, it works like a charm! :)<div><br></div><div><div>static int ff_lockmgr(void **mutex, enum AVLockOp op) </div><div>{ </div><div>   pthread_mutex_t** pmutex = (pthread_mutex_t**) mutex;</div>
<div>   switch (op) {</div><div>   case AV_LOCK_CREATE: </div><div>      *pmutex = (pthread_mutex_t*) malloc(sizeof(pthread_mutex_t)); </div><div>       pthread_mutex_init(*pmutex, NULL);</div><div>       break;</div><div>
   case AV_LOCK_OBTAIN:</div><div>       pthread_mutex_lock(*pmutex);</div><div>       break;</div><div>   case AV_LOCK_RELEASE:</div><div>       pthread_mutex_unlock(*pmutex);</div><div>       break;</div><div>   case AV_LOCK_DESTROY:</div>
<div>       pthread_mutex_destroy(*pmutex);</div><div>       free(*pmutex);</div><div>       break;</div><div>   }</div><div>   return 0;</div><div>}</div><div><br></div><div>-- </div><div>Karoly Horvath</div><div><a href="http://softwaredevel.wikispaces.com/">http://softwaredevel.wikispaces.com/</a></div>
<div><br></div><br><div class="gmail_quote">On Thu, Nov 10, 2011 at 10:13 AM, Hendrik Leppkes <span dir="ltr"><<a href="mailto:h.leppkes@gmail.com">h.leppkes@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi,<br>
<div class="im"><br>
On Thu, Nov 10, 2011 at 2:07 AM, Karthik Kailash<br>
<<a href="mailto:karthik@freestreammedia.com">karthik@freestreammedia.com</a>> wrote:<br>
> Is there an example of how to use av_lockmgr_register()?  I am not 100%<br>
> clear upon reading the documentation of what the callback function that I<br>
> pass in is supposed to do.<br>
<br>
</div>This is my implementation of the lockmgr using the Windows Critical<br>
Sections. It may not apply to you, but it does give you an idea what<br>
to do.<br>
Error checking was left out for brevity.<br>
<br>
static int ff_lockmgr(void **mutex, enum AVLockOp op)<br>
{<br>
        CRITICAL_SECTION **critSec = (CRITICAL_SECTION **)mutex;<br>
        switch (op) {<br>
        case AV_LOCK_CREATE:<br>
                *critSec = new CRITICAL_SECTION();<br>
                InitializeCriticalSection(*critSec);<br>
                break;<br>
        case AV_LOCK_OBTAIN:<br>
                EnterCriticalSection(*critSec);<br>
                break;<br>
        case AV_LOCK_RELEASE:<br>
                LeaveCriticalSection(*critSec);<br>
                break;<br>
        case AV_LOCK_DESTROY:<br>
                DeleteCriticalSection(*critSec);<br>
                delete *critSec;<br>
                break;<br>
        }<br>
        return 0;<br>
<div><div></div><div class="h5">}<br>
_______________________________________________<br>
Libav-user mailing list<br>
<a href="mailto:Libav-user@ffmpeg.org">Libav-user@ffmpeg.org</a><br>
<a href="http://ffmpeg.org/mailman/listinfo/libav-user" target="_blank">http://ffmpeg.org/mailman/listinfo/libav-user</a><br>
</div></div></blockquote></div><br></div>