X-Git-Url: https://git.ti.com/gitweb?p=processor-sdk%2Fperformance-audio-sr.git;a=blobdiff_plain;f=processor_audio_sdk_1_00_00_00%2Fpasdk%2Ftest_arm%2Fframework%2FaudioStreamDecodeProc.c;h=20db1fb76c982b06e1d7467e7e1d271852779ce0;hp=6a3fee8704cf67153e0167ea63f07e5c92a6c3bc;hb=6d29937bcc4e795e4a416f01c9a9cfe5fa2c541c;hpb=e1c84d0a8c17d5d3276a4174b2256b787c54c2ac;ds=sidebyside diff --git a/processor_audio_sdk_1_00_00_00/pasdk/test_arm/framework/audioStreamDecodeProc.c b/processor_audio_sdk_1_00_00_00/pasdk/test_arm/framework/audioStreamDecodeProc.c index 6a3fee87..20db1fb7 100644 --- a/processor_audio_sdk_1_00_00_00/pasdk/test_arm/framework/audioStreamDecodeProc.c +++ b/processor_audio_sdk_1_00_00_00/pasdk/test_arm/framework/audioStreamDecodeProc.c @@ -98,6 +98,10 @@ PAF_AudioData *gDecAudioFrameChannelPointers[PAF_MAXNUMCHAN_AF]; PAF_AudioSize gDecAudioFrameChannelSizes[PAF_MAXNUMCHAN_AF]; PAF_AudioData *gDecOrigAudioFrameChannelPointers[PAF_MAXNUMCHAN_AF]; +// Underflow threshold before returning error to Top-Level FSM +#define DEC_OP_CB_WRTAF_OVR_THR ( 20 ) // FL: arbitrary setting +UInt32 gDecOpCbWrtAfOvr =0; // decoder output circular buffer overflow count + // Global debug counters */ UInt32 gSlaveStartErrCnt =0; UInt32 gSlaveStartCnt =0; @@ -639,7 +643,23 @@ Void taskAsdpFxn( cbErrno = cbWriteAf(pCbCtl, z, pAfWrt); if (cbErrno < 0) { - SW_BREAKPOINT; + //SW_BREAKPOINT; // FL: debug + + if (cbErrno == ASP_DECOP_CB_WRITE_OVERFLOW) + { + // Reset circular buffer + cbReset(pCbCtl, z); + // Update underflow count, return if above threshold + gDecOpCbWrtAfOvr++; + if (gDecOpCbWrtAfOvr < DEC_OP_CB_WRTAF_OVR_THR) + { + cbErrno = 0; + } + else + { + gDecOpCbWrtAfOvr = 0; + } + } } TRACE_TERSE0("Dec:cbWriteAf() complete");