From 2aff1204688eea9925d682cca61b054261759022 Mon Sep 17 00:00:00 2001 From: "dmytro.bogovych" Date: Sun, 10 Mar 2019 20:14:21 +0200 Subject: [PATCH] - support new license & config data API from PVQA/AQuA --- src/engine/agent/Agent_Impl.cpp | 2 +- src/engine/media/MT_SevanaMos.cpp | 35 +++++++++++++++++++++++++++++++ src/engine/media/MT_SevanaMos.h | 4 ++++ 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/engine/agent/Agent_Impl.cpp b/src/engine/agent/Agent_Impl.cpp index 9aedc36a..f7fd2bcd 100644 --- a/src/engine/agent/Agent_Impl.cpp +++ b/src/engine/agent/Agent_Impl.cpp @@ -550,7 +550,7 @@ void AgentImpl::processGetMediaStats(Json::Value& request, Json::Value& answer) } MT::PSevanaAqua sa = mAquaMap[sessionIter->first]; MT::SevanaAqua::AudioBuffer test(mAquaIncoming.data(), mAquaIncoming.size()), - reference; + reference(referenceAudio.data(), referenceAudio.size()); test.mRate = AUDIO_SAMPLERATE; reference.mRate = AUDIO_SAMPLERATE; test.mChannels = AUDIO_CHANNELS; reference.mChannels = AUDIO_CHANNELS; diff --git a/src/engine/media/MT_SevanaMos.cpp b/src/engine/media/MT_SevanaMos.cpp index d1bf2f5d..03dc1536 100644 --- a/src/engine/media/MT_SevanaMos.cpp +++ b/src/engine/media/MT_SevanaMos.cpp @@ -184,6 +184,36 @@ bool SevanaPVQA::initializeLibrary(const std::string& pathToLicenseFile, const s return true; } +bool SevanaPVQA::initializeLibraryWithData(const void* license_buffer, size_t license_len, + const void* config_buffer, size_t config_len) +{ + mPvqaLoaded = false; + + ICELogInfo(<< "Sevana PVQA is about to be initialized via byte buffers."); + + // Initialize PVQA library + if (!mLibraryConfiguration) + { + mInstanceCounter = 0; + mLibraryErrorCode = PVQA_InitLibWithLicData(license_buffer, license_len); + if (mLibraryErrorCode) + { + ICELogError(<< "Problem when initializing PVQA library. Error code: " << mLibraryErrorCode); + return false; + } + + mLibraryConfiguration = PVQA_LoadCFGData(config_buffer, config_len, &mLibraryErrorCode); + if (!mLibraryConfiguration) + { + PVQA_ReleaseLib(); + ICELogError(<< "Problem with PVQA configuration file."); + return false; + } + mPvqaLoaded = true; + } + return true; +} + bool SevanaPVQA::isInitialized() { return mPvqaLoaded; @@ -573,6 +603,11 @@ int SevanaAqua::initializeLibrary(const std::string& pathToLicenseFile) } +int SevanaAqua::initializeLibrary(const void* buffer, size_t len) +{ + return SSA_InitLibWithData(buffer, len); +} + void SevanaAqua::releaseLibrary() { SSA_ReleaseLib(); diff --git a/src/engine/media/MT_SevanaMos.h b/src/engine/media/MT_SevanaMos.h index d03eaff4..155510bf 100644 --- a/src/engine/media/MT_SevanaMos.h +++ b/src/engine/media/MT_SevanaMos.h @@ -77,6 +77,8 @@ public: static void setupAndroidEnvironment(void* environment, void* appcontext); #endif static bool initializeLibrary(const std::string& pathToLicenseFile, const std::string& pathToConfigFile); + static bool initializeLibraryWithData(const void* license_buffer, size_t license_len, + const void* config_buffer, size_t config_len); static bool isInitialized(); static int getLibraryError(); @@ -144,6 +146,8 @@ protected: public: // Returns 0 (zero) on successful initialization, otherwise it is error code static int initializeLibrary(const std::string& pathToLicenseFile); + static int initializeLibrary(const void* buffer, size_t len); + static void releaseLibrary(); static std::string getVersion();