现在的位置: 首页 > 综合 > 正文

opencv中的线程安全问题

2018年05月04日 ⁄ 综合 ⁄ 共 434字 ⁄ 字号 评论关闭

最近做的项目需要实现多线程播放多路视频,但是代码经常会报insufficient thread locking around avcodec_open/close()的错误,因为在机子上貌似也能跑,就暂时没理。

 今天换成在服务器上测试,因为cup速度加快,线程冲突加剧,cvCreateFileCapture((char*)pName)经常返回空指针。opencv官方并没有保证函数都是线程安全的,我估计cvCreateFileCapture的内部实现可能使用了全局变量或者静态变量,需要对cvCreateFileCapture实现同步: 

EnterCriticalSection(&m_cs);
CvCapture* pcapture = cvCreateFileCapture((char*)pName);
LeaveCriticalSection(&m_cs);

insufficient thread locking around avcodec_open/close()的错误就消失了。

抱歉!评论已关闭.