开发环境 DVRRDK3.5, DM8168。
我在LInux下实现了捕捉GPIO中断的程序,并且实现了视频的采集、播放、ALG等link的创建、运行。现在程序可以成功运行,并将采集的图像送入到DSP中进行处理。
现在的需求是,我想在捕捉到GPIO中断时,获取一张当前时间某一个link的中的帧数据。我找了下demo,没有找到相应的代码实现。
请专家看一下,给出点建议。
peng cheng2:
回复 Eason Wang:
Eason Wang, 我成功的获取到了帧数据。但是将帧数据写成文件后,通过YUV工具查看 存的图像完全不对。图像本来该是彩色的,我仿照demo写入得出下面的结果。
从vpss出来的帧格式应该为YUV420SP。
我的存储代码如下:
for(frameId = 0; frameId < frameBufList.numFrames; frameId++){pFrame = &frameBufList.frames[frameId];framesizeY = pFrame->frameWidth * pFrame->frameHeight ;//Y planarframesizeU = pFrame->frameWidth * pFrame->frameHeight / 2;//UV planarpMemVirtAddrY = NULL;OSA_mapMem((UInt32)pFrame->phyAddr[0][0], framesizeY, &pMemVirtAddrY);if(pMemVirtAddrY)fwrite((Ptr)pMemVirtAddrY, framesizeY, 1, fp);OSA_unmapMem(pMemVirtAddrY, framesizeY);pMemVirtAddrU = NULL;OSA_mapMem((UInt32)pFrame->phyAddr[0][1], framesizeU, &pMemVirtAddrU);if(pMemVirtAddrU)fwrite((Ptr)pMemVirtAddrU, framesizeU, 1, fp);OSA_unmapMem(pMemVirtAddrU, framesizeU);}存储后用yuvtools播放的图像是:
Chris Meng:
回复 peng cheng2:
你好,
一般工具显示的YUV420是planar的,你把UV数据再分开存储一下,然后看看显示是否正常?
peng cheng2:
回复 Chris Meng:
感谢你的回复,这个问题已经解决了。
原因是我使用的yuvtool的解析帧图像时不是semiplanar。