FreeCalypso > hg > gsm-codec-lib
annotate libgsmefr/bfi_nodata.c @ 122:b33f2168fdec
doc/EFR-rationale article written
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 10 Dec 2022 08:51:01 +0000 |
parents | 7152cc7d1ca3 |
children | eefef9f6d533 |
rev | line source |
---|---|
99
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * In the expected usage mode of our libgsmefr decoder as part of "soft TRAU" |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * uplink implementation, there will be times when the radio subsystem tells |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * us that a frame has been lost, but we don't have any errored bits to feed |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 * to the decoder as ETSI canon calls for. We could of course call |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 * EFR_decode_frame() with a dummy frame of all zeros and BFI=1, but the |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 * EFR_decode_bfi_nodata() function provided in this module accomplishes |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 * the same effect more efficiently. |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 */ |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #include <string.h> |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #include "gsm_efr.h" |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 void EFR_decode_bfi_nodata(struct EFR_decoder_state *st, int taf, |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 int16_t *pcm_out) |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 { |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 int16_t params[EFR_NUM_PARAMS]; |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 memset(params, 0, sizeof(int16_t) * EFR_NUM_PARAMS); |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 EFR_decode_params(st, params, 1, 0, taf, pcm_out); |
7152cc7d1ca3
libgsmefr: implement EFR_decode_bfi_nodata()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 } |