Wed Jul 29 17:05:44 CEST 2009

TI docs + examples

After reading some code it's time to go for the docs[1].  For the
codec engine there doesn't seem to be too much to know.  The page does
contain some interesting remarks about the buffer memory, which is in
memory shared by the GPP and DSP.

It notes that in order to ensure contiguous memory for codec
_instances_ one might need to be careful with the order of codec
create and delete operations.

The leaky abstraction fun starts right here!!

So let's have a look at an encoder example.  Where to find?  In
codec_engine_2_24.tar.gz from here[4].

First, let's list the acronyms again:

CE      codec engine
FC      framework components (resource management)
SDO     (not specified.. includes CE and FC)
XDM     eXpressDSP Digital Media
XDAIS   eXpressDSP Algorithm Interoperability Standard
XDC     eXpressDSP Components
VISA    video image speech audio (APIs \in XDM)

Apparently there is a scripting language[5] for the XDC packaging
system based on JavaScript 1.5 (Mozilla Rhino).  Good for TI.  Looks
like it is used in the red-tape part of the codec engine.

In codec_engine_2_24/examples/ti/sdo/ce/examples/codecs/videnc_copy is
an example of how to write a codec.  It doesn't look too bad.  Mostly
DMA start+wait to get the data from shared memory to local (SRAM?) and

But that's not what I want right now.  Using the CE is demonstrated in
codec_engine_2_24/examples/ti/sdo/ce/examples/apps.  Let's looks at
vidtranscode/app.c first.  It uses the VIDTRANSCODE_* api.

[1] http://tiexpressdsp.com/index.php/Codec_Engine_Application_Developers_Guide
[2] http://tiexpressdsp.com/index.php/Codec_Engine_FAQ
[3] http://wiki.davincidsp.com/index.php/Codec_Engine_Examples
[4] http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent//CE/index.html
[5] http://focus.ti.com/lit/ug/spruex4/spruex4.pdf