* Make sure RTSan-related code isn't added if not installed.
* Enable RTSan checks in GH Actions.
* Fix syntax error in GH action.
* Fix GCC compile failures.
* Use different GH workflow to get correct Clang installed.
* Split RTSan test into separate build and test steps
* Move LLVM installation to beginning in case there are side effects.
* Prevent dynamic resampling in AudioPipeline when playing back files.
* Mixed up sample calculation, causing tests to fail.
* Additional changes to see if it still hangs.
* Update cmake-macos.yml
* Do completion check after queuing to output FIFO.
* Fix buffer overflow.
* Some additional changes based on local testing.
* GH tests weren't actually being run through the resampler.
* Remove ExclusiveAccessStep files as they're not being used.
* Remove some logging that shouldn't be in RT context.
* Add reset() to IPipelineStep to avoid repeated deallocations and reallocations of the TX pipeline.
* Fix segfault from previous changes.
* Remove RADE specific logging in RT context and suppress RTSan for RADE EOO handling.
* Disable RTSan for RADE text handling.
* Try disabling real-time for macOS.
* Force Windows 2022.
* Revert "Try disabling real-time for macOS."
This reverts commit c8ee871406.
* Experiment: use O(1) heap allocator for Codec2.
* Fix patch commands.
* thread_local is only in C++11 and above.
* Force codec2 folder to be removed every call.
* Update codec2 patch.
* Fix Windows compiler error.
* Oops, should be _aligned_malloc.
* Integrate codec2 into source tree so we don't need to deal with patch.
* Update Codec2 README.
* mbest needs to use o1heap too.
* Remove rtsan disable from FreeDV TX/RX steps.
* Bring back AudioPipeline change previously removed by master merge.
* Result resampler needs to be initialized on construction.
* Create resampler only if input and output rates don't match.
* Increase Codec2 RT heap size.
* Fix Windows failures.
* Ensure separate threads spawned from PipelineStep are also checked by RTSan.
* Support RTSan builds on macOS if user has appropriate LLVM.
* Remove no longer needed patch.
* Remove unneeded resettingThread property.
* Fix issue discovered during testing.
* Test: match Linux and macOS requested latency to Windows.
* Add PR #900 to changelog.
* Reenable timeouts once connected to the radio.
* 100ms might be a bit better.
* Request current frequency/mode every second (instead of every 5 seconds).
* Remove pre-PTT interrogation of frequency/mode.
* Increase Hamlib timeout to 500ms per user testing.
* Add PR #893 to changelog.
* Update comment.
* Fix utf8_str compiler error reported by users when using wxWidgets 3.0.
* Bring back RIGCAPS_NOT_CONST check to keep things compiling on distros still on Hamlib 4.5.
* Return to 20ms block sizes on macOS to improve test reliability.
* Use Windows 2022 in test environment.
Don't want to be fighting Windows problems too.
* Don't want to be fighting gfortran either.
* Try caching Homebrew package install to decrease compile/test time for macOS.
* See if we can make RADE reporting a bit more reliable in the GH environment.
* 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.
* Adjust constants based on Instruments analysis.
* Update comments.
* Try reading only FRAME_DURATION at a time during TX.
* Speex step doesn't need to be locked.
* Use shared pointers instead of locking during EqualizerStep.
* Move file read out of the RT context.
* Remove file I/O from RT context for RecordStep too.
* Try requesting 10ms blocks from Windows.
* Allow all GH tests to run.
* Revert back to 20ms frames.
* Minor tweak to Easy Setup window formatting.
* Revert "Revert back to 20ms frames."
This reverts commit b67313cdef.
* Update freedv-ctest-fullduplex.conf.tmpl
Disable multiple RX for testing.
* Turn off multiple RX for reporting tests as well.
* Force single threaded if only one step is available.
* Revert changes to freedv-ctest-fullduplex.conf.tmpl.
* Revert changes to freedv-ctest-reporting.conf.tmpl.
* Need to wake up all threads whenever we get a block of audio.
* Fix compiler errors.
* Revert previous changes as they didn't help.
* Refactor ParallelStep to remove usage of locks.
* Fix compiler errors and warnings.
* Fix issue preventing EOO from being sent.
* Another attempt at fixing the test failures.
* Use semaphores to wake up ParallelStep threads on receipt of new audio data.
* Fix compiler errors.
* Forgot to wake up helper threads.
* Helper threads should wait until ended or until there's data.
* Fix compiler error.
* Increase fifo sizes for FreeDV TX and RX steps.
* macOS: add protection in case semaphore wasn't created.
* Prevent waterfall from clearing itself when RX mode changes.
* Add logic to read in any data that may have come in during processing.
* GitHub Actions: run all Windows tests even if one or more fail.
* Revert "Add logic to read in any data that may have come in during processing."
This reverts commit 11ce99bb6a.
* Meter out only a little bit of data at a time.
* Revert "Meter out only a little bit of data at a time."
This reverts commit 35e81d6ce5.
* Use 20ms blocks instead of 10ms.
* Revert "Use 20ms blocks instead of 10ms."
This reverts commit 1ec6fb308a.
* Update FRAME_DURATION instead.
* Only process entire TX blocks at a time.
* Set sRGB color space for all open windows.
* Change version tag to rc to reflect release candidate status.
* Revert waveform FIFO changes from previous PR.
* libsamplerate needs to be built with optimizations on macOS and Windows.
* Fix Windows build failure.
* Update LLVM MinGW in Windows CI build to match version used for packaging.
* Test: use RADE main to see if Python GC actually matters.
* Avoid crash on stop if hamlib is somehow not able to initialize the radio.
* Need to use PTT type of RIGMICDATA in order for 'CAT via Data port' option to actually work.
* Use shared setHelperRealTime in internal WASAPI threads.
* Capture this instead of all by reference in internal WASAPI threads.
* Clean up refcounts of COM objects.
* Missed release of default audio device.
* Event handle needs to be closed on stop().
* Fix cross-compile definitions to allow asan to be used in the first place.
* Make sure TX/RX thread stops before audio devices do.
* FreeDV Reporter: Force re-sorting on user connect.
* Try unconditionally resorting on every pass through the timer.
* Bump up RX input FIFO to 30s. Yes, I know this is pretty excessive.
* Remove sortRequired_ since we're not using it anymore.
* Default to sorting by frequency.
* Re-attempt Hamlib connection without timeouts if failed.
* Add Hamlib error message to log.
* Remove timeouts.
* Only set ptt_pathname if using RTS or DTR.
* Various Hamlib fixes adapted from WSJT-X.
* Warning cleanup.
* Update changelog.
* Reset PTT type back to RIG to avoid issues when switching between RTS/DTR and CAT.
* Add support for CAT PTT using the Data port (vs. Mic).
* Update user manual.