32 # if defined(LPCNET_BUILD) && defined(DLL_EXPORT)
33 # define LPCNET_EXPORT __declspec(dllexport)
35 # define LPCNET_EXPORT
37 # elif defined(__GNUC__) && defined(LPCNET_BUILD)
38 # define LPCNET_EXPORT __attribute__ ((visibility ("default")))
40 # define LPCNET_EXPORT
45 #define NB_FEATURES 20
46 #define NB_TOTAL_FEATURES 36
49 #define LPCNET_COMPRESSED_SIZE 8
51 #define LPCNET_PACKET_SAMPLES (4*160)
53 #define LPCNET_FRAME_SIZE (160)
55 typedef struct LPCNetState LPCNetState;
57 typedef struct LPCNetDecState LPCNetDecState;
59 typedef struct LPCNetEncState LPCNetEncState;
61 typedef struct LPCNetPLCState LPCNetPLCState;
67 LPCNET_EXPORT
int lpcnet_decoder_get_size(
void);
76 LPCNET_EXPORT
int lpcnet_decoder_init(LPCNetDecState *st);
81 LPCNET_EXPORT LPCNetDecState *lpcnet_decoder_create(
void);
86 LPCNET_EXPORT
void lpcnet_decoder_destroy(LPCNetDecState *st);
94 LPCNET_EXPORT
int lpcnet_decode(LPCNetDecState *st,
const unsigned char *buf,
short *pcm);
101 LPCNET_EXPORT
int lpcnet_encoder_get_size(
void);
110 LPCNET_EXPORT
int lpcnet_encoder_init(LPCNetEncState *st);
115 LPCNET_EXPORT LPCNetEncState *lpcnet_encoder_create(
void);
120 LPCNET_EXPORT
void lpcnet_encoder_destroy(LPCNetEncState *st);
128 LPCNET_EXPORT
int lpcnet_encode(LPCNetEncState *st,
const short *pcm,
unsigned char *buf);
136 LPCNET_EXPORT
int lpcnet_compute_features(LPCNetEncState *st,
const short *pcm,
float features[4][NB_TOTAL_FEATURES]);
144 LPCNET_EXPORT
int lpcnet_compute_single_frame_features(LPCNetEncState *st,
const short *pcm,
float features[NB_TOTAL_FEATURES]);
149 LPCNET_EXPORT
int lpcnet_get_size(
void);
158 LPCNET_EXPORT
int lpcnet_init(LPCNetState *st);
163 LPCNET_EXPORT LPCNetState *lpcnet_create(
void);
168 LPCNET_EXPORT
void lpcnet_destroy(LPCNetState *st);
177 LPCNET_EXPORT
void lpcnet_synthesize(LPCNetState *st,
const float *features,
short *output,
int N);
180 #define LPCNET_PLC_CAUSAL 0
181 #define LPCNET_PLC_NONCAUSAL 1
182 #define LPCNET_PLC_CODEC 2
184 #define LPCNET_PLC_DC_FILTER 4
186 LPCNET_EXPORT
int lpcnet_plc_get_size(
void);
188 LPCNET_EXPORT
int lpcnet_plc_init(LPCNetPLCState *st,
int options);
190 LPCNET_EXPORT LPCNetPLCState *lpcnet_plc_create(
int options);
192 LPCNET_EXPORT
void lpcnet_plc_destroy(LPCNetPLCState *st);
194 LPCNET_EXPORT
int lpcnet_plc_update(LPCNetPLCState *st,
short *pcm);
196 LPCNET_EXPORT
int lpcnet_plc_conceal(LPCNetPLCState *st,
short *pcm);
198 LPCNET_EXPORT
void lpcnet_plc_fec_add(LPCNetPLCState *st,
const float *features);