Beginning nvenc implementation

This commit is contained in:
Valentin Verdier 2020-07-18 04:47:37 +02:00
parent 424a35b2a1
commit 23c313127d
5 changed files with 3858 additions and 15 deletions

View File

@ -3,8 +3,8 @@ CXX=g++
CXXFLAGS_DEBUG:=$(CXXFLAGS) -Wall -std=c++17 -g
CXXFLAGS:=$(CXXFLAGS) -Wall -std=c++17 -O2 -s
LDFLAGS:=$(LDFLAGS)
INC_CXXFLAGS=
LIBS=-lX11
INC_CXXFLAGS=-I../vendor/nvenc
LIBS=-lX11 -lnvidia-encode
TARGETS=kronos
TARGETS_DEBUG=kronos_dbg

22
src/NVEncoder.hpp Normal file
View File

@ -0,0 +1,22 @@
#ifndef KRONOS_NVENCODER_HEADER
#define KRONOS_NVENCODER_HEADER
#include <nvEncodeAPI.h>
namespace Kronos {
class NVEncoder {
public:
NVEncoder();
NVEncoder(const NVEncoder& enc) = delete;
~NVEncoder();
NVEncoder& operator=(const NVEncoder& enc) = delete;
private:
NV_ENCODE_API_FUNCTION_LIST m_nvapi;
void* m_encoder;
};
}
#endif

View File

@ -1,13 +0,0 @@
#ifndef WINDOW_RECORDER_HEADER
#define WINDOW_RECORDER_HEADER
namespace Kronos {
class WindowRecorder {
public:
virtual ~WindowRecorder() = 0;
virtual prepare
};
}
#endif

14
src/XWindowRecorder.hpp Normal file
View File

@ -0,0 +1,14 @@
#ifndef KRONOS_XWINDOW_RECORDER_HEADER
#define KRONOS_XWINDOW_RECORDER_HEADER
namespace Kronos {
class WindowRecorder {
public:
virtual ~WindowRecorder() = 0;
virtual void prepare() = 0;
virtual void tick() = 0;
};
}
#endif

3820
vendor/nvenc/nvEncodeAPI.h vendored Normal file

File diff suppressed because it is too large Load Diff