diff --git a/app/app.pro b/app/app.pro index 9243ae76..0e8eed15 100644 --- a/app/app.pro +++ b/app/app.pro @@ -62,6 +62,9 @@ SOURCES += \ win32 { SOURCES += streaming/renderers/dxva2.cpp } +macx { + SOURCES += streaming/renderers/vt.cpp +} HEADERS += \ utils.h \ @@ -80,6 +83,9 @@ HEADERS += \ win32 { HEADERS += streaming/renderers/dxva2.h } +macx { + HEADERS += streaming/renderers/vt.h +} RESOURCES += \ resources.qrc \ diff --git a/app/streaming/renderers/vt.cpp b/app/streaming/renderers/vt.cpp new file mode 100644 index 00000000..9110406d --- /dev/null +++ b/app/streaming/renderers/vt.cpp @@ -0,0 +1,28 @@ +#include "vt.h" + +VTRenderer::VTRenderer() +{ + +} + +VTRenderer::~VTRenderer() +{ +} + +bool VTRenderer::prepareDecoderContext(AVCodecContext*) +{ + /* Nothing to do */ + return true; +} + +bool VTRenderer::initialize(SDL_Window* window, + int videoFormat, + int width, + int height) +{ + return false; +} + +void VTRenderer::renderFrame(AVFrame* frame) +{ +} diff --git a/app/streaming/renderers/vt.h b/app/streaming/renderers/vt.h new file mode 100644 index 00000000..5ee7e952 --- /dev/null +++ b/app/streaming/renderers/vt.h @@ -0,0 +1,18 @@ +#pragma once + +#include "renderer.h" + +class VTRenderer : public IRenderer +{ +public: + VTRenderer(); + virtual ~VTRenderer(); + virtual bool initialize(SDL_Window* window, + int videoFormat, + int width, + int height); + virtual bool prepareDecoderContext(AVCodecContext* context); + virtual void renderFrame(AVFrame* frame); + +private: +}; diff --git a/app/streaming/video.cpp b/app/streaming/video.cpp index 02b89c17..047f4d12 100644 --- a/app/streaming/video.cpp +++ b/app/streaming/video.cpp @@ -5,6 +5,10 @@ #include "renderers/dxva2.h" #endif +#ifdef __APPLE__ +#include "renderers/vt.h" +#endif + AVPacket Session::s_Pkt; AVCodecContext* Session::s_VideoDecoderCtx; QByteArray Session::s_DecodeBuffer; @@ -80,6 +84,11 @@ bool Session::chooseDecoder(StreamingPreferences::VideoDecoderSelection vds, case AV_HWDEVICE_TYPE_DXVA2: newRenderer = new DXVA2Renderer(); break; +#endif +#ifdef __APPLE__ + case AV_HWDEVICE_TYPE_VIDEOTOOLBOX: + newRenderer = new VTRenderer(); + break; #endif default: continue;