zoukankan      html  css  js  c++  java
  • 记一次失败经验:“先入为主”引起的思维定势

    背景:本人最近有一项目要连接IP摄像头,市场上两大主流厂商为海康与大华,SDK成熟,很容易就能连接并取流。连接好海康与大华后,因为公司也有自己的IPC,也需要把公司的IPC连接上。

    经历:拿到公司IPC SDK与demo后,就开始按海康大华的连接思路工作了。连接类写好后,经测试,问题就来了:连接一直有问题,不是解码库抛异常,就是登录得了但回调不了视频流。很困惑....与库开发人员联系,他们坚信库没问题,而我测试又一直有问题。最后没办法,写了个demo证明问题的存在发给库开发人员测试。

            一天过去了,经过几次交流,问题找到了,库完全没问题,是我的调用方法错了。Demo的调用方法是正确的,只是我没仔细按照里面的方法调用。

    原因:我按海康大华的思路进行编写调用,而公司的IPC与它们有些不同,我没仔细看就栽在这里头。

    海康大华调用方法(以大华代码为例):

        登录成功得到ID luserid_;

        使用PLAY_GetFreePort(&lplayport_)得到播放器的播放端口lplayport_;

        PLAY_SetDecCallBackEx(传入lplayport_)设置播放器的回调函数,在此回调中得到视频流数据。

        CLIENT_RealPlay(传入luserid_)启动预览得到预览句柄lrealplay_;

        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共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    标准模板库中的链表(list)
    C++接口
    qsort
    C++异常
    标准模板库中的向量(vector)
    后缀表达式/逆波兰表达式
    静态数据成员
    c++存储区域
    #define 和 const
    Git 的下载与安装
  • 原文地址:https://www.cnblogs.com/wqvbjhc/p/3363269.html
Copyright © 2011-2022 走看看