summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: d4820cf)
raw | patch | inline | side by side (parent: d4820cf)
author | Frank Livingston <frank-livingston@ti.com> | |
Sun, 9 Jul 2017 21:44:48 +0000 (16:44 -0500) | ||
committer | Frank Livingston <frank-livingston@ti.com> | |
Sun, 9 Jul 2017 21:44:48 +0000 (16:44 -0500) |
THIS CODE IS UNTESTED. So far don't observe CB UND/OVR over thresholds, so cbReset() not called.
Note application-level CB reset counters exist on ARM & DSP.
Note application-level CB reset counters exist on ARM & DSP.
pasdk/common/aspDecOpCircBuf_common.c | patch | blob | history |
index 607b8ae98505f7a07c2eecedf672d974b252d786..39b8ba3b9e1487a62043479970c96c0939e6f2fd 100644 (file)
Cache_inv(pCb, sizeof(PAF_AST_DecOpCircBuf), Cache_Type_ALLD, 0);
Cache_wait();
+ // Initialize CB primed flag
+ pCb->primedFlag = 0;
+ // Initialize delta samples
+ pCb->deltaSamps = 0;
+
+ // Reset circular buffer:
+ // - AF write, read indices
if (pCb->sourceSel == PAF_SOURCE_PCM)
{
- // 2*256 in behind
pCb->afWrtIdx = ASP_DECOP_CB_INIT_WRTIDX_PCM;
pCb->afRdIdx = ASP_DECOP_CB_INIT_RDIDX_PCM;
pCb->pcmRdIdx = 0;
}
else if (pCb->sourceSel == PAF_SOURCE_DDP)
{
- // 4*256 in behind
pCb->afWrtIdx = ASP_DECOP_CB_INIT_WRTIDX_DDP;
pCb->afRdIdx = ASP_DECOP_CB_INIT_RDIDX_DDP;
- pCb->pcmRdIdx = pCb->decOpFrameLen - ASP_DECOP_CB_INIT_LAG_DDP*pCb->strFrameLen;
+ pCb->pcmRdIdx = 0;
}
else if (pCb->sourceSel == PAF_SOURCE_THD)
{
- // 0 in behind
pCb->afWrtIdx = ASP_DECOP_CB_INIT_WRTIDX_THD;
pCb->afRdIdx = ASP_DECOP_CB_INIT_RDIDX_THD;
pCb->pcmRdIdx = 0;
{
pAfCb = &pCb->afCb[n];
- // clear PCM data
+ // Clear PCM data
for (i=0; i<pCb->maxAFChanNum; i++)
{
memset(pAfCb->data.sample[i], 0, pCb->maxAFSampCount);
+ pAfCb->data.samsiz[i] = 0;
}
- // clear metadata
- pAfCb->numPrivateMetadata = 0;
+ // Clear metadata
+ pAfCb->bsMetadata_type = PAF_bsMetadata_none; /* non zero if metadata is attached. */
+ pAfCb->pafBsMetadataUpdate = 0; /* indicates whether bit-stream metadata update */
+ pAfCb->numPrivateMetadata = 0; /* number of valid private metadata (0 or 1 if metadata filtering enabled) */
+ pAfCb->bsMetadata_offset = 0; /* offset into audio frame for change in bsMetadata_type field */
+ for (i=0; i<PAF_MAX_NUM_PRIVATE_MD; i++)
+ {
+ pAfCb->pafPrivateMetadata[i].offset = 0;
+ pAfCb->pafPrivateMetadata[i].size = 0;
+ }
}
// reset stats