diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-01-26 15:02:57 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-01-26 15:02:57 +1100 |
| commit | f6dcd845fc80da4e3043146e4362258dd8e0c0a1 (patch) | |
| tree | 91410899a83fcc2dfb1eb3ab4837a11e401366fc /src/audio/include/audio_decoder.hpp | |
| parent | e7f926e2c376ccd4f4a4d6f4b104f3c23b0059dc (diff) | |
| download | tangara-fw-f6dcd845fc80da4e3043146e4362258dd8e0c0a1.tar.gz | |
Switch from MessageBuffer to Queue for pipeline comms
Diffstat (limited to 'src/audio/include/audio_decoder.hpp')
| -rw-r--r-- | src/audio/include/audio_decoder.hpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/audio/include/audio_decoder.hpp b/src/audio/include/audio_decoder.hpp index 0a2df76d..a2591d25 100644 --- a/src/audio/include/audio_decoder.hpp +++ b/src/audio/include/audio_decoder.hpp @@ -4,6 +4,7 @@ #include <cstdint> #include <memory> +#include "chunk.hpp" #include "ff.h" #include "span.hpp" @@ -30,11 +31,13 @@ class AudioDecoder : public IAudioElement { return 1024; } + auto HasUnprocessedInput() -> bool override; + auto ProcessStreamInfo(const StreamInfo& info) -> cpp::result<void, AudioProcessingError> override; auto ProcessChunk(const cpp::span<std::byte>& chunk) -> cpp::result<std::size_t, AudioProcessingError> override; - auto ProcessIdle() -> cpp::result<void, AudioProcessingError> override; + auto Process() -> cpp::result<void, AudioProcessingError> override; AudioDecoder(const AudioDecoder&) = delete; AudioDecoder& operator=(const AudioDecoder&) = delete; @@ -42,8 +45,11 @@ class AudioDecoder : public IAudioElement { private: std::unique_ptr<codecs::ICodec> current_codec_; std::optional<StreamInfo> stream_info_; + std::optional<ChunkReader> chunk_reader_; - std::unique_ptr<ChunkWriter> chunk_writer_; + std::size_t chunk_size_; + bool has_samples_to_send_; + bool needs_more_input_; }; } // namespace audio |
