diff --git a/src/common/impl/time.c b/src/common/impl/time.c index 40bd9b6ff..2927f9784 100644 --- a/src/common/impl/time.c +++ b/src/common/impl/time.c @@ -84,4 +84,12 @@ FFTimeGetAgeResult ffTimeGetAge(uint64_t birthMs, uint64_t nowMs) #ifdef _WIN32 double ffQpcMultiplier; + + __attribute__((constructor)) + static void ffTimeInitQpcMultiplier(void) + { + LARGE_INTEGER frequency; + QueryPerformanceFrequency(&frequency); + ffQpcMultiplier = 1000. / (double) frequency.QuadPart; + } #endif diff --git a/src/common/time.h b/src/common/time.h index de32bb843..d8506d3b8 100644 --- a/src/common/time.h +++ b/src/common/time.h @@ -25,12 +25,6 @@ static inline double ffTimeGetTick(void) //In msec { #ifdef _WIN32 extern double ffQpcMultiplier; - if (ffQpcMultiplier == 0) - { - LARGE_INTEGER frequency; - QueryPerformanceFrequency(&frequency); - ffQpcMultiplier = 1000. / (double) frequency.QuadPart; - } LARGE_INTEGER start; QueryPerformanceCounter(&start); return (double) start.QuadPart * ffQpcMultiplier;