libvlc_media_player_stop死锁问题解决
来源:互联网 发布:java游戏 编辑:程序博客网 时间:2024/05/16 15:02
详细的解决方法请参考vlc论坛,
https://forum.videolan.org/viewtopic.php?t=106415
即不在UI线程里调用vlc_XX,另开启新线程来做这些事。
同时也可以参考 http://blog.csdn.net/raymond_lu_rl/article/details/7528936
最近使用libvlc时碰到这个问题。google了一下。在官方论坛上也很多人碰到这个问题。但是都没有提供比较好的解决办法。
VLC社区的人本来时间就不多,有限的精力都花在VLC本身上了,没有空理会libvlc上出现的问题。
除非哪天整个VLC都在libvlc上搭建,社区的人才会把精力放在libvlc上,呵呵。
还好是开源的,接下来只能自己看源码摸索了。
后面发现原来是调用libvlc_media_player_stop时发生死锁了。
通常出现libvlc_media_player_stop函数挂起时,我们都设置了回调函数,包括display、stop event之类的回调函数。
由于回调函数和我们调用的libvlc_media_player_stop函数通常不在同一个线程上。由于libvlc_media_player_stop函数中需要互斥锁资源,如果在回调函数中调用了libvlc中需要互斥锁资源的接口时,就会出现死锁的情况。
那么那些接口是需要互斥锁资源的呢?
其实,我们不用管这么多,只需要保持在回调函数中不调用libvlc的其他接口就好了。或者在调用接口时做好和其他线程的同步处理,让多个线程进行接口调用时不要出现资源竞争就好了。
当然在进行同步的时候要优先采用无锁的机制,保证效率的同时又避免引入潜在的死锁。
- libvlc_media_player_stop死锁问题解决
- oracle 死锁问题解决
- mysql 死锁问题解决
- Oracle死锁问题解决点滴
- SQLSERVER2005 死锁问题解决
- postgresql 死锁问题解决记录
- oracle编译死锁问题解决
- postgresql 死锁问题解决记录
- 线程退出死锁的问题解决
- mysql 的一个死锁问题解决
- MySQL一次死锁问题解决记录
- JS->Applet->JS导致死锁问题解决过程
- 两个文本框的死锁问题解决方案
- 两个文本框的死锁问题解决方案
- json 封装避免死锁的问题解决
- 分享一个MySQL死锁问题解决的方法
- 调用libvlc_media_player_stop经常会导致程序挂起
- 调用libvlc_media_player_stop经常会导致程序挂起
- Android Canvas
- Android中VR全景图项目配置环境和具体项目Demo
- leetcode-11. Container With Most Water
- JSpatch被苹果封杀,RN (React Native) 会不会就此终结,无缘Apple?
- javascript 定义对象、方法和属性的使用方法(prototype)
- libvlc_media_player_stop死锁问题解决
- webpack的简单使用(一)
- 【WCF】错误处理(一):FaultException 与 FaultReason 的搭配
- 蓝桥杯——算法训练 判定字符位置(Vip试题)
- 201512-2 消除类游戏
- css复习及flex布局
- 微软caffe-SSD的训练和预测(windows cpu)
- div的控制
- spring 跨域问题CORS