Make explicit various codec2 dependencies to avoid compile race condition. (#957)
* Make explicit various codec2 dependencies to avoid compile race condition. * Add PR #957 to changelog. * No need to use build_rade as the dependency if we're using rade. * Forgot to check in a change. * Looks like we need the larger FIFO after all. * Use SRC_SINC_FASTEST for plots. Should be low to no-impact as previous RADE testing showed only a slight quality decrease vs. SRC_SINC_MEDIUM_QUALITY. * Update changelog. * Back to SRC_LINEAR. * Update comments. * Don't fail fast for Linux builds. * Add libsamplerate deps where appropriate. * Add sndfile deps. * Revert "Add sndfile deps." This reverts commitms-hamlib-build-depdc00a3b7cd. * Revert "Add libsamplerate deps where appropriate." This reverts commit65c4766c20. * Reenable processing stats. * Try building with -O3. * Try building using LTO. * Revert "Try building using LTO." This reverts commit2536a15dd2. * Revert "Try building with -O3." This reverts commit8b9b824a88. * Revert "Reenable processing stats." This reverts commit5b0d31b1a2.
parent
ce7c4af793
commit
469b22dbc7
|
|
@ -203,7 +203,7 @@ jobs:
|
|||
|
||||
build:
|
||||
strategy:
|
||||
fail-fast: true
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-24.04, ubuntu-22.04]
|
||||
sanitizer: [WITH_ASAN=0, WITH_RTSAN=1, WITH_ASAN=1]
|
||||
|
|
|
|||
|
|
@ -831,11 +831,12 @@ LDPC | Low Density Parity Check Codes - a family of powerful FEC codes
|
|||
* Add missing dependency for macOS builds to README. (PR #925; thanks @relistan!)
|
||||
* Add note about using XWayland on Linux. (PR #926)
|
||||
3. Enhancements:
|
||||
* General improvements to backend audio processing to further reduce dropouts. (PR #949)
|
||||
* General improvements to backend audio processing to further reduce dropouts. (PR #949, #957)
|
||||
4. Build system:
|
||||
* Update Hamlib to 4.6.3 (macOS/Windows). (PR #930)
|
||||
* Reload current Git hash every time it changes. (PR #935, #951)
|
||||
* Add infrastructure for generating AppImage builds. (PR #937)
|
||||
* Make explicit various codec2 dependencies to avoid compile race condition. (PR #957)
|
||||
|
||||
## V2.0.0 June 2025
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ ExternalProject_Add(build_codec2
|
|||
ExternalProject_Get_Property(build_codec2 BINARY_DIR)
|
||||
ExternalProject_Get_Property(build_codec2 SOURCE_DIR)
|
||||
add_library(codec2 STATIC IMPORTED)
|
||||
add_dependencies(codec2 build_codec2)
|
||||
|
||||
set_target_properties(codec2 PROPERTIES
|
||||
IMPORTED_LOCATION "${BINARY_DIR}/src/libcodec2${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
||||
|
|
|
|||
|
|
@ -58,21 +58,10 @@ endif(APPLE)
|
|||
|
||||
if(APPLE)
|
||||
target_link_libraries(FreeDV fdv_audio fdv_audio_pipeline fdv_config fdv_gui_controls fdv_gui_dialogs fdv_gui_util fdv_os_wrapper fdv_rig_control fdv_reporting fdv_sox fdv_util codec2 rade opus git_version)
|
||||
add_dependencies(FreeDV build_rade)
|
||||
else(APPLE)
|
||||
target_link_libraries(freedv fdv_audio fdv_audio_pipeline fdv_config fdv_gui_controls fdv_gui_dialogs fdv_gui_util fdv_os_wrapper fdv_rig_control fdv_reporting fdv_sox fdv_util codec2 rade opus git_version)
|
||||
add_dependencies(freedv build_rade)
|
||||
endif(APPLE)
|
||||
|
||||
# Add build dependencies for internally built external libraries.
|
||||
if(USE_INTERNAL_CODEC2)
|
||||
if(APPLE)
|
||||
add_dependencies(FreeDV build_codec2)
|
||||
else(APPLE)
|
||||
add_dependencies(freedv build_codec2)
|
||||
endif(APPLE)
|
||||
endif()
|
||||
|
||||
# Add dependencies for other statically built libraries, if applicable.
|
||||
if(FREEDV_STATIC_DEPS)
|
||||
if(APPLE)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ add_library(fdv_config STATIC
|
|||
)
|
||||
|
||||
target_include_directories(fdv_config PRIVATE ${CODEC2_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_BINARY_DIR}/..)
|
||||
add_dependencies(fdv_config build_rade)
|
||||
add_dependencies(fdv_config rade codec2)
|
||||
|
||||
if(BOOTSTRAP_WXWIDGETS)
|
||||
add_dependencies(fdv_config wx::core wx::base wx::aui wx::html wx::net wx::adv wx::propgrid wx::xrc)
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@
|
|||
#define NUM_CHANNELS 2 // I think most sound cards prefer stereo we will convert to mono
|
||||
#define VOX_TONE_FREQ 1000.0 // optional left channel vox tone freq
|
||||
#define VOX_TONE_AMP 30000 // optional left channel vox tone amp
|
||||
#define FIFO_SIZE 540 // default fifo size in ms
|
||||
#define FIFO_SIZE 640 // default fifo size in ms
|
||||
#define FRAME_DURATION 0.02 // default frame length of 20 mS = 0.02 seconds
|
||||
|
||||
#define MAX_BITS_PER_CODEC_FRAME 64 // 1600 bit/s mode
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ add_library(fdv_gui_controls STATIC
|
|||
ReportMessageRenderer.cpp)
|
||||
|
||||
target_include_directories(fdv_gui_controls PRIVATE ${CODEC2_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/../.. ${CMAKE_CURRENT_BINARY_DIR}/../..)
|
||||
add_dependencies(fdv_gui_controls codec2)
|
||||
|
||||
if(BOOTSTRAP_WXWIDGETS)
|
||||
add_dependencies(fdv_gui_controls wx::core wx::base wx::aui wx::html wx::net wx::adv wx::propgrid wx::xrc)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ add_library(fdv_gui_dialogs STATIC
|
|||
|
||||
target_include_directories(fdv_gui_dialogs PRIVATE ${CODEC2_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/../.. ${CMAKE_CURRENT_BINARY_DIR}/../..)
|
||||
|
||||
add_dependencies(fdv_gui_dialogs rade opus)
|
||||
add_dependencies(fdv_gui_dialogs rade opus codec2)
|
||||
|
||||
if(BOOTSTRAP_WXWIDGETS)
|
||||
add_dependencies(fdv_gui_dialogs wx::core wx::base wx::aui wx::html wx::net wx::adv wx::propgrid wx::xrc)
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ add_library(fdv_audio_pipeline STATIC
|
|||
|
||||
target_include_directories(fdv_audio_pipeline PRIVATE ${CODEC2_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_BINARY_DIR}/..)
|
||||
|
||||
add_dependencies(fdv_audio_pipeline rade opus)
|
||||
add_dependencies(fdv_audio_pipeline rade opus codec2)
|
||||
|
||||
if(BOOTSTRAP_WXWIDGETS)
|
||||
add_dependencies(fdv_audio_pipeline wx::core wx::base wx::aui wx::html wx::net wx::adv wx::propgrid wx::xrc)
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@ ResampleStep::ResampleStep(int inputSampleRate, int outputSampleRate, bool forPl
|
|||
, outputSampleRate_(outputSampleRate)
|
||||
{
|
||||
int src_error;
|
||||
|
||||
resampleState_ = src_new(forPlotsOnly ? SRC_LINEAR : SRC_SINC_MEDIUM_QUALITY, 1, &src_error);
|
||||
assert(resampleState_ != nullptr);
|
||||
|
||||
|
|
|
|||
|
|
@ -56,13 +56,12 @@ using namespace std::chrono_literals;
|
|||
// Experimental options for potential future release:
|
||||
//
|
||||
// * ENABLE_FASTER_PLOTS: This uses a faster resampling algorithm to reduce the CPU
|
||||
// usage required to generate various plots in the user interface. Currently disabled
|
||||
// due to unknown effects on visual quality. (Tech note: When enabled, libsamplerate is
|
||||
// directed to use linear interpolation instead of sinc for the plot resampling.)
|
||||
// usage required to generate various plots in the user interface. (Tech note: When
|
||||
// enabled, libsamplerate is directed to use SRC_LINEAR for the plot resampling.)
|
||||
// * ENABLE_PROCESSING_STATS: This causes execution statistics to be collected for RX and TX
|
||||
// processing and output in the log after the user pushes Stop.
|
||||
|
||||
//#define ENABLE_FASTER_PLOTS
|
||||
#define ENABLE_FASTER_PLOTS
|
||||
//#define ENABLE_PROCESSING_STATS
|
||||
|
||||
// External globals
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ soundCard2OutDeviceName=@FREEDV_COMPUTER_TO_SPEAKER_DEVICE@
|
|||
soundCard2OutSampleRate=48000
|
||||
SquelchActive=1
|
||||
SquelchLevel=-4
|
||||
fifoSize_ms=540
|
||||
fifoSize_ms=640
|
||||
transmitLevel=0
|
||||
snrSlow=0
|
||||
mode=4
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ soundCard2OutDeviceName=@FREEDV_COMPUTER_TO_SPEAKER_DEVICE@
|
|||
soundCard2OutSampleRate=48000
|
||||
SquelchActive=1
|
||||
SquelchLevel=-4
|
||||
fifoSize_ms=540
|
||||
fifoSize_ms=640
|
||||
transmitLevel=0
|
||||
snrSlow=0
|
||||
mode=257
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ soundCard2OutDeviceName=@FREEDV_COMPUTER_TO_SPEAKER_DEVICE@
|
|||
soundCard2OutSampleRate=48000
|
||||
SquelchActive=1
|
||||
SquelchLevel=-4
|
||||
fifoSize_ms=540
|
||||
fifoSize_ms=640
|
||||
transmitLevel=0
|
||||
snrSlow=0
|
||||
mode=257
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ soundCard2OutDeviceName=@FREEDV_COMPUTER_TO_SPEAKER_DEVICE@
|
|||
soundCard2OutSampleRate=48000
|
||||
SquelchActive=1
|
||||
SquelchLevel=-4
|
||||
fifoSize_ms=540
|
||||
fifoSize_ms=640
|
||||
transmitLevel=0
|
||||
snrSlow=0
|
||||
mode=257
|
||||
|
|
|
|||
Loading…
Reference in New Issue