annotate libtest/roberead.c @ 513:03a40ac2e931

libgsmhr1: implement validation for *.cod frames
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 25 Aug 2024 19:00:03 +0000
parents 9814041e8096
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11
a3aa152c4653 libtest: pcmwrite helper function and module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
155
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
2 * Here we implement our PCM read helper function for "robe" format.
11
a3aa152c4653 libtest: pcmwrite helper function and module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 */
a3aa152c4653 libtest: pcmwrite helper function and module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4
155
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
5 #include <stdio.h>
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
6 #include <stdint.h>
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
7 #include "roberead.h"
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
8
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
9 int robe_get_pcm_block(FILE *inf, int16_t *pcm)
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
10 {
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
11 uint8_t bytes[320], *dp;
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
12 int cc, i;
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
13
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
14 cc = fread(bytes, 1, 320, inf);
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
15 cc >>= 1;
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
16 dp = bytes;
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
17 for (i = 0; i < cc; i++) {
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
18 pcm[i] = (dp[0] << 8) | dp[1];
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
19 dp += 2;
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
20 }
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
21 while (i < 160)
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
22 pcm[i++] = 0;
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
23 return cc;
9814041e8096 gsmfr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 153
diff changeset
24 }