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.

chain问题请教



DM8127平台IPNC_RDK3.5版本

本人想实现 一个高清视频进入,然后分成两路,一路缩放到标清显示,一路高清显示。link如下:

captureLink-------(1080P)--->|------------->dislplayLink(HDMI)

                                        |------------->scaleLink--------(720X576)--->displayLink(SD)

配置参数如下:

CaptureLink_CreateParams_Init(&capturePrm);
capturePrm.numVipInst = 1;
capturePrm.tilerEnable = FALSE;

capturePrm.numOutQue = 2;

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 = 2;
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.outQueParams[0].nextLink =gVcapModuleContext.sclrId[0];//gVdisModuleContext.displayId[VDIS_DEV_SD];


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

capturePrm.outQueParams[1].nextLink =gVdisModuleContext.displayId[VDIS_DEV_HDMI];

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;


/* display link params */

MULTICH_INIT_STRUCT(DisplayLink_CreateParams,displayPrm);

displayPrm.inQueParams[0].prevLinkId =gVcapModuleContext.captureId;
displayPrm.inQueParams[0].prevLinkQueId = 1;
displayPrm.displayRes = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_HDMI].resolution;
displayPrm.displayId = DISPLAY_LINK_DISPLAY_SC1;

MULTICH_INIT_STRUCT(DisplayLink_CreateParams,displayPrm_SD);

displayPrm_SD.inQueParams[0].prevLinkId =gVcapModuleContext.sclrId[0];//gVcapModuleContext.captureId;
displayPrm_SD.inQueParams[0].prevLinkQueId = 0;
displayPrm_SD.displayRes = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_SD].resolution;
displayPrm_SD.displayId = DISPLAY_LINK_DISPLAY_SD;

运行后,scaleLink报错:

[m3vpss ] 14043: Assertion @ Line: 571 in links_m3vpss/sclr/sclrLink_drv.c: pObj->fvidHandle != NULL : failed !!!

希望有人能指点下,这样的link有何问题?

  • 没有人愿意帮忙看下嘛? 这个scaleLink使用有什么限制? 

    captureLink如果要是一路输出的话,scaleLink可以使用。但是如果分成两路就不行。这是为何?

  • 自己最后调整了下link,现在能出两路视频了。现在link改成如下:

    captureLink------>dupLink-------outque[0]------->displayLink_HD;

                            |------------------outque[1]-------->sclrLink------->displayLink_SD;

    不知道为何,captureLink输出一个通道时候,没有问题。一旦输出两通道,sclrLink就会创建失败