diff --git a/codec/encoder/core/inc/param_svc.h b/codec/encoder/core/inc/param_svc.h index 6949abfe..409e7028 100644 --- a/codec/encoder/core/inc/param_svc.h +++ b/codec/encoder/core/inc/param_svc.h @@ -292,9 +292,6 @@ int32_t ParamTranscode (const SEncParamExt& pCodingParam) { /* Deblocking loop filter */ iLoopFilterDisableIdc = pCodingParam.iLoopFilterDisableIdc; // 0: on, 1: off, 2: on except for slice boundaries, - if (iLoopFilterDisableIdc == 0 - && iMultipleThreadIdc != 1) // Loop filter requested to be enabled, with threading enabled - iLoopFilterDisableIdc = 2; // Disable loop filter on slice boundaries since that's not allowed with multithreading iLoopFilterAlphaC0Offset = pCodingParam.iLoopFilterAlphaC0Offset; // AlphaOffset: valid range [-6, 6], default 0 iLoopFilterBetaOffset = pCodingParam.iLoopFilterBetaOffset; // BetaOffset: valid range [-6, 6], default 0 diff --git a/codec/encoder/core/src/encoder_ext.cpp b/codec/encoder/core/src/encoder_ext.cpp index c2d347db..74e98992 100644 --- a/codec/encoder/core/src/encoder_ext.cpp +++ b/codec/encoder/core/src/encoder_ext.cpp @@ -1860,7 +1860,9 @@ int32_t InitSliceSettings (SLogContext* pLogCtx, SWelsSvcCodingParam* pCodingPar pCodingParam->iCountThreadsNum = WELS_MIN (kiCpuCores, iMaxSliceCount); pCodingParam->iMultipleThreadIdc = pCodingParam->iCountThreadsNum; - + if (pCodingParam->iLoopFilterDisableIdc == 0 + && pCodingParam->iMultipleThreadIdc != 1) // Loop filter requested to be enabled, with threading enabled + pCodingParam->iLoopFilterDisableIdc = 2; // Disable loop filter on slice boundaries since that's not allowed with multithreading *pMaxSliceCount = iMaxSliceCount; return 0; @@ -1959,14 +1961,12 @@ int32_t WelsInitEncoderExt (sWelsEncCtx** ppCtx, SWelsSvcCodingParam* pCodingPar iCacheLineSize = 16; // 16 bytes aligned in default #endif//X86_ASM -#ifndef WELS_TESTBED - #if defined(DYNAMIC_DETECT_CPU_CORES) if (pCodingParam->iMultipleThreadIdc > 0) uiCpuCores = pCodingParam->iMultipleThreadIdc; else { if (uiCpuCores == - 0) // cpuid not supported or doesn't expose the number of cores, use high level system API as followed to detect number of pysical/logic processor + 0) // cpuid not supported or doesn't expose the number of cores, use high level system API as followed to detect number of pysical/logic processor uiCpuCores = DynamicDetectCpuCores(); // So far so many cpu cores up to MAX_THREADS_NUM mean for server platforms, // for client application here it is constrained by maximal to MAX_THREADS_NUM @@ -1977,12 +1977,6 @@ int32_t WelsInitEncoderExt (sWelsEncCtx** ppCtx, SWelsSvcCodingParam* pCodingPar } #endif//DYNAMIC_DETECT_CPU_CORES -#else//WELS_TESTBED - - uiCpuCores = pCodingParam->iMultipleThreadIdc; // assigned uiCpuCores from iMultipleThreadIdc from SGE testing - -#endif//WELS_TESTBED - uiCpuCores = WELS_CLIP3 (uiCpuCores, 1, MAX_THREADS_NUM); if (InitSliceSettings (pLogCtx, pCodingParam, uiCpuCores, &iSliceNum)) {