TI中文支持网
TI专业的中文技术问题搜集分享网站

8148 DVRRDK CaptureLink创建失败

直接使用LinkApi来创建一个链,通过CaptureLink 从摄像头获取数据,然后传到自己的算法中。目前在创建CaptureLink 时失败。

打印信息如下,查看了那个错误发现,MessageQ_alloc 没申请到内存,不知道在运行这个程序之前还需要做那些工作。

其中1,2 是mcfw的例子,3是我自己添加的。

root@dm814x-evm:/opt/dvr_rdk/ti814x# ./av_8148.out

=========
Main Menu
=========

1: 4CH VCAP + VENC + VDEC + VDIS – Progressive SD Encode + Decode
2: VCAP + VENC ? VDIS – Progressive SD Encode + Decode
3: VCAP + ALG e: Exit

Enter Choice: 3
Start VCapAlgLink_start 46
ASSERT (system_ipc_msgq.c|System_ipcMsgQSendMsg|360)

代码如下:

Void VcapAlgLink_start( )
{
CaptureLink_CreateParams capturePrm;

CaptureLink_VipInstParams *pCaptureInstPrm;
CaptureLink_OutParams *pCaptureOutPrm;

UInt32 captureId,passegerId;
UInt32 vipInstId;

passegerLink_CreateParams passegerPrm;
char ch;

captureId = SYSTEM_LINK_ID_CAPTURE;
passegerId = SYSTEM_LINK_ID_PASSEGER_0;
printf("start xx %d\n",__LINE__);
CaptureLink_CreateParams_Init(&capturePrm);

capturePrm.numVipInst = 4;
capturePrm.outQueParams[0].nextLink = passegerId;

for(vipInstId=0; vipInstId<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_TVP5158_DRV;
pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;
pCaptureInstPrm->standard = SYSTEM_STD_MUX_4CH_D1;
pCaptureInstPrm->numOutput = 1;

pCaptureOutPrm = &pCaptureInstPrm->outParams[0];
pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV422I_YUYV;
pCaptureOutPrm->scEnable = FALSE;
pCaptureOutPrm->scOutWidth = 0;
pCaptureOutPrm->scOutHeight = 0;
pCaptureOutPrm->outQueId = 0;
}
passegerPrm.chnnum = 0;
passegerPrm.ImgWidth = 720;
passegerPrm.ImgHeight = 576;
passegerPrm.inQueParams.prevLinkId = captureId;
passegerPrm.inQueParams.prevLinkQueId= 0;
printf("start xx %d\n",__LINE__);

System_linkCreate (captureId, &capturePrm, sizeof(capturePrm));
printf("start xx %d\n",__LINE__);

System_linkCreate (passegerId, &passegerPrm, sizeof(passegerPrm));

printf("start xx %d\n",__LINE__);

System_linkStart(passegerId);
printf("start xx %d\n",__LINE__);
System_linkStart(captureId);
printf("start xx %d\n",__LINE__);

return 0;
}

Ternence_Hsu:

如果你运行1或者2的时候是否会出现ASSERT (system_ipc_msgq.c|System_ipcMsgQSendMsg|360)

这个错误呢 ?

buyun ma:

回复 Ternence_Hsu:

不会出现这个错误。

这个错误是在执行到这一步的时候 出现的 

System_linkCreate (captureId, &capturePrm, sizeof(capturePrm));

赞(0)
未经允许不得转载:TI中文支持网 » 8148 DVRRDK CaptureLink创建失败
分享到: 更多 (0)