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.

[参考译文] DM388:dm388上的捕获创建错误

Guru**** 2555630 points
Other Parts Discussed in Thread: TVP5158, TVP7002

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/624052/dm388-capture-create-error-on-dm388

器件型号:DM388
主题中讨论的其他器件:TVP5158TVP7002

大家好、

我使用以下代码来创建捕获实例

/*Capture Link 参数*/
   CaptureLink_CreateParams_Init (&capturePrm);
   //CapturePrm.numVipInst   = 2;
   CapturePrm.numVipInst   = 1;
   CapturePrm.outQueParams[0].nextLink = gVdisModuleContext.displayId[VDIS_DEV_HDMI];
   CapturePrm.tilerEnable             = false;
   CapturePrm.vipInst[0]。vipInstId = system_capture_INST_VIP0_Porta;//Porta:24位数据、PORTB:8位数据
  
       pCaptureInstPrm                    =&capturePrm.vipInst[0];
       //pCaptureInstPrm->标准          = SYSTEM_STD_1080p_60;
       pCaptureInstPrm->standard          = system_STD_1080i_60;//system_STD_VGA_60;
       pCaptureInstPrm->numOutput         = 1;

       pCaptureOutPrm                     =&pCaptureInstPrm->outParams[0];
       pCaptureOutPrm->dataFormat         = system_DF_YUV422SP_UV;
       pCaptureOutPrm->scEnable           = false;
       pCaptureOutPrm->scOutWidth         = 1920;
       pCaptureOutPrm->scOutHeight        = 1080;
       pCaptureOutPrm->outQueId           = 0;

创建链接时遇到以下错误

"左前:捕获80 [67%][40.000dB][ON]nks_m3vps/saptureLink_drv.c:pInst->captureVipHandle!=空:失败!!!:

我使用的是 IPNC RDK 3.8、我的输入是通过从 CPU 连接的 VGA 电缆进行的、输出是 HDMI 显示屏。 我使用的是 DM388EVM。

请建议解决方案。

谢谢

Kailash

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Kailash、

    希望您使用的是 IPNCRDK V3.8.1。

    您的捕获器件是什么?

    我可以看到在创建 VIP 句柄时出现了故障,因此我怀疑驱动程序代码中存在一些问题。

    我希望您已经对在 HDVPSS 代码中添加您的捕获器件进行了必要的更改。

    在您的创建参数中、您尚未初始化一些参数、如 video/DecoderId、inDataFormat 等

    您能否初始化所有参数并重试。

    对于 CaptureLink 参数、您可以查看以下文件。

    source/IPNC_RDK/IPNC_mcfw/mcfw/interfaces/link_api/captureLink.h

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Anuj:

    是的、我使用的是 IPNCRDK V3.8.1。

    我尝试从安装了 Ubuntu 的奔腾4 CPU 获取视频输入,通过 VGA 连接器,输出端通过 CPU 连接(与 PC 显示器连接的输出相同),输入连接到 DM388EVM 的 VGA IN。

    这里是我的参数。 我认为这些参数足以启动捕获链路。

    gVcapModuleContext.captureId = system_link_ID_capture;
    gVdisModuleContext.displayId[VDIS_DEV_HDMI]= system_link_ID_display_0;

    /*Capture Link 参数*/
    CaptureLink_CreateParams_Init (&capturePrm);
    CapturePrm.numVipInst = 1;
    CapturePrm.outQueParams[0].nextLink = gVdisModuleContext.displayId[VDIS_DEV_HDMI];
    CapturePrm.tilerEnable =错误;
    capturePrm.vipInst[0].vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA;//PORTA:24位数据、PORTB:8位数据

    pCaptureInstPrm = capturePrm.vipInst[0];
    //pCaptureInstPrm->标准 = SYSTEM_STD_1080i_60;
    pCaptureInstPrm->标准 = SYSTEM_STD_1080p_60;//SYSTEM_STD_VGA_60;
    pCaptureInstPrm-> numOutput = 1;
    pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;//SYSTEM_DF_YUV422I_YUYV;
    pCaptureInstPrm->videoDecoderId = SYSTEM_DEVICE_VID_DEC_TVP7002_DRV;//SYSTEM_DEVICE_VID_DEC_TVP5158_DRV

    pCaptureOutPrm =&pCaptureInstPrm->outParams[0];
    pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV422SP_UV;
    pCaptureOutPrm->scEnable =错误;
    pCaptureOutPrm->scOutWidth = 1920;
    pCaptureOutPrm->scOutHeight = 1080;
    pCaptureOutPrm->outQueId = 0;

    谢谢
    Kailash
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Kailash、

    这些参数是否仍然面临相同的问题?
    您能否将数据格式更改为 FVID2_DF_YUV422I_YUYV。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Anuj:

    感谢您的回复、我可以使用以下参数创建捕获链接、但我现在无法启动捕获链接
    /*Capture Link 参数*/
    CaptureLink_CreateParams_Init (&capturePrm);
    CapturePrm.numVipInst = 1;
    CapturePrm.outQueParams[0].nextLink = gVdisModuleContext.displayId[VDIS_DEV_HDMI];
    CapturePrm.tilerEnable =错误;
    CapturePrm.enableSdCrop =错误;

    #if 1.
    for (vipInstId=0;<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_TVP7002_DRV;//SYSTEM_DEVICE_VID_DEC_TVP5158_DRV;
    pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;
    pCaptureInstPrm->标准 = SYSTEM_STD_AUTO_DETECT;//SYSTEM_STD_MUX_4CH_D1;
    pCaptureInstPrm-> numOutput = 1;

    pCaptureOutPrm =&pCaptureInstPrm->outParams[vipInstId];
    pCaptureOutPrm->dataFormat = FVID2_DF_YUV422I_YUYV;//system_DF_YUV422P;//system_DF_YUV422I_YUYV;
    pCaptureOutPrm->scEnable =错误;
    pCaptureOutPrm->scOutWidth = 640;
    pCaptureOutPrm->scOutHeight = 480;
    pCaptureOutPrm->outQueId = 0;


    for (vipInstId = 0;vipInstId< capturePrm.numVipInst;vipInstId++)

    vidDecVideoModeArgs[vipInstId].videIfMode = DEVICE_CAPT_VIDEO_IF_MODE_16BIT;
    vidDecVideoModeArgs[vipInstId].videDataFormat = SYSTEM_DF_YUV422P;
    vidDecVideoModeArgs[vipInstId].standard = SYSTEM_STD_AUTO_DETECT;//SYSTEM_STD_MUX_4CH_D1;
    vidDecVideoModeArgs[vipInstId].videCaptureMode =
    DEVICE_CAPT_VIDEO CAPTURE_MODE_MULTI_CH_PIXEL MUX_INEDGE_SYNC;
    vidDecVideoModeArgs[vipInstId].videSystem =
    DEVICE_VIDEO 解码器 VIDEO 系统自动检测;
    vidDecVideoModeArgs[vipInstId].videCropEnable = false;
    vidDecVideoModeArgs[vipInstId].videAutoDetectTimeout =-1;


    osa_printf ("MultiCh_createVCaptureVDisplay1\n");
    vcap_configVideoDecoder (vidDecVideoModeArgs、1);
    #endif

    我的代码无法执行 VCAP_START。
    链路似乎不支持 TVP7002。 您能不能也看一下以下帖子。
    e2e.ti.com/.../624654



    谢谢
    Kailash
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    小幅校正
    pCaptureOutPrm->dataFormat = system_DF_YUV422P;而不是 pCaptureOutPrm->dataFormat =FVID2_DF_YUV422I_YUYV;

    谢谢
    Kailash
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Kailash、
    如果可能、您可以共享您的用例文件。
    如果您在公开共享时遇到任何问题、请将其发送至我的电子邮件 ID。(如果需要、请咨询)
    同时共享引导日志。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Anuj:

    您能否共享您的电子邮件 ID,我将共享我的代码。

    我的捕获创建和启动已成功,但我没有从输入源获取任何数据,即使我没有连接任何输入,HDMI 显示屏也会显示绿色/蓝色/黑色。

    我的设置是 VGA 电缆连接到 VGA 连接器,该连接器连接到 DM388EVM 上的 tvp7002,输入源是 Pentium 4 CPU。


    谢谢
    Kailash
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    用例:

    CaptureLink_CreateParams CapturePrm;
    DisplayLink_CreateParams displayPrm;

    CaptureLink_VipInstParams *pCaptureInstPrm;
    CaptureLink_OutParams *pCaptureOutPrm;

    osa_printf ("MultiCh_createVCaptureVDisplay0\n");
    MultiCh_detectBoard();
    MULTICH_INIT_STRUCT (DisplayLink_CreateParams、displayPrm);
    System_linkControl (system_link_ID_M3VPSS、
    System_M3VPSS_CMD_RESET_VIDEO 器件、
    null、
    0、

    );

    /*初始化链接 ID*/
    gVcapModuleContext.captureId = system_link_ID_capture;
    gVdisModuleContext.displayId[VDIS_DEV_HDMI]= system_link_ID_display_0;

    /*Capture Link 参数*/

    CaptureLink_CreateParams_Init (&capturePrm);

    CapturePrm.numVipInst = 1;
    CapturePrm.outQueParams[0].nextLink = gVdisModuleContext.displayId[VDIS_DEV_HDMI];

    #if 0//def enable_tiler_camera
    CapturePrm.tilerEnable =真;
    其他
    CapturePrm.tilerEnable =错误;
    #endif
    CapturePrm.enableSdCrop =错误;
    CapturePrm.numBufsPerCh = 8;
    CapturePrm.numExtraBuf = 1;
    CapturePrm.fakeHdMode =错误;
    CapturePrm.enableSdCrop =错误;
    CapturePrm.doCropInCapture =错误;

    pCaptureInstPrm = capturePrm.vipInst[0];
    pCaptureInstPrm->vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA;
    pCaptureInstPrm->videoDecoderId = SYSTEM_DEVICE_VID_DEC_TVP7002_DRV;
    pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;//SYSTEM_DF_RGB24_888;
    pCaptureInstPrm->标准 = SYSTEM_STD_720p_60;//SYSTEM_STD_VGA_60;//SYSTEM_STD_1080p_60;//SYSTEM_STD_AUTO_DETECT;
    pCaptureInstPrm-> numOutput = 1;

    pCaptureOutPrm =&pCaptureInstPrm->outParams[0];
    pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;
    pCaptureOutPrm->scEnable =错误;
    //pCaptureOutPrm->scOutWidth = 1920;
    //pCaptureOutPrm->scOutHeight = 1080;
    pCaptureOutPrm->outQueId = 0;


    /*显示链接参数*/
    MULTICH_INIT_STRUCT (DisplayLink_CreateParams、displayPrm);
    displayPrm.inQueParams[0].prevLinkId = gVcapModuleContext.captureId;
    displayPrm.inQueParams[0].prevLinkQueId = 0;
    displayPrm.displayRes = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_HDMI].resolution;
    displayPrm.displayId = display_link_display_sc2;//辅助视频路径(支持全高清/标清)

    /*创建链接*/
    System_linkCreate (gVcapModuleContext.captureId、&capturePrm、sizeof (capturePrm));
    //System_linkControl (gVcapModuleContext.captureId、
    //capting_link_CMD_detect_video、NULL、0、true);
    System_linkCreate (gVdisModuleContext.displayId[VDIS_DEV_HDMI]、&displayPrm、sizeof (displayPrm));

    MultiCh_memPrintHeapStatus();
    osa_printf ("MultiCh_createVCaptureVDisplayEnd\n");


    我无法从输入源获取视频数据。
    谢谢
    Kailash
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Kailash、

    我的电子邮件 ID 是 anuj.gupta@pathpartnertech.com。
    请共享您的用例代码文件和日志文件。