[host] initial NvFBC implementation

This commit is contained in:
Geoffrey McRae
2017-11-01 00:51:53 +11:00
parent b03254b7c2
commit 85f39b7070
11 changed files with 265 additions and 25 deletions

36
host/Capture/NvFBC.h Normal file
View File

@@ -0,0 +1,36 @@
#pragma once
#include "ICapture.h"
#define W32_LEAN_AND_MEAN
#include <Windows.h>
#include <NvFBC\nvFBC.h>
#include <NvFBC\nvFBCToSys.h>
namespace Capture
{
class NvFBC : public ICapture
{
public:
NvFBC();
~NvFBC();
bool Initialize();
void DeInitialize();
enum FrameType GetFrameType();
enum FrameComp GetFrameCompression();
size_t GetMaxFrameSize();
bool GrabFrame(void * buffer, size_t bufferSize, size_t * outLen);
private:
bool m_initialized;
HMODULE m_hDLL;
NvFBC_CreateFunctionExType m_fnCreateEx;
NvFBC_SetGlobalFlagsType m_fnSetGlobalFlags;
NvFBC_GetStatusExFunctionType m_fnGetStatusEx;
NvFBC_EnableFunctionType m_fnEnable;
DWORD m_maxCaptureWidth, m_maxCaptureHeight;
};
};