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
diff --git a/Lib/test/test_audioop.py b/Lib/test/test_audioop.py
index 440adab..f585733 100644
--- a/Lib/test/test_audioop.py
+++ b/Lib/test/test_audioop.py
@@ -136,12 +136,30 @@
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