/* * Copyright (c) 2025, Gregory Bertilson * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include namespace Media { class AudioDecoder { public: virtual ~AudioDecoder() { } virtual DecoderErrorOr receive_coded_data(AK::Duration timestamp, ReadonlyBytes coded_data) = 0; // Writes all buffered audio samples to the provided block. virtual DecoderErrorOr write_next_block(AudioBlock&) = 0; virtual void flush() = 0; }; }