GstEnginePipeline: Increase thread priority
This commit is contained in:
@@ -102,12 +102,12 @@ endif()
|
|||||||
option(USE_ICU "Use ICU" ON)
|
option(USE_ICU "Use ICU" ON)
|
||||||
|
|
||||||
find_package(PkgConfig REQUIRED)
|
find_package(PkgConfig REQUIRED)
|
||||||
find_package(Boost REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
find_package(Threads)
|
|
||||||
find_package(Backtrace)
|
find_package(Backtrace)
|
||||||
if(Backtrace_FOUND)
|
if(Backtrace_FOUND)
|
||||||
set(HAVE_BACKTRACE ON)
|
set(HAVE_BACKTRACE ON)
|
||||||
endif()
|
endif()
|
||||||
|
find_package(Boost REQUIRED)
|
||||||
if(USE_ICU)
|
if(USE_ICU)
|
||||||
find_package(ICU COMPONENTS uc i18n REQUIRED)
|
find_package(ICU COMPONENTS uc i18n REQUIRED)
|
||||||
if(ICU_FOUND)
|
if(ICU_FOUND)
|
||||||
|
|||||||
@@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
#include <QtGlobal>
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
@@ -30,7 +32,13 @@
|
|||||||
#include <gst/gst.h>
|
#include <gst/gst.h>
|
||||||
#include <gst/audio/audio.h>
|
#include <gst/audio/audio.h>
|
||||||
|
|
||||||
#include <QtGlobal>
|
#ifdef Q_OS_UNIX
|
||||||
|
# include <pthread.h>
|
||||||
|
#endif
|
||||||
|
#ifdef Q_OS_WIN32
|
||||||
|
# include <windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
#include <QtConcurrent>
|
#include <QtConcurrent>
|
||||||
@@ -1288,16 +1296,17 @@ void GstEnginePipeline::TaskEnterCallback(GstTask *task, GThread *thread, gpoint
|
|||||||
Q_UNUSED(thread)
|
Q_UNUSED(thread)
|
||||||
Q_UNUSED(self)
|
Q_UNUSED(self)
|
||||||
|
|
||||||
// Bump the priority of the thread only on macOS
|
#ifdef Q_OS_UNIX
|
||||||
|
sched_param param{};
|
||||||
#ifdef Q_OS_MACOS
|
|
||||||
sched_param param;
|
|
||||||
memset(¶m, 0, sizeof(param));
|
memset(¶m, 0, sizeof(param));
|
||||||
|
param.sched_priority = 40;
|
||||||
param.sched_priority = 99;
|
|
||||||
pthread_setschedparam(pthread_self(), SCHED_RR, ¶m);
|
pthread_setschedparam(pthread_self(), SCHED_RR, ¶m);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN32
|
||||||
|
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_HIGHEST);
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GstEnginePipeline::ElementMessageReceived(GstMessage *msg) {
|
void GstEnginePipeline::ElementMessageReceived(GstMessage *msg) {
|
||||||
|
|||||||
Reference in New Issue
Block a user