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.

why no encode data. code blow



CaptureLink_CreateParams capturePrm;
CaptureLink_VipInstParams *pCaptureInstPrm;
CaptureLink_OutParams *pCaptureOutPrm;
NsfLink_CreateParams nsfPrm[2];
DupLink_CreateParams dupPrm[2];
SclrLink_CreateParams sclrPrms;
DeiLink_CreateParams deiPrm[4];
//SwMsLink_CreateParams swMsPrm[CHAINS_SW_MS_MAX_DISPLAYS];
//DisplayLink_CreateParams displayPrm[CHAINS_SW_MS_MAX_DISPLAYS];
//MergeLink_CreateParams mergePrm;
IpcLink_CreateParams ipcOutVpssPrm;
IpcLink_CreateParams ipcInVideoPrm;
EncLink_CreateParams encPrm;
IpcBitsOutLinkRTOS_CreateParams ipcBitsOutVideoPrm;
IpcBitsInLinkHLOS_CreateParams ipcBitsInHostPrm;
AvsyncLink_LinkSynchConfigParams avsyncCfg[CHAINS_SW_MS_MAX_DISPLAYS];
//SwMsLink_LayoutPrm swmsLayoutPrm[CHAINS_SW_MS_MAX_DISPLAYS];

int i;
systemVid_encDecIvaChMapTbl.isPopulated = 1;
systemVid_encDecIvaChMapTbl.ivaMap[0].EncNumCh = 1;
systemVid_encDecIvaChMapTbl.ivaMap[0].EncChList = {0};
systemVid_encDecIvaChMapTbl.ivaMap[0].DecNumCh = 0;
systemVid_encDecIvaChMapTbl.ivaMap[0].DecChList = {0};

System_linkControl(
SYSTEM_LINK_ID_M3VPSS,
SYSTEM_M3VPSS_CMD_RESET_VIDEO_DEVICES,
NULL,
0,
TRUE
);

if (Chains_ipcBitsInit() != OSA_SOK)
{
printf("Chains_ipcBitsInit error\n");
return false;
}

System_linkControl(
SYSTEM_LINK_ID_M3VIDEO,
SYSTEM_COMMON_CMD_SET_CH2IVAHD_MAP_TBL,
&systemVid_encDecIvaChMapTbl,
sizeof(SystemVideo_Ivahd2ChMap_Tbl),
TRUE);
/*
* Local capture + Enc
*/
VCAP_PARAMS_S prm;
Vcap_params_init(&prm);
CHAINS_INIT_STRUCT(CaptureLink_CreateParams,capturePrm);
for(i = 0; i < 2; i++)
{
CHAINS_INIT_STRUCT(NsfLink_CreateParams,nsfPrm[i]);
}

for(i = 0; i < CHAINS_SW_MS_MAX_DISPLAYS; i++)
{
CHAINS_INIT_STRUCT(SwMsLink_CreateParams, swMsPrm[i]);
}

/*for(i = 0; i < CHAINS_SW_MS_MAX_DISPLAYS; i++)
{
CHAINS_INIT_STRUCT(DisplayLink_CreateParams, displayPrm[i]);
}*/

for (i = 0; i < 4;i++)
{
CHAINS_INIT_STRUCT(DeiLink_CreateParams, deiPrm[i]);
}

CHAINS_INIT_STRUCT(IpcLink_CreateParams,ipcOutVpssPrm);
CHAINS_INIT_STRUCT(IpcLink_CreateParams,ipcInVideoPrm);
CHAINS_INIT_STRUCT(EncLink_CreateParams,encPrm);
CHAINS_INIT_STRUCT(IpcBitsOutLinkRTOS_CreateParams,ipcBitsOutVideoPrm);
CHAINS_INIT_STRUCT(IpcBitsInLinkHLOS_CreateParams,ipcBitsInHostPrm);
CHAINS_INIT_STRUCT(SclrLink_CreateParams,sclrPrms);

m_nCaptureId = SYSTEM_LINK_ID_CAPTURE;
m_nNsfId[0] = SYSTEM_LINK_ID_NSF_0;
m_nNsfId[1] = SYSTEM_LINK_ID_NSF_1;
m_nDupId[0] =SYSTEM_VPSS_LINK_ID_DUP_0;
m_nDupId[1] =SYSTEM_VPSS_LINK_ID_DUP_1;
m_nSwMsId[0] = SYSTEM_LINK_ID_SW_MS_MULTI_INST_0;
m_nSwMsId[1] = SYSTEM_LINK_ID_SW_MS_MULTI_INST_1;
m_nSwMsId[2] = SYSTEM_LINK_ID_SW_MS_MULTI_INST_2;
m_nDisplayId[0] = SYSTEM_LINK_ID_DISPLAY_0;
m_nDisplayId[1] = SYSTEM_LINK_ID_DISPLAY_1;
m_nDisplayId[2] = SYSTEM_LINK_ID_DISPLAY_2;
//m_nMergeId = SYSTEM_VPSS_LINK_ID_MERGE_0;
m_nIpcOutVpssId = SYSTEM_VPSS_LINK_ID_IPC_OUT_M3_0;
m_nIpcInVideoId = SYSTEM_VIDEO_LINK_ID_IPC_IN_M3_0;
m_nEncId = SYSTEM_LINK_ID_VENC_0;
m_nIpcBitsOutVideoId = SYSTEM_VIDEO_LINK_ID_IPC_BITS_OUT_0;
m_nIpcBitsInHostId = SYSTEM_HOST_LINK_ID_IPC_BITS_IN_0;
m_nSclrId = SYSTEM_LINK_ID_SCLR_INST_0;

m_nDeiId[0] = SYSTEM_LINK_ID_DEI_0;
m_nDeiId[1] = SYSTEM_LINK_ID_DEI_HQ_0;
m_nDeiId[2] = SYSTEM_LINK_ID_DEI_1;
m_nDeiId[3] = SYSTEM_LINK_ID_DEI_HQ_1;

capturePrm.numVipInst = ChainCtrlStruct.chCapNum;
capturePrm.tilerEnable = FALSE;
capturePrm.numBufsPerCh = 0;
capturePrm.numExtraBufs = 0;
capturePrm.maxBlindAreasPerCh = 0;
capturePrm.isPalMode = FALSE;
capturePrm.enableSdCrop = FALSE;
capturePrm.doCropInCapture = FALSE;

for(i=0; i<capturePrm.numVipInst; i++)
{
m_nVipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA + 1 * ChainCtrlStruct.chCfg[i].channel;
pCaptureInstPrm = &capturePrm.vipInst[i];
pCaptureInstPrm->videoIfMode = SYSTEM_CAPT_VIDEO_IF_MODE_8BIT;
pCaptureInstPrm->videoCaptureMode = SYSTEM_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_ACTVID_VSYNC;
if (3 == m_nVipInstId)
{
pCaptureInstPrm->videoCaptureMode = SYSTEM_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC;
}

prm.channelParams[i].deviceId = (VCAP_DEV)m_nVipInstId;
prm.enableConfigExtVideoDecoder = FALSE;//TRUE;
prm.deviceParams[m_nVipInstId].standard = ChainCtrlStruct.chCfg[i].inStd;

pCaptureInstPrm->vipInstId = m_nVipInstId%SYSTEM_CAPTURE_INST_MAX;
pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;
pCaptureInstPrm->standard = ChainCtrlStruct.chCfg[i].inStd;
pCaptureInstPrm->numOutput = 1;
pCaptureInstPrm->numChPerOutput = 1;

pCaptureOutPrm = &pCaptureInstPrm->outParams[0];
pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV422I_YUYV;//SYSTEM_DF_YUV420SP_UV;
pCaptureOutPrm->scEnable = FALSE;
pCaptureOutPrm->scOutWidth = 0;
pCaptureOutPrm->scOutHeight = 0;
pCaptureOutPrm->outQueId = 0;
}
capturePrm.outQueParams[0].nextLink = m_nDupId[0];

dupPrm[0].inQueParams.prevLinkId = m_nCaptureId;
dupPrm[0].inQueParams.prevLinkQueId = 0;
dupPrm[0].numOutQue = 1;
dupPrm[0].outQueParams[0].nextLink = m_nNsfId[0];
dupPrm[0].notifyNextLink = TRUE;

nsfPrm[0].bypassNsf = TRUE;
nsfPrm[0].tilerEnable = FALSE;
nsfPrm[0].numOutQue = 1;
nsfPrm[0].numBufsPerCh = 0;
nsfPrm[0].inputFrameRate = ChainCtrlStruct.chCfg[0].outFrameRate;
nsfPrm[0].outputFrameRate = ChainCtrlStruct.chCfg[0].outFrameRate;
nsfPrm[0].inQueParams.prevLinkId = m_nDupId[0];
nsfPrm[0].inQueParams.prevLinkQueId = 0;
nsfPrm[0].outQueParams[0].nextLink = m_nSwMsId[0];

for(i = 1; i < ChainCtrlStruct.chNum; i++)
{
ChainCtrlStruct.displayRes[i] = ChainCtrlStruct.displayRes[0];
}

//Chains_displayCtrlInit(ChainCtrlStruct.displayRes);

for(i = 0; i< 1; i++)
{
VDIS_DEV vdDevId = VDIS_DEV_HDMI;
//swMsPrm[i].includeVipScInDrvPath = TRUE;
swMsPrm[i].numSwMsInst = 1;
swMsPrm[i].swMsInstId[0] = SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI;//SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI;//SYSTEM_SW_MS_SC_INST_VIP0_SC;//SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI;
swMsPrm[i].inQueParams.prevLinkId = m_nNsfId[0];
swMsPrm[i].inQueParams.prevLinkQueId = i;
swMsPrm[i].layoutPrm.outputFPS = ChainCtrlStruct.chCfg[0].outFrameRate;
swMsPrm[i].maxOutRes = ChainCtrlStruct.displayRes[0];
swMsPrm[i].maxInputQueLen = SYSTEM_SW_MS_DEFAULT_INPUT_QUE_LEN;
swMsPrm[i].numOutBuf = 8;
swMsPrm[i].initOutRes = ChainCtrlStruct.displayRes[0];
swMsPrm[i].lineSkipMode = FALSE;
swMsPrm[i].enableLayoutGridDraw = TRUE;
//swMsPrm[i].enableProcessTieWithDisplay = TRUE;
//swMsPrm[i].outDataFormat = SYSTEM_DF_YUV420SP_UV;//(nsf is blow disable must)

if (i == 0)
{
vdDevId = VDIS_DEV_HDMI;
}
else if (i == 1)
{
vdDevId = VDIS_DEV_DVO2;
}
//Chains_set_avsync_prm(&avsyncCfg[i],i,vdDevId);
swMsPrm[i].outQueParams.nextLink = m_nDupId[1];
Chains_swMsGenerateLayoutParams(i, m_nCurLayoutId, &swMsPrm[i]);
}

/*mergePrm.numInQue = ChainCtrlStruct.chRecNum;
for(i = 0; i < ChainCtrlStruct.chRecNum; i++)
{
mergePrm.inQueParams[i].prevLinkId = m_nSwMsId[i];
mergePrm.inQueParams[i].prevLinkQueId = 0;
}
mergePrm.outQueParams.nextLink = m_nIpcOutVpssId;
mergePrm.notifyNextLink = TRUE;*/

dupPrm[1].inQueParams.prevLinkId = m_nSwMsId[0];
dupPrm[1].inQueParams.prevLinkQueId = 0;
dupPrm[1].numOutQue = 1;//2
//dupPrm[1].outQueParams[0].nextLink = m_nDisplayId[0];
//dupPrm[1].outQueParams[1].nextLink = m_nNsfId[1];
dupPrm[1].outQueParams[0].nextLink = m_nDeiId[0];//m_nNsfId[1];//m_nSclrId;
dupPrm[1].notifyNextLink = TRUE;

deiPrm[0].inQueParams.prevLinkId = m_nDupId[1];
deiPrm[0].inQueParams.prevLinkQueId = 0;
deiPrm[0].outQueParams[DEI_LINK_OUT_QUE_DEI_SC].nextLink = m_nNsfId[1];
deiPrm[0].numBufsPerCh[DEI_LINK_OUT_QUE_DEI_SC] = 0;
deiPrm[0].outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0].scaleMode = DEI_SCALE_MODE_RATIO;
deiPrm[0].outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0].ratio.heightRatio.numerator = 1;
deiPrm[0].outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0].ratio.heightRatio.denominator = 1;
deiPrm[0].outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0].ratio.widthRatio.numerator = 1;
deiPrm[0].outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0].ratio.widthRatio.denominator = 1;
for (i = 1; i < DEI_LINK_MAX_CH; i++)
{
deiPrm[0].outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][i] =
deiPrm[0].outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC][0];
}
deiPrm[0].enableOut[DEI_LINK_OUT_QUE_DEI_SC] = TRUE;
deiPrm[0].enableOut[DEI_LINK_OUT_QUE_VIP_SC] = FALSE;
deiPrm[0].enableOut[DEI_LINK_OUT_QUE_VIP_SC_SECONDARY_OUT] = FALSE;
deiPrm[0].enableOut[DEI_LINK_OUT_QUE_DEI_SC_SECONDARY_OUT] = FALSE;
deiPrm[0].enableOut[DEI_LINK_OUT_QUE_DEI_SC_TERTIARY_OUT] = FALSE;
deiPrm[0].tilerEnable[DEI_LINK_OUT_QUE_DEI_SC] = FALSE;
//deiPrm[0].inputFrameRate[DEI_LINK_OUT_QUE_DEI_SC] = ChainCtrlStruct.chCfg[0].outFrameRate;;
//deiPrm[0].outputFrameRate[DEI_LINK_OUT_QUE_DEI_SC] = ChainCtrlStruct.chCfg[0].outFrameRate;;
//deiPrm[0].inputDeiFrameRate = ChainCtrlStruct.chCfg[0].outFrameRate;;
//deiPrm[0].outputDeiFrameRate = ChainCtrlStruct.chCfg[0].outFrameRate;;
deiPrm[0].comprEnable = FALSE;
deiPrm[0].setVipScYuv422Format = FALSE;
deiPrm[0].enableInputFrameRateUpscale = FALSE;
deiPrm[0].enableDeiForceBypass = FALSE;
deiPrm[0].interlacedBypassMode = FALSE;
deiPrm[0].enableLineSkipSc = FALSE;

/*displayPrm[0].numInputQueues = 1;
displayPrm[0].activeQueue = 0;
displayPrm[0].displayRes = ChainCtrlStruct.displayRes[0];
displayPrm[0].inQueParams[0].prevLinkId = m_nDupId[1];
displayPrm[0].inQueParams[0].prevLinkQueId = 0;
displayPrm[0].displayId = DISPLAY_LINK_DISPLAY_AUTO_SELECT;
displayPrm[0].maxDriverQueLength = DISPLAY_LINK_MAX_DRIVER_QUEUE_LENGTH_DEFAULT;
displayPrm[0].forceFieldSeparatedInputMode = FALSE;*/

/*
*sclrPrms set error for encodeh264,do not kown why
*/
/*
sclrPrms.inQueParams.prevLinkId = m_nDupId[1];
sclrPrms.inQueParams.prevLinkQueId = 0;
sclrPrms.outQueParams.nextLink = m_nIpcOutVpssId;//m_nNsfId[1];
sclrPrms.enableLineSkipSc = FALSE;
sclrPrms.tilerEnable = FALSE;
sclrPrms.inputFrameRate = ChainCtrlStruct.chCfg[0].outFrameRate;
sclrPrms.outputFrameRate = ChainCtrlStruct.chCfg[0].outFrameRate;
//sclrPrms.numBufsPerCh = 4;
sclrPrms.outDataFormat = SYSTEM_DF_YUV420SP_UV;//SYSTEM_DF_YUV422I_YUYV;
sclrPrms.scaleMode = SCLR_SCALE_MODE_ABSOLUTE;//SCLR_SCALE_MODE_RATIO
sclrPrms.outScaleFactor.absoluteResolution.outWidth = 1920;
sclrPrms.outScaleFactor.absoluteResolution.outHeight = 1080;
sclrPrms.pathId = SCLR_LINK_SEC0_SC3;
//sclrPrms.outScaleFactor.ratio.widthRatio.numerator = 1;
//sclrPrms.outScaleFactor.ratio.widthRatio.denominator = 2;
//sclrPrms.outScaleFactor.ratio.heightRatio.numerator = 1;
//sclrPrms.outScaleFactor.ratio.heightRatio.denominator = 2;
//sclrPrms.pathId = SCLR_LINK_SC5;//SCLR_LINK_SEC0_SC3;//SCLR_LINK_SC5
//sclrPrms.enableLineSkipSc = FALSE;
*/
nsfPrm[1].bypassNsf = TRUE;
nsfPrm[1].tilerEnable = FALSE;
nsfPrm[1].numOutQue = 1;
nsfPrm[1].numBufsPerCh = 0;
nsfPrm[1].inputFrameRate = ChainCtrlStruct.chCfg[0].outFrameRate;
nsfPrm[1].outputFrameRate = ChainCtrlStruct.chCfg[0].outFrameRate;
nsfPrm[1].inQueParams.prevLinkId = m_nDeiId[0];//m_nSclrId;//m_nDupId[1];
nsfPrm[1].inQueParams.prevLinkQueId = DEI_LINK_OUT_QUE_DEI_SC;//1;
nsfPrm[1].outQueParams[0].nextLink = m_nIpcOutVpssId;

ipcOutVpssPrm.inQueParams.prevLinkId = m_nNsfId[1];
ipcOutVpssPrm.inQueParams.prevLinkQueId = 0;
ipcOutVpssPrm.outQueParams[0].nextLink = m_nIpcInVideoId;
ipcOutVpssPrm.numOutQue = 1;
ipcOutVpssPrm.numChPerOutQue[0] = 0;
ipcOutVpssPrm.notifyNextLink = TRUE;
ipcOutVpssPrm.notifyPrevLink = FALSE;
ipcOutVpssPrm.noNotifyMode = FALSE;
ipcOutVpssPrm.equallyDivideChAcrossOutQues = FALSE;

ipcInVideoPrm.inQueParams.prevLinkId = m_nIpcOutVpssId;
ipcInVideoPrm.inQueParams.prevLinkQueId = 0;
ipcInVideoPrm.outQueParams[0].nextLink = m_nEncId;
ipcInVideoPrm.numOutQue = 1;
ipcInVideoPrm.numChPerOutQue[0] = 0;
ipcInVideoPrm.notifyNextLink = TRUE;
ipcInVideoPrm.notifyPrevLink = FALSE;
ipcInVideoPrm.noNotifyMode = FALSE;
ipcInVideoPrm.equallyDivideChAcrossOutQues = FALSE;

for (i=0; i<ChainCtrlStruct.chRecNum; i++)
{
encPrm.chCreateParams[i].format = ChainCtrlStruct.chCfg[0].encFormat;
encPrm.chCreateParams[i].profile = ChainCtrlStruct.chCfg[0].encProfile;
encPrm.chCreateParams[i].dataLayout = IVIDEO_FIELD_SEPARATED;
encPrm.chCreateParams[i].fieldMergeEncodeEnable = FALSE;
encPrm.chCreateParams[i].enableAnalyticinfo = FALSE;
encPrm.chCreateParams[i].enableWaterMarking = FALSE;
encPrm.chCreateParams[i].encodingPreset = XDM_USER_DEFINED;
encPrm.chCreateParams[i].rateControlPreset = IVIDEO_USER_DEFINED;
encPrm.chCreateParams[i].enableHighSpeed = FALSE;
encPrm.chCreateParams[i].defaultDynamicParams.interFrameInterval = 1;
encPrm.chCreateParams[i].defaultDynamicParams.intraFrameInterval = ChainCtrlStruct.chCfg[0].intraFrameInterval;
encPrm.chCreateParams[i].defaultDynamicParams.inputFrameRate = ChainCtrlStruct.chCfg[0].inFrameRate;
encPrm.chCreateParams[i].defaultDynamicParams.targetFrameRate = ChainCtrlStruct.chCfg[0].encFrameRate;
encPrm.chCreateParams[i].defaultDynamicParams.targetBitRate = ChainCtrlStruct.chCfg[0].bitRate;
encPrm.chCreateParams[i].defaultDynamicParams.mvAccuracy = IVIDENC2_MOTIONVECTOR_QUARTERPEL;
encPrm.chCreateParams[i].defaultDynamicParams.rcAlg = ChainCtrlStruct.chCfg[0].rateCtrl;
encPrm.chCreateParams[i].defaultDynamicParams.qpMin = 10;
encPrm.chCreateParams[i].defaultDynamicParams.qpMax = 40;
encPrm.chCreateParams[i].defaultDynamicParams.qpInit = -1;
encPrm.chCreateParams[i].defaultDynamicParams.vbrDuration = 8;
encPrm.chCreateParams[i].defaultDynamicParams.vbrSensitivity = 0;
}
encPrm.inQueParams.prevLinkId = m_nIpcInVideoId;
encPrm.inQueParams.prevLinkQueId= 0;
encPrm.outQueParams.nextLink = m_nIpcBitsOutVideoId;
encPrm.numBufPerCh[0] = 0;

ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkId = m_nEncId;
ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
ipcBitsOutVideoPrm.baseCreateParams.outQueParams[0].nextLink = m_nIpcBitsInHostId;
ipcBitsOutVideoPrm.baseCreateParams.numOutQue = 1;
ipcBitsOutVideoPrm.baseCreateParams.notifyNextLink = FALSE;
ipcBitsOutVideoPrm.baseCreateParams.notifyPrevLink = FALSE;
ipcBitsOutVideoPrm.baseCreateParams.noNotifyMode = TRUE;
Chains_ipcBitsInitCreateParams_BitsOutRTOS(&ipcBitsOutVideoPrm,FALSE);

ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkId = m_nIpcBitsOutVideoId;
ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
ipcBitsInHostPrm.baseCreateParams.numOutQue = 1;
ipcBitsInHostPrm.baseCreateParams.numChPerOutQue[0] = 0;
ipcBitsInHostPrm.baseCreateParams.notifyNextLink = FALSE;
ipcBitsInHostPrm.baseCreateParams.notifyPrevLink = FALSE;
ipcBitsInHostPrm.baseCreateParams.noNotifyMode = TRUE;
Chains_ipcBitsInitCreateParams_BitsInHLOS(&ipcBitsInHostPrm);

/*
* Create Links
*/
System_linkCreate(m_nCaptureId, &capturePrm, sizeof(capturePrm));
System_linkCreate(m_nDupId[0], &dupPrm[0], sizeof(dupPrm[0]));
System_linkCreate(m_nNsfId[0], &nsfPrm[0], sizeof(nsfPrm[0]));
for(i = 0; i < 1; i++)
{
System_linkCreate(m_nSwMsId[i],&swMsPrm[i],sizeof(swMsPrm[i]));
}
System_linkCreate(m_nDupId[1], &dupPrm[1], sizeof(dupPrm[1]));
//System_linkCreate(m_nMergeId, &mergePrm, sizeof(mergePrm));
/*for(i = 0; i < 1; i++)
{
System_linkCreate(m_nDisplayId[i],&displayPrm[i],sizeof(displayPrm[i]));
}*/
//System_linkCreate(m_nSclrId, &sclrPrms, sizeof(sclrPrms));
System_linkCreate(m_nDeiId[0], &deiPrm[0], sizeof(deiPrm[0]));
System_linkCreate(m_nNsfId[1], &nsfPrm[1], sizeof(nsfPrm[1]));
System_linkCreate(m_nIpcOutVpssId, &ipcOutVpssPrm, sizeof(ipcOutVpssPrm));
System_linkCreate(m_nIpcInVideoId, &ipcInVideoPrm, sizeof(ipcInVideoPrm));
System_linkCreate(m_nEncId, &encPrm, sizeof(encPrm));
System_linkCreate(m_nIpcBitsOutVideoId, &ipcBitsOutVideoPrm, sizeof(ipcBitsOutVideoPrm));
System_linkCreate(m_nIpcBitsInHostId, &ipcBitsInHostPrm, sizeof(ipcBitsInHostPrm));

/*
* Start Links
*/
System_linkStart(m_nIpcBitsInHostId);
System_linkStart(m_nIpcBitsOutVideoId);
System_linkStart(m_nEncId);
System_linkStart(m_nIpcInVideoId);
System_linkStart(m_nIpcOutVpssId);
//System_linkStart(m_nMergeId);
System_linkStart(m_nNsfId[1]);
//System_linkStart(m_nSclrId);
System_linkStart(m_nDeiId[0]);
//System_linkStart(m_nDisplayId[0]);
System_linkStart(m_nDupId[1]);
//for(i = 0; i < 1; i++)
//{
System_linkStart(m_nSwMsId[0]);
//}
System_linkStart(m_nNsfId[0]);
System_linkStart(m_nDupId[0]);
System_linkStart(m_nCaptureId);
Vcap_init(&prm);
Vcap_start();