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.

Dual processed on DM6446?

I have a question.

On ARM side, I use "Engine_open", "VIDDEC_create","VIDDEC_control","VIDDEC_process","VIDDEC_delete","Engine_close",etc

to call DSP. In "VIDDEC_process",I jumped to DSP side from ARM side,and executed the Algorithm on DSP side .

When DSP executed its Algorithm, the state of ARM is idle??

How can I tell ARM to keep doing the remaining things?

Thanks all.

 

  • When ARM calls DSP via VIDDEC_process, the ARM thread that made this function call blocks until the DSP-side returns; however, any other thread running on Linux can still do work.  By default, the Linux scheduler will allocate time to other threads when the current thread blocks.  Therefore, to answer your question, you simply need to create another thread within your process or another process (e.g. run a different program) for the ARM to continue to do work while that one thread that called xxx_process blocks.

  • Juan's solution is correct, and is what most users, including the DVSDK demos, do.

    Additionally, you may also want to look at the processAsync()/processWait() variants of the process() call.

    Chris

  • I have a little question.

    Is "pthread_cond_wait" similar to "VIDDEC_process"??

    Thanks all