- logging extended for AQuA analyzer invocation
This commit is contained in:
parent
3ed35e00d2
commit
95f61f9f9b
|
|
@ -552,37 +552,45 @@ void AgentImpl::processGetMediaStats(Json::Value& request, Json::Value& answer)
|
||||||
#if defined(USE_AQUA_LIBRARY)
|
#if defined(USE_AQUA_LIBRARY)
|
||||||
if (includeAqua)
|
if (includeAqua)
|
||||||
{
|
{
|
||||||
|
ICELogInfo(<< "Running AQuA analyzer.");
|
||||||
ByteBuffer referenceAudio;
|
ByteBuffer referenceAudio;
|
||||||
// Read AQuA reference audio from file if available
|
// Read AQuA reference audio from file if available
|
||||||
if (!aquaReference.empty())
|
if (aquaReference.empty())
|
||||||
{
|
{
|
||||||
|
ICELogCritical(<< "AQuA reference audio file is not set, skipping analyzing.");
|
||||||
|
}
|
||||||
|
else {
|
||||||
Audio::WavFileReader reader;
|
Audio::WavFileReader reader;
|
||||||
reader.open(StringHelper::makeTstring(aquaReference));
|
reader.open(StringHelper::makeTstring(aquaReference));
|
||||||
|
|
||||||
if (reader.isOpened())
|
if (reader.isOpened()) {
|
||||||
{
|
|
||||||
char buffer[1024];
|
char buffer[1024];
|
||||||
int wasRead = 0;
|
int wasRead = 0;
|
||||||
do
|
do {
|
||||||
{
|
|
||||||
wasRead = reader.read(buffer, 1024);
|
wasRead = reader.read(buffer, 1024);
|
||||||
if (wasRead > 0)
|
if (wasRead > 0)
|
||||||
referenceAudio.appendBuffer(buffer, wasRead);
|
referenceAudio.appendBuffer(buffer, wasRead);
|
||||||
}
|
} while (wasRead == 1024);
|
||||||
while (wasRead == 1024);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto sa = mAquaMap[sessionIter->first];
|
||||||
|
sevana::aqua::audio_buffer test(mAquaIncoming.data(), mAquaIncoming.size()),
|
||||||
|
reference(referenceAudio.data(), referenceAudio.size());
|
||||||
|
test.mRate = AUDIO_SAMPLERATE;
|
||||||
|
reference.mRate = AUDIO_SAMPLERATE;
|
||||||
|
test.mChannels = AUDIO_CHANNELS;
|
||||||
|
reference.mChannels = AUDIO_CHANNELS;
|
||||||
|
|
||||||
|
auto r = sa->compare(reference, test);
|
||||||
|
std::cout << r.mFaultsText << std::endl;
|
||||||
|
answer["aqua_mos"] = r.mMos;
|
||||||
|
answer["aqua_report"] = r.mFaultsText;
|
||||||
|
|
||||||
|
// Remove test audio
|
||||||
|
mAquaIncoming.clear();
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
auto sa = mAquaMap[sessionIter->first];
|
ICELogInfo(<< "AQuA analyzer is not configured to run.");
|
||||||
sevana::aqua::audio_buffer test(mAquaIncoming.data(), mAquaIncoming.size()),
|
|
||||||
reference(referenceAudio.data(), referenceAudio.size());
|
|
||||||
test.mRate = AUDIO_SAMPLERATE; reference.mRate = AUDIO_SAMPLERATE;
|
|
||||||
test.mChannels = AUDIO_CHANNELS; reference.mChannels = AUDIO_CHANNELS;
|
|
||||||
|
|
||||||
auto r = sa->compare(reference, test);
|
|
||||||
std::cout << r.mFaultsText << std::endl;
|
|
||||||
answer["aqua_mos"] = r.mMos;
|
|
||||||
answer["aqua_report"] = r.mFaultsText;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue