你好!
我现在使用的是DM8127 IPNC RDK 3.8。
我想在DSP核上移植运行自己的图像视频处理算法,是不是要自己设计一个Link?请问该怎么做?
请问有什么教程、或者文档、或者demo、或者哪个现有的Link?哪个usecase可以参考学习的?
还请明示指教,谢谢!
另外,我看到网友有提到8168这个《DSP Algorithm Integration Guide in IPNC/DVR RDK.pdf》这个文档,我没找到该文档,请问8127可以用吗,该从哪里获取下载到?
望不吝赐教,谢谢!!
cajviewer:
回复 Chris Meng:
从网站上下载了helloworldalg例程,有几个问题想请教下:在三码流例子里面做的修改
1、把该算法加在va之前,如下#if 1/*新增helloworld*/ HelloWorldLink_CreateParams_Init(&helloWorldPrm); helloWorldPrm.inQueParams.prevLinkId = ipcFramesInDspId; helloWorldPrm.inQueParams.prevLinkQueId = 0; helloWorldPrm.outQueParams.nextLink = gVsysModuleContext.vaId; helloWorldPrm.createOutBuf1 = 1; helloWorldPrm.numBufsPerCh = 1;#endif /* VA link params */ VaLink_CreateParams_Init(&vaPrm);#if 0 vaPrm.inQueParams.prevLinkId = ipcFramesInDspId;#else/*va f放在helloWorldId之后*/ vaPrm.inQueParams.prevLinkId = helloWorldId;#endif
vaPrm.inQueParams.prevLinkQueId = 0; vaPrm.encLinkId = gVencModuleContext.encId; vaPrm.swosdLinkId = gVsysModuleContext.swOsdId; vaPrm.cameraLinkId = gVcamModuleContext.cameraId; vaPrm.vaFrameRate = 20;
/*在link创建环节,增加helloWorld*/ System_linkCreate(helloWorldId, &helloWorldPrm, sizeof(helloWorldPrm)); /* VA link */ System_linkCreate(gVsysModuleContext.vaId, &vaPrm, sizeof(vaPrm)); 另外修改了内存大小 LINUX_SIZE 由80M变更为75M var DSP_CODE_SIZE = 2*MB;/*原来是1*MB;*/ var DSP_DATA_SIZE = 14*MB;/*原来是10MB*/ 最后出现的现象: 运行到VaLink_create函数中,在 status = Utils_memFrameAlloc(&pObj->bufferFrameFormat, // pFormat pObj->outFrames, // pFrame VA_LINK_MAX_OUT_FRAMES); // numFrames 处停止,紧跟着加的打印没有显示 其中bufferFrameFormat=FVID2_DF_YUV420SP_UV,应该是正确的 会是什么问题?
2、算法里面,在初始化HelloWorldLink_init函数里面
linkObj.linkGetFullFrames = NULL; linkObj.linkPutEmptyFrames = NULL; linkObj.linkGetFullBitBufs = HelloWorldLink_getFullBufs; linkObj.linkPutEmptyBitBufs = HelloWorldLink_putEmptyBufs; linkObj.getLinkInfo = HelloWorldLink_getInfo;
为什么会用linkGetFullBitBufs 和linkPutEmptyBitBufs 这两个?是不是应该用linkGetFullFrames 和linkPutEmptyFrames ,这个应该是frames数据吧
cajviewer:
回复 cajviewer:
好吧,自己搞错了,hello例子是码流数据处理,va是帧数据处理,两个不能直接链,还要改些代码才行