Sunshine master
Self-hosted game stream host for Moonlight.
nvenc_sdk.h
Go to the documentation of this file.
1
5#pragma once
6
7#ifdef DOXYGEN
12 #define NVENC_NAMESPACE nvenc
13
18 // Doxygen must select the same preprocessor interface used by versioned build targets.
19 #define NVENC_SDK_VERSION 1300 // NOSONAR(cpp:S5028)
20#endif
21
22#ifndef NVENC_NAMESPACE
23 #error NVENC_NAMESPACE must identify the version-specific implementation namespace
24#endif
25
26#ifndef NVENC_SDK_VERSION
27 #error NVENC_SDK_VERSION must identify the version-specific NVENC SDK
28#endif
29
30// Include common platform and integer declarations outside the SDK namespace.
31#include <cstddef>
32#include <cstdint>
33
34#ifdef _WIN32
35 #include <Windows.h>
36#endif
37
38// The version-specific namespace is populated by the SDK headers included below.
39namespace NVENC_NAMESPACE { // NOSONAR(cpp:S3261)
40#ifndef DOXYGEN
41 #include <ffnvcodec/dynlink_cuda.h>
42 #include <ffnvcodec/nvEncodeAPI.h>
43
44 #if NVENCAPI_MAJOR_VERSION * 100 + NVENCAPI_MINOR_VERSION != NVENC_SDK_VERSION
45 #error NVENC_SDK_VERSION does not match the selected nv-codec-headers package
46 #endif
47#endif
48
49#if NVENC_SDK_VERSION < 1200
53 enum NV_ENC_VUI_VIDEO_FORMAT {
54 NV_ENC_VUI_VIDEO_FORMAT_COMPONENT = 0,
55 NV_ENC_VUI_VIDEO_FORMAT_PAL = 1,
56 NV_ENC_VUI_VIDEO_FORMAT_NTSC = 2,
57 NV_ENC_VUI_VIDEO_FORMAT_SECAM = 3,
58 NV_ENC_VUI_VIDEO_FORMAT_MAC = 4,
59 NV_ENC_VUI_VIDEO_FORMAT_UNSPECIFIED = 5,
60 };
61
65 enum NV_ENC_VUI_COLOR_PRIMARIES {
66 NV_ENC_VUI_COLOR_PRIMARIES_UNDEFINED = 0,
67 NV_ENC_VUI_COLOR_PRIMARIES_BT709 = 1,
68 NV_ENC_VUI_COLOR_PRIMARIES_UNSPECIFIED = 2,
69 NV_ENC_VUI_COLOR_PRIMARIES_RESERVED = 3,
70 NV_ENC_VUI_COLOR_PRIMARIES_BT470M = 4,
71 NV_ENC_VUI_COLOR_PRIMARIES_BT470BG = 5,
72 NV_ENC_VUI_COLOR_PRIMARIES_SMPTE170M = 6,
73 NV_ENC_VUI_COLOR_PRIMARIES_SMPTE240M = 7,
74 NV_ENC_VUI_COLOR_PRIMARIES_FILM = 8,
75 NV_ENC_VUI_COLOR_PRIMARIES_BT2020 = 9,
76 NV_ENC_VUI_COLOR_PRIMARIES_SMPTE428 = 10,
77 NV_ENC_VUI_COLOR_PRIMARIES_SMPTE431 = 11,
78 NV_ENC_VUI_COLOR_PRIMARIES_SMPTE432 = 12,
79 NV_ENC_VUI_COLOR_PRIMARIES_JEDEC_P22 = 22,
80 };
81
85 enum NV_ENC_VUI_TRANSFER_CHARACTERISTIC {
86 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_UNDEFINED = 0,
87 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT709 = 1,
88 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_UNSPECIFIED = 2,
89 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_RESERVED = 3,
90 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT470M = 4,
91 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT470BG = 5,
92 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_SMPTE170M = 6,
93 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_SMPTE240M = 7,
94 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_LINEAR = 8,
95 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_LOG = 9,
96 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_LOG_SQRT = 10,
97 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_IEC61966_2_4 = 11,
98 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT1361_ECG = 12,
99 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_SRGB = 13,
100 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT2020_10 = 14,
101 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT2020_12 = 15,
102 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_SMPTE2084 = 16,
103 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_SMPTE428 = 17,
104 NV_ENC_VUI_TRANSFER_CHARACTERISTIC_ARIB_STD_B67 = 18,
105 };
106
110 enum NV_ENC_VUI_MATRIX_COEFFS {
111 NV_ENC_VUI_MATRIX_COEFFS_RGB = 0,
112 NV_ENC_VUI_MATRIX_COEFFS_BT709 = 1,
113 NV_ENC_VUI_MATRIX_COEFFS_UNSPECIFIED = 2,
114 NV_ENC_VUI_MATRIX_COEFFS_RESERVED = 3,
115 NV_ENC_VUI_MATRIX_COEFFS_FCC = 4,
116 NV_ENC_VUI_MATRIX_COEFFS_BT470BG = 5,
117 NV_ENC_VUI_MATRIX_COEFFS_SMPTE170M = 6,
118 NV_ENC_VUI_MATRIX_COEFFS_SMPTE240M = 7,
119 NV_ENC_VUI_MATRIX_COEFFS_YCGCO = 8,
120 NV_ENC_VUI_MATRIX_COEFFS_BT2020_NCL = 9,
121 NV_ENC_VUI_MATRIX_COEFFS_BT2020_CL = 10,
122 NV_ENC_VUI_MATRIX_COEFFS_SMPTE2085 = 11,
123 };
124#endif
125} // namespace NVENC_NAMESPACE
#define NVENC_NAMESPACE
Namespace used for the documented NVENC implementation.
Definition nvenc_sdk.h:12