天天看點

裝置通過大華SDK接入EasyCVR,添加預置位出現崩潰是什麼原因?

視訊融合平台EasyCVR可支援多類型裝置、多協定方式接入,包括主流标準協定國标GB/T28181、RTMP、RTSP/Onvif協定等,以及廠家私有協定,如海康SDK、大華SDK、海康Ehome等。平台可将接入的流媒體進行處理及分發,分發的視訊格式包括RTSP、RTMP、FLV、HLS、WebRTC等。

裝置通過大華SDK接入EasyCVR,添加預置位出現崩潰是什麼原因?

今天和大家分享一下我們在對接大華SDK時,添加預置位出現崩潰現象的原因分析及解決方法。

将裝置通過大華SDK接入到EasyCVR視訊融合平台,在添加大華預置位時,出現了程式崩潰現象。登入大華錄影機背景發現,預置位已經設定成功,沒有進行預置點标題修改。如下圖,大華裝置的背景預置點顯示設定成功:

裝置通過大華SDK接入EasyCVR,添加預置位出現崩潰是什麼原因?

原因分析及排查:

1)首先檢視EasyCVR的代碼。先添加預置位,再進行預置位名稱修改,如下所示:

裝置通過大華SDK接入EasyCVR,添加預置位出現崩潰是什麼原因?

這時發現,添加預置位沒有問題,問題出在設定預置點的名稱上。

2)進入c++代碼進行調試。在調試中發現,将添加預置點和修改預置點按照EasyCVR代碼中的設定,當修改預置點名稱時會出現崩潰。如下圖:

裝置通過大華SDK接入EasyCVR,添加預置位出現崩潰是什麼原因?

3)在崩潰之前列印斷點調試。将解析的預置點名稱的位元組數,放到記憶體中檢視,記憶體資料如下:

裝置通過大華SDK接入EasyCVR,添加預置位出現崩潰是什麼原因?

4)在記憶體資料中發現是一個json資料,但是table這個字段數組中,其中數組中有null這個值,是以在解析時會出現程式崩潰現象。