Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

[FAQ] PROCESSOR-SDK-DRA8X-TDA4X: Multi channel processing in OpenVX

Part Number: PROCESSOR-SDK-DRA8X-TDA4X

I am trying to create a pipelined graph in OpenVX.  My application is a 2 camera capture application where I want to process these channels in separate downstream nodes.  I see that the output of the capture node is an object array and so I am trying to use the vxGetObjectArray API to extract the individual channels of the object array and pass these to downstream OpenVX nodes.  However, I am observing issues in my application.  The downstream nodes are not processing the data from the capture node correctly.  How can I create this application in OpenVX?

  • There are a few things to consider when creating a multi channel graph in OpenVX using pipelining.

    In the case that each of the channels are being processed by the same downstream node, using the vxReplicateNode feature is the recommended approach in TIOVX.  This method reduces application code size and is generally a more scalable approach to using multiple channels.  A common case is where this occurs is when the tivxCaptureNode output is connected to the tivxVpacVissNode.  Each of the captured channels are processed by the VISS HWA and thus the replicate node feature can be used.

    However, in the case listed above, the replicate node feature will not be sufficient given that the channels are processed by different nodes.  In this case, the vxGetObjectArray API must first be used as stated.  However, in addition to using the vxGetObjectArray API, the downstream node consuming the multi channel output must also be modified to consume the proper channel.  The API tivxGetObjDescElement can be used within the node process callback itself to extract the element used by the node.  An example of the usage of this API can be found in tiovx/kernels_j7/hwa/display/vx_display_target.c.

    For more information on this topic, please refer to the section in the user guide below:

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/tiovx/docs/user_guide/TIOVX_USAGE_REC.html#TI_PIPELINING_COMPOSITE_OBJECTS