Commit Graph

  • 748bb5b191 Rewrite NXDN Dibit PN95 Code and allow custom seed value; #318 lwvmobile 2025-10-07 06:13:19 -04:00
  • f3b89f1c51 DMR: Initial Support for Vertex Standard Encrypted PDU Header; #316 lwvmobile 2025-09-21 14:09:52 -04:00
  • b2d388a210 DMR: Initial Support for Vertex Standard Text PDU on Port 5007; #316 lwvmobile 2025-09-21 00:29:04 -04:00
  • c883e2bf0b DMR: Tytera AP (PC4) Encryption Support Update to Allow 128-bit or 256-bit keys; lwvmobile 2025-09-20 23:49:33 -04:00
  • f8ca0a8e08 DMR: Retevis AP (RC2) Encryption Support Update to Allow 128-bit or 256-bit keys; lwvmobile 2025-09-19 22:44:50 -04:00
  • 99b1fd2fe2 DMR: Tweaks to PDU Decryption; lwvmobile 2025-09-18 12:13:54 -04:00
  • b0a46a541d P25: Clear Stale Keys when using the Keyloader and a CC Return is initiated via LCW or Logic on END_PTT; lwvmobile 2025-09-11 23:19:16 -04:00
  • 3aabd85604 DMR: Retevis / Anytone AP (RC2) Encryption Support; lwvmobile 2025-09-11 22:49:22 -04:00
  • 1bf60caa6f Merge pull request #313 from arancormonk/perf/rtl-sdr-fm-resampler-simd-rotate90 rtl_overhaul lwvmobile 2025-09-08 01:27:29 -04:00
  • dc055c6585 rtl_sdr_fm: fix implementation of FLL, actually feedback error...other minor bug fixes and optimizations arancormonk 2025-09-07 21:17:49 -05:00
  • eb02148491 rtl_sdr_fm: optimize resampler/DSP (aligned buffers, restrict/assumed alignment, optional SSE2/NEON); fix rotate_90 tail; add errno to RT logs; correct downsample_passes calc. arancormonk 2025-09-07 20:00:27 -05:00
  • 6cdcac5db2 Merge pull request #312 from arancormonk/rtl_overhaul_cygwin_fix_1 lwvmobile 2025-09-07 10:24:15 -04:00
  • a2a70bbb15 Fix Cygwin build arancormonk 2025-09-07 09:13:03 -05:00
  • e2a6e351c5 Merge pull request #311 from arancormonk/rtl_overhaul_arm_fix_2 lwvmobile 2025-09-05 20:57:19 -04:00
  • 4dfe095a7c Silence unused variable warning on ARM 32bit compilation arancormonk 2025-09-05 19:50:11 -05:00
  • fede9b4e20 Merge pull request #310 from arancormonk/rtl_overhaul_arm_fix_1 lwvmobile 2025-09-05 20:01:47 -04:00
  • 493800a0f3 Fix NEON widening code to avoid using vsubl_u8 (which returns uint16x8_t) and instead zero-extend with vmovl_u8, reinterpret to int16x8_t, then subtract 127 with vsubq_s16. This should fix the type mismatch and produce correct signed results. Moved use_avx2, use_sse2, and use_ssse3 declarations inside the #if defined(__x86_64__) || defined(__i386__) block. arancormonk 2025-09-05 18:21:57 -05:00
  • c0b6f186bd Merge pull request #308 from arancormonk/perf/rtlsdr-demod-optimizations lwvmobile 2025-09-05 15:51:54 -04:00
  • 8b423a2f42 rtl_sdr_fm: fix potential race condition, zero int all demod init funcs, add timeouts to prevent indefinite blocking, remove producer-side tail advancement, harden udp socket read loop arancormonk 2025-09-04 18:11:25 -05:00
  • 8ec385fdf2 ensure all old references of rms have been updated to pwr, we avoid sqrt calculations and squelch comparisons are using the same units with updated default level arancormonk 2025-09-04 13:08:22 -05:00
  • da8b9b6116 rtl_sdr_fm: add additional bounds checks and cleanup extra line arancormonk 2025-09-04 11:53:54 -05:00
  • a866d98e75 rtl_sdr_fm: comment cleanup arancormonk 2025-09-04 11:38:41 -05:00
  • e094f95b03 rtl_sdr_fm: FLL rotator - improve sine/cos approximation arancormonk 2025-09-04 09:20:39 -05:00
  • f052271a16 rtl_sdr_fm: fix mean_power - integer-only implementation arancormonk 2025-09-04 09:13:05 -05:00
  • 09bf040810 rtl_sdr_fm: fix low_pass_simple - normalize to avoid amplitude growth/clipping arancormonk 2025-09-04 09:06:11 -05:00
  • 48b032e47a rtl_sdr_fm: fix Gardner timing interpolation cost and gating arancormonk 2025-09-04 09:01:17 -05:00
  • 046846337a rtl_sdr_fm: fix half-band decimator - exploit symmetry/zeros and consider SIMD arancormonk 2025-09-04 08:57:50 -05:00
  • 836da1f556 rtl_sdr_fm: fix USB callback - avoid extra copy when enqueuing into input ring. arancormonk 2025-09-04 08:48:17 -05:00
  • dd8620bc39 rtl_sdr_fm: remove per-sample memmove from resampler, use ring buffer. arancormonk 2025-09-04 08:34:09 -05:00
  • 283d000b59 rtl_sdr_fm: fix critical correctness bug: +1 DC bias in rotate+widen paths arancormonk 2025-09-04 08:27:59 -05:00
  • 5834127ff7 rtl_sdr_fm: fix rotate+widen tail handling (scalar/AVX2/NEON) to preserve 90° rotation and add SSSE3 rotate+widen with runtime dispatch on x86. Also include tmmintrin and clarify SSE2 fallback comment. arancormonk 2025-09-03 22:33:32 -05:00
  • 2ce089ccf8 rtl_sdr_fm: make SIMD runtime dispatch thread-safe with pthread_once and ensure AVX2/SSE2 paths compile by relying on function-level target attributes (remove AVX2/SSE2 guards). Gate NEON rotate to AArch64 (ARMv7 falls back to scalar) while retaining NEON widen for portability and performance. arancormonk 2025-09-03 22:21:37 -05:00
  • 4e64ef1c11 rtl_sdr_fm: add runtime SIMD dispatch for widen/rotate paths, selecting AVX2/SSE2/NEON via CPUID/XGETBV (x86) or getauxval (ARM) with scalar fallbacks. Replace compile-time guards with lazy-initialized function-pointer wrappers so binaries run optimally across CPUs without changing call sites. arancormonk 2025-09-03 22:06:55 -05:00
  • c764cf0eda rtl_sdr_fm: replace USB→demod double-buffer/condvar handoff with a lock-free SPSC ring; enqueue widened blocks and drop oldest on overflow to keep the callback non-blocking. Demod now reads ring blocks; ring is initialized/cleaned up, reducing wakeups and latency. arancormonk 2025-09-03 21:45:18 -05:00
  • 8b4fa81711 rtl_sdr_fm: consume HB cascade output in-place to avoid the final memcpy. Track the current buffer and assign lowpassed to the last stage’s output, preserving correctness while reducing memory traffic. arancormonk 2025-09-03 21:38:50 -05:00
  • 106aae1814 rtl_sdr_fm: fuse interleaved complex half-band decimation to avoid deinterleave/reinterleave in full_demod, reducing memory traffic and copies. Maintain per‑stage histories and equivalent output while improving throughput. arancormonk 2025-09-03 21:35:34 -05:00
  • 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. arancormonk 2025-09-03 21:23:05 -05:00
  • 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. arancormonk 2025-09-03 21:18:20 -05:00
  • 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. arancormonk 2025-09-03 21:02:19 -05:00
  • 9e9ae95219 rtl_sdr_fm: use fast atan2 discriminator for analog mode to reduce quantization noise arancormonk 2025-09-03 20:33:04 -05:00
  • 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. arancormonk 2025-09-03 20:20:41 -05:00
  • 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. arancormonk 2025-09-03 19:52:06 -05:00
  • 2655fccdea rtl_sdr_fm: ring signaling and atomic annotations arancormonk 2025-09-03 19:30:32 -05:00
  • ac8f17bf20 rtl_sdr_fm: guard and document bandwidth_multiplier behavior arancormonk 2025-09-03 19:23:52 -05:00
  • 0cb38d2c25 rtl_sdr_fm: SIMD optimize USB byte→int16 widening in callback arancormonk 2025-09-03 19:20:43 -05:00
  • 6fc327c3b6 rtl_sdr_fm: avoid sqrt in RMS utility (use power-domain) arancormonk 2025-09-03 19:15:27 -05:00
  • 00e7c51a21 rtl_sdr_fm: add a light post-demod audio low-pass filter arancormonk 2025-09-03 18:19:25 -05:00
  • e2402d0328 rtl_sdr_fm: correct deemphasis coefficient derivation and make it configurable arancormonk 2025-09-03 18:08:22 -05:00
  • 402cef34a9 rtl_sdr_fm: improve decimation filters (half-band FIR cascade) arancormonk 2025-09-03 17:53:44 -05:00
  • 29be104345 rtl_sdr_fm: replace sample duplication with simple resampling (linear interpolation) arancormonk 2025-09-03 17:30:38 -05:00
  • f3ec024000 rtl_sdr_fm: replace DC block with leaky integrator high-pass (IIR) arancormonk 2025-09-03 17:18:00 -05:00
  • 412a4dc3b1 rtl_sdr_fm: add saturating arithmetic for decimation and volume scaling arancormonk 2025-09-03 17:05:28 -05:00
  • 2eedcc125b rtl_sdr_fm: fix deemphasis state race arancormonk 2025-09-03 17:01:06 -05:00
  • 9b399f31da rtl_sdr_fm: enable vectorization and alignment for DSP arrays arancormonk 2025-09-03 15:25:15 -05:00
  • 2ec3f9a263 rtl_sdr_fm: hoist divisions and use integer scalers in hot loops arancormonk 2025-09-03 15:14:26 -05:00
  • 0decc5934c rtl_sdr_fm: add batch operations and thread scheduling arancormonk 2025-09-03 14:58:33 -05:00
  • 7dd9cd7566 rtl_sdr_fm: add batched consumer API arancormonk 2025-09-03 14:51:45 -05:00
  • 30766b34bd rtl_sdr_fm: fix timespec normalization in timed wait arancormonk 2025-09-03 14:21:50 -05:00
  • e700e418be rtl_sdr_fm: make RMS squelch incremental and decimated arancormonk 2025-09-03 14:17:07 -05:00
  • c6d3e4cea0 rtl_sdr_fm: removed the obsolete rwlock and lock sites arancormonk 2025-09-03 14:08:19 -05:00
  • 62a9372d61 rtl_sdr: make async buffer params explicit and safe arancormonk 2025-09-03 14:03:38 -05:00
  • cc200ea82c rtl_sdr: make RMS squelch sqrt-free arancormonk 2025-09-03 13:48:33 -05:00
  • 03c6b28de3 rtl_sdr_fm: initialize async buffer length and consider buffer count arancormonk 2025-09-03 13:36:26 -05:00
  • 3fe14f3b1d rtl_sdr_fm: double-buffer the I/Q handoff and remove memcpy/locks between callback and demod arancormonk 2025-09-03 13:30:32 -05:00
  • 3adcf5f449 rtl_sdr_fm: replace std::queue + locks with a single-producer single-consumer ring buffer arancormonk 2025-09-03 12:21:47 -05:00
  • b81e1e6d22 rtl_sdr_fm: fix atan2/LUT discriminator — use precise π, quadrant-correct LUT saturation, clamp ±π at wrap, and mutex-protect LUT free. arancormonk 2025-09-03 09:38:52 -05:00
  • 9acd8c981e Merge pull request #307 from arancormonk/fix/nxdn-cac-temp-buffer-overflow lwvmobile 2025-09-02 22:10:42 -04:00
  • 9353c489aa Merge pull request #306 from arancormonk/fix/p25p2-tdma-voice-vector-oob lwvmobile 2025-09-02 21:22:54 -04:00
  • bc95dc1a1d Fix NXDN CAC decoder temp buffer overflow in nxdn_deperm_cac causing segfaults under -O2/-O3. arancormonk 2025-09-02 14:53:26 -05:00
  • 1ecd32e017 Fix OOB writes in ez.cpp HB/HBS vectors causing P25p2 TDMA voice segfault arancormonk 2025-09-02 14:07:51 -05:00
  • 6ef823347b Fix Bug with -F switch requiring an argument; lwvmobile 2025-08-30 04:31:21 -04:00
  • bd75c1ab83 MBE: Prepare for changes to P25p1 ESS in SDRTrunk .mbe files (version, ks application); #298 lwvmobile 2025-08-23 20:31:32 -04:00
  • b3b943d330 Update Docs; lwvmobile 2025-08-22 14:27:13 -04:00
  • a5151686ec Add Generic Static AMBE Keystream Support; #303 lwvmobile 2025-08-22 14:02:09 -04:00
  • 24c1dd97df DMR: Add 16-bit Anytone BP Support; #303 lwvmobile 2025-08-20 23:12:57 -04:00
  • 6f171620dc DMR: Reorganize TYT and KEN encrytion modes, putting them into the proper files; #302 #303 lwvmobile 2025-08-19 19:18:01 -04:00
  • 7428a87d80 WAV: Fix Issues with Per Call; lwvmobile 2025-08-19 02:35:17 -04:00
  • 79084f26c6 DMR: Fix Kenwood Scrambler SVC OPT muting call when key is forced; #303 lwvmobile 2025-08-17 21:17:14 -04:00
  • d5cd4b4273 DMR: Fix Kenwood Scrambler Flag in FLC #303; lwvmobile 2025-08-17 21:11:34 -04:00
  • bafd74b225 DMR: Fix Wformat Warning; #303 lwvmobile 2025-08-17 20:06:34 -04:00
  • 8df8ce85f2 DMR: Add 15-bit scrambler method for Kenwood Radios; #303 lwvmobile 2025-08-17 18:57:32 -04:00
  • a5b9984d78 TYT EP: Fix User Key to Input Register; #302 lwvmobile 2025-08-17 15:24:22 -04:00
  • 4dd68f2221 Update Help / Usage; lwvmobile 2025-08-16 10:25:43 -04:00
  • 21c02acd8c WAV: Re-enable -w option for single file .wav for all decoded speech; lwvmobile 2025-08-16 10:22:31 -04:00
  • c7b25c60af DMR TYT BP (16-bit) Encryption Mode; #302 lwvmobile 2025-08-16 10:18:10 -04:00
  • 41865f3af7 DMR TYT EP (AES128) Encryption Mode; #302 lwvmobile 2025-08-15 20:29:34 -04:00
  • 8f092e293f DMR TYT BP16 Encryption Mode WIP; #302 lwvmobile 2025-08-15 12:21:27 -04:00
  • c888dfc1d6 DMR TYT AP (PC4) Encryption Mode Support; #302 lwvmobile 2025-08-15 11:14:46 -04:00
  • 6ebe3eff58 NXDN: Fix Wformat Warnings 32; #299 lwvmobile 2025-07-27 14:17:03 -04:00
  • 2ca3f0a356 NXDN: Fix Wformat Warnings; #299 lwvmobile 2025-07-23 19:16:27 -04:00
  • 698a991262 NXDN: Misc #299 lwvmobile 2025-07-14 22:42:35 -04:00
  • 352bb98bc6 DMR: Fix UTF16 Talker Alias locale to allow Chinese or similar Non-Roman Charsets; lwvmobile 2025-07-14 06:15:55 -04:00
  • 8c34313720 NXDN: #299 lwvmobile 2025-07-13 11:32:15 -04:00
  • ce805a7860 NXDN: Add DCR TCH / PICH Lich 0x48 Payload Only; #299 lwvmobile 2025-07-13 10:25:40 -04:00
  • 86b8900b3d NXDN: Fix and Decode Some DCR Elements; #299 lwvmobile 2025-07-08 00:59:41 -04:00
  • eb1bcee301 NXDN: Disable Attempted Decoding of SACCH frames on Icom DCR; #299 lwvmobile 2025-07-04 17:24:01 -04:00
  • fd3b4b6a66 NXDN: DCR Payload Tweaks 2; #299 lwvmobile 2025-07-02 15:33:06 -04:00
  • b09de5f112 NXDN: DCR Payload Tweaks; #299 lwvmobile 2025-07-01 17:00:02 -04:00
  • 8d1c92c490 NXDN: Add Lich Code 0x46 for Icom DCR Voice and SACCH Payload; #299 lwvmobile 2025-06-30 20:25:47 -04:00
  • bd98e3befb Re-enable the custom wav file directory option -7 for per-call wav files; lwvmobile 2025-06-29 15:56:52 -04:00