Tweak buffer size and placement

This commit is contained in:
jacqueline
2023-08-03 16:04:27 +10:00
parent 3511852f39
commit 31f6123b7b
3 changed files with 16 additions and 6 deletions
+2
View File
@@ -16,6 +16,7 @@
#include <utility>
#include <variant>
#include "esp_heap_caps.h"
#include "freertos/FreeRTOS.h"
#include "freertos/ringbuf.h"
#include "freertos/stream_buffer.h"
@@ -110,6 +111,7 @@ class OutputStream;
class RawStream {
public:
explicit RawStream(std::size_t size);
RawStream(std::size_t size, uint32_t);
~RawStream();
auto info() -> StreamInfo& { return info_; }
+6 -6
View File
@@ -20,11 +20,11 @@
static constexpr char kTag[] = "mixer";
static constexpr std::size_t kSourceBufferLength = 4 * 1024;
static constexpr std::size_t kInputBufferLength = 4 * 1024;
static constexpr std::size_t kReformatBufferLength = 4 * 1024;
static constexpr std::size_t kSourceBufferLength = 2 * 1024;
static constexpr std::size_t kInputBufferLength = 2 * 1024;
static constexpr std::size_t kReformatBufferLength = 8 * 1024;
static constexpr std::size_t kResampleBufferLength = kReformatBufferLength;
static constexpr std::size_t kQuantisedBufferLength = 2 * 1024;
static constexpr std::size_t kQuantisedBufferLength = 1 * 1024;
namespace audio {
@@ -35,8 +35,8 @@ SinkMixer::SinkMixer(StreamBufferHandle_t dest)
source_(xStreamBufferCreate(kSourceBufferLength, 1)),
sink_(dest) {
input_stream_.reset(new RawStream(kInputBufferLength));
floating_point_stream_.reset(new RawStream(kReformatBufferLength));
resampled_stream_.reset(new RawStream(kResampleBufferLength));
floating_point_stream_.reset(new RawStream(kReformatBufferLength, MALLOC_CAP_SPIRAM));
resampled_stream_.reset(new RawStream(kResampleBufferLength, MALLOC_CAP_SPIRAM));
quantisation_buffer_ = {
reinterpret_cast<std::byte*>(heap_caps_malloc(
+8
View File
@@ -30,6 +30,14 @@ RawStream::RawStream(std::size_t size)
assert(buffer_ != NULL);
}
RawStream::RawStream(std::size_t size, uint32_t caps)
: info_(),
buffer_size_(size),
buffer_(reinterpret_cast<std::byte*>(
heap_caps_malloc(size, caps))) {
assert(buffer_ != NULL);
}
RawStream::~RawStream() {
heap_caps_free(buffer_);
}