//G711 PCMA编码 bool CEncoder::G711A_AudioEncode(LPBYTE pInput, unsigned int nInLen, LPBYTE pOutput, unsigned int& nOutLen) { if(!pInput || !pOutput || nInLen <= 0) return false; unsigned int out_size = (nInLen >> 1); uint8_t* pout_data = pOutput; int16_t* pin_data = (int16_t*)pInput; for(int i=0; i<out_size; i++) { pout_data[i] = linear2alaw(pin_data[i]); } nOutLen = out_size; return true; } //G711 PCMU编码 bool CEncoder::G711U_AudioEncode(LPBYTE pInput, unsigned int nInLen, LPBYTE pOutput, unsigned int& nOutLen) { if(!pInput || !pOutput || nInLen <= 0) return false; unsigned int out_size = (nInLen >> 1); uint8_t* pout_data = pOutput; int16_t* pin_data = (int16_t*)pInput; for(int i=0; i<out_size; i++) { pout_data[i] = linear2ulaw(pin_data[i]); } nOutLen = out_size; return true; }
原文:http://blog.csdn.net/acm2008/article/details/44649563