From 175bfc4e3e9f7aa39e084d3f1625347f1d5711ec Mon Sep 17 00:00:00 2001 From: jacqueline Date: Mon, 25 Mar 2024 17:34:41 +1100 Subject: WIP rewrie audio pipeline+fsm guts for more reliability --- src/audio/include/audio_converter.hpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/audio/include/audio_converter.hpp') diff --git a/src/audio/include/audio_converter.hpp b/src/audio/include/audio_converter.hpp index c2ebde60..dcd068b5 100644 --- a/src/audio/include/audio_converter.hpp +++ b/src/audio/include/audio_converter.hpp @@ -6,6 +6,7 @@ #pragma once +#include #include #include @@ -40,6 +41,8 @@ class SampleConverter { auto SetTargetFormat(const IAudioOutput::Format& format) -> void; auto HandleSamples(cpp::span, bool) -> size_t; + auto SendToSink(cpp::span) -> void; + struct Args { IAudioOutput::Format format; size_t samples_available; @@ -59,6 +62,8 @@ class SampleConverter { IAudioOutput::Format source_format_; IAudioOutput::Format target_format_; size_t leftover_bytes_; + + uint32_t samples_sunk_; }; } // namespace audio -- cgit v1.2.3 From 078b77d0f796be3c787f62b9b830512e38d3b076 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Tue, 26 Mar 2024 12:12:42 +1100 Subject: pass stream start/update/end events through the whole pipeline --- src/audio/include/audio_converter.hpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'src/audio/include/audio_converter.hpp') diff --git a/src/audio/include/audio_converter.hpp b/src/audio/include/audio_converter.hpp index dcd068b5..232b5d8e 100644 --- a/src/audio/include/audio_converter.hpp +++ b/src/audio/include/audio_converter.hpp @@ -10,6 +10,7 @@ #include #include +#include "audio_events.hpp" #include "audio_sink.hpp" #include "audio_source.hpp" #include "codec.hpp" @@ -31,20 +32,23 @@ class SampleConverter { auto SetOutput(std::shared_ptr) -> void; - auto ConvertSamples(cpp::span, - const IAudioOutput::Format& format, - bool is_eos) -> void; + auto beginStream(std::shared_ptr) -> void; + auto continueStream(cpp::span) -> void; + auto endStream() -> void; private: auto Main() -> void; - auto SetTargetFormat(const IAudioOutput::Format& format) -> void; - auto HandleSamples(cpp::span, bool) -> size_t; + auto handleBeginStream(std::shared_ptr) -> void; + auto handleContinueStream(size_t samples_available) -> void; + auto handleEndStream() -> void; - auto SendToSink(cpp::span) -> void; + auto handleSamples(cpp::span) -> size_t; + + auto sendToSink(cpp::span) -> void; struct Args { - IAudioOutput::Format format; + std::shared_ptr* track; size_t samples_available; bool is_end_of_stream; }; -- cgit v1.2.3