protected int compress()

in src/main/java/com/amazonaws/lex/twilio/sample/server/media/ALawCompressor.java [33:55]


    protected int compress(short sample) {
        int sign;
        int exponent;
        int mantissa;
        int compressedByte;

        sign = ((~sample) >> 8) & 0x80;
        if (sign == 0) {
            sample *= -1;
        }
        if (sample > cClip) {
            sample = cClip;
        }
        if (sample >= 256) {
            exponent = ALawCompressTable[(sample >> 8) & 0x007F];
            mantissa = (sample >> (exponent + 3)) & 0x0F;
            compressedByte = 0x007F & ((exponent << 4) | mantissa);
        } else {
            compressedByte = 0x007F & (sample >> 4);
        }
        compressedByte ^= (sign ^ 0x55);
        return compressedByte;
    }