Tweak buffer size and placement
This commit is contained in:
@@ -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_; }
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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_);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user