comparison efrtest/cod-parse.c @ 148:bbe5669f0f29

gsmefr-cod-parse: add BE support
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 14 Dec 2022 17:21:05 +0000
parents 90b9c7c3fa3b
children 46a6e6b6841a
comparison
equal deleted inserted replaced
147:90b9c7c3fa3b 148:bbe5669f0f29
14 #include "etsi.h" 14 #include "etsi.h"
15 15
16 main(argc, argv) 16 main(argc, argv)
17 char **argv; 17 char **argv;
18 { 18 {
19 char *infname;
19 FILE *inf; 20 FILE *inf;
21 int big_endian;
20 unsigned frame_no; 22 unsigned frame_no;
21 uint8_t input_bits[ETSI_ENC_NWORDS], frame[EFR_RTP_FRAME_LEN]; 23 uint8_t input_bits[ETSI_ENC_NWORDS], frame[EFR_RTP_FRAME_LEN];
22 int16_t params[EFR_NUM_PARAMS]; 24 int16_t params[EFR_NUM_PARAMS];
23 int rc, i, j, n; 25 int rc, i, j, n;
24 26
25 if (argc != 2) { 27 if (argc == 2 && argv[1][0] != '-') {
26 fprintf(stderr, "usage: %s file.cod\n", argv[0]); 28 big_endian = 0;
29 infname = argv[1];
30 } else if (argc == 3 && !strcmp(argv[1], "-b")) {
31 big_endian = 1;
32 infname = argv[2];
33 } else {
34 fprintf(stderr, "usage: %s [-b] file.cod\n", argv[0]);
27 exit(1); 35 exit(1);
28 } 36 }
29 inf = fopen(argv[1], "r"); 37 inf = fopen(infname, "r");
30 if (!inf) { 38 if (!inf) {
31 perror(argv[1]); 39 perror(infname);
32 exit(1); 40 exit(1);
33 } 41 }
34 for (frame_no = 0; ; frame_no++) { 42 for (frame_no = 0; ; frame_no++) {
35 rc = read_etsi_bits(inf, 0, input_bits, ETSI_ENC_NWORDS, 43 rc = read_etsi_bits(inf, big_endian, input_bits,
36 argv[1]); 44 ETSI_ENC_NWORDS, infname);
37 if (!rc) 45 if (!rc)
38 break; 46 break;
39 bits2frame(input_bits, frame, argv[1], frame_no); 47 bits2frame(input_bits, frame, infname, frame_no);
40 printf("#%u: VAD=%u SP=%u SID=%d LPC", frame_no, 48 printf("#%u: VAD=%u SP=%u SID=%d LPC", frame_no,
41 input_bits[244], input_bits[245], 49 input_bits[244], input_bits[245],
42 EFR_sid_classify(frame)); 50 EFR_sid_classify(frame));
43 EFR_frame2params(frame, params); 51 EFR_frame2params(frame, params);
44 n = 0; 52 n = 0;