This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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服务器发送  同时实现的话,我不知道该怎么做。

各位专家 朋友能否看下,这是哪里出了问题。是否还有需要注意的地方。
谢谢。
  • Hi:

    你的输入分辨率是多大?

  • 我输入分辨率 是  1920 1080.

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

  • Cheng Peng,

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

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

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

    //ipc frames out vpss
    	ipcFramesOutVpssPrm1.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 dsp 
    	ipcFramesInDspPrm1.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 link
    	helloworldPrm0.inQueParams.prevLinkId = ipcFramesInDspId1;
    	helloworldPrm0.inQueParams.prevLinkQueId = 0;
    	//helloworldPrm.outQueParams.nextLink = SYSTEM_LINK_ID_INVALID;
    	helloworldPrm0.noNotifyMode = FALSE;
    	helloworldPrm0.notifyNextLink = FALSE;
    	helloworldPrm0.notifyPrevLink = TRUE;	
    		
  • 现在算法部分没有启用处理,也就是说基本上没有时间损耗的。

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

    希望得到你的解答。

x 出现错误。请重试或与管理员联系。