diff --git a/linphone/mediastreamer2/src/msticker.c b/linphone/mediastreamer2/src/msticker.c index 9eaa25431742daedfb4ba1abc9b9aa658975b458..3c4ced2cd786c1a1b2e374943a42932050845f13 100644 --- a/linphone/mediastreamer2/src/msticker.c +++ b/linphone/mediastreamer2/src/msticker.c @@ -265,6 +265,8 @@ static void sleepMs(int ms){ static int set_high_prio(void){ int precision=2; + int result=0; + struct sched_param param; #ifdef WIN32 MMRESULT mm; TIMECAPS ptc; @@ -286,6 +288,19 @@ static int set_high_prio(void){ if(!SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_HIGHEST)){ ms_warning("SetThreadPriority() failed (%d)\n", GetLastError()); } +#else + memset(¶m,0,sizeof(param)); +#ifdef TARGET_OS_MAC + int policy=SCHED_RR; +#else + int policy=SCHED_OTHER; +#endif + param.sched_priority=sched_get_priority_max(policy); + if(result=pthread_setschedparam(pthread_self(),policy, ¶m)) { + ms_warning("Set sched param failed with error code(%i)\n",result); + } else { + ms_message("MS ticker priority set to max"); + } #endif return precision; }