FreeCalypso > hg > gsm-codec-lib
annotate libgsmefr/dtx_defs.h @ 183:452c1d5a6268
libgsmefr BFI w/o data: emit zero output after decoder reset
In real-life usage, each EFR decoder session will most likely begin
with lots of BFI frames before the first real frame arrives. However,
because the spec-defined home state of the decoder is speech rather
than CN, our regular logic for BFI w/o data would have to feed
pseudorandom noise to the decoder (in the "fixed codebook excitation
pulses" part), which is silly to do at the beginning of the decoder
session right out of reset. Therefore, let's check reset_flag_old,
and if we are still in the reset state, simply emit zero output.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 03 Jan 2023 00:12:18 +0000 |
parents | c1d53064b410 |
children |
rev | line source |
---|---|
119
c1d53064b410
libgsmefr: split dtx.c into dtx_{common,dec,enc}.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
1 /* |
c1d53064b410
libgsmefr: split dtx.c into dtx_{common,dec,enc}.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
2 * The definitions contained in this header file originally lived in |
c1d53064b410
libgsmefr: split dtx.c into dtx_{common,dec,enc}.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
3 * dtx.c; they are being factored out into a new header file as part of |
c1d53064b410
libgsmefr: split dtx.c into dtx_{common,dec,enc}.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
4 * splitting of dtx.c code into common, encoder-only and decoder-only |
c1d53064b410
libgsmefr: split dtx.c into dtx_{common,dec,enc}.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
5 * parts. |
c1d53064b410
libgsmefr: split dtx.c into dtx_{common,dec,enc}.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
6 */ |
66
824ff833bda9
libgsmefr/dtx.c: initial import from ETSI code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 |
824ff833bda9
libgsmefr/dtx.c: initial import from ETSI code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 /* Inverse values of DTX hangover period and DTX hangover period + 1 */ |
824ff833bda9
libgsmefr/dtx.c: initial import from ETSI code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 |
824ff833bda9
libgsmefr/dtx.c: initial import from ETSI code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #define INV_DTX_HANGOVER (0x7fff / DTX_HANGOVER) |
824ff833bda9
libgsmefr/dtx.c: initial import from ETSI code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #define INV_DTX_HANGOVER_P1 (0x7fff / (DTX_HANGOVER+1)) |
824ff833bda9
libgsmefr/dtx.c: initial import from ETSI code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 |
824ff833bda9
libgsmefr/dtx.c: initial import from ETSI code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 #define NB_PULSE 10 /* Number of pulses in fixed codebook excitation */ |
824ff833bda9
libgsmefr/dtx.c: initial import from ETSI code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
824ff833bda9
libgsmefr/dtx.c: initial import from ETSI code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 /* Constant DTX_ELAPSED_THRESHOLD is used as threshold for allowing |
824ff833bda9
libgsmefr/dtx.c: initial import from ETSI code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 SID frame updating without hangover period in case when elapsed |
824ff833bda9
libgsmefr/dtx.c: initial import from ETSI code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 time measured from previous SID update is below 24 */ |
824ff833bda9
libgsmefr/dtx.c: initial import from ETSI code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 |
824ff833bda9
libgsmefr/dtx.c: initial import from ETSI code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 #define DTX_ELAPSED_THRESHOLD (24 + DTX_HANGOVER - 1) |