summaryrefslogtreecommitdiff
path: root/src/core/ao_fec.h
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-06-25 06:51:36 -0700
committerKeith Packard <keithp@keithp.com>2012-06-25 06:51:36 -0700
commit09761fe0f6ed40ff74317fbb47d6a74068fb4ce4 (patch)
tree294de35ab62833f4f24bef66ca99c9736c017570 /src/core/ao_fec.h
parent628076aa90e7bc9a894646e417dd8e1fe149b60d (diff)
altos: Incremental viterbi decode
Decode radio input one interleave block at a time. This overlaps the decode computation with the packet reception, leading to lower latency in an attempt to keep up with the transmitter. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/core/ao_fec.h')
-rw-r--r--src/core/ao_fec.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/core/ao_fec.h b/src/core/ao_fec.h
index e3c55d6e..4fd398eb 100644
--- a/src/core/ao_fec.h
+++ b/src/core/ao_fec.h
@@ -66,8 +66,10 @@ ao_fec_encode(uint8_t *in, uint8_t len, uint8_t *out);
* 'out' must be len/8 bytes long
*/
+#define AO_FEC_DECODE_BLOCK (8 * 32) /* callback must return multiples of this many bits */
+
uint8_t
-ao_fec_decode(uint8_t *in, uint16_t in_len, uint8_t *out, uint8_t out_len);
+ao_fec_decode(uint8_t *in, uint16_t in_len, uint8_t *out, uint8_t out_len, uint16_t (*callback)());
/*
* Interleave data packed in bytes. 'out' must be 'len' bytes long.