aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2020-03-12 13:22:53 +0100
committerPhilipp Maier <pmaier@sysmocom.de>2020-03-13 10:52:22 +0100
commit3a5917bd5044eaf5327d15766a2ef900433b6627 (patch)
tree62c26ccdabd86c1bde5eb77ce1382e62f0643dbe /src
parent44b9926c84c9cb9a3fcf2d0770d4951a4eab5fe2 (diff)
gsm690: Fix amr speech bit length table
The table amr_len_by_ft represents the length of the raw AMR speech bits in bytes. The table is based on the Table found in RFC 4867 §3.6, Table 1, Column "Total speech bits". The number of bits is divided by 8 and then rounded up to get the number of consumed octets. An AMR SID frame (including STI and MI) takes up 39 bits, this will result in 5 octets, not in 7. Lets correct this. Related: OS#2978 Change-Id: Icf330450981b32be5d1cee5b10aa92bac4cb72f5
Diffstat (limited to 'src')
-rw-r--r--src/codec/gsm690.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/codec/gsm690.c b/src/codec/gsm690.c
index 19557164..8ab1df12 100644
--- a/src/codec/gsm690.c
+++ b/src/codec/gsm690.c
@@ -216,8 +216,9 @@ const uint16_t gsm690_4_75_bitorder[95] = {
92, 31, 52, 65, 86,
};
+/* See also RFC 4867 §3.6, Table 1, Column "Total speech bits" */
static const uint8_t amr_len_by_ft[16] = {
- 12, 13, 15, 17, 19, 20, 26, 31, 7, 0, 0, 0, 0, 0, 0, 0
+ 12, 13, 15, 17, 19, 20, 26, 31, 5, 0, 0, 0, 0, 0, 0, 0
};
const struct value_string osmo_amr_type_names[] = {