From 8be354429560e20807e6104decb1393fef9c0578 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Mon, 2 Oct 2023 17:25:48 +0300 Subject: [PATCH] Fix creating audio track from util::blob --- libs/audio/include/psemek/audio/track.hpp | 2 ++ libs/audio/source/track_mp3.cpp | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/libs/audio/include/psemek/audio/track.hpp b/libs/audio/include/psemek/audio/track.hpp index d371f2b1..fcaa0720 100644 --- a/libs/audio/include/psemek/audio/track.hpp +++ b/libs/audio/include/psemek/audio/track.hpp @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -26,6 +27,7 @@ namespace psemek::audio track_ptr load_wav(std::vector const & data); track_ptr load_mp3(util::span data); + track_ptr load_mp3(util::blob data); track_ptr load_mp3(std::vector data); } diff --git a/libs/audio/source/track_mp3.cpp b/libs/audio/source/track_mp3.cpp index da458094..3a2bbea6 100644 --- a/libs/audio/source/track_mp3.cpp +++ b/libs/audio/source/track_mp3.cpp @@ -16,6 +16,7 @@ namespace psemek::audio struct mp3_data_holder { std::vector storage; + util::blob blob_storage; util::span data; mp3_data_holder(std::vector storage) @@ -23,6 +24,11 @@ namespace psemek::audio , data(this->storage) {} + mp3_data_holder(util::blob data) + : blob_storage(data) + , data(blob_storage.span()) + {} + mp3_data_holder(util::span data) : data(data) {} @@ -135,6 +141,11 @@ namespace psemek::audio return std::make_shared(std::make_shared(data)); } + track_ptr load_mp3(util::blob data) + { + return std::make_shared(std::make_shared(std::move(data))); + } + track_ptr load_mp3(std::vector data) { return std::make_shared(std::make_shared(std::move(data)));