你好,目前我想在A8下保存视频源码,也就是调用write函数保存YUV422数据,但是VPSS传递的物理地址,通过在A8下转换的虚拟地址,A8无法使用,通过打印发现,VPSS传递的视频源码物理地址转换虚拟地址,A8是使用 bufVirtAddrStart = SharedRegion_getPtr(srPtr[0][0])进行转化的??
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Xin Jin,
还需要调用mmap,请参考:
https://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/273295/954465#954465
first SharedRegion_getPtr() needs to be called. This API converts SR ptr to local ptr i.e. physical address of buffer in the SR2 on A8 that needs to be maped using standard mmap() system call if this needs to be accessed on A8 side linux user space.
DeiLink_CreateParams_Init(&deiPrm[i]);
deiPrm[i].inQueParams.prevLinkId = gMultiChHd_VcapVencVdisObj.dupId[i];
deiPrm[i].inQueParams.prevLinkQueId = 0;
deiPrm[i].enableOut[DEI_LINK_OUT_QUE_DEI_SC] = TRUE;
deiPrm[i].enableOut[DEI_LINK_OUT_QUE_VIP_SC] = FALSE;
deiPrm[i].enableOut[DEI_LINK_OUT_QUE_VIP_SC_SECONDARY_OUT] = FALSE;
deiPrm[i].tilerEnable = FALSE;
/* Set non default DEI Frame Rate */
deiPrm[i].inputFrameRate[DEI_LINK_OUT_QUE_DEI_SC] = 30;
deiPrm[i].outputFrameRate[DEI_LINK_OUT_QUE_DEI_SC] = 30;
/* Set non default DEI Frame Rate */
deiPrm[i].inputFrameRate[DEI_LINK_OUT_QUE_VIP_SC] = 30;
deiPrm[i].outputFrameRate[DEI_LINK_OUT_QUE_VIP_SC] = 30;
deiPrm[i].comprEnable = FALSE;
deiPrm[i].setVipScYuv422Format = FALSE;
deiPrm[i].scaleMode = DEI_SCALE_MODE_RATIO;
deiPrm[i].enableDeiForceBypass = TRUE;
deiPrm[i].enableLineSkipSc = FALSE;
/* DEI Path Scalar ratio is 1:2, D1 => CIF */
deiPrm[i].outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC].ratio.widthRatio.numerator = 1;
deiPrm[i].outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC].ratio.widthRatio.denominator = 1;
deiPrm[i].outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC].ratio.heightRatio.numerator = 1;
deiPrm[i].outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC].ratio.heightRatio.denominator = 1;
/* DEI Path Scalar ratio is 1:2, D1 => CIF */
deiPrm[i].outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC].ratio.widthRatio.numerator = 1;
deiPrm[i].outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC].ratio.widthRatio.denominator = 1;
deiPrm[i].outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC].ratio.heightRatio.numerator = 1;
deiPrm[i].outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC].ratio.heightRatio.denominator = 1;
deiPrm[i].outQueParams[DEI_LINK_OUT_QUE_DEI_SC].nextLink= gVcapModuleContext.ipcFramesOutVpssToHostId;
我在A8端保存了一场数据,也就是从起始地址开始到1920*540*2,正常的数据Y=5F,U=54,V=5D,保存的数据前0x168f10的YUV相差不大,差不多+/·3左右,但是0x168f10以后的YUV相差化越来越大,但极限值Y=0X80,U=0X80,V=0X80,具体见附件。