summaryrefslogtreecommitdiffstats
path: root/libSBRdec/src/sbr_ram.h
diff options
context:
space:
mode:
authorDave Burke <daveburke@google.com>2012-04-17 09:51:45 -0700
committerDave Burke <daveburke@google.com>2012-04-17 23:04:43 -0700
commit9bf37cc9712506b2483650c82d3c41152337ef7e (patch)
tree77db44e2bae06e3d144b255628be2b7a55c581d3 /libSBRdec/src/sbr_ram.h
parenta37315fe10ee143d6d0b28c19d41a476a23e63ea (diff)
downloadfdk-aac-dabplus-9bf37cc9712506b2483650c82d3c41152337ef7e.tar.gz
fdk-aac-dabplus-9bf37cc9712506b2483650c82d3c41152337ef7e.tar.bz2
fdk-aac-dabplus-9bf37cc9712506b2483650c82d3c41152337ef7e.zip
Fraunhofer AAC codec.
License boilerplate update to follow. Change-Id: I2810460c11a58b6d148d84673cc031f3685e79b5
Diffstat (limited to 'libSBRdec/src/sbr_ram.h')
-rw-r--r--libSBRdec/src/sbr_ram.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/libSBRdec/src/sbr_ram.h b/libSBRdec/src/sbr_ram.h
new file mode 100644
index 0000000..378d3c9
--- /dev/null
+++ b/libSBRdec/src/sbr_ram.h
@@ -0,0 +1,100 @@
+/****************************************************************************
+
+ (C) Copyright Fraunhofer IIS (2005)
+ All Rights Reserved
+
+ Please be advised that this software and/or program delivery is
+ Confidential Information of Fraunhofer and subject to and covered by the
+
+ Fraunhofer IIS Software Evaluation Agreement
+ between Google Inc. and Fraunhofer
+ effective and in full force since March 1, 2012.
+
+ You may use this software and/or program only under the terms and
+ conditions described in the above mentioned Fraunhofer IIS Software
+ Evaluation Agreement. Any other and/or further use requires a separate agreement.
+
+
+ This software and/or program is protected by copyright law and international
+ treaties. Any reproduction or distribution of this software and/or program,
+ or any portion of it, may result in severe civil and criminal penalties, and
+ will be prosecuted to the maximum extent possible under law.
+
+ $Id$
+
+*******************************************************************************/
+/*!
+\file
+\brief Memory layout
+$Revision: 36841 $
+*/
+#ifndef _SBR_RAM_H_
+#define _SBR_RAM_H_
+
+#include "sbrdecoder.h"
+
+#include "env_extr.h"
+#include "sbr_dec.h"
+
+
+
+#define SBRDEC_MAX_CH_PER_ELEMENT (2)
+
+typedef struct
+{
+ SBR_CHANNEL *pSbrChannel[SBRDEC_MAX_CH_PER_ELEMENT];
+ TRANSPOSER_SETTINGS transposerSettings; /* Common transport settings for each individual channel of an element */
+ HANDLE_FDK_BITSTREAM hBs;
+
+ MP4_ELEMENT_ID elementID; /* Element ID set during initialization. Can be used for concealment */
+ int nChannels; /* Number of elements output channels (=2 in case of PS) */
+
+ UCHAR frameErrorFlag[(1)+1]; /* Frame error status (for every slot in the delay line).
+ Will be copied into header at the very beginning of decodeElement() routine. */
+
+ UCHAR useFrameSlot; /* Index which defines which slot will be decoded/filled next (used with additional delay) */
+ UCHAR useHeaderSlot[(1)+1]; /* Index array that provides the link between header and frame data
+ (important when processing with additional delay). */
+} SBR_DECODER_ELEMENT;
+
+
+struct SBR_DECODER_INSTANCE
+{
+ SBR_DECODER_ELEMENT *pSbrElement[(4)];
+ SBR_HEADER_DATA sbrHeader[(4)][(1)+1]; /* Sbr header for each individual channel of an element */
+
+ FIXP_DBL *workBuffer1;
+ FIXP_DBL *workBuffer2;
+
+ HANDLE_PS_DEC hParametricStereoDec;
+
+ /* Global parameters */
+ AUDIO_OBJECT_TYPE coreCodec; /* AOT of core codec */
+ int numSbrElements;
+ int numSbrChannels;
+ INT sampleRateIn; /* SBR decoder input sampling rate; might be different than the transposer input sampling rate. */
+ INT sampleRateOut; /* Sampling rate of the SBR decoder output audio samples. */
+ USHORT codecFrameSize;
+ UCHAR synDownsampleFac;
+ UCHAR numDelayFrames; /* The current number of additional delay frames used for processing. */
+
+ UINT flags;
+
+};
+
+H_ALLOC_MEM(Ram_SbrDecElement, SBR_DECODER_ELEMENT)
+H_ALLOC_MEM(Ram_SbrDecChannel, SBR_CHANNEL)
+H_ALLOC_MEM(Ram_SbrDecoder, struct SBR_DECODER_INSTANCE)
+
+H_ALLOC_MEM(Ram_sbr_QmfStatesSynthesis, FIXP_QSS)
+H_ALLOC_MEM(Ram_sbr_OverlapBuffer, FIXP_DBL)
+
+
+H_ALLOC_MEM(Ram_ps_dec, PS_DEC)
+
+
+H_ALLOC_MEM_OVERLAY(Ram_SbrDecWorkBuffer1, FIXP_DBL)
+H_ALLOC_MEM_OVERLAY(Ram_SbrDecWorkBuffer2, FIXP_DBL)
+
+
+#endif /* _SBR_RAM_H_ */