TI中文支持网
TI专业的中文技术问题搜集分享网站

dm8168从host -video->vpss->video。这个link流程有问题么?

环境:DVRRDK3.5   DM8168

目前所做产品为从IPC获取码流,解码后以rtsp发送出去。 现在在中间加入了算法处理部分,只对个别帧进行识别操作。下面是要实现的link流程图:

但是在实现过程中发现了问题,如果按照这样来做,在创建了整个link 后,发现并没有  数据流从 video 传入到 host。

而当我按照简单的 :   host onvif  ->  ipcBitOutHLOS -> bitsInRTOS video -> dec -> enc -> bitsOutRTOS  -> HOST -> rtsp.   这样的流程可以正常传出编码数据。
同时  以这样的link:  host onvif  ->  ipcBitOutHLOS -> bitsInRTOS video -> dec -> sclr -> nsf -> ipcFrameOutVpss -> ipcFramesInDsp -> alg  . 这样在 dsp 端也能得出正确的结果。
 但是想把  dsp 处理 以及  通过host的rtsp服务器发送  同时实现的话,我不知道该怎么做。
各位专家 朋友能否看下,这是哪里出了问题。是否还有需要注意的地方。
谢谢。
hl chu:

Hi:

你的输入分辨率是多大?

peng cheng2:

回复 hl chu:

我输入分辨率 是  1920 1080.

peng cheng2:

回复 hl chu:

你好,我又测试了几次,现在提问内容已经修改了。问题应该是出在vpss端。您有时间的话可以看下。谢谢。

Chris Meng:

回复 peng cheng2:

Cheng Peng,

DSP Link是否有把buffer正确返还?如果dsp link处理的时间是否过长?

peng cheng2:

回复 Chris Meng:

应该是有返还的。因为如果不送入video,只送入dsp的话,是可以正常跑起来的。dsp那边也一直有正确的结果。

我这里的处理是在helloworld里面进行处理的,没有跟osd放到一起。

//ipc frames out vpssipcFramesOutVpssPrm1.baseCreateParams.inQueParams.prevLinkId = dupId0;ipcFramesOutVpssPrm1.baseCreateParams.inQueParams.prevLinkQueId = 0;ipcFramesOutVpssPrm1.baseCreateParams.outQueParams[0].nextLink = ipcFramesInDspId1;ipcFramesOutVpssPrm1.baseCreateParams.processLink = SYSTEM_LINK_ID_INVALID;ipcFramesOutVpssPrm1.baseCreateParams.noNotifyMode = FALSE;ipcFramesOutVpssPrm1.baseCreateParams.notifyNextLink = TRUE;ipcFramesOutVpssPrm1.baseCreateParams.notifyPrevLink = TRUE;ipcFramesOutVpssPrm1.baseCreateParams.notifyProcessLink = FALSE;ipcFramesOutVpssPrm1.baseCreateParams.numOutQue = 1;ipcFramesOutVpssPrm1.baseCreateParams.inputFrameRate = 25;ipcFramesOutVpssPrm1.baseCreateParams.outputFrameRate = 2;
//ipc frames in dspipcFramesInDspPrm1.baseCreateParams.inQueParams.prevLinkId = ipcFramesOutVpssId1;ipcFramesInDspPrm1.baseCreateParams.inQueParams.prevLinkQueId = 0;ipcFramesInDspPrm1.baseCreateParams.outQueParams[0].nextLink = helloworldId0;ipcFramesInDspPrm1.baseCreateParams.numOutQue = 1;ipcFramesInDspPrm1.baseCreateParams.noNotifyMode = FALSE;ipcFramesInDspPrm1.baseCreateParams.notifyNextLink = TRUE;ipcFramesInDspPrm1.baseCreateParams.notifyPrevLink = TRUE;ipcFramesInDspPrm1.baseCreateParams.inputFrameRate = 25;ipcFramesInDspPrm1.baseCreateParams.outputFrameRate = 2;
//frames into helloworld linkhelloworldPrm0.inQueParams.prevLinkId = ipcFramesInDspId1;helloworldPrm0.inQueParams.prevLinkQueId = 0;//helloworldPrm.outQueParams.nextLink = SYSTEM_LINK_ID_INVALID;helloworldPrm0.noNotifyMode = FALSE;helloworldPrm0.notifyNextLink = FALSE;helloworldPrm0.notifyPrevLink = TRUE;

peng cheng2:

回复 Chris Meng:

现在算法部分没有启用处理,也就是说基本上没有时间损耗的。

我把算法放到了processlink来处理,测试了两个demo。如果是以sdi为视频源,那么就会正常运行。以onbif为视频源,再解压  解码后送入vpss,之后的link流程跟sdi的是一样的,但是这个流程走不通。我可以提供代码 。log。

希望得到你的解答。

赞(0)
未经允许不得转载:TI中文支持网 » dm8168从host -video->vpss->video。这个link流程有问题么?
分享到: 更多 (0)