45
51
for (unsigned char* end = src + buf_size; src < end; ++src, ++dst)
52
58
for (unsigned char * end = dst + buf_size; dst < end; ++src, ++dst)
60
65
ulaw ^= 0xff; // u-law has all bits inverted for transmission
61
66
int linear = ulaw & 0x0f;
63
68
linear |= 0x84; // Set MSB (0x80) and a 'half' bit (0x04) to place PCM value in middle of range
68
73
linear -= 0x84; // Subract uLaw bias