FreeCalypso > hg > gsm-codec-lib
annotate libgsmefr/gsm_efr.h @ 146:0fa0cd251a31
gsmefr-dec-parse: use factored-out ETSI bit reader
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 14 Dec 2022 08:05:08 +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 */ |