mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-18 11:15:45 -04:00
Initial community commit
This commit is contained in:
140
Src/aacdec/incs/mp4dec_asc/programcfg_c.h
Normal file
140
Src/aacdec/incs/mp4dec_asc/programcfg_c.h
Normal file
@ -0,0 +1,140 @@
|
||||
/***************************************************************************\
|
||||
*
|
||||
* (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
|
Reference in New Issue
Block a user