FreeCalypso > hg > gsm-codec-lib
annotate libgsmfr2/tw_gsmfr.h @ 585:3c6bf0d26ee7 default tip
TW-TS-005 reader: fix maximum line length bug
TW-TS-005 section 4.1 states:
The maximum allowed length of each line is 80 characters, not
including the OS-specific newline encoding.
The implementation of this line length limit in the TW-TS-005 hex file
reader function in the present suite was wrong, such that lines of
the full maximum length could not be read. Fix it.
Note that this bug affects comment lines too, not just actual RTP
payloads. Neither Annex A nor Annex B features an RTP payload format
that goes to the maximum of 40 bytes, but if a comment line goes to
the maximum allowed length of 80 characters not including the
terminating newline, the bug will be triggered, necessitating
the present fix.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 25 Feb 2025 07:49:28 +0000 |
parents | 3a617e4e9b27 |
children |
rev | line source |
---|---|
256
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This header file is the external public interface to libgsmfr2: |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * Themyscira Wireless implementation of GSM FRv1 speech codec |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * that includes not only the core transcoding functions of GSM 06.10, |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 * but also Rx DTX functions (substitution and muting per GSM 06.11, |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 * comfort noise per GSM 06.12, overall Rx DTX control per GSM 06.31) |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 * in the decoder direction and the optional homing frame mechanism. |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 * |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 * This header file should be installed in some system include directory |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 * such that it can be included by C sources as <tw_gsmfr.h>. |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 #ifndef __THEMWI_GSMFR_H |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 #define __THEMWI_GSMFR_H |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 #include <stdint.h> |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 #define GSMFR_RTP_FRAME_LEN 33 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 #define GSMFR_NUM_PARAMS 76 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 /* |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 * GSM 06.10 encoder & decoder portion of the library |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 * |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 * This part is peculiar in that the same state structure is used for |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 * both the encoder and the decoder - however, each given instance |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 * of this state structure must be used for only one of the two. |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 struct gsmfr_0610_state; /* opaque to external users */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 struct gsmfr_0610_state *gsmfr_0610_create(void); |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 /* use standard free() call to free it afterward */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 /* reset state to initial */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 void gsmfr_0610_reset(struct gsmfr_0610_state *state); |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 /* interface structure for passing frames of codec parameters */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 struct gsmfr_param_frame { |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 int16_t LARc[8]; |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 int16_t Nc[4]; |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 int16_t bc[4]; |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 int16_t Mc[4]; |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 int16_t xmaxc[4]; |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 int16_t xMc[4][13]; |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 }; |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 /* encoder public functions */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 void gsmfr_0610_encode_params(struct gsmfr_0610_state *st, const int16_t *pcm, |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 struct gsmfr_param_frame *param); |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 void gsmfr_0610_encode_frame(struct gsmfr_0610_state *st, const int16_t *pcm, |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 uint8_t *frame); |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 void gsmfr_0610_encoder_homing(struct gsmfr_0610_state *st, const int16_t *pcm); |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 /* decoder public functions */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 void gsmfr_0610_decode_params(struct gsmfr_0610_state *st, |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 const struct gsmfr_param_frame *param, |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 int16_t *pcm); |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 void gsmfr_0610_decode_frame(struct gsmfr_0610_state *st, const uint8_t *frame, |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 int16_t *pcm); |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 /* conversion between RTP packed format and struct gsmfr_param_frame */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 void gsmfr_pack_frame(const struct gsmfr_param_frame *param, uint8_t *frame); |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 void gsmfr_unpack_frame(const uint8_t *frame, struct gsmfr_param_frame *param); |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 |
259
bebae251e5ee
libgsmfr2: implement gsmfr_pack_from_array()
Mychaela Falconia <falcon@freecalypso.org>
parents:
256
diff
changeset
|
69 /* similar conversions with a linear array of params */ |
bebae251e5ee
libgsmfr2: implement gsmfr_pack_from_array()
Mychaela Falconia <falcon@freecalypso.org>
parents:
256
diff
changeset
|
70 |
bebae251e5ee
libgsmfr2: implement gsmfr_pack_from_array()
Mychaela Falconia <falcon@freecalypso.org>
parents:
256
diff
changeset
|
71 void gsmfr_pack_from_array(const int16_t *params, uint8_t *frame); |
bebae251e5ee
libgsmfr2: implement gsmfr_pack_from_array()
Mychaela Falconia <falcon@freecalypso.org>
parents:
256
diff
changeset
|
72 void gsmfr_unpack_to_array(const uint8_t *frame, int16_t *params); |
bebae251e5ee
libgsmfr2: implement gsmfr_pack_from_array()
Mychaela Falconia <falcon@freecalypso.org>
parents:
256
diff
changeset
|
73 |
256
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 /* Rx DTX handler preprocessor portion of the library */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 struct gsmfr_preproc_state; /* opaque to external users */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 struct gsmfr_preproc_state *gsmfr_preproc_create(void); |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 /* use standard free() call to free it afterward */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 /* reset state to initial */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 void gsmfr_preproc_reset(struct gsmfr_preproc_state *state); |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 /* main processing functions */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 void gsmfr_preproc_good_frame(struct gsmfr_preproc_state *state, |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 uint8_t *frame); |
525
c95e89367321
libgsmfr2: add gsmfr_preproc_good_frame_hm()
Mychaela Falconia <falcon@freecalypso.org>
parents:
259
diff
changeset
|
87 void gsmfr_preproc_good_frame_hm(struct gsmfr_preproc_state *state, |
c95e89367321
libgsmfr2: add gsmfr_preproc_good_frame_hm()
Mychaela Falconia <falcon@freecalypso.org>
parents:
259
diff
changeset
|
88 uint8_t *frame); |
256
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 void gsmfr_preproc_bfi(struct gsmfr_preproc_state *state, int taf, |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 uint8_t *frame_out); |
526
405a84110997
libgsmfr2: add gsmfr_preproc_bfi_bits()
Mychaela Falconia <falcon@freecalypso.org>
parents:
525
diff
changeset
|
91 void gsmfr_preproc_bfi_bits(struct gsmfr_preproc_state *state, |
405a84110997
libgsmfr2: add gsmfr_preproc_bfi_bits()
Mychaela Falconia <falcon@freecalypso.org>
parents:
525
diff
changeset
|
92 const uint8_t *bad_frame, int taf, |
405a84110997
libgsmfr2: add gsmfr_preproc_bfi_bits()
Mychaela Falconia <falcon@freecalypso.org>
parents:
525
diff
changeset
|
93 uint8_t *frame_out); |
256
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 /* utility function */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 int gsmfr_preproc_sid_classify(const uint8_t *frame); |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 /* utility datum */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 extern const uint8_t gsmfr_preproc_silence_frame[GSMFR_RTP_FRAME_LEN]; |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 /* |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 * Full GSM-FR decoder: Rx DTX handler followed by 06.10 decoder, |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 * plus the decoder homing function. |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 struct gsmfr_fulldec_state; /* opaque to external users */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 struct gsmfr_fulldec_state *gsmfr_fulldec_create(void); |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 /* use standard free() call to free it afterward */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 /* reset state to initial */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 void gsmfr_fulldec_reset(struct gsmfr_fulldec_state *state); |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 /* main processing functions */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 void gsmfr_fulldec_good_frame(struct gsmfr_fulldec_state *state, |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 const uint8_t *frame, int16_t *pcm); |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 void gsmfr_fulldec_bfi(struct gsmfr_fulldec_state *state, int taf, |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 int16_t *pcm); |
527
f3246d109e2d
libgsmfr2: add gsmfr_fulldec_bfi_bits()
Mychaela Falconia <falcon@freecalypso.org>
parents:
526
diff
changeset
|
119 void gsmfr_fulldec_bfi_bits(struct gsmfr_fulldec_state *state, |
f3246d109e2d
libgsmfr2: add gsmfr_fulldec_bfi_bits()
Mychaela Falconia <falcon@freecalypso.org>
parents:
526
diff
changeset
|
120 const uint8_t *bad_frame, int taf, int16_t *pcm); |
256
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 |
528
f681fb758041
libgsmfr2: add gsmfr_fulldec_rtp_in()
Mychaela Falconia <falcon@freecalypso.org>
parents:
527
diff
changeset
|
122 /* handling of TW-TS-001 RTP input */ |
f681fb758041
libgsmfr2: add gsmfr_fulldec_rtp_in()
Mychaela Falconia <falcon@freecalypso.org>
parents:
527
diff
changeset
|
123 int gsmfr_fulldec_rtp_in(struct gsmfr_fulldec_state *state, |
f681fb758041
libgsmfr2: add gsmfr_fulldec_rtp_in()
Mychaela Falconia <falcon@freecalypso.org>
parents:
527
diff
changeset
|
124 const uint8_t *rtp_pl, unsigned rtp_pl_len, |
f681fb758041
libgsmfr2: add gsmfr_fulldec_rtp_in()
Mychaela Falconia <falcon@freecalypso.org>
parents:
527
diff
changeset
|
125 int16_t *pcm); |
f681fb758041
libgsmfr2: add gsmfr_fulldec_rtp_in()
Mychaela Falconia <falcon@freecalypso.org>
parents:
527
diff
changeset
|
126 |
256
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 /* utility datum */ |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 extern const uint8_t gsmfr_decoder_homing_frame[GSMFR_RTP_FRAME_LEN]; |
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 |
529
79cd992de3ad
libgsmfr2: API definitions for TFO transform
Mychaela Falconia <falcon@freecalypso.org>
parents:
528
diff
changeset
|
130 /* TFO transform API based on the preprocessor part of the library */ |
79cd992de3ad
libgsmfr2: API definitions for TFO transform
Mychaela Falconia <falcon@freecalypso.org>
parents:
528
diff
changeset
|
131 |
79cd992de3ad
libgsmfr2: API definitions for TFO transform
Mychaela Falconia <falcon@freecalypso.org>
parents:
528
diff
changeset
|
132 int gsmfr_tfo_xfrm_main(struct gsmfr_preproc_state *state, |
79cd992de3ad
libgsmfr2: API definitions for TFO transform
Mychaela Falconia <falcon@freecalypso.org>
parents:
528
diff
changeset
|
133 const uint8_t *rtp_in, unsigned rtp_in_len, |
79cd992de3ad
libgsmfr2: API definitions for TFO transform
Mychaela Falconia <falcon@freecalypso.org>
parents:
528
diff
changeset
|
134 uint8_t *frame_out); |
79cd992de3ad
libgsmfr2: API definitions for TFO transform
Mychaela Falconia <falcon@freecalypso.org>
parents:
528
diff
changeset
|
135 int gsmfr_tfo_xfrm_dtxd(struct gsmfr_preproc_state *state, uint8_t *frame_out); |
79cd992de3ad
libgsmfr2: API definitions for TFO transform
Mychaela Falconia <falcon@freecalypso.org>
parents:
528
diff
changeset
|
136 |
533
3a617e4e9b27
libgsmfr2: add const words with struct sizes
Mychaela Falconia <falcon@freecalypso.org>
parents:
529
diff
changeset
|
137 /* sizes of state structures, to support alternative malloc schemes */ |
3a617e4e9b27
libgsmfr2: add const words with struct sizes
Mychaela Falconia <falcon@freecalypso.org>
parents:
529
diff
changeset
|
138 |
3a617e4e9b27
libgsmfr2: add const words with struct sizes
Mychaela Falconia <falcon@freecalypso.org>
parents:
529
diff
changeset
|
139 extern const unsigned gsmfr_0610_state_size; |
3a617e4e9b27
libgsmfr2: add const words with struct sizes
Mychaela Falconia <falcon@freecalypso.org>
parents:
529
diff
changeset
|
140 extern const unsigned gsmfr_preproc_state_size; |
3a617e4e9b27
libgsmfr2: add const words with struct sizes
Mychaela Falconia <falcon@freecalypso.org>
parents:
529
diff
changeset
|
141 extern const unsigned gsmfr_fulldec_state_size; |
3a617e4e9b27
libgsmfr2: add const words with struct sizes
Mychaela Falconia <falcon@freecalypso.org>
parents:
529
diff
changeset
|
142 |
256
a33edf624061
libgsmfr2: start with API definition and port of libgsmfrp code
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 #endif /* include guard */ |