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.

captureLink中scEnable



请问下,能单独使用captureLink中缩放功能吗? 为何我的高清信号,使能scEnable 缩放到标清,图像变卡。一直打印“ CAPTURE: Overflow detected on VIP0,”log

但是关闭scEnable,图像就没有问题?

  • 同步模式改成VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_ACTVID_VSYNC,图像可以出来了。

    但发现个问题。我的link是 captureLink->displayLink,使用了captureLink的缩放功能(使能scEnable)后,图像就会很卡。 captureLink不是支持缩放功能吗,这是为何?

  • 使用DM8127,RDK3.5 调试高清输入视频

    GS2961输出16bit Y,UV分离数据,同步信号按照CEA-861 输出。

    本人采集模式设置如下:

    pCaptureInstPrm = &capturePrm.vipInst[0];
    pCaptureInstPrm->vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA;
    pCaptureInstPrm->videoDecoderId = SYSTEM_DEVICE_VID_DEC_GS296_DRV;
    pCaptureInstPrm->standard = SYSTEM_STD_1080P_24;
    pCaptureInstPrm->frameCaptureMode = FALSE;
    pCaptureInstPrm->fieldsMerged = TRUE;
    pCaptureInstPrm->numOutput = 1;
    pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422SP_UV;

    pCaptureOutPrm = &pCaptureInstPrm->outParams[0];
    pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;
    pCaptureOutPrm->scEnable = TRUE;
    pCaptureOutPrm->scOutWidth = 720;
    pCaptureOutPrm->scOutHeight = 576;
    pCaptureOutPrm->outQueId = 0;
    pCaptureOutPrm->subFrameEnable = FALSE;

    pVipCreateArgs->videoCaptureMode =VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_HSYNC_VSYNC;

    vipPortConfig->disConfig.fidDetectMode =VPS_VIP_FID_DETECT_MODE_PIN;
    vipPortConfig->disConfig.actvidPol = VPS_VIP_POLARITY_HIGH;
    vipPortConfig->disConfig.vsyncPol = VPS_VIP_POLARITY_HIGH;
    vipPortConfig->disConfig.hsyncPol = VPS_VIP_POLARITY_HIGH;//VPS_VIP_POLARITY_LOW;

    但是采集到图像如下图:

    请问,哪里配置有问题,往协助查看下,已经卡了两天了。

  • 可以使用capturelinke内部缩放功能,请问有几路使能了scEnable?先试一下单路使能缩放功能。

  • 你好,目前只接入一路高清视频。 没有多路情况

  • 能否升级到RDK4.1版本试试。

  • 您好,我感觉是我用captureLink 缩放配置不对。您有使用captureLink 缩放功能的例子提供一下吗?

  • 进一步跟踪发现 ,系统启动时候,偶尔会出现“overflow detected on vip0” 错误,当出现这个错误时候就会卡死。请问这个该如何解决?

  • 最新进展:

    现在我们高清视频是一上电就往VIN0 口输送数据的。 改成系统启动后再想vin0口送数据,则不会出现“overflow detected on vip0”错误。请问这是为何?

  • 问题已经解决,同步信号极性问题。

  • 中间加入sclrLink后,视频大概率无法播放。

    chain:

    captureLink(1080p/25)->sclrLink->displayLink(SD)

    参数配置如下:

    pCaptureInstPrm = &capturePrm.vipInst[0];
    pCaptureInstPrm->vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA;
    pCaptureInstPrm->videoDecoderId = SYSTEM_DEVICE_VID_DEC_GS296_DRV;
    pCaptureInstPrm->standard = SYSTEM_STD_1080P_24;
    pCaptureInstPrm->frameCaptureMode = FALSE;
    pCaptureInstPrm->fieldsMerged = FALSE;
    pCaptureInstPrm->numOutput = 1;
    pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422SP_UV;

    pCaptureOutPrm = &pCaptureInstPrm->outParams[0];
    pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;
    pCaptureOutPrm->scEnable = FALSE;
    pCaptureOutPrm->scOutWidth = 720;
    pCaptureOutPrm->scOutHeight = 576;
    pCaptureOutPrm->outQueId = 0;
    pCaptureOutPrm->subFrameEnable = FALSE;

    capturePrm.numOutQue = 1;

    SclrLink_CreateParams_Init(&sclrPrm);
    sclrPrm.inQueParams.prevLinkId = gVcapModuleContext.captureId;
    sclrPrm.inQueParams.prevLinkQueId = 0;
    sclrPrm.outQueParams.nextLink = gVdisModuleContext.displayId[VDIS_DEV_SD];
    sclrPrm.tilerEnable = FALSE;
    sclrPrm.enableLineSkipSc = FALSE;
    sclrPrm.inputFrameRate = 24;
    sclrPrm.outputFrameRate = 24;
    sclrPrm.scaleMode = DEI_SCALE_MODE_ABSOLUTE;
    sclrPrm.scaleMode = DEI_SCALE_MODE_ABSOLUTE;
    sclrPrm.outScaleFactor.absoluteResolution.outWidth = 720;
    sclrPrm.outScaleFactor.absoluteResolution.outHeight = 576;
    sclrPrm.outDataFormat = VF_YUV420SP_UV;
    sclrPrm.pathId =SCLR_LINK_SEC0_SC3;

    无法播放情况,现已跟踪到sclrLink_drv.c中SclrLink_drvSubmitData函数时,会一直等待Semaphore_pend(pObj->complete, BIOS_WAIT_FOREVER);

    但是触发完成信号,在回调函数SclrLink_drvFvidCb,底层始终没有调用。这是为何?