From de42745ec95cd676f6e41d6d3f04784e2e6fbbfa Mon Sep 17 00:00:00 2001 From: Zilog80 Date: Sun, 19 Feb 2023 18:27:08 +0100 Subject: [PATCH] noted in rs41d-fork: compare full raw header if symhd=2 --- demod/mod/demod_mod.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/demod/mod/demod_mod.c b/demod/mod/demod_mod.c index 38d8f5c..c92859c 100644 --- a/demod/mod/demod_mod.c +++ b/demod/mod/demod_mod.c @@ -918,18 +918,20 @@ static int headcmp(dsp_t *dsp, int opt_dc) { //if (opt_dc == 0 || dsp->opt_iq > 1) dsp->dc = 0; - if (dsp->symhd != 1) step = 2; + if (dsp->symhd != 1) step = 2; // step == symhd if (inv) sign=1; for (pos = 0; pos < len; pos++) { // L = dsp->hdrlen * dsp->sps + 0.5; //read_bufbit(dsp, dsp->symhd, dsp->rawbits+pos*step, mvp+1-(int)(len*dsp->sps), pos); read_bufbit(dsp, dsp->symhd, dsp->rawbits+pos*step, dsp->mv_pos+1-dsp->L, pos); } + + pos = len*step; // == hdrlen dsp->rawbits[pos] = '\0'; - while (len > 0) { - if ((dsp->rawbits[len-1]^sign) != dsp->hdr[len-1]) errs += 1; - len--; + while (pos > 0) { + if ((dsp->rawbits[pos-1]^sign) != dsp->hdr[pos-1]) errs += 1; + pos--; } return errs;