Add logging callbacks for SLAudio and SLVideo

This commit is contained in:
Cameron Gutman 2019-04-28 11:01:54 -07:00
parent f1c7c5f02c
commit 477fa8fedf
4 changed files with 60 additions and 1 deletions

View File

@ -6,6 +6,7 @@ SLAudioRenderer::SLAudioRenderer()
: m_AudioContext(nullptr), : m_AudioContext(nullptr),
m_AudioStream(nullptr) m_AudioStream(nullptr)
{ {
SLAudio_SetLogFunction(SLAudioRenderer::slLogCallback, nullptr);
} }
bool SLAudioRenderer::prepareForPlayback(const OPUS_MULTISTREAM_CONFIGURATION* opusConfig) bool SLAudioRenderer::prepareForPlayback(const OPUS_MULTISTREAM_CONFIGURATION* opusConfig)
@ -56,3 +57,30 @@ bool SLAudioRenderer::submitAudio(short* audioBuffer, int audioSize)
return true; 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);
}

View File

@ -15,6 +15,8 @@ public:
virtual bool submitAudio(short* audioBuffer, int audioSize); virtual bool submitAudio(short* audioBuffer, int audioSize);
private: private:
static void slLogCallback(void* context, ESLAudioLog logLevel, const char* message);
CSLAudioContext* m_AudioContext; CSLAudioContext* m_AudioContext;
CSLAudioStream* m_AudioStream; CSLAudioStream* m_AudioStream;
}; };

View File

@ -4,7 +4,7 @@ SLVideoDecoder::SLVideoDecoder(bool)
: m_VideoContext(nullptr), : m_VideoContext(nullptr),
m_VideoStream(nullptr) m_VideoStream(nullptr)
{ {
SLVideo_SetLogFunction(SLVideoDecoder::slLogCallback, nullptr);
} }
SLVideoDecoder::~SLVideoDecoder() SLVideoDecoder::~SLVideoDecoder()
@ -108,3 +108,30 @@ SLVideoDecoder::submitDecodeUnit(PDECODE_UNIT du)
return DR_OK; 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);
}

View File

@ -18,6 +18,8 @@ public:
virtual void renderFrameOnMainThread() {} virtual void renderFrameOnMainThread() {}
private: private:
static void slLogCallback(void* context, ESLVideoLog logLevel, const char* message);
CSLVideoContext* m_VideoContext; CSLVideoContext* m_VideoContext;
CSLVideoStream* m_VideoStream; CSLVideoStream* m_VideoStream;
}; };