Codec Engine Application Programming Interface (API)  ce-w08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields
Server_AlgDesc Struct Reference

#include <Server.h>

Collaboration diagram for Server_AlgDesc:
Collaboration graph

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

String Server_AlgDesc::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_Fxns* Server_AlgDesc::fxns

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.
Ptr Server_AlgDesc::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 Server_AlgDesc::isLocal

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

Int Server_AlgDesc::groupId

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
Ptr Server_AlgDesc::iresFxns

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.
Void* Server_AlgDesc::stubsCodecClassConfig
Void* Server_AlgDesc::codecClassConfig

Codec class configuration data, if any.

Engine_CachedMemType Server_AlgDesc::memType

Memory type for alg's mem reqs.

String Server_AlgDesc::types

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

String Server_AlgDesc::stubFxnsName

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

SKEL_Fxns* Server_AlgDesc::skelFxns

The skel functions needed to invoke the alg remotely.

Int Server_AlgDesc::priority

The priority the alg will run at.

Int Server_AlgDesc::stackSize

Algorithm stack size.

Int Server_AlgDesc::stackSeg

The documentation for this struct was generated from the following file:
Copyright 2013, Texas Instruments Incorporated