#include "IDecodeToPcm.h" #include "audio_buffer.h" #include #include #include #include IDecodeToPcm::IDecodeToPcm(void) { } IDecodeToPcm::~IDecodeToPcm(void) { } //------------------------------------------------------------------------------------------------------------------------ InAudioInfo::InAudioInfo() { InitParam& initParam = m_initparam; initParam.u32AudioSamplerate=8000; initParam.ucAudioChannel=1; initParam.u32PCMBitSize=16; initParam.ucAudioCodec = Law_ALaw; } InAudioInfo::InAudioInfo(InitParam param):m_initparam(param) { } //------------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------- DecodeToPcmBase::DecodeToPcmBase(void) { } DecodeToPcmBase::~DecodeToPcmBase(void) { } int DecodeToPcmBase::Init(InAudioInfo info) { m_g7FrameSize = G711_ONE_LEN; return 0; } int DecodeToPcmBase::PCMSize() { return CON_PCM_SIZE; } int DecodeToPcmBase::G7FrameSize() { return m_g7FrameSize; } int DecodeToPcmBase::Decode(unsigned char* pout_buf, unsigned int* pout_len , unsigned char* pin_buf, unsigned int in_len) { int16_t *dst = (int16_t *) pout_buf; uint8_t *src = (uint8_t *) pin_buf; uint32_t i = 0; int Ret = 0; if ((NULL == pout_buf) || \ (NULL == pout_len) || \ (NULL == pin_buf) || \ (0 == in_len)) { return -1; } if (*pout_len < 2 * in_len) { return -2; } //---{{{ for (i = 0; i < in_len; i++) { *(dst++) = (int16_t)DecodeOneChar(*(src++)); } //---}}} *pout_len = 2 * in_len; Ret = 2 * in_len; return Ret; return 0; }