123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- /***************************************************************************\
- *
- * (C) copyright Fraunhofer - IIS (2002)
- * All Rights Reserved
- *
- * $Header: /cvs/root/winamp/aacdec/incs/mp4dec_asc/programcfg_c.h,v 1.3 2012/05/08 20:16:50 audiodsp Exp $
- * project : MPEG-4 Audio Decoder
- * contents/description: program config specific description
- *
- * 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.
- *
- \***************************************************************************/
- #ifndef __PROGRAMCFGC_H__
- #define __PROGRAMCFGC_H__
- #include "mp4dec_helpers/cubuffer_c.h"
- #ifdef __cplusplus
- extern "C" {
- #endif /* __cplusplus */
- struct CSBitStream;
- enum
- {
- /* PCE settings */
- CSProgramConfig_FrontRow = 0,
- CSProgramConfig_SideRow = 1,
- CSProgramConfig_BackRow = 2,
- CSProgramConfig_SpeakerRows = 3,
- CSProgramConfig_MaximumChannels = 16,
- CSProgramConfig_MaximumCommentLength = 256,
- /* aac profile definitions */
- CAAC_ProfileMain = 0,
- CAAC_ProfileLowComplexity,
- CAAC_ProfileSSR,
- CAAC_ProfileLTP,
- CAAC_ProfileScalable,
- CAAC_ProfileReserved
- };
- typedef struct CSProgramConfig
- {
- /* non-multichannel configuration */
- int m_NonMC_ConfigSet;
- int m_NonMC_IsCPE;
- int m_NonMC_Tag;
- /* */
- int m_ExplicitMapping;
- int m_Profile;
- int m_SamplingFrequencyIndex;
- int m_NumLfeChannelElements;
- int m_NumAssocDataElements;
- int m_NumValidCcElements;
- int m_MonoMixdownPresent;
- int m_MonoMixdownElementNumber;
- int m_StereoMixdownPresent;
- int m_StereoMixdownElementNumber;
- int m_MatrixMixdownIndexPresent;
- int m_MatrixMixdownIndex;
- int m_PseudoSurroundEnable;
- unsigned int m_NumberOfChannels[CSProgramConfig_SpeakerRows];
- int m_NumberOfChannelElements[CSProgramConfig_SpeakerRows];
- int m_ChannelElementIsCpe[CSProgramConfig_SpeakerRows][CSProgramConfig_MaximumChannels];
- unsigned int m_ChannelElementTagSelect[CSProgramConfig_SpeakerRows][CSProgramConfig_MaximumChannels];
- unsigned int m_LfeElementTagSelect[CSProgramConfig_MaximumChannels];
- unsigned int m_AssocDataElementTagSelect[CSProgramConfig_MaximumChannels];
- int m_CcElementIsIndSw[CSProgramConfig_MaximumChannels];
- unsigned int m_ValidCcElementTagSelect[CSProgramConfig_MaximumChannels];
- int m_CommentFieldBytes;
- unsigned char m_Comment[CSProgramConfig_MaximumCommentLength];
- } CSProgramConfig, *CSProgramConfigPtr;
- /* methods */
- void CSProgramConfig_Initialize(CSProgramConfigPtr self);
- void CSProgramConfig_Read (CSProgramConfigPtr self, struct CSBitStream *bs);
- void CSProgramConfig_ReadExt (CSProgramConfigPtr self, struct CSBitStream *bs, CCompositionUnitPtr cubuffer, const unsigned int tag);
- void CSProgramConfig_Copy (CSProgramConfigPtr dst, const CSProgramConfigPtr src);
- int CSProgramConfig_AddChannel(CSProgramConfigPtr self, const unsigned int tag, const unsigned int isCPE);
- int CSProgramConfig_AddSingleChannel (CSProgramConfigPtr self, const unsigned int tag);
- int CSProgramConfig_AddChannelPair (CSProgramConfigPtr self, const unsigned int tag);
- int CSProgramConfig_AddCouplingChannel (CSProgramConfigPtr self, const unsigned int tag);
- int CSProgramConfig_AddLowFrequencyChannel(CSProgramConfigPtr self, const unsigned int tag);
- int CSProgramConfig_IsChannelLocatedAt (CSProgramConfigPtr self, const unsigned int row, const unsigned int tag);
- int CSProgramConfig_IsChannelPairLocatedAt(CSProgramConfigPtr self, const unsigned int row, const unsigned int tag);
- /* explicit query */
- /* query by index */
- int CSProgramConfig_GetNumberOfElements(CSProgramConfigPtr self, const unsigned int row);
- int CSProgramConfig_GetNumberOfChannels(CSProgramConfigPtr self);
- int CSProgramConfig_GetNumberOfChannelsPerRow(CSProgramConfigPtr self, const unsigned int row);
- int CSProgramConfig_GetElementTag(CSProgramConfigPtr self, const unsigned int row, const unsigned int index);
- int CSProgramConfig_IsChannelPair(CSProgramConfigPtr self, const unsigned int row, const unsigned int index);
- int CSProgramConfig_GetNumberOfLowFrequencyChannels(CSProgramConfigPtr self);
- int CSProgramConfig_GetLowFrequencyChannelTag (CSProgramConfigPtr self, const unsigned int index);
- /* */
- int CSProgramConfig_GetSamplingRateIndex(CSProgramConfigPtr self);
- int CSProgramConfig_GetProfile (CSProgramConfigPtr self);
- #ifdef __cplusplus
- }
- #endif
- #endif
|