EliasOenal / multimon-ng

GNU General Public License v2.0
946 stars 210 forks source link

Fixed subsampling in AFSK12, CLIPFSK, EAS, FMSFSK, UFSK12 decoders #215

Closed luarvique closed 5 months ago

luarvique commented 5 months ago

These changes fix the subsampling algorithm in the remaining decoders which had the previous, broken algorithm. Please note that I have no way to test these decoders. If you have any sample input, you probably want to test the new code on that input.

ramonsmits commented 5 months ago

Can you explain what was broken? Do any bugs on the repo can be correlated?

How could I test this on the same feed? As then I could compare the output. I can test them on a few test wav files I have but I guess it would be more useful to run these side-by-side for multiple hours/days.

luarvique commented 5 months ago

Can you explain what was broken? Do any bugs on the repo can be correlated?

The original subsampling algorithm was losing some data at the end, every time it was called. This is less of a problem when the algorithm is fed large portions of data, when reading from a file for example. When fed small portions data via a pipe though, things break. Namely, POCSAG512 and POCSAG1200 spew gibberish when fed via a pipe (see pull request #214).

This issue has been reported multiple times, it seems: #213 #197 #91 #70

luarvique commented 5 months ago

Ping? =)

EliasOenal commented 5 months ago

Thanks, looks good. Could you also have a look at demod_poc24.c and demod_dtmf.c? I assume they're affected as well.

luarvique commented 5 months ago

POCSAG2400 (demod_poc24.c) does not sub-sample. Neither does DTMF (demod_dtmf.c), as far as I can see in the code.

EliasOenal commented 5 months ago

Thanks for checking, I'll go ahead and merge it.

luarvique commented 5 months ago

Is there any way to trigger multimon-ng package updates in various Linux repositories? The reason is that most of OpenWebRX+ users install multimon-ng with apt, so they do not get the bug-fixed version, so I have to keep the workaround hack in OpenWebRX+ until those repositories are updated with the new version.