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.
This commit is contained in:
jacqueline
2024-02-14 16:56:49 +11:00
parent f772ab9f20
commit 4bc77f901b
4 changed files with 16 additions and 14 deletions
+6
View File
@@ -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)
+4 -6
View File
@@ -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);
}