背景:本人最近有一项目要链接IP摄像头,市场上两大主流厂商为海康与大华,SDK成熟,很容易就能链接并取流。链接好海康与大华后,由于公司也有本身的IPC,也须要把公司的IPC链接上。ide
经历:拿到公司IPC SDK与demo后,就开始按海康大华的链接思路工做了。链接类写好后,经测试,问题就来了:链接一直有问题,不是解码库抛异常,就是登陆得了但回调不了视频流。很困惑....与库开发人员联系,他们坚信库没问题,而我测试又一直有问题。最后没办法,写了个demo证实问题的存在发给库开发人员测试。函数
一天过去了,通过几回交流,问题找到了,库彻底没问题,是个人调用方法错了。Demo的调用方法是正确的,只是我没仔细按照里面的方法调用。测试
缘由:我按海康大华的思路进行编写调用,而公司的IPC与它们有些不一样,我没仔细看就栽在这里头。spa
海康大华调用方法(以大华代码为例):调试
登陆成功获得ID luserid_;视频
使用PLAY_GetFreePort(&lplayport_)获得播放器的播放端口lplayport_;blog
PLAY_SetDecCallBackEx(传入lplayport_)设置播放器的回调函数,在此回调中获得视频流数据。开发
CLIENT_RealPlay(传入luserid_)启动预览获得预览句柄lrealplay_;get
CLIENT_SetRealDataCallBackEx(传入lrealplay_)设置回调函数回调函数
回调函数中调用PLAY_InputData(传入lplayport_)把流数据压入给播放器解码。
公司IPC调用方法:
登陆成功获得ID luserid_;
X_VideoOpen获得播放端口lplayport_
X_SetVisibleDecCallBack(传入lplayport_,本人错传为lrealplay_)设置播放器的回调函数,在此回调中获得视频流数据。
NET_StartRealPlay(传入luserid_)启动预览并设置回调函数,获得预览句柄lrealplay_;
回调函数中调用X_VideoInputData(传入lplayport_,本人错传为luserid_)把流数据压入给播放器解码。
写完一看居然是同样的,从头至尾都是个人错....
面壁去
结论:找不到出错缘由,就一直认为是库有问题,不应;传错参数问题很难调试发现,麻烦;库没对传入错误的参数提示出错信息,而是直接异常或不工做,不友好。
做者:phata
出处:http://www.cnblogs.com/wqvbjhc/
本文版权归做者和CSDN共有,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接,不然保留追究法律责任的权利。