| @@ -45,48 +45,48 @@ | |||||
| /* alaw2linear() - Convert an A-law value to 16-bit linear PCM */ | /* alaw2linear() - Convert an A-law value to 16-bit linear PCM */ | ||||
| static av_cold int alaw2linear(unsigned char a_val) | static av_cold int alaw2linear(unsigned char a_val) | ||||
| { | { | ||||
| int t; | |||||
| int seg; | |||||
| int t; | |||||
| int seg; | |||||
| a_val ^= 0x55; | |||||
| a_val ^= 0x55; | |||||
| t = a_val & QUANT_MASK; | |||||
| seg = ((unsigned)a_val & SEG_MASK) >> SEG_SHIFT; | |||||
| if(seg) t= (t + t + 1 + 32) << (seg + 2); | |||||
| else t= (t + t + 1 ) << 3; | |||||
| t = a_val & QUANT_MASK; | |||||
| seg = ((unsigned)a_val & SEG_MASK) >> SEG_SHIFT; | |||||
| if(seg) t= (t + t + 1 + 32) << (seg + 2); | |||||
| else t= (t + t + 1 ) << 3; | |||||
| return (a_val & SIGN_BIT) ? t : -t; | |||||
| return (a_val & SIGN_BIT) ? t : -t; | |||||
| } | } | ||||
| static av_cold int ulaw2linear(unsigned char u_val) | static av_cold int ulaw2linear(unsigned char u_val) | ||||
| { | { | ||||
| int t; | |||||
| int t; | |||||
| /* Complement to obtain normal u-law value. */ | |||||
| u_val = ~u_val; | |||||
| /* Complement to obtain normal u-law value. */ | |||||
| u_val = ~u_val; | |||||
| /* | |||||
| * Extract and bias the quantization bits. Then | |||||
| * shift up by the segment number and subtract out the bias. | |||||
| */ | |||||
| t = ((u_val & QUANT_MASK) << 3) + BIAS; | |||||
| t <<= ((unsigned)u_val & SEG_MASK) >> SEG_SHIFT; | |||||
| /* | |||||
| * Extract and bias the quantization bits. Then | |||||
| * shift up by the segment number and subtract out the bias. | |||||
| */ | |||||
| t = ((u_val & QUANT_MASK) << 3) + BIAS; | |||||
| t <<= ((unsigned)u_val & SEG_MASK) >> SEG_SHIFT; | |||||
| return (u_val & SIGN_BIT) ? (BIAS - t) : (t - BIAS); | |||||
| return (u_val & SIGN_BIT) ? (BIAS - t) : (t - BIAS); | |||||
| } | } | ||||
| static av_cold int vidc2linear(unsigned char u_val) | static av_cold int vidc2linear(unsigned char u_val) | ||||
| { | { | ||||
| int t; | |||||
| int t; | |||||
| /* | |||||
| * Extract and bias the quantization bits. Then | |||||
| * shift up by the segment number and subtract out the bias. | |||||
| */ | |||||
| t = (((u_val & VIDC_QUANT_MASK) >> VIDC_QUANT_SHIFT) << 3) + BIAS; | |||||
| t <<= ((unsigned)u_val & VIDC_SEG_MASK) >> VIDC_SEG_SHIFT; | |||||
| /* | |||||
| * Extract and bias the quantization bits. Then | |||||
| * shift up by the segment number and subtract out the bias. | |||||
| */ | |||||
| t = (((u_val & VIDC_QUANT_MASK) >> VIDC_QUANT_SHIFT) << 3) + BIAS; | |||||
| t <<= ((unsigned)u_val & VIDC_SEG_MASK) >> VIDC_SEG_SHIFT; | |||||
| return (u_val & VIDC_SIGN_BIT) ? (BIAS - t) : (t - BIAS); | |||||
| return (u_val & VIDC_SIGN_BIT) ? (BIAS - t) : (t - BIAS); | |||||
| } | } | ||||
| #if CONFIG_HARDCODED_TABLES | #if CONFIG_HARDCODED_TABLES | ||||