comparison libgsmefr/gsm_efr.h @ 30:2272ba6f6879

libgsmefr: beginning with API definition
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 23 Nov 2022 07:54:04 +0000
parents libgsmfrp/gsm_fr_preproc.h@2b5770c715ee
children 88468d5b3590
comparison
equal deleted inserted replaced
29:d21c68b8f16c 30:2272ba6f6879
1 /*
2 * This header file is the external public interface to libgsmefr;
3 * it should be installed in the same system include directory
4 * as <gsm.h> and <gsm_fr_preproc.h> for the older FR codec.
5 */
6
7 #ifndef __GSM_EFR_H
8 #define __GSM_EFR_H
9
10 #include <stdint.h>
11
12 struct EFR_encoder_state; /* opaque to external users */
13 struct EFR_decoder_state; /* ditto */
14
15 extern struct EFR_encoder_state *EFR_encoder_create(int dtx);
16 extern struct EFR_decoder_state *EFR_decoder_create(void);
17 /* use standard free() call to free both afterward */
18
19 /* reset state to initial */
20 extern void EFR_encoder_reset(struct EFR_encoder_state *st, int dtx);
21 extern void EFR_decoder_reset(struct EFR_decoder_state *st);
22
23 /* encoder public functions */
24
25 extern void EFR_encode_params(struct EFR_encoder_state *st, const int16_t *pcm,
26 int16_t *params, int *sp, int *vad);
27 extern void EFR_encode_frame(struct EFR_encoder_state *st, const int16_t *pcm,
28 uint8_t *frame, int *sp, int *vad);
29
30 /* decoder public functions */
31
32 extern void EFR_decode_params(struct EFR_decoder_state *st,
33 const int16_t *params, int bfi, int sid, int taf,
34 int16_t *pcm);
35 extern void EFR_decode_frame(struct EFR_decoder_state *st, const uint8_t *frame,
36 int bfi, int taf, int16_t *pcm);
37 extern void EFR_decode_bfi_nodata(struct EFR_decoder_state *st, int taf,
38 int16_t *pcm);
39
40 /* stateless utility functions */
41
42 extern int EFR_sid_classify(const uint8_t *frame);
43 extern void EFR_frame2params(const uint8_t *frame, int16_t *params);
44 extern void EFR_params2frame(const int16_t *params, int sid, uint8_t *frame);
45
46 #endif /* include guard */