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_interface |
| SDK-neutral Direct3D11 NVENC encoder interface. 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... | |
| class | nvenc_dynamic_factory |
| Factory bound to the newest NVENC SDK supported by the installed driver. More... | |
| struct | nvenc_encoded_frame |
| Encoded NVENC output frame and metadata needed by the packetizer. More... | |
| class | nvenc_encoder |
| SDK-neutral standalone NVENC encoder interface. More... | |
| struct | nvenc_runtime_api |
| Windows runtime operations used to discover the installed NVENC API. More... | |
| struct | shared_dll_deleter |
| Release a Windows module when its final shared owner is destroyed. More... | |
Enumerations | |
| enum class | nvenc_sdk_version : std::uint32_t { unsupported = 0U , sdk_11_0 = 1100U , sdk_12_0 = 1200U , sdk_13_0 = 1300U , sdk_13_1 = 1301U } |
| NVENC SDK implementations compiled into Sunshine. More... | |
| enum class | nvenc_split_frame_encoding { disabled , driver_decides , force_enabled } |
| Enumerates supported nVENC split frame encoding options. More... | |
| enum class | nvenc_two_pass { disabled , quarter_resolution , full_resolution } |
| Enumerates supported nVENC two pass options. More... | |
Functions | |
| constexpr std::uint32_t | decode_nvenc_driver_version (std::uint32_t version) |
| Convert the packed driver API version to a comparable integer. | |
| DXGI_FORMAT | dxgi_format_from_nvenc_format (NV_ENC_BUFFER_FORMAT format) |
| Convert an NVENC buffer format to the matching DXGI format. | |
| shared_dll | make_shared_dll (HMODULE dll) |
| Wrap a Windows module handle in shared ownership. | |
| nvenc_colorspace_t | nvenc_colorspace_from_sunshine_colorspace (const video::sunshine_colorspace_t &sunshine_colorspace) |
| Convert Sunshine colorspace metadata to NVENC VUI metadata. | |
| NV_ENC_BUFFER_FORMAT | nvenc_format_from_sunshine_format (platf::pix_fmt_e format) |
| Convert a Sunshine pixel format to the matching NVENC buffer format. | |
| constexpr nvenc_sdk_version | select_nvenc_sdk_version (std::uint32_t max_version) |
| Select the newest compiled SDK supported by the installed driver. | |
Standalone NVENC encoder.
|
strong |
|
strong |
|
strong |
|
constexpr |
Convert the packed driver API version to a comparable integer.
| version | Version returned by NvEncodeAPIGetMaxSupportedVersion(). |
| DXGI_FORMAT nvenc::dxgi_format_from_nvenc_format | ( | NV_ENC_BUFFER_FORMAT | format | ) |
Convert an NVENC buffer format to the matching DXGI format.
| format | Pixel, audio, or protocol format being converted. |
|
inline |
Wrap a Windows module handle in shared ownership.
| dll | Module handle returned by LoadLibraryEx(). |
| nvenc_colorspace_t nvenc::nvenc_colorspace_from_sunshine_colorspace | ( | const video::sunshine_colorspace_t & | sunshine_colorspace | ) |
Convert Sunshine colorspace metadata to NVENC VUI metadata.
| sunshine_colorspace | Sunshine colorspace. |
| NV_ENC_BUFFER_FORMAT nvenc::nvenc_format_from_sunshine_format | ( | platf::pix_fmt_e | format | ) |
Convert a Sunshine pixel format to the matching NVENC buffer format.
| format | Pixel, audio, or protocol format being converted. |
|
constexpr |
Select the newest compiled SDK supported by the installed driver.
| max_version | Maximum driver API version encoded as major * 100 + minor. |