From 9b1b401dcb986a26d10bcc898be670653acc2d3f Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 26 Jul 2023 17:11:23 +1000 Subject: big cleanup of new encoder + stream buffer types --- src/audio/include/audio_task.hpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/audio/include/audio_task.hpp') diff --git a/src/audio/include/audio_task.hpp b/src/audio/include/audio_task.hpp index f80c8878..ae4c2221 100644 --- a/src/audio/include/audio_task.hpp +++ b/src/audio/include/audio_task.hpp @@ -14,6 +14,7 @@ #include "audio_source.hpp" #include "codec.hpp" #include "pipeline.hpp" +#include "stream_info.hpp" namespace audio { @@ -27,10 +28,13 @@ class Timer { auto AddBytes(std::size_t) -> void; private: + auto bytes_to_samples(uint32_t) -> uint32_t; + StreamInfo::Pcm format_; uint32_t current_seconds_; uint32_t current_sample_in_second_; + uint32_t total_duration_seconds_; }; @@ -43,14 +47,24 @@ class AudioTask { private: AudioTask(IAudioSource* source, IAudioSink* sink); + auto HandleNewStream(const InputStream&) -> bool; + + auto BeginDecoding(InputStream&) -> bool; + auto ContinueDecoding(InputStream&) -> bool; + auto FinishDecoding(InputStream&) -> void; + + auto ForwardPcmStream(StreamInfo::Pcm&, cpp::span) -> bool; + + auto ConfigureSink(const StreamInfo::Pcm&) -> bool; + IAudioSource* source_; IAudioSink* sink_; std::unique_ptr codec_; std::unique_ptr timer_; - bool is_new_stream_; + bool has_begun_decoding_; std::optional current_input_format_; - std::optional current_output_format_; + std::optional current_output_format_; std::byte* sample_buffer_; std::size_t sample_buffer_len_; -- cgit v1.2.3