<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>