summaryrefslogtreecommitdiff
path: root/src/audio/include/audio_decoder.hpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2022-12-03 11:10:06 +1100
committerjacqueline <me@jacqueline.id.au>2022-12-03 11:10:06 +1100
commit16d5d29049c08e21f57f7928ceedf40586a2d294 (patch)
treea4647f951f90b036c58c879ae186fa7e452ed950 /src/audio/include/audio_decoder.hpp
parent00d4883d3a683eaf9cfaefacdd81434e0974ad13 (diff)
downloadtangara-fw-16d5d29049c08e21f57f7928ceedf40586a2d294.tar.gz
Use std::span (backported) and std::byte to make our buffers safer
Diffstat (limited to 'src/audio/include/audio_decoder.hpp')
-rw-r--r--src/audio/include/audio_decoder.hpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/audio/include/audio_decoder.hpp b/src/audio/include/audio_decoder.hpp
index 4d2fd5f3..a32442da 100644
--- a/src/audio/include/audio_decoder.hpp
+++ b/src/audio/include/audio_decoder.hpp
@@ -1,8 +1,10 @@
#pragma once
#include <cstddef>
+#include <cstdint>
#include "ff.h"
+#include "span.hpp"
#include "audio_element.hpp"
#include "codec.hpp"
@@ -23,8 +25,8 @@ class AudioDecoder : public IAudioElement {
auto ProcessStreamInfo(StreamInfo& info)
-> cpp::result<void, AudioProcessingError>;
- auto ProcessChunk(uint8_t* data, std::size_t length)
- -> cpp::result<size_t, AudioProcessingError>;
+ auto ProcessChunk(cpp::span<std::byte>& chunk)
+ -> cpp::result<std::size_t, AudioProcessingError>;
auto ProcessIdle() -> cpp::result<void, AudioProcessingError>;
AudioDecoder(const AudioDecoder&) = delete;
@@ -34,7 +36,8 @@ class AudioDecoder : public IAudioElement {
std::unique_ptr<codecs::ICodec> current_codec_;
std::optional<StreamInfo> stream_info_;
- uint8_t* chunk_buffer_;
+ std::byte* raw_chunk_buffer_;
+ cpp::span<std::byte> chunk_buffer_;
};
} // namespace audio