diff options
author | Sylvain Munaut <tnt@246tNt.com> | 2021-12-21 19:45:34 +0100 |
---|---|---|
committer | laforge <laforge@osmocom.org> | 2022-01-05 20:24:49 +0000 |
commit | d5974e9155e8991bd8ab15342096109b197db24f (patch) | |
tree | 28949539404d919e271c55a58fcca1a66f7421b5 /include/osmocom/core | |
parent | 2f4186a3d2621b28a638c04ce94afb1189bbc522 (diff) |
conv: Fix the traceback for tail biting codes
When picking the end state, looking only at the path metric
is highly suboptimal because in a tail biting code, we _know_ that
whatever treillis path is correct, it must start and end at the same
state. So we only consider path meeting that condition. We know any
path that doesn't isn't the right one. We only fallback to only
path metric if no path met that condition.
Fixes OS#4508
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I87e51d3880c0fe7bf3d6cd08fd46517a424a230c
Diffstat (limited to 'include/osmocom/core')
-rw-r--r-- | include/osmocom/core/conv.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/osmocom/core/conv.h b/include/osmocom/core/conv.h index 1c14c3b0..84ef0f85 100644 --- a/include/osmocom/core/conv.h +++ b/include/osmocom/core/conv.h @@ -124,6 +124,7 @@ int osmo_conv_decode_scan(struct osmo_conv_decoder *decoder, const sbit_t *input, int n); int osmo_conv_decode_flush(struct osmo_conv_decoder *decoder, const sbit_t *input); +int osmo_conv_decode_get_best_end_state(struct osmo_conv_decoder *decoder); int osmo_conv_decode_get_output(struct osmo_conv_decoder *decoder, ubit_t *output, int has_flush, int end_state); |