Sunshine latest
Self-hosted game stream host for Moonlight.
nvenc Namespace Reference

Standalone NVENC encoder. More...

Classes

class  nvenc_base
 Abstract platform-agnostic base of standalone NVENC encoder. Derived classes perform platform-specific operations. More...
 
struct  nvenc_colorspace_t
 YUV colorspace and color range. More...
 
struct  nvenc_config
 NVENC encoder configuration. More...
 
class  nvenc_d3d11
 Abstract Direct3D11 NVENC encoder. Encapsulates common code used by native and interop implementations. More...
 
class  nvenc_d3d11_native
 Native Direct3D11 NVENC encoder. More...
 
class  nvenc_d3d11_on_cuda
 Interop Direct3D11 on CUDA NVENC encoder. Input surface is Direct3D11, encoding is performed by CUDA. More...
 
struct  nvenc_encoded_frame
 Encoded frame. More...
 

Enumerations

enum class  nvenc_two_pass { disabled , quarter_resolution , full_resolution }
 

Functions

 _COM_SMARTPTR_TYPEDEF (ID3D11Device, IID_ID3D11Device)
 
 _COM_SMARTPTR_TYPEDEF (ID3D11Texture2D, IID_ID3D11Texture2D)
 
 _COM_SMARTPTR_TYPEDEF (IDXGIAdapter, IID_IDXGIAdapter)
 
 _COM_SMARTPTR_TYPEDEF (IDXGIDevice, IID_IDXGIDevice)
 
DXGI_FORMAT dxgi_format_from_nvenc_format (NV_ENC_BUFFER_FORMAT format)
 
nvenc_colorspace_t nvenc_colorspace_from_sunshine_colorspace (const video::sunshine_colorspace_t &sunshine_colorspace)
 
NV_ENC_BUFFER_FORMAT nvenc_format_from_sunshine_format (platf::pix_fmt_e format)
 

Detailed Description

Standalone NVENC encoder.

Enumeration Type Documentation

◆ nvenc_two_pass

enum class nvenc::nvenc_two_pass
strong
Enumerator
disabled 

Single pass, the fastest and no extra vram.

quarter_resolution 

Larger motion vectors being caught, faster and uses less extra vram.

full_resolution 

Better overall statistics, slower and uses more extra vram.