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.

TDA4VH-Q1: Graph is stuck on vxGraphParameterDequeueDoneRef() after running some iterations

Part Number: TDA4VH-Q1


Tool/software:

Hi TI,

Using SDK version 09.02.00.05 in QNX platform.

We have a working pipeline with two OD outputs stitch together in Mosaic node and display it into screen. Now we have a new requirement that as per user input the display should switch either OD o/p or Normal (with out OD) output in the monitor.  The graph looks as below:

For normal images we are considering LDC output images. When we give LDC o/p to mosaic node the graph execution gets stuck on vxGraphParameterDequeueDoneRef() after running for few iterations. There is no error on the terminal.  

We have even tried with viss and scaler nodes output giving to the mosaic. Same is happening in case of these two as well. Only Post-Proc output is working in the mosaic input. The only thing we are changing here is the mosaic input array rest all is as it is. What can be the reason for this?

  • Hi,

    May I know how are you changing the mosaic input array?

    Typically the switching happens in the display node on an image with an object array as parent. However, the mosaic node outputs an image.

    So may I know how are you trying to achieve switching in Display here?

    Regards,

    Nikhil

  • Hi Nikhil, 

    I am not talking about dynamically changing the mosaic input array here. We are changing it in the code and building the app.

    We are not doing any switching on the display. 

    Only the above change is done to change the mosaic input arr. Just by doing this, the app is running for few frames and is stucking. But same works for drawdetection output.

    regards,

    Lalit

  • Hi Lalit,

    So earlier you had 2 OD inputs to the mosaic node which is seen on 1 display side-by-side.

    Now you are trying to display LDC output + 1 OD output to the mosaic node which will be seen on the display side-by-side?

    May I know if this is your usecase?

    Regards,

    Nikhil

  • Hi Nikhil, 

    No, both the images are now non-OD images i.e. LDC output

    regards,

    Lalit

  • Hi,

     vxGraphParameterDequeueDoneRef()

    May I know what is the graph parameter here? 

    What the buffer depth set to LDC output?

    Are you still using the node Pre-Proc, TIDL, Post-proc? If yes, where is the output of Post-proc pointing to now?

    Regards,

    Nikhil

  • Hi Nikhil, 

    May I know what is the graph parameter here? 

    We are enqueuing and dequeuing capture nodes output i.e. raw image output array.

    What the buffer depth set to LDC output?

    We are not explicitly setting the buffer depth of any node by the api tivxSetNodeParameterNumBufByIndex(). I read it in the documentation that the framework will take care of it if it is not set in the application. Though I tried setting it explicitly(=6) but that also didn't work.  

    Are you still using the node Pre-Proc, TIDL, Post-proc? If yes, where is the output of Post-proc pointing to now?

    Yes, These nodes are still there but output of post-proc(draw-detection) is not used anywhere when I use LDC's output.

    regards,

    Lalit

  • Hi Lalit,

    Yes, These nodes are still there but output of post-proc(draw-detection) is not used anywhere when I use LDC's output.

    Can you disable pre-proc, tidl and post-proc and check if you are able to get the output?

    Regards,

    Nikhil

  • Hi Nikhil,

    I cannot disable these nodes because we are planning to use the output of post-proc further in an other mosaic node also.

    I tried one workaround on my side:

    I created two independent vx object arrays and I assigned these object arrays in the input array of mosaic. I am updating these two object arrays with the respective ldc node's output using  APIs vxMapImagePatch() and vxCopyImagePatch() after each graph iteration. Even with this method I am facing the same issue.

    When I comment the array update logic then the graph runs perfectly fine i.e. using empty object arrays(created but garbage images).

    regards,

    Lalit

  • Hi Nikhil,

    I created two independent vx object arrays and I assigned these object arrays in the input array of mosaic. I am updating these two object arrays with the respective ldc node's output using  APIs vxMapImagePatch() and vxCopyImagePatch() after each graph iteration. Even with this method I am facing the same issue.

    Nevermind, this workaround actually worked and now I am able to see non-OD images in the mosaic output on display. The graph is running fine. Maybe I missed something earlier in this.

    regards,

    Lalit

  • Hi Lalit,

    Does this resolve your issue?

    Regards,

    Nikhil