Data Fields

Server_AlgDesc Struct Reference
[Codec Engine Server Interface]

#include <Server.h>

Collaboration diagram for Server_AlgDesc:
Collaboration graph
[legend]

Data Fields

String name
 The name of the algorithm. This is used by the application when instantiating an instance of the algorithm through one of the VISA APIs.
IALG_Fxnsfxns
 The address of the XDAIS alg function table.
Ptr idmaFxns
 The address of the IDMA3_Fxns function table, if the algorithm uses DMA. If the algorithm does not use DMA, this field should set to NULL. Valid for local algorithm only.
Bool isLocal
 If true, the algorithm will be instantiated on the "local" CPU. Otherwise the server will create an instance of the algorithm.
Int groupId
 This id specifies which resource sharing group that this alg will be placed into.
Ptr iresFxns
 Address of the XDAIS alg IRES Interface function table.
Void * stubsCodecClassConfig
Void * codecClassConfig
 Codec class configuration data, if any.
Engine_CachedMemType memType
String types
 A string idicating the type(s) of algorithm this is. This should be a ';' separated string of inherited types.
String stubFxnsName
 A string idicating the name of the stub functions. This is needed by remote apps that call Engine_initFromServer().
SKEL_Fxns * skelFxns
 The skel functions needed to invoke the alg remotely.
Int priority
 The priority the alg will run at.
Int stackSize
 Algorithm stack size.
Int stackSeg

Field Documentation

The name of the algorithm. This is used by the application when instantiating an instance of the algorithm through one of the VISA APIs.

The address of the XDAIS alg function table.

Remarks:
All XDAIS algorithms must define an IALG_Fxns structure that contains implementations of the IALG methods. This field is simply the address of this structure.

The address of the IDMA3_Fxns function table, if the algorithm uses DMA. If the algorithm does not use DMA, this field should set to NULL. Valid for local algorithm only.

If true, the algorithm will be instantiated on the "local" CPU. Otherwise the server will create an instance of the algorithm.

This id specifies which resource sharing group that this alg will be placed into.

Remarks:
This 'group' concept is used by the framework for sharing resources. Algorithms in the same group share resources, and therefore, must not run at the same time. If you assign the same groupId to multiple algorithms, these algorithms must not pre-empt eachother, or the shared resources may be corrupted. When server algorithms are configured statically in a .cfg file, if the groupId parameter for the algorithm has not been set, the configuration process assigns the groupId will be assigned automatically, based on the priority that the algorithm will run at. However, when Server_addAlg() is used to dynamically add the algorithm to the server, you must ensure that the groupId is appropriately. If two algorithms will run at the same time, you must assign them different group Ids.

Algorithms in different groups do not share resources.

See also:
https://processors.wiki.ti.com/index.php/Codec_Engine_GroupIds

Address of the XDAIS alg IRES Interface function table.

Remarks:
All XDAIS algorithms that use an IRES resource must define an IRES_Fxns structure containing the pointers to functions implementatng the IRES interface. If the algorithm does not use an IRES resource this field should be set to NULL.

Codec class configuration data, if any.

Memory type for alg's mem reqs.

A string idicating the type(s) of algorithm this is. This should be a ';' separated string of inherited types.

Remarks:
In most cases, types will just be set to the VISA type defined in the Codec Engine algorithm interface header file included by the algorithm, depending on the XDM interface the algorithm implements.

For example, if the algorithm implements the ISPHDEC1 interface as defined by XDM, types should be set to SPHDEC1_VISATYPE (defined as "ti.sdo.ce.speech1.ISPHDEC1" in the header file ti/sdo/ce/speech1/sphdec1.h).

Another example to illustrate multiple typss specified in typss, if the algorithm implements the (made-up) interface, ti.sdo.ce.test.xvideo.IVIDE, which in turn implements the IVIDDEC interface, we could then set types to VIDDEC_VISATYPE";ti.sdo.ce.test.xvideo.IVIDE" or "ti.sdo.ce.test.xvideo.IVIDE;"VIDDEC_VISATYPE

A string idicating the name of the stub functions. This is needed by remote apps that call Engine_initFromServer().

The skel functions needed to invoke the alg remotely.

The priority the alg will run at.

Algorithm stack size.


The documentation for this struct was generated from the following file:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Copyright 2012, Texas Instruments Incorporated