/*! * \brief make sure synchonozization picture resolution (get from slice header) among different parts (i.e, memory related and so on) * over decoder internal * ( MB coordinate and parts of data within decoder context structure ) * \param pCtx Wels decoder context * \param iMbWidth MB width * \pram iMbHeight MB height * \return 0 - successful; none 0 - something wrong */ int32_t SyncPictureResolutionExt (PWelsDecoderContext pCtx, const int32_t kiMbWidth, const int32_t kiMbHeight) { int32_t iErr = ERR_NONE; const int32_t kiPicWidth = kiMbWidth << 4; const int32_t kiPicHeight = kiMbHeight << 4; bool bReallocFlag = false; iErr = WelsRequestMem (pCtx, kiMbWidth, kiMbHeight, bReallocFlag); // common memory used if (ERR_NONE != iErr) { WelsLog (& (pCtx->sLogCtx), WELS_LOG_WARNING, "SyncPictureResolutionExt()::WelsRequestMem--buffer allocated failure."); pCtx->iErrorCode = dsOutOfMemory; return iErr; } iErr = InitialDqLayersContext (pCtx, kiPicWidth, kiPicHeight); if (ERR_NONE != iErr) { WelsLog (& (pCtx->sLogCtx), WELS_LOG_WARNING, "SyncPictureResolutionExt()::InitialDqLayersContext--buffer allocated failure."); pCtx->iErrorCode = dsOutOfMemory; } #if defined(MEMORY_MONITOR) if (bReallocFlag) { WelsLog (& (pCtx->sLogCtx), WELS_LOG_INFO, "SyncPictureResolutionExt(), overall memory usage: %llu bytes", static_cast<unsigned long long> (sizeof (SWelsDecoderContext) + pCtx->pMemAlign->WelsGetMemoryUsage())); } #endif//MEMORY_MONITOR return iErr; }
/*! * \brief make sure synchonozization picture resolution (get from slice header) among different parts (i.e, memory related and so on) * over decoder internal * ( MB coordinate and parts of data within decoder context structure ) * \param pCtx Wels decoder context * \param iMbWidth MB width * \pram iMbHeight MB height * \return 0 - successful; none 0 - something wrong */ int32_t SyncPictureResolutionExt (PWelsDecoderContext pCtx, const int32_t kiMbWidth, const int32_t kiMbHeight) { int32_t iErr = ERR_NONE; const int32_t kiPicWidth = kiMbWidth << 4; const int32_t kiPicHeight = kiMbHeight << 4; iErr = WelsRequestMem (pCtx, kiMbWidth, kiMbHeight); // common memory used if (ERR_NONE != iErr) { WelsLog (pCtx, WELS_LOG_WARNING, "SyncPictureResolutionExt()::WelsRequestMem--buffer allocated failure.\n"); pCtx->iErrorCode = dsOutOfMemory; return iErr; } iErr = InitialDqLayersContext (pCtx, kiPicWidth, kiPicHeight); if (ERR_NONE != iErr) { WelsLog (pCtx, WELS_LOG_WARNING, "SyncPictureResolutionExt()::InitialDqLayersContext--buffer allocated failure.\n"); pCtx->iErrorCode = dsOutOfMemory; } return iErr; }