Commit Graph

27 Commits (10abe4c4fe7a9f2be5a576aa44a2f53bcc251e29)

Author SHA1 Message Date
Mooneer Salem 30c9e5b9c6
Remove 800XA, 700C, 2020 and 2020B. (#889)
* Remove 800XA, 700C, 2020 and 2020B from UI,

* Remove additional 700C references in UI.

* Remove 2020/AVX detection logic from codebase.

* Remove LPCNet from build scripts.

* Add PR #889 to changelog.

* Forgot to remove LPCNet from Windows installer generation.

* Generate Release build for GH workflows.

* Disable PSK Reporter reporting during test execution as invalid callsigns are used.

* Build type was being overwritten.

* Missed mutex removal.

* Temporarily use Instruments to trace macOS CI execution.

* Minor update.

* Use 2 minute window in xctrace to actually capture wanted events.

* Disable xctrace execution but keep in tests just in case.

* Hide main window during tests to prevent GUI from interfering.

* Experiment: set infifo2 max length to 30 seconds

* Oops, forgot to remove division from previous commit.

* Deallocation of PulseAudio stream should occur while mainloop is locked.

* Revert "Hide main window during tests to prevent GUI from interfering."

This reverts commit 69689bb927.

* Based on online code snippets nullptr for neg is fine.

* Clear PYTHONHOME if set on the user's system (Windows/macOS only).

* Bring back locking in TxRxThread just in case.

* Remove unneeded backslash.

* Revert "Bring back locking in TxRxThread just in case."

This reverts commit fc6a9f8797.

* Manually back out the changes instead of using git checkout.

* Use shared_ptr for LinkStep.

* Try removing the TX mode change mutex again.

* Try moving actual codec activity out of RT context.

* Fix compiler error.

* Fix issue preventing legacy modes from transmitting.

* Another attempt at preventing RX dropouts.

* Try putting mode TX into separate threads again.

* Only limit output samples if input samples were provided.

* Put codec RX back into RT context.

* Put TX on RT context.

* Remove unused code.

* Deallocation should occur only in the destructor.

* Fix Windows spectrum plot formatting issues.

* Prevent buffer overflow during TX/RX processing.

* Bring FRAME_DURATION back down to 10ms.

* We want to feed samples into the RADE/FreeDV TX/RX FIFOs regardless of whether there's room in the output.

* ParallelStep should only feed FRAME_DURATION ms worth of samples at a time.

* Sleep fallback should track FRAME_DURATION.

* Don't execute the parallel steps if there isn't enough room in the output FIFO.

* We really can only inject a portion of EOO samples at a time.

* Queue EOO as a single unit to ensure it gets transmitted as a unit.

* Allow ParallelStep to provide up to 4x the number of input samples as output.

* Back to processing 20ms frames.

* Run GH Linux tests using asan enabled.

* Suppress Python related memory leaks and Hamlib related invalid memory accesses.

* Forgot suppressions= in test execution.

* Add more leak suppressions based on GH output.

* Resolve memory leaks.

* Fix broken RadeTextTest.

* Additional suppressions from GH.

* Go back to processing TxNumSpeechSamples every TX cycle.

* Revert "Go back to processing TxNumSpeechSamples every TX cycle."

This reverts commit abe816d00b.

* Fix 1600 mode dropouts.

* Make TX single-threaded again.

* Revert back to last working pipeline logic (for fullduplex_* anyway).

* Revert most EOO behavior.

* Run AddressSanitizer tests separately as they interfere with real time audio.

* Need to start Xvfb etc. before asan tests.

* Only a subset of tests need to run with asan enabled.

* Fix issue causing PTT input not to work.

* Maybe we don't need to restart servers after all.

* Try using rtkit to ask for high priority instead of RT.

* Clear FIFOs a different way.

* Windows: determine minimum number of audio channels supported.
2025-05-26 12:29:47 -07:00
Mooneer Salem 93770acdde
Add support for sending callsigns using RADE (#783)
* Prevent EOO from being repeatedly sent during TX stop.

* Make sure we don't accidentally overflow the output FIFO when transmitting EOO.

* Add additional logging to verify EOO behavior.

* Fix issue preventing EOO from being sent on voice keyer completion.

* Scale EOO the same as the primary waveform.

* Remove #ifdef code per PR comment.

* Use main branch for RADE.

* Add initial support for RADE callsign handling.

* Add additional logging and try different way to calculate amps.

* More debugging. We should also make sure all of EOO is initialized to 'zero'.

* Testing and other changes:

1. Add RadeTextTest to rule out any issues with freedv-gui.
2. Calculate RMS magnitude across all EOO bits, not just the ones used by RADE text.

* Fix test so it actually runs on Linux.

* Disable temporary fprintf of symbols.

* GH environment gave different BER, so let's try positive ROT45.

* set_eoo_bits should be receiving OFDM symbols.

* Don't fault if we don't have a RX callback.

* Fix issue preventing ctest from working in GH environment.

* Reenable interleaving.

* Initial code cleanup.

* Reformat code to make it easier to read.

* Inject noise into the TX sample in the ctest.

* Add initial test scripts for verifying RADE reporting.

* Add some sleeps since the UT framework can issue GUI events faster than the audio can escape FreeDV.

* Add ctest for test_rade_reporting.sh.

* Add RADE reporting noise test.

* Use codec2 ch tool to generate noise.

* Add raw/coded BER debugging output for tests.

* Fix formula used for BER.

* Update ctest to use mpp instead of AWGN, similar to RADE repo.

* Bring back AWGN test.

* Add Octave to build environment.

* Update cmake-macos.yml

* Fix buffer overrun from previous changes.

* Accidentally included previous change.

* Ensure we have defaults for txattempts and txtime.

* Coded BER should use output of LDPC decode.

* Install octave-signal in macOS CI environment.

* Need to pass -forge in to install signal properly.

* Need octave-control too.

* Need gcc to build control/signal.

* Some additional stuff is needed to get gfortran working.

* Need to use gcc 14 instead.

* Add debugging.

* Fix typo.

* Homebrew uses /opt/homebrew.

* Clarify logging as we also report to FreeDV Reporter.

* Forgot to update ctest acceptance criteria due to logging change.

* Add logic to output TX/RX floats to files.

* rade_text should handle stuffing of unused EOO bits, not upstream code.

* Test framework: remove hardcoded 5s delay after startup request.

* Calculate raw BER across entire EOO, not just the used portion.

* Code cleanup and EOO calculation fixes.

* FreeDV Reporter: only highlight for 2 seconds if there's no RX callsign.

* Switch RADE branch to main as EOO changes have now been merged.
2024-12-27 15:08:24 -08:00
Mooneer Salem 31e7e45051 Oops, we're not using two separate add_dependencies calls. 2024-04-12 22:44:46 -07:00
Mooneer Salem 798ab1612e Fix CI build failure. 2024-04-12 22:32:30 -07:00
Mooneer Salem d8ee413693 Add CMake and code logic to allow compilation without LPCNet. 2024-04-12 22:27:17 -07:00
Mooneer Salem 435f41bcdd v isn't in front of the Codec2 tag. 2023-07-24 21:48:53 -07:00
Mooneer Salem 05ebe90f5e Update for codec2 v1.2.0 release. 2023-07-24 21:17:35 -07:00
Mooneer Salem 2111e1a63f Bump Codec2 version to v1.1.1. 2023-06-15 08:49:24 -07:00
Mooneer Salem ddab15b3d0 Remove origin from git tags. 2023-05-06 00:25:33 -07:00
Mooneer Salem 5a6034aa1c Use version tags for Codec2 and LPCNet. 2023-05-05 19:58:58 -07:00
Mooneer Salem dd19599099 Force Speex to be built if not available. 2022-12-19 10:41:46 -08:00
Mooneer Salem 825a84b08b Suppress DOWNLOAD_EXTRACT_TIMESTAMP warning. 2022-12-03 23:54:28 -08:00
Mooneer Salem 9ef899fdd5 Additional cleanup and support for LLVM MinGW. 2022-11-26 08:30:45 -08:00
Mooneer Salem ccd51b6438 Get Hamlib and Codec2/LPCNet build working properly through CMake. 2022-11-22 09:26:23 -08:00
Richard Shaw 0d8150edfb Tweaks to get wxWindows bootstrapping working again. 2020-08-13 19:05:43 -05:00
Richard Shaw 1036fb5530 Clean up and comment build system and update internal wxWidgets build to latest stable, 3.0.4. 2019-05-01 13:39:15 -05:00
Richard Shaw b874b5e180 Make OSX deployment target a variable in Build<project>.cmake files. 2019-05-01 10:32:00 -05:00
Richard Shaw 091c526484 Replace SVN referenced code and cmake config with GIT. 2019-05-01 10:29:41 -05:00
Richard Shaw 04382ef68a More fixes to make both internal builds and BUILD_DIR methods work. 2019-04-30 16:38:15 -05:00
Richard Shaw 85e5712eeb Initial fixup for Windows builds that include lpcnetfreedv. 2019-04-29 16:06:58 -05:00
Richard Shaw 8aa1657e78 Quick fix for finding libfreedvlpcnet. 2019-04-11 08:24:21 -05:00
hobbes1069 3002592461 Fix include location in BuildCodec2.cmake 2018-03-14 01:14:59 +00:00
hobbes1069 9704a4d133 Fix locating of codec2 version.h when building from svn checkout. 2018-03-12 22:53:35 +00:00
hobbes1069 0e613b5df1 Updates to support OSX. 2017-03-07 22:25:39 +00:00
hobbes1069 b31fb07931 Fix BuildCodec2.cmake and add cmake module to build hamlib (not ready for production). 2015-09-24 19:48:16 +00:00
hobbes1069 37f3ca4db0 Freedv release builds should checkout release branches of codec2, not codec2-dev. 2015-09-11 13:56:00 +00:00
hobbes1069 a362d8ebe7 Rename fdmdv2 to freedv. 2015-08-13 13:07:43 +00:00