Removed from repo

This commit is contained in:
Jef 2024-09-24 20:13:47 +02:00
parent 3f856d2842
commit 0ee0230131
2 changed files with 0 additions and 443 deletions

View File

@ -1,326 +0,0 @@
/****************************************************************************
This program is protected under international copyright laws as an
unpublished work. Do not copy.
(C) Copyright Coding Technologies (2004 - 2007)
(C) Copyright Dolby Sweden AB (2008 - 2009)
All Rights Reserved
This software is company confidential information and the property of
Dolby Sweden AB, and can not be reproduced or disclosed in any form
without written authorization of Dolby Sweden AB.
Those intending to use this software module for other purposes are advised
that this infringe existing or pending patents. Dolby Sweden AB has no
liability for use of this software module or derivatives thereof in any
implementation. Copyright is not released for any means. Dolby Sweden AB
retains full right to use the code for its own purpose, assign or sell the
code to a third party and to inhibit any user or third party from using the
code. This copyright notice must be included in all copies or derivative
works.
$Id: aacplusdectypes.h,v 1.2 2009/10/12 13:27:37 audiodsp Exp $
*******************************************************************************/
/*!
\file
\brief aacPlus Decoder Library Interface Datatypes
\author Holger Hoerich
*/
#ifndef _AACPLUSDECTYPES_H_
#define _AACPLUSDECTYPES_H_
/***
MACROS *****/
#define AACPLUSDEC_MAXPROGRAMS 16
#define AACPLUSDEC_MAXDATASTREAMELEMENTS 16
typedef struct STRUCT_AACPLUSDECODER *HANDLE_AACPLUSDEC_DECODER;
/***
ENUMERATION TYPES *****/
/*!
\brief Different Supported Output Formats
*/
typedef enum ENUM_AACPLUSDEC_OUTPUTFORMAT {
AACPLUSDEC_OUTPUTFORMAT_INT16_HOSTENDIAN = 0 /*!< 16 bit signed integer as short, 2 bytes/sample,
machine dep. endianess, clipped */
,AACPLUSDEC_OUTPUTFORMAT_FLOAT /*!< -1.0 .. +1.0 scaled float, 4 bytes/sample,
not clipped */
,AACPLUSDEC_OUTPUTFORMAT_INT24_LITTLEENDIAN /*!< 24 bit signed integer packed in 3 bytes/sample,
little endian, clipped */
} AACPLUSDEC_OUTPUTFORMAT;
/*!
\brief List of supported MPEG-4 Audio Object Types or MPEG-2 Profiles
*/
typedef enum ENUM_AACPLUSDEC_STREAMTYPE {
AACPLUSDEC_STREAMTYPE_UNDEFINED = 0
/* MPEG-2 Profiles */
,AACPLUSDEC_MPEG2_PROFILE_AACMAIN = 0x0200 | 0
,AACPLUSDEC_MPEG2_PROFILE_AACLC = 0x0200 | 1
/* MPEG-4 Audio Object Types */
,AACPLUSDEC_MPEG4_AOT_AACMAIN = 0x0400 | 1
,AACPLUSDEC_MPEG4_AOT_AACLC = 0x0400 | 2
,AACPLUSDEC_MPEG4_AOT_SBR = 0x0400 | 5
,AACPLUSDEC_STREAMTYPE_UNSUPPORTED = -1
} AACPLUSDEC_STREAMTYPE;
/*!
\brief Decoding States
*/
typedef enum ENUM_AACPLUSDEC_DECODINGSTATE {
AACPLUSDEC_DECODINGSTATE_IDLE = 0 /*!< decoder awaits first frame, has not yet found a valid frame */
,AACPLUSDEC_DECODINGSTATE_STREAMPARSED /*!< first frame parsed or decoded */
,AACPLUSDEC_DECODINGSTATE_STREAMVERIFIED /*!< stream properties verified by second frame */
,AACPLUSDEC_DECODINGSTATE_BADFRAME /*!< a bad frame occured */
,AACPLUSDEC_DECODINGSTATE_FLUSHING /*!< flushing decoder */
,AACPLUSDEC_DECODINGSTATE_ENDOFSTREAM /*!< final state, destroy instance */
} AACPLUSDEC_DECODINGSTATE;
/*!
\brief Possible Limitations to Decoder Behaviour
*/
typedef enum ENUM_AACPLUSDEC_CAPABILITY {
AACPLUSDEC_CAPABILITY_FULL = 0
,AACPLUSDEC_CAPABILITY_V1_ONLY = 1010
} AACPLUSDEC_CAPABILITY;
typedef enum ENUM_AACPLUSDEC_CHANNELMODE {
AACPLUSDEC_CHANNELMODE_UNDEFINED = 0
,AACPLUSDEC_CHANNELMODE_MONO
,AACPLUSDEC_CHANNELMODE_STEREO
,AACPLUSDEC_CHANNELMODE_2_1_CHANNEL
,AACPLUSDEC_CHANNELMODE_PARAMETRIC_STEREO
,AACPLUSDEC_CHANNELMODE_DUAL_CHANNEL
,AACPLUSDEC_CHANNELMODE_3_CHANNEL_1REAR
,AACPLUSDEC_CHANNELMODE_3_CHANNEL_MPEG
,AACPLUSDEC_CHANNELMODE_3_CHANNEL_3SCE
,AACPLUSDEC_CHANNELMODE_4_CHANNEL_MPEG
,AACPLUSDEC_CHANNELMODE_4_CHANNEL_4SCE
,AACPLUSDEC_CHANNELMODE_4_CHANNEL_2CPE
,AACPLUSDEC_CHANNELMODE_5_CHANNEL
,AACPLUSDEC_CHANNELMODE_5_1_CHANNEL
,AACPLUSDEC_CHANNELMODE_5_CHANNEL_5SCE
,AACPLUSDEC_CHANNELMODE_6_1_CHANNEL
,AACPLUSDEC_CHANNELMODE_6_CHANNEL_6SCE
,AACPLUSDEC_CHANNELMODE_6_CHANNEL_3CPE
,AACPLUSDEC_CHANNELMODE_7_1_CHANNEL
,AACPLUSDEC_CHANNELMODE_7_CHANNEL_7SCE
,AACPLUSDEC_CHANNELMODE_8_CHANNEL_8SCE
,AACPLUSDEC_CHANNELMODE_8_CHANNEL_4CPE
} AACPLUSDEC_CHANNELMODE ;
typedef enum ENUM_AACPLUSDEC_CONFIGTYPE {
AACPLUSDEC_CONFIGTYPE_UNSPECIFIED = 0
,AACPLUSDEC_CONFIGTYPE_STREAMMUXCONFIG
,AACPLUSDEC_CONFIGTYPE_AUDIOSPECIFICCONFIG
,AACPLUSDEC_CONFIGTYPE_DECODERCONFIGDESCRIPTOR
,AACPLUSDEC_CONFIGTYPE_DECODERSPECIFICINFO
} AACPLUSDEC_CONFIGTYPE;
typedef enum ENUM_AACPLUSDEC_BITSTREAMFORMAT {
AACPLUSDEC_BITSTREAMFORMAT_AUTO = 0
,AACPLUSDEC_BITSTREAMFORMAT_RAW
,AACPLUSDEC_BITSTREAMFORMAT_ADIF
,AACPLUSDEC_BITSTREAMFORMAT_ADTS
,AACPLUSDEC_BITSTREAMFORMAT_LATM
,AACPLUSDEC_BITSTREAMFORMAT_LOAS
} AACPLUSDEC_BITSTREAMFORMAT;
typedef enum ENUM_AACPLUSDEC_ERROR {
AACPLUSDEC_OK = 0
,AACPLUSDEC_ERROR_GENERALERROR = 0x1100
,AACPLUSDEC_ERROR_INVALIDHANDLE
,AACPLUSDEC_ERROR_OUTOFMEMORY
,AACPLUSDEC_ERROR_UNSUPPORTEDSETTING
,AACPLUSDEC_ERROR_TARGETBUFFERTOOSMALL
,AACPLUSDEC_ERROR_NEEDMOREDATA
,AACPLUSDEC_ERROR_ENDOFSTREAM
,AACPLUSDEC_ERROR_WRONGARGUMENT
,AACPLUSDEC_ERROR_AACMAINNOTSUPORTED
} AACPLUSDEC_ERROR;
typedef enum ENUM_AACPLUSDEC_SIGNALLING {
AACPLUSDEC_SIGNALLING_IMPLICIT = -1
,AACPLUSDEC_SIGNALLING_DISABLED = 0
,AACPLUSDEC_SIGNALLING_ENABLED_BC
,AACPLUSDEC_SIGNALLING_ENABLED_NONBC
} AACPLUSDEC_SIGNALLING;
/***
STRUCTURED TYPES *****/
/*!
\brief Properties Of A Program Embeddded In The aacPlus Audio Stream
*/
typedef struct {
int bProgramFound; /*!< true if this program is available in the bitstream */
int nOutputSamplingRate; /*!< output sampling frequency */
int nOutputSamplesPerFrame; /*!< number of output samples per frame */
int nStreamOutputChannels; /*!< number of audio output channels in the stream */
int nOutputChannels; /*!< number of audio output channels after downmix */
int bProgramSbrEnabled; /*!< non-zero when SBR is decoded */
int nAacSamplingRate; /*!< core sampling rate */
int nAacChannels; /*!< core channels */
AACPLUSDEC_CHANNELMODE nChannelMode; /*!< audio channel configuration */
int nNumberOfFrontChannels; /*!< number of front channels in this program */
int nNumberOfSideChannels; /*!< number of side channels in this program */
int nNumberOfRearChannels; /*!< number of rear channels in this program */
int nNumberOfLfeChannels; /*!< number of LFE channels in this program */
AACPLUSDEC_STREAMTYPE nStreamType; /*!< Audio Object Type if accessible (profile if MPEG-2) */
AACPLUSDEC_SIGNALLING nSbrSignalling; /*!< SBR signalling */
AACPLUSDEC_SIGNALLING nPsSignalling; /*!< PS signalling */
} AACPLUSDEC_PROGRAMPROPERTIES;
/*!
\brief Properties Of The aacPlus Audio Stream
*/
typedef struct {
AACPLUSDEC_DECODINGSTATE nDecodingState; /*!< state of decoding */
int bSbrDecodingFailed; /*!< state of sbr decoding */
AACPLUSDEC_BITSTREAMFORMAT nBitstreamFormat; /*!< bitstream format, may be set for streams without synch */
int nBitrate; /*!< estimated bitrate (frequently updated) */
int nProgramsInStream; /*!< number of programs embedded in audio stream */
int nCurrentProgram; /*!< index of current decoded program (defaults to 0) */
AACPLUSDEC_PROGRAMPROPERTIES programProperties[AACPLUSDEC_MAXPROGRAMS]; /*!< properties of embedded programs */
} AACPLUSDEC_STREAMPROPERTIES;
/*!
\brief Settings of the decoder library
*/
typedef struct {
int bEnableConcealment; /*!< set for concealment, erroneous frames muted otherwise */
int bEnableOutputLimiter; /*!< activate limiter on the PCM output data */
int bDoLowPowerSBR; /*!< use Low Power SBR */
int bDoUpsampling; /*!< do upsampling by 2 when AAC sample rate is below 32kHz */
int nDownsampleSbrAtTargetFs; /*!< do downsampled SBR when core sample rate is at or above given value in Hz */
int bForceAdtsCRCheck; /*!< tell the decoder ADTS CRC is present even if not recognized (ist this correct?) */
int bForceMpeg2Behaviour; /*!< tell the decoder to act like an MPEG-2 decoder, i.e. apply concealment on PNS frames */
int bNoChannelReordering; /*!< tell the decoder to keep the channels in the order as they appear in the bitstream */
AACPLUSDEC_CAPABILITY eDecCapability; /*!< set decoding capability */
int reserved1;
int reserved2;
int nMaxMainAudioChannels; /*!< allocate num. audio channels */
int nMaxLFEChannels; /*!< allocate num. low frequency enhancement channels */
int nMaxIndependentlySwitchedCouplingChannels; /*!< allocate num. independently switched CCE */
int nMaxDependentlySwitchedCouplingChannels; /*!< allocate num. dependently switched CCE */
int nDmxOutputChannels; /*!< number of downmix channels (0..2; 0 means no downmix) */
int nDmxCoefficients; /*!< coefficient selection according to 13818-7, Table 8.3.8.5 */
} AACPLUSDEC_EXPERTSETTINGS;
/***
BUFFER DESCRIPTIONS *****/
/*!
\brief Audio Buffer Description
*/
typedef struct {
int nBytesBufferSizeIn;
int nBytesWrittenOut;
int nBytesMissedOut;
} AACPLUSDEC_AUDIOBUFFERINFO;
/*!
\brief Bitstream Buffer Description
*/
typedef struct {
int nBytesGivenIn;
int nBitsOffsetIn;
int nBytesReadOut;
} AACPLUSDEC_BITSTREAMBUFFERINFO;
/*!
\brief Datastream Element Description
*/
typedef struct {
int nInstanceTagOut;
int nBytesOffsetOut;
int nBytesLengthOut;
} AACPLUSDEC_DATASTREAMELEMENT;
/*!
\brief Datastream Buffer Description
*/
typedef struct {
int nBytesBufferSizeIn;
int nBytesWrittenOut;
int nBytesMissedOut;
int nNumDataStreamElementsOut;
AACPLUSDEC_DATASTREAMELEMENT elementDescription[AACPLUSDEC_MAXDATASTREAMELEMENTS];
} AACPLUSDEC_DATASTREAMBUFFERINFO;
/***
END *****************************/
#endif /* _AACPLUSDECTYPES_H_ */

View File

@ -1,117 +0,0 @@
#ifndef __WASABI_API_AACPLUSDECODER_H
#define __WASABI_API_AACPLUSDECODER_H
#include <bfc/dispatch.h>
#include "aacplusdectypes.h"
#include <bfc/platform/types.h>
class NOVTABLE api_aacplusdecoder : public Dispatchable
{
protected:
api_aacplusdecoder() {}
~api_aacplusdecoder() {}
public:
DISPATCH_CODES
{
AACPLUSDECODER_EASY_OPEN = 10,
AACPLUSDECODER_CLOSE = 20,
AACPLUSDECODER_RESTART = 30,
AACPLUSDECODER_READ_CONFIG_STREAM = 40,
AACPLUSDECODER_GET_DECODER_SETTINGS_HANDLE = 50,
AACPLUSDECODER_SET_DECODER_SETTINGS = 60,
AACPLUSDECODER_GET_STREAM_PROPERTIES_HANDLE = 70,
AACPLUSDECODER_STREAM_FEED =80,
AACPLUSDECODER_STREAM_DECODE=90,
AACPLUSDECODER_FRAME_DECODE=100,
};
AACPLUSDEC_ERROR EasyOpen(AACPLUSDEC_OUTPUTFORMAT outputFormat, int nMaxAudioChannels);
void Close();
AACPLUSDEC_ERROR Restart();
AACPLUSDEC_ERROR ReadConfigStream(unsigned char *pucConfigStreamBufferIn, AACPLUSDEC_BITSTREAMBUFFERINFO *hConfigStreamBufferInfoInOut, AACPLUSDEC_CONFIGTYPE nConfigTypeIn, int bConfigStreamInBand, AACPLUSDEC_BITSTREAMFORMAT bitstreamFormatIn);
AACPLUSDEC_EXPERTSETTINGS *GetDecoderSettingsHandle();
AACPLUSDEC_ERROR SetDecoderSettings();
AACPLUSDEC_STREAMPROPERTIES *GetStreamPropertiesHandle();
AACPLUSDEC_ERROR StreamFeed(unsigned char *pucBitstrmBufIn, AACPLUSDEC_BITSTREAMBUFFERINFO *hBitstrmBufInfoInOut);
AACPLUSDEC_ERROR StreamDecode(void *pPcmAudioBufOut, AACPLUSDEC_AUDIOBUFFERINFO *hPcmAudioBufInfoInOut, unsigned char *pucDataStreamBufOut, AACPLUSDEC_DATASTREAMBUFFERINFO *hDataStreamBufInfoInOut);
AACPLUSDEC_ERROR FrameDecode( void *pPcmAudioBufOut,
AACPLUSDEC_AUDIOBUFFERINFO *hPcmAudioBufInfoInOut,
unsigned char *pucFrameBufferIn,
AACPLUSDEC_BITSTREAMBUFFERINFO *hFrameBufferInfoInOut,
int bFrameCorrupt,
unsigned char *pucDataStreamBufOut,
AACPLUSDEC_DATASTREAMBUFFERINFO *hDataStreamBufInfoInOut);
};
inline AACPLUSDEC_ERROR api_aacplusdecoder::EasyOpen(AACPLUSDEC_OUTPUTFORMAT outputFormat, int nMaxAudioChannels)
{
return _call(AACPLUSDECODER_EASY_OPEN, (AACPLUSDEC_ERROR)AACPLUSDEC_ERROR_GENERALERROR, outputFormat, nMaxAudioChannels);
}
inline void api_aacplusdecoder::Close()
{
_voidcall(AACPLUSDECODER_CLOSE);
}
inline AACPLUSDEC_ERROR api_aacplusdecoder::Restart()
{
return _call(AACPLUSDECODER_RESTART, (AACPLUSDEC_ERROR)AACPLUSDEC_ERROR_GENERALERROR);
}
inline AACPLUSDEC_EXPERTSETTINGS *api_aacplusdecoder::GetDecoderSettingsHandle()
{
return _call(AACPLUSDECODER_GET_DECODER_SETTINGS_HANDLE, (AACPLUSDEC_EXPERTSETTINGS *)0);
}
inline AACPLUSDEC_ERROR api_aacplusdecoder::SetDecoderSettings()
{
return _call(AACPLUSDECODER_SET_DECODER_SETTINGS, (AACPLUSDEC_ERROR)AACPLUSDEC_ERROR_GENERALERROR);
}
inline AACPLUSDEC_STREAMPROPERTIES *api_aacplusdecoder::GetStreamPropertiesHandle()
{
return _call(AACPLUSDECODER_GET_STREAM_PROPERTIES_HANDLE, (AACPLUSDEC_STREAMPROPERTIES *)0); }
inline AACPLUSDEC_ERROR api_aacplusdecoder::StreamFeed(unsigned char *pucBitstrmBufIn, AACPLUSDEC_BITSTREAMBUFFERINFO *hBitstrmBufInfoInOut)
{
return _call(AACPLUSDECODER_STREAM_FEED, (AACPLUSDEC_ERROR)AACPLUSDEC_ERROR_GENERALERROR, pucBitstrmBufIn, hBitstrmBufInfoInOut);
}
inline AACPLUSDEC_ERROR api_aacplusdecoder::StreamDecode(void *pPcmAudioBufOut, AACPLUSDEC_AUDIOBUFFERINFO *hPcmAudioBufInfoInOut, unsigned char *pucDataStreamBufOut, AACPLUSDEC_DATASTREAMBUFFERINFO *hDataStreamBufInfoInOut)
{
return _call(AACPLUSDECODER_STREAM_DECODE, (AACPLUSDEC_ERROR)AACPLUSDEC_ERROR_GENERALERROR, pPcmAudioBufOut, hPcmAudioBufInfoInOut, pucDataStreamBufOut, hDataStreamBufInfoInOut);
}
inline AACPLUSDEC_ERROR api_aacplusdecoder::ReadConfigStream(unsigned char *pucConfigStreamBufferIn, AACPLUSDEC_BITSTREAMBUFFERINFO *hConfigStreamBufferInfoInOut, AACPLUSDEC_CONFIGTYPE nConfigTypeIn, int bConfigStreamInBand, AACPLUSDEC_BITSTREAMFORMAT bitstreamFormatIn)
{
return _call(AACPLUSDECODER_READ_CONFIG_STREAM, (AACPLUSDEC_ERROR)AACPLUSDEC_ERROR_GENERALERROR, pucConfigStreamBufferIn, hConfigStreamBufferInfoInOut, nConfigTypeIn, bConfigStreamInBand, bitstreamFormatIn);
}
inline AACPLUSDEC_ERROR api_aacplusdecoder::FrameDecode(void *pPcmAudioBufOut,
AACPLUSDEC_AUDIOBUFFERINFO *hPcmAudioBufInfoInOut,
unsigned char *pucFrameBufferIn,
AACPLUSDEC_BITSTREAMBUFFERINFO *hFrameBufferInfoInOut,
int bFrameCorrupt,
unsigned char *pucDataStreamBufOut,
AACPLUSDEC_DATASTREAMBUFFERINFO *hDataStreamBufInfoInOut )
{
return _call(AACPLUSDECODER_FRAME_DECODE, (AACPLUSDEC_ERROR)AACPLUSDEC_ERROR_GENERALERROR, pPcmAudioBufOut,
hPcmAudioBufInfoInOut,
pucFrameBufferIn,
hFrameBufferInfoInOut,
bFrameCorrupt, pucDataStreamBufOut,
hDataStreamBufInfoInOut );
}
// {257C56BD-90CD-4f1f-9A27-3C73BCCCDE4E}
static const GUID aacPlusDecoderGUID=
{ 0x257c56bd, 0x90cd, 0x4f1f, { 0x9a, 0x27, 0x3c, 0x73, 0xbc, 0xcc, 0xde, 0x4e } };
#endif