DESCRIPTION

Gsm is an implementation of the final draft GSM 06.10
standard for full-rate speech transcoding.

gsm_create() initializes a gsm pass and returns a 'gsm' object
which can be used as a handle in subsequent calls to gsm_decode(),
gsm_encode() or gsm_destroy().

gsm_encode() encodes an array of 160 13-bit samples (given as
gsm_signal's, signed integral values of at least 16 bits) into
a gsm_frame of 33 bytes.
(gsm_frame is a type defined as an array of 33 gsm_bytes in gsm.h.)

gsm_decode() decodes a gsm_frame into an array of 160 13-bit samples
(given as gsm_signals), which sound rather like what you handed to
gsm_encode() on the other side of the wire.

gsm_destroy() finishes a gsm pass and frees all storage associated
with it.

Sample format

The following scaling is assumed for input to the algorithm:

0 1 11 12
S..v..v..v..v..v..v..v..v..v..v..v..v..*..*..*
Only the top 13 bits are used as a signed input value.
The output of gsm_decode() has the three lower bits set to zero.