Commit Graph

1148 Commits

Author SHA1 Message Date
arancormonk
391048a45a rtl_sdr_fm: vectorize rotate+widen path: add AVX2/NEON implementations for widen_rotate90_u8_to_s16_bias127 with scalar tail fallback. This applies the 90° rotation and bias-127 widening in vectors to reduce callback CPU without changing behavior. 2025-09-03 22:23:05 -04:00
arancormonk
1b9c3aa659 rtl_sdr_fm: add residual-CFO FLL and optional Gardner timing correction before discriminator (TED disabled by default and applied only to non-FM unless forced), with linear interpolation, nominal 1/sps advance, and env-tunable gains. 2025-09-03 22:18:20 -04:00
arancormonk
e9b12b8bc6 rtl_sdr_fm: add polyphase rational resampler (L/M) enabled by default at 48 kHz (override via DSD_FME_RESAMP), integrate post-demod and update output.rate while keeping legacy upsampler as fallback. Implement tap design with L-phase gain compensation. 2025-09-03 22:02:19 -04:00
arancormonk
9e9ae95219 rtl_sdr_fm: use fast atan2 discriminator for analog mode to reduce quantization noise 2025-09-03 21:33:04 -04:00
arancormonk
86d91512bb rtl_sdr_fm: add AVX2 widening, optional combined rotate+widen, and fixed‑point linear upsampler with env flags; preserve legacy behavior by default. Fix decoding by matching legacy upsample length (NM) with tail fill and reproducing unsigned rotate semantics. 2025-09-03 21:20:41 -04:00
arancormonk
0b00832b1f rtl_sdr_fm: enable env-gated intra-block multithreading with a tiny 2-thread pool and preallocated buffers. Parallelize HB I/Q decimation and linear upsampler; add debug log when enabled. 2025-09-03 20:52:06 -04:00
arancormonk
2655fccdea rtl_sdr_fm: ring signaling and atomic annotations 2025-09-03 20:30:32 -04:00
arancormonk
ac8f17bf20 rtl_sdr_fm: guard and document bandwidth_multiplier behavior 2025-09-03 20:23:52 -04:00
arancormonk
0cb38d2c25 rtl_sdr_fm: SIMD optimize USB byte→int16 widening in callback 2025-09-03 20:20:43 -04:00
arancormonk
6fc327c3b6 rtl_sdr_fm: avoid sqrt in RMS utility (use power-domain) 2025-09-03 20:15:27 -04:00
arancormonk
00e7c51a21 rtl_sdr_fm: add a light post-demod audio low-pass filter 2025-09-03 19:19:25 -04:00
arancormonk
e2402d0328 rtl_sdr_fm: correct deemphasis coefficient derivation and make it configurable 2025-09-03 19:08:22 -04:00
arancormonk
402cef34a9 rtl_sdr_fm: improve decimation filters (half-band FIR cascade) 2025-09-03 18:53:44 -04:00
arancormonk
29be104345 rtl_sdr_fm: replace sample duplication with simple resampling (linear interpolation) 2025-09-03 18:30:38 -04:00
arancormonk
f3ec024000 rtl_sdr_fm: replace DC block with leaky integrator high-pass (IIR) 2025-09-03 18:18:00 -04:00
arancormonk
412a4dc3b1 rtl_sdr_fm: add saturating arithmetic for decimation and volume scaling 2025-09-03 18:05:28 -04:00
arancormonk
2eedcc125b rtl_sdr_fm: fix deemphasis state race 2025-09-03 18:01:06 -04:00
arancormonk
9b399f31da rtl_sdr_fm: enable vectorization and alignment for DSP arrays 2025-09-03 16:25:15 -04:00
arancormonk
2ec3f9a263 rtl_sdr_fm: hoist divisions and use integer scalers in hot loops 2025-09-03 16:14:26 -04:00
arancormonk
0decc5934c rtl_sdr_fm: add batch operations and thread scheduling 2025-09-03 15:58:33 -04:00
arancormonk
7dd9cd7566 rtl_sdr_fm: add batched consumer API 2025-09-03 15:51:45 -04:00
arancormonk
30766b34bd rtl_sdr_fm: fix timespec normalization in timed wait 2025-09-03 15:21:50 -04:00
arancormonk
e700e418be rtl_sdr_fm: make RMS squelch incremental and decimated 2025-09-03 15:17:07 -04:00
arancormonk
c6d3e4cea0 rtl_sdr_fm: removed the obsolete rwlock and lock sites 2025-09-03 15:08:19 -04:00
arancormonk
62a9372d61 rtl_sdr: make async buffer params explicit and safe 2025-09-03 15:03:38 -04:00
arancormonk
cc200ea82c rtl_sdr: make RMS squelch sqrt-free 2025-09-03 14:48:33 -04:00
arancormonk
03c6b28de3 rtl_sdr_fm: initialize async buffer length and consider buffer count 2025-09-03 14:36:26 -04:00
arancormonk
3fe14f3b1d rtl_sdr_fm: double-buffer the I/Q handoff and remove memcpy/locks between callback and demod 2025-09-03 14:30:32 -04:00
arancormonk
3adcf5f449 rtl_sdr_fm: replace std::queue + locks with a single-producer single-consumer ring buffer 2025-09-03 13:21:47 -04:00
arancormonk
b81e1e6d22 rtl_sdr_fm: fix atan2/LUT discriminator — use precise π, quadrant-correct LUT saturation, clamp ±π at wrap, and mutex-protect LUT free. 2025-09-03 10:38:52 -04:00
lwvmobile
9acd8c981e Merge pull request #307 from arancormonk/fix/nxdn-cac-temp-buffer-overflow
Fix NXDN CAC decoder temp buffer overflow in nxdn_deperm_cac causing segfaults under -O2/-O3
2025-09-02 22:10:42 -04:00
arancormonk
bc95dc1a1d Fix NXDN CAC decoder temp buffer overflow in nxdn_deperm_cac causing segfaults under -O2/-O3. 2025-09-02 15:53:26 -04:00
arancormonk
1ecd32e017 Fix OOB writes in ez.cpp HB/HBS vectors causing P25p2 TDMA voice segfault 2025-09-02 15:07:51 -04:00
lwvmobile
6ef823347b Fix Bug with -F switch requiring an argument;
Bug was introduced in commitc 888dfc1d6569c42aa45ca86aad00ed630410ddd ;
2025-08-30 04:31:21 -04:00
lwvmobile
bd75c1ab83 MBE: Prepare for changes to P25p1 ESS in SDRTrunk .mbe files (version, ks application); #298
MBE: Make tweaks to audio and wav file handling, allow writing to static wav files even if audio out device is NULL (writeSynthesizedVoiceMS);

DSTAR: Fix Issue with DSTAR where double writes would occur in single static .wav files;
2025-08-23 20:31:32 -04:00
lwvmobile
a5151686ec Add Generic Static AMBE Keystream Support; #303
Adding a new method to allow a user to enter a generic keystream len and static keystream via a string that is loaded into a bit array to xor against ambe frames;

This method is intended to be used to allow
2025-08-22 14:02:09 -04:00
lwvmobile
24c1dd97df DMR: Add 16-bit Anytone BP Support; #303
Reset static_ks_counter as various places in code;

Remove the static_ks_counter reset from KWD SCR link control and tweak SO bits;

Fix Forced KS application to work in both slots;

Allow Static Wav File or Per Call Wav File in SDRTrunk MBE format playback; #298

Same as above for .amb, .dmb, and .imb format playback;

Update Usage and Docs;
2025-08-20 23:12:57 -04:00
lwvmobile
6f171620dc DMR: Reorganize TYT and KEN encrytion modes, putting them into the proper files; #302 #303 2025-08-19 19:18:01 -04:00
lwvmobile
7428a87d80 WAV: Fix Issues with Per Call;
Fix Per Call Issue introduced with commit re-enabling single static wav file where single channel audio decode types would not write to per call temp wav files and be deleted after event history cycled them;

Fix Issue with YSF where double writes would occur in .wav files;

Fix Issue with M17 where incorrect rate audio would write to static .wav file by converting to stereo output;

Seperate Per Call and Create Method to Allow EDACS Analog Calls to be written to static wav file by downsampling and stereo interleaving audio to proper spec;

Issues were introduced in commit # c7b25c60af
2025-08-19 02:35:17 -04:00
lwvmobile
79084f26c6 DMR: Fix Kenwood Scrambler SVC OPT muting call when key is forced; #303 2025-08-17 21:17:14 -04:00
lwvmobile
d5cd4b4273 DMR: Fix Kenwood Scrambler Flag in FLC #303; 2025-08-17 21:11:34 -04:00
lwvmobile
bafd74b225 DMR: Fix Wformat Warning; #303 2025-08-17 20:06:34 -04:00
lwvmobile
8df8ce85f2 DMR: Add 15-bit scrambler method for Kenwood Radios; #303 2025-08-17 18:57:32 -04:00
lwvmobile
a5b9984d78 TYT EP: Fix User Key to Input Register; #302
Bytes used as input register for TYT EP are loaded by byte reverse order, was undetected on some key patterns like all F's or all A's, but found out on 1234... patterns;
2025-08-17 15:24:22 -04:00
lwvmobile
4dd68f2221 Update Help / Usage; 2025-08-16 10:25:43 -04:00
lwvmobile
21c02acd8c WAV: Re-enable -w option for single file .wav for all decoded speech; 2025-08-16 10:22:31 -04:00
lwvmobile
c7b25c60af DMR TYT BP (16-bit) Encryption Mode; #302
Above Commit is by Anonymous Submission;
2025-08-16 10:18:10 -04:00
lwvmobile
41865f3af7 DMR TYT EP (AES128) Encryption Mode; #302
Above Commit is by Anonymous Submission;
2025-08-15 20:29:34 -04:00
lwvmobile
8f092e293f DMR TYT BP16 Encryption Mode WIP; #302
Code is not working as-is, committed for anonymous submitter to have access to certain items in code;
2025-08-15 12:21:27 -04:00
lwvmobile
c888dfc1d6 DMR TYT AP (PC4) Encryption Mode Support; #302
Above Commit is by Anonymous Submission;
2025-08-15 11:14:46 -04:00