--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoeditorengine/mp3aacManipLib/inc/AACAPI.h Fri Jan 29 14:08:33 2010 +0200
@@ -0,0 +1,148 @@
+/*
+* Copyright (c) 2010 Ixonos Plc.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - Initial contribution
+*
+* Contributors:
+* Ixonos Plc
+*
+* Description:
+*
+*/
+
+
+
+#ifndef _MP3AACMANIPLIB_H_
+#define _MP3AACMANIPLIB_H_
+
+#include "tool.h"
+#include "sbr_codec.h"
+
+/*
+ Purpose: AAC decoder core.
+ Explanation: -
+
+ Implemented in aacaud.cpp
+*/
+
+class CAACAudDec : public CBase
+{
+
+public:
+
+ static CAACAudDec* NewL(int16 aNumCh, int16 aNumCCh);
+ ~CAACAudDec();
+
+ void GetFIL(TBitStream *bs, uint32 prevEleID);
+ int32 extension_payload(TBitStream *bs, int32 cnt, uint32 prevEleID);
+
+ int16 numCh;
+ int16 numCCh;
+ int16 numOutCh;
+ int16 samplesPerFrame;
+
+ CToolInfo **tool;
+ CMC_Info* mc_info;
+ CCInfo **ccInfo;
+ CWindowInfo **winInfo;
+
+ /*-- Huffman tables. --*/
+ Huffman_DecInfo **huf;
+ Huffman_DecSfInfo *sf_huf;
+
+ SbrBitStream *sbrStream;
+ SBR_Decoder *sbrDecInfo;
+
+private:
+ void ConstructL(int16 aNumCh, int16 aNumCCh);
+ CAACAudDec();
+
+ TInt windowAmount;
+
+};
+
+/*
+* Methods for AAC gain manipulation -------------->
+*/
+
+/*-- Closes AAC decoder handle. --*/
+IMPORT_C CAACAudDec *
+DeleteAACAudDec(CAACAudDec *aac);
+
+/*-- Creates AAC decoder handle. --*/
+IMPORT_C void
+CreateAACAudDecL(CAACAudDec*& aDecHandle, int16 numCh, int16 numCCh);
+
+
+/*-- Creates (e)AAC+ decoder handle. --*/
+IMPORT_C uint8
+CreateAACPlusAudDecL(CAACAudDec *aDecHandle, int16 sampleRateIdx, uint8 isStereo, uint8 isDualMono);
+
+
+/*-- Initializes AAC decoder handle. --*/
+IMPORT_C void
+InitAACAudDec(CAACAudDec *aac, int16 profile, int16 sampleRateIdx, uint8 is960);
+
+/*-- Resets AAC decoder handle. --*/
+IMPORT_C void
+ResetAACAudDec(CAACAudDec *aac);
+
+/*-- Counts AAC frame length (and parses the frame at same cost). --*/
+IMPORT_C int16
+CountAACChunkLength(TBitStream *bs, CAACAudDec *aac, int16 *bytesInFrame);
+
+/*-- Stores global gain values. --*/
+IMPORT_C void
+SetAACGlobalGains(TBitStream* bs,
+ uint8 numGains, uint8 *globalGain, uint32 *globalGainPos);
+
+
+IMPORT_C void
+SetAACPlusGlobalGains(TBitStream* bs, TBitStream* bsOut, CAACAudDec *aac, int16 gainChangeValue,
+ uint8 numGains, uint8 *globalGain, uint32 *globalGainPos);
+
+
+/*-- Extracts global gain values. --*/
+IMPORT_C uint8
+GetAACGlobalGains(TBitStream* bs, CAACAudDec *aac, uint8 nBufs, uint8 *globalGain, uint32 *globalGainPos);
+
+/**
+ *
+ * Retrieves decoder specific information for the
+ * specified AAC encoder configuration. This information should be
+ * placed in the MP4/3GP header to describe the encoder
+ * parameters for the AAC decoder at the receiving end.
+ *
+ * @param aacInfo Handle to AAC configuration information
+ * @param pBuf Pointer to decoder specific information buffer
+ * @param nBytesInBuf Size of 'pBuf'
+ *
+ * @return Number of bytes in 'pBuf'
+ */
+IMPORT_C int16
+AACGetMP4ConfigInfo(int32 sampleRate, uint8 profile, uint8 nChannels, int16 frameLen,
+ uint8 *pBuf, uint8 nBytesInBuf);
+
+
+/*-- Checks whether parametric stereo enabled in the AAC bitstream. --*/
+IMPORT_C uint8
+IsAACParametricStereoEnabled(CAACAudDec *aac);
+
+
+
+/*-- Checks whether SBR enabled in the AAC bitstream. --*/
+IMPORT_C uint8
+IsAACSBREnabled(CAACAudDec *aac);
+
+
+/*
+* <------- Methods for AAC gain manipulation
+*/
+
+#endif