aboutsummaryrefslogtreecommitdiff
path: root/src/fdmdv_get_test_bits.c
diff options
context:
space:
mode:
authordrowe67 <[email protected]>2023-07-20 08:59:48 +0930
committerGitHub <[email protected]>2023-07-20 08:59:48 +0930
commit06d4c11e699b0351765f10398abb4f663a984f36 (patch)
tree33e22af0814c5b6c3d676f096ae8c2ac8a3ed9f0 /src/fdmdv_get_test_bits.c
parent6588e77f38bdebd7adffe091b22e7760d95d0ccb (diff)
parent4d6c143c0abec15e1d6ed1fd95d36f80e6cb7df8 (diff)
Merge pull request #3 from drowe67/dr-cleanup21.2.0
Cleanup Part 2
Diffstat (limited to 'src/fdmdv_get_test_bits.c')
-rw-r--r--src/fdmdv_get_test_bits.c164
1 files changed, 82 insertions, 82 deletions
diff --git a/src/fdmdv_get_test_bits.c b/src/fdmdv_get_test_bits.c
index 111e173..013a870 100644
--- a/src/fdmdv_get_test_bits.c
+++ b/src/fdmdv_get_test_bits.c
@@ -8,7 +8,6 @@
\*---------------------------------------------------------------------------*/
-
/*
Copyright (C) 2012 David Rowe
@@ -27,98 +26,99 @@
*/
#include <assert.h>
+#include <errno.h>
+#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <math.h>
-#include <errno.h>
#include "codec2_fdmdv.h"
-int main(int argc, char *argv[])
-{
- FILE *fout;
- struct FDMDV *fdmdv;
- char *packed_bits;
- int *tx_bits;
- int n, i, bit, byte;
- int numBits, nCodecFrames;
- int bits_per_fdmdv_frame;
- int bits_per_codec_frame;
- int bytes_per_codec_frame;
- int Nc;
-
- if (argc < 3) {
- printf("usage: %s OutputBitFile numBits [Nc]\n", argv[0]);
- printf("e.g %s test.c2 1400\n", argv[0]);
- exit(1);
+int main(int argc, char *argv[]) {
+ FILE *fout;
+ struct FDMDV *fdmdv;
+ char *packed_bits;
+ int *tx_bits;
+ int n, i, bit, byte;
+ int numBits, nCodecFrames;
+ int bits_per_fdmdv_frame;
+ int bits_per_codec_frame;
+ int bytes_per_codec_frame;
+ int Nc;
+
+ if (argc < 3) {
+ printf("usage: %s OutputBitFile numBits [Nc]\n", argv[0]);
+ printf("e.g %s test.c2 1400\n", argv[0]);
+ exit(1);
+ }
+
+ if (strcmp(argv[1], "-") == 0)
+ fout = stdout;
+ else if ((fout = fopen(argv[1], "wb")) == NULL) {
+ fprintf(stderr, "Error opening output bit file: %s: %s.\n", argv[1],
+ strerror(errno));
+ exit(1);
+ }
+
+ numBits = atoi(argv[2]);
+
+ if (argc == 4) {
+ Nc = atoi(argv[3]);
+ if ((Nc < 2) || (Nc > FDMDV_NC_MAX)) {
+ fprintf(stderr, "Error number of carriers must be btween 2 and %d\n",
+ FDMDV_NC_MAX);
+ exit(1);
}
-
- if (strcmp(argv[1], "-") == 0) fout = stdout;
- else if ( (fout = fopen(argv[1],"wb")) == NULL ) {
- fprintf(stderr, "Error opening output bit file: %s: %s.\n",
- argv[1], strerror(errno));
- exit(1);
+ } else
+ Nc = FDMDV_NC;
+
+ fdmdv = fdmdv_create(Nc);
+
+ bits_per_fdmdv_frame = fdmdv_bits_per_frame(fdmdv);
+ bits_per_codec_frame = 2 * fdmdv_bits_per_frame(fdmdv);
+ bytes_per_codec_frame = (bits_per_codec_frame + 7) / 8;
+ fprintf(stderr,
+ "bits_per_fdmdv_frame: %d bits_per_codec_frame: %d "
+ "bytes_per_codec_frame: %d\n",
+ bits_per_fdmdv_frame, bits_per_codec_frame, bytes_per_codec_frame);
+
+ packed_bits = (char *)malloc(bytes_per_codec_frame);
+ assert(packed_bits != NULL);
+ tx_bits = (int *)malloc(sizeof(int) * bits_per_codec_frame);
+ assert(tx_bits != NULL);
+
+ nCodecFrames = numBits / bits_per_codec_frame;
+
+ for (n = 0; n < nCodecFrames; n++) {
+ fdmdv_get_test_bits(fdmdv, tx_bits);
+ fdmdv_get_test_bits(fdmdv, &tx_bits[bits_per_fdmdv_frame]);
+
+ /* pack bits, MSB received first */
+
+ bit = 7;
+ byte = 0;
+ memset(packed_bits, 0, bytes_per_codec_frame);
+ for (i = 0; i < bits_per_codec_frame; i++) {
+ packed_bits[byte] |= (tx_bits[i] << bit);
+ bit--;
+ if (bit < 0) {
+ bit = 7;
+ byte++;
+ }
}
- numBits = atoi(argv[2]);
-
- if (argc == 4) {
- Nc = atoi(argv[3]);
- if ((Nc < 2) || (Nc > FDMDV_NC_MAX) ) {
- fprintf(stderr, "Error number of carriers must be btween 2 and %d\n", FDMDV_NC_MAX);
- exit(1);
- }
- }
- else
- Nc = FDMDV_NC;
-
- fdmdv = fdmdv_create(Nc);
-
- bits_per_fdmdv_frame = fdmdv_bits_per_frame(fdmdv);
- bits_per_codec_frame = 2*fdmdv_bits_per_frame(fdmdv);
- bytes_per_codec_frame = (bits_per_codec_frame+7)/8;
- fprintf(stderr, "bits_per_fdmdv_frame: %d bits_per_codec_frame: %d bytes_per_codec_frame: %d\n",
- bits_per_fdmdv_frame, bits_per_codec_frame, bytes_per_codec_frame);
+ fwrite(packed_bits, sizeof(char), bytes_per_codec_frame, fout);
- packed_bits = (char*)malloc(bytes_per_codec_frame);
- assert(packed_bits != NULL);
- tx_bits = (int*)malloc(sizeof(int)*bits_per_codec_frame);
- assert(tx_bits != NULL);
+ /* if this is in a pipeline, we probably don't want the usual
+ buffering to occur */
- nCodecFrames = numBits/bits_per_codec_frame;
+ if (fout == stdout) fflush(stdout);
+ }
- for(n=0; n<nCodecFrames; n++) {
+ free(tx_bits);
+ free(packed_bits);
+ fclose(fout);
+ fdmdv_destroy(fdmdv);
- fdmdv_get_test_bits(fdmdv, tx_bits);
- fdmdv_get_test_bits(fdmdv, &tx_bits[bits_per_fdmdv_frame]);
-
- /* pack bits, MSB received first */
-
- bit = 7; byte = 0;
- memset(packed_bits, 0, bytes_per_codec_frame);
- for(i=0; i<bits_per_codec_frame; i++) {
- packed_bits[byte] |= (tx_bits[i] << bit);
- bit--;
- if (bit < 0) {
- bit = 7;
- byte++;
- }
- }
-
- fwrite(packed_bits, sizeof(char), bytes_per_codec_frame, fout);
-
- /* if this is in a pipeline, we probably don't want the usual
- buffering to occur */
-
- if (fout == stdout) fflush(stdout);
- }
-
- free(tx_bits);
- free(packed_bits);
- fclose(fout);
- fdmdv_destroy(fdmdv);
-
- return 0;
+ return 0;
}
-