Overhaul platform and decoder/renderer detection

This commit is contained in:
Cameron Gutman
2018-07-21 17:00:09 -07:00
parent c816a6198c
commit eb536c2273
4 changed files with 50 additions and 27 deletions
+1 -1
View File
@@ -127,7 +127,7 @@ int Session::sdlAudioInit(int /* audioConfiguration */,
// pending data count. Get a baseline so we
// can exclude that data.
s_BaselinePendingData = 0;
#ifdef _WIN32
#ifdef Q_OS_WIN32
for (int i = 0; i < 100; i++) {
s_BaselinePendingData = qMax(s_BaselinePendingData, SDL_GetQueuedAudioSize(s_AudioDevice));
SDL_Delay(10);
+2
View File
@@ -82,6 +82,7 @@ bool Session::chooseDecoder(StreamingPreferences::VideoDecoderSelection vds,
SDL_Window* window, int videoFormat, int width, int height,
int frameRate, IVideoDecoder*& chosenDecoder)
{
#ifdef HAVE_FFMPEG
chosenDecoder = new FFmpegVideoDecoder();
if (chosenDecoder->initialize(vds, window, videoFormat, width, height, frameRate)) {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
@@ -94,6 +95,7 @@ bool Session::chooseDecoder(StreamingPreferences::VideoDecoderSelection vds,
delete chosenDecoder;
chosenDecoder = nullptr;
}
#endif
// If we reach this, we didn't initialize any decoders successfully
return false;
+9 -6
View File
@@ -1,13 +1,15 @@
#include <Limelight.h>
#include "ffmpeg.h"
#ifdef _WIN32
#ifdef Q_OS_WIN32
#include "ffmpeg-renderers/dxva2.h"
#endif
#ifdef __APPLE__
#ifdef Q_OS_DARWIN
#include "ffmpeg-renderers/vt.h"
#elif defined Q_OS_UNIX
#endif
#ifdef HAVE_LIBVA
#include "ffmpeg-renderers/vaapi.h"
#endif
@@ -62,16 +64,17 @@ bool FFmpegVideoDecoder::chooseDecoder(
// Look for acceleration types we support
switch (config->device_type) {
#ifdef _WIN32
#ifdef Q_OS_WIN32
case AV_HWDEVICE_TYPE_DXVA2:
newRenderer = new DXVA2Renderer();
break;
#endif
#ifdef __APPLE__
#ifdef Q_OS_DARWIN
case AV_HWDEVICE_TYPE_VIDEOTOOLBOX:
newRenderer = VTRendererFactory::createRenderer();
break;
#elif defined Q_OS_UNIX
#endif
#ifdef HAVE_LIBVA
case AV_HWDEVICE_TYPE_VAAPI:
newRenderer = new VAAPIRenderer();
break;