LookingGlass/host/Capture/NvFBC.h

42 lines
934 B
C
Raw Normal View History

2017-10-31 13:51:53 +00:00
#pragma once
#include "ICapture.h"
#include "MTMemcpy.h"
2017-10-31 13:51:53 +00:00
#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();
2017-10-31 14:46:47 +00:00
bool GrabFrame(struct FrameInfo & frame);
2017-10-31 13:51:53 +00:00
private:
bool m_initialized;
HMODULE m_hDLL;
MTMemcpy m_memcpy;
2017-10-31 13:51:53 +00:00
NvFBC_CreateFunctionExType m_fnCreateEx;
NvFBC_SetGlobalFlagsType m_fnSetGlobalFlags;
NvFBC_GetStatusExFunctionType m_fnGetStatusEx;
NvFBC_EnableFunctionType m_fnEnable;
DWORD m_maxCaptureWidth, m_maxCaptureHeight;
2017-10-31 14:46:47 +00:00
NvFBCToSys * m_nvFBC;
void * m_frameBuffer;
NvFBCFrameGrabInfo m_grabInfo;
NVFBC_TOSYS_GRAB_FRAME_PARAMS m_grabFrameParams;
2017-10-31 13:51:53 +00:00
};
};