diff options
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 |
