# HG changeset patch # User Mychaela Falconia # Date 1683866949 0 # Node ID 731c98b67da11f73b90f60d198ec91abb88bd5fe # Parent 731ca8b5cc4289165db0eba86b83067197a6b4d0 doc/FR1-Rx-DTX: document changes from 1.0.1 to 1.0.2 diff -r 731ca8b5cc42 -r 731c98b67da1 doc/FR1-Rx-DTX --- a/doc/FR1-Rx-DTX Fri May 12 03:49:51 2023 +0000 +++ b/doc/FR1-Rx-DTX Fri May 12 04:49:09 2023 +0000 @@ -159,6 +159,35 @@ Themyscira libgsmfrp implements the correct silence frame per the spec, and that datum is also made public. +libgsmfrp change history: version 1.0.1 to version 1.0.2 +======================================================== + +There are only two changes, both involving corner cases with invalid SID frames +being received: + +1) An invalid SID frame was received immediately following a good speech frame. + In this case we start CN generation, but we take the needed LARc and Xmaxc + parameters from the last speech frame, instead of the usual procedure of + extracting them from a valid SID frame. The change from 1.0.1 to 1.0.2 + concerns the Xmaxc parameter in this corner case: in 1.0.1 we took Xmaxc + from the last subframe and used it for ensuing CN generation, but in 1.0.2 + we compute a more proper mean Xmaxc from all 4 subframes, by dequantizing, + summing and requantizing. + +2) An invalid SID frame was received in the speech muting state. The sequence + of inputs would have to be: + + - a good speech frame; + - one or more BFIs, but not too many, so that the cached speech frame + does not decay fully by Xmaxc reduction; + - an invalid SID frame. + + In version 1.0.1 we handled this even more obscure corner case by entering + the CN muting state, i.e., the state that is normally entered upon the + second lost SID. In version 1.0.2 we ignore invalid SID in the speech + muting state and act as if we got BFI, i.e., continue speech muting rather + than switch to CN muting. + libgsmfrp change history: version 1.0.0 to version 1.0.1 ========================================================