ref: b2cf56c618cd849ee54f9df2005ad2507f20d982
parent: 9583ac4d52a2bfff676692efb64d54048d0d7994
author: Martin Storsjö <[email protected]>
date: Tue Jun 10 10:34:30 EDT 2014
Set a log context in the decoder
--- a/codec/decoder/core/inc/decoder.h
+++ b/codec/decoder/core/inc/decoder.h
@@ -68,7 +68,7 @@
* \note N/A
*************************************************************************************
*/
-int32_t WelsInitDecoder (PWelsDecoderContext pCtx);
+int32_t WelsInitDecoder (PWelsDecoderContext pCtx, SLogContext* pLogCtx);
/*!
*************************************************************************************
--- a/codec/decoder/core/src/decoder.cpp
+++ b/codec/decoder/core/src/decoder.cpp
@@ -127,9 +127,10 @@
/*
* fill data fields in default for decoder context
*/
-void WelsDecoderDefaults (PWelsDecoderContext pCtx) {
+void WelsDecoderDefaults (PWelsDecoderContext pCtx, SLogContext* pLogCtx) {
int32_t iCpuCores = 1;
memset (pCtx, 0, sizeof (SWelsDecoderContext)); // fill zero first
+ pCtx->sLogCtx = *pLogCtx;
pCtx->pArgDec = NULL;
@@ -350,13 +351,13 @@
* \note N/A
*************************************************************************************
*/
-int32_t WelsInitDecoder (PWelsDecoderContext pCtx) {
+int32_t WelsInitDecoder (PWelsDecoderContext pCtx, SLogContext* pLogCtx) {
if (pCtx == NULL) {
return ERR_INFO_INVALID_PTR;
}
// default
- WelsDecoderDefaults (pCtx);
+ WelsDecoderDefaults (pCtx, pLogCtx);
// open decoder
WelsOpenDecoder (pCtx);
--- a/codec/decoder/plus/src/welsDecoderExt.cpp
+++ b/codec/decoder/plus/src/welsDecoderExt.cpp
@@ -104,10 +104,10 @@
if (m_pWelsTrace != NULL) {
m_pWelsTrace->SetTraceLevel (WELS_LOG_ERROR);
WelsSetLogCallback (welsCodecTrace::CODEC_TRACE);
+
+ WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "CWelsDecoder::CWelsDecoder() entry");
}
- WelsLog (NULL, WELS_LOG_INFO, "CWelsDecoder::CWelsDecoder() entry");
-
#ifdef OUTPUT_BIT_STREAM
SWelsTime sCurTime;
@@ -161,7 +161,9 @@
* return: none
***************************************************************************/
CWelsDecoder::~CWelsDecoder() {
- WelsLog (NULL, WELS_LOG_INFO, "CWelsDecoder::~CWelsDecoder()");
+ if (m_pWelsTrace != NULL) {
+ WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "CWelsDecoder::~CWelsDecoder()");
+ }
UninitDecoder();
@@ -183,8 +185,12 @@
}
long CWelsDecoder::Initialize (const SDecodingParam* pParam) {
+ if (m_pWelsTrace == NULL) {
+ return cmMallocMemeError;
+ }
+
if (pParam == NULL) {
- WelsLog (NULL, WELS_LOG_INFO, "CWelsDecoder::Initialize(), invalid input argument.");
+ WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "CWelsDecoder::Initialize(), invalid input argument.");
return cmInitParaError;
}
@@ -206,7 +212,7 @@
if (NULL == m_pDecContext)
return;
- WelsLog (NULL, WELS_LOG_INFO, "into CWelsDecoder::uninit_decoder()..");
+ WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "into CWelsDecoder::uninit_decoder()..");
WelsEndDecoder (m_pDecContext);
@@ -216,19 +222,19 @@
m_pDecContext = NULL;
}
- WelsLog (NULL , WELS_LOG_INFO, "left CWelsDecoder::uninit_decoder()..");
+ WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "left CWelsDecoder::uninit_decoder()..");
}
// the return value of this function is not suitable, it need report failure info to upper layer.
void CWelsDecoder::InitDecoder (void) {
- WelsLog (NULL, WELS_LOG_INFO, "CWelsDecoder::init_decoder()..");
+ WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "CWelsDecoder::init_decoder()..");
m_pDecContext = (PWelsDecoderContext)WelsMalloc (sizeof (SWelsDecoderContext), "m_pDecContext");
- WelsInitDecoder (m_pDecContext);
+ WelsInitDecoder (m_pDecContext, &m_pWelsTrace->m_sLogCtx);
- WelsLog (NULL, WELS_LOG_INFO, "CWelsDecoder::init_decoder().. left");
+ WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "CWelsDecoder::init_decoder().. left");
}
/*
@@ -392,7 +398,7 @@
}
}
- WelsLog (NULL, WELS_LOG_INFO, "decode failed, failure type:%d \n",
+ WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "decode failed, failure type:%d \n",
m_pDecContext->iErrorCode);
return (DECODING_STATE)m_pDecContext->iErrorCode;
}