From 2cc0a38a1ac7fc54d7333dafa8b99479a7f5dc86 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 27 Jan 2023 13:28:22 +1100 Subject: pipeline memory management fixes + logging --- src/audio/include/audio_element.hpp | 2 +- src/audio/include/i2s_audio_output.hpp | 1 - src/audio/include/stream_event.hpp | 20 ++++++-------------- 3 files changed, 7 insertions(+), 16 deletions(-) (limited to 'src/audio/include') diff --git a/src/audio/include/audio_element.hpp b/src/audio/include/audio_element.hpp index 8827a0c3..c6453d4d 100644 --- a/src/audio/include/audio_element.hpp +++ b/src/audio/include/audio_element.hpp @@ -64,7 +64,7 @@ class IAudioElement { * be tuned according to the observed stack size of each element, as different * elements have fairly different stack requirements (particular decoders). */ - virtual auto StackSizeBytes() const -> std::size_t { return 2048; }; + virtual auto StackSizeBytes() const -> std::size_t { return 4096; }; virtual auto InputMinChunkSize() const -> std::size_t { return 0; } diff --git a/src/audio/include/i2s_audio_output.hpp b/src/audio/include/i2s_audio_output.hpp index 4fbcad49..02ac7a16 100644 --- a/src/audio/include/i2s_audio_output.hpp +++ b/src/audio/include/i2s_audio_output.hpp @@ -8,7 +8,6 @@ #include "dac.hpp" #include "gpio_expander.hpp" -#include "sys/_stdint.h" namespace audio { diff --git a/src/audio/include/stream_event.hpp b/src/audio/include/stream_event.hpp index 4dfdab41..4f441fa5 100644 --- a/src/audio/include/stream_event.hpp +++ b/src/audio/include/stream_event.hpp @@ -11,13 +11,11 @@ namespace audio { struct StreamEvent { - static auto CreateStreamInfo(QueueHandle_t source, - std::unique_ptr payload) - -> std::unique_ptr; + static auto CreateStreamInfo(QueueHandle_t source, const StreamInfo& payload) + -> StreamEvent*; static auto CreateChunkData(QueueHandle_t source, std::size_t chunk_size) - -> std::unique_ptr; - static auto CreateChunkNotification(QueueHandle_t source) - -> std::unique_ptr; + -> StreamEvent*; + static auto CreateChunkNotification(QueueHandle_t source) -> StreamEvent*; StreamEvent(); ~StreamEvent(); @@ -33,16 +31,10 @@ struct StreamEvent { } tag; union { - std::unique_ptr stream_info; - - // Scott Meyers says: - // `About the only situation I can conceive of when a std::unique_ptr - // would make sense would be when you’re using a C-like API that returns a - // raw pointer to a heap array that you assume ownership of.` - // :-) + StreamInfo* stream_info; struct { - std::unique_ptr raw_bytes; + std::byte* raw_bytes; cpp::span bytes; } chunk_data; -- cgit v1.2.3