Sunshine0.0.5917
Sunshine 0.0.5917
Self-hosted game stream host for Moonlight.
Loading...
Searching...
No Matches
nvenc::nvenc_d3d11_native Class Referencefinal

Native Direct3D11 NVENC encoder. More...

#include <src/nvenc/nvenc_d3d11_native.h>

Inheritance diagram for nvenc::nvenc_d3d11_native:
Collaboration diagram for nvenc::nvenc_d3d11_native:

Public Member Functions

ID3D11Texture2D * get_input_texture () override
 Get input surface texture.
 nvenc_d3d11_native (ID3D11Device *d3d_device, ::nvenc::shared_dll dll)
Public Member Functions inherited from nvenc::nvenc_d3d11
 nvenc_d3d11 (NV_ENC_DEVICE_TYPE device_type, ::nvenc::shared_dll dll)
 Initialize an NVENC session wrapper for D3D11 input textures.
Public Member Functions inherited from nvenc::nvenc_base
bool create_encoder (const ::nvenc::nvenc_config &config, const video::config_t &client_config, const video::sunshine_colorspace_t &colorspace, platf::pix_fmt_e buffer_format) override
 Create the encoder.
void destroy_encoder () override
 Destroy the encoder. Derived classes classes call it in the destructor.
::nvenc::nvenc_encoded_frame encode_frame (uint64_t frame_index, bool force_idr) override
 Encode the next frame using platform-specific input surface.
bool invalidate_ref_frames (uint64_t first_frame, uint64_t last_frame) override
 Perform reference frame invalidation (RFI) procedure.
 nvenc_base (const nvenc_base &)=delete
 nvenc_base (NV_ENC_DEVICE_TYPE device_type)
nvenc_base & operator= (const nvenc_base &)=delete
 ~nvenc_base () override
 Destroy the encoder wrapper; callers release the encoder session with destroy_encoder().
Public Member Functions inherited from nvenc::nvenc_encoder
virtual nvenc_encoded_frame encode_frame (std::uint64_t frame_index, bool force_idr)=0
 Encode the next frame using the platform-specific input surface.
virtual bool invalidate_ref_frames (std::uint64_t first_frame, std::uint64_t last_frame)=0
 Invalidate reference frames in the requested range.
virtual ~nvenc_encoder ()=default
 Destroy the SDK-neutral encoder interface.
Public Member Functions inherited from nvenc::nvenc_d3d11_interface
 ~nvenc_d3d11_interface () override=default
 Destroy the SDK-neutral Direct3D11 encoder interface.

Additional Inherited Members

Protected Member Functions inherited from nvenc::nvenc_d3d11
bool init_library () override
 Required. Used for loading NvEnc library and setting nvenc variable with NvEncodeAPICreateInstance(). Called during create_encoder() if nvenc variable is not initialized.
bool wait_for_async_event (uint32_t timeout_ms) override
 Optional. Override if you want to create encoder in async mode. In this case must also set async_event_handle variable.
Protected Member Functions inherited from nvenc::nvenc_base
bool nvenc_failed (NVENCSTATUS status)
 Check whether an NVENC API status represents failure.
virtual bool synchronize_input_buffer ()
 Optional. Override if you must perform additional operations on the registered input surface in the beginning of encode_frame(). Typically used for interop copy.
Protected Attributes inherited from nvenc::nvenc_base
completion_event_t * async_event_handle = nullptr
std::variant< ID3D11Device *, CUctx_st * > device {static_cast<ID3D11Device *>(nullptr)}
 Native D3D11 device or CUDA context, set by the derived backend.
const NV_ENC_DEVICE_TYPE device_type
 NVENC device backend used by this encoder instance.
encoder_session_t * encoder = nullptr
 Opaque NVENC encoder session handle returned by the driver.
struct nvenc::nvenc_base:: { ... }  encoder_params
 Current encoder dimensions, pixel format, and reference-frame settings.
std::string last_nvenc_error_string
 Last NVENC error string.
std::shared_ptr< NV_ENCODE_API_FUNCTION_LIST > nvenc
NV_ENC_REGISTERED_PTR registered_input_buffer = nullptr

Detailed Description

Native Direct3D11 NVENC encoder.

Constructor & Destructor Documentation

◆ nvenc_d3d11_native()

nvenc::nvenc_d3d11_native::nvenc_d3d11_native ( ID3D11Device * d3d_device,
::nvenc::shared_dll dll )
explicit
Parameters
d3d_deviceDirect3D11 device used for encoding.
dllShared NVENC driver module.

Member Function Documentation

◆ get_input_texture()

ID3D11Texture2D * nvenc::nvenc_d3d11_native::get_input_texture ( )
overridevirtual

Get input surface texture.

Returns
Input surface texture.

Implements nvenc::nvenc_d3d11.


The documentation for this class was generated from the following files: