FreeCalypso > hg > gsm-codec-lib
annotate dev/gsmfr-dhf.c @ 415:01c4becb9fda
libtwamr: integrate pitch_ol.c
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Tue, 07 May 2024 03:01:01 +0000 | 
| parents | 37dc5c84bbe9 | 
| children | 
| rev | line source | 
|---|---|
| 1 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /* | 
| 277 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 2 * This program is meant to be run only once by the developer - it | 
| 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 3 * generates RTP-packed form of the decoder homing frame for GSM-FR, | 
| 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 4 * as specified in more recent versions of GSM 06.10 spec. | 
| 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 | 
| 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 #include <stdio.h> | 
| 276 
e4ca04586118
dev/gsm0611-silence-fr: rework to eliminate libgsm dependency
 Mychaela Falconia <falcon@freecalypso.org> parents: 
25diff
changeset | 8 #include <stdint.h> | 
| 1 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 #include <stdlib.h> | 
| 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 #include <string.h> | 
| 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 #include <strings.h> | 
| 276 
e4ca04586118
dev/gsm0611-silence-fr: rework to eliminate libgsm dependency
 Mychaela Falconia <falcon@freecalypso.org> parents: 
25diff
changeset | 12 | 
| 
e4ca04586118
dev/gsm0611-silence-fr: rework to eliminate libgsm dependency
 Mychaela Falconia <falcon@freecalypso.org> parents: 
25diff
changeset | 13 extern void gsmfr_pack_to_rtp(const int16_t *params, uint8_t *frame); | 
| 1 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 | 
| 277 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 15 static const int16_t larc[8] = {9, 23, 15, 8, 7, 3, 3, 2}; | 
| 1 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 | 
| 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 main(argc, argv) | 
| 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 char **argv; | 
| 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 { | 
| 277 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 20 int16_t params[76], *pp; | 
| 276 
e4ca04586118
dev/gsm0611-silence-fr: rework to eliminate libgsm dependency
 Mychaela Falconia <falcon@freecalypso.org> parents: 
25diff
changeset | 21 uint8_t frame[33]; | 
| 277 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 22 unsigned m, n; | 
| 1 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 | 
| 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 /* gather params */ | 
| 277 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 25 bcopy(larc, params, sizeof(int16_t) * 8); | 
| 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 26 pp = params + 8; | 
| 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 27 for (m = 0; m < 4; m++) { | 
| 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 28 *pp++ = 40; | 
| 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 29 *pp++ = 0; | 
| 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 30 *pp++ = 0; | 
| 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 31 *pp++ = 0; | 
| 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 32 for (n = 0; n < 13; n++) { | 
| 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 33 if (m == 3 && n == 4) | 
| 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 34 *pp++ = 3; | 
| 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 35 else | 
| 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 36 *pp++ = 4; | 
| 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 37 } | 
| 
37dc5c84bbe9
dev: generate RTP-packed GSM-FR DHF
 Mychaela Falconia <falcon@freecalypso.org> parents: 
276diff
changeset | 38 } | 
| 1 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 /* generate frame */ | 
| 276 
e4ca04586118
dev/gsm0611-silence-fr: rework to eliminate libgsm dependency
 Mychaela Falconia <falcon@freecalypso.org> parents: 
25diff
changeset | 40 gsmfr_pack_to_rtp(params, frame); | 
| 1 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 /* print the frame */ | 
| 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 for (n = 0; n < 33; n++) { | 
| 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 printf("0x%02X,", frame[n]); | 
| 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 if (n == 4 || n == 11 || n == 18 || n == 25 || n == 32) | 
| 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 putchar('\n'); | 
| 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 else | 
| 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 putchar(' '); | 
| 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 } | 
| 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 exit(0); | 
| 
6780b23654bd
libgsmfrp: starting with the silence frame
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 } | 
