diff --git a/src/engine/agent/Agent_Impl.cpp b/src/engine/agent/Agent_Impl.cpp index 40355552..e995b8af 100644 --- a/src/engine/agent/Agent_Impl.cpp +++ b/src/engine/agent/Agent_Impl.cpp @@ -578,6 +578,9 @@ void AgentImpl::processGetMediaStats(Json::Value& request, Json::Value& answer) referenceAudio.appendBuffer(buffer, wasRead); } while (wasRead == 1024); } + else { + ICELogCritical(<< "Failed to read AQuA reference audio, error code: " << reader.lastError()); + } sevana::aqua::audio_buffer test(mAquaIncoming.data(), mAquaIncoming.size()), reference(referenceAudio.data(), referenceAudio.size()); diff --git a/src/engine/audio/Audio_WavFile.cpp b/src/engine/audio/Audio_WavFile.cpp index ec4eda0e..71fb22be 100644 --- a/src/engine/audio/Audio_WavFile.cpp +++ b/src/engine/audio/Audio_WavFile.cpp @@ -39,7 +39,7 @@ using namespace Audio; // ---------------------- WavFileReader ------------------------- WavFileReader::WavFileReader() -:mHandle(nullptr), mRate(0) +:mHandle(nullptr), mRate(0), mLastError(0) { mDataOffset = 0; } @@ -84,7 +84,16 @@ bool WavFileReader::open(const std::tstring& filename) mHandle = fopen(StringHelper::makeUtf8(filename).c_str(), "rb"); #endif if (NULL == mHandle) + { +#if defined(TARGET_ANDROID) || defined(TARGET_LINUX) || defined(TARGET_OSX) + mLastError = errno; +#endif +#if defined(TARGET_WIN) + mLastError = GetLastError(); +#endif return false; + } + mLastError = 0; // Read the .WAV header char riff[4]; @@ -157,7 +166,8 @@ bool WavFileReader::open(const std::tstring& filename) } catch(...) { - fclose(mHandle); mHandle = NULL; + fclose(mHandle); mHandle = nullptr; + mLastError = static_cast(-1); } return isOpened(); } @@ -240,6 +250,10 @@ unsigned WavFileReader::size() const return mDataLength; } +unsigned WavFileReader::lastError() const +{ + return mLastError; +} // ------------------------- WavFileWriter ------------------------- #define LOG_SUBSYTEM "WavFileWriter" diff --git a/src/engine/audio/Audio_WavFile.h b/src/engine/audio/Audio_WavFile.h index e2f882d2..35ed71f1 100644 --- a/src/engine/audio/Audio_WavFile.h +++ b/src/engine/audio/Audio_WavFile.h @@ -29,6 +29,8 @@ namespace Audio unsigned mDataOffset; unsigned mDataLength; Resampler mResampler; + unsigned mLastError; + std::string readChunk(); public: WavFileReader(); @@ -47,6 +49,8 @@ namespace Audio unsigned read(short* buffer, unsigned samples); std::tstring filename() const; unsigned size() const; + + unsigned lastError() const; }; typedef std::shared_ptr PWavFileReader;