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是不是就正确结束了呢?应该是的,因为没看到报错.内存是不是正确释放了?这个...一时没有分析.

目录
相关文章
|
编解码 Ubuntu
记录一次Gstreamer运行报错排查
记录一次Gstreamer运行报错排查
|
机器学习/深度学习 人工智能 自然语言处理
Informer:用于长序列时间序列预测的新型Transformer
Informer:用于长序列时间序列预测的新型Transformer
2152 0
Informer:用于长序列时间序列预测的新型Transformer
|
安全 Shell Linux
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 重启 reboot命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 重启 reboot命令 使用指南
649 0
服务器上的RTC时间与世界时间不一致解决办法
服务器上的RTC时间与世界时间不一致解决办法
1336 0
|
消息中间件 Java Kafka
如何在Java中实现异步消息处理?
如何在Java中实现异步消息处理?
|
网络协议
逆向学习网络篇:心跳包与TCP服务器
逆向学习网络篇:心跳包与TCP服务器
449 0
|
网络协议 安全 Unix
socat神器解密:网络数据传输的利器
socat神器解密:网络数据传输的利器
855 1
|
数据库连接 API 数据库
SQLite3 数据库 C语言API 打开函数sqlite3_open 详解
SQLite3 数据库 C语言API 打开函数sqlite3_open 详解
671 0
|
算法 搜索推荐 安全
C# | 上位机开发新手指南(八)加密算法——AES
AES——这是在加密算法中相当重要的一种加密方式! 虽然这个世界上已经存在了非对称加密算法(比如RSA、ECC等),但是在对称加密算法中,AES的地位依然相当重要。与非对称加密算法不同,对称加密算法使用的是相同的密钥对数据进行加密和解密,因此其加密和解密速度更快,而且更加高效。而在对称加密算法中,AES是目前最安全、最可靠的加密算法之一,其加密强度和运行效率都非常高。因此,无论是在个人计算机、移动设备,还是在服务器和云计算等领域,AES都被广泛应用于数据的加密和解密过程中。
589 0
C# | 上位机开发新手指南(八)加密算法——AES
|
计算机视觉 C++
【OpenCv • c++】基础边缘检测算子 —— Sobel
【OpenCv • c++】基础边缘检测算子 —— Sobel
1148 0