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.

Connecting multiple processing blocks in Codec Engine/XDAIS

Hello,

I am currently exploring how to connect subsequent (XDAIS compliant ) dataprocessing blocks such

that a processing chain results. Is it simply a matter of defining variables in a memoryspace, have the

first dataprocessing block fill it, and the subsequent block use the variable?

Are there any examples available where multiple processing steps have been put in series?

Thanks,

-Frans

  • Codec Engine doesn't have native support for chaining algorithms together.  It's difficult to generalize the connections between algorithms.  Some frameworks built on top of CE (e.g. GStreamer and OpenMAX) do define these connections and do allow connecting their components (which may include Codec Engine driven algorithms).  Depending on what you're trying to connect, one of these frameworks may be an option.

    However, 'connecting' algorithms can often be done by simply calling them back to back.  Some users like this explicitness as it gives the application flexibility to move an algorithm in the chain from one processor (e.g. remote) to another (e.g. local) without changing the app.  Other users 'know' internal details about the algorithms that allow performance optimizations that a general chaining mechanism may not allow (e.g., if the app knows both algs are local and access the shared buffer with CPU (not DMA), some cache-related optimizations can be made).

    Many of the examples provided with Codec Engine (e.g. examples/ti/sdo/ce/examples/audio_copy/app.c) demonstrate how to invoke an algorithm chain back-to-back.  In those examples, often there's an encoder tied to a decoder, where the output buffers of the encoder are fed directly as input buffers to the decoder.

    Hopefully, that's enough to get you started.

    Chris

  • Hi Chris,

    thank you for your elaborate answer, it exactly addressed my questions and pointed me to a useful example.

    Many thanks again.

    -Frans