我想把经过M3Video核解码得到的YUV图像存在A8Host上。使用的link为:IPC_BITS_OUT_A8-> IPC_BITS_IN_M3->DEC->SYSTEM_VIDEO_LINK_ID_IPC_OUT_M3_0->SYSTEM_VPSS_LINK_ID_IPC_IN_M3_0->SYSTEM_VPSS_LINK_ID_IPC_FRAMES_OUT_0->SYSTEM_HOST_LINK_ID_IPC_FRAMES_IN_0;
然后利用chains_ipcFrames,通过IpcFramesInLink_getFullVideoFrames拿到了buflist。可以到看到拿到的buflist的信息:
[host] CHAINS_IPCFRAMES:VIDFRAME_INFO:chNum:0 fid:0 frameWidth:704 frameHeight:576 timeStamp:462 virtAddr[0][0]:(nil) phyAddr[0][0]:0xa88a0c80
phyAddr[0][1]:0xa8933c80
现在我已经得到了buf的phyAddr(物理地址),直接用write的方式写:write(fd, bufList.frames[0].phyAddr[0][0],bufList.frames[0].frameWidth*bufList.frames[0].frameHeight)
没有办法写到文件里去,errno是14,地址错误。
我该如何利用buf的phyAddr,得到我想要的YUV数据呢?
感觉论坛上问这方面问题的人还是挺多的,希望能得到工程师们的回答,十分感谢!