Part Number:TDA4VE-Q1
Hi ti
我们在7.3版本的sdk上面已经成功使用vxSwapImageHandle函数来零拷贝,现在切换到8.5sdk上面,使用vxSwapImageHandle函数有一些问题
1、在8.5sdk上面,nv12格式的image的y分量和uv分量的物理地址是连续的,所以一个image只能转换成一个dma fd
2、vxSwapImageHandle
的参数是虚拟地址,在8,5的sdk下面一个nv12格式的image只有一个虚拟地址(因为只有一个dma fa),但是vxSwapImageHandle
的参数中需要两个虚拟地址(y分量的虚拟地址和uv分量的虚拟地址)
请问如何解决这个问题,期待回复
Cherry Zhou:
您好,我们已收到您的问题并升级到英文论坛寻求帮助,链接如下,如有答复将尽快回复您:
e2e.ti.com/…/tda4ve-q1-sdk8-5-vxswapimagehandle
,
bad person:
还没有得到该问题的回复
,
Cherry Zhou:
抱歉,该条线回复较慢一些,我们来催促下工程师看下。
,
Cherry Zhou:
您好,
工程师这边回复如下:
bad person 说:1、在8.5sdk上面,nv12格式的image的y分量和uv分量的物理地址是连续的,所以一个image只能转换成一个dma fd
工程师正在查看该改动。
但是从 vxSwapImageHandle()来看,这将采用参数 num_planes。 这里表示的是图像中的平面数。您必须将其设置为等于输入图像的平面数。
工程师认为应该同时考虑 Y 平面和 UV 平面。
请问您目前遇到的错误具体是什么?
,
bad person:
非常高兴收到回复,现在面临的问题是
1、nv12的image是有两个plane的(Y和UV),我在调用vxSwapImageHandle函数的时候,传入的参数num_planes=2,对应的是nv12格式的image,但是只有一个虚拟地址,所以函数调用会出错
期待回复
,
bad person:
2、为什么7.3版本的sdk创建出来的nv12类型image的y plane的物理地址和uv plane的物理地址是分开的,8.4版本的sdk创建出来的nv12类型image的y plane的物理地址和uv plane的物理地址是连续的?