linphone-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Linphone-developers] Can't decode PCMU


From: bloodcarter
Subject: [Linphone-developers] Can't decode PCMU
Date: Wed, 21 Dec 2016 15:22:02 +0000

Hi, I'm trying to decode PCMU like that:

int
ulaw2linear(ulawbyte)
unsigned char ulawbyte;
{
  static int exp_lut[8] = {0,132,396,924,1980,4092,8316,16764};
  int sign, exponent, mantissa, sample;

  ulawbyte = ~ulawbyte;
  sign = (ulawbyte & 0x80);
  exponent = (ulawbyte >> 4) & 0x07;
  mantissa = ulawbyte & 0x0F;
  sample = exp_lut[exponent] + (mantissa << (exponent + 3));
  if (sign != 0) sample = -sample;

  return(sample);
}

 mblk_t *mp=rtp_session_recvm_with_ts(call->r_session, call->recv_ts);        
        if (mp!=NULL){
                unsigned char *payload;
                int len = rtp_get_payload(mp,&payload);
                
                int* buf[RTP_RECVBUF] = {0};
                for(int i =0; i < len; i++)
                    buf[i] = ulaw2linear(payload[i]);
                fwrite(buf, sizeof(int), len, stdout);
        }

But no luck. What am I doing wrong? Thanks.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]