FreeCalypso > hg > gsm-codec-lib
annotate doc/Utils-overview @ 242:f081a6850fb5
libgsmfrp: new refined implementation
The previous implementation exhibited the following defects,
which are now fixed:
1) The last received valid SID was cached forever for the purpose of
handling future invalid SIDs - we could have received some valid
SID ages ago, then lots of speech or NO_DATA, and if we then get
an invalid SID, we would resurrect the last valid SID from ancient
history - a bad design. In our new design, we handle invalid SID
based on the current state, much like BFI.
2) GSM 06.11 spec says clearly that after the second lost SID
(received BFI=1 && TAF=1 in CN state) we need to gradually decrease
the output level, rather than jump directly to emitting silence
frames - we previously failed to implement such logic.
3) Per GSM 06.12 section 5.2, Xmaxc should be the same in all 4 subframes
in a SID frame. What should we do if we receive an otherwise valid
SID frame with different Xmaxc? Our previous approach would
replicate this Xmaxc oddity in every subsequent generated CN frame,
which is rather bad. In our new design, the very first CN frame
(which can be seen as a transformation of the SID frame itself)
retains the original 4 distinct Xmaxc, but all subsequent CN frames
are based on the Xmaxc from the last subframe of the most recent SID.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 09 May 2023 05:16:31 +0000 |
parents | 3aeb33d835ad |
children | a55fcc8b6daf |
rev | line source |
---|---|
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 Here is the complete list of all command line utilities included in the present |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 package: |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 |
218
f4f68c652e98
doc: document AMR study utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
209
diff
changeset
|
4 amr-cod-parse See AMR-study-utils article. |
f4f68c652e98
doc: document AMR study utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
209
diff
changeset
|
5 amr-ietf-parse |
f4f68c652e98
doc: document AMR study utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
209
diff
changeset
|
6 amr-cod2ietf |
f4f68c652e98
doc: document AMR study utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
209
diff
changeset
|
7 amr-ietf2cod |
f4f68c652e98
doc: document AMR study utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
209
diff
changeset
|
8 |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 gsm-amr2efr See AMR-EFR-conversion article. |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 gsm-efr2amr |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 gsmefr-cod-parse See EFR-testing article. |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 gsmefr-dec-parse |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
240
3aeb33d835ad
doc/Utils-overview: document gsmefr-cod2gsmx
Mychaela Falconia <falcon@freecalypso.org>
parents:
238
diff
changeset
|
15 gsmefr-cod2gsmx This program reads an EFR codec frame stream in ETSI |
3aeb33d835ad
doc/Utils-overview: document gsmefr-cod2gsmx
Mychaela Falconia <falcon@freecalypso.org>
parents:
238
diff
changeset
|
16 *.cod format and converts it to Themyscira gsmx format. |
3aeb33d835ad
doc/Utils-overview: document gsmefr-cod2gsmx
Mychaela Falconia <falcon@freecalypso.org>
parents:
238
diff
changeset
|
17 |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 gsmefr-decode See Codec-utils article. |
157
04936af99fc8
document gsm[e]fr-{en,de}code-r utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
143
diff
changeset
|
19 gsmefr-decode-r |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 gsmefr-encode |
157
04936af99fc8
document gsm[e]fr-{en,de}code-r utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
143
diff
changeset
|
21 gsmefr-encode-r |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 |
169
0c965c3c5e6e
doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents:
157
diff
changeset
|
23 gsmefr-dlcap-dec See Calypso-TCH-downlink article. |
0c965c3c5e6e
doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents:
157
diff
changeset
|
24 gsmefr-dlcap-gsmx |
0c965c3c5e6e
doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents:
157
diff
changeset
|
25 gsmefr-dlcap-parse |
0c965c3c5e6e
doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents:
157
diff
changeset
|
26 |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 gsmefr-etsi-dec See EFR-testing article. |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 gsmefr-etsi-enc |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 gsmefr-rec2etsi This program reads an EFR session recording in gsmx |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 format and converts it into ETSI decoder input (.dec) |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 format. It was written early in the project as a sanity |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 check, to verify that the format of TCH uplink from |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 sysmoBTS in EFR mode matches our expectations, before |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 embarking on the labor-intensive project to librify EFR |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 reference code from ETSI. |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 gsmfr-decode See Codec-utils article. |
157
04936af99fc8
document gsm[e]fr-{en,de}code-r utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
143
diff
changeset
|
39 gsmfr-decode-r |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 gsmfr-encode |
157
04936af99fc8
document gsm[e]fr-{en,de}code-r utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
143
diff
changeset
|
41 gsmfr-encode-r |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 |
169
0c965c3c5e6e
doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents:
157
diff
changeset
|
43 gsmfr-dlcap-gsmx See Calypso-TCH-downlink article. |
0c965c3c5e6e
doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents:
157
diff
changeset
|
44 gsmfr-dlcap-parse |
0c965c3c5e6e
doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents:
157
diff
changeset
|
45 |
136
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 gsmfr-hand-test This program was written as part of a debug chase: |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 there seemed to be a design flaw in libgsmfrp, but the |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 actual bug turned out to be in the way we patched |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 osmo-bts-sysmo to produce a continuous RTP stream. |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 gsmfr-max-out Another test program written as part of the same debug |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 chase. |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 gsmfr-preproc This program reads a gsmx file in FR codec format, |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 passes it through our Rx DTX preprocessor (libgsmfrp), |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 and writes the preprocessor output to another .gsm file. |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 gsmrec-dump See Binary-file-format article. |
8eb0e7a39409
doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 |
238
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
60 pcm16-check13 This program reads a 16-bit linear PCM recording file |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
61 (raw BE by default, or raw LE with -l option) and checks |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
62 if the 3 least significant bits of every sample are all |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
63 zeros. All linear PCM samples consumed or generated by |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
64 GSM codecs are only 13 bits wide, left-justified in |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
65 16-bit words, and so is output from G.711 A-law decoding |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
66 - thus it is useful to be able to check if a given file |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
67 in 16-bit PCM format is purely 13-bit or not. |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
68 |
143
195911f2211c
document PCM format conversion utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
136
diff
changeset
|
69 pcm16-raw2wav See PCM-file-formats article. |
195911f2211c
document PCM format conversion utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
136
diff
changeset
|
70 pcm16-wav2raw |
238
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
71 |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
72 pcm16-to-alaw See PCM8-conversions article. |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
73 pcm16-to-ulaw |
de1b52304d26
doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
218
diff
changeset
|
74 pcm8-to-pcm16 |