FreeCalypso > hg > gsm-codec-lib
comparison frtest/decode.c @ 284:8d3cfa65a6c2
gsmfr-decode: convert to libgsmfr2
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 14 Apr 2024 05:59:15 +0000 |
parents | b9a842775f40 |
children |
comparison
equal
deleted
inserted
replaced
283:25649b3a83e9 | 284:8d3cfa65a6c2 |
---|---|
3 */ | 3 */ |
4 | 4 |
5 #include <stdio.h> | 5 #include <stdio.h> |
6 #include <stdint.h> | 6 #include <stdint.h> |
7 #include <stdlib.h> | 7 #include <stdlib.h> |
8 #include <gsm.h> | 8 #include "../libgsmfr2/tw_gsmfr.h" |
9 #include "../libgsmfrp/gsm_fr_preproc.h" | |
10 #include "../libtest/binreader.h" | 9 #include "../libtest/binreader.h" |
11 #include "../libtest/wavwriter.h" | 10 #include "../libtest/wavwriter.h" |
12 #include "../libtest/pcmwrite.h" | 11 #include "../libtest/pcmwrite.h" |
13 | 12 |
14 main(argc, argv) | 13 main(argc, argv) |
15 char **argv; | 14 char **argv; |
16 { | 15 { |
17 FILE *binf; | 16 FILE *binf; |
18 void *wav; | 17 void *wav; |
19 gsm dec_state; | 18 struct gsmfr_fulldec_state *fd_state; |
20 struct gsmfr_preproc_state *pp_state; | |
21 uint8_t frame[BINFILE_MAX_FRAME]; | 19 uint8_t frame[BINFILE_MAX_FRAME]; |
22 int16_t pcm[160]; | 20 int16_t pcm[160]; |
23 int rc, bfi, taf; | 21 int rc, bfi, taf; |
24 | 22 |
25 if (argc != 3) { | 23 if (argc != 3) { |
34 wav = wav_write_open(argv[2], 8000, 16, 1); | 32 wav = wav_write_open(argv[2], 8000, 16, 1); |
35 if (!wav) { | 33 if (!wav) { |
36 perror(argv[2]); | 34 perror(argv[2]); |
37 exit(1); | 35 exit(1); |
38 } | 36 } |
39 dec_state = gsm_create(); | 37 fd_state = gsmfr_fulldec_create(); |
40 if (!dec_state) { | 38 if (!fd_state) { |
41 fprintf(stderr, "gsm_create() failed!\n"); | 39 fprintf(stderr, "gsmfr_fulldec_create() failed!\n"); |
42 exit(1); | |
43 } | |
44 pp_state = gsmfr_preproc_create(); | |
45 if (!pp_state) { | |
46 fprintf(stderr, "gsmfr_preproc_create() failed!\n"); | |
47 exit(1); | 40 exit(1); |
48 } | 41 } |
49 for (;;) { | 42 for (;;) { |
50 rc = binfile_read_frame(binf, frame); | 43 rc = binfile_read_frame(binf, frame); |
51 if (rc < 0) { | 44 if (rc < 0) { |
63 fprintf(stderr, "error: %s is not in FR codec format\n", | 56 fprintf(stderr, "error: %s is not in FR codec format\n", |
64 argv[1]); | 57 argv[1]); |
65 exit(1); | 58 exit(1); |
66 } | 59 } |
67 if (bfi) | 60 if (bfi) |
68 gsmfr_preproc_bfi(pp_state, taf, frame); | 61 gsmfr_fulldec_bfi(fd_state, taf, pcm); |
69 else | 62 else |
70 gsmfr_preproc_good_frame(pp_state, frame); | 63 gsmfr_fulldec_good_frame(fd_state, frame, pcm); |
71 gsm_decode(dec_state, frame, pcm); | |
72 write_pcm_to_wav(wav, pcm); | 64 write_pcm_to_wav(wav, pcm); |
73 } | 65 } |
74 wav_write_close(wav); | 66 wav_write_close(wav); |
75 exit(0); | 67 exit(0); |
76 } | 68 } |