# define VLC_THREAD_PRIORITY_HIGHEST 15
#elif defined(LIBVLC_USE_PTHREAD)
-# define VLC_THREAD_PRIORITY_LOW 0
-# define VLC_THREAD_PRIORITY_INPUT 20
-# define VLC_THREAD_PRIORITY_AUDIO 10
-# define VLC_THREAD_PRIORITY_VIDEO 0
-# define VLC_THREAD_PRIORITY_OUTPUT 30
-# define VLC_THREAD_PRIORITY_HIGHEST 40
+# define VLC_THREAD_PRIORITY_LOW 0
+# define VLC_THREAD_PRIORITY_INPUT 10
+# define VLC_THREAD_PRIORITY_AUDIO 5
+# define VLC_THREAD_PRIORITY_VIDEO 0
+# define VLC_THREAD_PRIORITY_OUTPUT 15
+# define VLC_THREAD_PRIORITY_HIGHEST 20
#elif defined(WIN32) || defined(UNDER_CE)
/* Define different priorities for WinNT/2K/XP and Win9x/Me */
static volatile unsigned i_initializations = 0;
#if defined( LIBVLC_USE_PTHREAD )
+# include <sched.h>
+
static pthread_mutex_t once_mutex = PTHREAD_MUTEX_INITIALIZER;
#endif
pthread_attr_setschedpolicy (&attr, SCHED_OTHER);
else
{
- struct sched_param param = { .sched_priority = +i_priority, };
- pthread_attr_setschedpolicy (&attr, SCHED_OTHER);
+ struct sched_param param = { .sched_priority = i_priority, };
+
+ param.sched_priority += sched_get_priority_min (SCHED_RR);
+ pthread_attr_setschedpolicy (&attr, SCHED_RR);
pthread_attr_setschedparam (&attr, ¶m);
}
}