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有何问题?
STAR1:
没有人愿意帮忙看下嘛? 这个scaleLink使用有什么限制?
captureLink如果要是一路输出的话,scaleLink可以使用。但是如果分成两路就不行。这是为何?