<div dir="ltr"><div><div>Hello,<br>I would like to have more info about lock manager provided by libav*.<br><br></div>1. Which funtions if libav* use it and when is it recommended to use?<br></div>2. Is the following implementation correct (it uses pthread)?<br>
<div><div><br clear="all"><span style="font-family:courier new,monospace">int myLockManager(void** mutex, AVLockOp op)<br>{<br>    pthread_mutex_t** pmutex = (pthread_mutex_t**)mutex;<br>   <br>    switch (op) <br>    {<br>
       case AV_LOCK_CREATE: <br>           *pmutex = (pthread_mutex_t*)av_malloc(sizeof(pthread_mutex_t)); <br>           pthread_mutex_init(*pmutex, NULL);<br>           break;<br><br>       case AV_LOCK_OBTAIN:<br>           pthread_mutex_lock(*pmutex);<br>
           break;<br><br>       case AV_LOCK_RELEASE:<br>           pthread_mutex_unlock(*pmutex);<br>           break;<br><br>       case AV_LOCK_DESTROY:<br>           pthread_mutex_destroy(*pmutex);<br>           av_free(*pmutex);<br>
           break;<br>    }<br><br>    return 0;<br>}<br><br></span></div><div><span style="font-family:courier new,monospace">...somewhere in main...<br></span></div><div><span style="font-family:courier new,monospace"><br>
av_lockmgr_register(myLockManager);</span><br><br><br>Thanks,<br></div><div>M<br></div></div></div>