DM8168 DVRRDK开发总结

     在dm8168_dvrrdk开发过程中,遇到不少的问题,同时解决了不少问题,在此做一个小小的总结。
    1.系统架构
        系统架构由两部分组成,app应用程序端和link链路。


    (1)app应用程序端(arm端):
         此端也是用户端,直接操作数据层。读取数据( 为整个link链路读入数据流)以及存储数据( 将整个link链路处理完的数据结果通过此端进行存储)。
   (2)link链路端:
         此端为底层端。它分为M3(vpss和vedio)、DSP、linux。在链路chain的搭建过程中要注意, vpss与vedio之间有专门的通信机制,M3、DSP与linux则为核间通信。

    2.link链路创建
        每个link都具有 唯一ID
        每个link都有一个或多个输入列队,同时也有一个或多个输出列队
        特定link有些特定参数。如
            notifyprelink、notifynestlik、nonotifymode等:核间通信使用。
            processlink:多用在alglink中,主要是具有特定的数据流向。processlink对数据做相应的处理完后,数据仍需返回给当前link。
            ex: ipcframeOutVedio->processLink = alglink,即alglink处理完后返回给ipcframeOutVedio。
        因此:在定义当前link时,需定义出指向上游以及下游的linkID,是承接上游的哪一个输出列队,以及自己有多少个输出列队。
        链路定义好之后,需要从上至下一一调用System_linkCreate函数创建好链路。

    3.linkstart
        每个link需要调用System_linkStart进行开启,并且调用方式是 从下至上

    4.问题:
   (1) ListMP_GetHead(listMPInHndl)为NULL
    Answer:其下一个link没有调用ListMP_putTail(listMPInHndl),所以肯定为NULL。即释放机制没有达成,只需要在下一个link中调用释放机制即可。
  (2) Venc_registerCallback
    Answer:在dvrrdk4.0中,Ti_venc.c中只提供了注册回掉函数机制,但没提供消息响应机制,所以用Venc_registerCallback的同仁们请参照Ti_vcap.c中写,否则可以用Vcap_registerCallback。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值