Replaced hard coded OUTPUT_STRIDE with configured stride = num_serializer*num_channel.
[processor-sdk/performance-audio-sr.git] / pasdk / test_dsp / framework / audioStreamOutIo.c
index c70438c9c7860528d7599f8726f7054bdb733e1d..2a92966baf005aa697de0a1efa954a7c2b1e6a20 100644 (file)
@@ -85,6 +85,7 @@ Int asopSelectDevices(void *pConfig, PAF_AST_IoOut *pOut)
         }
 
         pOut->hMcaspChan = mcaspChanHandle;
+        pOut->stride = lldCfg->mcaspChanParams->noOfSerRequested * lldCfg->mcaspChanParams->noOfChannels;
     }
 
     return 0;
@@ -328,7 +329,7 @@ Int asopStartOutput(
 
 #if 1 // FL, New IO: add similar thing to be figured out
             // Update framework Phy transfer size
-            pOut[z].phyXferSize = pAstCfg->xOut[z].outBufConfig.lengthofFrame * OUTPUT_STRIDE * WORD_SIZE_PCM;
+            pOut[z].phyXferSize = pAstCfg->xOut[z].outBufConfig.lengthofFrame * pOut[z].stride * WORD_SIZE_PCM;
             // Update IO Phy transfer size            
             ioPhyCtl.code = IOPHY_CTL_FRAME_SIZE;
             ioPhyCtl.params.xferFrameSize = pOut[z].phyXferSize;
@@ -530,14 +531,14 @@ Int asopIoCompsInit(
     ioBuffParams.base         = pOutBuf->outBufConfig.base.pVoid;
     ioBuffParams.size         = pOutBuf->outBufConfig.allocation/STRIDE_WORST_CASE*STRIDE_WORST_CASE;
     ioBuffParams.sync         = IOBUff_READ_SYNC;
-    ioBuffParams.nominalDelay = OUTPUT_FRAME_SIZE * (NUM_PRIME_XFERS+1);
+    ioBuffParams.nominalDelay = NUM_CYCLE_PER_FRAME_DEF * pOutIo->stride * WORD_SIZE_PCM * (NUM_PRIME_XFERS+1);
     if(ioBuffInit(pOutIo->hIoBuff, &ioBuffParams) != IOBUFF_NOERR) 
     {
         return -1;   // to remove magic number
     }
 
     ioPhyParams.ioBuffHandle    = pOutIo->hIoBuff;
-    ioPhyParams.xferFrameSize   = OUTPUT_FRAME_SIZE;
+    ioPhyParams.xferFrameSize   = NUM_CYCLE_PER_FRAME_DEF * pOutIo->stride * WORD_SIZE_PCM;
     ioPhyParams.mcaspChanHandle = pOutIo->hMcaspChan;
     ioPhyParams.ioBuffOp        = IOPHY_IOBUFFOP_READ;
     if(ioPhyInit(pOutIo->hIoPhy, &ioPhyParams) != IOPHY_NOERR) 
@@ -595,7 +596,7 @@ Int asopInitOutBufConfig(
     pOutBufCfg = &pOutBuf->outBufConfig;
     hIoBuff = pOutIo->hIoBuff;
     
-    pOutBufCfg->stride = OUTPUT_STRIDE;
+    pOutBufCfg->stride = pOutIo->stride;
     pOutBufCfg->sizeofElement = WORD_SIZE_PCM;
     pOutBufCfg->precision = 24;
     
@@ -627,7 +628,7 @@ Int asopUpdateOutBufConfig(
 
     // FL, New IO: original code can change these values in every DOB issue
     //  Need to determine if this is required or not.
-    pOutBufCfg->stride = OUTPUT_STRIDE;
+    pOutBufCfg->stride = pOutIo->stride;
     pOutBufCfg->sizeofElement = WORD_SIZE_PCM;
     pOutBufCfg->precision = 24;