winamp/Src/aacPlus/api_aacplusdecoder.h

117 lines
5.3 KiB
C++

#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