diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2020-03-12 13:22:53 +0100 |
---|---|---|
committer | Philipp Maier <pmaier@sysmocom.de> | 2020-03-13 10:52:22 +0100 |
commit | 3a5917bd5044eaf5327d15766a2ef900433b6627 (patch) | |
tree | 62c26ccdabd86c1bde5eb77ce1382e62f0643dbe | |
parent | 44b9926c84c9cb9a3fcf2d0770d4951a4eab5fe2 (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
-rw-r--r-- | src/codec/gsm690.c | 3 | ||||
-rw-r--r-- | tests/codec/codec_test.ok | 4 |
2 files changed, 4 insertions, 3 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[] = { diff --git a/tests/codec/codec_test.ok b/tests/codec/codec_test.ok index 53070233..b8cba19c 100644 --- a/tests/codec/codec_test.ok +++ b/tests/codec/codec_test.ok @@ -1,6 +1,6 @@ AMR RTP payload decoder test: -[9] decode RTP 20 44 00 00 00 00 04 OK: FT AMR SID, CMR AMR 5,90 kbit/s, CMI is 2, SID type FIRST [9] encode [0] -[9] decode RTP 20 44 29 c2 92 91 f4 OK: FT AMR SID, CMR AMR 5,90 kbit/s, CMI is 2, SID type UPDATE [9] encode [0] +[7] decode RTP 20 44 00 00 00 00 04 OK: FT AMR SID, CMR AMR 5,90 kbit/s, CMI is 2, SID type FIRST [7] encode [0] +[7] decode RTP 20 44 29 c2 92 91 f4 OK: FT AMR SID, CMR AMR 5,90 kbit/s, CMI is 2, SID type UPDATE [7] encode [0] [2/2] No Data/NA, CMR: OK, FT: OK, BFI: OK, CMI: -1, STI: -1 [2/2] No Data/NA, CMR: OK, FT: OK, BFI: OK, CMI: -1, STI: -1 [33/33] AMR 12,2 kbit/s (GSM-EFR), CMR: OK, FT: OK, BFI: OK, CMI: -1, STI: -1 |