您当前的位置: 首页 > 

gstreamer/deepstream崩溃记录及分析

柳鲲鹏 发布时间:2019-03-08 20:58:25 ,浏览量:0

  今天专门测试了一下摄像头的断电问题.这个问题以前一直想做,今天终于下决心.这一套视频使用的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是不是就正确结束了呢?应该是的,因为没看到报错.内存是不是正确释放了?这个...一时没有分析.

关注
打赏
1688896170
查看更多评论

柳鲲鹏

暂无认证

  • 0浏览

    0关注

    4641博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0776s