SF [ 1231053 ] audioop - alaw encoding/decoding added, code updated

This patch adds a-LAW encoding to audioop and replaces the old
u-LAW encoding/decoding code with the current code from sox.

Possible issues: the code from sox uses int16_t.

Code by Lars Immisch
This commit is contained in:
Anthony Baxter 2006-03-20 05:21:58 +00:00
parent d1e0ef68fb
commit fa86907aae
4 changed files with 349 additions and 98 deletions

View file

@ -136,12 +136,30 @@ def testlin2adpcm(data):
return 0
return 1
def testlin2alaw(data):
if verbose:
print 'lin2alaw'
if audioop.lin2alaw(data[0], 1) != '\xd5\xc5\xf5' or \
audioop.lin2alaw(data[1], 2) != '\xd5\xd5\xd5' or \
audioop.lin2alaw(data[2], 4) != '\xd5\xd5\xd5':
return 0
return 1
def testalaw2lin(data):
if verbose:
print 'alaw2lin'
# Cursory
d = audioop.lin2alaw(data[0], 1)
if audioop.alaw2lin(d, 1) != data[0]:
return 0
return 1
def testlin2ulaw(data):
if verbose:
print 'lin2ulaw'
if audioop.lin2ulaw(data[0], 1) != '\377\347\333' or \
audioop.lin2ulaw(data[1], 2) != '\377\377\377' or \
audioop.lin2ulaw(data[2], 4) != '\377\377\377':
if audioop.lin2ulaw(data[0], 1) != '\xff\xe7\xdb' or \
audioop.lin2ulaw(data[1], 2) != '\xff\xff\xff' or \
audioop.lin2ulaw(data[2], 4) != '\xff\xff\xff':
return 0
return 1