From a2c1dfbabddc2b4abaf8bf27c9ed9d1b99594859 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 15 Jun 2023 10:33:46 +1000 Subject: Add vorbis and flac decoders, flesh out codec interface vorbis doesn't quite work yet, not sure why. will pick it up again later. --- src/codecs/include/stbvorbis.hpp | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/codecs/include/stbvorbis.hpp (limited to 'src/codecs/include/stbvorbis.hpp') diff --git a/src/codecs/include/stbvorbis.hpp b/src/codecs/include/stbvorbis.hpp new file mode 100644 index 00000000..045e264e --- /dev/null +++ b/src/codecs/include/stbvorbis.hpp @@ -0,0 +1,42 @@ +/* + * Copyright 2023 jacqueline + * + * SPDX-License-Identifier: GPL-3.0-only + */ + +#pragma once + +#include +#include +#include +#include +#include +#include + +#include "stb_vorbis.h" + +#include "codec.hpp" + +namespace codecs { + +class StbVorbisDecoder : public ICodec { + public: + StbVorbisDecoder(); + ~StbVorbisDecoder(); + + auto BeginStream(cpp::span) -> Result override; + auto ContinueStream(cpp::span, cpp::span) + -> Result override; + auto SeekStream(cpp::span input, std::size_t target_sample) + -> Result override; + + private: + stb_vorbis* vorbis_; + + int current_sample_; + int num_channels_; + int num_samples_; + float** samples_array_; +}; + +} // namespace codecs -- cgit v1.2.3