PASDK-516:Slight update to write complete handling
[processor-sdk/performance-audio-sr.git] / pasdk / test_dsp / framework / audioStreamOutIo.c
index 7c715ba59613a2a55338fb81459825d0e80cc0f3..a936b0ecbf8f74933651a696c5ff3c6dfbf32634 100644 (file)
@@ -535,8 +535,9 @@ Int asopIoCompsInit(
 
     pOutIo->phyXferSize = ioPhyParams.xferFrameSize;
     
-    pOutIo->ioBuffNumOvr = 0; // initialize number of IO buff overflows
-    pOutIo->ioBuffNumUnd = 0; // initialize number of IO buff underflows
+    pOutIo->ioBuffBuf2AllocCnt = 0; // initialize buffer2 alloc count (indicates Output buffer wrap)
+    pOutIo->errIoBuffOvrCnt = 0; // initialize IO buff overflow count
+    pOutIo->errIoBuffUndCnt = 0; // initialize IO buff underflow count
 
     return 0;
 } /* asopIoCompsInit */
@@ -590,7 +591,7 @@ Int asopInitOutBufConfig(
        pOutBufCfg->base.pLgInt = outBuffInfo.base;
        pOutBufCfg->sizeofBuffer = outBuffInfo.size;
     
-       pOutBuf->pOutBuf = &(pOutBuf->outBufConfig);    
+       pOutBuf->pOutBuf = &(pOutBuf->outBufConfig);
     
     return 0;
 }
@@ -625,7 +626,7 @@ Int asopUpdateOutBufConfig(
         &buff1, &size1, &buff2, &size2);
     if (status == IOBUFF_ERR_OVERFLOW) 
     {
-        pOutIo->ioBuffNumOvr++;
+        pOutIo->errIoBuffOvrCnt++;
         //System_printf ("asopUpdateOutBufConfig: output buff overflow\n"); // debug
 
         // skip processing since output buffer overflows        
@@ -633,7 +634,7 @@ Int asopUpdateOutBufConfig(
     }
     else if (status == IOBUFF_ERR_UNDERFLOW) 
     {
-        pOutIo->ioBuffNumUnd++;
+        pOutIo->errIoBuffUndCnt++;
         //System_printf ("asopUpdateOutBufConfig: output buff underflow\n"); // debug
         
         // already underflows and remain in underflow
@@ -641,12 +642,18 @@ Int asopUpdateOutBufConfig(
 
     // Update Output buffer pointer for Encoder
        pOutBufCfg->pntr.pLgInt = buff1;
+    if ((buff2 != NULL) || (size2 != 0))
+    {
+        // buff2 should always be NULL for Output & size2 should always be 0 for Output.
+        // Track this here.
+        pOutIo->ioBuffBuf2AllocCnt++; // debug
+    }
     
     // save buffer pointers & sizes for later write complete
     pOutIo->buff1 = buff1;
     pOutIo->size1 = size1;
-    pOutIo->buff2 = buff2; // this should always be NULL for Output
-    pOutIo->size2 = size2; // this should always be 0 for Output
+    pOutIo->buff2 = buff2;
+    pOutIo->size2 = size2;
     
     return 0;
 }