hunting/external/libfaac/IDecodeToPcm.h
2024-07-09 18:46:51 +08:00

101 lines
2.0 KiB
C++

#pragma once
#ifndef _IDECODETOPCM_H
#define _IDECODETOPCM_H
#include "MtAACEncoderAPI.h"
#define USE_SHOUT_G711PACK 1
#if USE_SHOUT_G711PACK
#define G711_ONE_LEN 160
#define G711_ONE_OFFSET 0
#else
#define G711_ONE_LEN 164
#define G711_ONE_OFFSET 4
#endif
const int CON_PCM_SIZE = 320;
class audio_buffer;
class InAudioInfo
{
public:
InAudioInfo();
InAudioInfo(InitParam param);
~InAudioInfo(){;}
unsigned int CodecType()
{
return m_initparam.ucAudioCodec;
//return m_u32AudioCodec;
}
unsigned int Samplerate()
{
return m_initparam.u32AudioSamplerate;
//return m_u32AudioSamplerate;
}
unsigned int Channel()
{
return m_initparam.ucAudioChannel;
//return m_u32AudioChannel;
}
unsigned int PCMBitSize()
{
return m_initparam.u32PCMBitSize;
//return m_nPCMBitSize;
}
unsigned char G726RateBits()
{
return m_initparam.g726param.ucRateBits;
}
private:
unsigned int m_u32AudioCodec;
unsigned int m_u32AudioSamplerate;
unsigned int m_u32AudioChannel;
unsigned int m_nPCMBitSize;
InitParam m_initparam;
};
//----------------------------------------------------------
class IDecodeToPcm
{
public:
IDecodeToPcm(void);
virtual ~IDecodeToPcm(void);
public:
virtual int Init(InAudioInfo info)=0;
virtual int Decode( unsigned char* outbuf, unsigned int* outlen , unsigned char* inbuf, unsigned int inlen)=0;
virtual int PCMSize()=0;
virtual int G7FrameSize()=0;
};
//----------------------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------------------
class DecodeToPcmBase:public IDecodeToPcm
{
public:
DecodeToPcmBase();
virtual ~DecodeToPcmBase();
int Init(InAudioInfo info);
public:
virtual int Decode(unsigned char* outbuf, unsigned int* outlen , unsigned char* inbuf, unsigned int inlen);
virtual int PCMSize();
virtual int G7FrameSize();
virtual unsigned short DecodeOneChar(unsigned char data)=0;
private:
int m_g7FrameSize;
};
#endif