shithub: openh264

Download patch

ref: e5ee43173d25a4ffbe92d22d23822018266853b0
parent: 9319f879e49b7b2fbc8812aadacfbb11a160406d
parent: bb5b3978bf11d23a5e611644006227bd651a9d0b
author: Ethan Hugg <ethanhugg@gmail.com>
date: Thu Feb 27 05:51:17 EST 2014

Merge pull request #361 from mstorsjo/get-core-count

Use higher level APIs for getting the number of cores if WelsCPUFeatureDetect didn't report anything

--- a/codec/common/cpu.cpp
+++ b/codec/common/cpu.cpp
@@ -137,7 +137,7 @@
     if( uiCPU & WELS_CPU_HTT){
       *pNumberOfLogicProcessors = (uiFeatureB & 0x00ff0000) >> 16; // feature bits: 23-16 on returned EBX
     } else {
-      *pNumberOfLogicProcessors = 1;
+      *pNumberOfLogicProcessors = 0;
     }
     if( !strcmp((const char*)chVendorName, CPU_Vendor_INTEL) ){
       if( uiMaxCpuidLevel >= 4 ){
--- a/codec/encoder/core/src/encoder_ext.cpp
+++ b/codec/encoder/core/src/encoder_ext.cpp
@@ -1948,7 +1948,7 @@
   int32_t	iRet					= 0;
   uint32_t uiCpuFeatureFlags		= 0;	// CPU features
   int32_t uiCpuCores				=
-    1;	// number of logic processors on physical processor package, one logic processor means HTT not supported
+    0;	// number of logic processors on physical processor package, zero logic processors means HTT not supported
   int32_t iCacheLineSize			= 16;	// on chip cache line size in byte
   int16_t iSliceNum				= 1;	// number of slices used
 
@@ -1986,8 +1986,8 @@
   if (pCodingParam->iMultipleThreadIdc > 0)
     uiCpuCores = pCodingParam->iMultipleThreadIdc;
   else {
-    if (uiCpuFeatureFlags ==
-        0)	// cpuid not supported, use high level system API as followed to detect number of pysical/logic processor
+    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
       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