% // used to 'escape' the percent and backtick chars throughout
% var PCT = '%';
% var BKTK = '`';
Codec Engine 1.10 Release Notes
Codec Engine 1.10 Release
This Codec Engine Release is targetted to the DaVinci platforms,
enabling users to instantiate and utilize both local and remote codecs.
In addition to the heterogenous DM644x devices, it supports single
processor environments as well; specifically Joule
devices, ARM9 devices running Linux and x86 devices running Linux.
The Codec Engine is a software platform for algorithm execution that
satisfies the following, high-level goals:
Robust - drives pre-integrated components with fully
characterized performance.
Easy to use - app developers specify what needs to
be run, but not how or where.
Extensible and Configurable - new algorithms can be added
by anyone, using standard tools and techniques.
Portable - API's are target, platform, and in many cases
even codec independant.
The Codec Engine consists of the following packages:
ti.sdo.ce - The Codec Engine runtime.
ti.sdo.ce.video - The Codec Engine video component.
Both encode and decode are supported, and an example is provided.
ti.sdo.ce.image - The Codec Engine image component.
Both encode and decode are supported, and an example is provided.
ti.sdo.ce.speech - The Codec Engine speech/voice component.
Both encode and decode are supported, and an example is provided.
ti.sdo.ce.audio - The Codec Engine audio component.
Both encode and decode are supported, and an example is provided.
ti.sdo.ce.osal - The Codec Engine OS Abstraction
Layer. This package insulates CE from the OS it's running on, and
provides a few Modules for customers to use (e.g. Memory).
ti.sdo.ce.utils.trace - The Codec Engine utility
package for trace. This includes the TraceUtils module. This makes
tracing features easier to use by an application. It will be
supported in this release, but may be replaced in a future release
with an incompatible implementation.
Additionally, this release of the Codec Engine supports the xDM 1.0
beta interfaces included in xDAIS 5.10. This support is provided in
the following packages:
ti.sdo.ce.video1 - The Codec Engine video 1.0 component
(supporting the xDM 1.0 beta interfaces). Both encode and decode
are supported, and an example is provided.
ti.sdo.ce.image1 - The Codec Engine image 1.0 component
(supporting the xDM 1.0 beta interfaces). Both encode and decode
are supported, and an example is provided.
ti.sdo.ce.speech1 - The Codec Engine speech 1.0 component
(supporting the xDM 1.0 beta interfaces). Both encode and decode
are supported, and an example is provided.
ti.sdo.ce.audio1 - The Codec Engine audio 1.0 component
(supporting the xDM 1.0 beta interfaces). Both encode and decode
are supported, and an example is provided.
The Codec Engine packages are available in the "packages/"
subdirectory of the product. If you have a previous release of the
Codec Engine product, you can install this release next to it, and
modify your application and/or server builds to use this newer release.
If you're using the DVEVM, this can be done by setting the
CE_INSTALL_DIR variable in the Rules.make file at the
top of the DVEVM distribution directory.
Compatibility Breaks!
Some of the components Codec Engine builds upon have evolved and
broken compatibility with previous releases. Specifically, DSP/BIOS
and some components within the XDC tools. As a result, the customer
upgrading from CE 1.02 to CE 1.10 may experience some of the following
errors if they aren't using the correct versions of CE dependent components:
When building a DSP-side executable, if you haven't updated to
BIOS 5.31.01 (or compatible), you may encounter a build error
similar to the following:
js: "/home/user/dvevm_1_10/xdctools_1_21/packages/xdc/cfg/cfg.js",
line 143: exception from uncaught JavaScript throw: Error:
incompatible use of package 'ti.bios', imported version
[5,2,2,20], ti.bios.utils was built with version [5, 2, 3, 11],
ti.sdo.ce.osal was built with version [5, 2, 3, 11],
ti.sdo.fc.dskt2 was built with version [5, 2, 3, 11],
ti.sdo.fc.dman3 was built with version [5, 2, 3, 11],
ti.sdo.fc.acpy3 was built with version [5, 2, 3, 11],
ti.sdo.ce.bioslog was built with version [5, 2, 3, 11]
You'll need to update your build to utilize a version of DSP/BIOS
compatible with BIOS 5.31.01.
The GCC Monta Vista target (used to build ARM-side executables) has
broken compatibility in order to add support for Monta Vista's
Windows build environment. This change requires CE 1.10 customers
to update to the XDC tools provided in BIOS 5.31.01 or later. You
can set XDC_INSTALL_DIR to your environment's
bios_5_31_01/xdctools.
Failure to update to
these new xdctools may result in strange errors when building the
updated examples, like the following:
/db/toolsrc/library/vendors2005/mvl/arm/mvl4.0-new/montavista/pro
/devkit/arm/v5t_le/bin/../lib/gcc/armv5tl-montavista-linuxeabi/3.
4.3/../../../../armv5tl-montavista-linuxeabi/bin/ld:./ceapp_packa
ge/package/cfg/pkg_x470MV.xdl: file format not recognized; treati
ng as linker script
/db/toolsrc/library/vendors2005/mvl/arm/mvl4.0-new/montavista/pro
/devkit/arm/v5t_le/bin/../lib/gcc/armv5tl-montavista-linuxeabi/3.
4.3/../../../../armv5tl-montavista-linuxeabi/bin/ld:./ceapp_packa
ge/package/cfg/pkg_x470MV.xdl:2: parse error
collect2: ld returned 1 exit status
Breaks occurred in 2 places; the examples have been updated to
reflect these changes:
The rootDir configuration has "moved up" one level.
Codec Engine users typically configure this in user.bld,
and will have to set this variable one directory higher than
previous releases.
The format of the autogenerated linker command file (with the
.xdl extension) has changed in format. As a result, when
adding this file to an application's link line, rather than the
previous technique of "cat'ing" the contents of the file onto
the link line, you now simply provide the name of the file.
The following significant changes have been made since 1.00.
1.10 (This Release)
General
Updated to C6x Codegen 6.0.7
Updated to DSP/BIOS 5.31.01
Updated to Framework Components 1.10.01
Updated to xDAIS 5.10, which includes xDM 1.0 beta
interfaces
CE Runtime
Added new methods to ti.sdo.ce.ICodec interface
(getCreationStackSize(),
getDaramScratchSize(), and
getSaramScratchSize()) to make Server configuration
easier. When codecs implement these methods, the XDC Config Kit
is able to either:
Auto-generate the DSKT2 scratch configuration, or
Validate the scratch config (if the server integrator
wants to continue explicitly configuring those values).
VISA
Added support for xDM 1.0 Beta interfaces. (Previous xDM
0.9 interfaces continue to be supported)
SPI (System Programming Interfaces)
Added VISA_setContext() and
VISA_getContext() services for stub/skeleton/API authors.
Documentation
Added "Adapter" application note describing how to integrate
non-xDM codecs, as well as a technique for adding pre- and post-
processing steps to existing codecs without modifying them.
Examples
Added new, Linux-only example demonstrating how users can
create a shared library from a single configuration, which can
then be used by multiple applications.
Added a new example, explicitly describing the steps taking
during configuration to better demonstrate the necessary
configuration steps for users who want to integrate this into
their own, custom build flows.
Modified example codecs, when possible, to utilize copy
codecs now distributed in xDAIS 5.10. In this way, it's more
clearly described what little XDC packaging is required to
integrate an already XDC packaged Codec (independant of CE) into
the CE framework.
Defects
SDSCM00010422 - CE and CMEM should set the close-on-exec
flag on any open file handles
SDSCM00005810 - Additional C++ testing required
SDSCM00004993 - GT no longer supports wildcards as second
character
SDSCM00004805 - GT computes (a lot) during GT_?trace()
Enhancements
SDSCM00010364 - GT needs productized
SDSCM00008121 - not possible to properly size RMS thread's
stack
SDSCM00007887 - Support VISA_getContext/setContext SPIs
SDSCM00006616 - CE should ensure unique UUIDs
SDSCM00003992 - Add pre- and/or post- process example to
codecs
SDSCM00002920 - ICodec should have a getScratchSize method
Minor updates to the Codec Engine Application Developer's
Guide (SPRUE67A)
1.01
General
Many trace strings were modified/added.
C64P libraries built with 6.0.3 compiler.
VISA Classes
Audio Encoding support has been added
Better compliance checking of "size" field. This field
must be set correctly in the various VISA APIs, as it is
now used to determine how much data to provide to the
codecs.
Related to previous bullet, added extended xDM support to
VIDDEC, VIDENC, AUDDEC, IMGDEC, and SPHDEC classes. There are
limits to the size of the extended structures, and they must not
contain pointers in the extended structures.
outArgs fixed to be provided in the case of a failed
process() call (enabling inspection of extendedError).
Removed cache alignment validation of input buffers. When the
application can ensure cache coherence, these buffers need not be
aligned.
Documentation
Minor updates to the Codec Engine Application Developer's
Guide (SPRUE67A)
The VISA 1.0 classes reflecting the xDM 1.0 beta interfaces don't
support "sparse" XDM_BufDesc structures. They support multiple
buffers in XDM_BufDesc, but they must start at index 0 and end at
index numBufs - 1. See the xDM 1.0 beta Reference Guide for more
details on the sparse nature of the XDM_BufDesc structure.
x86 Linux support
Support for "native Linux" (x86) in the examples has been disabled
in examples/user.bld by default. Build validation on some Linux
distributions failed, and as such it was removed from the
examples. (Note that the examples ran, so this appears to be
purely build related, and is related to the fact that different
distributions place codegen in different locations). Because it's
a popular feature, and works on many
distributions, the Codec Engine libraries for x86 are still
distributed, but this platform is not currently officially
supported. We're working to resolve the issues and restore
functionality in a future Codec Engine release.