TI中文支持网
TI专业的中文技术问题搜集分享网站

DM8168基于RDK怎么创建新的link

  各位专家,小弟刚接触DM8168不久,对RDK平台的代码不太熟悉,有个问题请教一下,如果我在前端接入24位RGB信号,外部行场同步,我想直接从capture进,什么都不作,直接就通过display0显示,我参考multich_vcap_vdis.c这个demo来修改,但是试了很久都不行,所以我想问一下我的link应该怎么配置,哪些link是必须的?

我目前的配置是captureID->nsf0ID->dei0ID->mergeID->dupID->swMsId[0]->display0ID.这个有问题吗??

期待您们的回复,谢谢!

                   

Haijun Guo:

数据通路你可以仍然使用vcap_vdis.c中的配置。

关键点在于,你需要配置capture link,使之接收RGB格式输入,输出YUV格式,因为capture后续link都是处理YUV数据的。

关于capture link的配置,请参阅HDVPSS_UserGuide.pdf

sheng xie:

回复 Haijun Guo:

  非常感谢你的回答,关于你说的那个文档,我在RDK里面找了一下,没有发现,能否提供一份,万分感谢!

 还有能否帮我看一下capture link的配置是否正确,下面是我的配置代码

   

    CaptureLink_CreateParams_Init(&capturePrm);

    capturePrm.numVipInst    = 1;///2 * numSubChains;    capturePrm.outQueParams[0].nextLink = gVcapModuleContext.nsfId[0];

    capturePrm.tilerEnable              = FALSE;    capturePrm.enableSdCrop             = FALSE;

    for(vipInstId=0; vipInstId<capturePrm.numVipInst; vipInstId++)    {        pCaptureInstPrm                     = &capturePrm.vipInst[vipInstId];        pCaptureInstPrm->vipInstId          = (SYSTEM_CAPTURE_INST_VIP0_PORTA+vipInstId)%SYSTEM_CAPTURE_INST_MAX;        pCaptureInstPrm->videoDecoderId     = 0;//;        pCaptureInstPrm->inDataFormat       =SYSTEM_DF_RGB24_888;//;        pCaptureInstPrm->standard           = SYSTEM_STD_1080P_60;//;//;        pCaptureInstPrm->numOutput          = 1;

        pCaptureOutPrm                      = &pCaptureInstPrm->outParams[0];        pCaptureOutPrm->dataFormat          = SYSTEM_DF_YUV422I_YUYV;//;        pCaptureOutPrm->scEnable            = FALSE;        pCaptureOutPrm->scOutWidth          = 0;        pCaptureOutPrm->scOutHeight         = 0;        pCaptureOutPrm->outQueId            = 0;    }//

    最后一个问题,就是在做link的时候,一个数据流比如由capture到encode到display 到底需要经过哪几个link,像dup,select,megre这些是必要的link吗,有没有对link

   介绍比较详细的文档? 谢谢!

Haijun Guo:

回复 sheng xie:

文档在:RDKxxxxxxx\ti_tools\hdvpss\dvr_rdk_hdvpss\docs\HDVPSS_UserGuide.pdf

你使用这个配置遇到的问题是什么?数据通路创建不成功?还是创建成功了,但是没有显示?

最好能提供一份完整的log。

有一点要注意的是,demo默认输入是隔行格式interlace,从你的代码看,输入是逐行,这时DEI模块可能会存在问题,因为它是要做de-interlace的。

link之间的搭建是有灵活性的,dup、select、merge都是根据需求来使用的,并不是必须的。

link的介绍,目前还是看各个link的头文件注释来学习。

sheng xie:

回复 Haijun Guo:

    非常感谢您的回答!我的确实是逐行输入,并且前端是1161,直接硬件拉死了,不需要配置,直接出RGB24位数据.并且我将DEI配置为不做de-interlace.如下:

   

        deiPrm[i].inQueParams.prevLinkId                        = gVcapModuleContext.nsfId[0];        deiPrm[i].inQueParams.prevLinkQueId                     = 0;        deiPrm[i].outQueParams[deiOutQue].nextLink              = mergeId;        //deiPrm[i].outQueParams[deiOutQue^1].nextLink            = nullId;        deiPrm[i].enableOut[deiOutQue]                          = TRUE;        //deiPrm[i].enableOut[deiOutQue^1]                        = FALSE;        deiPrm[i].tilerEnable[DEI_LINK_OUT_QUE_VIP_SC]          = FALSE;

                 deiPrm[i].comprEnable                                   = FALSE;        deiPrm[i].setVipScYuv422Format                          = FALSE;//FALSE;        deiPrm[i].enableDeiForceBypass = TRUE;

 

    完整log见附件,期待您的回复,谢谢!

 

 

 

sheng xie:

回复 sheng xie:

    另外,创建的时候没有错误,就是没有显示!

sheng xie:

回复 Haijun Guo:

   非常感谢你的回复,现在已经能出图像了,但是图像闪来闪去,这个估计可能是我link 中间某个设置不对吧,估计还得排查一下,另外我还想问一下,我能不能不经过nsf和dei这两个link,然后merge和dup我也不想使用,能去掉吗>?我试了一下,貌似在创建display的时候会抱错!

Haijun Guo:

回复 sheng xie:

可以不经过nsf和dei的,merge和dup也是根据你的需求可选的。

创建display的时候报错,应该是有些配置还不对,你可以先尝试一个HDMI display,把问题简化。

sheng xie:

回复 Haijun Guo:

  还得请你帮下忙,还出不来图像,开始闪烁的图像都没有了,目前我的配置是capture->megre->dup->sw->display0,整个路径创建没有错误.我在capture的Vpass 的代码里加入了打印,显示确实有数据,见附件最后的[m3vpss ] receive capture data,所以不知道数据为什么没显示?  谢谢

Haijun Guo:

回复 sheng xie:

log上看不出,你可以试着去掉merge 和dup。

赞(0)
未经允许不得转载:TI中文支持网 » DM8168基于RDK怎么创建新的link
分享到: 更多 (0)