Delivering a Codec Server

In addition to including the server executable in the server package, you must also add the generated package/info/* files to the package. These files contain information in text form about the codecs included in the server, the server's memory map, and other relevant information.

To create a deliverable package, we recommend you use the built-in method in XDC to create a .tar package archive, as shown in the following section.

2.3.1Delivering Server Packages for Servers Built with XDC

If you built your server via XDC (that is, there is a "package.bld" file and the makefile is very short), you need to add the directory "package/info" to Pkg.otherFiles as follows to include the generated server info files in the release:

Pkg.otherFiles = [ ...., "package/info", ... ];

Also, modify the makefile to run the "xdc release" step as the main goal (differences shown in bold):

EXAMPLES_ROOTDIR := $(CURDIR)/../../../../../..

include $(EXAMPLES_ROOTDIR)/xdcpaths.mak

#add the examples directory to the list of paths to packages XDC_PATH := $(EXAMPLES_ROOTDIR);$(XDC_PATH)

#include $(EXAMPLES_ROOTDIR)/buildutils/xdcrules.mak

#run "xdc release" to create a tar file with the server(s) all:

$(XDC_INSTALL_DIR)/xdc release XDCPATH="$(XDC_PATH)" \ XDCOPTIONS=$(XDCOPTIONS) $@ -PD .

When you type "make", a .tar file will be created. That is your server deliverable.

See ti/sdo/ce/examples/servers/all_codecs/package.bld for an example.

2.3.2Delivering Server Packages for Servers Built with Configuro-based makefiles

If you built your server via Configuro (a utility that generates object and linker files from a user .cfg script) that is driven from a makefile (which is then not very short), you must add a step to the makefile to create a server package and an archive from it.

Configuring a Codec Server

2-17

Page 33
Image 33
Texas Instruments Codec Engine Server manual Delivering Server Packages for Servers Built with XDC

Codec Engine Server specifications

Texas Instruments Codec Engine Server (CES) is a powerful software framework designed to handle audio and video processing on embedded systems. It serves as a bridge between high-level application programming and low-level codec implementations, simplifying the development of multimedia applications. The Codec Engine's primary focus is on optimizing media codecs for applications such as telecommunications, video conferencing, multimedia playback, and streaming services.

One of the standout features of the CES is its ability to support multiple codecs simultaneously, allowing developers to efficiently decode and encode various media formats in real time. This flexibility is crucial for applications that demand high-quality audio and video processing without compromising performance. Furthermore, the CES architecture promotes modular design, enabling developers to swap in and out different codec implementations based on specific project requirements.

The CES leverages advanced technologies including simultaneous multithreading, which maximizes the processing power of multi-core processors. With this capability, developers can allocate threads efficiently across multiple cores, tackling demanding tasks without latency. Additionally, the framework supports dynamic codec allocation, meaning that resources can be managed and adjusted on-the-fly as needed, ensuring optimal performance in varying conditions.

Another significant characteristic of the CES is its compatibility with various Texas Instruments DSP (Digital Signal Processor) platforms. This ensures that developers can take advantage of the specialized capabilities of TI's hardware, including their power management features and high-performance processing capabilities. The integration of hardware and software within the CES architecture allows for optimized resource utilization, leading to energy-efficient applications.

The development process is further streamlined through the use of a comprehensive API (Application Programming Interface) that provides access to codec functionalities while abstracting the complexities of underlying hardware. This allows developers to focus on building high-level features without getting bogged down in low-level programming details.

In conclusion, Texas Instruments Codec Engine Server stands out as a robust solution for developers aiming to create high-performance media applications. Its support for multiple codecs, efficient resource management, and compatibility with TI DSP platforms make it an indispensable tool in the multimedia processing space. By facilitating seamless interaction between hardware and software, CES empowers developers to deliver richer multimedia experiences in their applications.