FreeCalypso > hg > gsm-codec-lib
annotate libgsmefr/gsm_efr.h @ 210:7e490a8efe8a
doc/Binary-file-format: document BFI marker format
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Sun, 16 Apr 2023 19:00:46 +0000 |
| parents | 88468d5b3590 |
| children | 9499d12d315b |
| rev | line source |
|---|---|
|
1
6780b23654bd
libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
|
30
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
2 * This header file is the external public interface to libgsmefr; |
|
1
6780b23654bd
libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * it should be installed in the same system include directory |
|
30
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
4 * as <gsm.h> and <gsm_fr_preproc.h> for the older FR codec. |
|
1
6780b23654bd
libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 */ |
|
6780b23654bd
libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 |
|
30
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
7 #ifndef __GSM_EFR_H |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
8 #define __GSM_EFR_H |
|
1
6780b23654bd
libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 |
|
30
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
10 #include <stdint.h> |
|
1
6780b23654bd
libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 |
|
33
88468d5b3590
libgsmefr: implement frame packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
30
diff
changeset
|
12 #define EFR_RTP_FRAME_LEN 31 |
|
88468d5b3590
libgsmefr: implement frame packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
30
diff
changeset
|
13 #define EFR_NUM_PARAMS 57 |
|
88468d5b3590
libgsmefr: implement frame packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
30
diff
changeset
|
14 |
|
30
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
15 struct EFR_encoder_state; /* opaque to external users */ |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
16 struct EFR_decoder_state; /* ditto */ |
|
1
6780b23654bd
libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 |
|
30
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
18 extern struct EFR_encoder_state *EFR_encoder_create(int dtx); |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
19 extern struct EFR_decoder_state *EFR_decoder_create(void); |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
20 /* use standard free() call to free both afterward */ |
|
1
6780b23654bd
libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 |
|
6780b23654bd
libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 /* reset state to initial */ |
|
30
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
23 extern void EFR_encoder_reset(struct EFR_encoder_state *st, int dtx); |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
24 extern void EFR_decoder_reset(struct EFR_decoder_state *st); |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
25 |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
26 /* encoder public functions */ |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
27 |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
28 extern void EFR_encode_params(struct EFR_encoder_state *st, const int16_t *pcm, |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
29 int16_t *params, int *sp, int *vad); |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
30 extern void EFR_encode_frame(struct EFR_encoder_state *st, const int16_t *pcm, |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
31 uint8_t *frame, int *sp, int *vad); |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
32 |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
33 /* decoder public functions */ |
|
1
6780b23654bd
libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 |
|
30
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
35 extern void EFR_decode_params(struct EFR_decoder_state *st, |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
36 const int16_t *params, int bfi, int sid, int taf, |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
37 int16_t *pcm); |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
38 extern void EFR_decode_frame(struct EFR_decoder_state *st, const uint8_t *frame, |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
39 int bfi, int taf, int16_t *pcm); |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
40 extern void EFR_decode_bfi_nodata(struct EFR_decoder_state *st, int taf, |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
41 int16_t *pcm); |
|
1
6780b23654bd
libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 |
|
30
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
43 /* stateless utility functions */ |
|
1
6780b23654bd
libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 |
|
30
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
45 extern int EFR_sid_classify(const uint8_t *frame); |
|
2272ba6f6879
libgsmefr: beginning with API definition
Mychaela Falconia <falcon@freecalypso.org>
parents:
2
diff
changeset
|
46 extern void EFR_frame2params(const uint8_t *frame, int16_t *params); |
|
33
88468d5b3590
libgsmefr: implement frame packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
30
diff
changeset
|
47 extern void EFR_params2frame(const int16_t *params, uint8_t *frame); |
|
88468d5b3590
libgsmefr: implement frame packing
Mychaela Falconia <falcon@freecalypso.org>
parents:
30
diff
changeset
|
48 extern void EFR_insert_sid_codeword(uint8_t *frame); |
|
1
6780b23654bd
libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 |
|
6780b23654bd
libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 #endif /* include guard */ |
