Wake up main thread immediately after new frame is pushed

This commit is contained in:
Cameron Gutman
2019-01-21 18:57:14 -08:00
parent 1f972b1828
commit aab7191a44
5 changed files with 70 additions and 11 deletions

View File

@@ -1,6 +1,7 @@
#include "session.h"
#include "settings/streamingpreferences.h"
#include "streaming/streamutils.h"
#include "streaming/sdlhelper.h"
#include <Limelight.h>
#include <SDL.h>
@@ -981,14 +982,8 @@ void Session::exec(int displayOriginX, int displayOriginY)
// because we want to suspend all Qt processing until the stream is over.
SDL_Event event;
for (;;) {
// We explicitly use SDL_PollEvent() and SDL_Delay() because
// SDL_WaitEvent() has an internal SDL_Delay(10) inside which
// blocks this thread too long for high polling rate mice and high
// refresh rate displays.
if (!SDL_PollEvent(&event)) {
SDL_Delay(1);
continue;
}
SDLHelper::waitEvent(&event);
switch (event.type) {
case SDL_QUIT:
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,