gstreamer/deepstream崩溃记录及分析

简介: gstreamer/deepstream崩溃记录及分析

今天专门测试了一下摄像头的断电问题.这个问题以前一直想做,今天终于下决心.这一套视频使用的gstreamer/deepstream.如前文所说的结束方法,结束代码如下:

gst_element_set_state(pipeline,      GST_STATE_NULL);
gst_object_unref(pipeline);

如果摄像头已启动完成,再启动程序,这两句是可以正常执行的.


 如果摄像头没加电,启动程序,自然会报错.然后在结束时,gst_element_set_state(pipeline, GST_STATE_NULL)会导致崩溃.分析了一下core,并进行了测试,确定是nvidia的解码器插件(nvdec_h264)在释放时崩溃.也就是说,此时如果gst_element_set_state(nvdec_h264, GST_STATE_NULL),照样引起崩溃.



 怎么办?吾有两个办法:


 先ping一下摄像头,成功了再启动任务.这样就可以彻底避免这个问题.


 加一个探头,收到解码调用时记录一下时间.这样结束时就可以判断一下.


 需要重复的是,即使是正常结束,nvidia的解码器插件(nvdec_h264)大约有100MB的显存没有释放.这个真没办法.


 那么gstreamer是不是就正确结束了呢?应该是的,因为没看到报错.内存是不是正确释放了?这个...一时没有分析.


目录
相关文章
|
Web App开发 监控 Linux
linux下motion摄像头监控编译与配置
利用linxu下的开源的motion搭建嵌入式视频动态监控系统 所谓移动图像监测,简单来说就是利用摄像头定点监测某个区域,当有移动物体经过时,摄像头便自动抓拍(要监测多大物体、按拍照速率都是可调的),并把拍到的图像存储在指定目录,实现无人监控功能。
2487 0
|
3月前
|
Linux
crash工具使用 —— 查看DMI信息
crash工具使用 —— 查看DMI信息
|
7月前
|
Java 数据安全/隐私保护 C++
bugly崩溃排查2:luajit编译调试
bugly崩溃排查2:luajit编译调试
150 0
|
Shell Android开发
Magisk模块:优化安卓碎片化2.0(循环版)fstrim-模块调用magisk自带的busybox.sh(重启生效)
Magisk模块:优化安卓碎片化2.0(循环版)fstrim-模块调用magisk自带的busybox.sh(重启生效)
1000 1
Magisk模块:优化安卓碎片化2.0(循环版)fstrim-模块调用magisk自带的busybox.sh(重启生效)
gstreamer/deepstream崩溃记录及分析
gstreamer/deepstream崩溃记录及分析
194 0
|
Linux
LINUX doubango编译详细过程记录
LINUX doubango编译详细过程记录
109 0
gstreamer正确的结束办法
gstreamer正确的结束办法
196 0
gstreamer 1.8.3 编译记录
gstreamer 1.8.3 编译记录
117 0
|
网络安全 开发工具
FreeSWITCH线上一次Crashes分析定位过程-ldns库问题
线上一次Crashes分析定位过程-ldns库问题
|
编解码 Linux
LINUX FFMPEG编译详细过程记录(最全)
LINUX FFMPEG编译详细过程记录(最全)
293 0