基于DM8168开发板硬件和RDK开发包,设计下面了Link流程,请大侠们看看可以吗?
captureLink –> ipcFramesOutVpssLink –> ipcFramesInDspLink –> dspAlgLink –> ipcFramesOutDspLink –> ipcFramesInVpssLink –> displayLink
注:
1. 为简化设计,暂时不设计(使能)DEI/NF/SC/swMS等Link。
2. DSP上算法按Frame输入输出处理数据。
Chris Meng:
你好,
应该是可以的。
请注意DVR RDK里面的dsplink有两种,一种是没有next link的process link,直接在输入图像上处理,然后返还buffer,例如SWOSD。一种是有next link的。你应该参考后者。
lu kingkuang:
回复 Chris Meng:
谢谢!
我们是按照后者设计的,但是没找到具体例程。
请问RDK里面有这是样的ddspink例程吗?
lu kingkuang:
回复 Chris Meng:
谢谢!
SCD算法的例程我们分析过,输出的是SCD检测结果(bitstream信息),再通过ipcbitOutLink传给A8.
我们DSP算法是对ipcFrameLink输入的Frame格式数据处理后,再以Frame格式输出,通过ipcFrameOutLink传给M3VPSS显示。
lu kingkuang:
回复 lu kingkuang:
hi,chris
基于DM8168开发板硬件和RDK开发包,设计下面了Link流程,目前图像可显示,但C6XDSP很快挂掉了. 检查发现ipcFramesOutDspLink的ipcFramesOutDspLink_releaseFrameBufs()函数中ListMP_getHead(pObj->ListMPINHndl,)后来一直返回为空(NULL)导致。RDK代码工程中没有搜索到ListMP_PutTail(pObj->ListMPINHndl,),只搜索到ListMP_PutTail(pObj->ListMPOUTHndl,),应该不是和前面ListMP_getHead(pObj->ListMPINHndl,)对应的。 请大侠们看看是啥原因? 另外,同样代码的ipcFramesOutVpssLink,为啥没这个问题?在captureLink 也没找到ListMP_PutTail(pObj->ListMPINHndl,)。 【captureLink –> ipcFramesOutVpssLink –> ipcFramesInDspLink –> dspAlgLink –> ipcFramesOutDspLink –> ipcFramesInVpssLink –> displayLink 】
Chris Meng:
回复 lu kingkuang:
你好,
会不会是DSP处理时间较长,导致buffer没有还回去?
lu kingkuang:
回复 Chris Meng:
不是算法处理时间长的问题.
我们把算法处理bypass掉(算法处理设为空函数)还是一样的问题.
lu kingkuang:
回复 lu kingkuang:
chris:我们进一步定位,发现displayLink接收到的子帧很少,后来就收不到了.但是一段时间内m3vpssInLink一直给displayLink发帧数据的.请问displayLink接收前面Link数据的机制是怎样的?前面Link是通过发送NEW_DATA_CMD消息通知displayLink取数据.但是我看到displayLink是在回调函数中去dequeue framebuffer或getfullFrameBufs的。回调函数是怎么调用起来的?周期性触发的?