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.

8168中video decoder的配置和初始化问题

Other Parts Discussed in Thread: TVP5158

我用的是DVRRDk 4.0。我在mcfw_api_demo中,发现其调用了ti_vcap_device.c中的Vcap_deviceCreate函数,进而调用Video decoder相关的一些函数来进行初始化,比如Device_tvp5158Create。而我在link_api_demo中,却没有对这些初始化函数的调用,就只有一些capture link的参数的设置。请问到底该如何配置Video decoder?

  • demo中没有,说明没有用到那个decoder,你需要弄清楚demo的硬件环境。另外,link_api_demo是基于link api的,而mcfw_api_demo是基于mcfw_api的,这个是有所差别的。mcfw_api是封装了部分link_api功能,具体参考你的mcfw_api文件夹下的代码。

  • 我再说的详细一点吧。

    对比的两个demo都有采集的功能,那么肯定都使用了一种Video decoder。对于mcfw_api_demo,我看的是DEMO_VCAP_VDIS这个use case。在multich_vcap_vdis.c这个文件的MultiCh_createVcapVdis函数中,在capture link的建立之前,调用了Vcap_configVideoDecoder,从而进行tvp5158的配置。对于link_api_demo,我看的是“Multi CH Capture+NSF+DEI+Display”这个use case。我从main函数跟了一下,只发现在文件chains_multiChCaptureNsfDei.c中的Chains_multicChCaptureNsfDei函数中,建立capture link时,有Video decoder的一个配置:

    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 = SYSTEM_DEVICE_VID_DEC_TVP5158_DRV;
    pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;
    pCaptureInstPrm->standard = SYSTEM_STD_MUX_4CH_D1;
    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;
    }

    而没有发现对Device_tvp5158Create之类的函数调用。不知道是我看漏了还是怎么回事。