Update Dec Output circular buffer
[processor-sdk/performance-audio-sr.git] / processor_audio_sdk_1_00_00_00 / pasdk / common / paf_decOpCircBuf.h
index 1c3350e6ca3fc454618fec3e6cd5002d5ef65796..b7bcf6c3e1cec9e80b83776fade6975337d804c5 100644 (file)
@@ -1,3 +1,38 @@
+
+/*
+Copyright (c) 2016, Texas Instruments Incorporated - http://www.ti.com/
+All rights reserved.
+
+* Redistribution and use in source and binary forms, with or without 
+* modification, are permitted provided that the following conditions
+* are met:
+*
+* Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of Texas Instruments Incorporated nor the names of
+* its contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+
 #ifndef _DEC_OP_CIRC_BUF_H_
 #define _DEC_OP_CIRC_BUF_H_
 
@@ -31,9 +66,19 @@ typedef struct PAF_DecodeOpCircBuf {
         Int8 writerActiveFlag;  // flag indicates whether CB writer is active
         Int8 readerActiveFlag;  // flag indicates whether CB reader is active
         Int8 emptyFlag;         // flag indicates whether reader should empty (drain) remaining frames in CB
-        //Int cbWriteAfInit;      // indicates whether CB has been initialized for AF writes
+        Int8 errUndCnt;         // underflow count
+        Int8 errOvrCnt;         // overflow count
 } PAF_DecodeOpCircBuf;
 
+// Initialize circular buffer
+Int cbInit(
+    Int8 sourceSelect,          // source select (PCM, DDP, etc.)
+    Int16 decOpFrameLen,        // decoder output frame length (PCM samples)
+    Int16 strFrameLen,          // stream frame length (PCM samples)
+    PAF_DecodeOpCircBuf *pCb,   // decoder output circular buffer
+    Int8 resetRwFlags           // whether to reset reader, writer, and empty flags
+);
+
 // Start writes to circular buffer
 Int cbWriteStart(
     PAF_DecodeOpCircBuf *pCb    // decoder output circular buffer
@@ -75,11 +120,8 @@ Int cbGetNextWriteAf(
 // Output log of circular buffer control variables (debug)
 Int cbLog(
     PAF_DecodeOpCircBuf *pCb,
-    Int8 fullLog
-);
-// restore read/write flags of the circular buffer. - QIN
-Int cbReadWriteRestore(
-    PAF_DecodeOpCircBuf *pCb    // decoder output circular buffer
+    Int8 fullLog, 
+    char *locInfo
 );
 
 #endif /* _DEC_OP_CIRC_BUF_H_ */