Commit Graph

13 Commits (2184d92dc3be16bd4cdf409d3dcac70df8956d5c)

Author SHA1 Message Date
Mooneer Salem 2184d92dc3
Fix TLS connection failures in AppImage. (#1427)
* Fix TLS connection failures in AppImage.

* Add PR #1427 to changelog.
2026-07-06 14:23:53 -07:00
Mooneer Salem 2722510606
Remove freedv-backend and freedv-integrations code from freedv-gui (#1368)
* Remove FreeDV integrations and all common files in favor of freedv-backend versions.

* Fix CI due to use of freedv-backend.

* Add README pointing to new location of integrations.

* Add missed file.

* Fix linker errors.

* Clean up AppImage generation script.

* Make sure we have loss.py available when running loss test.

* Fix macOS lint failure during CI run.

* Fix include file paths in Windows build.

* Need to include fdv_util for OmniRig.

* Try hardcoding RADE search path for Windows installer.

* Make sure prerequisite files exist for reporting tests.

* Add PR #1368 to changelog.

* Update to use samplerate.

* Revert "Update to use samplerate."

This reverts commit 16ceb638f3.
2026-05-31 23:15:31 -07:00
Mooneer Salem 11b1e189b0
AppImage: Remove custom AppRun scripts. (#1364)
* AppImage: Remove custom AppRun scripts.

* Remove AppRun scripts as well.

* Add PR #1364 to changelog.
2026-05-26 11:33:52 -07:00
Mooneer Salem b200766857
Use C port of RADEV1. (#1251)
* WIP integration of radae_nopy.

* Use tmiw fork of radae_nopy.

* Add additional unit test debugging.

* Update to reflect making RADE a shared library again.

* Fix Windows installer generation.

* TBD: Disable Windows reporting test as Python isn't available for mock rig.

* Remove rade_integ.

* Remove Python from binary builds.

* Forgot to remove rade_integ from lint.

* Additional CI build fixes.

* More build fixes.

* Fix Flex/KA9Q compiler errors.

* Attempt to fix macOS tests.

* Force Homebrew macOS.

* Try venv for macOS.

* Fix remaining macOS test failures.

* Python is actually on the GitHub runner, let's see if RADE Reporting test will work.

* Update documentation and add PR #1251 to changelog.
2026-03-17 16:07:16 -07:00
Mooneer Salem abc62e6b4b
Force numpy to 2.3.x due to illegal instruction errors. (#1230)
* Force numpy to 2.3.x due to illegal instruction errors.

* Need to force explicit numpy version.

* Add PR #1230 to changelog.
2026-02-15 13:53:45 -08:00
Mooneer Salem 89a406b717
Enable Linux AppImage builds for Profile Guided Optimization (PGO). (#1173)
* Enable Linux AppImage builds for Profile Guided Optimization (PGO).

* Fix typo.

* Fix another typo.

* oops, need to install pulseaudio.

* Need to set PYTHONPATH.

* Make sure dbus is installed.

* Don't strip symbols (debugging).

* Some fixes that should hopefully reverse performance regression.

* Enable temporal-profile.

* Use lld for linking instead.

* Add PR #1173 to changelog.

* Enable PGO for macOS DMG builds.

* Don't use LLVM Clang.

* Revert macOS PGO changes.

* Use -O3 for AppImages.

* Have CMake add PGO flags.

* Enable PGO again on macOS.

* Fix typos.

* Force Apple ld.

* Make absolutely sure we're using Apple ar and ranlib.

* Use Release for DMG build.

* Enable verbose build output for debugging.

* Force /usr to be first in PATH.

* Force LLD linker.

* Oops, need CMAKE_LINKER_TYPE instead.

* Use same Clang as in lint.

* Override ar path.

* AppleClang on macOS 26 supports PGO.

* Need to install Homebrew LLVM for profdata.

* Try deferring LLVM 19 install until time to run profgen.

* LLVM without LTO.

* Adapt use of libtool from LLVM.

* Try forcing libtool usage in Codec2 too.

* Disable verbose build.

* Explicitly pass CMAKE_AR and CMAKE_RANLIB into dependent projects.

* Fix typo.

* Use LLVM 20 instead of 21.

* Ensure all macOS dependencies use -O3 and 11.0 min.

* Cache Python generation during macOS build.

* Fix typos.

* Revert previous changes.

* Make sure FreeDV Reporter window is visible during PGO data collection.

* Fix waterfall rendering issue with multiple plots displayed at once.

* Disable PGO on macOS except for official releases.

* Revert logging previously committed.

* Linux: test -O3 only, no PGO.

* UdpHandler: fix crash when unable to resolve DNS.

* Revert "Linux: test -O3 only, no PGO."

This reverts commit 26da306b48.

* Revert "Disable PGO on macOS except for official releases."

This reverts commit a7cc6852db.

* Allow DMG generation to run during lint.

* Ensure debug symbols are enabled even for Release builds.

* Linux: allow AppImages to build during lint.

* Add documentation for building with PGO.

* macOS: Try performing non-universal instrumented build to improve CI performance.

* Enable LTO for macOS DMG build.

* Revert "Enable LTO for macOS DMG build."

This reverts commit 6e54a1c39d.

* Another attempt at enabling LTO for macOS.

* Revert "Another attempt at enabling LTO for macOS."

This reverts commit 60080db6b2.

* Upgrade MinGW LLVM to 20251216.

* Experiment: collect profiling data for legacy modes as well.

* Disable PGO on macOS due to long build times.

* No difference in CPU usage when profiling legacy modes, so just profile RADE.

* Forgot to change utmode back to RADEV1.
2026-01-28 13:00:49 -08:00
Mooneer Salem b023b97d11
Upgrade built-in Python to 3.14.0. (#1109)
* Upgrade built-in Python to 3.14.0.

* Need to update GH environment for Windows Python 3.14.

* Forgot to adjust path for pip.

* Additional forgotten change.

* TEST ONLY: Use non-main for RADE.

* Use Python 3.14 for AppImages.

* Need to exclude 3.14 DLL during installer step.

* Update ASAN suppressions for 3.14.

* Revert "TEST ONLY: Use non-main for RADE."

This reverts commit 14b711b5a9.

* Use rade_src instead of rade_integ_src.

* Update AppRun scripts.

* Upgrade custom PyTorch macOS wheel to 2.9.1 and Python 3.14.

* PYTHONOPTIMIZE doesn't seem to work on macOS now.

* Apparently PYTHONOPTIMIZE was in there twice.

* Reenable PYTHONOPTIMIZE, disable built-in mimalloc.

* Disable mimalloc in GH Actions as well.

* Try reenabling mimalloc just for Linux.

* Add PR #1109 to changelog.

* Remove mimalloc altogether.

* Forgot to clean up mimalloc code in source files.

* Lock PyTorch release inside GH Actions.
2025-11-30 19:02:40 -08:00
Mooneer Salem f4a918f8b9
Use rade_src instead of rade_integ_src. (#1111) 2025-11-29 13:47:13 -08:00
Mooneer Salem 539bd55969
Set thread names for additional threads in system. (#1103)
* Set thread names for additional threads in system.

* Fix linting errors.

* Add additional thread names for Mac and Windows.

* Use const reference for SetThreadName.

* Fix more linting errors.

* Fix PortAudio compiler error.

* Add missed thread names.

* VOX tone atomic doesn't need seq_cst.

* Only wake up non-RT playback thread if FIFO is less than half full.

* Only wake up the TX/RX threads after all audio received.

* Optimized RADE is only for radio integrations.

* Add missed changes.

* Need to build integ in order for lint to work.

* remove invalid target.

* Fix additional Linux compiler failures from previous changes.

* Additional compiler fixes.

* Exclude duplicate tests.

* Fix macOS CI failure.
2025-11-24 14:55:13 -08:00
Mooneer Salem fb2c311194
Flex waveform improvements (#1088)
* Flex: Improve handling of slice switching.

* Add missed semicolons.

* Add validation for stream IDs coming over VITA port.

* Fix AppRun generation bug introduced by previous PR.

* Enable PSK Reporter support.

* Fix issue where ThreadedTimer pegs the CPU on RPi/aarch64.

* Fix ThreadedTimer test failures.

* Send reports to PSK Reporter every five minutes.
2025-11-13 08:05:04 -08:00
Mooneer Salem 394dc76e4f
Add KA9Q radio integration to FreeDV source tree. (#1066)
* Reorganize FlexRadio integration so we can share code with KA9Q console app.

* Fix rtkit file path.

* Use same variable for both static and non-static Speex DSP library.

* Update Linux CI to reflect new paths.

* Refactor more common code for use by other integrations.

* Create skeleton KA9Q appplication, need to read/write from/to stdin/stdout to get basics up.

* Need to link against fdv_os_wrapper in common.

* Actually fix Linux linker failure in Flex waveform.

* Allow software name to be passed into ReportingController.

* Read audio from stdin and write to stdout.

* Fix crash on shutdown due to threads not being freed.

* Add pauses to make sure audio is handled live (i.e. not faster than RT).

* Add command line options to freedv-ka9q tool.

* Flesh out ka9q README.

* Clean up AppImage generation and enable CI for KA9Q integration.

* Add missed speex dependency.

* Forgot to change references to APPEXEC.

* Fix app paths for AppImages.

* Force AppImage file name.

* Use separate desktop files to avoid needing to override linuxdeploy.

* Use echo instead of ls for AppImage name generation.

* Fix test-appimage and enable verification on ARM targets.

* Need to use pattern, not glob.

* Need to use step ID.

* More fixes.

* Re-add accidentally deleted ./ from Fedora container execution.

* Add arm64 Fedora testing.

* Use RADE main again as a test.

* Revert "Use RADE main again as a test."

This reverts commit 60559ef0bc.

* Switch to raw file I/O.

* Update command line usage message.

* Add PR #1066 to changelog.

* Fix compiler error.

* Report RX only to FreeDV Reporter to indicate we can't TX.

* Fix crash on shutdown.

* Actually have audio process live.

* Fix typo in build_linux.sh.

* Enable ThreadSanitizer checks for CI builds.

* Make sure we're not actually checking for test results with tsan.

* Enable sanitizers on 22.04 and ARM runners.

* Suppress sanitizer errors in Ubuntu 22.04.

* We probably need Clang 22 to have Ubuntu 22.04 RTsan tests work properly.

* Use LLVM 22 for ASAN too to see if that will suppress the final leaks.

* Add missed lock in onRecvEnd.

* [no-ci] Update documentation.

* [no-ci] Further tweaks to user manual wording.
2025-10-29 08:42:48 -07:00
Mooneer Salem d5aa1d9eb4
Various code changes to reduce dropouts/pipeline execution jitter. (#949)
* Experimental changes to resampling to reduce pipeline execution jitter.

* Cap the number of times through the TX and RX loops.

* Faster resampler for ComputeRfSpectrum step (RX only).

* Ensure we're not overrunning FIFOs on RX.

* Force all Linux tests to run to see how many end up failing now.

* Fix RADE reporting test failures.

* Revert "Force all Linux tests to run to see how many end up failing now."

This reverts commit 6ba267b758.

* Only try processing FRAME_DURATION ms at a time for TX.

* Fix intermittent RADE reporting failure.

* Make sure runner can exit ASAP when ParallelStep is being destroyed.

* Make sure we can only do one stop() at a time.

* Force all Linux tests to run to see how many end up failing now.

* Remove caps on number of cycles through TX and RX loops.

* Reenable all tests on Ubuntu 22.04.

* We don't need to call opus_select_arch() every single time through the loop.

* Python 3.11 works better on 22.04.

* Forgot to update AppRun for 3.11.

* Revert fail-fast for AppImage tests.

* Revert other fail-fast.

* Slightly increase PulseAudio latency to avoid RADE dropouts.

* Test change.

* Test change.

* Test change.

* Revert "Test change."

This reverts commit 2eee1e538d.

* Revert "Test change."

This reverts commit 8205c3b097.

* Revert "Test change."

This reverts commit c9ba8b45b2.

* Revert latency changes.

* For some reason, increasing the wait in the UT code makes the RADE test pass more reliably on 22.04.

* Increase wait time to 5s.

* Revert "Increase wait time to 5s."

This reverts commit 1ca459a02a.

* Revert "For some reason, increasing the wait in the UT code makes the RADE test pass more reliably on 22.04."

This reverts commit f267814b50.

* Try another way of increasing sleep time.

* Revert "Try another way of increasing sleep time."

This reverts commit 5a11c59167.

* Re-arrange sleeps.

* Increase time again.

* Revert "Increase time again."

This reverts commit 44073477ef.

* Revert "Re-arrange sleeps."

This reverts commit edbe451601.

* Wrap globals relevant to TX in atomic.

* Slightly increase default FIFO size.

* Trigger build.

* Trigger build.

* Trigger build.

* Trigger build.

* Trigger build.

* Revert "Trigger build."

This reverts commit 7210e745de.

* Revert "Trigger build."

This reverts commit 3fc2059d76.

* Revert "Trigger build."

This reverts commit 66d64cfe8a.

* Revert "Trigger build."

This reverts commit df745e8a77.

* Revert "Trigger build."

This reverts commit 80945de3b8.

* Add macOS 15 to GitHub tests.

* Code cleanup.

* Create ifdefs for disabled logic.

* Add PR #949 to changelog.

* See if reducing default FIFO size will work.
2025-07-04 15:45:36 -07:00
Mooneer Salem 1cb14f6d8a
Build AppImages as part of CI workflow. (#937)
* Initial check-in of files from Peter's repo.

* NO_STRIP isn't necessary on Ubuntu.

* Build AppImage as part of CI workflow.

* Try copying user's Python libraries.

* Force setting PYTHONHOME/PYTHONPATH inside FreeDV code.

* Fix PYTHONHOME paths.

* Clean up unneeded code.

* Have GitHub sanity check AppImage on clean build agents.

* Forgot to install pipewire and X inside test agent.

* Build AppImage on 22.04 instead due to glibc incompatibilities.

* apt update prior to building AppImage.

* Need GTK if we're going to build our own wxWidgets.

* Need to use Python 3.10 when building AppImages on 22.04.

* Restructure Linux tests to hopefully take less time to run.

* Forgot keyword.

* Fix typo.

* Need to run UT in debug mode.

* ASan needs to be run with gcc.

* Use PulseAudio instead of pipewire when testing AppImage on 22.04.

* Include version number in AppImage filename.

* Fix typo.

* Fix filename for AppImage testing.

* Build dependencies ourselves.

* Forgot that we duplicated the Sanity Check step.

* Ensure sanity check step fails if we lose sync.

* Run unit tests on 22.04 as well.

* Add missed GDK_BACKEND export.

* Transmit at least 2x during rade_reporting_* tests.

This is because the logic to calculate RTT between "rig" and FreeDV doesn't
fully complete until after the first TX->RX transition. By transmitting 2x,
we ensure that this logic is also exercised and thus reduce the number of
failures in the GitHub environment.

* latency_msec doesn't work with PulseAudio.

* On 22.04, limit tests to fullduplex_* to avoid GH environment problem.

* Add minimum requirements to user manual.

* Fix rendering issue while debugging test problem in local Ubuntu 22.04 environment.

* Forgot to add a tee command to the 24.04 test.

* Try 10ms latency for Pulse audio.

* Remove std::vector from RADE TX/RX steps just in case that's causing problems.

* CLOCK_MONOTONIC seems to have higher reliability for Linux tests.

* Fix compiler warning.

* WIP user manual update.

* Revert UI fix as it breaks things on macOS.

* Experiment: try to test AppImage in Fedora on GitHub.

* Try again without rtkit.

* Forgot to remove systemctl calls

* FUSE is required for AppImage.

* Use alternate method of running AppImage.

* Try third-party Fedora 41 systemd image to stop dropouts.

* Pass --init to Fedora container.

* Try another container for Fedora.

* No ps in container.

* Use podman to run container instead.

* Add missed DBus packages.

* Forgot to start pipewire.

* Start pipewire after dbus is set up.

* Use different way to start pipewire.

* podman might need to run as root.

* Forgot quote.

* Fix environment not getting passed to podman.

* Experiment: see if Fedora 41 can be tested too.

* Revert "Experiment: see if Fedora 41 can be tested too."

This reverts commit c751ab2c77.

* Bring back previous GUI bugfix but limit it to wxWidgets < 3.2.

* Fix timespec bug discovered during performance profiling.

* Forgot to capture rv.

* Revert back to CLOCK_REALTIME.

* Remove additional sleep on semaphore timeout.

* Need to use sem_clockwait if we're going to use monotonic time.

* Remove comment that no longer applies.

* Add PR #937 to changelog.

* Fix memory leak reported by ASan.

* Deploy GTK dependencies as part of AppImage.

* Add additional protection to avoid dropouts.

* Use deque instead of vector for function queues due to better worst-case complexity.

* Warning cleanup.

* Documentation update.

* Fix macOS compiler error.

* Eliminate the need to install Octave in GitHub environment.

* Have all macOS jobs run at once to save time.
2025-06-24 08:57:46 -07:00