hello:
i dynamic change decoder code type, so need call mcfw api Vdec_deleteChn();but it will bolock at delete ipcbitsOut link 's buff, the following msg will repeat again and again:
[host] IPC_BITSOUTLINK:!WARNING!.IPCBITSOUT_LINK_CMD_DELETE_CH_BUFFER pending for [514] ms DeleteChBufState:1
I have check the state: 1 is right, I have see the link src and debug,i found if success call delete ipcbits buff,it will call ipcbitsoutlink_handle_flush_frame_free(), but unluckly,my function not call this.
when i call Vdec_deleteChn() this function, i have do nothing fot ipcbitsOutA8 link except send start msg
my link chain is: ipcbitsOutA8--->ipcbitsInM3video--->dec--->ipcOutVideo--->ipcInM3vpss--->swms-->display
this link can decoder video and display.
the following is my ipcbitsOutHost config:
IpcBitsOutLinkHLOS_CreateParams ipcBitsOutA8Prm,*pIpcBitsOutA8Prm = &ipcBitsOutA8Prm;
IpcBitsOutLinkHLOS_CreateParams_Init(pIpcBitsOutA8Prm);
pIpcBitsOutA8Prm->baseCreateParams.outQueParams[0].nextLink = osd_display_linkId_core.linkId_ipcbitsInVideo0;
pIpcBitsOutA8Prm->baseCreateParams.numOutQue = 1;
pIpcBitsOutA8Prm->bufPoolPerCh = TRUE;
pIpcBitsOutA8Prm->baseCreateParams.noNotifyMode = TRUE;
pIpcBitsOutA8Prm->baseCreateParams.notifyNextLink = FALSE;
pIpcBitsOutA8Prm->baseCreateParams.notifyPrevLink = FALSE;
pIpcBitsOutA8Prm->inQueInfo.numCh = 2;
for(num=0; num<pIpcBitsOutA8Prm->inQueInfo.numCh; num++)
{
pIpcBitsOutA8Prm->inQueInfo.chInfo[num].width = 1920;
pIpcBitsOutA8Prm->inQueInfo.chInfo[num].height = 1080;
pIpcBitsOutA8Prm->inQueInfo.chInfo[num].scanFormat = SYSTEM_SF_PROGRESSIVE;
}
ret = System_linkCreate(osd_display_linkId_core.linkId_ipcbitsOutA8_0,pIpcBitsOutA8Prm,sizeof(*pIpcBitsOutA8Prm));
what's wrong wiht my program?
wish you replay!