aboutsummaryrefslogtreecommitdiff
path: root/src/freedv_fsk.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/freedv_fsk.c')
-rw-r--r--src/freedv_fsk.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/freedv_fsk.c b/src/freedv_fsk.c
index 2660ea1..4d0da5d 100644
--- a/src/freedv_fsk.c
+++ b/src/freedv_fsk.c
@@ -123,7 +123,12 @@ void freedv_800xa_open(struct freedv *f) {
f->bits_per_codec_frame = codec2_bits_per_frame(f->codec2);
f->bits_per_modem_frame = f->n_codec_frames * f->bits_per_codec_frame;
- int n_packed_bytes = ceil((f->bits_per_modem_frame + 7.0) / 8.0) + 1; /* ~3.5 bits per frame, which needs to be rounded up to 4. */
+
+ /*
+ * ~3.5 bits per frame, which needs to be rounded up to 4 because computers
+ * can't handle half bytes.
+ */
+ int n_packed_bytes = ceil((f->bits_per_modem_frame + 7.0) / 8.0) + 1;
if (n_packed_bytes < 8) n_packed_bytes = 8;
f->tx_payload_bits = MALLOC(n_packed_bytes);
assert(f->tx_payload_bits != NULL);