diff options
| author | jacqueline <me@jacqueline.id.au> | 2024-02-14 16:56:49 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2024-02-14 16:56:49 +1100 |
| commit | 4bc77f901b1597b7cbc9ab7f4e0e354a7c93ed43 (patch) | |
| tree | 247482110206db8f4c7058d912a72d50cfab117f /lib/opusfile | |
| parent | f772ab9f206b7356019f529cb4a98d5023962970 (diff) | |
| download | tangara-fw-4bc77f901b1597b7cbc9ab7f4e0e354a7c93ed43.tar.gz | |
Tweak opus build flags and allocs
This gets us to ~40% of one core cpu usage during playback. Good enough
for a while I reckon!
Paid for the internal ram usage by reclaiming some stack size headroom.
Diffstat (limited to 'lib/opusfile')
| -rw-r--r-- | lib/opusfile/CMakeLists.txt | 6 | ||||
| -rw-r--r-- | lib/opusfile/include/custom_support.h | 10 |
2 files changed, 10 insertions, 6 deletions
diff --git a/lib/opusfile/CMakeLists.txt b/lib/opusfile/CMakeLists.txt index f9b5e4ce..fe958b67 100644 --- a/lib/opusfile/CMakeLists.txt +++ b/lib/opusfile/CMakeLists.txt @@ -11,6 +11,11 @@ set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) set(OPUS_FIXED_POINT ON) set(OPUS_ENABLE_FLOAT_API OFF) + +set(OPUS_VAR_ARRAYS OFF) +set(OPUS_USE_ALLOCA ON) +set(OPUS_NONTHREADSAFE_PSEUDOSTACK OFF) + set(OPUS_INSTALL_PKG_CONFIG_MODULE OFF) set(OPUS_INSTALL_CMAKE_CONFIG_MODULE OFF) set(OPUS_BUILD_TESTING OFF) @@ -18,5 +23,6 @@ set(OPUS_BUILD_SHARED_LIBS OFF) add_subdirectory($ENV{PROJ_PATH}/lib/opus ${CMAKE_CURRENT_BINARY_DIR}/opus) target_compile_definitions(opus PRIVATE CUSTOM_SUPPORT) +target_compile_options(opus PRIVATE -Os -DSMALL_FOOTPRINT -funroll-loops -ffast-math) target_include_directories(opus PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) target_link_libraries(${COMPONENT_LIB} PUBLIC opus) diff --git a/lib/opusfile/include/custom_support.h b/lib/opusfile/include/custom_support.h index a5748989..60cab623 100644 --- a/lib/opusfile/include/custom_support.h +++ b/lib/opusfile/include/custom_support.h @@ -6,12 +6,10 @@ #define OVERRIDE_OPUS_ALLOC #define OVERRIDE_OPUS_FREE -static OPUS_INLINE void *opus_alloc (size_t size) -{ - return heap_caps_malloc(size, MALLOC_CAP_SPIRAM); +static OPUS_INLINE void* opus_alloc(size_t size) { + return heap_caps_malloc(size, MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT); } -static OPUS_INLINE void opus_free (void *ptr) -{ - heap_caps_free(ptr); +static OPUS_INLINE void opus_free(void* ptr) { + heap_caps_free(ptr); } |
