]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/performance-audio-sr.git/blobdiff - pasdk/test_dsp/framework/audioStreamInpProc.c
Split ASIP and ASOP initialization into separate routines.
[processor-sdk/performance-audio-sr.git] / pasdk / test_dsp / framework / audioStreamInpProc.c
index ace2a1dc98405a10cddb490c22ea6adf663454ad..fb7b6ec41b305d481e6640ab349bead587db140c 100644 (file)
@@ -372,11 +372,10 @@ extern struct {
 #include "evmc66x_gpio_dbg.h"
 
 /*
- *  ======== taskAsipFxn ========
- *  Audio Stream Input Processing task function
+ *  ======== taskAsipFxnInit ========
+ *  Audio Stream Input Processing initialization function
  */
-Void taskAsipFxn(
-//    Int betaPrimeValue, // FL: revisit
+Void taskAsipFxnInit(
     const PAF_ASIT_Params *pP,
     const PAF_ASIT_Patchs *pQ
 )
@@ -386,22 +385,18 @@ Void taskAsipFxn(
     Int as;                         /* Audio Stream Number (1, 2, etc.) */
     Int z;                          /* input/encode/stream/decode/output counter */
     Int i;                          /* phase */
-    Int errno;                      /* error number */
-    Int zMD, zMI, zMS, zX;
-    Int loopCount = 0;  // used to stop trace to see startup behavior.        
+    Int zMI, zMS, zX;
     Int size;
     // Messaging
-    ASP_Msg *pAspMsg;              
+    ASP_Msg *pAspMsg;
     Int status;
-    Int8 tempVar8;
-    char asipMsgBuf[ASP_MSG_BUF_LEN];
 
-    Log_info0("Enter taskAsipFxn()");
+    Log_info0("Enter taskAsipFxnInit()");
 
     //
     // Audio Stream Input Task Parameters & Patch (*pP, *pQ)
     //
-    if (!pP) 
+    if (!pP)
     {
         TRACE_TERSE0("TaskAsip: No Parameters defined. Exiting.");
         LINNO_RPRT(TaskAsip, -1);
@@ -413,8 +408,8 @@ Void taskAsipFxn(
         TRACE_TERSE0("TaskAsip: No Patchs defined. Exiting.");
         LINNO_RPRT(TaskAsip, -1);
         return;
-    }    
-    
+    }
+
     //
     // Audio Stream Input Task Configuration (*pAsitCfg):
     //
@@ -424,7 +419,7 @@ Void taskAsipFxn(
 
     /* Set Audio Stream Number (1, 2, etc.) */
     as = gBetaPrimeValue + 1;
-    pAstCfg->as = as;    
+    pAstCfg->as = as;
     TRACE_TERSE1("TaskAsip: Started with AS%d.", as);
 
     //
@@ -435,7 +430,7 @@ Void taskAsipFxn(
         TRACE_TERSE1("TaskAsip: AS%d: initiated", as+z);
     }
     LINNO_RPRT(TaskAsip, -1);
-    
+
     //
     // Determine decoder and stream indices associated with the master input
     //
@@ -451,7 +446,6 @@ Void taskAsipFxn(
             break;
         }
     }
-    zMD = pAstCfg->masterDec;
     zMS = pAstCfg->masterStr;
 
     // Initialize as per parametrized phases:
@@ -473,13 +467,13 @@ Void taskAsipFxn(
         if (pP->fxns->initPhase[i])
         {
             linno = pP->fxns->initPhase[i](pP, pQ, pAsitCfg);
-            if (linno) 
+            if (linno)
             {
                 LINNO_RPRT(TaskAsip, linno);
                 return;
             }
         }
-        else 
+        else
         {
             TRACE_TERSE1("TaskAsip: AS%d: initialization phase - null", as+zMS);
         }
@@ -493,10 +487,10 @@ Void taskAsipFxn(
     if (pP->fxns->memStatusPrint)
     {
         pP->fxns->memStatusPrint("ASIT MEMSTAT REPORT",
-            HEAP_INTERNAL, HEAP_INTERNAL1, HEAP_EXTERNAL, 
+            HEAP_INTERNAL, HEAP_INTERNAL1, HEAP_EXTERNAL,
             HEAP_INTERNAL1_SHM, HEAP_EXTERNAL_SHM, HEAP_EXTERNAL_NONCACHED_SHM);
     }
-    
+
     // (***) FL: revisit
     // write back AST shared configuration
     Cache_wb(pAstCfg, sizeof(PAF_AST_Config), Cache_Type_ALLD, 0);
@@ -511,7 +505,7 @@ Void taskAsipFxn(
     // write back entire beta table
     Cache_wb((Ptr)(&IACP_STD_BETA_TABLE.pStatus[0]), 512*sizeof(IALG_Status *), Cache_Type_ALLD, 0);
     Cache_wait();
-    
+
     // FL: send start initialization message to slave
     pAspMsg = (ASP_Msg *)MessageQ_alloc(hAspMsgMaster->heapId, hAspMsgMaster->msgSize); /* allocate message */
     MessageQ_setReplyQueue(hAspMsgMaster->masterQue, (MessageQ_Msg)pAspMsg);            /* set the return address in the message header */
@@ -531,7 +525,7 @@ Void taskAsipFxn(
         status = MessageQ_get(hAspMsgMaster->masterQue, (MessageQ_Msg *)&pAspMsg, 0); // FL: no other thread is allowed to run until Slave finished startup
     } while ((status != MessageQ_S_SUCCESS) || (pAspMsg->cmd != ASP_MASTER_START_DONE));
     if ((pAspMsg->procId != hAspMsgMaster->slaveProcId) ||
-        (pAspMsg->cmd != ASP_MASTER_START_DONE) || 
+        (pAspMsg->cmd != ASP_MASTER_START_DONE) ||
         (pAspMsg->messageId != (hAspMsgMaster->messageId | ((UInt32)1<<31))))
     {
         TRACE_TERSE3("ERROR: Rx ASP message: procId=%d, cmd=%d, messageId=0x%04x", pAspMsg->procId, pAspMsg->cmd, pAspMsg->messageId);
@@ -568,40 +562,81 @@ Void taskAsipFxn(
     if (!IACP_STD_BETA_TABLE.pStatus[STD_BETA_DTSUHDA]) Log_info0("WARNING: beta unit for Dec==NULL");
     if (!IACP_STD_BETA_TABLE.pStatus[STD_BETA_AAC]) Log_info0("WARNING: beta unit for Dec==NULL");
     if (!IACP_STD_BETA_TABLE.pStatus[STD_BETA_AAC2]) Log_info0("WARNING: beta unit for Dec==NULL");
-    
+
     // (***) FL: revisit
     // invalidate Status structures for Beta Units initialized on Slave
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_DECODE]), sizeof(Int), Cache_Type_ALLD, 0);
-    size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_DECODE]->size;
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_DECODE]), size, Cache_Type_ALLD, 0);
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM]), sizeof(Int), Cache_Type_ALLD, 0);
-    size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM]->size;
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM]), size, Cache_Type_ALLD, 0);
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM2]), sizeof(Int), Cache_Type_ALLD, 0);
-    size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM2]->size;
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM2]), size, Cache_Type_ALLD, 0);
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_DDP]), sizeof(Int), Cache_Type_ALLD, 0);
-    size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_DDP]->size;
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_DDP]), size, Cache_Type_ALLD, 0);
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_DDP2]), sizeof(Int), Cache_Type_ALLD, 0);
-    size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_DDP2]->size;
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_DDP2]), size, Cache_Type_ALLD, 0);
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_THD]), sizeof(Int), Cache_Type_ALLD, 0);
-    size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_THD]->size;
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_THD]), size, Cache_Type_ALLD, 0);
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_THD2]), sizeof(Int), Cache_Type_ALLD, 0);
-    size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_THD2]->size;
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_THD2]), size, Cache_Type_ALLD, 0);
-    size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_DTSUHDA]->size;
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_DTSUHDA]), size, Cache_Type_ALLD, 0);
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_AAC]), sizeof(Int), Cache_Type_ALLD, 0);
-    size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_AAC]->size;
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_AAC]), size, Cache_Type_ALLD, 0);
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_AAC2]), sizeof(Int), Cache_Type_ALLD, 0);
-    size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_AAC2]->size;
-    Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_AAC2]), size, Cache_Type_ALLD, 0);
-    Cache_wait();
-    
+    //
+    if (IACP_STD_BETA_TABLE.pStatus[STD_BETA_DECODE] != NULL)
+    {
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_DECODE]), sizeof(Int), Cache_Type_ALLD, 0);
+        size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_DECODE]->size;
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_DECODE]), size, Cache_Type_ALLD, 0);
+        Cache_wait();
+    }
+    if (IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM] != NULL)
+    {
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM]), sizeof(Int), Cache_Type_ALLD, 0);
+        size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM]->size;
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM]), size, Cache_Type_ALLD, 0);
+        Cache_wait();
+    }
+    if (IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM2] != NULL)
+    {
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM2]), sizeof(Int), Cache_Type_ALLD, 0);
+        size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM2]->size;
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_PCM2]), size, Cache_Type_ALLD, 0);
+        Cache_wait();
+    }
+    if (IACP_STD_BETA_TABLE.pStatus[STD_BETA_DDP] != NULL)
+    {
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_DDP]), sizeof(Int), Cache_Type_ALLD, 0);
+        size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_DDP]->size;
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_DDP]), size, Cache_Type_ALLD, 0);
+        Cache_wait();
+    }
+    if (IACP_STD_BETA_TABLE.pStatus[STD_BETA_DDP2] != NULL)
+    {
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_DDP2]), sizeof(Int), Cache_Type_ALLD, 0);
+        size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_DDP2]->size;
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_DDP2]), size, Cache_Type_ALLD, 0);
+        Cache_wait();
+    }
+    if (IACP_STD_BETA_TABLE.pStatus[STD_BETA_THD] != NULL)
+    {
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_THD]), sizeof(Int), Cache_Type_ALLD, 0);
+        size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_THD]->size;
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_THD]), size, Cache_Type_ALLD, 0);
+        Cache_wait();
+    }
+    if (IACP_STD_BETA_TABLE.pStatus[STD_BETA_THD2] != NULL)
+    {
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_THD2]), sizeof(Int), Cache_Type_ALLD, 0);
+        size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_THD2]->size;
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_THD2]), size, Cache_Type_ALLD, 0);
+        Cache_wait();
+    }
+    if (IACP_STD_BETA_TABLE.pStatus[STD_BETA_DTSUHDA] != NULL)
+    {
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_DTSUHDA]), sizeof(Int), Cache_Type_ALLD, 0);
+        size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_DTSUHDA]->size;
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_DTSUHDA]), size, Cache_Type_ALLD, 0);
+        Cache_wait();
+    }
+    if (IACP_STD_BETA_TABLE.pStatus[STD_BETA_AAC] != NULL)
+    {
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_AAC]), sizeof(Int), Cache_Type_ALLD, 0);
+        size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_AAC]->size;
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_AAC]), size, Cache_Type_ALLD, 0);
+        Cache_wait();
+    }
+    if (IACP_STD_BETA_TABLE.pStatus[STD_BETA_AAC2] != NULL)
+    {
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_AAC2]), sizeof(Int), Cache_Type_ALLD, 0);
+        size = IACP_STD_BETA_TABLE.pStatus[STD_BETA_AAC2]->size;
+        Cache_inv((Ptr)(IACP_STD_BETA_TABLE.pStatus[STD_BETA_AAC2]), size, Cache_Type_ALLD, 0);
+        Cache_wait();
+    }
+
 #ifdef NON_CACHE_STATUS
     // Get the shared status structure GateMP handles. Initialized at slave.
     if (statusOp_Init(GATEMP_INDEX_DEC) == STATUSOP_INIT_FAIL)
@@ -629,6 +664,49 @@ Void taskAsipFxn(
     // invalidate Dec configuration
     Cache_inv(&gPAF_AST_config.xDec[0], DECODEN*sizeof(PAF_AST_Decode), Cache_Type_ALLD, 0);
     Cache_wait();
+
+} /* taskAsipFxnInit */
+
+/*
+ *  ======== taskAsipFxn ========
+ *  Audio Stream Input Processing task function
+ */
+Void taskAsipFxn(
+//    Int betaPrimeValue, // FL: revisit
+    const PAF_ASIT_Params *pP,
+    const PAF_ASIT_Patchs *pQ
+)
+{
+    PAF_ASIT_Config *pAsitCfg;      /* ASIT configuration pointer */
+    PAF_AST_Config *pAstCfg;        /* AST Common (shared) configuration pointer */
+    Int as;                         /* Audio Stream Number (1, 2, etc.) */
+    Int z;                          /* input/encode/stream/decode/output counter */
+    Int errno;                      /* error number */
+    Int zMD, zMI, zMS;
+    Int loopCount = 0;  // used to stop trace to see startup behavior.        
+    // Messaging
+    Int8 tempVar8;
+    char asipMsgBuf[ASP_MSG_BUF_LEN];
+
+    Log_info0("Enter taskAsipFxn()");
+
+    taskAsipFxnInit(pP, pQ);  // initialization of input task
+    
+    //
+    // Audio Stream Input Task Configuration (*pAsitCfg):
+    //
+    pAsitCfg = &gPAF_ASIT_config;       // initialize pointer to task configuration
+    pAstCfg = pAsitCfg->pAstCfg;        // get pointer to AST common (shared) configuration
+
+    /* Set Audio Stream Number (1, 2, etc.) */
+    as = pAstCfg->as;
+
+    //
+    // Determine decoder and stream indices associated with the master input
+    //
+    zMI = pP->zone.master;
+    zMD = pAstCfg->masterDec;
+    zMS = pAstCfg->masterStr;
     
     //
     // Main processing loop