Showing the changes to codec/decoder/plus/src/welsDecoderExt.cpp (1 of 12 files). Show all
Unified · Split
| @@ -219,11 +219,19 @@ void CWelsDecoder::UninitDecoder (void) { · 218 unmodified lines | ||
| 219 | 219 | if (NULL == m_pDecContext) |
| 220 | 220 | return; |
| 221 | 221 | |
| 222 | − WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "CWelsDecoder::uninit_decoder(), openh264 codec version = %s.", | |
| 222 | + WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "CWelsDecoder::UninitDecoder(), openh264 codec version = %s.", | |
| 223 | 223 | VERSION_NUMBER); |
| 224 | 224 | |
| 225 | 225 | WelsEndDecoder (m_pDecContext); |
| 226 | 226 | |
| 227 | + if (m_pDecContext->pMemAlign != NULL) { | |
| 228 | + WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, | |
| 229 | + "CWelsDecoder::UninitDecoder(), verify memory usage (%d bytes) after free..", | |
| 230 | + m_pDecContext->pMemAlign->WelsGetMemoryUsage()); | |
| 231 | + delete m_pDecContext->pMemAlign; | |
| 232 | + m_pDecContext->pMemAlign = NULL; | |
| 233 | + } | |
| 234 | + | |
| 227 | 235 | if (NULL != m_pDecContext) { |
| 228 | 236 | WelsFree (m_pDecContext, "m_pDecContext"); |
| 229 | 237 | |
| @@ -243,6 +251,9 @@ int32_t CWelsDecoder::InitDecoder (const bool bParseOnly) { · 13 unmodified lines | ||
| 243 | 251 | m_pDecContext = (PWelsDecoderContext)WelsMallocz (sizeof (SWelsDecoderContext), "m_pDecContext"); |
| 244 | 252 | if (NULL == m_pDecContext) |
| 245 | 253 | return cmMallocMemeError; |
| 254 | + int32_t iCacheLineSize = 16; // on chip cache line size in byte | |
| 255 | + m_pDecContext->pMemAlign = new CMemoryAlign (iCacheLineSize); | |
| 256 | + WELS_VERIFY_RETURN_PROC_IF (1, (NULL == m_pDecContext->pMemAlign), UninitDecoder()) | |
| 246 | 257 | |
| 247 | 258 | return WelsInitDecoder (m_pDecContext, bParseOnly, &m_pWelsTrace->m_sLogCtx); |
| 248 | 259 | } |
| @@ -409,10 +420,10 @@ DECODING_STATE CWelsDecoder::DecodeFrameNoDelay (const unsigned char* kpSrc, · 160 unmodified lines | ||
| 409 | 420 | //ppTmpDst[2] = ppDst[2]; |
| 410 | 421 | iRet |= DecodeFrame2 (NULL, 0, ppDst, pDstInfo); |
| 411 | 422 | //if ((pDstInfo->iBufferStatus == 0) && (sTmpBufferInfo.iBufferStatus == 1)) { |
| 412 | − //memcpy (pDstInfo, &sTmpBufferInfo, sizeof (SBufferInfo)); | |
| 413 | − //ppDst[0] = ppTmpDst[0]; | |
| 414 | − //ppDst[1] = ppTmpDst[1]; | |
| 415 | − //ppDst[2] = ppTmpDst[2]; | |
| 423 | + //memcpy (pDstInfo, &sTmpBufferInfo, sizeof (SBufferInfo)); | |
| 424 | + //ppDst[0] = ppTmpDst[0]; | |
| 425 | + //ppDst[1] = ppTmpDst[1]; | |
| 426 | + //ppDst[2] = ppTmpDst[2]; | |
| 416 | 427 | //} |
| 417 | 428 | |
| 418 | 429 | return (DECODING_STATE) iRet; |