# HG changeset patch # User Mychaela Falconia # Date 1669190044 0 # Node ID 2272ba6f68793a10e758d9e5bd8111e1219c038e # Parent d21c68b8f16c863eaabd4c9c1e144410ba04fc51 libgsmefr: beginning with API definition diff -r d21c68b8f16c -r 2272ba6f6879 libgsmefr/gsm_efr.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libgsmefr/gsm_efr.h Wed Nov 23 07:54:04 2022 +0000 @@ -0,0 +1,46 @@ +/* + * This header file is the external public interface to libgsmefr; + * it should be installed in the same system include directory + * as and for the older FR codec. + */ + +#ifndef __GSM_EFR_H +#define __GSM_EFR_H + +#include + +struct EFR_encoder_state; /* opaque to external users */ +struct EFR_decoder_state; /* ditto */ + +extern struct EFR_encoder_state *EFR_encoder_create(int dtx); +extern struct EFR_decoder_state *EFR_decoder_create(void); +/* use standard free() call to free both afterward */ + +/* reset state to initial */ +extern void EFR_encoder_reset(struct EFR_encoder_state *st, int dtx); +extern void EFR_decoder_reset(struct EFR_decoder_state *st); + +/* encoder public functions */ + +extern void EFR_encode_params(struct EFR_encoder_state *st, const int16_t *pcm, + int16_t *params, int *sp, int *vad); +extern void EFR_encode_frame(struct EFR_encoder_state *st, const int16_t *pcm, + uint8_t *frame, int *sp, int *vad); + +/* decoder public functions */ + +extern void EFR_decode_params(struct EFR_decoder_state *st, + const int16_t *params, int bfi, int sid, int taf, + int16_t *pcm); +extern void EFR_decode_frame(struct EFR_decoder_state *st, const uint8_t *frame, + int bfi, int taf, int16_t *pcm); +extern void EFR_decode_bfi_nodata(struct EFR_decoder_state *st, int taf, + int16_t *pcm); + +/* stateless utility functions */ + +extern int EFR_sid_classify(const uint8_t *frame); +extern void EFR_frame2params(const uint8_t *frame, int16_t *params); +extern void EFR_params2frame(const int16_t *params, int sid, uint8_t *frame); + +#endif /* include guard */