summaryrefslogtreecommitdiff
path: root/src/audio/include
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-01-27 13:28:22 +1100
committerjacqueline <me@jacqueline.id.au>2023-01-27 13:28:22 +1100
commit2cc0a38a1ac7fc54d7333dafa8b99479a7f5dc86 (patch)
tree491921af1c26c2712d91030068ac29c4cb2d6d51 /src/audio/include
parent7b60f5f864997e94895305f23ed2716ad7d9acaa (diff)
downloadtangara-fw-2cc0a38a1ac7fc54d7333dafa8b99479a7f5dc86.tar.gz
pipeline memory management fixes + logging
Diffstat (limited to 'src/audio/include')
-rw-r--r--src/audio/include/audio_element.hpp2
-rw-r--r--src/audio/include/i2s_audio_output.hpp1
-rw-r--r--src/audio/include/stream_event.hpp20
3 files changed, 7 insertions, 16 deletions
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<StreamInfo> payload)
- -> std::unique_ptr<StreamEvent>;
+ static auto CreateStreamInfo(QueueHandle_t source, const StreamInfo& payload)
+ -> StreamEvent*;
static auto CreateChunkData(QueueHandle_t source, std::size_t chunk_size)
- -> std::unique_ptr<StreamEvent>;
- static auto CreateChunkNotification(QueueHandle_t source)
- -> std::unique_ptr<StreamEvent>;
+ -> StreamEvent*;
+ static auto CreateChunkNotification(QueueHandle_t source) -> StreamEvent*;
StreamEvent();
~StreamEvent();
@@ -33,16 +31,10 @@ struct StreamEvent {
} tag;
union {
- std::unique_ptr<StreamInfo> stream_info;
-
- // Scott Meyers says:
- // `About the only situation I can conceive of when a std::unique_ptr<T[]>
- // 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<std::byte*> raw_bytes;
+ std::byte* raw_bytes;
cpp::span<std::byte> bytes;
} chunk_data;