FreeCalypso > hg > gsm-codec-lib
comparison doc/FR1-Rx-DTX @ 244:fcc0887ff0d0
doc/FR1-Rx-DTX: document changes from 1.0.0 to 1.0.1
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Tue, 09 May 2023 17:28:19 +0000 |
| parents | aa4cdab30dc8 |
| children | 731c98b67da1 |
comparison
equal
deleted
inserted
replaced
| 243:5176f470489d | 244:fcc0887ff0d0 |
|---|---|
| 156 Many implementors make the mistake of thinking that a GSM FR silence frame is a | 156 Many implementors make the mistake of thinking that a GSM FR silence frame is a |
| 157 frame of 260 zero bits, but the official specs disagree: the silence frame given | 157 frame of 260 zero bits, but the official specs disagree: the silence frame given |
| 158 in GSM 06.11 (3GPP TS 46.011, at the very end of the spec) is quite different. | 158 in GSM 06.11 (3GPP TS 46.011, at the very end of the spec) is quite different. |
| 159 Themyscira libgsmfrp implements the correct silence frame per the spec, and that | 159 Themyscira libgsmfrp implements the correct silence frame per the spec, and that |
| 160 datum is also made public. | 160 datum is also made public. |
| 161 | |
| 162 libgsmfrp change history: version 1.0.0 to version 1.0.1 | |
| 163 ======================================================== | |
| 164 | |
| 165 Version 1.0.0 exhibited the following defects, which are fixed in 1.0.1: | |
| 166 | |
| 167 1) The last received valid SID was cached forever for the purpose of | |
| 168 handling future invalid SIDs - we could have received some valid | |
| 169 SID ages ago, then lots of speech or NO_DATA, and if we then get | |
| 170 an invalid SID, we would resurrect the last valid SID from ancient | |
| 171 history - a bad design. In our new design, we handle invalid SID | |
| 172 based on the current state, much like BFI. | |
| 173 | |
| 174 2) GSM 06.11 spec says clearly that after the second lost SID | |
| 175 (received BFI=1 && TAF=1 in CN state) we need to gradually decrease | |
| 176 the output level, rather than jump directly to emitting silence | |
| 177 frames - we previously failed to implement such logic. | |
| 178 | |
| 179 3) Per GSM 06.12 section 5.2, Xmaxc should be the same in all 4 subframes | |
| 180 in a SID frame. What should we do if we receive an otherwise valid | |
| 181 SID frame with different Xmaxc? Our previous approach would | |
| 182 replicate this Xmaxc oddity in every subsequent generated CN frame, | |
| 183 which is rather bad. In our new design, the very first CN frame | |
| 184 (which can be seen as a transformation of the SID frame itself) | |
| 185 retains the original 4 distinct Xmaxc, but all subsequent CN frames | |
| 186 are based on the Xmaxc from the last subframe of the most recent SID. |
