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.

TDA2PXEVM: Plugin to receive two inputs from two Alg_plugins

Part Number: TDA2PXEVM

Hello All,

I'm working on TDA2PX and visionSDK 3.5 version.

I want to create Alg_plugin which receives inputs (System_VideoFrameBuffer type) from 2 Alg_plugins, processes it and gives composite output.

I have set "numInputQUsed " to 2, also done changes for composite buffer in plugin create function. I also have done changes in usecase generation tool and generated usecase successfully.

What more changes  I need to do to receive 2 System_VideoFrameBuffer type inputs in the plugin process function ?

Can you please suggest any existing plugin for reference?

Best regards,

Megha

  • Hi,

    For receiving input from 2 link you can refer any link which has multiple input like merge link.

    And for outputting composite buffer, please refer sync link.

    I would better suggest that your link should get a single input queue with 2 channels in it and use a merge link before your link to merge 2 input queue to a single queue with multiple channel.

    Regards,

    Anuj

  • Hi Anuj,

    I modified my link such as it receives 1 input queue with 2 input channels. I used merge link before Alg_link as you suggested.

    I want my Alg_link to receive 2 inputs(System_VideoFrameBuffers ) and sends 1 composite buffer (containing 2 input System_VideoFrameBuffer ) . I created output buffer of composite type in Alg create function.

    I have DSS link after my Alg_link which splits two frames of composite buffer and feds to display link. 

    I'm getting flickering output on display i.e. at a time only one frame is displayed and other portion of screen is green.

    I'm getting inputBufList.numBuf = 2 in ALg_link process function. I think at a time only one frame out of two inputs is fed to next link.

    What all changes do I need to do to get correct output?

    Can you please suggest any link which have more than one input buffers (System_VideoFrameBuffers) and 1 composite buffer at the output for reference?

    Best Regards,

    Megha

  • Hi,

    Have you checked sync link as suggested before.

    Sync link can receive multiple inputs and give single output composite buffer.

    It has the same implementation as your requirement.

    Please refer that.

    Regards,

    Anuj

  • Hi Anuj,

    One more query, can DSS link supports  System_VideoFrameBuffers as inputs?

    Regards,

    Megha

  • Hi,

    Please check below function

    DssM2mWbLink_drvProcessData()

    if(1U < pCreatePrm->numInPipeLines)
    {
    /* If the no of input pipelines is more than 1 then composite
    buffer is expected */
    UTILS_assert(SYSTEM_BUFFER_TYPE_VIDEO_FRAME_CONTAINER == \
    pInBuffer->bufType);
    }
    else
    {
    /* If the no of input pipelines is 1 then input buffer can be either
    composite or video frame */
    UTILS_assert(
    (SYSTEM_BUFFER_TYPE_VIDEO_FRAME_CONTAINER == pInBuffer->bufType) ||
    (SYSTEM_BUFFER_TYPE_VIDEO_FRAME == pInBuffer->bufType) ||
    (SYSTEM_BUFFER_TYPE_EGLPIXMAP_VIDEO_FRAME == pInBuffer->bufType));
    }

    Its been mentioned that if the no of pipeline is more than 1 then only composite buffer is expected and in your case its 2 so you have to provide composite buffer.

    Regards,

    Anuj