From 477fa8fedfdd37b8059bb1aaca15565d32eea31d Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sun, 28 Apr 2019 11:01:54 -0700 Subject: [PATCH] Add logging callbacks for SLAudio and SLVideo --- app/streaming/audio/renderers/slaud.cpp | 28 ++++++++++++++++++++++++ app/streaming/audio/renderers/slaud.h | 2 ++ app/streaming/video/slvid.cpp | 29 ++++++++++++++++++++++++- app/streaming/video/slvid.h | 2 ++ 4 files changed, 60 insertions(+), 1 deletion(-) diff --git a/app/streaming/audio/renderers/slaud.cpp b/app/streaming/audio/renderers/slaud.cpp index 146d86d8..b876fcf8 100644 --- a/app/streaming/audio/renderers/slaud.cpp +++ b/app/streaming/audio/renderers/slaud.cpp @@ -6,6 +6,7 @@ SLAudioRenderer::SLAudioRenderer() : m_AudioContext(nullptr), m_AudioStream(nullptr) { + SLAudio_SetLogFunction(SLAudioRenderer::slLogCallback, nullptr); } bool SLAudioRenderer::prepareForPlayback(const OPUS_MULTISTREAM_CONFIGURATION* opusConfig) @@ -56,3 +57,30 @@ bool SLAudioRenderer::submitAudio(short* audioBuffer, int audioSize) return true; } + +void SLAudioRenderer::slLogCallback(void *context, ESLAudioLog logLevel, const char *message) +{ + SDL_LogPriority priority; + + switch (logLevel) + { + case k_ESLAudioLogError: + priority = SDL_LOG_PRIORITY_ERROR; + break; + case k_ESLAudioLogWarning: + priority = SDL_LOG_PRIORITY_WARN; + break; + case k_ESLAudioLogInfo: + priority = SDL_LOG_PRIORITY_INFO; + break; + default: + case k_ESLAudioLogDebug: + priority = SDL_LOG_PRIORITY_DEBUG; + break; + } + + SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, + priority, + "SLAudio: %s", + message); +} diff --git a/app/streaming/audio/renderers/slaud.h b/app/streaming/audio/renderers/slaud.h index 5c4ab9ec..30715950 100644 --- a/app/streaming/audio/renderers/slaud.h +++ b/app/streaming/audio/renderers/slaud.h @@ -15,6 +15,8 @@ public: virtual bool submitAudio(short* audioBuffer, int audioSize); private: + static void slLogCallback(void* context, ESLAudioLog logLevel, const char* message); + CSLAudioContext* m_AudioContext; CSLAudioStream* m_AudioStream; }; diff --git a/app/streaming/video/slvid.cpp b/app/streaming/video/slvid.cpp index f0ce6e2d..69ca3566 100644 --- a/app/streaming/video/slvid.cpp +++ b/app/streaming/video/slvid.cpp @@ -4,7 +4,7 @@ SLVideoDecoder::SLVideoDecoder(bool) : m_VideoContext(nullptr), m_VideoStream(nullptr) { - + SLVideo_SetLogFunction(SLVideoDecoder::slLogCallback, nullptr); } SLVideoDecoder::~SLVideoDecoder() @@ -108,3 +108,30 @@ SLVideoDecoder::submitDecodeUnit(PDECODE_UNIT du) return DR_OK; } + +void SLVideoDecoder::slLogCallback(void *context, ESLVideoLog logLevel, const char *message) +{ + SDL_LogPriority priority; + + switch (logLevel) + { + case k_ESLVideoLogError: + priority = SDL_LOG_PRIORITY_ERROR; + break; + case k_ESLVideoLogWarning: + priority = SDL_LOG_PRIORITY_WARN; + break; + case k_ESLVideoLogInfo: + priority = SDL_LOG_PRIORITY_INFO; + break; + default: + case k_ESLVideoLogDebug: + priority = SDL_LOG_PRIORITY_DEBUG; + break; + } + + SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, + priority, + "SLVideo: %s", + message); +} diff --git a/app/streaming/video/slvid.h b/app/streaming/video/slvid.h index bbe0467d..38490574 100644 --- a/app/streaming/video/slvid.h +++ b/app/streaming/video/slvid.h @@ -18,6 +18,8 @@ public: virtual void renderFrameOnMainThread() {} private: + static void slLogCallback(void* context, ESLVideoLog logLevel, const char* message); + CSLVideoContext* m_VideoContext; CSLVideoStream* m_VideoStream; };