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.

How to Send frame buffer from VPSS to A8

Hi,

I'm using DM814x with DVRRDK 3.0,

in McFW framework, how to send image data buffer to A8(in 30 fps),

since frame buffer is capture by M3VPSS,

is there any share region between A8/M3/DSP and how to use that?

right now I'm using syslink api to pass data from dsp to A8,

but it has 64KB limitation, is there any other way to do that and able send larger data?

  • Hello,

    For DVRRDK support please check here:
    e2e.ti.com/.../426680
    You could also search in the e2e for similar issue.

    BR
    Margarita
  • just use IPC links: IpcFramesOutLinkRTOS on M3 side and IpcFramesInLinkHLOS on A8 size

  • Hi,

    Thanks for the reply,


    I added those links for test, but I always get:

     [host]  21831: IPC_FRAMES_IN   : Recevied 0 framebufs !!!

    and can't get any frame in A8 side, but I sure that VPSS frame out link is fine:

     [m3vpss ]  199681: IPC_FRAMES_OUT   : Received Notify !!!
     [m3vpss ]  199681: IPC_FRAMES_OUT   : Releasing 2 framebufs !!!
     [m3vpss ]  199685: IPC_FRAMES_OUT   : SYSTEM_CMD_NEW_DATA !!!
     [m3vpss ]  199686: IPC_FRAMES_OUT   : Received 4 framebufs !!!


    here is my config parameters,

    ipcFramesOutVpssPrm2.baseCreateParams.inQueParams.prevLinkId = gVcapModuleContext.deiId[1];

    ipcFramesOutVpssPrm2.baseCreateParams.inQueParams.prevLinkQueId = 0;
        ipcFramesOutVpssPrm2.baseCreateParams.noNotifyMode              = TRUE;
        ipcFramesOutVpssPrm2.baseCreateParams.notifyNextLink            = FALSE;
        ipcFramesOutVpssPrm2.baseCreateParams.notifyPrevLink            = TRUE;
        ipcFramesOutVpssPrm2.baseCreateParams.notifyProcessLink         = FALSE;
        ipcFramesOutVpssPrm2.baseCreateParams.processLink               = SYSTEM_LINK_ID_INVALID;
        ipcFramesOutVpssPrm2.baseCreateParams.equallyDivideChAcrossOutQues = TRUE;
        ipcFramesOutVpssPrm2.baseCreateParams.numOutQue                 = 1;

        ipcFramesOutVpssPrm2.baseCreateParams.inputFrameRate = 30;
        ipcFramesOutVpssPrm2.baseCreateParams.outputFrameRate = 30;


        ipcFramesOutVpssPrm2.baseCreateParams.outQueParams[0].nextLink = gVcapModuleContext.ipcFramesInHostId;

    // ipc frames to host

        ipcFramesInHostPrm.baseCreateParams.inQueParams.prevLinkId = gVcapModuleContext.ipcFramesOutVpssId[1];
        ipcFramesInHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        ipcFramesInHostPrm.baseCreateParams.noNotifyMode = TRUE;//FALSE;//
        ipcFramesInHostPrm.baseCreateParams.notifyNextLink = FALSE;//TRUE;
        ipcFramesInHostPrm.baseCreateParams.notifyPrevLink = TRUE;//TRUE;
        ipcFramesInHostPrm.baseCreateParams.numOutQue = 1;
        ipcFramesInHostPrm.baseCreateParams.inputFrameRate = 30;
        ipcFramesInHostPrm.baseCreateParams.outputFrameRate = 30;
        ipcFramesInHostPrm.baseCreateParams.outQueParams[0].nextLink = SYSTEM_LINK_ID_INVALID;
        ipcFramesInHostPrm.baseCreateParams.notifyProcessLink = FALSE;
        ipcFramesInHostPrm.exportOnlyPhyAddr = TRUE;

        ipcFramesInHostPrm.cbCtx = &gVcapModuleContext;
        ipcFramesInHostPrm.cbFxn = VcapVenc_ipcFramesInCbFxn;

    Is there any thing I miss or how can I debug which part get wrong? thanks