各位专家好! 有个问题请教一下。目前我们想在解码端输出1920×2160的分辨率,我们解码1920×2160的数据后,通过link SYSTEM_VIDEO_LINK_ID_IPC_FRAMES_OUT_0和SYSTEM_HOST_LINK_ID_IPC_FRAMES_IN_0回传
到A8的host上,然后我将数据保存了,发现图像是乱的,看起来好像不是SYSTEM_DF_YUV420SP_UV 格式的数据,见附件,我保存了一帧YUV 数据,这个
是1920×1080的,按我的想法H,264解码完应该出来就是SYSTEM_DF_YUV420SP_UV的数据,不知道是不是这样?期待您的回复,谢谢!
nanaw:
请问下你这一帧的YUV数据在什么地方读取?比如具体的结构体,函数,内存的首地址等等
sheng xie:
回复 nanaw:
我是通过这样的方式,解码后数据通过 SYSTEM_VIDEO_LINK_ID_IPC_FRAMES_OUT_0从video 出来,结构体为IpcFramesOutLinkRTOS_CreateParams,再通过SYSTEM_HOST_LINK_ID_IPC_FRAMES_IN_0进入A8,使用的结构体为IpcFramesInLinkHLOS_CreateParams,然后在回调函数中使用IpcFramesInLink_getFullVideoFrames来获取YUV数据, 填充数据的结构体为VIDFrame_BufList vidBufList;基本上是这些,您看有问题没?
nanaw:
回复 sheng xie:
跟你类似,只不过我是在DSP端去一帧的数据,也是类似于结构体为VIDFrame_BufList vidBufList的结构体FVID2_Frame *pFrame; FVID2_FrameList frameList;数据肯定是在这个结构体里面,只是现在还不知道一帧的YUV数据的首地址以及大小,不晓得你是在结构体里面那个成员去数据的
sheng xie:
回复 nanaw:
那仁兄,你那边现在是可以取到正确的YUV数据吗?
sheng xie:
回复 nanaw:
因为是解码,解码出来应该是YUV420SP格式的数据, 所以是这样取得数据 从 pBuf->phyAddr[0][0] 取Y数据,从 pBuf->phyAddr[0][1]取UV 数据,但就是这样取的数据显示出来就不对,按我的想法,应该就是这样的. 仁兄你的现在可以取到正确的数据没?
nanaw:
回复 sheng xie:
我现在数据是知道在什么地方,而且把pFrame->addr【0】【0】更改之后也有相应的改变,但是把pFrame->addr【0】【1】或者pFrame->addr【1】【0】更改之后没有反应,所以现在还不是很清楚哪个是Y,哪个是UV。出现这种现象可能跟你的一样,有可能UV数据没有正确的取出来。
sheng xie:
回复 nanaw:
是的,但是根据结构体的描述,yuv420SP 的UV 数据应该就是从pFrame->addr【0】【1】来获取的, TI 的专家都不在吗,难道就不能回复一下?
nanaw:
回复 sheng xie:
你看一下你memcpy的长度,如果是全帧的长度,是否说明你的数据保存格式不是YUV420SP格式?
zhul huang:
你好,我现在遇到,读取不到解码后的数据问题。我小哈了我的RDK源码,发现里面没有SYSTEM_VIDEO_LINK_ID_IPC_FRAMES_OUT_0和SYSTEM_HOST_LINK_ID_IPC_FRAMES_IN_0宏,想了解一下这个宏是你自己加的还是你的RDK里面本来就有?你RDK版本号是多少?
lucky2:
回复 nanaw:
您好
请问你保存yuv420的图像对了没?
是如何保存的?
8168 DVR下显示的时候是不是都转为yuv422i才能显示吗?我看link图解里 最后的马赛克link里写的都是yuv422i的啊