summaryrefslogtreecommitdiff
path: root/src/codecs/miniflac.cpp
diff options
context:
space:
mode:
authorailurux <ailuruxx@gmail.com>2024-02-16 17:02:54 +1100
committerailurux <ailuruxx@gmail.com>2024-02-16 17:02:54 +1100
commit19f60e33c4ba7eda86c709a8d73ca5e8ab100952 (patch)
tree3181edfa09dc38c5cd52a07bcd3f64dfe05a4439 /src/codecs/miniflac.cpp
parent0baad11b188e7bac6b968017716186d9da0e492f (diff)
parent4509ab8d6e341f7f7d92ac6e9d63ad822fe3441b (diff)
downloadtangara-fw-19f60e33c4ba7eda86c709a8d73ca5e8ab100952.tar.gz
Merge branch 'main' into seek-support
Diffstat (limited to 'src/codecs/miniflac.cpp')
-rw-r--r--src/codecs/miniflac.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/codecs/miniflac.cpp b/src/codecs/miniflac.cpp
index d15410fe..d0b40f96 100644
--- a/src/codecs/miniflac.cpp
+++ b/src/codecs/miniflac.cpp
@@ -30,9 +30,16 @@ MiniFlacDecoder::MiniFlacDecoder()
current_sample_() {
miniflac_init(flac_.get(), MINIFLAC_CONTAINER_UNKNOWN);
for (int i = 0; i < samples_by_channel_.size(); i++) {
- // Full decoded frames too big to fit in internal ram :(
+ uint32_t caps;
+ if (i == 0) {
+ caps = MALLOC_CAP_8BIT | MALLOC_CAP_INTERNAL;
+ } else {
+ // FIXME: We can *almost* fit two channels into internal ram, but we're a
+ // few KiB shy of being able to do it safely.
+ caps = MALLOC_CAP_SPIRAM;
+ }
samples_by_channel_[i] = reinterpret_cast<int32_t*>(
- heap_caps_malloc(kMaxFrameSize * sizeof(int32_t), MALLOC_CAP_SPIRAM));
+ heap_caps_malloc(kMaxFrameSize * sizeof(int32_t), caps));
}
}