Customize ASOT params, patchs, and configuration
[processor-sdk/performance-audio-sr.git] / processor_audio_sdk_1_00_00_00 / pasdk / test_dsp / framework / audioStreamOutProc.h
index 3ecc7322f2e4364ba0bfea9fb7cbd3b16b5fd6a6..90220aebd4f06ce07c3ad93f0a33c3e6aad53355 100644 (file)
@@ -49,31 +49,152 @@ All rights reserved.
 // Global debug counter */
 extern Uint32 gTaskAsopCnt; // debug counter for ASOP task
 
+struct PAF_ASOT_Params;
+struct PAF_ASOT_Patchs;
+struct PAF_ASOT_Config;
+
+// Audio Stream Output Task (ASOT) parameters, functions
+typedef struct PAF_ASOT_Fxns {
+    Int (*initPhase[8]) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *);
+    Int (*initFrame0) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *, Int);
+    Int (*initFrame1) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *, Int, Int);
+    //Int (*passProcessing) (const struct PAF_AST_Params *, const struct PAF_AST_Patchs *, struct PAF_AST_Config *, Int);
+    //Int (*passProcessingCopy) (const struct PAF_AST_Params *, const struct PAF_AST_Patchs *, struct PAF_AST_Config *);
+    //Int (*autoProcessing) (const struct PAF_AST_Params *, const struct PAF_AST_Patchs *, struct PAF_AST_Config *, Int, ALG_Handle);
+    Int (*decodeProcessing) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *, Int);    
+    //Int (*decodeCommand) (const struct PAF_AST_Params *, const struct PAF_AST_Patchs *, struct PAF_AST_Config *);
+    Int (*encodeCommand) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *);
+    Int (*decodeInit) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *, Int);
+    //Int (*decodeInfo) (const struct PAF_AST_Params *, const struct PAF_AST_Patchs *, struct PAF_AST_Config *, Int, Int);
+    Int (*decodeInfo1) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *, Int, Int);
+    Int (*decodeInfo2) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *, Int, Int);
+    //Int (*decodeCont) (const struct PAF_AST_Params *, const struct PAF_AST_Patchs *, struct PAF_AST_Config *, ALG_Handle *, Int, Int);
+    //Int (*decodeDecode) (const struct PAF_AST_Params *, const struct PAF_AST_Patchs *, struct PAF_AST_Config *, Int, Int, Int);
+    Int (*decodeStream) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *, Int, Int);
+    Int (*decodeEncode) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *, Int, Int);
+    //Int (*decodeFinalTest) (const struct PAF_AST_Params *, const struct PAF_AST_Patchs *, struct PAF_AST_Config *, Int, Int);    
+    Int (*decodeComplete) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *, ALG_Handle *, Int, Int);
+    Int (*selectDevices) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *);
+    Int (*sourceDecode) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *, Int);    
+    Int (*startOutput) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *);
+    Int (*stopOutput) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *);
+    Int (*setCheckRateX) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *, Int);
+    Int (*streamChainFunction) (const struct PAF_ASOT_Params *, const struct PAF_ASOT_Patchs *, struct PAF_ASOT_Config *, Int, Int, Int);
+    Int (*deviceAllocate) (SIO_Handle *, int, int, int, Ptr);
+    Int (*deviceSelect) (SIO_Handle *, int, int, Ptr);
+    //Int (*computeFrameLength) (Int, Int, Int);
+    //Int (*updateInputStatus) (SIO_Handle, PAF_InpBufStatus *, PAF_InpBufConfig *);
+    //Int (*copy) (Uns, PAF_InpBufConfig *, Uns, PAF_OutBufConfig *);
+
+    // For RAM_report
+    Void (*headerPrint)();
+    Int  (*allocPrint)(const PAF_ALG_AllocInit *pInit, Int sizeofInit, PAF_IALG_Config *p);
+    Void (*commonPrint)(IALG_MemRec common[], PAF_IALG_Config *p);
+    Void (*bufMemPrint)(Int z, Int size, Int heapId, Int bufType);
+    Void (*memStatusPrint)(HeapMem_Handle hInternalHeap, HeapMem_Handle hInternal1Heap, HeapMem_Handle hExternalHeap, HeapMem_Handle hInternal1HeapShm);
+} PAF_ASOT_Fxns;
+
+// Audio Stream Output Task (ASOT) parameters
+typedef struct PAF_ASOT_Params {
+    const PAF_ASOT_Fxns *fxns;
+    struct {
+        SmInt master;
+        SmInt inputs;
+        SmInt input1;
+        SmInt inputN;
+        SmInt decodes;
+        SmInt decode1;
+        SmInt decodeN;
+        SmInt streams;
+        SmInt stream1; /* unused */
+        SmInt streamN; /* unused */
+        SmInt encodes;
+        SmInt encode1;
+        SmInt encodeN;
+        SmInt outputs;
+        SmInt output1;
+        SmInt outputN;
+    } zone;
+    const SmInt *inputsFromDecodes;
+    const SmInt *outputsFromEncodes;
+    struct {
+        int *pHeapIdIntern;   //int *pIntern;
+        int *pHeapIdExtern;   //int *pExtern;
+        int *pHeapIdInpbuf;   //int *pInpbuf;
+        int *pHeapIdOutbuf;   //int *pOutbuf;
+        int *pHeapIdFrmbuf;   //int *pFrmbuf;
+        int *pHeapIdIntern1;  //int *pIntern1;
+        int clear; 
+    } heap;
+    struct {
+        const IALG_MemSpace *space;
+    } common;
+    const LgInt *z_rx_bufsiz;
+    const LgInt *z_tx_bufsiz;
+    const SmInt *z_numchan;
+    MdInt framelength;
+    const PAF_AudioFunctions *pAudioFrameFunctions;
+    const struct PAF_ASP_ChainFxns *pChainFxns;
+    const PAF_InpBufStatus *pInpBufStatus;
+    const PAF_DecodeStatus * const *z_pDecodeStatus;
+    const PAF_OutBufStatus *pOutBufStatus;
+    const PAF_EncodeStatus * const *z_pEncodeStatus;
+    const PAF_VolumeStatus *pVolumeStatus;
+    const PAF_ASP_AlgKey *pDecAlgKey;
+    const PAF_ASP_AlgKey *pEncAlgKey;
+    const PAF_ASP_SioMap *pDecSioMap;
+    const SmInt *streamsFromDecodes;
+    const SmInt *streamsFromEncodes;
+    const MdInt maxFramelength;
+    const SmInt *streamOrder;
+    const PAF_ASP_LinkInit * const (*i_inpLinkInit);
+    const PAF_ASP_LinkInit * const (*i_outLinkInit);
+    const PAF_ASP_outNumBufMap *  const (*poutNumBufMap);
+    const PAF_MetadataBufStatus *pMetadataBufStatus;
+    const PAF_AudioFrameBufStatus *pAudioFrameBufStatus;
+} PAF_ASOT_Params;
+
+// Audio Stream Output Task (ASOT) patchs
+typedef struct PAF_ASOT_Patchs {
+    //const PAF_SIO_ParamsN * devinp;
+    const PAF_SIO_ParamsN * devout;
+    //const PAF_ASP_LinkInit * const (*i_decLinkInit);
+    const PAF_ASP_LinkInit * const (*i_aspLinkInit)[GEARS];
+    const PAF_ASP_LinkInit * const (*i_encLinkInit);
+} PAF_ASOT_Patchs;
+
+// Audio Stream Input Task (ASOT) configuration
+typedef struct PAF_ASOT_Config {
+    ACP_Handle     acp;
+    PAF_AST_Config *pAstCfg; // ASIT/ASOT/ASDT shared configuration
+} PAF_ASOT_Config;
+
+
 //   Purpose:   Audio Stream Outpu Task Function for initialization of data pointers
 //              by allocation of memory.
 Int 
 PAF_ASOT_initPhaseMalloc(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC
 );
     
 //   Purpose:   Audio Stream Output Task Function for initialization of data values
 //              from parameters.
 Int
 PAF_ASOT_initPhaseConfig(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC
 );
 
 //   Purpose:   Audio Stream Output Task Function for initialization of ACP by
 //              instantiation of the algorithm.
 Int
 PAF_ASOT_initPhaseAcpAlg(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC
 );
 
 //   (***) FL: ASIT/ASOT currently consider common memory independently.
@@ -81,34 +202,34 @@ PAF_ASOT_initPhaseAcpAlg(
 //   Purpose:   Audio Stream Output Task Function for allocation of common memory.
 Int
 PAF_ASOT_initPhaseCommon(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC
 );
 
 //   Purpose:   Audio Stream Output Task Function for initialization of ASP algorithms.
 Int
 PAF_ASOT_initPhaseAspAlg(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC
 );
 
 //   Purpose:   Audio Stream Output Task Function for initialization of data values
 //              from parameters for Algorithm Keys.
 Int
 PAF_ASOT_initPhaseAlgKey(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC
 );
 
 //   Purpose:   Audio Stream Output Task Function for initialization of Input Devices.
 Int
 PAF_ASOT_initPhaseDevice(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC
 );
 
 //   Purpose:   Audio Stream Output Task Function for initialization of the Audio
@@ -116,9 +237,9 @@ PAF_ASOT_initPhaseDevice(
 //              and values.
 Int
 PAF_ASOT_initFrame0(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC, 
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC, 
     Int z
 );
 
@@ -127,9 +248,9 @@ PAF_ASOT_initFrame0(
 //              time-varying nature.
 Int
 PAF_ASOT_initFrame1(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC, 
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC, 
     Int z, 
     Int apply
 );
@@ -138,35 +259,35 @@ PAF_ASOT_initFrame1(
 //              for output.
 Int
 PAF_ASOT_selectDevices(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC
 );
 
 //   Purpose:   Audio Stream Output Task Function for processing audio data.
 //
 Int
 PAF_ASOT_decodeProcessing(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC, 
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC, 
     Int sourceSelect
 );
 
 //   Purpose:   Decoding Function for processing Encode Commands.
 Int
 PAF_ASOT_encodeCommand(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC
 );
 
 //   Purpose:   Decoding Function for reinitializing the decoding process.
 Int
 PAF_ASOT_decodeInit(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC, 
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC, 
     Int sourceSelect
 );
 
@@ -174,9 +295,9 @@ PAF_ASOT_decodeInit(
 //              is unique to initial frames of input data.
 Int
 PAF_ASOT_decodeInfo(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC, 
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC, 
     Int frame, 
     Int block
 );
@@ -185,9 +306,9 @@ PAF_ASOT_decodeInfo(
 //              is unique to initial frames of input data.
 Int
 PAF_ASOT_decodeInfo1(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC, 
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC, 
     Int frame, 
     Int block
 );
@@ -196,9 +317,9 @@ PAF_ASOT_decodeInfo1(
 //              is unique to frames of input data other than the initial one.
 Int
 PAF_ASOT_decodeInfo2(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC, 
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC, 
     Int frame, 
     Int block
 );
@@ -207,9 +328,9 @@ PAF_ASOT_decodeInfo2(
 //              ASP Algorithms.
 Int
 PAF_ASOT_decodeStream(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC, 
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC, 
     Int frame, 
     Int block
 );
@@ -218,9 +339,9 @@ PAF_ASOT_decodeStream(
 //              Encode Algorithm.
 Int
 PAF_ASOT_decodeEncode(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC, 
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC, 
     Int frame, 
     Int block
 );
@@ -228,9 +349,9 @@ PAF_ASOT_decodeEncode(
 //   Purpose:   Decoding Function for terminating the decoding process.
 Int
 PAF_ASOT_decodeComplete(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC, 
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC, 
     ALG_Handle decAlg[], 
     Int frame, 
     Int block
@@ -239,34 +360,34 @@ PAF_ASOT_decodeComplete(
 //   Purpose:   Decoding Function for initiating output.
 Int
 PAF_ASOT_startOutput(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC
 );
 
 //   Purpose:   Decoding Function for terminating output.
 Int
 PAF_ASOT_stopOutput(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC
 );
 
 //   Purpose:   Decoding Function for re-initiating output.
 Int
 PAF_ASOT_setCheckRateX(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC, 
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC, 
     Int check
 );
 
 //   Purpose:   Common Function for processing algorithm chains.
 Int
 PAF_ASOT_streamChainFunction(
-    const PAF_AST_Params *pP, 
-    const PAF_AST_Patchs *pQ, 
-    PAF_AST_Config *pC, 
+    const PAF_ASOT_Params *pP, 
+    const PAF_ASOT_Patchs *pQ, 
+    PAF_ASOT_Config *pC, 
     Int iChainFrameFxns, 
     Int abortOnError, 
     Int logArg