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.
在板子A上做的编码和解码两路link进行merge成功的,然后再另外一个板子B(两个板子的内核不同,板子A只做一路采集,板子B做vga、2个pal、1个sdi采集)运行,现在将这板子B采集部分只做了1个sdi采集,其他的采集禁掉了,然后进行一路编码和一路解码进行merge(之前都在板子A验证过了的代码),却出现了 Assertion @ Line: 60 in links_common/merge/mergeLink_tsk.c: status == FVID2_SOK : failed。
跟踪得知merge的输入的解码link的id出错:
即merge创建时对应的解码link时,status =
System_linkGetInfo(pPrm->inQueParams[inQue].prevLinkId,
&pObj->inTskInfo[inQue]);出错了。
进一步跟踪发现在函数
Int32 System_linkGetInfo(UInt32 linkId, System_LinkInfo * info)
{
Int32 status;
UInt32 procId;
UInt32 procIdself;
procId = SYSTEM_GET_PROC_ID(linkId);
UTILS_assert(procId < SYSTEM_PROC_MAX);
procIdself = System_getSelfProcId();
// if ((procId != System_getSelfProcId()) && (procId != SYSTEM_PROC_INVALID))
Vps_printf("procId:%d procIdself: %d ======00033=============== !!!\n", procId, procIdself);
if ((procId != procIdself) && (procId != SYSTEM_PROC_INVALID))
{
status =
System_ipcMsgQSendMsg(linkId, SYSTEM_CMD_GET_INFO, info,
sizeof(*info), TRUE);
}
else
{
status = System_linkGetInfo_local(linkId, info);
}
return status;
}
串口打印 [m3vpss ] procId:0 procIdself: 2 ======00033=============== !!!
显示merge的输入解码link的procId = 0,我是将解码部分的mpscale做merge的输入,这个mpscale不是应该是M3vpss核里吗,procId = 2才对呀,为啥它会 = 0,0对应的是dsp核?
请问下link与内核有没有关系?这个问题为啥