Mercurial > mplayer.hg
changeset 881:bc44a4c56006
removed because of licensing problems :(
author | arpi_esp |
---|---|
date | Fri, 25 May 2001 18:24:57 +0000 |
parents | 714bc8aadb68 |
children | 6d9ceb757640 |
files | alaw.c |
diffstat | 1 files changed, 0 insertions(+), 74 deletions(-) [+] |
line wrap: on
line diff
--- a/alaw.c Fri May 25 18:19:53 2001 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ -// code from xanim sources... -// (I hope that not hurt copyright :o) - -#define xaLONG long -#define xaULONG unsigned long -#define xaBYTE char -#define xaUBYTE unsigned char - -//xaULONG long xa_alaw_2_sign[256]; -xaULONG xa_alaw_2_sign[256]; -xaULONG xa_ulaw_2_sign[256]; - -/* -** This routine converts from ulaw to 16 bit linear. -** -** Craig Reese: IDA/Supercomputing Research Center -** 29 September 1989 -** -** References: -** 1) CCITT Recommendation G.711 (very difficult to follow) -** 2) MIL-STD-188-113,"Interoperability and Performance Standards -** for Analog-to_Digital Conversion Techniques," -** 17 February 1987 -** -** Input: 8 bit ulaw sample -** Output: signed 16 bit linear sample -*/ - -xaLONG XA_uLaw_to_Signed( ulawbyte ) -xaUBYTE 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; -} - -void Gen_uLaw_2_Signed() -{ xaULONG i; - for(i=0;i<256;i++) - { xaUBYTE data = (xaUBYTE)(i); - xaLONG d = XA_uLaw_to_Signed( data ); - xa_ulaw_2_sign[i] = (xaULONG)((xaULONG)(d) & 0xffff); - } -} - - - -void Gen_aLaw_2_Signed() -{ xaULONG i; - for(i=0;i<256;i++) - { xaUBYTE data = (xaUBYTE)(i); - xaLONG d, t, seg; - - data ^= 0x55; - - t = (data & 0xf) << 4; - seg = (data & 0x70) >> 4; - if (seg == 0) t += 8; - else if (seg == 1) t += 0x108; - else { t += 108; t <<= seg - 1; } - - d = (data & 0x80)?(t):(-t); - xa_alaw_2_sign[i] = (xaULONG)((xaULONG)(d) & 0xffff); - } -} -