FreeCalypso > hg > gsm-codec-lib
annotate libgsmefr/gsm_efr.h @ 255:07f936338de1
libtwamr: integrated up to b_cn_cod.c
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Fri, 05 Apr 2024 17:31:49 +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: 
2diff
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: 
2diff
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: 
2diff
changeset | 7 #ifndef __GSM_EFR_H | 
| 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
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: 
2diff
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: 
30diff
changeset | 12 #define EFR_RTP_FRAME_LEN 31 | 
| 
88468d5b3590
libgsmefr: implement frame packing
 Mychaela Falconia <falcon@freecalypso.org> parents: 
30diff
changeset | 13 #define EFR_NUM_PARAMS 57 | 
| 
88468d5b3590
libgsmefr: implement frame packing
 Mychaela Falconia <falcon@freecalypso.org> parents: 
30diff
changeset | 14 | 
| 30 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
changeset | 15 struct EFR_encoder_state; /* opaque to external users */ | 
| 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
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: 
2diff
changeset | 18 extern struct EFR_encoder_state *EFR_encoder_create(int dtx); | 
| 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
changeset | 19 extern struct EFR_decoder_state *EFR_decoder_create(void); | 
| 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
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: 
2diff
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: 
2diff
changeset | 24 extern void EFR_decoder_reset(struct EFR_decoder_state *st); | 
| 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
changeset | 25 | 
| 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
changeset | 26 /* encoder public functions */ | 
| 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
changeset | 27 | 
| 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
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: 
2diff
changeset | 29 int16_t *params, int *sp, int *vad); | 
| 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
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: 
2diff
changeset | 31 uint8_t *frame, int *sp, int *vad); | 
| 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
changeset | 32 | 
| 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
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: 
2diff
changeset | 35 extern void EFR_decode_params(struct EFR_decoder_state *st, | 
| 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
changeset | 36 const int16_t *params, int bfi, int sid, int taf, | 
| 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
changeset | 37 int16_t *pcm); | 
| 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
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: 
2diff
changeset | 39 int bfi, int taf, int16_t *pcm); | 
| 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
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: 
2diff
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: 
2diff
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: 
2diff
changeset | 45 extern int EFR_sid_classify(const uint8_t *frame); | 
| 
2272ba6f6879
libgsmefr: beginning with API definition
 Mychaela Falconia <falcon@freecalypso.org> parents: 
2diff
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: 
30diff
changeset | 47 extern void EFR_params2frame(const int16_t *params, uint8_t *frame); | 
| 
88468d5b3590
libgsmefr: implement frame packing
 Mychaela Falconia <falcon@freecalypso.org> parents: 
30diff
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 */ | 
