nvidia_video_codec_sdk/sys/linux_sys/
nvEncodeAPI.rs

1pub use super::super::version::*;
2pub use super::super::guid::*;
3/* automatically generated by rust-bindgen 0.65.1 */
4
5pub type GUID = _GUID;
6pub type NVENC_RECT = _NVENC_RECT;
7pub type NV_ENC_INPUT_PTR = *mut ::core::ffi::c_void;
8pub type NV_ENC_OUTPUT_PTR = *mut ::core::ffi::c_void;
9pub type NV_ENC_REGISTERED_PTR = *mut ::core::ffi::c_void;
10pub type NV_ENC_CUSTREAM_PTR = *mut ::core::ffi::c_void;
11pub type NV_ENC_CAPS_PARAM = _NV_ENC_CAPS_PARAM;
12pub type NV_ENC_RESTORE_ENCODER_STATE_PARAMS = _NV_ENC_RESTORE_ENCODER_STATE_PARAMS;
13pub type NV_ENC_OUTPUT_STATS_BLOCK = _NV_ENC_OUTPUT_STATS_BLOCK;
14pub type NV_ENC_OUTPUT_STATS_ROW = _NV_ENC_OUTPUT_STATS_ROW;
15pub type NV_ENC_ENCODE_OUT_PARAMS = _NV_ENC_ENCODE_OUT_PARAMS;
16pub type NV_ENC_LOOKAHEAD_PIC_PARAMS = _NV_ENC_LOOKAHEAD_PIC_PARAMS;
17pub type NV_ENC_CREATE_INPUT_BUFFER = _NV_ENC_CREATE_INPUT_BUFFER;
18pub type NV_ENC_CREATE_BITSTREAM_BUFFER = _NV_ENC_CREATE_BITSTREAM_BUFFER;
19pub type NV_ENC_MVECTOR = _NV_ENC_MVECTOR;
20pub type NV_ENC_H264_MV_DATA = _NV_ENC_H264_MV_DATA;
21pub type NV_ENC_HEVC_MV_DATA = _NV_ENC_HEVC_MV_DATA;
22pub type NV_ENC_CREATE_MV_BUFFER = _NV_ENC_CREATE_MV_BUFFER;
23pub type NV_ENC_QP = _NV_ENC_QP;
24pub type NV_ENC_RC_PARAMS = _NV_ENC_RC_PARAMS;
25pub type NV_ENC_CLOCK_TIMESTAMP_SET = _NV_ENC_CLOCK_TIMESTAMP_SET;
26pub type NV_ENC_TIME_CODE = _NV_ENC_TIME_CODE;
27pub type NV_ENC_CONFIG_H264_VUI_PARAMETERS = _NV_ENC_CONFIG_H264_VUI_PARAMETERS;
28pub type NV_ENC_CONFIG_HEVC_VUI_PARAMETERS = NV_ENC_CONFIG_H264_VUI_PARAMETERS;
29pub type NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE = _NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE;
30pub type NVENC_EXTERNAL_ME_HINT = _NVENC_EXTERNAL_ME_HINT;
31pub type NVENC_EXTERNAL_ME_SB_HINT = _NVENC_EXTERNAL_ME_SB_HINT;
32pub type NV_ENC_CONFIG_H264 = _NV_ENC_CONFIG_H264;
33pub type NV_ENC_CONFIG_HEVC = _NV_ENC_CONFIG_HEVC;
34pub type NV_ENC_FILM_GRAIN_PARAMS_AV1 = _NV_ENC_FILM_GRAIN_PARAMS_AV1;
35pub type NV_ENC_CONFIG_AV1 = _NV_ENC_CONFIG_AV1;
36pub type NV_ENC_CONFIG_H264_MEONLY = _NV_ENC_CONFIG_H264_MEONLY;
37pub type NV_ENC_CONFIG_HEVC_MEONLY = _NV_ENC_CONFIG_HEVC_MEONLY;
38pub type NV_ENC_CODEC_CONFIG = _NV_ENC_CODEC_CONFIG;
39pub type NV_ENC_CONFIG = _NV_ENC_CONFIG;
40pub type NV_ENC_INITIALIZE_PARAMS = _NV_ENC_INITIALIZE_PARAMS;
41pub type NV_ENC_RECONFIGURE_PARAMS = _NV_ENC_RECONFIGURE_PARAMS;
42pub type NV_ENC_PRESET_CONFIG = _NV_ENC_PRESET_CONFIG;
43pub type NV_ENC_PIC_PARAMS_MVC = _NV_ENC_PIC_PARAMS_MVC;
44pub type NV_ENC_PIC_PARAMS_H264_EXT = _NV_ENC_PIC_PARAMS_H264_EXT;
45pub type NV_ENC_SEI_PAYLOAD = _NV_ENC_SEI_PAYLOAD;
46pub type NV_ENC_PIC_PARAMS_H264 = _NV_ENC_PIC_PARAMS_H264;
47pub type NV_ENC_PIC_PARAMS_HEVC = _NV_ENC_PIC_PARAMS_HEVC;
48pub type NV_ENC_PIC_PARAMS_AV1 = _NV_ENC_PIC_PARAMS_AV1;
49pub type NV_ENC_CODEC_PIC_PARAMS = _NV_ENC_CODEC_PIC_PARAMS;
50pub type NV_ENC_PIC_PARAMS = _NV_ENC_PIC_PARAMS;
51pub type NV_ENC_MEONLY_PARAMS = _NV_ENC_MEONLY_PARAMS;
52pub type NV_ENC_LOCK_BITSTREAM = _NV_ENC_LOCK_BITSTREAM;
53pub type NV_ENC_LOCK_INPUT_BUFFER = _NV_ENC_LOCK_INPUT_BUFFER;
54pub type NV_ENC_MAP_INPUT_RESOURCE = _NV_ENC_MAP_INPUT_RESOURCE;
55pub type NV_ENC_INPUT_RESOURCE_OPENGL_TEX = _NV_ENC_INPUT_RESOURCE_OPENGL_TEX;
56pub type NV_ENC_FENCE_POINT_D3D12 = _NV_ENC_FENCE_POINT_D3D12;
57pub type NV_ENC_INPUT_RESOURCE_D3D12 = _NV_ENC_INPUT_RESOURCE_D3D12;
58pub type NV_ENC_OUTPUT_RESOURCE_D3D12 = _NV_ENC_OUTPUT_RESOURCE_D3D12;
59pub type NV_ENC_REGISTER_RESOURCE = _NV_ENC_REGISTER_RESOURCE;
60pub type NV_ENC_STAT = _NV_ENC_STAT;
61pub type NV_ENC_SEQUENCE_PARAM_PAYLOAD = _NV_ENC_SEQUENCE_PARAM_PAYLOAD;
62pub type NV_ENC_EVENT_PARAMS = _NV_ENC_EVENT_PARAMS;
63pub type NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS = _NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS;
64pub type PNVENCOPENENCODESESSION = ::core::option::Option<
65    unsafe extern "C" fn(
66        device: *mut ::core::ffi::c_void,
67        deviceType: u32,
68        encoder: *mut *mut ::core::ffi::c_void,
69    ) -> NVENCSTATUS,
70>;
71pub type PNVENCGETENCODEGUIDCOUNT = ::core::option::Option<
72    unsafe extern "C" fn(
73        encoder: *mut ::core::ffi::c_void,
74        encodeGUIDCount: *mut u32,
75    ) -> NVENCSTATUS,
76>;
77pub type PNVENCGETENCODEGUIDS = ::core::option::Option<
78    unsafe extern "C" fn(
79        encoder: *mut ::core::ffi::c_void,
80        GUIDs: *mut GUID,
81        guidArraySize: u32,
82        GUIDCount: *mut u32,
83    ) -> NVENCSTATUS,
84>;
85pub type PNVENCGETINPUTFORMATCOUNT = ::core::option::Option<
86    unsafe extern "C" fn(
87        encoder: *mut ::core::ffi::c_void,
88        encodeGUID: GUID,
89        inputFmtCount: *mut u32,
90    ) -> NVENCSTATUS,
91>;
92pub type PNVENCGETINPUTFORMATS = ::core::option::Option<
93    unsafe extern "C" fn(
94        encoder: *mut ::core::ffi::c_void,
95        encodeGUID: GUID,
96        inputFmts: *mut NV_ENC_BUFFER_FORMAT,
97        inputFmtArraySize: u32,
98        inputFmtCount: *mut u32,
99    ) -> NVENCSTATUS,
100>;
101pub type PNVENCGETENCODECAPS = ::core::option::Option<
102    unsafe extern "C" fn(
103        encoder: *mut ::core::ffi::c_void,
104        encodeGUID: GUID,
105        capsParam: *mut NV_ENC_CAPS_PARAM,
106        capsVal: *mut ::core::ffi::c_int,
107    ) -> NVENCSTATUS,
108>;
109pub type PNVENCGETENCODEPRESETCOUNT = ::core::option::Option<
110    unsafe extern "C" fn(
111        encoder: *mut ::core::ffi::c_void,
112        encodeGUID: GUID,
113        encodePresetGUIDCount: *mut u32,
114    ) -> NVENCSTATUS,
115>;
116pub type PNVENCGETENCODEPRESETGUIDS = ::core::option::Option<
117    unsafe extern "C" fn(
118        encoder: *mut ::core::ffi::c_void,
119        encodeGUID: GUID,
120        presetGUIDs: *mut GUID,
121        guidArraySize: u32,
122        encodePresetGUIDCount: *mut u32,
123    ) -> NVENCSTATUS,
124>;
125pub type PNVENCGETENCODEPRESETCONFIG = ::core::option::Option<
126    unsafe extern "C" fn(
127        encoder: *mut ::core::ffi::c_void,
128        encodeGUID: GUID,
129        presetGUID: GUID,
130        presetConfig: *mut NV_ENC_PRESET_CONFIG,
131    ) -> NVENCSTATUS,
132>;
133pub type PNVENCGETENCODEPRESETCONFIGEX = ::core::option::Option<
134    unsafe extern "C" fn(
135        encoder: *mut ::core::ffi::c_void,
136        encodeGUID: GUID,
137        presetGUID: GUID,
138        tuningInfo: NV_ENC_TUNING_INFO,
139        presetConfig: *mut NV_ENC_PRESET_CONFIG,
140    ) -> NVENCSTATUS,
141>;
142pub type PNVENCINITIALIZEENCODER = ::core::option::Option<
143    unsafe extern "C" fn(
144        encoder: *mut ::core::ffi::c_void,
145        createEncodeParams: *mut NV_ENC_INITIALIZE_PARAMS,
146    ) -> NVENCSTATUS,
147>;
148pub type PNVENCCREATEINPUTBUFFER = ::core::option::Option<
149    unsafe extern "C" fn(
150        encoder: *mut ::core::ffi::c_void,
151        createInputBufferParams: *mut NV_ENC_CREATE_INPUT_BUFFER,
152    ) -> NVENCSTATUS,
153>;
154pub type PNVENCDESTROYINPUTBUFFER = ::core::option::Option<
155    unsafe extern "C" fn(
156        encoder: *mut ::core::ffi::c_void,
157        inputBuffer: NV_ENC_INPUT_PTR,
158    ) -> NVENCSTATUS,
159>;
160pub type PNVENCCREATEBITSTREAMBUFFER = ::core::option::Option<
161    unsafe extern "C" fn(
162        encoder: *mut ::core::ffi::c_void,
163        createBitstreamBufferParams: *mut NV_ENC_CREATE_BITSTREAM_BUFFER,
164    ) -> NVENCSTATUS,
165>;
166pub type PNVENCDESTROYBITSTREAMBUFFER = ::core::option::Option<
167    unsafe extern "C" fn(
168        encoder: *mut ::core::ffi::c_void,
169        bitstreamBuffer: NV_ENC_OUTPUT_PTR,
170    ) -> NVENCSTATUS,
171>;
172pub type PNVENCENCODEPICTURE = ::core::option::Option<
173    unsafe extern "C" fn(
174        encoder: *mut ::core::ffi::c_void,
175        encodePicParams: *mut NV_ENC_PIC_PARAMS,
176    ) -> NVENCSTATUS,
177>;
178pub type PNVENCLOCKBITSTREAM = ::core::option::Option<
179    unsafe extern "C" fn(
180        encoder: *mut ::core::ffi::c_void,
181        lockBitstreamBufferParams: *mut NV_ENC_LOCK_BITSTREAM,
182    ) -> NVENCSTATUS,
183>;
184pub type PNVENCUNLOCKBITSTREAM = ::core::option::Option<
185    unsafe extern "C" fn(
186        encoder: *mut ::core::ffi::c_void,
187        bitstreamBuffer: NV_ENC_OUTPUT_PTR,
188    ) -> NVENCSTATUS,
189>;
190pub type PNVENCLOCKINPUTBUFFER = ::core::option::Option<
191    unsafe extern "C" fn(
192        encoder: *mut ::core::ffi::c_void,
193        lockInputBufferParams: *mut NV_ENC_LOCK_INPUT_BUFFER,
194    ) -> NVENCSTATUS,
195>;
196pub type PNVENCUNLOCKINPUTBUFFER = ::core::option::Option<
197    unsafe extern "C" fn(
198        encoder: *mut ::core::ffi::c_void,
199        inputBuffer: NV_ENC_INPUT_PTR,
200    ) -> NVENCSTATUS,
201>;
202pub type PNVENCGETENCODESTATS = ::core::option::Option<
203    unsafe extern "C" fn(
204        encoder: *mut ::core::ffi::c_void,
205        encodeStats: *mut NV_ENC_STAT,
206    ) -> NVENCSTATUS,
207>;
208pub type PNVENCGETSEQUENCEPARAMS = ::core::option::Option<
209    unsafe extern "C" fn(
210        encoder: *mut ::core::ffi::c_void,
211        sequenceParamPayload: *mut NV_ENC_SEQUENCE_PARAM_PAYLOAD,
212    ) -> NVENCSTATUS,
213>;
214pub type PNVENCREGISTERASYNCEVENT = ::core::option::Option<
215    unsafe extern "C" fn(
216        encoder: *mut ::core::ffi::c_void,
217        eventParams: *mut NV_ENC_EVENT_PARAMS,
218    ) -> NVENCSTATUS,
219>;
220pub type PNVENCUNREGISTERASYNCEVENT = ::core::option::Option<
221    unsafe extern "C" fn(
222        encoder: *mut ::core::ffi::c_void,
223        eventParams: *mut NV_ENC_EVENT_PARAMS,
224    ) -> NVENCSTATUS,
225>;
226pub type PNVENCMAPINPUTRESOURCE = ::core::option::Option<
227    unsafe extern "C" fn(
228        encoder: *mut ::core::ffi::c_void,
229        mapInputResParams: *mut NV_ENC_MAP_INPUT_RESOURCE,
230    ) -> NVENCSTATUS,
231>;
232pub type PNVENCUNMAPINPUTRESOURCE = ::core::option::Option<
233    unsafe extern "C" fn(
234        encoder: *mut ::core::ffi::c_void,
235        mappedInputBuffer: NV_ENC_INPUT_PTR,
236    ) -> NVENCSTATUS,
237>;
238pub type PNVENCDESTROYENCODER =
239    ::core::option::Option<unsafe extern "C" fn(encoder: *mut ::core::ffi::c_void) -> NVENCSTATUS>;
240pub type PNVENCINVALIDATEREFFRAMES = ::core::option::Option<
241    unsafe extern "C" fn(
242        encoder: *mut ::core::ffi::c_void,
243        invalidRefFrameTimeStamp: u64,
244    ) -> NVENCSTATUS,
245>;
246pub type PNVENCOPENENCODESESSIONEX = ::core::option::Option<
247    unsafe extern "C" fn(
248        openSessionExParams: *mut NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS,
249        encoder: *mut *mut ::core::ffi::c_void,
250    ) -> NVENCSTATUS,
251>;
252pub type PNVENCREGISTERRESOURCE = ::core::option::Option<
253    unsafe extern "C" fn(
254        encoder: *mut ::core::ffi::c_void,
255        registerResParams: *mut NV_ENC_REGISTER_RESOURCE,
256    ) -> NVENCSTATUS,
257>;
258pub type PNVENCUNREGISTERRESOURCE = ::core::option::Option<
259    unsafe extern "C" fn(
260        encoder: *mut ::core::ffi::c_void,
261        registeredRes: NV_ENC_REGISTERED_PTR,
262    ) -> NVENCSTATUS,
263>;
264pub type PNVENCRECONFIGUREENCODER = ::core::option::Option<
265    unsafe extern "C" fn(
266        encoder: *mut ::core::ffi::c_void,
267        reInitEncodeParams: *mut NV_ENC_RECONFIGURE_PARAMS,
268    ) -> NVENCSTATUS,
269>;
270pub type PNVENCCREATEMVBUFFER = ::core::option::Option<
271    unsafe extern "C" fn(
272        encoder: *mut ::core::ffi::c_void,
273        createMVBufferParams: *mut NV_ENC_CREATE_MV_BUFFER,
274    ) -> NVENCSTATUS,
275>;
276pub type PNVENCDESTROYMVBUFFER = ::core::option::Option<
277    unsafe extern "C" fn(
278        encoder: *mut ::core::ffi::c_void,
279        mvBuffer: NV_ENC_OUTPUT_PTR,
280    ) -> NVENCSTATUS,
281>;
282pub type PNVENCRUNMOTIONESTIMATIONONLY = ::core::option::Option<
283    unsafe extern "C" fn(
284        encoder: *mut ::core::ffi::c_void,
285        meOnlyParams: *mut NV_ENC_MEONLY_PARAMS,
286    ) -> NVENCSTATUS,
287>;
288pub type PNVENCGETLASTERROR = ::core::option::Option<
289    unsafe extern "C" fn(encoder: *mut ::core::ffi::c_void) -> *const ::core::ffi::c_char,
290>;
291pub type PNVENCSETIOCUDASTREAMS = ::core::option::Option<
292    unsafe extern "C" fn(
293        encoder: *mut ::core::ffi::c_void,
294        inputStream: NV_ENC_CUSTREAM_PTR,
295        outputStream: NV_ENC_CUSTREAM_PTR,
296    ) -> NVENCSTATUS,
297>;
298pub type PNVENCGETSEQUENCEPARAMEX = ::core::option::Option<
299    unsafe extern "C" fn(
300        encoder: *mut ::core::ffi::c_void,
301        encInitParams: *mut NV_ENC_INITIALIZE_PARAMS,
302        sequenceParamPayload: *mut NV_ENC_SEQUENCE_PARAM_PAYLOAD,
303    ) -> NVENCSTATUS,
304>;
305pub type PNVENCRESTOREENCODERSTATE = ::core::option::Option<
306    unsafe extern "C" fn(
307        encoder: *mut ::core::ffi::c_void,
308        restoreState: *mut NV_ENC_RESTORE_ENCODER_STATE_PARAMS,
309    ) -> NVENCSTATUS,
310>;
311pub type PNVENCLOOKAHEADPICTURE = ::core::option::Option<
312    unsafe extern "C" fn(
313        encoder: *mut ::core::ffi::c_void,
314        lookaheadParams: *mut NV_ENC_LOOKAHEAD_PIC_PARAMS,
315    ) -> NVENCSTATUS,
316>;
317pub type NV_ENCODE_API_FUNCTION_LIST = _NV_ENCODE_API_FUNCTION_LIST;
318#[repr(C)]
319#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
320pub struct __BindgenBitfieldUnit<Storage> {
321    storage: Storage,
322}
323#[repr(C)]
324#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
325pub struct _GUID {
326    pub Data1: u32,
327    pub Data2: u16,
328    pub Data3: u16,
329    pub Data4: [u8; 8usize],
330}
331#[repr(C)]
332#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
333pub struct _NVENC_RECT {
334    pub left: u32,
335    pub top: u32,
336    pub right: u32,
337    pub bottom: u32,
338}
339#[repr(C)]
340#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
341pub struct _NV_ENC_CAPS_PARAM {
342    pub version: u32,
343    pub capsToQuery: NV_ENC_CAPS,
344    pub reserved: [u32; 62usize],
345}
346#[repr(C)]
347#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
348pub struct _NV_ENC_RESTORE_ENCODER_STATE_PARAMS {
349    pub version: u32,
350    pub bufferIdx: u32,
351    pub state: NV_ENC_STATE_RESTORE_TYPE,
352    pub outputBitstream: NV_ENC_OUTPUT_PTR,
353    pub completionEvent: *mut ::core::ffi::c_void,
354    pub reserved1: [u32; 64usize],
355    pub reserved2: [*mut ::core::ffi::c_void; 64usize],
356}
357#[repr(C)]
358#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
359pub struct _NV_ENC_OUTPUT_STATS_BLOCK {
360    pub version: u32,
361    pub QP: u8,
362    pub reserved: [u8; 3usize],
363    pub bitcount: u32,
364    pub reserved1: [u32; 13usize],
365}
366#[repr(C)]
367#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
368pub struct _NV_ENC_OUTPUT_STATS_ROW {
369    pub version: u32,
370    pub QP: u8,
371    pub reserved: [u8; 3usize],
372    pub bitcount: u32,
373    pub reserved1: [u32; 13usize],
374}
375#[repr(C)]
376#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
377pub struct _NV_ENC_ENCODE_OUT_PARAMS {
378    pub version: u32,
379    pub bitstreamSizeInBytes: u32,
380    pub reserved: [u32; 62usize],
381}
382#[repr(C)]
383#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
384pub struct _NV_ENC_LOOKAHEAD_PIC_PARAMS {
385    pub version: u32,
386    pub inputBuffer: NV_ENC_INPUT_PTR,
387    pub pictureType: NV_ENC_PIC_TYPE,
388    pub reserved: [u32; 64usize],
389    pub reserved1: [*mut ::core::ffi::c_void; 64usize],
390}
391#[repr(C)]
392#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
393pub struct _NV_ENC_CREATE_INPUT_BUFFER {
394    pub version: u32,
395    pub width: u32,
396    pub height: u32,
397    pub memoryHeap: NV_ENC_MEMORY_HEAP,
398    pub bufferFmt: NV_ENC_BUFFER_FORMAT,
399    pub reserved: u32,
400    pub inputBuffer: NV_ENC_INPUT_PTR,
401    pub pSysMemBuffer: *mut ::core::ffi::c_void,
402    pub reserved1: [u32; 57usize],
403    pub reserved2: [*mut ::core::ffi::c_void; 63usize],
404}
405#[repr(C)]
406#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
407pub struct _NV_ENC_CREATE_BITSTREAM_BUFFER {
408    pub version: u32,
409    pub size: u32,
410    pub memoryHeap: NV_ENC_MEMORY_HEAP,
411    pub reserved: u32,
412    pub bitstreamBuffer: NV_ENC_OUTPUT_PTR,
413    pub bitstreamBufferPtr: *mut ::core::ffi::c_void,
414    pub reserved1: [u32; 58usize],
415    pub reserved2: [*mut ::core::ffi::c_void; 64usize],
416}
417#[repr(C)]
418#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
419pub struct _NV_ENC_MVECTOR {
420    pub mvx: i16,
421    pub mvy: i16,
422}
423#[repr(C)]
424#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
425pub struct _NV_ENC_H264_MV_DATA {
426    pub mv: [NV_ENC_MVECTOR; 4usize],
427    pub mbType: u8,
428    pub partitionType: u8,
429    pub reserved: u16,
430    pub mbCost: u32,
431}
432#[repr(C)]
433#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
434pub struct _NV_ENC_HEVC_MV_DATA {
435    pub mv: [NV_ENC_MVECTOR; 4usize],
436    pub cuType: u8,
437    pub cuSize: u8,
438    pub partitionMode: u8,
439    pub lastCUInCTB: u8,
440}
441#[repr(C)]
442#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
443pub struct _NV_ENC_CREATE_MV_BUFFER {
444    pub version: u32,
445    pub mvBuffer: NV_ENC_OUTPUT_PTR,
446    pub reserved1: [u32; 255usize],
447    pub reserved2: [*mut ::core::ffi::c_void; 63usize],
448}
449#[repr(C)]
450#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
451pub struct _NV_ENC_QP {
452    pub qpInterP: u32,
453    pub qpInterB: u32,
454    pub qpIntra: u32,
455}
456#[repr(C)]
457#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
458pub struct _NV_ENC_RC_PARAMS {
459    pub version: u32,
460    pub rateControlMode: NV_ENC_PARAMS_RC_MODE,
461    pub constQP: NV_ENC_QP,
462    pub averageBitRate: u32,
463    pub maxBitRate: u32,
464    pub vbvBufferSize: u32,
465    pub vbvInitialDelay: u32,
466    pub _bitfield_align_1: [u16; 0],
467    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
468    pub minQP: NV_ENC_QP,
469    pub maxQP: NV_ENC_QP,
470    pub initialRCQP: NV_ENC_QP,
471    pub temporallayerIdxMask: u32,
472    pub temporalLayerQP: [u8; 8usize],
473    pub targetQuality: u8,
474    pub targetQualityLSB: u8,
475    pub lookaheadDepth: u16,
476    pub lowDelayKeyFrameScale: u8,
477    pub yDcQPIndexOffset: i8,
478    pub uDcQPIndexOffset: i8,
479    pub vDcQPIndexOffset: i8,
480    pub qpMapMode: NV_ENC_QP_MAP_MODE,
481    pub multiPass: NV_ENC_MULTI_PASS,
482    pub alphaLayerBitrateRatio: u32,
483    pub cbQPIndexOffset: i8,
484    pub crQPIndexOffset: i8,
485    pub reserved2: u16,
486    pub reserved: [u32; 4usize],
487}
488#[repr(C)]
489#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
490pub struct _NV_ENC_CLOCK_TIMESTAMP_SET {
491    pub _bitfield_align_1: [u8; 0],
492    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
493    pub timeOffset: u32,
494}
495#[repr(C)]
496#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
497pub struct _NV_ENC_TIME_CODE {
498    pub displayPicStruct: NV_ENC_DISPLAY_PIC_STRUCT,
499    pub clockTimestamp: [NV_ENC_CLOCK_TIMESTAMP_SET; 3usize],
500}
501#[repr(C)]
502#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
503pub struct _NV_ENC_CONFIG_H264_VUI_PARAMETERS {
504    pub overscanInfoPresentFlag: u32,
505    pub overscanInfo: u32,
506    pub videoSignalTypePresentFlag: u32,
507    pub videoFormat: NV_ENC_VUI_VIDEO_FORMAT,
508    pub videoFullRangeFlag: u32,
509    pub colourDescriptionPresentFlag: u32,
510    pub colourPrimaries: NV_ENC_VUI_COLOR_PRIMARIES,
511    pub transferCharacteristics: NV_ENC_VUI_TRANSFER_CHARACTERISTIC,
512    pub colourMatrix: NV_ENC_VUI_MATRIX_COEFFS,
513    pub chromaSampleLocationFlag: u32,
514    pub chromaSampleLocationTop: u32,
515    pub chromaSampleLocationBot: u32,
516    pub bitstreamRestrictionFlag: u32,
517    pub timingInfoPresentFlag: u32,
518    pub numUnitInTicks: u32,
519    pub timeScale: u32,
520    pub reserved: [u32; 12usize],
521}
522#[repr(C)]
523#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
524pub struct _NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE {
525    pub _bitfield_align_1: [u8; 0],
526    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
527    pub reserved1: [u32; 3usize],
528}
529#[repr(C)]
530#[repr(align(4))]
531#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
532pub struct _NVENC_EXTERNAL_ME_HINT {
533    pub _bitfield_align_1: [u16; 0],
534    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
535}
536#[repr(C)]
537#[repr(align(2))]
538#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
539pub struct _NVENC_EXTERNAL_ME_SB_HINT {
540    pub _bitfield_align_1: [u16; 0],
541    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 6usize]>,
542}
543#[repr(C)]
544#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
545pub struct _NV_ENC_CONFIG_H264 {
546    pub _bitfield_align_1: [u16; 0],
547    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
548    pub level: u32,
549    pub idrPeriod: u32,
550    pub separateColourPlaneFlag: u32,
551    pub disableDeblockingFilterIDC: u32,
552    pub numTemporalLayers: u32,
553    pub spsId: u32,
554    pub ppsId: u32,
555    pub adaptiveTransformMode: NV_ENC_H264_ADAPTIVE_TRANSFORM_MODE,
556    pub fmoMode: NV_ENC_H264_FMO_MODE,
557    pub bdirectMode: NV_ENC_H264_BDIRECT_MODE,
558    pub entropyCodingMode: NV_ENC_H264_ENTROPY_CODING_MODE,
559    pub stereoMode: NV_ENC_STEREO_PACKING_MODE,
560    pub intraRefreshPeriod: u32,
561    pub intraRefreshCnt: u32,
562    pub maxNumRefFrames: u32,
563    pub sliceMode: u32,
564    pub sliceModeData: u32,
565    pub h264VUIParameters: NV_ENC_CONFIG_H264_VUI_PARAMETERS,
566    pub ltrNumFrames: u32,
567    pub ltrTrustMode: u32,
568    pub chromaFormatIDC: u32,
569    pub maxTemporalLayers: u32,
570    pub useBFramesAsRef: NV_ENC_BFRAME_REF_MODE,
571    pub numRefL0: NV_ENC_NUM_REF_FRAMES,
572    pub numRefL1: NV_ENC_NUM_REF_FRAMES,
573    pub reserved1: [u32; 267usize],
574    pub reserved2: [*mut ::core::ffi::c_void; 64usize],
575}
576#[repr(C)]
577#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
578pub struct _NV_ENC_CONFIG_HEVC {
579    pub level: u32,
580    pub tier: u32,
581    pub minCUSize: NV_ENC_HEVC_CUSIZE,
582    pub maxCUSize: NV_ENC_HEVC_CUSIZE,
583    pub _bitfield_align_1: [u16; 0],
584    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
585    pub idrPeriod: u32,
586    pub intraRefreshPeriod: u32,
587    pub intraRefreshCnt: u32,
588    pub maxNumRefFramesInDPB: u32,
589    pub ltrNumFrames: u32,
590    pub vpsId: u32,
591    pub spsId: u32,
592    pub ppsId: u32,
593    pub sliceMode: u32,
594    pub sliceModeData: u32,
595    pub maxTemporalLayersMinus1: u32,
596    pub hevcVUIParameters: NV_ENC_CONFIG_HEVC_VUI_PARAMETERS,
597    pub ltrTrustMode: u32,
598    pub useBFramesAsRef: NV_ENC_BFRAME_REF_MODE,
599    pub numRefL0: NV_ENC_NUM_REF_FRAMES,
600    pub numRefL1: NV_ENC_NUM_REF_FRAMES,
601    pub reserved1: [u32; 214usize],
602    pub reserved2: [*mut ::core::ffi::c_void; 64usize],
603}
604#[repr(C)]
605#[repr(align(4))]
606#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
607pub struct _NV_ENC_FILM_GRAIN_PARAMS_AV1 {
608    pub _bitfield_align_1: [u8; 0],
609    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
610    pub pointYValue: [u8; 14usize],
611    pub pointYScaling: [u8; 14usize],
612    pub pointCbValue: [u8; 10usize],
613    pub pointCbScaling: [u8; 10usize],
614    pub pointCrValue: [u8; 10usize],
615    pub pointCrScaling: [u8; 10usize],
616    pub arCoeffsYPlus128: [u8; 24usize],
617    pub arCoeffsCbPlus128: [u8; 25usize],
618    pub arCoeffsCrPlus128: [u8; 25usize],
619    pub reserved2: [u8; 2usize],
620    pub cbMult: u8,
621    pub cbLumaMult: u8,
622    pub cbOffset: u16,
623    pub crMult: u8,
624    pub crLumaMult: u8,
625    pub crOffset: u16,
626}
627#[repr(C)]
628#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
629pub struct _NV_ENC_CONFIG_AV1 {
630    pub level: u32,
631    pub tier: u32,
632    pub minPartSize: NV_ENC_AV1_PART_SIZE,
633    pub maxPartSize: NV_ENC_AV1_PART_SIZE,
634    pub _bitfield_align_1: [u16; 0],
635    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
636    pub idrPeriod: u32,
637    pub intraRefreshPeriod: u32,
638    pub intraRefreshCnt: u32,
639    pub maxNumRefFramesInDPB: u32,
640    pub numTileColumns: u32,
641    pub numTileRows: u32,
642    pub tileWidths: *mut u32,
643    pub tileHeights: *mut u32,
644    pub maxTemporalLayersMinus1: u32,
645    pub colorPrimaries: NV_ENC_VUI_COLOR_PRIMARIES,
646    pub transferCharacteristics: NV_ENC_VUI_TRANSFER_CHARACTERISTIC,
647    pub matrixCoefficients: NV_ENC_VUI_MATRIX_COEFFS,
648    pub colorRange: u32,
649    pub chromaSamplePosition: u32,
650    pub useBFramesAsRef: NV_ENC_BFRAME_REF_MODE,
651    pub filmGrainParams: *mut NV_ENC_FILM_GRAIN_PARAMS_AV1,
652    pub numFwdRefs: NV_ENC_NUM_REF_FRAMES,
653    pub numBwdRefs: NV_ENC_NUM_REF_FRAMES,
654    pub reserved1: [u32; 235usize],
655    pub reserved2: [*mut ::core::ffi::c_void; 62usize],
656}
657#[repr(C)]
658#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
659pub struct _NV_ENC_CONFIG_H264_MEONLY {
660    pub _bitfield_align_1: [u32; 0],
661    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
662    pub reserved1: [u32; 255usize],
663    pub reserved2: [*mut ::core::ffi::c_void; 64usize],
664}
665#[repr(C)]
666#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
667pub struct _NV_ENC_CONFIG_HEVC_MEONLY {
668    pub reserved: [u32; 256usize],
669    pub reserved1: [*mut ::core::ffi::c_void; 64usize],
670}
671#[repr(C)]
672#[derive(Copy, Clone)]
673pub struct _NV_ENC_CONFIG {
674    pub version: u32,
675    pub profileGUID: GUID,
676    pub gopLength: u32,
677    pub frameIntervalP: i32,
678    pub monoChromeEncoding: u32,
679    pub frameFieldMode: NV_ENC_PARAMS_FRAME_FIELD_MODE,
680    pub mvPrecision: NV_ENC_MV_PRECISION,
681    pub rcParams: NV_ENC_RC_PARAMS,
682    pub encodeCodecConfig: NV_ENC_CODEC_CONFIG,
683    pub reserved: [u32; 278usize],
684    pub reserved2: [*mut ::core::ffi::c_void; 64usize],
685}
686#[repr(C)]
687#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
688pub struct _NV_ENC_INITIALIZE_PARAMS {
689    pub version: u32,
690    pub encodeGUID: GUID,
691    pub presetGUID: GUID,
692    pub encodeWidth: u32,
693    pub encodeHeight: u32,
694    pub darWidth: u32,
695    pub darHeight: u32,
696    pub frameRateNum: u32,
697    pub frameRateDen: u32,
698    pub enableEncodeAsync: u32,
699    pub enablePTD: u32,
700    pub _bitfield_align_1: [u32; 0],
701    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
702    pub privDataSize: u32,
703    pub privData: *mut ::core::ffi::c_void,
704    pub encodeConfig: *mut NV_ENC_CONFIG,
705    pub maxEncodeWidth: u32,
706    pub maxEncodeHeight: u32,
707    pub maxMEHintCountsPerBlock: [NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE; 2usize],
708    pub tuningInfo: NV_ENC_TUNING_INFO,
709    pub bufferFormat: NV_ENC_BUFFER_FORMAT,
710    pub numStateBuffers: u32,
711    pub outputStatsLevel: NV_ENC_OUTPUT_STATS_LEVEL,
712    pub reserved: [u32; 285usize],
713    pub reserved2: [*mut ::core::ffi::c_void; 64usize],
714}
715#[repr(C)]
716#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
717pub struct _NV_ENC_RECONFIGURE_PARAMS {
718    pub version: u32,
719    pub reInitEncodeParams: NV_ENC_INITIALIZE_PARAMS,
720    pub _bitfield_align_1: [u32; 0],
721    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
722    pub __bindgen_padding_0: u32,
723}
724#[repr(C)]
725#[derive(Copy, Clone)]
726pub struct _NV_ENC_PRESET_CONFIG {
727    pub version: u32,
728    pub presetCfg: NV_ENC_CONFIG,
729    pub reserved1: [u32; 255usize],
730    pub reserved2: [*mut ::core::ffi::c_void; 64usize],
731}
732#[repr(C)]
733#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
734pub struct _NV_ENC_PIC_PARAMS_MVC {
735    pub version: u32,
736    pub viewID: u32,
737    pub temporalID: u32,
738    pub priorityID: u32,
739    pub reserved1: [u32; 12usize],
740    pub reserved2: [*mut ::core::ffi::c_void; 8usize],
741}
742#[repr(C)]
743#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
744pub struct _NV_ENC_SEI_PAYLOAD {
745    pub payloadSize: u32,
746    pub payloadType: u32,
747    pub payload: *mut u8,
748}
749#[repr(C)]
750#[derive(Copy, Clone)]
751pub struct _NV_ENC_PIC_PARAMS_H264 {
752    pub displayPOCSyntax: u32,
753    pub reserved3: u32,
754    pub refPicFlag: u32,
755    pub colourPlaneId: u32,
756    pub forceIntraRefreshWithFrameCnt: u32,
757    pub _bitfield_align_1: [u32; 0],
758    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
759    pub sliceTypeData: *mut u8,
760    pub sliceTypeArrayCnt: u32,
761    pub seiPayloadArrayCnt: u32,
762    pub seiPayloadArray: *mut NV_ENC_SEI_PAYLOAD,
763    pub sliceMode: u32,
764    pub sliceModeData: u32,
765    pub ltrMarkFrameIdx: u32,
766    pub ltrUseFrameBitmap: u32,
767    pub ltrUsageMode: u32,
768    pub forceIntraSliceCount: u32,
769    pub forceIntraSliceIdx: *mut u32,
770    pub h264ExtPicParams: NV_ENC_PIC_PARAMS_H264_EXT,
771    pub timeCode: NV_ENC_TIME_CODE,
772    pub reserved: [u32; 203usize],
773    pub reserved2: [*mut ::core::ffi::c_void; 61usize],
774}
775#[repr(C)]
776#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
777pub struct _NV_ENC_PIC_PARAMS_HEVC {
778    pub displayPOCSyntax: u32,
779    pub refPicFlag: u32,
780    pub temporalId: u32,
781    pub forceIntraRefreshWithFrameCnt: u32,
782    pub _bitfield_align_1: [u32; 0],
783    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
784    pub sliceTypeData: *mut u8,
785    pub sliceTypeArrayCnt: u32,
786    pub sliceMode: u32,
787    pub sliceModeData: u32,
788    pub ltrMarkFrameIdx: u32,
789    pub ltrUseFrameBitmap: u32,
790    pub ltrUsageMode: u32,
791    pub seiPayloadArrayCnt: u32,
792    pub reserved: u32,
793    pub seiPayloadArray: *mut NV_ENC_SEI_PAYLOAD,
794    pub timeCode: NV_ENC_TIME_CODE,
795    pub reserved2: [u32; 237usize],
796    pub reserved3: [*mut ::core::ffi::c_void; 61usize],
797}
798#[repr(C)]
799#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
800pub struct _NV_ENC_PIC_PARAMS_AV1 {
801    pub displayPOCSyntax: u32,
802    pub refPicFlag: u32,
803    pub temporalId: u32,
804    pub forceIntraRefreshWithFrameCnt: u32,
805    pub _bitfield_align_1: [u32; 0],
806    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
807    pub numTileColumns: u32,
808    pub numTileRows: u32,
809    pub tileWidths: *mut u32,
810    pub tileHeights: *mut u32,
811    pub obuPayloadArrayCnt: u32,
812    pub reserved: u32,
813    pub obuPayloadArray: *mut NV_ENC_SEI_PAYLOAD,
814    pub filmGrainParams: *mut NV_ENC_FILM_GRAIN_PARAMS_AV1,
815    pub reserved2: [u32; 247usize],
816    pub reserved3: [*mut ::core::ffi::c_void; 61usize],
817}
818#[repr(C)]
819#[derive(Copy, Clone)]
820pub struct _NV_ENC_PIC_PARAMS {
821    pub version: u32,
822    pub inputWidth: u32,
823    pub inputHeight: u32,
824    pub inputPitch: u32,
825    pub encodePicFlags: u32,
826    pub frameIdx: u32,
827    pub inputTimeStamp: u64,
828    pub inputDuration: u64,
829    pub inputBuffer: NV_ENC_INPUT_PTR,
830    pub outputBitstream: NV_ENC_OUTPUT_PTR,
831    pub completionEvent: *mut ::core::ffi::c_void,
832    pub bufferFmt: NV_ENC_BUFFER_FORMAT,
833    pub pictureStruct: NV_ENC_PIC_STRUCT,
834    pub pictureType: NV_ENC_PIC_TYPE,
835    pub codecPicParams: NV_ENC_CODEC_PIC_PARAMS,
836    pub meHintCountsPerBlock: [NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE; 2usize],
837    pub meExternalHints: *mut NVENC_EXTERNAL_ME_HINT,
838    pub reserved1: [u32; 6usize],
839    pub reserved2: [*mut ::core::ffi::c_void; 2usize],
840    pub qpDeltaMap: *mut i8,
841    pub qpDeltaMapSize: u32,
842    pub reservedBitFields: u32,
843    pub meHintRefPicDist: [u16; 2usize],
844    pub alphaBuffer: NV_ENC_INPUT_PTR,
845    pub meExternalSbHints: *mut NVENC_EXTERNAL_ME_SB_HINT,
846    pub meSbHintsCount: u32,
847    pub stateBufferIdx: u32,
848    pub outputReconBuffer: NV_ENC_OUTPUT_PTR,
849    pub reserved3: [u32; 284usize],
850    pub reserved4: [*mut ::core::ffi::c_void; 57usize],
851}
852#[repr(C)]
853#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
854pub struct _NV_ENC_MEONLY_PARAMS {
855    pub version: u32,
856    pub inputWidth: u32,
857    pub inputHeight: u32,
858    pub inputBuffer: NV_ENC_INPUT_PTR,
859    pub referenceFrame: NV_ENC_INPUT_PTR,
860    pub mvBuffer: NV_ENC_OUTPUT_PTR,
861    pub bufferFmt: NV_ENC_BUFFER_FORMAT,
862    pub completionEvent: *mut ::core::ffi::c_void,
863    pub viewID: u32,
864    pub meHintCountsPerBlock: [NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE; 2usize],
865    pub meExternalHints: *mut NVENC_EXTERNAL_ME_HINT,
866    pub reserved1: [u32; 243usize],
867    pub reserved2: [*mut ::core::ffi::c_void; 59usize],
868}
869#[repr(C)]
870#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
871pub struct _NV_ENC_LOCK_BITSTREAM {
872    pub version: u32,
873    pub _bitfield_align_1: [u32; 0],
874    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
875    pub outputBitstream: *mut ::core::ffi::c_void,
876    pub sliceOffsets: *mut u32,
877    pub frameIdx: u32,
878    pub hwEncodeStatus: u32,
879    pub numSlices: u32,
880    pub bitstreamSizeInBytes: u32,
881    pub outputTimeStamp: u64,
882    pub outputDuration: u64,
883    pub bitstreamBufferPtr: *mut ::core::ffi::c_void,
884    pub pictureType: NV_ENC_PIC_TYPE,
885    pub pictureStruct: NV_ENC_PIC_STRUCT,
886    pub frameAvgQP: u32,
887    pub frameSatd: u32,
888    pub ltrFrameIdx: u32,
889    pub ltrFrameBitmap: u32,
890    pub temporalId: u32,
891    pub intraMBCount: u32,
892    pub interMBCount: u32,
893    pub averageMVX: i32,
894    pub averageMVY: i32,
895    pub alphaLayerSizeInBytes: u32,
896    pub outputStatsPtrSize: u32,
897    pub outputStatsPtr: *mut ::core::ffi::c_void,
898    pub frameIdxDisplay: u32,
899    pub reserved1: [u32; 220usize],
900    pub reserved2: [*mut ::core::ffi::c_void; 63usize],
901    pub reservedInternal: [u32; 8usize],
902}
903#[repr(C)]
904#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
905pub struct _NV_ENC_LOCK_INPUT_BUFFER {
906    pub version: u32,
907    pub _bitfield_align_1: [u32; 0],
908    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
909    pub inputBuffer: NV_ENC_INPUT_PTR,
910    pub bufferDataPtr: *mut ::core::ffi::c_void,
911    pub pitch: u32,
912    pub reserved1: [u32; 251usize],
913    pub reserved2: [*mut ::core::ffi::c_void; 64usize],
914}
915#[repr(C)]
916#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
917pub struct _NV_ENC_MAP_INPUT_RESOURCE {
918    pub version: u32,
919    pub subResourceIndex: u32,
920    pub inputResource: *mut ::core::ffi::c_void,
921    pub registeredResource: NV_ENC_REGISTERED_PTR,
922    pub mappedResource: NV_ENC_INPUT_PTR,
923    pub mappedBufferFmt: NV_ENC_BUFFER_FORMAT,
924    pub reserved1: [u32; 251usize],
925    pub reserved2: [*mut ::core::ffi::c_void; 63usize],
926}
927#[repr(C)]
928#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
929pub struct _NV_ENC_INPUT_RESOURCE_OPENGL_TEX {
930    pub texture: u32,
931    pub target: u32,
932}
933#[repr(C)]
934#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
935pub struct _NV_ENC_FENCE_POINT_D3D12 {
936    pub version: u32,
937    pub reserved: u32,
938    pub pFence: *mut ::core::ffi::c_void,
939    pub waitValue: u64,
940    pub signalValue: u64,
941    pub _bitfield_align_1: [u32; 0],
942    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
943    pub reserved1: [u32; 7usize],
944}
945#[repr(C)]
946#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
947pub struct _NV_ENC_INPUT_RESOURCE_D3D12 {
948    pub version: u32,
949    pub reserved: u32,
950    pub pInputBuffer: NV_ENC_INPUT_PTR,
951    pub inputFencePoint: NV_ENC_FENCE_POINT_D3D12,
952    pub reserved1: [u32; 16usize],
953    pub reserved2: [*mut ::core::ffi::c_void; 16usize],
954}
955#[repr(C)]
956#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
957pub struct _NV_ENC_OUTPUT_RESOURCE_D3D12 {
958    pub version: u32,
959    pub reserved: u32,
960    pub pOutputBuffer: NV_ENC_INPUT_PTR,
961    pub outputFencePoint: NV_ENC_FENCE_POINT_D3D12,
962    pub reserved1: [u32; 16usize],
963    pub reserved2: [*mut ::core::ffi::c_void; 16usize],
964}
965#[repr(C)]
966#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
967pub struct _NV_ENC_REGISTER_RESOURCE {
968    pub version: u32,
969    pub resourceType: NV_ENC_INPUT_RESOURCE_TYPE,
970    pub width: u32,
971    pub height: u32,
972    pub pitch: u32,
973    pub subResourceIndex: u32,
974    pub resourceToRegister: *mut ::core::ffi::c_void,
975    pub registeredResource: NV_ENC_REGISTERED_PTR,
976    pub bufferFormat: NV_ENC_BUFFER_FORMAT,
977    pub bufferUsage: NV_ENC_BUFFER_USAGE,
978    pub pInputFencePoint: *mut NV_ENC_FENCE_POINT_D3D12,
979    pub chromaOffset: [u32; 2usize],
980    pub reserved1: [u32; 245usize],
981    pub reserved2: [*mut ::core::ffi::c_void; 61usize],
982}
983#[repr(C)]
984#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
985pub struct _NV_ENC_STAT {
986    pub version: u32,
987    pub reserved: u32,
988    pub outputBitStream: NV_ENC_OUTPUT_PTR,
989    pub bitStreamSize: u32,
990    pub picType: u32,
991    pub lastValidByteOffset: u32,
992    pub sliceOffsets: [u32; 16usize],
993    pub picIdx: u32,
994    pub frameAvgQP: u32,
995    pub _bitfield_align_1: [u32; 0],
996    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
997    pub ltrFrameIdx: u32,
998    pub intraMBCount: u32,
999    pub interMBCount: u32,
1000    pub averageMVX: i32,
1001    pub averageMVY: i32,
1002    pub reserved1: [u32; 226usize],
1003    pub reserved2: [*mut ::core::ffi::c_void; 64usize],
1004}
1005#[repr(C)]
1006#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1007pub struct _NV_ENC_SEQUENCE_PARAM_PAYLOAD {
1008    pub version: u32,
1009    pub inBufferSize: u32,
1010    pub spsId: u32,
1011    pub ppsId: u32,
1012    pub spsppsBuffer: *mut ::core::ffi::c_void,
1013    pub outSPSPPSPayloadSize: *mut u32,
1014    pub reserved: [u32; 250usize],
1015    pub reserved2: [*mut ::core::ffi::c_void; 64usize],
1016}
1017#[repr(C)]
1018#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1019pub struct _NV_ENC_EVENT_PARAMS {
1020    pub version: u32,
1021    pub reserved: u32,
1022    pub completionEvent: *mut ::core::ffi::c_void,
1023    pub reserved1: [u32; 253usize],
1024    pub reserved2: [*mut ::core::ffi::c_void; 64usize],
1025}
1026#[repr(C)]
1027#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1028pub struct _NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS {
1029    pub version: u32,
1030    pub deviceType: NV_ENC_DEVICE_TYPE,
1031    pub device: *mut ::core::ffi::c_void,
1032    pub reserved: *mut ::core::ffi::c_void,
1033    pub apiVersion: u32,
1034    pub reserved1: [u32; 253usize],
1035    pub reserved2: [*mut ::core::ffi::c_void; 64usize],
1036}
1037#[repr(C)]
1038#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1039pub struct _NV_ENCODE_API_FUNCTION_LIST {
1040    pub version: u32,
1041    pub reserved: u32,
1042    pub nvEncOpenEncodeSession: PNVENCOPENENCODESESSION,
1043    pub nvEncGetEncodeGUIDCount: PNVENCGETENCODEGUIDCOUNT,
1044    pub nvEncGetEncodeProfileGUIDCount: PNVENCGETENCODEPRESETCOUNT,
1045    pub nvEncGetEncodeProfileGUIDs: PNVENCGETENCODEPRESETGUIDS,
1046    pub nvEncGetEncodeGUIDs: PNVENCGETENCODEGUIDS,
1047    pub nvEncGetInputFormatCount: PNVENCGETINPUTFORMATCOUNT,
1048    pub nvEncGetInputFormats: PNVENCGETINPUTFORMATS,
1049    pub nvEncGetEncodeCaps: PNVENCGETENCODECAPS,
1050    pub nvEncGetEncodePresetCount: PNVENCGETENCODEPRESETCOUNT,
1051    pub nvEncGetEncodePresetGUIDs: PNVENCGETENCODEPRESETGUIDS,
1052    pub nvEncGetEncodePresetConfig: PNVENCGETENCODEPRESETCONFIG,
1053    pub nvEncInitializeEncoder: PNVENCINITIALIZEENCODER,
1054    pub nvEncCreateInputBuffer: PNVENCCREATEINPUTBUFFER,
1055    pub nvEncDestroyInputBuffer: PNVENCDESTROYINPUTBUFFER,
1056    pub nvEncCreateBitstreamBuffer: PNVENCCREATEBITSTREAMBUFFER,
1057    pub nvEncDestroyBitstreamBuffer: PNVENCDESTROYBITSTREAMBUFFER,
1058    pub nvEncEncodePicture: PNVENCENCODEPICTURE,
1059    pub nvEncLockBitstream: PNVENCLOCKBITSTREAM,
1060    pub nvEncUnlockBitstream: PNVENCUNLOCKBITSTREAM,
1061    pub nvEncLockInputBuffer: PNVENCLOCKINPUTBUFFER,
1062    pub nvEncUnlockInputBuffer: PNVENCUNLOCKINPUTBUFFER,
1063    pub nvEncGetEncodeStats: PNVENCGETENCODESTATS,
1064    pub nvEncGetSequenceParams: PNVENCGETSEQUENCEPARAMS,
1065    pub nvEncRegisterAsyncEvent: PNVENCREGISTERASYNCEVENT,
1066    pub nvEncUnregisterAsyncEvent: PNVENCUNREGISTERASYNCEVENT,
1067    pub nvEncMapInputResource: PNVENCMAPINPUTRESOURCE,
1068    pub nvEncUnmapInputResource: PNVENCUNMAPINPUTRESOURCE,
1069    pub nvEncDestroyEncoder: PNVENCDESTROYENCODER,
1070    pub nvEncInvalidateRefFrames: PNVENCINVALIDATEREFFRAMES,
1071    pub nvEncOpenEncodeSessionEx: PNVENCOPENENCODESESSIONEX,
1072    pub nvEncRegisterResource: PNVENCREGISTERRESOURCE,
1073    pub nvEncUnregisterResource: PNVENCUNREGISTERRESOURCE,
1074    pub nvEncReconfigureEncoder: PNVENCRECONFIGUREENCODER,
1075    pub reserved1: *mut ::core::ffi::c_void,
1076    pub nvEncCreateMVBuffer: PNVENCCREATEMVBUFFER,
1077    pub nvEncDestroyMVBuffer: PNVENCDESTROYMVBUFFER,
1078    pub nvEncRunMotionEstimationOnly: PNVENCRUNMOTIONESTIMATIONONLY,
1079    pub nvEncGetLastErrorString: PNVENCGETLASTERROR,
1080    pub nvEncSetIOCudaStreams: PNVENCSETIOCUDASTREAMS,
1081    pub nvEncGetEncodePresetConfigEx: PNVENCGETENCODEPRESETCONFIGEX,
1082    pub nvEncGetSequenceParamEx: PNVENCGETSEQUENCEPARAMEX,
1083    pub nvEncRestoreEncoderState: PNVENCRESTOREENCODERSTATE,
1084    pub nvEncLookaheadPicture: PNVENCLOOKAHEADPICTURE,
1085    pub reserved2: [*mut ::core::ffi::c_void; 275usize],
1086}
1087pub const NVENCAPI_MAJOR_VERSION: u32 = 12;
1088pub const NVENCAPI_MINOR_VERSION: u32 = 1;
1089pub const NVENCAPI_VERSION: u32 = 16777228;
1090pub const NVENC_INFINITE_GOPLENGTH: u32 = 4294967295;
1091pub const NV_MAX_SEQ_HDR_LEN: u32 = 512;
1092pub const NV_MAX_TILE_COLS_AV1: u32 = 64;
1093pub const NV_MAX_TILE_ROWS_AV1: u32 = 64;
1094#[test]
1095fn bindgen_test_layout__GUID() {
1096    const UNINIT: ::core::mem::MaybeUninit<_GUID> = ::core::mem::MaybeUninit::uninit();
1097    let ptr = UNINIT.as_ptr();
1098    assert_eq!(
1099        ::core::mem::size_of::<_GUID>(),
1100        16usize,
1101        concat!("Size of: ", stringify!(_GUID))
1102    );
1103    assert_eq!(
1104        ::core::mem::align_of::<_GUID>(),
1105        4usize,
1106        concat!("Alignment of ", stringify!(_GUID))
1107    );
1108    assert_eq!(
1109        unsafe { ::core::ptr::addr_of!((*ptr).Data1) as usize - ptr as usize },
1110        0usize,
1111        concat!(
1112            "Offset of field: ",
1113            stringify!(_GUID),
1114            "::",
1115            stringify!(Data1)
1116        )
1117    );
1118    assert_eq!(
1119        unsafe { ::core::ptr::addr_of!((*ptr).Data2) as usize - ptr as usize },
1120        4usize,
1121        concat!(
1122            "Offset of field: ",
1123            stringify!(_GUID),
1124            "::",
1125            stringify!(Data2)
1126        )
1127    );
1128    assert_eq!(
1129        unsafe { ::core::ptr::addr_of!((*ptr).Data3) as usize - ptr as usize },
1130        6usize,
1131        concat!(
1132            "Offset of field: ",
1133            stringify!(_GUID),
1134            "::",
1135            stringify!(Data3)
1136        )
1137    );
1138    assert_eq!(
1139        unsafe { ::core::ptr::addr_of!((*ptr).Data4) as usize - ptr as usize },
1140        8usize,
1141        concat!(
1142            "Offset of field: ",
1143            stringify!(_GUID),
1144            "::",
1145            stringify!(Data4)
1146        )
1147    );
1148}
1149#[test]
1150fn bindgen_test_layout__NVENC_RECT() {
1151    const UNINIT: ::core::mem::MaybeUninit<_NVENC_RECT> = ::core::mem::MaybeUninit::uninit();
1152    let ptr = UNINIT.as_ptr();
1153    assert_eq!(
1154        ::core::mem::size_of::<_NVENC_RECT>(),
1155        16usize,
1156        concat!("Size of: ", stringify!(_NVENC_RECT))
1157    );
1158    assert_eq!(
1159        ::core::mem::align_of::<_NVENC_RECT>(),
1160        4usize,
1161        concat!("Alignment of ", stringify!(_NVENC_RECT))
1162    );
1163    assert_eq!(
1164        unsafe { ::core::ptr::addr_of!((*ptr).left) as usize - ptr as usize },
1165        0usize,
1166        concat!(
1167            "Offset of field: ",
1168            stringify!(_NVENC_RECT),
1169            "::",
1170            stringify!(left)
1171        )
1172    );
1173    assert_eq!(
1174        unsafe { ::core::ptr::addr_of!((*ptr).top) as usize - ptr as usize },
1175        4usize,
1176        concat!(
1177            "Offset of field: ",
1178            stringify!(_NVENC_RECT),
1179            "::",
1180            stringify!(top)
1181        )
1182    );
1183    assert_eq!(
1184        unsafe { ::core::ptr::addr_of!((*ptr).right) as usize - ptr as usize },
1185        8usize,
1186        concat!(
1187            "Offset of field: ",
1188            stringify!(_NVENC_RECT),
1189            "::",
1190            stringify!(right)
1191        )
1192    );
1193    assert_eq!(
1194        unsafe { ::core::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize },
1195        12usize,
1196        concat!(
1197            "Offset of field: ",
1198            stringify!(_NVENC_RECT),
1199            "::",
1200            stringify!(bottom)
1201        )
1202    );
1203}
1204#[test]
1205fn bindgen_test_layout__NV_ENC_CAPS_PARAM() {
1206    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CAPS_PARAM> = ::core::mem::MaybeUninit::uninit();
1207    let ptr = UNINIT.as_ptr();
1208    assert_eq!(
1209        ::core::mem::size_of::<_NV_ENC_CAPS_PARAM>(),
1210        256usize,
1211        concat!("Size of: ", stringify!(_NV_ENC_CAPS_PARAM))
1212    );
1213    assert_eq!(
1214        ::core::mem::align_of::<_NV_ENC_CAPS_PARAM>(),
1215        4usize,
1216        concat!("Alignment of ", stringify!(_NV_ENC_CAPS_PARAM))
1217    );
1218    assert_eq!(
1219        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
1220        0usize,
1221        concat!(
1222            "Offset of field: ",
1223            stringify!(_NV_ENC_CAPS_PARAM),
1224            "::",
1225            stringify!(version)
1226        )
1227    );
1228    assert_eq!(
1229        unsafe { ::core::ptr::addr_of!((*ptr).capsToQuery) as usize - ptr as usize },
1230        4usize,
1231        concat!(
1232            "Offset of field: ",
1233            stringify!(_NV_ENC_CAPS_PARAM),
1234            "::",
1235            stringify!(capsToQuery)
1236        )
1237    );
1238    assert_eq!(
1239        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
1240        8usize,
1241        concat!(
1242            "Offset of field: ",
1243            stringify!(_NV_ENC_CAPS_PARAM),
1244            "::",
1245            stringify!(reserved)
1246        )
1247    );
1248}
1249#[test]
1250fn bindgen_test_layout__NV_ENC_RESTORE_ENCODER_STATE_PARAMS() {
1251    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_RESTORE_ENCODER_STATE_PARAMS> =
1252        ::core::mem::MaybeUninit::uninit();
1253    let ptr = UNINIT.as_ptr();
1254    assert_eq!(
1255        ::core::mem::size_of::<_NV_ENC_RESTORE_ENCODER_STATE_PARAMS>(),
1256        800usize,
1257        concat!(
1258            "Size of: ",
1259            stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS)
1260        )
1261    );
1262    assert_eq!(
1263        ::core::mem::align_of::<_NV_ENC_RESTORE_ENCODER_STATE_PARAMS>(),
1264        8usize,
1265        concat!(
1266            "Alignment of ",
1267            stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS)
1268        )
1269    );
1270    assert_eq!(
1271        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
1272        0usize,
1273        concat!(
1274            "Offset of field: ",
1275            stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS),
1276            "::",
1277            stringify!(version)
1278        )
1279    );
1280    assert_eq!(
1281        unsafe { ::core::ptr::addr_of!((*ptr).bufferIdx) as usize - ptr as usize },
1282        4usize,
1283        concat!(
1284            "Offset of field: ",
1285            stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS),
1286            "::",
1287            stringify!(bufferIdx)
1288        )
1289    );
1290    assert_eq!(
1291        unsafe { ::core::ptr::addr_of!((*ptr).state) as usize - ptr as usize },
1292        8usize,
1293        concat!(
1294            "Offset of field: ",
1295            stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS),
1296            "::",
1297            stringify!(state)
1298        )
1299    );
1300    assert_eq!(
1301        unsafe { ::core::ptr::addr_of!((*ptr).outputBitstream) as usize - ptr as usize },
1302        16usize,
1303        concat!(
1304            "Offset of field: ",
1305            stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS),
1306            "::",
1307            stringify!(outputBitstream)
1308        )
1309    );
1310    assert_eq!(
1311        unsafe { ::core::ptr::addr_of!((*ptr).completionEvent) as usize - ptr as usize },
1312        24usize,
1313        concat!(
1314            "Offset of field: ",
1315            stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS),
1316            "::",
1317            stringify!(completionEvent)
1318        )
1319    );
1320    assert_eq!(
1321        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
1322        32usize,
1323        concat!(
1324            "Offset of field: ",
1325            stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS),
1326            "::",
1327            stringify!(reserved1)
1328        )
1329    );
1330    assert_eq!(
1331        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
1332        288usize,
1333        concat!(
1334            "Offset of field: ",
1335            stringify!(_NV_ENC_RESTORE_ENCODER_STATE_PARAMS),
1336            "::",
1337            stringify!(reserved2)
1338        )
1339    );
1340}
1341#[test]
1342fn bindgen_test_layout__NV_ENC_OUTPUT_STATS_BLOCK() {
1343    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_OUTPUT_STATS_BLOCK> =
1344        ::core::mem::MaybeUninit::uninit();
1345    let ptr = UNINIT.as_ptr();
1346    assert_eq!(
1347        ::core::mem::size_of::<_NV_ENC_OUTPUT_STATS_BLOCK>(),
1348        64usize,
1349        concat!("Size of: ", stringify!(_NV_ENC_OUTPUT_STATS_BLOCK))
1350    );
1351    assert_eq!(
1352        ::core::mem::align_of::<_NV_ENC_OUTPUT_STATS_BLOCK>(),
1353        4usize,
1354        concat!("Alignment of ", stringify!(_NV_ENC_OUTPUT_STATS_BLOCK))
1355    );
1356    assert_eq!(
1357        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
1358        0usize,
1359        concat!(
1360            "Offset of field: ",
1361            stringify!(_NV_ENC_OUTPUT_STATS_BLOCK),
1362            "::",
1363            stringify!(version)
1364        )
1365    );
1366    assert_eq!(
1367        unsafe { ::core::ptr::addr_of!((*ptr).QP) as usize - ptr as usize },
1368        4usize,
1369        concat!(
1370            "Offset of field: ",
1371            stringify!(_NV_ENC_OUTPUT_STATS_BLOCK),
1372            "::",
1373            stringify!(QP)
1374        )
1375    );
1376    assert_eq!(
1377        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
1378        5usize,
1379        concat!(
1380            "Offset of field: ",
1381            stringify!(_NV_ENC_OUTPUT_STATS_BLOCK),
1382            "::",
1383            stringify!(reserved)
1384        )
1385    );
1386    assert_eq!(
1387        unsafe { ::core::ptr::addr_of!((*ptr).bitcount) as usize - ptr as usize },
1388        8usize,
1389        concat!(
1390            "Offset of field: ",
1391            stringify!(_NV_ENC_OUTPUT_STATS_BLOCK),
1392            "::",
1393            stringify!(bitcount)
1394        )
1395    );
1396    assert_eq!(
1397        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
1398        12usize,
1399        concat!(
1400            "Offset of field: ",
1401            stringify!(_NV_ENC_OUTPUT_STATS_BLOCK),
1402            "::",
1403            stringify!(reserved1)
1404        )
1405    );
1406}
1407#[test]
1408fn bindgen_test_layout__NV_ENC_OUTPUT_STATS_ROW() {
1409    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_OUTPUT_STATS_ROW> =
1410        ::core::mem::MaybeUninit::uninit();
1411    let ptr = UNINIT.as_ptr();
1412    assert_eq!(
1413        ::core::mem::size_of::<_NV_ENC_OUTPUT_STATS_ROW>(),
1414        64usize,
1415        concat!("Size of: ", stringify!(_NV_ENC_OUTPUT_STATS_ROW))
1416    );
1417    assert_eq!(
1418        ::core::mem::align_of::<_NV_ENC_OUTPUT_STATS_ROW>(),
1419        4usize,
1420        concat!("Alignment of ", stringify!(_NV_ENC_OUTPUT_STATS_ROW))
1421    );
1422    assert_eq!(
1423        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
1424        0usize,
1425        concat!(
1426            "Offset of field: ",
1427            stringify!(_NV_ENC_OUTPUT_STATS_ROW),
1428            "::",
1429            stringify!(version)
1430        )
1431    );
1432    assert_eq!(
1433        unsafe { ::core::ptr::addr_of!((*ptr).QP) as usize - ptr as usize },
1434        4usize,
1435        concat!(
1436            "Offset of field: ",
1437            stringify!(_NV_ENC_OUTPUT_STATS_ROW),
1438            "::",
1439            stringify!(QP)
1440        )
1441    );
1442    assert_eq!(
1443        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
1444        5usize,
1445        concat!(
1446            "Offset of field: ",
1447            stringify!(_NV_ENC_OUTPUT_STATS_ROW),
1448            "::",
1449            stringify!(reserved)
1450        )
1451    );
1452    assert_eq!(
1453        unsafe { ::core::ptr::addr_of!((*ptr).bitcount) as usize - ptr as usize },
1454        8usize,
1455        concat!(
1456            "Offset of field: ",
1457            stringify!(_NV_ENC_OUTPUT_STATS_ROW),
1458            "::",
1459            stringify!(bitcount)
1460        )
1461    );
1462    assert_eq!(
1463        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
1464        12usize,
1465        concat!(
1466            "Offset of field: ",
1467            stringify!(_NV_ENC_OUTPUT_STATS_ROW),
1468            "::",
1469            stringify!(reserved1)
1470        )
1471    );
1472}
1473#[test]
1474fn bindgen_test_layout__NV_ENC_ENCODE_OUT_PARAMS() {
1475    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_ENCODE_OUT_PARAMS> =
1476        ::core::mem::MaybeUninit::uninit();
1477    let ptr = UNINIT.as_ptr();
1478    assert_eq!(
1479        ::core::mem::size_of::<_NV_ENC_ENCODE_OUT_PARAMS>(),
1480        256usize,
1481        concat!("Size of: ", stringify!(_NV_ENC_ENCODE_OUT_PARAMS))
1482    );
1483    assert_eq!(
1484        ::core::mem::align_of::<_NV_ENC_ENCODE_OUT_PARAMS>(),
1485        4usize,
1486        concat!("Alignment of ", stringify!(_NV_ENC_ENCODE_OUT_PARAMS))
1487    );
1488    assert_eq!(
1489        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
1490        0usize,
1491        concat!(
1492            "Offset of field: ",
1493            stringify!(_NV_ENC_ENCODE_OUT_PARAMS),
1494            "::",
1495            stringify!(version)
1496        )
1497    );
1498    assert_eq!(
1499        unsafe { ::core::ptr::addr_of!((*ptr).bitstreamSizeInBytes) as usize - ptr as usize },
1500        4usize,
1501        concat!(
1502            "Offset of field: ",
1503            stringify!(_NV_ENC_ENCODE_OUT_PARAMS),
1504            "::",
1505            stringify!(bitstreamSizeInBytes)
1506        )
1507    );
1508    assert_eq!(
1509        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
1510        8usize,
1511        concat!(
1512            "Offset of field: ",
1513            stringify!(_NV_ENC_ENCODE_OUT_PARAMS),
1514            "::",
1515            stringify!(reserved)
1516        )
1517    );
1518}
1519#[test]
1520fn bindgen_test_layout__NV_ENC_LOOKAHEAD_PIC_PARAMS() {
1521    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_LOOKAHEAD_PIC_PARAMS> =
1522        ::core::mem::MaybeUninit::uninit();
1523    let ptr = UNINIT.as_ptr();
1524    assert_eq!(
1525        ::core::mem::size_of::<_NV_ENC_LOOKAHEAD_PIC_PARAMS>(),
1526        792usize,
1527        concat!("Size of: ", stringify!(_NV_ENC_LOOKAHEAD_PIC_PARAMS))
1528    );
1529    assert_eq!(
1530        ::core::mem::align_of::<_NV_ENC_LOOKAHEAD_PIC_PARAMS>(),
1531        8usize,
1532        concat!("Alignment of ", stringify!(_NV_ENC_LOOKAHEAD_PIC_PARAMS))
1533    );
1534    assert_eq!(
1535        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
1536        0usize,
1537        concat!(
1538            "Offset of field: ",
1539            stringify!(_NV_ENC_LOOKAHEAD_PIC_PARAMS),
1540            "::",
1541            stringify!(version)
1542        )
1543    );
1544    assert_eq!(
1545        unsafe { ::core::ptr::addr_of!((*ptr).inputBuffer) as usize - ptr as usize },
1546        8usize,
1547        concat!(
1548            "Offset of field: ",
1549            stringify!(_NV_ENC_LOOKAHEAD_PIC_PARAMS),
1550            "::",
1551            stringify!(inputBuffer)
1552        )
1553    );
1554    assert_eq!(
1555        unsafe { ::core::ptr::addr_of!((*ptr).pictureType) as usize - ptr as usize },
1556        16usize,
1557        concat!(
1558            "Offset of field: ",
1559            stringify!(_NV_ENC_LOOKAHEAD_PIC_PARAMS),
1560            "::",
1561            stringify!(pictureType)
1562        )
1563    );
1564    assert_eq!(
1565        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
1566        20usize,
1567        concat!(
1568            "Offset of field: ",
1569            stringify!(_NV_ENC_LOOKAHEAD_PIC_PARAMS),
1570            "::",
1571            stringify!(reserved)
1572        )
1573    );
1574    assert_eq!(
1575        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
1576        280usize,
1577        concat!(
1578            "Offset of field: ",
1579            stringify!(_NV_ENC_LOOKAHEAD_PIC_PARAMS),
1580            "::",
1581            stringify!(reserved1)
1582        )
1583    );
1584}
1585#[test]
1586fn bindgen_test_layout__NV_ENC_CREATE_INPUT_BUFFER() {
1587    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CREATE_INPUT_BUFFER> =
1588        ::core::mem::MaybeUninit::uninit();
1589    let ptr = UNINIT.as_ptr();
1590    assert_eq!(
1591        ::core::mem::size_of::<_NV_ENC_CREATE_INPUT_BUFFER>(),
1592        776usize,
1593        concat!("Size of: ", stringify!(_NV_ENC_CREATE_INPUT_BUFFER))
1594    );
1595    assert_eq!(
1596        ::core::mem::align_of::<_NV_ENC_CREATE_INPUT_BUFFER>(),
1597        8usize,
1598        concat!("Alignment of ", stringify!(_NV_ENC_CREATE_INPUT_BUFFER))
1599    );
1600    assert_eq!(
1601        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
1602        0usize,
1603        concat!(
1604            "Offset of field: ",
1605            stringify!(_NV_ENC_CREATE_INPUT_BUFFER),
1606            "::",
1607            stringify!(version)
1608        )
1609    );
1610    assert_eq!(
1611        unsafe { ::core::ptr::addr_of!((*ptr).width) as usize - ptr as usize },
1612        4usize,
1613        concat!(
1614            "Offset of field: ",
1615            stringify!(_NV_ENC_CREATE_INPUT_BUFFER),
1616            "::",
1617            stringify!(width)
1618        )
1619    );
1620    assert_eq!(
1621        unsafe { ::core::ptr::addr_of!((*ptr).height) as usize - ptr as usize },
1622        8usize,
1623        concat!(
1624            "Offset of field: ",
1625            stringify!(_NV_ENC_CREATE_INPUT_BUFFER),
1626            "::",
1627            stringify!(height)
1628        )
1629    );
1630    assert_eq!(
1631        unsafe { ::core::ptr::addr_of!((*ptr).memoryHeap) as usize - ptr as usize },
1632        12usize,
1633        concat!(
1634            "Offset of field: ",
1635            stringify!(_NV_ENC_CREATE_INPUT_BUFFER),
1636            "::",
1637            stringify!(memoryHeap)
1638        )
1639    );
1640    assert_eq!(
1641        unsafe { ::core::ptr::addr_of!((*ptr).bufferFmt) as usize - ptr as usize },
1642        16usize,
1643        concat!(
1644            "Offset of field: ",
1645            stringify!(_NV_ENC_CREATE_INPUT_BUFFER),
1646            "::",
1647            stringify!(bufferFmt)
1648        )
1649    );
1650    assert_eq!(
1651        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
1652        20usize,
1653        concat!(
1654            "Offset of field: ",
1655            stringify!(_NV_ENC_CREATE_INPUT_BUFFER),
1656            "::",
1657            stringify!(reserved)
1658        )
1659    );
1660    assert_eq!(
1661        unsafe { ::core::ptr::addr_of!((*ptr).inputBuffer) as usize - ptr as usize },
1662        24usize,
1663        concat!(
1664            "Offset of field: ",
1665            stringify!(_NV_ENC_CREATE_INPUT_BUFFER),
1666            "::",
1667            stringify!(inputBuffer)
1668        )
1669    );
1670    assert_eq!(
1671        unsafe { ::core::ptr::addr_of!((*ptr).pSysMemBuffer) as usize - ptr as usize },
1672        32usize,
1673        concat!(
1674            "Offset of field: ",
1675            stringify!(_NV_ENC_CREATE_INPUT_BUFFER),
1676            "::",
1677            stringify!(pSysMemBuffer)
1678        )
1679    );
1680    assert_eq!(
1681        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
1682        40usize,
1683        concat!(
1684            "Offset of field: ",
1685            stringify!(_NV_ENC_CREATE_INPUT_BUFFER),
1686            "::",
1687            stringify!(reserved1)
1688        )
1689    );
1690    assert_eq!(
1691        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
1692        272usize,
1693        concat!(
1694            "Offset of field: ",
1695            stringify!(_NV_ENC_CREATE_INPUT_BUFFER),
1696            "::",
1697            stringify!(reserved2)
1698        )
1699    );
1700}
1701#[test]
1702fn bindgen_test_layout__NV_ENC_CREATE_BITSTREAM_BUFFER() {
1703    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CREATE_BITSTREAM_BUFFER> =
1704        ::core::mem::MaybeUninit::uninit();
1705    let ptr = UNINIT.as_ptr();
1706    assert_eq!(
1707        ::core::mem::size_of::<_NV_ENC_CREATE_BITSTREAM_BUFFER>(),
1708        776usize,
1709        concat!("Size of: ", stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER))
1710    );
1711    assert_eq!(
1712        ::core::mem::align_of::<_NV_ENC_CREATE_BITSTREAM_BUFFER>(),
1713        8usize,
1714        concat!("Alignment of ", stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER))
1715    );
1716    assert_eq!(
1717        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
1718        0usize,
1719        concat!(
1720            "Offset of field: ",
1721            stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER),
1722            "::",
1723            stringify!(version)
1724        )
1725    );
1726    assert_eq!(
1727        unsafe { ::core::ptr::addr_of!((*ptr).size) as usize - ptr as usize },
1728        4usize,
1729        concat!(
1730            "Offset of field: ",
1731            stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER),
1732            "::",
1733            stringify!(size)
1734        )
1735    );
1736    assert_eq!(
1737        unsafe { ::core::ptr::addr_of!((*ptr).memoryHeap) as usize - ptr as usize },
1738        8usize,
1739        concat!(
1740            "Offset of field: ",
1741            stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER),
1742            "::",
1743            stringify!(memoryHeap)
1744        )
1745    );
1746    assert_eq!(
1747        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
1748        12usize,
1749        concat!(
1750            "Offset of field: ",
1751            stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER),
1752            "::",
1753            stringify!(reserved)
1754        )
1755    );
1756    assert_eq!(
1757        unsafe { ::core::ptr::addr_of!((*ptr).bitstreamBuffer) as usize - ptr as usize },
1758        16usize,
1759        concat!(
1760            "Offset of field: ",
1761            stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER),
1762            "::",
1763            stringify!(bitstreamBuffer)
1764        )
1765    );
1766    assert_eq!(
1767        unsafe { ::core::ptr::addr_of!((*ptr).bitstreamBufferPtr) as usize - ptr as usize },
1768        24usize,
1769        concat!(
1770            "Offset of field: ",
1771            stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER),
1772            "::",
1773            stringify!(bitstreamBufferPtr)
1774        )
1775    );
1776    assert_eq!(
1777        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
1778        32usize,
1779        concat!(
1780            "Offset of field: ",
1781            stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER),
1782            "::",
1783            stringify!(reserved1)
1784        )
1785    );
1786    assert_eq!(
1787        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
1788        264usize,
1789        concat!(
1790            "Offset of field: ",
1791            stringify!(_NV_ENC_CREATE_BITSTREAM_BUFFER),
1792            "::",
1793            stringify!(reserved2)
1794        )
1795    );
1796}
1797#[test]
1798fn bindgen_test_layout__NV_ENC_MVECTOR() {
1799    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_MVECTOR> = ::core::mem::MaybeUninit::uninit();
1800    let ptr = UNINIT.as_ptr();
1801    assert_eq!(
1802        ::core::mem::size_of::<_NV_ENC_MVECTOR>(),
1803        4usize,
1804        concat!("Size of: ", stringify!(_NV_ENC_MVECTOR))
1805    );
1806    assert_eq!(
1807        ::core::mem::align_of::<_NV_ENC_MVECTOR>(),
1808        2usize,
1809        concat!("Alignment of ", stringify!(_NV_ENC_MVECTOR))
1810    );
1811    assert_eq!(
1812        unsafe { ::core::ptr::addr_of!((*ptr).mvx) as usize - ptr as usize },
1813        0usize,
1814        concat!(
1815            "Offset of field: ",
1816            stringify!(_NV_ENC_MVECTOR),
1817            "::",
1818            stringify!(mvx)
1819        )
1820    );
1821    assert_eq!(
1822        unsafe { ::core::ptr::addr_of!((*ptr).mvy) as usize - ptr as usize },
1823        2usize,
1824        concat!(
1825            "Offset of field: ",
1826            stringify!(_NV_ENC_MVECTOR),
1827            "::",
1828            stringify!(mvy)
1829        )
1830    );
1831}
1832#[test]
1833fn bindgen_test_layout__NV_ENC_H264_MV_DATA() {
1834    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_H264_MV_DATA> =
1835        ::core::mem::MaybeUninit::uninit();
1836    let ptr = UNINIT.as_ptr();
1837    assert_eq!(
1838        ::core::mem::size_of::<_NV_ENC_H264_MV_DATA>(),
1839        24usize,
1840        concat!("Size of: ", stringify!(_NV_ENC_H264_MV_DATA))
1841    );
1842    assert_eq!(
1843        ::core::mem::align_of::<_NV_ENC_H264_MV_DATA>(),
1844        4usize,
1845        concat!("Alignment of ", stringify!(_NV_ENC_H264_MV_DATA))
1846    );
1847    assert_eq!(
1848        unsafe { ::core::ptr::addr_of!((*ptr).mv) as usize - ptr as usize },
1849        0usize,
1850        concat!(
1851            "Offset of field: ",
1852            stringify!(_NV_ENC_H264_MV_DATA),
1853            "::",
1854            stringify!(mv)
1855        )
1856    );
1857    assert_eq!(
1858        unsafe { ::core::ptr::addr_of!((*ptr).mbType) as usize - ptr as usize },
1859        16usize,
1860        concat!(
1861            "Offset of field: ",
1862            stringify!(_NV_ENC_H264_MV_DATA),
1863            "::",
1864            stringify!(mbType)
1865        )
1866    );
1867    assert_eq!(
1868        unsafe { ::core::ptr::addr_of!((*ptr).partitionType) as usize - ptr as usize },
1869        17usize,
1870        concat!(
1871            "Offset of field: ",
1872            stringify!(_NV_ENC_H264_MV_DATA),
1873            "::",
1874            stringify!(partitionType)
1875        )
1876    );
1877    assert_eq!(
1878        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
1879        18usize,
1880        concat!(
1881            "Offset of field: ",
1882            stringify!(_NV_ENC_H264_MV_DATA),
1883            "::",
1884            stringify!(reserved)
1885        )
1886    );
1887    assert_eq!(
1888        unsafe { ::core::ptr::addr_of!((*ptr).mbCost) as usize - ptr as usize },
1889        20usize,
1890        concat!(
1891            "Offset of field: ",
1892            stringify!(_NV_ENC_H264_MV_DATA),
1893            "::",
1894            stringify!(mbCost)
1895        )
1896    );
1897}
1898#[test]
1899fn bindgen_test_layout__NV_ENC_HEVC_MV_DATA() {
1900    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_HEVC_MV_DATA> =
1901        ::core::mem::MaybeUninit::uninit();
1902    let ptr = UNINIT.as_ptr();
1903    assert_eq!(
1904        ::core::mem::size_of::<_NV_ENC_HEVC_MV_DATA>(),
1905        20usize,
1906        concat!("Size of: ", stringify!(_NV_ENC_HEVC_MV_DATA))
1907    );
1908    assert_eq!(
1909        ::core::mem::align_of::<_NV_ENC_HEVC_MV_DATA>(),
1910        2usize,
1911        concat!("Alignment of ", stringify!(_NV_ENC_HEVC_MV_DATA))
1912    );
1913    assert_eq!(
1914        unsafe { ::core::ptr::addr_of!((*ptr).mv) as usize - ptr as usize },
1915        0usize,
1916        concat!(
1917            "Offset of field: ",
1918            stringify!(_NV_ENC_HEVC_MV_DATA),
1919            "::",
1920            stringify!(mv)
1921        )
1922    );
1923    assert_eq!(
1924        unsafe { ::core::ptr::addr_of!((*ptr).cuType) as usize - ptr as usize },
1925        16usize,
1926        concat!(
1927            "Offset of field: ",
1928            stringify!(_NV_ENC_HEVC_MV_DATA),
1929            "::",
1930            stringify!(cuType)
1931        )
1932    );
1933    assert_eq!(
1934        unsafe { ::core::ptr::addr_of!((*ptr).cuSize) as usize - ptr as usize },
1935        17usize,
1936        concat!(
1937            "Offset of field: ",
1938            stringify!(_NV_ENC_HEVC_MV_DATA),
1939            "::",
1940            stringify!(cuSize)
1941        )
1942    );
1943    assert_eq!(
1944        unsafe { ::core::ptr::addr_of!((*ptr).partitionMode) as usize - ptr as usize },
1945        18usize,
1946        concat!(
1947            "Offset of field: ",
1948            stringify!(_NV_ENC_HEVC_MV_DATA),
1949            "::",
1950            stringify!(partitionMode)
1951        )
1952    );
1953    assert_eq!(
1954        unsafe { ::core::ptr::addr_of!((*ptr).lastCUInCTB) as usize - ptr as usize },
1955        19usize,
1956        concat!(
1957            "Offset of field: ",
1958            stringify!(_NV_ENC_HEVC_MV_DATA),
1959            "::",
1960            stringify!(lastCUInCTB)
1961        )
1962    );
1963}
1964#[test]
1965fn bindgen_test_layout__NV_ENC_CREATE_MV_BUFFER() {
1966    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CREATE_MV_BUFFER> =
1967        ::core::mem::MaybeUninit::uninit();
1968    let ptr = UNINIT.as_ptr();
1969    assert_eq!(
1970        ::core::mem::size_of::<_NV_ENC_CREATE_MV_BUFFER>(),
1971        1544usize,
1972        concat!("Size of: ", stringify!(_NV_ENC_CREATE_MV_BUFFER))
1973    );
1974    assert_eq!(
1975        ::core::mem::align_of::<_NV_ENC_CREATE_MV_BUFFER>(),
1976        8usize,
1977        concat!("Alignment of ", stringify!(_NV_ENC_CREATE_MV_BUFFER))
1978    );
1979    assert_eq!(
1980        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
1981        0usize,
1982        concat!(
1983            "Offset of field: ",
1984            stringify!(_NV_ENC_CREATE_MV_BUFFER),
1985            "::",
1986            stringify!(version)
1987        )
1988    );
1989    assert_eq!(
1990        unsafe { ::core::ptr::addr_of!((*ptr).mvBuffer) as usize - ptr as usize },
1991        8usize,
1992        concat!(
1993            "Offset of field: ",
1994            stringify!(_NV_ENC_CREATE_MV_BUFFER),
1995            "::",
1996            stringify!(mvBuffer)
1997        )
1998    );
1999    assert_eq!(
2000        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
2001        16usize,
2002        concat!(
2003            "Offset of field: ",
2004            stringify!(_NV_ENC_CREATE_MV_BUFFER),
2005            "::",
2006            stringify!(reserved1)
2007        )
2008    );
2009    assert_eq!(
2010        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
2011        1040usize,
2012        concat!(
2013            "Offset of field: ",
2014            stringify!(_NV_ENC_CREATE_MV_BUFFER),
2015            "::",
2016            stringify!(reserved2)
2017        )
2018    );
2019}
2020#[test]
2021fn bindgen_test_layout__NV_ENC_QP() {
2022    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_QP> = ::core::mem::MaybeUninit::uninit();
2023    let ptr = UNINIT.as_ptr();
2024    assert_eq!(
2025        ::core::mem::size_of::<_NV_ENC_QP>(),
2026        12usize,
2027        concat!("Size of: ", stringify!(_NV_ENC_QP))
2028    );
2029    assert_eq!(
2030        ::core::mem::align_of::<_NV_ENC_QP>(),
2031        4usize,
2032        concat!("Alignment of ", stringify!(_NV_ENC_QP))
2033    );
2034    assert_eq!(
2035        unsafe { ::core::ptr::addr_of!((*ptr).qpInterP) as usize - ptr as usize },
2036        0usize,
2037        concat!(
2038            "Offset of field: ",
2039            stringify!(_NV_ENC_QP),
2040            "::",
2041            stringify!(qpInterP)
2042        )
2043    );
2044    assert_eq!(
2045        unsafe { ::core::ptr::addr_of!((*ptr).qpInterB) as usize - ptr as usize },
2046        4usize,
2047        concat!(
2048            "Offset of field: ",
2049            stringify!(_NV_ENC_QP),
2050            "::",
2051            stringify!(qpInterB)
2052        )
2053    );
2054    assert_eq!(
2055        unsafe { ::core::ptr::addr_of!((*ptr).qpIntra) as usize - ptr as usize },
2056        8usize,
2057        concat!(
2058            "Offset of field: ",
2059            stringify!(_NV_ENC_QP),
2060            "::",
2061            stringify!(qpIntra)
2062        )
2063    );
2064}
2065#[test]
2066fn bindgen_test_layout__NV_ENC_RC_PARAMS() {
2067    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_RC_PARAMS> = ::core::mem::MaybeUninit::uninit();
2068    let ptr = UNINIT.as_ptr();
2069    assert_eq!(
2070        ::core::mem::size_of::<_NV_ENC_RC_PARAMS>(),
2071        128usize,
2072        concat!("Size of: ", stringify!(_NV_ENC_RC_PARAMS))
2073    );
2074    assert_eq!(
2075        ::core::mem::align_of::<_NV_ENC_RC_PARAMS>(),
2076        4usize,
2077        concat!("Alignment of ", stringify!(_NV_ENC_RC_PARAMS))
2078    );
2079    assert_eq!(
2080        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
2081        0usize,
2082        concat!(
2083            "Offset of field: ",
2084            stringify!(_NV_ENC_RC_PARAMS),
2085            "::",
2086            stringify!(version)
2087        )
2088    );
2089    assert_eq!(
2090        unsafe { ::core::ptr::addr_of!((*ptr).rateControlMode) as usize - ptr as usize },
2091        4usize,
2092        concat!(
2093            "Offset of field: ",
2094            stringify!(_NV_ENC_RC_PARAMS),
2095            "::",
2096            stringify!(rateControlMode)
2097        )
2098    );
2099    assert_eq!(
2100        unsafe { ::core::ptr::addr_of!((*ptr).constQP) as usize - ptr as usize },
2101        8usize,
2102        concat!(
2103            "Offset of field: ",
2104            stringify!(_NV_ENC_RC_PARAMS),
2105            "::",
2106            stringify!(constQP)
2107        )
2108    );
2109    assert_eq!(
2110        unsafe { ::core::ptr::addr_of!((*ptr).averageBitRate) as usize - ptr as usize },
2111        20usize,
2112        concat!(
2113            "Offset of field: ",
2114            stringify!(_NV_ENC_RC_PARAMS),
2115            "::",
2116            stringify!(averageBitRate)
2117        )
2118    );
2119    assert_eq!(
2120        unsafe { ::core::ptr::addr_of!((*ptr).maxBitRate) as usize - ptr as usize },
2121        24usize,
2122        concat!(
2123            "Offset of field: ",
2124            stringify!(_NV_ENC_RC_PARAMS),
2125            "::",
2126            stringify!(maxBitRate)
2127        )
2128    );
2129    assert_eq!(
2130        unsafe { ::core::ptr::addr_of!((*ptr).vbvBufferSize) as usize - ptr as usize },
2131        28usize,
2132        concat!(
2133            "Offset of field: ",
2134            stringify!(_NV_ENC_RC_PARAMS),
2135            "::",
2136            stringify!(vbvBufferSize)
2137        )
2138    );
2139    assert_eq!(
2140        unsafe { ::core::ptr::addr_of!((*ptr).vbvInitialDelay) as usize - ptr as usize },
2141        32usize,
2142        concat!(
2143            "Offset of field: ",
2144            stringify!(_NV_ENC_RC_PARAMS),
2145            "::",
2146            stringify!(vbvInitialDelay)
2147        )
2148    );
2149    assert_eq!(
2150        unsafe { ::core::ptr::addr_of!((*ptr).minQP) as usize - ptr as usize },
2151        40usize,
2152        concat!(
2153            "Offset of field: ",
2154            stringify!(_NV_ENC_RC_PARAMS),
2155            "::",
2156            stringify!(minQP)
2157        )
2158    );
2159    assert_eq!(
2160        unsafe { ::core::ptr::addr_of!((*ptr).maxQP) as usize - ptr as usize },
2161        52usize,
2162        concat!(
2163            "Offset of field: ",
2164            stringify!(_NV_ENC_RC_PARAMS),
2165            "::",
2166            stringify!(maxQP)
2167        )
2168    );
2169    assert_eq!(
2170        unsafe { ::core::ptr::addr_of!((*ptr).initialRCQP) as usize - ptr as usize },
2171        64usize,
2172        concat!(
2173            "Offset of field: ",
2174            stringify!(_NV_ENC_RC_PARAMS),
2175            "::",
2176            stringify!(initialRCQP)
2177        )
2178    );
2179    assert_eq!(
2180        unsafe { ::core::ptr::addr_of!((*ptr).temporallayerIdxMask) as usize - ptr as usize },
2181        76usize,
2182        concat!(
2183            "Offset of field: ",
2184            stringify!(_NV_ENC_RC_PARAMS),
2185            "::",
2186            stringify!(temporallayerIdxMask)
2187        )
2188    );
2189    assert_eq!(
2190        unsafe { ::core::ptr::addr_of!((*ptr).temporalLayerQP) as usize - ptr as usize },
2191        80usize,
2192        concat!(
2193            "Offset of field: ",
2194            stringify!(_NV_ENC_RC_PARAMS),
2195            "::",
2196            stringify!(temporalLayerQP)
2197        )
2198    );
2199    assert_eq!(
2200        unsafe { ::core::ptr::addr_of!((*ptr).targetQuality) as usize - ptr as usize },
2201        88usize,
2202        concat!(
2203            "Offset of field: ",
2204            stringify!(_NV_ENC_RC_PARAMS),
2205            "::",
2206            stringify!(targetQuality)
2207        )
2208    );
2209    assert_eq!(
2210        unsafe { ::core::ptr::addr_of!((*ptr).targetQualityLSB) as usize - ptr as usize },
2211        89usize,
2212        concat!(
2213            "Offset of field: ",
2214            stringify!(_NV_ENC_RC_PARAMS),
2215            "::",
2216            stringify!(targetQualityLSB)
2217        )
2218    );
2219    assert_eq!(
2220        unsafe { ::core::ptr::addr_of!((*ptr).lookaheadDepth) as usize - ptr as usize },
2221        90usize,
2222        concat!(
2223            "Offset of field: ",
2224            stringify!(_NV_ENC_RC_PARAMS),
2225            "::",
2226            stringify!(lookaheadDepth)
2227        )
2228    );
2229    assert_eq!(
2230        unsafe { ::core::ptr::addr_of!((*ptr).lowDelayKeyFrameScale) as usize - ptr as usize },
2231        92usize,
2232        concat!(
2233            "Offset of field: ",
2234            stringify!(_NV_ENC_RC_PARAMS),
2235            "::",
2236            stringify!(lowDelayKeyFrameScale)
2237        )
2238    );
2239    assert_eq!(
2240        unsafe { ::core::ptr::addr_of!((*ptr).yDcQPIndexOffset) as usize - ptr as usize },
2241        93usize,
2242        concat!(
2243            "Offset of field: ",
2244            stringify!(_NV_ENC_RC_PARAMS),
2245            "::",
2246            stringify!(yDcQPIndexOffset)
2247        )
2248    );
2249    assert_eq!(
2250        unsafe { ::core::ptr::addr_of!((*ptr).uDcQPIndexOffset) as usize - ptr as usize },
2251        94usize,
2252        concat!(
2253            "Offset of field: ",
2254            stringify!(_NV_ENC_RC_PARAMS),
2255            "::",
2256            stringify!(uDcQPIndexOffset)
2257        )
2258    );
2259    assert_eq!(
2260        unsafe { ::core::ptr::addr_of!((*ptr).vDcQPIndexOffset) as usize - ptr as usize },
2261        95usize,
2262        concat!(
2263            "Offset of field: ",
2264            stringify!(_NV_ENC_RC_PARAMS),
2265            "::",
2266            stringify!(vDcQPIndexOffset)
2267        )
2268    );
2269    assert_eq!(
2270        unsafe { ::core::ptr::addr_of!((*ptr).qpMapMode) as usize - ptr as usize },
2271        96usize,
2272        concat!(
2273            "Offset of field: ",
2274            stringify!(_NV_ENC_RC_PARAMS),
2275            "::",
2276            stringify!(qpMapMode)
2277        )
2278    );
2279    assert_eq!(
2280        unsafe { ::core::ptr::addr_of!((*ptr).multiPass) as usize - ptr as usize },
2281        100usize,
2282        concat!(
2283            "Offset of field: ",
2284            stringify!(_NV_ENC_RC_PARAMS),
2285            "::",
2286            stringify!(multiPass)
2287        )
2288    );
2289    assert_eq!(
2290        unsafe { ::core::ptr::addr_of!((*ptr).alphaLayerBitrateRatio) as usize - ptr as usize },
2291        104usize,
2292        concat!(
2293            "Offset of field: ",
2294            stringify!(_NV_ENC_RC_PARAMS),
2295            "::",
2296            stringify!(alphaLayerBitrateRatio)
2297        )
2298    );
2299    assert_eq!(
2300        unsafe { ::core::ptr::addr_of!((*ptr).cbQPIndexOffset) as usize - ptr as usize },
2301        108usize,
2302        concat!(
2303            "Offset of field: ",
2304            stringify!(_NV_ENC_RC_PARAMS),
2305            "::",
2306            stringify!(cbQPIndexOffset)
2307        )
2308    );
2309    assert_eq!(
2310        unsafe { ::core::ptr::addr_of!((*ptr).crQPIndexOffset) as usize - ptr as usize },
2311        109usize,
2312        concat!(
2313            "Offset of field: ",
2314            stringify!(_NV_ENC_RC_PARAMS),
2315            "::",
2316            stringify!(crQPIndexOffset)
2317        )
2318    );
2319    assert_eq!(
2320        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
2321        110usize,
2322        concat!(
2323            "Offset of field: ",
2324            stringify!(_NV_ENC_RC_PARAMS),
2325            "::",
2326            stringify!(reserved2)
2327        )
2328    );
2329    assert_eq!(
2330        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
2331        112usize,
2332        concat!(
2333            "Offset of field: ",
2334            stringify!(_NV_ENC_RC_PARAMS),
2335            "::",
2336            stringify!(reserved)
2337        )
2338    );
2339}
2340#[test]
2341fn bindgen_test_layout__NV_ENC_CLOCK_TIMESTAMP_SET() {
2342    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CLOCK_TIMESTAMP_SET> =
2343        ::core::mem::MaybeUninit::uninit();
2344    let ptr = UNINIT.as_ptr();
2345    assert_eq!(
2346        ::core::mem::size_of::<_NV_ENC_CLOCK_TIMESTAMP_SET>(),
2347        8usize,
2348        concat!("Size of: ", stringify!(_NV_ENC_CLOCK_TIMESTAMP_SET))
2349    );
2350    assert_eq!(
2351        ::core::mem::align_of::<_NV_ENC_CLOCK_TIMESTAMP_SET>(),
2352        4usize,
2353        concat!("Alignment of ", stringify!(_NV_ENC_CLOCK_TIMESTAMP_SET))
2354    );
2355    assert_eq!(
2356        unsafe { ::core::ptr::addr_of!((*ptr).timeOffset) as usize - ptr as usize },
2357        4usize,
2358        concat!(
2359            "Offset of field: ",
2360            stringify!(_NV_ENC_CLOCK_TIMESTAMP_SET),
2361            "::",
2362            stringify!(timeOffset)
2363        )
2364    );
2365}
2366#[test]
2367fn bindgen_test_layout__NV_ENC_TIME_CODE() {
2368    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_TIME_CODE> = ::core::mem::MaybeUninit::uninit();
2369    let ptr = UNINIT.as_ptr();
2370    assert_eq!(
2371        ::core::mem::size_of::<_NV_ENC_TIME_CODE>(),
2372        28usize,
2373        concat!("Size of: ", stringify!(_NV_ENC_TIME_CODE))
2374    );
2375    assert_eq!(
2376        ::core::mem::align_of::<_NV_ENC_TIME_CODE>(),
2377        4usize,
2378        concat!("Alignment of ", stringify!(_NV_ENC_TIME_CODE))
2379    );
2380    assert_eq!(
2381        unsafe { ::core::ptr::addr_of!((*ptr).displayPicStruct) as usize - ptr as usize },
2382        0usize,
2383        concat!(
2384            "Offset of field: ",
2385            stringify!(_NV_ENC_TIME_CODE),
2386            "::",
2387            stringify!(displayPicStruct)
2388        )
2389    );
2390    assert_eq!(
2391        unsafe { ::core::ptr::addr_of!((*ptr).clockTimestamp) as usize - ptr as usize },
2392        4usize,
2393        concat!(
2394            "Offset of field: ",
2395            stringify!(_NV_ENC_TIME_CODE),
2396            "::",
2397            stringify!(clockTimestamp)
2398        )
2399    );
2400}
2401#[test]
2402fn bindgen_test_layout__NV_ENC_CONFIG_H264_VUI_PARAMETERS() {
2403    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_H264_VUI_PARAMETERS> =
2404        ::core::mem::MaybeUninit::uninit();
2405    let ptr = UNINIT.as_ptr();
2406    assert_eq!(
2407        ::core::mem::size_of::<_NV_ENC_CONFIG_H264_VUI_PARAMETERS>(),
2408        112usize,
2409        concat!("Size of: ", stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS))
2410    );
2411    assert_eq!(
2412        ::core::mem::align_of::<_NV_ENC_CONFIG_H264_VUI_PARAMETERS>(),
2413        4usize,
2414        concat!(
2415            "Alignment of ",
2416            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS)
2417        )
2418    );
2419    assert_eq!(
2420        unsafe { ::core::ptr::addr_of!((*ptr).overscanInfoPresentFlag) as usize - ptr as usize },
2421        0usize,
2422        concat!(
2423            "Offset of field: ",
2424            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2425            "::",
2426            stringify!(overscanInfoPresentFlag)
2427        )
2428    );
2429    assert_eq!(
2430        unsafe { ::core::ptr::addr_of!((*ptr).overscanInfo) as usize - ptr as usize },
2431        4usize,
2432        concat!(
2433            "Offset of field: ",
2434            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2435            "::",
2436            stringify!(overscanInfo)
2437        )
2438    );
2439    assert_eq!(
2440        unsafe { ::core::ptr::addr_of!((*ptr).videoSignalTypePresentFlag) as usize - ptr as usize },
2441        8usize,
2442        concat!(
2443            "Offset of field: ",
2444            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2445            "::",
2446            stringify!(videoSignalTypePresentFlag)
2447        )
2448    );
2449    assert_eq!(
2450        unsafe { ::core::ptr::addr_of!((*ptr).videoFormat) as usize - ptr as usize },
2451        12usize,
2452        concat!(
2453            "Offset of field: ",
2454            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2455            "::",
2456            stringify!(videoFormat)
2457        )
2458    );
2459    assert_eq!(
2460        unsafe { ::core::ptr::addr_of!((*ptr).videoFullRangeFlag) as usize - ptr as usize },
2461        16usize,
2462        concat!(
2463            "Offset of field: ",
2464            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2465            "::",
2466            stringify!(videoFullRangeFlag)
2467        )
2468    );
2469    assert_eq!(
2470        unsafe {
2471            ::core::ptr::addr_of!((*ptr).colourDescriptionPresentFlag) as usize - ptr as usize
2472        },
2473        20usize,
2474        concat!(
2475            "Offset of field: ",
2476            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2477            "::",
2478            stringify!(colourDescriptionPresentFlag)
2479        )
2480    );
2481    assert_eq!(
2482        unsafe { ::core::ptr::addr_of!((*ptr).colourPrimaries) as usize - ptr as usize },
2483        24usize,
2484        concat!(
2485            "Offset of field: ",
2486            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2487            "::",
2488            stringify!(colourPrimaries)
2489        )
2490    );
2491    assert_eq!(
2492        unsafe { ::core::ptr::addr_of!((*ptr).transferCharacteristics) as usize - ptr as usize },
2493        28usize,
2494        concat!(
2495            "Offset of field: ",
2496            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2497            "::",
2498            stringify!(transferCharacteristics)
2499        )
2500    );
2501    assert_eq!(
2502        unsafe { ::core::ptr::addr_of!((*ptr).colourMatrix) as usize - ptr as usize },
2503        32usize,
2504        concat!(
2505            "Offset of field: ",
2506            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2507            "::",
2508            stringify!(colourMatrix)
2509        )
2510    );
2511    assert_eq!(
2512        unsafe { ::core::ptr::addr_of!((*ptr).chromaSampleLocationFlag) as usize - ptr as usize },
2513        36usize,
2514        concat!(
2515            "Offset of field: ",
2516            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2517            "::",
2518            stringify!(chromaSampleLocationFlag)
2519        )
2520    );
2521    assert_eq!(
2522        unsafe { ::core::ptr::addr_of!((*ptr).chromaSampleLocationTop) as usize - ptr as usize },
2523        40usize,
2524        concat!(
2525            "Offset of field: ",
2526            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2527            "::",
2528            stringify!(chromaSampleLocationTop)
2529        )
2530    );
2531    assert_eq!(
2532        unsafe { ::core::ptr::addr_of!((*ptr).chromaSampleLocationBot) as usize - ptr as usize },
2533        44usize,
2534        concat!(
2535            "Offset of field: ",
2536            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2537            "::",
2538            stringify!(chromaSampleLocationBot)
2539        )
2540    );
2541    assert_eq!(
2542        unsafe { ::core::ptr::addr_of!((*ptr).bitstreamRestrictionFlag) as usize - ptr as usize },
2543        48usize,
2544        concat!(
2545            "Offset of field: ",
2546            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2547            "::",
2548            stringify!(bitstreamRestrictionFlag)
2549        )
2550    );
2551    assert_eq!(
2552        unsafe { ::core::ptr::addr_of!((*ptr).timingInfoPresentFlag) as usize - ptr as usize },
2553        52usize,
2554        concat!(
2555            "Offset of field: ",
2556            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2557            "::",
2558            stringify!(timingInfoPresentFlag)
2559        )
2560    );
2561    assert_eq!(
2562        unsafe { ::core::ptr::addr_of!((*ptr).numUnitInTicks) as usize - ptr as usize },
2563        56usize,
2564        concat!(
2565            "Offset of field: ",
2566            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2567            "::",
2568            stringify!(numUnitInTicks)
2569        )
2570    );
2571    assert_eq!(
2572        unsafe { ::core::ptr::addr_of!((*ptr).timeScale) as usize - ptr as usize },
2573        60usize,
2574        concat!(
2575            "Offset of field: ",
2576            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2577            "::",
2578            stringify!(timeScale)
2579        )
2580    );
2581    assert_eq!(
2582        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
2583        64usize,
2584        concat!(
2585            "Offset of field: ",
2586            stringify!(_NV_ENC_CONFIG_H264_VUI_PARAMETERS),
2587            "::",
2588            stringify!(reserved)
2589        )
2590    );
2591}
2592#[test]
2593fn bindgen_test_layout__NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE() {
2594    const UNINIT: ::core::mem::MaybeUninit<_NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE> =
2595        ::core::mem::MaybeUninit::uninit();
2596    let ptr = UNINIT.as_ptr();
2597    assert_eq!(
2598        ::core::mem::size_of::<_NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE>(),
2599        16usize,
2600        concat!(
2601            "Size of: ",
2602            stringify!(_NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE)
2603        )
2604    );
2605    assert_eq!(
2606        ::core::mem::align_of::<_NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE>(),
2607        4usize,
2608        concat!(
2609            "Alignment of ",
2610            stringify!(_NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE)
2611        )
2612    );
2613    assert_eq!(
2614        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
2615        4usize,
2616        concat!(
2617            "Offset of field: ",
2618            stringify!(_NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE),
2619            "::",
2620            stringify!(reserved1)
2621        )
2622    );
2623}
2624#[test]
2625fn bindgen_test_layout__NVENC_EXTERNAL_ME_HINT() {
2626    assert_eq!(
2627        ::core::mem::size_of::<_NVENC_EXTERNAL_ME_HINT>(),
2628        4usize,
2629        concat!("Size of: ", stringify!(_NVENC_EXTERNAL_ME_HINT))
2630    );
2631    assert_eq!(
2632        ::core::mem::align_of::<_NVENC_EXTERNAL_ME_HINT>(),
2633        4usize,
2634        concat!("Alignment of ", stringify!(_NVENC_EXTERNAL_ME_HINT))
2635    );
2636}
2637#[test]
2638fn bindgen_test_layout__NVENC_EXTERNAL_ME_SB_HINT() {
2639    assert_eq!(
2640        ::core::mem::size_of::<_NVENC_EXTERNAL_ME_SB_HINT>(),
2641        6usize,
2642        concat!("Size of: ", stringify!(_NVENC_EXTERNAL_ME_SB_HINT))
2643    );
2644    assert_eq!(
2645        ::core::mem::align_of::<_NVENC_EXTERNAL_ME_SB_HINT>(),
2646        2usize,
2647        concat!("Alignment of ", stringify!(_NVENC_EXTERNAL_ME_SB_HINT))
2648    );
2649}
2650#[test]
2651fn bindgen_test_layout__NV_ENC_CONFIG_H264() {
2652    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_H264> =
2653        ::core::mem::MaybeUninit::uninit();
2654    let ptr = UNINIT.as_ptr();
2655    assert_eq!(
2656        ::core::mem::size_of::<_NV_ENC_CONFIG_H264>(),
2657        1792usize,
2658        concat!("Size of: ", stringify!(_NV_ENC_CONFIG_H264))
2659    );
2660    assert_eq!(
2661        ::core::mem::align_of::<_NV_ENC_CONFIG_H264>(),
2662        8usize,
2663        concat!("Alignment of ", stringify!(_NV_ENC_CONFIG_H264))
2664    );
2665    assert_eq!(
2666        unsafe { ::core::ptr::addr_of!((*ptr).level) as usize - ptr as usize },
2667        4usize,
2668        concat!(
2669            "Offset of field: ",
2670            stringify!(_NV_ENC_CONFIG_H264),
2671            "::",
2672            stringify!(level)
2673        )
2674    );
2675    assert_eq!(
2676        unsafe { ::core::ptr::addr_of!((*ptr).idrPeriod) as usize - ptr as usize },
2677        8usize,
2678        concat!(
2679            "Offset of field: ",
2680            stringify!(_NV_ENC_CONFIG_H264),
2681            "::",
2682            stringify!(idrPeriod)
2683        )
2684    );
2685    assert_eq!(
2686        unsafe { ::core::ptr::addr_of!((*ptr).separateColourPlaneFlag) as usize - ptr as usize },
2687        12usize,
2688        concat!(
2689            "Offset of field: ",
2690            stringify!(_NV_ENC_CONFIG_H264),
2691            "::",
2692            stringify!(separateColourPlaneFlag)
2693        )
2694    );
2695    assert_eq!(
2696        unsafe { ::core::ptr::addr_of!((*ptr).disableDeblockingFilterIDC) as usize - ptr as usize },
2697        16usize,
2698        concat!(
2699            "Offset of field: ",
2700            stringify!(_NV_ENC_CONFIG_H264),
2701            "::",
2702            stringify!(disableDeblockingFilterIDC)
2703        )
2704    );
2705    assert_eq!(
2706        unsafe { ::core::ptr::addr_of!((*ptr).numTemporalLayers) as usize - ptr as usize },
2707        20usize,
2708        concat!(
2709            "Offset of field: ",
2710            stringify!(_NV_ENC_CONFIG_H264),
2711            "::",
2712            stringify!(numTemporalLayers)
2713        )
2714    );
2715    assert_eq!(
2716        unsafe { ::core::ptr::addr_of!((*ptr).spsId) as usize - ptr as usize },
2717        24usize,
2718        concat!(
2719            "Offset of field: ",
2720            stringify!(_NV_ENC_CONFIG_H264),
2721            "::",
2722            stringify!(spsId)
2723        )
2724    );
2725    assert_eq!(
2726        unsafe { ::core::ptr::addr_of!((*ptr).ppsId) as usize - ptr as usize },
2727        28usize,
2728        concat!(
2729            "Offset of field: ",
2730            stringify!(_NV_ENC_CONFIG_H264),
2731            "::",
2732            stringify!(ppsId)
2733        )
2734    );
2735    assert_eq!(
2736        unsafe { ::core::ptr::addr_of!((*ptr).adaptiveTransformMode) as usize - ptr as usize },
2737        32usize,
2738        concat!(
2739            "Offset of field: ",
2740            stringify!(_NV_ENC_CONFIG_H264),
2741            "::",
2742            stringify!(adaptiveTransformMode)
2743        )
2744    );
2745    assert_eq!(
2746        unsafe { ::core::ptr::addr_of!((*ptr).fmoMode) as usize - ptr as usize },
2747        36usize,
2748        concat!(
2749            "Offset of field: ",
2750            stringify!(_NV_ENC_CONFIG_H264),
2751            "::",
2752            stringify!(fmoMode)
2753        )
2754    );
2755    assert_eq!(
2756        unsafe { ::core::ptr::addr_of!((*ptr).bdirectMode) as usize - ptr as usize },
2757        40usize,
2758        concat!(
2759            "Offset of field: ",
2760            stringify!(_NV_ENC_CONFIG_H264),
2761            "::",
2762            stringify!(bdirectMode)
2763        )
2764    );
2765    assert_eq!(
2766        unsafe { ::core::ptr::addr_of!((*ptr).entropyCodingMode) as usize - ptr as usize },
2767        44usize,
2768        concat!(
2769            "Offset of field: ",
2770            stringify!(_NV_ENC_CONFIG_H264),
2771            "::",
2772            stringify!(entropyCodingMode)
2773        )
2774    );
2775    assert_eq!(
2776        unsafe { ::core::ptr::addr_of!((*ptr).stereoMode) as usize - ptr as usize },
2777        48usize,
2778        concat!(
2779            "Offset of field: ",
2780            stringify!(_NV_ENC_CONFIG_H264),
2781            "::",
2782            stringify!(stereoMode)
2783        )
2784    );
2785    assert_eq!(
2786        unsafe { ::core::ptr::addr_of!((*ptr).intraRefreshPeriod) as usize - ptr as usize },
2787        52usize,
2788        concat!(
2789            "Offset of field: ",
2790            stringify!(_NV_ENC_CONFIG_H264),
2791            "::",
2792            stringify!(intraRefreshPeriod)
2793        )
2794    );
2795    assert_eq!(
2796        unsafe { ::core::ptr::addr_of!((*ptr).intraRefreshCnt) as usize - ptr as usize },
2797        56usize,
2798        concat!(
2799            "Offset of field: ",
2800            stringify!(_NV_ENC_CONFIG_H264),
2801            "::",
2802            stringify!(intraRefreshCnt)
2803        )
2804    );
2805    assert_eq!(
2806        unsafe { ::core::ptr::addr_of!((*ptr).maxNumRefFrames) as usize - ptr as usize },
2807        60usize,
2808        concat!(
2809            "Offset of field: ",
2810            stringify!(_NV_ENC_CONFIG_H264),
2811            "::",
2812            stringify!(maxNumRefFrames)
2813        )
2814    );
2815    assert_eq!(
2816        unsafe { ::core::ptr::addr_of!((*ptr).sliceMode) as usize - ptr as usize },
2817        64usize,
2818        concat!(
2819            "Offset of field: ",
2820            stringify!(_NV_ENC_CONFIG_H264),
2821            "::",
2822            stringify!(sliceMode)
2823        )
2824    );
2825    assert_eq!(
2826        unsafe { ::core::ptr::addr_of!((*ptr).sliceModeData) as usize - ptr as usize },
2827        68usize,
2828        concat!(
2829            "Offset of field: ",
2830            stringify!(_NV_ENC_CONFIG_H264),
2831            "::",
2832            stringify!(sliceModeData)
2833        )
2834    );
2835    assert_eq!(
2836        unsafe { ::core::ptr::addr_of!((*ptr).h264VUIParameters) as usize - ptr as usize },
2837        72usize,
2838        concat!(
2839            "Offset of field: ",
2840            stringify!(_NV_ENC_CONFIG_H264),
2841            "::",
2842            stringify!(h264VUIParameters)
2843        )
2844    );
2845    assert_eq!(
2846        unsafe { ::core::ptr::addr_of!((*ptr).ltrNumFrames) as usize - ptr as usize },
2847        184usize,
2848        concat!(
2849            "Offset of field: ",
2850            stringify!(_NV_ENC_CONFIG_H264),
2851            "::",
2852            stringify!(ltrNumFrames)
2853        )
2854    );
2855    assert_eq!(
2856        unsafe { ::core::ptr::addr_of!((*ptr).ltrTrustMode) as usize - ptr as usize },
2857        188usize,
2858        concat!(
2859            "Offset of field: ",
2860            stringify!(_NV_ENC_CONFIG_H264),
2861            "::",
2862            stringify!(ltrTrustMode)
2863        )
2864    );
2865    assert_eq!(
2866        unsafe { ::core::ptr::addr_of!((*ptr).chromaFormatIDC) as usize - ptr as usize },
2867        192usize,
2868        concat!(
2869            "Offset of field: ",
2870            stringify!(_NV_ENC_CONFIG_H264),
2871            "::",
2872            stringify!(chromaFormatIDC)
2873        )
2874    );
2875    assert_eq!(
2876        unsafe { ::core::ptr::addr_of!((*ptr).maxTemporalLayers) as usize - ptr as usize },
2877        196usize,
2878        concat!(
2879            "Offset of field: ",
2880            stringify!(_NV_ENC_CONFIG_H264),
2881            "::",
2882            stringify!(maxTemporalLayers)
2883        )
2884    );
2885    assert_eq!(
2886        unsafe { ::core::ptr::addr_of!((*ptr).useBFramesAsRef) as usize - ptr as usize },
2887        200usize,
2888        concat!(
2889            "Offset of field: ",
2890            stringify!(_NV_ENC_CONFIG_H264),
2891            "::",
2892            stringify!(useBFramesAsRef)
2893        )
2894    );
2895    assert_eq!(
2896        unsafe { ::core::ptr::addr_of!((*ptr).numRefL0) as usize - ptr as usize },
2897        204usize,
2898        concat!(
2899            "Offset of field: ",
2900            stringify!(_NV_ENC_CONFIG_H264),
2901            "::",
2902            stringify!(numRefL0)
2903        )
2904    );
2905    assert_eq!(
2906        unsafe { ::core::ptr::addr_of!((*ptr).numRefL1) as usize - ptr as usize },
2907        208usize,
2908        concat!(
2909            "Offset of field: ",
2910            stringify!(_NV_ENC_CONFIG_H264),
2911            "::",
2912            stringify!(numRefL1)
2913        )
2914    );
2915    assert_eq!(
2916        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
2917        212usize,
2918        concat!(
2919            "Offset of field: ",
2920            stringify!(_NV_ENC_CONFIG_H264),
2921            "::",
2922            stringify!(reserved1)
2923        )
2924    );
2925    assert_eq!(
2926        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
2927        1280usize,
2928        concat!(
2929            "Offset of field: ",
2930            stringify!(_NV_ENC_CONFIG_H264),
2931            "::",
2932            stringify!(reserved2)
2933        )
2934    );
2935}
2936#[test]
2937fn bindgen_test_layout__NV_ENC_CONFIG_HEVC() {
2938    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_HEVC> =
2939        ::core::mem::MaybeUninit::uninit();
2940    let ptr = UNINIT.as_ptr();
2941    assert_eq!(
2942        ::core::mem::size_of::<_NV_ENC_CONFIG_HEVC>(),
2943        1560usize,
2944        concat!("Size of: ", stringify!(_NV_ENC_CONFIG_HEVC))
2945    );
2946    assert_eq!(
2947        ::core::mem::align_of::<_NV_ENC_CONFIG_HEVC>(),
2948        8usize,
2949        concat!("Alignment of ", stringify!(_NV_ENC_CONFIG_HEVC))
2950    );
2951    assert_eq!(
2952        unsafe { ::core::ptr::addr_of!((*ptr).level) as usize - ptr as usize },
2953        0usize,
2954        concat!(
2955            "Offset of field: ",
2956            stringify!(_NV_ENC_CONFIG_HEVC),
2957            "::",
2958            stringify!(level)
2959        )
2960    );
2961    assert_eq!(
2962        unsafe { ::core::ptr::addr_of!((*ptr).tier) as usize - ptr as usize },
2963        4usize,
2964        concat!(
2965            "Offset of field: ",
2966            stringify!(_NV_ENC_CONFIG_HEVC),
2967            "::",
2968            stringify!(tier)
2969        )
2970    );
2971    assert_eq!(
2972        unsafe { ::core::ptr::addr_of!((*ptr).minCUSize) as usize - ptr as usize },
2973        8usize,
2974        concat!(
2975            "Offset of field: ",
2976            stringify!(_NV_ENC_CONFIG_HEVC),
2977            "::",
2978            stringify!(minCUSize)
2979        )
2980    );
2981    assert_eq!(
2982        unsafe { ::core::ptr::addr_of!((*ptr).maxCUSize) as usize - ptr as usize },
2983        12usize,
2984        concat!(
2985            "Offset of field: ",
2986            stringify!(_NV_ENC_CONFIG_HEVC),
2987            "::",
2988            stringify!(maxCUSize)
2989        )
2990    );
2991    assert_eq!(
2992        unsafe { ::core::ptr::addr_of!((*ptr).idrPeriod) as usize - ptr as usize },
2993        20usize,
2994        concat!(
2995            "Offset of field: ",
2996            stringify!(_NV_ENC_CONFIG_HEVC),
2997            "::",
2998            stringify!(idrPeriod)
2999        )
3000    );
3001    assert_eq!(
3002        unsafe { ::core::ptr::addr_of!((*ptr).intraRefreshPeriod) as usize - ptr as usize },
3003        24usize,
3004        concat!(
3005            "Offset of field: ",
3006            stringify!(_NV_ENC_CONFIG_HEVC),
3007            "::",
3008            stringify!(intraRefreshPeriod)
3009        )
3010    );
3011    assert_eq!(
3012        unsafe { ::core::ptr::addr_of!((*ptr).intraRefreshCnt) as usize - ptr as usize },
3013        28usize,
3014        concat!(
3015            "Offset of field: ",
3016            stringify!(_NV_ENC_CONFIG_HEVC),
3017            "::",
3018            stringify!(intraRefreshCnt)
3019        )
3020    );
3021    assert_eq!(
3022        unsafe { ::core::ptr::addr_of!((*ptr).maxNumRefFramesInDPB) as usize - ptr as usize },
3023        32usize,
3024        concat!(
3025            "Offset of field: ",
3026            stringify!(_NV_ENC_CONFIG_HEVC),
3027            "::",
3028            stringify!(maxNumRefFramesInDPB)
3029        )
3030    );
3031    assert_eq!(
3032        unsafe { ::core::ptr::addr_of!((*ptr).ltrNumFrames) as usize - ptr as usize },
3033        36usize,
3034        concat!(
3035            "Offset of field: ",
3036            stringify!(_NV_ENC_CONFIG_HEVC),
3037            "::",
3038            stringify!(ltrNumFrames)
3039        )
3040    );
3041    assert_eq!(
3042        unsafe { ::core::ptr::addr_of!((*ptr).vpsId) as usize - ptr as usize },
3043        40usize,
3044        concat!(
3045            "Offset of field: ",
3046            stringify!(_NV_ENC_CONFIG_HEVC),
3047            "::",
3048            stringify!(vpsId)
3049        )
3050    );
3051    assert_eq!(
3052        unsafe { ::core::ptr::addr_of!((*ptr).spsId) as usize - ptr as usize },
3053        44usize,
3054        concat!(
3055            "Offset of field: ",
3056            stringify!(_NV_ENC_CONFIG_HEVC),
3057            "::",
3058            stringify!(spsId)
3059        )
3060    );
3061    assert_eq!(
3062        unsafe { ::core::ptr::addr_of!((*ptr).ppsId) as usize - ptr as usize },
3063        48usize,
3064        concat!(
3065            "Offset of field: ",
3066            stringify!(_NV_ENC_CONFIG_HEVC),
3067            "::",
3068            stringify!(ppsId)
3069        )
3070    );
3071    assert_eq!(
3072        unsafe { ::core::ptr::addr_of!((*ptr).sliceMode) as usize - ptr as usize },
3073        52usize,
3074        concat!(
3075            "Offset of field: ",
3076            stringify!(_NV_ENC_CONFIG_HEVC),
3077            "::",
3078            stringify!(sliceMode)
3079        )
3080    );
3081    assert_eq!(
3082        unsafe { ::core::ptr::addr_of!((*ptr).sliceModeData) as usize - ptr as usize },
3083        56usize,
3084        concat!(
3085            "Offset of field: ",
3086            stringify!(_NV_ENC_CONFIG_HEVC),
3087            "::",
3088            stringify!(sliceModeData)
3089        )
3090    );
3091    assert_eq!(
3092        unsafe { ::core::ptr::addr_of!((*ptr).maxTemporalLayersMinus1) as usize - ptr as usize },
3093        60usize,
3094        concat!(
3095            "Offset of field: ",
3096            stringify!(_NV_ENC_CONFIG_HEVC),
3097            "::",
3098            stringify!(maxTemporalLayersMinus1)
3099        )
3100    );
3101    assert_eq!(
3102        unsafe { ::core::ptr::addr_of!((*ptr).hevcVUIParameters) as usize - ptr as usize },
3103        64usize,
3104        concat!(
3105            "Offset of field: ",
3106            stringify!(_NV_ENC_CONFIG_HEVC),
3107            "::",
3108            stringify!(hevcVUIParameters)
3109        )
3110    );
3111    assert_eq!(
3112        unsafe { ::core::ptr::addr_of!((*ptr).ltrTrustMode) as usize - ptr as usize },
3113        176usize,
3114        concat!(
3115            "Offset of field: ",
3116            stringify!(_NV_ENC_CONFIG_HEVC),
3117            "::",
3118            stringify!(ltrTrustMode)
3119        )
3120    );
3121    assert_eq!(
3122        unsafe { ::core::ptr::addr_of!((*ptr).useBFramesAsRef) as usize - ptr as usize },
3123        180usize,
3124        concat!(
3125            "Offset of field: ",
3126            stringify!(_NV_ENC_CONFIG_HEVC),
3127            "::",
3128            stringify!(useBFramesAsRef)
3129        )
3130    );
3131    assert_eq!(
3132        unsafe { ::core::ptr::addr_of!((*ptr).numRefL0) as usize - ptr as usize },
3133        184usize,
3134        concat!(
3135            "Offset of field: ",
3136            stringify!(_NV_ENC_CONFIG_HEVC),
3137            "::",
3138            stringify!(numRefL0)
3139        )
3140    );
3141    assert_eq!(
3142        unsafe { ::core::ptr::addr_of!((*ptr).numRefL1) as usize - ptr as usize },
3143        188usize,
3144        concat!(
3145            "Offset of field: ",
3146            stringify!(_NV_ENC_CONFIG_HEVC),
3147            "::",
3148            stringify!(numRefL1)
3149        )
3150    );
3151    assert_eq!(
3152        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
3153        192usize,
3154        concat!(
3155            "Offset of field: ",
3156            stringify!(_NV_ENC_CONFIG_HEVC),
3157            "::",
3158            stringify!(reserved1)
3159        )
3160    );
3161    assert_eq!(
3162        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
3163        1048usize,
3164        concat!(
3165            "Offset of field: ",
3166            stringify!(_NV_ENC_CONFIG_HEVC),
3167            "::",
3168            stringify!(reserved2)
3169        )
3170    );
3171}
3172#[test]
3173fn bindgen_test_layout__NV_ENC_FILM_GRAIN_PARAMS_AV1() {
3174    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_FILM_GRAIN_PARAMS_AV1> =
3175        ::core::mem::MaybeUninit::uninit();
3176    let ptr = UNINIT.as_ptr();
3177    assert_eq!(
3178        ::core::mem::size_of::<_NV_ENC_FILM_GRAIN_PARAMS_AV1>(),
3179        156usize,
3180        concat!("Size of: ", stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1))
3181    );
3182    assert_eq!(
3183        ::core::mem::align_of::<_NV_ENC_FILM_GRAIN_PARAMS_AV1>(),
3184        4usize,
3185        concat!("Alignment of ", stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1))
3186    );
3187    assert_eq!(
3188        unsafe { ::core::ptr::addr_of!((*ptr).pointYValue) as usize - ptr as usize },
3189        4usize,
3190        concat!(
3191            "Offset of field: ",
3192            stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1),
3193            "::",
3194            stringify!(pointYValue)
3195        )
3196    );
3197    assert_eq!(
3198        unsafe { ::core::ptr::addr_of!((*ptr).pointYScaling) as usize - ptr as usize },
3199        18usize,
3200        concat!(
3201            "Offset of field: ",
3202            stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1),
3203            "::",
3204            stringify!(pointYScaling)
3205        )
3206    );
3207    assert_eq!(
3208        unsafe { ::core::ptr::addr_of!((*ptr).pointCbValue) as usize - ptr as usize },
3209        32usize,
3210        concat!(
3211            "Offset of field: ",
3212            stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1),
3213            "::",
3214            stringify!(pointCbValue)
3215        )
3216    );
3217    assert_eq!(
3218        unsafe { ::core::ptr::addr_of!((*ptr).pointCbScaling) as usize - ptr as usize },
3219        42usize,
3220        concat!(
3221            "Offset of field: ",
3222            stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1),
3223            "::",
3224            stringify!(pointCbScaling)
3225        )
3226    );
3227    assert_eq!(
3228        unsafe { ::core::ptr::addr_of!((*ptr).pointCrValue) as usize - ptr as usize },
3229        52usize,
3230        concat!(
3231            "Offset of field: ",
3232            stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1),
3233            "::",
3234            stringify!(pointCrValue)
3235        )
3236    );
3237    assert_eq!(
3238        unsafe { ::core::ptr::addr_of!((*ptr).pointCrScaling) as usize - ptr as usize },
3239        62usize,
3240        concat!(
3241            "Offset of field: ",
3242            stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1),
3243            "::",
3244            stringify!(pointCrScaling)
3245        )
3246    );
3247    assert_eq!(
3248        unsafe { ::core::ptr::addr_of!((*ptr).arCoeffsYPlus128) as usize - ptr as usize },
3249        72usize,
3250        concat!(
3251            "Offset of field: ",
3252            stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1),
3253            "::",
3254            stringify!(arCoeffsYPlus128)
3255        )
3256    );
3257    assert_eq!(
3258        unsafe { ::core::ptr::addr_of!((*ptr).arCoeffsCbPlus128) as usize - ptr as usize },
3259        96usize,
3260        concat!(
3261            "Offset of field: ",
3262            stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1),
3263            "::",
3264            stringify!(arCoeffsCbPlus128)
3265        )
3266    );
3267    assert_eq!(
3268        unsafe { ::core::ptr::addr_of!((*ptr).arCoeffsCrPlus128) as usize - ptr as usize },
3269        121usize,
3270        concat!(
3271            "Offset of field: ",
3272            stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1),
3273            "::",
3274            stringify!(arCoeffsCrPlus128)
3275        )
3276    );
3277    assert_eq!(
3278        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
3279        146usize,
3280        concat!(
3281            "Offset of field: ",
3282            stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1),
3283            "::",
3284            stringify!(reserved2)
3285        )
3286    );
3287    assert_eq!(
3288        unsafe { ::core::ptr::addr_of!((*ptr).cbMult) as usize - ptr as usize },
3289        148usize,
3290        concat!(
3291            "Offset of field: ",
3292            stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1),
3293            "::",
3294            stringify!(cbMult)
3295        )
3296    );
3297    assert_eq!(
3298        unsafe { ::core::ptr::addr_of!((*ptr).cbLumaMult) as usize - ptr as usize },
3299        149usize,
3300        concat!(
3301            "Offset of field: ",
3302            stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1),
3303            "::",
3304            stringify!(cbLumaMult)
3305        )
3306    );
3307    assert_eq!(
3308        unsafe { ::core::ptr::addr_of!((*ptr).cbOffset) as usize - ptr as usize },
3309        150usize,
3310        concat!(
3311            "Offset of field: ",
3312            stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1),
3313            "::",
3314            stringify!(cbOffset)
3315        )
3316    );
3317    assert_eq!(
3318        unsafe { ::core::ptr::addr_of!((*ptr).crMult) as usize - ptr as usize },
3319        152usize,
3320        concat!(
3321            "Offset of field: ",
3322            stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1),
3323            "::",
3324            stringify!(crMult)
3325        )
3326    );
3327    assert_eq!(
3328        unsafe { ::core::ptr::addr_of!((*ptr).crLumaMult) as usize - ptr as usize },
3329        153usize,
3330        concat!(
3331            "Offset of field: ",
3332            stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1),
3333            "::",
3334            stringify!(crLumaMult)
3335        )
3336    );
3337    assert_eq!(
3338        unsafe { ::core::ptr::addr_of!((*ptr).crOffset) as usize - ptr as usize },
3339        154usize,
3340        concat!(
3341            "Offset of field: ",
3342            stringify!(_NV_ENC_FILM_GRAIN_PARAMS_AV1),
3343            "::",
3344            stringify!(crOffset)
3345        )
3346    );
3347}
3348#[test]
3349fn bindgen_test_layout__NV_ENC_CONFIG_AV1() {
3350    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_AV1> = ::core::mem::MaybeUninit::uninit();
3351    let ptr = UNINIT.as_ptr();
3352    assert_eq!(
3353        ::core::mem::size_of::<_NV_ENC_CONFIG_AV1>(),
3354        1552usize,
3355        concat!("Size of: ", stringify!(_NV_ENC_CONFIG_AV1))
3356    );
3357    assert_eq!(
3358        ::core::mem::align_of::<_NV_ENC_CONFIG_AV1>(),
3359        8usize,
3360        concat!("Alignment of ", stringify!(_NV_ENC_CONFIG_AV1))
3361    );
3362    assert_eq!(
3363        unsafe { ::core::ptr::addr_of!((*ptr).level) as usize - ptr as usize },
3364        0usize,
3365        concat!(
3366            "Offset of field: ",
3367            stringify!(_NV_ENC_CONFIG_AV1),
3368            "::",
3369            stringify!(level)
3370        )
3371    );
3372    assert_eq!(
3373        unsafe { ::core::ptr::addr_of!((*ptr).tier) as usize - ptr as usize },
3374        4usize,
3375        concat!(
3376            "Offset of field: ",
3377            stringify!(_NV_ENC_CONFIG_AV1),
3378            "::",
3379            stringify!(tier)
3380        )
3381    );
3382    assert_eq!(
3383        unsafe { ::core::ptr::addr_of!((*ptr).minPartSize) as usize - ptr as usize },
3384        8usize,
3385        concat!(
3386            "Offset of field: ",
3387            stringify!(_NV_ENC_CONFIG_AV1),
3388            "::",
3389            stringify!(minPartSize)
3390        )
3391    );
3392    assert_eq!(
3393        unsafe { ::core::ptr::addr_of!((*ptr).maxPartSize) as usize - ptr as usize },
3394        12usize,
3395        concat!(
3396            "Offset of field: ",
3397            stringify!(_NV_ENC_CONFIG_AV1),
3398            "::",
3399            stringify!(maxPartSize)
3400        )
3401    );
3402    assert_eq!(
3403        unsafe { ::core::ptr::addr_of!((*ptr).idrPeriod) as usize - ptr as usize },
3404        20usize,
3405        concat!(
3406            "Offset of field: ",
3407            stringify!(_NV_ENC_CONFIG_AV1),
3408            "::",
3409            stringify!(idrPeriod)
3410        )
3411    );
3412    assert_eq!(
3413        unsafe { ::core::ptr::addr_of!((*ptr).intraRefreshPeriod) as usize - ptr as usize },
3414        24usize,
3415        concat!(
3416            "Offset of field: ",
3417            stringify!(_NV_ENC_CONFIG_AV1),
3418            "::",
3419            stringify!(intraRefreshPeriod)
3420        )
3421    );
3422    assert_eq!(
3423        unsafe { ::core::ptr::addr_of!((*ptr).intraRefreshCnt) as usize - ptr as usize },
3424        28usize,
3425        concat!(
3426            "Offset of field: ",
3427            stringify!(_NV_ENC_CONFIG_AV1),
3428            "::",
3429            stringify!(intraRefreshCnt)
3430        )
3431    );
3432    assert_eq!(
3433        unsafe { ::core::ptr::addr_of!((*ptr).maxNumRefFramesInDPB) as usize - ptr as usize },
3434        32usize,
3435        concat!(
3436            "Offset of field: ",
3437            stringify!(_NV_ENC_CONFIG_AV1),
3438            "::",
3439            stringify!(maxNumRefFramesInDPB)
3440        )
3441    );
3442    assert_eq!(
3443        unsafe { ::core::ptr::addr_of!((*ptr).numTileColumns) as usize - ptr as usize },
3444        36usize,
3445        concat!(
3446            "Offset of field: ",
3447            stringify!(_NV_ENC_CONFIG_AV1),
3448            "::",
3449            stringify!(numTileColumns)
3450        )
3451    );
3452    assert_eq!(
3453        unsafe { ::core::ptr::addr_of!((*ptr).numTileRows) as usize - ptr as usize },
3454        40usize,
3455        concat!(
3456            "Offset of field: ",
3457            stringify!(_NV_ENC_CONFIG_AV1),
3458            "::",
3459            stringify!(numTileRows)
3460        )
3461    );
3462    assert_eq!(
3463        unsafe { ::core::ptr::addr_of!((*ptr).tileWidths) as usize - ptr as usize },
3464        48usize,
3465        concat!(
3466            "Offset of field: ",
3467            stringify!(_NV_ENC_CONFIG_AV1),
3468            "::",
3469            stringify!(tileWidths)
3470        )
3471    );
3472    assert_eq!(
3473        unsafe { ::core::ptr::addr_of!((*ptr).tileHeights) as usize - ptr as usize },
3474        56usize,
3475        concat!(
3476            "Offset of field: ",
3477            stringify!(_NV_ENC_CONFIG_AV1),
3478            "::",
3479            stringify!(tileHeights)
3480        )
3481    );
3482    assert_eq!(
3483        unsafe { ::core::ptr::addr_of!((*ptr).maxTemporalLayersMinus1) as usize - ptr as usize },
3484        64usize,
3485        concat!(
3486            "Offset of field: ",
3487            stringify!(_NV_ENC_CONFIG_AV1),
3488            "::",
3489            stringify!(maxTemporalLayersMinus1)
3490        )
3491    );
3492    assert_eq!(
3493        unsafe { ::core::ptr::addr_of!((*ptr).colorPrimaries) as usize - ptr as usize },
3494        68usize,
3495        concat!(
3496            "Offset of field: ",
3497            stringify!(_NV_ENC_CONFIG_AV1),
3498            "::",
3499            stringify!(colorPrimaries)
3500        )
3501    );
3502    assert_eq!(
3503        unsafe { ::core::ptr::addr_of!((*ptr).transferCharacteristics) as usize - ptr as usize },
3504        72usize,
3505        concat!(
3506            "Offset of field: ",
3507            stringify!(_NV_ENC_CONFIG_AV1),
3508            "::",
3509            stringify!(transferCharacteristics)
3510        )
3511    );
3512    assert_eq!(
3513        unsafe { ::core::ptr::addr_of!((*ptr).matrixCoefficients) as usize - ptr as usize },
3514        76usize,
3515        concat!(
3516            "Offset of field: ",
3517            stringify!(_NV_ENC_CONFIG_AV1),
3518            "::",
3519            stringify!(matrixCoefficients)
3520        )
3521    );
3522    assert_eq!(
3523        unsafe { ::core::ptr::addr_of!((*ptr).colorRange) as usize - ptr as usize },
3524        80usize,
3525        concat!(
3526            "Offset of field: ",
3527            stringify!(_NV_ENC_CONFIG_AV1),
3528            "::",
3529            stringify!(colorRange)
3530        )
3531    );
3532    assert_eq!(
3533        unsafe { ::core::ptr::addr_of!((*ptr).chromaSamplePosition) as usize - ptr as usize },
3534        84usize,
3535        concat!(
3536            "Offset of field: ",
3537            stringify!(_NV_ENC_CONFIG_AV1),
3538            "::",
3539            stringify!(chromaSamplePosition)
3540        )
3541    );
3542    assert_eq!(
3543        unsafe { ::core::ptr::addr_of!((*ptr).useBFramesAsRef) as usize - ptr as usize },
3544        88usize,
3545        concat!(
3546            "Offset of field: ",
3547            stringify!(_NV_ENC_CONFIG_AV1),
3548            "::",
3549            stringify!(useBFramesAsRef)
3550        )
3551    );
3552    assert_eq!(
3553        unsafe { ::core::ptr::addr_of!((*ptr).filmGrainParams) as usize - ptr as usize },
3554        96usize,
3555        concat!(
3556            "Offset of field: ",
3557            stringify!(_NV_ENC_CONFIG_AV1),
3558            "::",
3559            stringify!(filmGrainParams)
3560        )
3561    );
3562    assert_eq!(
3563        unsafe { ::core::ptr::addr_of!((*ptr).numFwdRefs) as usize - ptr as usize },
3564        104usize,
3565        concat!(
3566            "Offset of field: ",
3567            stringify!(_NV_ENC_CONFIG_AV1),
3568            "::",
3569            stringify!(numFwdRefs)
3570        )
3571    );
3572    assert_eq!(
3573        unsafe { ::core::ptr::addr_of!((*ptr).numBwdRefs) as usize - ptr as usize },
3574        108usize,
3575        concat!(
3576            "Offset of field: ",
3577            stringify!(_NV_ENC_CONFIG_AV1),
3578            "::",
3579            stringify!(numBwdRefs)
3580        )
3581    );
3582    assert_eq!(
3583        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
3584        112usize,
3585        concat!(
3586            "Offset of field: ",
3587            stringify!(_NV_ENC_CONFIG_AV1),
3588            "::",
3589            stringify!(reserved1)
3590        )
3591    );
3592    assert_eq!(
3593        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
3594        1056usize,
3595        concat!(
3596            "Offset of field: ",
3597            stringify!(_NV_ENC_CONFIG_AV1),
3598            "::",
3599            stringify!(reserved2)
3600        )
3601    );
3602}
3603#[test]
3604fn bindgen_test_layout__NV_ENC_CONFIG_H264_MEONLY() {
3605    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_H264_MEONLY> =
3606        ::core::mem::MaybeUninit::uninit();
3607    let ptr = UNINIT.as_ptr();
3608    assert_eq!(
3609        ::core::mem::size_of::<_NV_ENC_CONFIG_H264_MEONLY>(),
3610        1536usize,
3611        concat!("Size of: ", stringify!(_NV_ENC_CONFIG_H264_MEONLY))
3612    );
3613    assert_eq!(
3614        ::core::mem::align_of::<_NV_ENC_CONFIG_H264_MEONLY>(),
3615        8usize,
3616        concat!("Alignment of ", stringify!(_NV_ENC_CONFIG_H264_MEONLY))
3617    );
3618    assert_eq!(
3619        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
3620        4usize,
3621        concat!(
3622            "Offset of field: ",
3623            stringify!(_NV_ENC_CONFIG_H264_MEONLY),
3624            "::",
3625            stringify!(reserved1)
3626        )
3627    );
3628    assert_eq!(
3629        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
3630        1024usize,
3631        concat!(
3632            "Offset of field: ",
3633            stringify!(_NV_ENC_CONFIG_H264_MEONLY),
3634            "::",
3635            stringify!(reserved2)
3636        )
3637    );
3638}
3639#[test]
3640fn bindgen_test_layout__NV_ENC_CONFIG_HEVC_MEONLY() {
3641    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG_HEVC_MEONLY> =
3642        ::core::mem::MaybeUninit::uninit();
3643    let ptr = UNINIT.as_ptr();
3644    assert_eq!(
3645        ::core::mem::size_of::<_NV_ENC_CONFIG_HEVC_MEONLY>(),
3646        1536usize,
3647        concat!("Size of: ", stringify!(_NV_ENC_CONFIG_HEVC_MEONLY))
3648    );
3649    assert_eq!(
3650        ::core::mem::align_of::<_NV_ENC_CONFIG_HEVC_MEONLY>(),
3651        8usize,
3652        concat!("Alignment of ", stringify!(_NV_ENC_CONFIG_HEVC_MEONLY))
3653    );
3654    assert_eq!(
3655        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
3656        0usize,
3657        concat!(
3658            "Offset of field: ",
3659            stringify!(_NV_ENC_CONFIG_HEVC_MEONLY),
3660            "::",
3661            stringify!(reserved)
3662        )
3663    );
3664    assert_eq!(
3665        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
3666        1024usize,
3667        concat!(
3668            "Offset of field: ",
3669            stringify!(_NV_ENC_CONFIG_HEVC_MEONLY),
3670            "::",
3671            stringify!(reserved1)
3672        )
3673    );
3674}
3675#[test]
3676fn bindgen_test_layout__NV_ENC_CODEC_CONFIG() {
3677    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CODEC_CONFIG> =
3678        ::core::mem::MaybeUninit::uninit();
3679    let ptr = UNINIT.as_ptr();
3680    assert_eq!(
3681        ::core::mem::size_of::<_NV_ENC_CODEC_CONFIG>(),
3682        1792usize,
3683        concat!("Size of: ", stringify!(_NV_ENC_CODEC_CONFIG))
3684    );
3685    assert_eq!(
3686        ::core::mem::align_of::<_NV_ENC_CODEC_CONFIG>(),
3687        8usize,
3688        concat!("Alignment of ", stringify!(_NV_ENC_CODEC_CONFIG))
3689    );
3690    assert_eq!(
3691        unsafe { ::core::ptr::addr_of!((*ptr).h264Config) as usize - ptr as usize },
3692        0usize,
3693        concat!(
3694            "Offset of field: ",
3695            stringify!(_NV_ENC_CODEC_CONFIG),
3696            "::",
3697            stringify!(h264Config)
3698        )
3699    );
3700    assert_eq!(
3701        unsafe { ::core::ptr::addr_of!((*ptr).hevcConfig) as usize - ptr as usize },
3702        0usize,
3703        concat!(
3704            "Offset of field: ",
3705            stringify!(_NV_ENC_CODEC_CONFIG),
3706            "::",
3707            stringify!(hevcConfig)
3708        )
3709    );
3710    assert_eq!(
3711        unsafe { ::core::ptr::addr_of!((*ptr).av1Config) as usize - ptr as usize },
3712        0usize,
3713        concat!(
3714            "Offset of field: ",
3715            stringify!(_NV_ENC_CODEC_CONFIG),
3716            "::",
3717            stringify!(av1Config)
3718        )
3719    );
3720    assert_eq!(
3721        unsafe { ::core::ptr::addr_of!((*ptr).h264MeOnlyConfig) as usize - ptr as usize },
3722        0usize,
3723        concat!(
3724            "Offset of field: ",
3725            stringify!(_NV_ENC_CODEC_CONFIG),
3726            "::",
3727            stringify!(h264MeOnlyConfig)
3728        )
3729    );
3730    assert_eq!(
3731        unsafe { ::core::ptr::addr_of!((*ptr).hevcMeOnlyConfig) as usize - ptr as usize },
3732        0usize,
3733        concat!(
3734            "Offset of field: ",
3735            stringify!(_NV_ENC_CODEC_CONFIG),
3736            "::",
3737            stringify!(hevcMeOnlyConfig)
3738        )
3739    );
3740    assert_eq!(
3741        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
3742        0usize,
3743        concat!(
3744            "Offset of field: ",
3745            stringify!(_NV_ENC_CODEC_CONFIG),
3746            "::",
3747            stringify!(reserved)
3748        )
3749    );
3750}
3751#[test]
3752fn bindgen_test_layout__NV_ENC_CONFIG() {
3753    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CONFIG> = ::core::mem::MaybeUninit::uninit();
3754    let ptr = UNINIT.as_ptr();
3755    assert_eq!(
3756        ::core::mem::size_of::<_NV_ENC_CONFIG>(),
3757        3584usize,
3758        concat!("Size of: ", stringify!(_NV_ENC_CONFIG))
3759    );
3760    assert_eq!(
3761        ::core::mem::align_of::<_NV_ENC_CONFIG>(),
3762        8usize,
3763        concat!("Alignment of ", stringify!(_NV_ENC_CONFIG))
3764    );
3765    assert_eq!(
3766        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
3767        0usize,
3768        concat!(
3769            "Offset of field: ",
3770            stringify!(_NV_ENC_CONFIG),
3771            "::",
3772            stringify!(version)
3773        )
3774    );
3775    assert_eq!(
3776        unsafe { ::core::ptr::addr_of!((*ptr).profileGUID) as usize - ptr as usize },
3777        4usize,
3778        concat!(
3779            "Offset of field: ",
3780            stringify!(_NV_ENC_CONFIG),
3781            "::",
3782            stringify!(profileGUID)
3783        )
3784    );
3785    assert_eq!(
3786        unsafe { ::core::ptr::addr_of!((*ptr).gopLength) as usize - ptr as usize },
3787        20usize,
3788        concat!(
3789            "Offset of field: ",
3790            stringify!(_NV_ENC_CONFIG),
3791            "::",
3792            stringify!(gopLength)
3793        )
3794    );
3795    assert_eq!(
3796        unsafe { ::core::ptr::addr_of!((*ptr).frameIntervalP) as usize - ptr as usize },
3797        24usize,
3798        concat!(
3799            "Offset of field: ",
3800            stringify!(_NV_ENC_CONFIG),
3801            "::",
3802            stringify!(frameIntervalP)
3803        )
3804    );
3805    assert_eq!(
3806        unsafe { ::core::ptr::addr_of!((*ptr).monoChromeEncoding) as usize - ptr as usize },
3807        28usize,
3808        concat!(
3809            "Offset of field: ",
3810            stringify!(_NV_ENC_CONFIG),
3811            "::",
3812            stringify!(monoChromeEncoding)
3813        )
3814    );
3815    assert_eq!(
3816        unsafe { ::core::ptr::addr_of!((*ptr).frameFieldMode) as usize - ptr as usize },
3817        32usize,
3818        concat!(
3819            "Offset of field: ",
3820            stringify!(_NV_ENC_CONFIG),
3821            "::",
3822            stringify!(frameFieldMode)
3823        )
3824    );
3825    assert_eq!(
3826        unsafe { ::core::ptr::addr_of!((*ptr).mvPrecision) as usize - ptr as usize },
3827        36usize,
3828        concat!(
3829            "Offset of field: ",
3830            stringify!(_NV_ENC_CONFIG),
3831            "::",
3832            stringify!(mvPrecision)
3833        )
3834    );
3835    assert_eq!(
3836        unsafe { ::core::ptr::addr_of!((*ptr).rcParams) as usize - ptr as usize },
3837        40usize,
3838        concat!(
3839            "Offset of field: ",
3840            stringify!(_NV_ENC_CONFIG),
3841            "::",
3842            stringify!(rcParams)
3843        )
3844    );
3845    assert_eq!(
3846        unsafe { ::core::ptr::addr_of!((*ptr).encodeCodecConfig) as usize - ptr as usize },
3847        168usize,
3848        concat!(
3849            "Offset of field: ",
3850            stringify!(_NV_ENC_CONFIG),
3851            "::",
3852            stringify!(encodeCodecConfig)
3853        )
3854    );
3855    assert_eq!(
3856        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
3857        1960usize,
3858        concat!(
3859            "Offset of field: ",
3860            stringify!(_NV_ENC_CONFIG),
3861            "::",
3862            stringify!(reserved)
3863        )
3864    );
3865    assert_eq!(
3866        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
3867        3072usize,
3868        concat!(
3869            "Offset of field: ",
3870            stringify!(_NV_ENC_CONFIG),
3871            "::",
3872            stringify!(reserved2)
3873        )
3874    );
3875}
3876#[test]
3877fn bindgen_test_layout__NV_ENC_INITIALIZE_PARAMS() {
3878    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_INITIALIZE_PARAMS> =
3879        ::core::mem::MaybeUninit::uninit();
3880    let ptr = UNINIT.as_ptr();
3881    assert_eq!(
3882        ::core::mem::size_of::<_NV_ENC_INITIALIZE_PARAMS>(),
3883        1808usize,
3884        concat!("Size of: ", stringify!(_NV_ENC_INITIALIZE_PARAMS))
3885    );
3886    assert_eq!(
3887        ::core::mem::align_of::<_NV_ENC_INITIALIZE_PARAMS>(),
3888        8usize,
3889        concat!("Alignment of ", stringify!(_NV_ENC_INITIALIZE_PARAMS))
3890    );
3891    assert_eq!(
3892        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
3893        0usize,
3894        concat!(
3895            "Offset of field: ",
3896            stringify!(_NV_ENC_INITIALIZE_PARAMS),
3897            "::",
3898            stringify!(version)
3899        )
3900    );
3901    assert_eq!(
3902        unsafe { ::core::ptr::addr_of!((*ptr).encodeGUID) as usize - ptr as usize },
3903        4usize,
3904        concat!(
3905            "Offset of field: ",
3906            stringify!(_NV_ENC_INITIALIZE_PARAMS),
3907            "::",
3908            stringify!(encodeGUID)
3909        )
3910    );
3911    assert_eq!(
3912        unsafe { ::core::ptr::addr_of!((*ptr).presetGUID) as usize - ptr as usize },
3913        20usize,
3914        concat!(
3915            "Offset of field: ",
3916            stringify!(_NV_ENC_INITIALIZE_PARAMS),
3917            "::",
3918            stringify!(presetGUID)
3919        )
3920    );
3921    assert_eq!(
3922        unsafe { ::core::ptr::addr_of!((*ptr).encodeWidth) as usize - ptr as usize },
3923        36usize,
3924        concat!(
3925            "Offset of field: ",
3926            stringify!(_NV_ENC_INITIALIZE_PARAMS),
3927            "::",
3928            stringify!(encodeWidth)
3929        )
3930    );
3931    assert_eq!(
3932        unsafe { ::core::ptr::addr_of!((*ptr).encodeHeight) as usize - ptr as usize },
3933        40usize,
3934        concat!(
3935            "Offset of field: ",
3936            stringify!(_NV_ENC_INITIALIZE_PARAMS),
3937            "::",
3938            stringify!(encodeHeight)
3939        )
3940    );
3941    assert_eq!(
3942        unsafe { ::core::ptr::addr_of!((*ptr).darWidth) as usize - ptr as usize },
3943        44usize,
3944        concat!(
3945            "Offset of field: ",
3946            stringify!(_NV_ENC_INITIALIZE_PARAMS),
3947            "::",
3948            stringify!(darWidth)
3949        )
3950    );
3951    assert_eq!(
3952        unsafe { ::core::ptr::addr_of!((*ptr).darHeight) as usize - ptr as usize },
3953        48usize,
3954        concat!(
3955            "Offset of field: ",
3956            stringify!(_NV_ENC_INITIALIZE_PARAMS),
3957            "::",
3958            stringify!(darHeight)
3959        )
3960    );
3961    assert_eq!(
3962        unsafe { ::core::ptr::addr_of!((*ptr).frameRateNum) as usize - ptr as usize },
3963        52usize,
3964        concat!(
3965            "Offset of field: ",
3966            stringify!(_NV_ENC_INITIALIZE_PARAMS),
3967            "::",
3968            stringify!(frameRateNum)
3969        )
3970    );
3971    assert_eq!(
3972        unsafe { ::core::ptr::addr_of!((*ptr).frameRateDen) as usize - ptr as usize },
3973        56usize,
3974        concat!(
3975            "Offset of field: ",
3976            stringify!(_NV_ENC_INITIALIZE_PARAMS),
3977            "::",
3978            stringify!(frameRateDen)
3979        )
3980    );
3981    assert_eq!(
3982        unsafe { ::core::ptr::addr_of!((*ptr).enableEncodeAsync) as usize - ptr as usize },
3983        60usize,
3984        concat!(
3985            "Offset of field: ",
3986            stringify!(_NV_ENC_INITIALIZE_PARAMS),
3987            "::",
3988            stringify!(enableEncodeAsync)
3989        )
3990    );
3991    assert_eq!(
3992        unsafe { ::core::ptr::addr_of!((*ptr).enablePTD) as usize - ptr as usize },
3993        64usize,
3994        concat!(
3995            "Offset of field: ",
3996            stringify!(_NV_ENC_INITIALIZE_PARAMS),
3997            "::",
3998            stringify!(enablePTD)
3999        )
4000    );
4001    assert_eq!(
4002        unsafe { ::core::ptr::addr_of!((*ptr).privDataSize) as usize - ptr as usize },
4003        72usize,
4004        concat!(
4005            "Offset of field: ",
4006            stringify!(_NV_ENC_INITIALIZE_PARAMS),
4007            "::",
4008            stringify!(privDataSize)
4009        )
4010    );
4011    assert_eq!(
4012        unsafe { ::core::ptr::addr_of!((*ptr).privData) as usize - ptr as usize },
4013        80usize,
4014        concat!(
4015            "Offset of field: ",
4016            stringify!(_NV_ENC_INITIALIZE_PARAMS),
4017            "::",
4018            stringify!(privData)
4019        )
4020    );
4021    assert_eq!(
4022        unsafe { ::core::ptr::addr_of!((*ptr).encodeConfig) as usize - ptr as usize },
4023        88usize,
4024        concat!(
4025            "Offset of field: ",
4026            stringify!(_NV_ENC_INITIALIZE_PARAMS),
4027            "::",
4028            stringify!(encodeConfig)
4029        )
4030    );
4031    assert_eq!(
4032        unsafe { ::core::ptr::addr_of!((*ptr).maxEncodeWidth) as usize - ptr as usize },
4033        96usize,
4034        concat!(
4035            "Offset of field: ",
4036            stringify!(_NV_ENC_INITIALIZE_PARAMS),
4037            "::",
4038            stringify!(maxEncodeWidth)
4039        )
4040    );
4041    assert_eq!(
4042        unsafe { ::core::ptr::addr_of!((*ptr).maxEncodeHeight) as usize - ptr as usize },
4043        100usize,
4044        concat!(
4045            "Offset of field: ",
4046            stringify!(_NV_ENC_INITIALIZE_PARAMS),
4047            "::",
4048            stringify!(maxEncodeHeight)
4049        )
4050    );
4051    assert_eq!(
4052        unsafe { ::core::ptr::addr_of!((*ptr).maxMEHintCountsPerBlock) as usize - ptr as usize },
4053        104usize,
4054        concat!(
4055            "Offset of field: ",
4056            stringify!(_NV_ENC_INITIALIZE_PARAMS),
4057            "::",
4058            stringify!(maxMEHintCountsPerBlock)
4059        )
4060    );
4061    assert_eq!(
4062        unsafe { ::core::ptr::addr_of!((*ptr).tuningInfo) as usize - ptr as usize },
4063        136usize,
4064        concat!(
4065            "Offset of field: ",
4066            stringify!(_NV_ENC_INITIALIZE_PARAMS),
4067            "::",
4068            stringify!(tuningInfo)
4069        )
4070    );
4071    assert_eq!(
4072        unsafe { ::core::ptr::addr_of!((*ptr).bufferFormat) as usize - ptr as usize },
4073        140usize,
4074        concat!(
4075            "Offset of field: ",
4076            stringify!(_NV_ENC_INITIALIZE_PARAMS),
4077            "::",
4078            stringify!(bufferFormat)
4079        )
4080    );
4081    assert_eq!(
4082        unsafe { ::core::ptr::addr_of!((*ptr).numStateBuffers) as usize - ptr as usize },
4083        144usize,
4084        concat!(
4085            "Offset of field: ",
4086            stringify!(_NV_ENC_INITIALIZE_PARAMS),
4087            "::",
4088            stringify!(numStateBuffers)
4089        )
4090    );
4091    assert_eq!(
4092        unsafe { ::core::ptr::addr_of!((*ptr).outputStatsLevel) as usize - ptr as usize },
4093        148usize,
4094        concat!(
4095            "Offset of field: ",
4096            stringify!(_NV_ENC_INITIALIZE_PARAMS),
4097            "::",
4098            stringify!(outputStatsLevel)
4099        )
4100    );
4101    assert_eq!(
4102        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
4103        152usize,
4104        concat!(
4105            "Offset of field: ",
4106            stringify!(_NV_ENC_INITIALIZE_PARAMS),
4107            "::",
4108            stringify!(reserved)
4109        )
4110    );
4111    assert_eq!(
4112        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
4113        1296usize,
4114        concat!(
4115            "Offset of field: ",
4116            stringify!(_NV_ENC_INITIALIZE_PARAMS),
4117            "::",
4118            stringify!(reserved2)
4119        )
4120    );
4121}
4122#[test]
4123fn bindgen_test_layout__NV_ENC_RECONFIGURE_PARAMS() {
4124    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_RECONFIGURE_PARAMS> =
4125        ::core::mem::MaybeUninit::uninit();
4126    let ptr = UNINIT.as_ptr();
4127    assert_eq!(
4128        ::core::mem::size_of::<_NV_ENC_RECONFIGURE_PARAMS>(),
4129        1824usize,
4130        concat!("Size of: ", stringify!(_NV_ENC_RECONFIGURE_PARAMS))
4131    );
4132    assert_eq!(
4133        ::core::mem::align_of::<_NV_ENC_RECONFIGURE_PARAMS>(),
4134        8usize,
4135        concat!("Alignment of ", stringify!(_NV_ENC_RECONFIGURE_PARAMS))
4136    );
4137    assert_eq!(
4138        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
4139        0usize,
4140        concat!(
4141            "Offset of field: ",
4142            stringify!(_NV_ENC_RECONFIGURE_PARAMS),
4143            "::",
4144            stringify!(version)
4145        )
4146    );
4147    assert_eq!(
4148        unsafe { ::core::ptr::addr_of!((*ptr).reInitEncodeParams) as usize - ptr as usize },
4149        8usize,
4150        concat!(
4151            "Offset of field: ",
4152            stringify!(_NV_ENC_RECONFIGURE_PARAMS),
4153            "::",
4154            stringify!(reInitEncodeParams)
4155        )
4156    );
4157}
4158#[test]
4159fn bindgen_test_layout__NV_ENC_PRESET_CONFIG() {
4160    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PRESET_CONFIG> =
4161        ::core::mem::MaybeUninit::uninit();
4162    let ptr = UNINIT.as_ptr();
4163    assert_eq!(
4164        ::core::mem::size_of::<_NV_ENC_PRESET_CONFIG>(),
4165        5128usize,
4166        concat!("Size of: ", stringify!(_NV_ENC_PRESET_CONFIG))
4167    );
4168    assert_eq!(
4169        ::core::mem::align_of::<_NV_ENC_PRESET_CONFIG>(),
4170        8usize,
4171        concat!("Alignment of ", stringify!(_NV_ENC_PRESET_CONFIG))
4172    );
4173    assert_eq!(
4174        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
4175        0usize,
4176        concat!(
4177            "Offset of field: ",
4178            stringify!(_NV_ENC_PRESET_CONFIG),
4179            "::",
4180            stringify!(version)
4181        )
4182    );
4183    assert_eq!(
4184        unsafe { ::core::ptr::addr_of!((*ptr).presetCfg) as usize - ptr as usize },
4185        8usize,
4186        concat!(
4187            "Offset of field: ",
4188            stringify!(_NV_ENC_PRESET_CONFIG),
4189            "::",
4190            stringify!(presetCfg)
4191        )
4192    );
4193    assert_eq!(
4194        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
4195        3592usize,
4196        concat!(
4197            "Offset of field: ",
4198            stringify!(_NV_ENC_PRESET_CONFIG),
4199            "::",
4200            stringify!(reserved1)
4201        )
4202    );
4203    assert_eq!(
4204        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
4205        4616usize,
4206        concat!(
4207            "Offset of field: ",
4208            stringify!(_NV_ENC_PRESET_CONFIG),
4209            "::",
4210            stringify!(reserved2)
4211        )
4212    );
4213}
4214#[test]
4215fn bindgen_test_layout__NV_ENC_PIC_PARAMS_MVC() {
4216    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS_MVC> =
4217        ::core::mem::MaybeUninit::uninit();
4218    let ptr = UNINIT.as_ptr();
4219    assert_eq!(
4220        ::core::mem::size_of::<_NV_ENC_PIC_PARAMS_MVC>(),
4221        128usize,
4222        concat!("Size of: ", stringify!(_NV_ENC_PIC_PARAMS_MVC))
4223    );
4224    assert_eq!(
4225        ::core::mem::align_of::<_NV_ENC_PIC_PARAMS_MVC>(),
4226        8usize,
4227        concat!("Alignment of ", stringify!(_NV_ENC_PIC_PARAMS_MVC))
4228    );
4229    assert_eq!(
4230        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
4231        0usize,
4232        concat!(
4233            "Offset of field: ",
4234            stringify!(_NV_ENC_PIC_PARAMS_MVC),
4235            "::",
4236            stringify!(version)
4237        )
4238    );
4239    assert_eq!(
4240        unsafe { ::core::ptr::addr_of!((*ptr).viewID) as usize - ptr as usize },
4241        4usize,
4242        concat!(
4243            "Offset of field: ",
4244            stringify!(_NV_ENC_PIC_PARAMS_MVC),
4245            "::",
4246            stringify!(viewID)
4247        )
4248    );
4249    assert_eq!(
4250        unsafe { ::core::ptr::addr_of!((*ptr).temporalID) as usize - ptr as usize },
4251        8usize,
4252        concat!(
4253            "Offset of field: ",
4254            stringify!(_NV_ENC_PIC_PARAMS_MVC),
4255            "::",
4256            stringify!(temporalID)
4257        )
4258    );
4259    assert_eq!(
4260        unsafe { ::core::ptr::addr_of!((*ptr).priorityID) as usize - ptr as usize },
4261        12usize,
4262        concat!(
4263            "Offset of field: ",
4264            stringify!(_NV_ENC_PIC_PARAMS_MVC),
4265            "::",
4266            stringify!(priorityID)
4267        )
4268    );
4269    assert_eq!(
4270        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
4271        16usize,
4272        concat!(
4273            "Offset of field: ",
4274            stringify!(_NV_ENC_PIC_PARAMS_MVC),
4275            "::",
4276            stringify!(reserved1)
4277        )
4278    );
4279    assert_eq!(
4280        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
4281        64usize,
4282        concat!(
4283            "Offset of field: ",
4284            stringify!(_NV_ENC_PIC_PARAMS_MVC),
4285            "::",
4286            stringify!(reserved2)
4287        )
4288    );
4289}
4290#[test]
4291fn bindgen_test_layout__NV_ENC_PIC_PARAMS_H264_EXT() {
4292    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS_H264_EXT> =
4293        ::core::mem::MaybeUninit::uninit();
4294    let ptr = UNINIT.as_ptr();
4295    assert_eq!(
4296        ::core::mem::size_of::<_NV_ENC_PIC_PARAMS_H264_EXT>(),
4297        128usize,
4298        concat!("Size of: ", stringify!(_NV_ENC_PIC_PARAMS_H264_EXT))
4299    );
4300    assert_eq!(
4301        ::core::mem::align_of::<_NV_ENC_PIC_PARAMS_H264_EXT>(),
4302        8usize,
4303        concat!("Alignment of ", stringify!(_NV_ENC_PIC_PARAMS_H264_EXT))
4304    );
4305    assert_eq!(
4306        unsafe { ::core::ptr::addr_of!((*ptr).mvcPicParams) as usize - ptr as usize },
4307        0usize,
4308        concat!(
4309            "Offset of field: ",
4310            stringify!(_NV_ENC_PIC_PARAMS_H264_EXT),
4311            "::",
4312            stringify!(mvcPicParams)
4313        )
4314    );
4315    assert_eq!(
4316        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
4317        0usize,
4318        concat!(
4319            "Offset of field: ",
4320            stringify!(_NV_ENC_PIC_PARAMS_H264_EXT),
4321            "::",
4322            stringify!(reserved1)
4323        )
4324    );
4325}
4326#[test]
4327fn bindgen_test_layout__NV_ENC_SEI_PAYLOAD() {
4328    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_SEI_PAYLOAD> =
4329        ::core::mem::MaybeUninit::uninit();
4330    let ptr = UNINIT.as_ptr();
4331    assert_eq!(
4332        ::core::mem::size_of::<_NV_ENC_SEI_PAYLOAD>(),
4333        16usize,
4334        concat!("Size of: ", stringify!(_NV_ENC_SEI_PAYLOAD))
4335    );
4336    assert_eq!(
4337        ::core::mem::align_of::<_NV_ENC_SEI_PAYLOAD>(),
4338        8usize,
4339        concat!("Alignment of ", stringify!(_NV_ENC_SEI_PAYLOAD))
4340    );
4341    assert_eq!(
4342        unsafe { ::core::ptr::addr_of!((*ptr).payloadSize) as usize - ptr as usize },
4343        0usize,
4344        concat!(
4345            "Offset of field: ",
4346            stringify!(_NV_ENC_SEI_PAYLOAD),
4347            "::",
4348            stringify!(payloadSize)
4349        )
4350    );
4351    assert_eq!(
4352        unsafe { ::core::ptr::addr_of!((*ptr).payloadType) as usize - ptr as usize },
4353        4usize,
4354        concat!(
4355            "Offset of field: ",
4356            stringify!(_NV_ENC_SEI_PAYLOAD),
4357            "::",
4358            stringify!(payloadType)
4359        )
4360    );
4361    assert_eq!(
4362        unsafe { ::core::ptr::addr_of!((*ptr).payload) as usize - ptr as usize },
4363        8usize,
4364        concat!(
4365            "Offset of field: ",
4366            stringify!(_NV_ENC_SEI_PAYLOAD),
4367            "::",
4368            stringify!(payload)
4369        )
4370    );
4371}
4372#[test]
4373fn bindgen_test_layout__NV_ENC_PIC_PARAMS_H264() {
4374    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS_H264> =
4375        ::core::mem::MaybeUninit::uninit();
4376    let ptr = UNINIT.as_ptr();
4377    assert_eq!(
4378        ::core::mem::size_of::<_NV_ENC_PIC_PARAMS_H264>(),
4379        1536usize,
4380        concat!("Size of: ", stringify!(_NV_ENC_PIC_PARAMS_H264))
4381    );
4382    assert_eq!(
4383        ::core::mem::align_of::<_NV_ENC_PIC_PARAMS_H264>(),
4384        8usize,
4385        concat!("Alignment of ", stringify!(_NV_ENC_PIC_PARAMS_H264))
4386    );
4387    assert_eq!(
4388        unsafe { ::core::ptr::addr_of!((*ptr).displayPOCSyntax) as usize - ptr as usize },
4389        0usize,
4390        concat!(
4391            "Offset of field: ",
4392            stringify!(_NV_ENC_PIC_PARAMS_H264),
4393            "::",
4394            stringify!(displayPOCSyntax)
4395        )
4396    );
4397    assert_eq!(
4398        unsafe { ::core::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize },
4399        4usize,
4400        concat!(
4401            "Offset of field: ",
4402            stringify!(_NV_ENC_PIC_PARAMS_H264),
4403            "::",
4404            stringify!(reserved3)
4405        )
4406    );
4407    assert_eq!(
4408        unsafe { ::core::ptr::addr_of!((*ptr).refPicFlag) as usize - ptr as usize },
4409        8usize,
4410        concat!(
4411            "Offset of field: ",
4412            stringify!(_NV_ENC_PIC_PARAMS_H264),
4413            "::",
4414            stringify!(refPicFlag)
4415        )
4416    );
4417    assert_eq!(
4418        unsafe { ::core::ptr::addr_of!((*ptr).colourPlaneId) as usize - ptr as usize },
4419        12usize,
4420        concat!(
4421            "Offset of field: ",
4422            stringify!(_NV_ENC_PIC_PARAMS_H264),
4423            "::",
4424            stringify!(colourPlaneId)
4425        )
4426    );
4427    assert_eq!(
4428        unsafe {
4429            ::core::ptr::addr_of!((*ptr).forceIntraRefreshWithFrameCnt) as usize - ptr as usize
4430        },
4431        16usize,
4432        concat!(
4433            "Offset of field: ",
4434            stringify!(_NV_ENC_PIC_PARAMS_H264),
4435            "::",
4436            stringify!(forceIntraRefreshWithFrameCnt)
4437        )
4438    );
4439    assert_eq!(
4440        unsafe { ::core::ptr::addr_of!((*ptr).sliceTypeData) as usize - ptr as usize },
4441        24usize,
4442        concat!(
4443            "Offset of field: ",
4444            stringify!(_NV_ENC_PIC_PARAMS_H264),
4445            "::",
4446            stringify!(sliceTypeData)
4447        )
4448    );
4449    assert_eq!(
4450        unsafe { ::core::ptr::addr_of!((*ptr).sliceTypeArrayCnt) as usize - ptr as usize },
4451        32usize,
4452        concat!(
4453            "Offset of field: ",
4454            stringify!(_NV_ENC_PIC_PARAMS_H264),
4455            "::",
4456            stringify!(sliceTypeArrayCnt)
4457        )
4458    );
4459    assert_eq!(
4460        unsafe { ::core::ptr::addr_of!((*ptr).seiPayloadArrayCnt) as usize - ptr as usize },
4461        36usize,
4462        concat!(
4463            "Offset of field: ",
4464            stringify!(_NV_ENC_PIC_PARAMS_H264),
4465            "::",
4466            stringify!(seiPayloadArrayCnt)
4467        )
4468    );
4469    assert_eq!(
4470        unsafe { ::core::ptr::addr_of!((*ptr).seiPayloadArray) as usize - ptr as usize },
4471        40usize,
4472        concat!(
4473            "Offset of field: ",
4474            stringify!(_NV_ENC_PIC_PARAMS_H264),
4475            "::",
4476            stringify!(seiPayloadArray)
4477        )
4478    );
4479    assert_eq!(
4480        unsafe { ::core::ptr::addr_of!((*ptr).sliceMode) as usize - ptr as usize },
4481        48usize,
4482        concat!(
4483            "Offset of field: ",
4484            stringify!(_NV_ENC_PIC_PARAMS_H264),
4485            "::",
4486            stringify!(sliceMode)
4487        )
4488    );
4489    assert_eq!(
4490        unsafe { ::core::ptr::addr_of!((*ptr).sliceModeData) as usize - ptr as usize },
4491        52usize,
4492        concat!(
4493            "Offset of field: ",
4494            stringify!(_NV_ENC_PIC_PARAMS_H264),
4495            "::",
4496            stringify!(sliceModeData)
4497        )
4498    );
4499    assert_eq!(
4500        unsafe { ::core::ptr::addr_of!((*ptr).ltrMarkFrameIdx) as usize - ptr as usize },
4501        56usize,
4502        concat!(
4503            "Offset of field: ",
4504            stringify!(_NV_ENC_PIC_PARAMS_H264),
4505            "::",
4506            stringify!(ltrMarkFrameIdx)
4507        )
4508    );
4509    assert_eq!(
4510        unsafe { ::core::ptr::addr_of!((*ptr).ltrUseFrameBitmap) as usize - ptr as usize },
4511        60usize,
4512        concat!(
4513            "Offset of field: ",
4514            stringify!(_NV_ENC_PIC_PARAMS_H264),
4515            "::",
4516            stringify!(ltrUseFrameBitmap)
4517        )
4518    );
4519    assert_eq!(
4520        unsafe { ::core::ptr::addr_of!((*ptr).ltrUsageMode) as usize - ptr as usize },
4521        64usize,
4522        concat!(
4523            "Offset of field: ",
4524            stringify!(_NV_ENC_PIC_PARAMS_H264),
4525            "::",
4526            stringify!(ltrUsageMode)
4527        )
4528    );
4529    assert_eq!(
4530        unsafe { ::core::ptr::addr_of!((*ptr).forceIntraSliceCount) as usize - ptr as usize },
4531        68usize,
4532        concat!(
4533            "Offset of field: ",
4534            stringify!(_NV_ENC_PIC_PARAMS_H264),
4535            "::",
4536            stringify!(forceIntraSliceCount)
4537        )
4538    );
4539    assert_eq!(
4540        unsafe { ::core::ptr::addr_of!((*ptr).forceIntraSliceIdx) as usize - ptr as usize },
4541        72usize,
4542        concat!(
4543            "Offset of field: ",
4544            stringify!(_NV_ENC_PIC_PARAMS_H264),
4545            "::",
4546            stringify!(forceIntraSliceIdx)
4547        )
4548    );
4549    assert_eq!(
4550        unsafe { ::core::ptr::addr_of!((*ptr).h264ExtPicParams) as usize - ptr as usize },
4551        80usize,
4552        concat!(
4553            "Offset of field: ",
4554            stringify!(_NV_ENC_PIC_PARAMS_H264),
4555            "::",
4556            stringify!(h264ExtPicParams)
4557        )
4558    );
4559    assert_eq!(
4560        unsafe { ::core::ptr::addr_of!((*ptr).timeCode) as usize - ptr as usize },
4561        208usize,
4562        concat!(
4563            "Offset of field: ",
4564            stringify!(_NV_ENC_PIC_PARAMS_H264),
4565            "::",
4566            stringify!(timeCode)
4567        )
4568    );
4569    assert_eq!(
4570        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
4571        236usize,
4572        concat!(
4573            "Offset of field: ",
4574            stringify!(_NV_ENC_PIC_PARAMS_H264),
4575            "::",
4576            stringify!(reserved)
4577        )
4578    );
4579    assert_eq!(
4580        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
4581        1048usize,
4582        concat!(
4583            "Offset of field: ",
4584            stringify!(_NV_ENC_PIC_PARAMS_H264),
4585            "::",
4586            stringify!(reserved2)
4587        )
4588    );
4589}
4590#[test]
4591fn bindgen_test_layout__NV_ENC_PIC_PARAMS_HEVC() {
4592    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS_HEVC> =
4593        ::core::mem::MaybeUninit::uninit();
4594    let ptr = UNINIT.as_ptr();
4595    assert_eq!(
4596        ::core::mem::size_of::<_NV_ENC_PIC_PARAMS_HEVC>(),
4597        1536usize,
4598        concat!("Size of: ", stringify!(_NV_ENC_PIC_PARAMS_HEVC))
4599    );
4600    assert_eq!(
4601        ::core::mem::align_of::<_NV_ENC_PIC_PARAMS_HEVC>(),
4602        8usize,
4603        concat!("Alignment of ", stringify!(_NV_ENC_PIC_PARAMS_HEVC))
4604    );
4605    assert_eq!(
4606        unsafe { ::core::ptr::addr_of!((*ptr).displayPOCSyntax) as usize - ptr as usize },
4607        0usize,
4608        concat!(
4609            "Offset of field: ",
4610            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4611            "::",
4612            stringify!(displayPOCSyntax)
4613        )
4614    );
4615    assert_eq!(
4616        unsafe { ::core::ptr::addr_of!((*ptr).refPicFlag) as usize - ptr as usize },
4617        4usize,
4618        concat!(
4619            "Offset of field: ",
4620            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4621            "::",
4622            stringify!(refPicFlag)
4623        )
4624    );
4625    assert_eq!(
4626        unsafe { ::core::ptr::addr_of!((*ptr).temporalId) as usize - ptr as usize },
4627        8usize,
4628        concat!(
4629            "Offset of field: ",
4630            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4631            "::",
4632            stringify!(temporalId)
4633        )
4634    );
4635    assert_eq!(
4636        unsafe {
4637            ::core::ptr::addr_of!((*ptr).forceIntraRefreshWithFrameCnt) as usize - ptr as usize
4638        },
4639        12usize,
4640        concat!(
4641            "Offset of field: ",
4642            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4643            "::",
4644            stringify!(forceIntraRefreshWithFrameCnt)
4645        )
4646    );
4647    assert_eq!(
4648        unsafe { ::core::ptr::addr_of!((*ptr).sliceTypeData) as usize - ptr as usize },
4649        24usize,
4650        concat!(
4651            "Offset of field: ",
4652            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4653            "::",
4654            stringify!(sliceTypeData)
4655        )
4656    );
4657    assert_eq!(
4658        unsafe { ::core::ptr::addr_of!((*ptr).sliceTypeArrayCnt) as usize - ptr as usize },
4659        32usize,
4660        concat!(
4661            "Offset of field: ",
4662            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4663            "::",
4664            stringify!(sliceTypeArrayCnt)
4665        )
4666    );
4667    assert_eq!(
4668        unsafe { ::core::ptr::addr_of!((*ptr).sliceMode) as usize - ptr as usize },
4669        36usize,
4670        concat!(
4671            "Offset of field: ",
4672            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4673            "::",
4674            stringify!(sliceMode)
4675        )
4676    );
4677    assert_eq!(
4678        unsafe { ::core::ptr::addr_of!((*ptr).sliceModeData) as usize - ptr as usize },
4679        40usize,
4680        concat!(
4681            "Offset of field: ",
4682            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4683            "::",
4684            stringify!(sliceModeData)
4685        )
4686    );
4687    assert_eq!(
4688        unsafe { ::core::ptr::addr_of!((*ptr).ltrMarkFrameIdx) as usize - ptr as usize },
4689        44usize,
4690        concat!(
4691            "Offset of field: ",
4692            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4693            "::",
4694            stringify!(ltrMarkFrameIdx)
4695        )
4696    );
4697    assert_eq!(
4698        unsafe { ::core::ptr::addr_of!((*ptr).ltrUseFrameBitmap) as usize - ptr as usize },
4699        48usize,
4700        concat!(
4701            "Offset of field: ",
4702            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4703            "::",
4704            stringify!(ltrUseFrameBitmap)
4705        )
4706    );
4707    assert_eq!(
4708        unsafe { ::core::ptr::addr_of!((*ptr).ltrUsageMode) as usize - ptr as usize },
4709        52usize,
4710        concat!(
4711            "Offset of field: ",
4712            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4713            "::",
4714            stringify!(ltrUsageMode)
4715        )
4716    );
4717    assert_eq!(
4718        unsafe { ::core::ptr::addr_of!((*ptr).seiPayloadArrayCnt) as usize - ptr as usize },
4719        56usize,
4720        concat!(
4721            "Offset of field: ",
4722            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4723            "::",
4724            stringify!(seiPayloadArrayCnt)
4725        )
4726    );
4727    assert_eq!(
4728        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
4729        60usize,
4730        concat!(
4731            "Offset of field: ",
4732            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4733            "::",
4734            stringify!(reserved)
4735        )
4736    );
4737    assert_eq!(
4738        unsafe { ::core::ptr::addr_of!((*ptr).seiPayloadArray) as usize - ptr as usize },
4739        64usize,
4740        concat!(
4741            "Offset of field: ",
4742            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4743            "::",
4744            stringify!(seiPayloadArray)
4745        )
4746    );
4747    assert_eq!(
4748        unsafe { ::core::ptr::addr_of!((*ptr).timeCode) as usize - ptr as usize },
4749        72usize,
4750        concat!(
4751            "Offset of field: ",
4752            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4753            "::",
4754            stringify!(timeCode)
4755        )
4756    );
4757    assert_eq!(
4758        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
4759        100usize,
4760        concat!(
4761            "Offset of field: ",
4762            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4763            "::",
4764            stringify!(reserved2)
4765        )
4766    );
4767    assert_eq!(
4768        unsafe { ::core::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize },
4769        1048usize,
4770        concat!(
4771            "Offset of field: ",
4772            stringify!(_NV_ENC_PIC_PARAMS_HEVC),
4773            "::",
4774            stringify!(reserved3)
4775        )
4776    );
4777}
4778#[test]
4779fn bindgen_test_layout__NV_ENC_PIC_PARAMS_AV1() {
4780    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS_AV1> =
4781        ::core::mem::MaybeUninit::uninit();
4782    let ptr = UNINIT.as_ptr();
4783    assert_eq!(
4784        ::core::mem::size_of::<_NV_ENC_PIC_PARAMS_AV1>(),
4785        1552usize,
4786        concat!("Size of: ", stringify!(_NV_ENC_PIC_PARAMS_AV1))
4787    );
4788    assert_eq!(
4789        ::core::mem::align_of::<_NV_ENC_PIC_PARAMS_AV1>(),
4790        8usize,
4791        concat!("Alignment of ", stringify!(_NV_ENC_PIC_PARAMS_AV1))
4792    );
4793    assert_eq!(
4794        unsafe { ::core::ptr::addr_of!((*ptr).displayPOCSyntax) as usize - ptr as usize },
4795        0usize,
4796        concat!(
4797            "Offset of field: ",
4798            stringify!(_NV_ENC_PIC_PARAMS_AV1),
4799            "::",
4800            stringify!(displayPOCSyntax)
4801        )
4802    );
4803    assert_eq!(
4804        unsafe { ::core::ptr::addr_of!((*ptr).refPicFlag) as usize - ptr as usize },
4805        4usize,
4806        concat!(
4807            "Offset of field: ",
4808            stringify!(_NV_ENC_PIC_PARAMS_AV1),
4809            "::",
4810            stringify!(refPicFlag)
4811        )
4812    );
4813    assert_eq!(
4814        unsafe { ::core::ptr::addr_of!((*ptr).temporalId) as usize - ptr as usize },
4815        8usize,
4816        concat!(
4817            "Offset of field: ",
4818            stringify!(_NV_ENC_PIC_PARAMS_AV1),
4819            "::",
4820            stringify!(temporalId)
4821        )
4822    );
4823    assert_eq!(
4824        unsafe {
4825            ::core::ptr::addr_of!((*ptr).forceIntraRefreshWithFrameCnt) as usize - ptr as usize
4826        },
4827        12usize,
4828        concat!(
4829            "Offset of field: ",
4830            stringify!(_NV_ENC_PIC_PARAMS_AV1),
4831            "::",
4832            stringify!(forceIntraRefreshWithFrameCnt)
4833        )
4834    );
4835    assert_eq!(
4836        unsafe { ::core::ptr::addr_of!((*ptr).numTileColumns) as usize - ptr as usize },
4837        20usize,
4838        concat!(
4839            "Offset of field: ",
4840            stringify!(_NV_ENC_PIC_PARAMS_AV1),
4841            "::",
4842            stringify!(numTileColumns)
4843        )
4844    );
4845    assert_eq!(
4846        unsafe { ::core::ptr::addr_of!((*ptr).numTileRows) as usize - ptr as usize },
4847        24usize,
4848        concat!(
4849            "Offset of field: ",
4850            stringify!(_NV_ENC_PIC_PARAMS_AV1),
4851            "::",
4852            stringify!(numTileRows)
4853        )
4854    );
4855    assert_eq!(
4856        unsafe { ::core::ptr::addr_of!((*ptr).tileWidths) as usize - ptr as usize },
4857        32usize,
4858        concat!(
4859            "Offset of field: ",
4860            stringify!(_NV_ENC_PIC_PARAMS_AV1),
4861            "::",
4862            stringify!(tileWidths)
4863        )
4864    );
4865    assert_eq!(
4866        unsafe { ::core::ptr::addr_of!((*ptr).tileHeights) as usize - ptr as usize },
4867        40usize,
4868        concat!(
4869            "Offset of field: ",
4870            stringify!(_NV_ENC_PIC_PARAMS_AV1),
4871            "::",
4872            stringify!(tileHeights)
4873        )
4874    );
4875    assert_eq!(
4876        unsafe { ::core::ptr::addr_of!((*ptr).obuPayloadArrayCnt) as usize - ptr as usize },
4877        48usize,
4878        concat!(
4879            "Offset of field: ",
4880            stringify!(_NV_ENC_PIC_PARAMS_AV1),
4881            "::",
4882            stringify!(obuPayloadArrayCnt)
4883        )
4884    );
4885    assert_eq!(
4886        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
4887        52usize,
4888        concat!(
4889            "Offset of field: ",
4890            stringify!(_NV_ENC_PIC_PARAMS_AV1),
4891            "::",
4892            stringify!(reserved)
4893        )
4894    );
4895    assert_eq!(
4896        unsafe { ::core::ptr::addr_of!((*ptr).obuPayloadArray) as usize - ptr as usize },
4897        56usize,
4898        concat!(
4899            "Offset of field: ",
4900            stringify!(_NV_ENC_PIC_PARAMS_AV1),
4901            "::",
4902            stringify!(obuPayloadArray)
4903        )
4904    );
4905    assert_eq!(
4906        unsafe { ::core::ptr::addr_of!((*ptr).filmGrainParams) as usize - ptr as usize },
4907        64usize,
4908        concat!(
4909            "Offset of field: ",
4910            stringify!(_NV_ENC_PIC_PARAMS_AV1),
4911            "::",
4912            stringify!(filmGrainParams)
4913        )
4914    );
4915    assert_eq!(
4916        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
4917        72usize,
4918        concat!(
4919            "Offset of field: ",
4920            stringify!(_NV_ENC_PIC_PARAMS_AV1),
4921            "::",
4922            stringify!(reserved2)
4923        )
4924    );
4925    assert_eq!(
4926        unsafe { ::core::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize },
4927        1064usize,
4928        concat!(
4929            "Offset of field: ",
4930            stringify!(_NV_ENC_PIC_PARAMS_AV1),
4931            "::",
4932            stringify!(reserved3)
4933        )
4934    );
4935}
4936#[test]
4937fn bindgen_test_layout__NV_ENC_CODEC_PIC_PARAMS() {
4938    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_CODEC_PIC_PARAMS> =
4939        ::core::mem::MaybeUninit::uninit();
4940    let ptr = UNINIT.as_ptr();
4941    assert_eq!(
4942        ::core::mem::size_of::<_NV_ENC_CODEC_PIC_PARAMS>(),
4943        1552usize,
4944        concat!("Size of: ", stringify!(_NV_ENC_CODEC_PIC_PARAMS))
4945    );
4946    assert_eq!(
4947        ::core::mem::align_of::<_NV_ENC_CODEC_PIC_PARAMS>(),
4948        8usize,
4949        concat!("Alignment of ", stringify!(_NV_ENC_CODEC_PIC_PARAMS))
4950    );
4951    assert_eq!(
4952        unsafe { ::core::ptr::addr_of!((*ptr).h264PicParams) as usize - ptr as usize },
4953        0usize,
4954        concat!(
4955            "Offset of field: ",
4956            stringify!(_NV_ENC_CODEC_PIC_PARAMS),
4957            "::",
4958            stringify!(h264PicParams)
4959        )
4960    );
4961    assert_eq!(
4962        unsafe { ::core::ptr::addr_of!((*ptr).hevcPicParams) as usize - ptr as usize },
4963        0usize,
4964        concat!(
4965            "Offset of field: ",
4966            stringify!(_NV_ENC_CODEC_PIC_PARAMS),
4967            "::",
4968            stringify!(hevcPicParams)
4969        )
4970    );
4971    assert_eq!(
4972        unsafe { ::core::ptr::addr_of!((*ptr).av1PicParams) as usize - ptr as usize },
4973        0usize,
4974        concat!(
4975            "Offset of field: ",
4976            stringify!(_NV_ENC_CODEC_PIC_PARAMS),
4977            "::",
4978            stringify!(av1PicParams)
4979        )
4980    );
4981    assert_eq!(
4982        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
4983        0usize,
4984        concat!(
4985            "Offset of field: ",
4986            stringify!(_NV_ENC_CODEC_PIC_PARAMS),
4987            "::",
4988            stringify!(reserved)
4989        )
4990    );
4991}
4992#[test]
4993fn bindgen_test_layout__NV_ENC_PIC_PARAMS() {
4994    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_PIC_PARAMS> = ::core::mem::MaybeUninit::uninit();
4995    let ptr = UNINIT.as_ptr();
4996    assert_eq!(
4997        ::core::mem::size_of::<_NV_ENC_PIC_PARAMS>(),
4998        3360usize,
4999        concat!("Size of: ", stringify!(_NV_ENC_PIC_PARAMS))
5000    );
5001    assert_eq!(
5002        ::core::mem::align_of::<_NV_ENC_PIC_PARAMS>(),
5003        8usize,
5004        concat!("Alignment of ", stringify!(_NV_ENC_PIC_PARAMS))
5005    );
5006    assert_eq!(
5007        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
5008        0usize,
5009        concat!(
5010            "Offset of field: ",
5011            stringify!(_NV_ENC_PIC_PARAMS),
5012            "::",
5013            stringify!(version)
5014        )
5015    );
5016    assert_eq!(
5017        unsafe { ::core::ptr::addr_of!((*ptr).inputWidth) as usize - ptr as usize },
5018        4usize,
5019        concat!(
5020            "Offset of field: ",
5021            stringify!(_NV_ENC_PIC_PARAMS),
5022            "::",
5023            stringify!(inputWidth)
5024        )
5025    );
5026    assert_eq!(
5027        unsafe { ::core::ptr::addr_of!((*ptr).inputHeight) as usize - ptr as usize },
5028        8usize,
5029        concat!(
5030            "Offset of field: ",
5031            stringify!(_NV_ENC_PIC_PARAMS),
5032            "::",
5033            stringify!(inputHeight)
5034        )
5035    );
5036    assert_eq!(
5037        unsafe { ::core::ptr::addr_of!((*ptr).inputPitch) as usize - ptr as usize },
5038        12usize,
5039        concat!(
5040            "Offset of field: ",
5041            stringify!(_NV_ENC_PIC_PARAMS),
5042            "::",
5043            stringify!(inputPitch)
5044        )
5045    );
5046    assert_eq!(
5047        unsafe { ::core::ptr::addr_of!((*ptr).encodePicFlags) as usize - ptr as usize },
5048        16usize,
5049        concat!(
5050            "Offset of field: ",
5051            stringify!(_NV_ENC_PIC_PARAMS),
5052            "::",
5053            stringify!(encodePicFlags)
5054        )
5055    );
5056    assert_eq!(
5057        unsafe { ::core::ptr::addr_of!((*ptr).frameIdx) as usize - ptr as usize },
5058        20usize,
5059        concat!(
5060            "Offset of field: ",
5061            stringify!(_NV_ENC_PIC_PARAMS),
5062            "::",
5063            stringify!(frameIdx)
5064        )
5065    );
5066    assert_eq!(
5067        unsafe { ::core::ptr::addr_of!((*ptr).inputTimeStamp) as usize - ptr as usize },
5068        24usize,
5069        concat!(
5070            "Offset of field: ",
5071            stringify!(_NV_ENC_PIC_PARAMS),
5072            "::",
5073            stringify!(inputTimeStamp)
5074        )
5075    );
5076    assert_eq!(
5077        unsafe { ::core::ptr::addr_of!((*ptr).inputDuration) as usize - ptr as usize },
5078        32usize,
5079        concat!(
5080            "Offset of field: ",
5081            stringify!(_NV_ENC_PIC_PARAMS),
5082            "::",
5083            stringify!(inputDuration)
5084        )
5085    );
5086    assert_eq!(
5087        unsafe { ::core::ptr::addr_of!((*ptr).inputBuffer) as usize - ptr as usize },
5088        40usize,
5089        concat!(
5090            "Offset of field: ",
5091            stringify!(_NV_ENC_PIC_PARAMS),
5092            "::",
5093            stringify!(inputBuffer)
5094        )
5095    );
5096    assert_eq!(
5097        unsafe { ::core::ptr::addr_of!((*ptr).outputBitstream) as usize - ptr as usize },
5098        48usize,
5099        concat!(
5100            "Offset of field: ",
5101            stringify!(_NV_ENC_PIC_PARAMS),
5102            "::",
5103            stringify!(outputBitstream)
5104        )
5105    );
5106    assert_eq!(
5107        unsafe { ::core::ptr::addr_of!((*ptr).completionEvent) as usize - ptr as usize },
5108        56usize,
5109        concat!(
5110            "Offset of field: ",
5111            stringify!(_NV_ENC_PIC_PARAMS),
5112            "::",
5113            stringify!(completionEvent)
5114        )
5115    );
5116    assert_eq!(
5117        unsafe { ::core::ptr::addr_of!((*ptr).bufferFmt) as usize - ptr as usize },
5118        64usize,
5119        concat!(
5120            "Offset of field: ",
5121            stringify!(_NV_ENC_PIC_PARAMS),
5122            "::",
5123            stringify!(bufferFmt)
5124        )
5125    );
5126    assert_eq!(
5127        unsafe { ::core::ptr::addr_of!((*ptr).pictureStruct) as usize - ptr as usize },
5128        68usize,
5129        concat!(
5130            "Offset of field: ",
5131            stringify!(_NV_ENC_PIC_PARAMS),
5132            "::",
5133            stringify!(pictureStruct)
5134        )
5135    );
5136    assert_eq!(
5137        unsafe { ::core::ptr::addr_of!((*ptr).pictureType) as usize - ptr as usize },
5138        72usize,
5139        concat!(
5140            "Offset of field: ",
5141            stringify!(_NV_ENC_PIC_PARAMS),
5142            "::",
5143            stringify!(pictureType)
5144        )
5145    );
5146    assert_eq!(
5147        unsafe { ::core::ptr::addr_of!((*ptr).codecPicParams) as usize - ptr as usize },
5148        80usize,
5149        concat!(
5150            "Offset of field: ",
5151            stringify!(_NV_ENC_PIC_PARAMS),
5152            "::",
5153            stringify!(codecPicParams)
5154        )
5155    );
5156    assert_eq!(
5157        unsafe { ::core::ptr::addr_of!((*ptr).meHintCountsPerBlock) as usize - ptr as usize },
5158        1632usize,
5159        concat!(
5160            "Offset of field: ",
5161            stringify!(_NV_ENC_PIC_PARAMS),
5162            "::",
5163            stringify!(meHintCountsPerBlock)
5164        )
5165    );
5166    assert_eq!(
5167        unsafe { ::core::ptr::addr_of!((*ptr).meExternalHints) as usize - ptr as usize },
5168        1664usize,
5169        concat!(
5170            "Offset of field: ",
5171            stringify!(_NV_ENC_PIC_PARAMS),
5172            "::",
5173            stringify!(meExternalHints)
5174        )
5175    );
5176    assert_eq!(
5177        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
5178        1672usize,
5179        concat!(
5180            "Offset of field: ",
5181            stringify!(_NV_ENC_PIC_PARAMS),
5182            "::",
5183            stringify!(reserved1)
5184        )
5185    );
5186    assert_eq!(
5187        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
5188        1696usize,
5189        concat!(
5190            "Offset of field: ",
5191            stringify!(_NV_ENC_PIC_PARAMS),
5192            "::",
5193            stringify!(reserved2)
5194        )
5195    );
5196    assert_eq!(
5197        unsafe { ::core::ptr::addr_of!((*ptr).qpDeltaMap) as usize - ptr as usize },
5198        1712usize,
5199        concat!(
5200            "Offset of field: ",
5201            stringify!(_NV_ENC_PIC_PARAMS),
5202            "::",
5203            stringify!(qpDeltaMap)
5204        )
5205    );
5206    assert_eq!(
5207        unsafe { ::core::ptr::addr_of!((*ptr).qpDeltaMapSize) as usize - ptr as usize },
5208        1720usize,
5209        concat!(
5210            "Offset of field: ",
5211            stringify!(_NV_ENC_PIC_PARAMS),
5212            "::",
5213            stringify!(qpDeltaMapSize)
5214        )
5215    );
5216    assert_eq!(
5217        unsafe { ::core::ptr::addr_of!((*ptr).reservedBitFields) as usize - ptr as usize },
5218        1724usize,
5219        concat!(
5220            "Offset of field: ",
5221            stringify!(_NV_ENC_PIC_PARAMS),
5222            "::",
5223            stringify!(reservedBitFields)
5224        )
5225    );
5226    assert_eq!(
5227        unsafe { ::core::ptr::addr_of!((*ptr).meHintRefPicDist) as usize - ptr as usize },
5228        1728usize,
5229        concat!(
5230            "Offset of field: ",
5231            stringify!(_NV_ENC_PIC_PARAMS),
5232            "::",
5233            stringify!(meHintRefPicDist)
5234        )
5235    );
5236    assert_eq!(
5237        unsafe { ::core::ptr::addr_of!((*ptr).alphaBuffer) as usize - ptr as usize },
5238        1736usize,
5239        concat!(
5240            "Offset of field: ",
5241            stringify!(_NV_ENC_PIC_PARAMS),
5242            "::",
5243            stringify!(alphaBuffer)
5244        )
5245    );
5246    assert_eq!(
5247        unsafe { ::core::ptr::addr_of!((*ptr).meExternalSbHints) as usize - ptr as usize },
5248        1744usize,
5249        concat!(
5250            "Offset of field: ",
5251            stringify!(_NV_ENC_PIC_PARAMS),
5252            "::",
5253            stringify!(meExternalSbHints)
5254        )
5255    );
5256    assert_eq!(
5257        unsafe { ::core::ptr::addr_of!((*ptr).meSbHintsCount) as usize - ptr as usize },
5258        1752usize,
5259        concat!(
5260            "Offset of field: ",
5261            stringify!(_NV_ENC_PIC_PARAMS),
5262            "::",
5263            stringify!(meSbHintsCount)
5264        )
5265    );
5266    assert_eq!(
5267        unsafe { ::core::ptr::addr_of!((*ptr).stateBufferIdx) as usize - ptr as usize },
5268        1756usize,
5269        concat!(
5270            "Offset of field: ",
5271            stringify!(_NV_ENC_PIC_PARAMS),
5272            "::",
5273            stringify!(stateBufferIdx)
5274        )
5275    );
5276    assert_eq!(
5277        unsafe { ::core::ptr::addr_of!((*ptr).outputReconBuffer) as usize - ptr as usize },
5278        1760usize,
5279        concat!(
5280            "Offset of field: ",
5281            stringify!(_NV_ENC_PIC_PARAMS),
5282            "::",
5283            stringify!(outputReconBuffer)
5284        )
5285    );
5286    assert_eq!(
5287        unsafe { ::core::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize },
5288        1768usize,
5289        concat!(
5290            "Offset of field: ",
5291            stringify!(_NV_ENC_PIC_PARAMS),
5292            "::",
5293            stringify!(reserved3)
5294        )
5295    );
5296    assert_eq!(
5297        unsafe { ::core::ptr::addr_of!((*ptr).reserved4) as usize - ptr as usize },
5298        2904usize,
5299        concat!(
5300            "Offset of field: ",
5301            stringify!(_NV_ENC_PIC_PARAMS),
5302            "::",
5303            stringify!(reserved4)
5304        )
5305    );
5306}
5307#[test]
5308fn bindgen_test_layout__NV_ENC_MEONLY_PARAMS() {
5309    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_MEONLY_PARAMS> =
5310        ::core::mem::MaybeUninit::uninit();
5311    let ptr = UNINIT.as_ptr();
5312    assert_eq!(
5313        ::core::mem::size_of::<_NV_ENC_MEONLY_PARAMS>(),
5314        1552usize,
5315        concat!("Size of: ", stringify!(_NV_ENC_MEONLY_PARAMS))
5316    );
5317    assert_eq!(
5318        ::core::mem::align_of::<_NV_ENC_MEONLY_PARAMS>(),
5319        8usize,
5320        concat!("Alignment of ", stringify!(_NV_ENC_MEONLY_PARAMS))
5321    );
5322    assert_eq!(
5323        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
5324        0usize,
5325        concat!(
5326            "Offset of field: ",
5327            stringify!(_NV_ENC_MEONLY_PARAMS),
5328            "::",
5329            stringify!(version)
5330        )
5331    );
5332    assert_eq!(
5333        unsafe { ::core::ptr::addr_of!((*ptr).inputWidth) as usize - ptr as usize },
5334        4usize,
5335        concat!(
5336            "Offset of field: ",
5337            stringify!(_NV_ENC_MEONLY_PARAMS),
5338            "::",
5339            stringify!(inputWidth)
5340        )
5341    );
5342    assert_eq!(
5343        unsafe { ::core::ptr::addr_of!((*ptr).inputHeight) as usize - ptr as usize },
5344        8usize,
5345        concat!(
5346            "Offset of field: ",
5347            stringify!(_NV_ENC_MEONLY_PARAMS),
5348            "::",
5349            stringify!(inputHeight)
5350        )
5351    );
5352    assert_eq!(
5353        unsafe { ::core::ptr::addr_of!((*ptr).inputBuffer) as usize - ptr as usize },
5354        16usize,
5355        concat!(
5356            "Offset of field: ",
5357            stringify!(_NV_ENC_MEONLY_PARAMS),
5358            "::",
5359            stringify!(inputBuffer)
5360        )
5361    );
5362    assert_eq!(
5363        unsafe { ::core::ptr::addr_of!((*ptr).referenceFrame) as usize - ptr as usize },
5364        24usize,
5365        concat!(
5366            "Offset of field: ",
5367            stringify!(_NV_ENC_MEONLY_PARAMS),
5368            "::",
5369            stringify!(referenceFrame)
5370        )
5371    );
5372    assert_eq!(
5373        unsafe { ::core::ptr::addr_of!((*ptr).mvBuffer) as usize - ptr as usize },
5374        32usize,
5375        concat!(
5376            "Offset of field: ",
5377            stringify!(_NV_ENC_MEONLY_PARAMS),
5378            "::",
5379            stringify!(mvBuffer)
5380        )
5381    );
5382    assert_eq!(
5383        unsafe { ::core::ptr::addr_of!((*ptr).bufferFmt) as usize - ptr as usize },
5384        40usize,
5385        concat!(
5386            "Offset of field: ",
5387            stringify!(_NV_ENC_MEONLY_PARAMS),
5388            "::",
5389            stringify!(bufferFmt)
5390        )
5391    );
5392    assert_eq!(
5393        unsafe { ::core::ptr::addr_of!((*ptr).completionEvent) as usize - ptr as usize },
5394        48usize,
5395        concat!(
5396            "Offset of field: ",
5397            stringify!(_NV_ENC_MEONLY_PARAMS),
5398            "::",
5399            stringify!(completionEvent)
5400        )
5401    );
5402    assert_eq!(
5403        unsafe { ::core::ptr::addr_of!((*ptr).viewID) as usize - ptr as usize },
5404        56usize,
5405        concat!(
5406            "Offset of field: ",
5407            stringify!(_NV_ENC_MEONLY_PARAMS),
5408            "::",
5409            stringify!(viewID)
5410        )
5411    );
5412    assert_eq!(
5413        unsafe { ::core::ptr::addr_of!((*ptr).meHintCountsPerBlock) as usize - ptr as usize },
5414        60usize,
5415        concat!(
5416            "Offset of field: ",
5417            stringify!(_NV_ENC_MEONLY_PARAMS),
5418            "::",
5419            stringify!(meHintCountsPerBlock)
5420        )
5421    );
5422    assert_eq!(
5423        unsafe { ::core::ptr::addr_of!((*ptr).meExternalHints) as usize - ptr as usize },
5424        96usize,
5425        concat!(
5426            "Offset of field: ",
5427            stringify!(_NV_ENC_MEONLY_PARAMS),
5428            "::",
5429            stringify!(meExternalHints)
5430        )
5431    );
5432    assert_eq!(
5433        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
5434        104usize,
5435        concat!(
5436            "Offset of field: ",
5437            stringify!(_NV_ENC_MEONLY_PARAMS),
5438            "::",
5439            stringify!(reserved1)
5440        )
5441    );
5442    assert_eq!(
5443        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
5444        1080usize,
5445        concat!(
5446            "Offset of field: ",
5447            stringify!(_NV_ENC_MEONLY_PARAMS),
5448            "::",
5449            stringify!(reserved2)
5450        )
5451    );
5452}
5453#[test]
5454fn bindgen_test_layout__NV_ENC_LOCK_BITSTREAM() {
5455    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_LOCK_BITSTREAM> =
5456        ::core::mem::MaybeUninit::uninit();
5457    let ptr = UNINIT.as_ptr();
5458    assert_eq!(
5459        ::core::mem::size_of::<_NV_ENC_LOCK_BITSTREAM>(),
5460        1552usize,
5461        concat!("Size of: ", stringify!(_NV_ENC_LOCK_BITSTREAM))
5462    );
5463    assert_eq!(
5464        ::core::mem::align_of::<_NV_ENC_LOCK_BITSTREAM>(),
5465        8usize,
5466        concat!("Alignment of ", stringify!(_NV_ENC_LOCK_BITSTREAM))
5467    );
5468    assert_eq!(
5469        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
5470        0usize,
5471        concat!(
5472            "Offset of field: ",
5473            stringify!(_NV_ENC_LOCK_BITSTREAM),
5474            "::",
5475            stringify!(version)
5476        )
5477    );
5478    assert_eq!(
5479        unsafe { ::core::ptr::addr_of!((*ptr).outputBitstream) as usize - ptr as usize },
5480        8usize,
5481        concat!(
5482            "Offset of field: ",
5483            stringify!(_NV_ENC_LOCK_BITSTREAM),
5484            "::",
5485            stringify!(outputBitstream)
5486        )
5487    );
5488    assert_eq!(
5489        unsafe { ::core::ptr::addr_of!((*ptr).sliceOffsets) as usize - ptr as usize },
5490        16usize,
5491        concat!(
5492            "Offset of field: ",
5493            stringify!(_NV_ENC_LOCK_BITSTREAM),
5494            "::",
5495            stringify!(sliceOffsets)
5496        )
5497    );
5498    assert_eq!(
5499        unsafe { ::core::ptr::addr_of!((*ptr).frameIdx) as usize - ptr as usize },
5500        24usize,
5501        concat!(
5502            "Offset of field: ",
5503            stringify!(_NV_ENC_LOCK_BITSTREAM),
5504            "::",
5505            stringify!(frameIdx)
5506        )
5507    );
5508    assert_eq!(
5509        unsafe { ::core::ptr::addr_of!((*ptr).hwEncodeStatus) as usize - ptr as usize },
5510        28usize,
5511        concat!(
5512            "Offset of field: ",
5513            stringify!(_NV_ENC_LOCK_BITSTREAM),
5514            "::",
5515            stringify!(hwEncodeStatus)
5516        )
5517    );
5518    assert_eq!(
5519        unsafe { ::core::ptr::addr_of!((*ptr).numSlices) as usize - ptr as usize },
5520        32usize,
5521        concat!(
5522            "Offset of field: ",
5523            stringify!(_NV_ENC_LOCK_BITSTREAM),
5524            "::",
5525            stringify!(numSlices)
5526        )
5527    );
5528    assert_eq!(
5529        unsafe { ::core::ptr::addr_of!((*ptr).bitstreamSizeInBytes) as usize - ptr as usize },
5530        36usize,
5531        concat!(
5532            "Offset of field: ",
5533            stringify!(_NV_ENC_LOCK_BITSTREAM),
5534            "::",
5535            stringify!(bitstreamSizeInBytes)
5536        )
5537    );
5538    assert_eq!(
5539        unsafe { ::core::ptr::addr_of!((*ptr).outputTimeStamp) as usize - ptr as usize },
5540        40usize,
5541        concat!(
5542            "Offset of field: ",
5543            stringify!(_NV_ENC_LOCK_BITSTREAM),
5544            "::",
5545            stringify!(outputTimeStamp)
5546        )
5547    );
5548    assert_eq!(
5549        unsafe { ::core::ptr::addr_of!((*ptr).outputDuration) as usize - ptr as usize },
5550        48usize,
5551        concat!(
5552            "Offset of field: ",
5553            stringify!(_NV_ENC_LOCK_BITSTREAM),
5554            "::",
5555            stringify!(outputDuration)
5556        )
5557    );
5558    assert_eq!(
5559        unsafe { ::core::ptr::addr_of!((*ptr).bitstreamBufferPtr) as usize - ptr as usize },
5560        56usize,
5561        concat!(
5562            "Offset of field: ",
5563            stringify!(_NV_ENC_LOCK_BITSTREAM),
5564            "::",
5565            stringify!(bitstreamBufferPtr)
5566        )
5567    );
5568    assert_eq!(
5569        unsafe { ::core::ptr::addr_of!((*ptr).pictureType) as usize - ptr as usize },
5570        64usize,
5571        concat!(
5572            "Offset of field: ",
5573            stringify!(_NV_ENC_LOCK_BITSTREAM),
5574            "::",
5575            stringify!(pictureType)
5576        )
5577    );
5578    assert_eq!(
5579        unsafe { ::core::ptr::addr_of!((*ptr).pictureStruct) as usize - ptr as usize },
5580        68usize,
5581        concat!(
5582            "Offset of field: ",
5583            stringify!(_NV_ENC_LOCK_BITSTREAM),
5584            "::",
5585            stringify!(pictureStruct)
5586        )
5587    );
5588    assert_eq!(
5589        unsafe { ::core::ptr::addr_of!((*ptr).frameAvgQP) as usize - ptr as usize },
5590        72usize,
5591        concat!(
5592            "Offset of field: ",
5593            stringify!(_NV_ENC_LOCK_BITSTREAM),
5594            "::",
5595            stringify!(frameAvgQP)
5596        )
5597    );
5598    assert_eq!(
5599        unsafe { ::core::ptr::addr_of!((*ptr).frameSatd) as usize - ptr as usize },
5600        76usize,
5601        concat!(
5602            "Offset of field: ",
5603            stringify!(_NV_ENC_LOCK_BITSTREAM),
5604            "::",
5605            stringify!(frameSatd)
5606        )
5607    );
5608    assert_eq!(
5609        unsafe { ::core::ptr::addr_of!((*ptr).ltrFrameIdx) as usize - ptr as usize },
5610        80usize,
5611        concat!(
5612            "Offset of field: ",
5613            stringify!(_NV_ENC_LOCK_BITSTREAM),
5614            "::",
5615            stringify!(ltrFrameIdx)
5616        )
5617    );
5618    assert_eq!(
5619        unsafe { ::core::ptr::addr_of!((*ptr).ltrFrameBitmap) as usize - ptr as usize },
5620        84usize,
5621        concat!(
5622            "Offset of field: ",
5623            stringify!(_NV_ENC_LOCK_BITSTREAM),
5624            "::",
5625            stringify!(ltrFrameBitmap)
5626        )
5627    );
5628    assert_eq!(
5629        unsafe { ::core::ptr::addr_of!((*ptr).temporalId) as usize - ptr as usize },
5630        88usize,
5631        concat!(
5632            "Offset of field: ",
5633            stringify!(_NV_ENC_LOCK_BITSTREAM),
5634            "::",
5635            stringify!(temporalId)
5636        )
5637    );
5638    assert_eq!(
5639        unsafe { ::core::ptr::addr_of!((*ptr).intraMBCount) as usize - ptr as usize },
5640        92usize,
5641        concat!(
5642            "Offset of field: ",
5643            stringify!(_NV_ENC_LOCK_BITSTREAM),
5644            "::",
5645            stringify!(intraMBCount)
5646        )
5647    );
5648    assert_eq!(
5649        unsafe { ::core::ptr::addr_of!((*ptr).interMBCount) as usize - ptr as usize },
5650        96usize,
5651        concat!(
5652            "Offset of field: ",
5653            stringify!(_NV_ENC_LOCK_BITSTREAM),
5654            "::",
5655            stringify!(interMBCount)
5656        )
5657    );
5658    assert_eq!(
5659        unsafe { ::core::ptr::addr_of!((*ptr).averageMVX) as usize - ptr as usize },
5660        100usize,
5661        concat!(
5662            "Offset of field: ",
5663            stringify!(_NV_ENC_LOCK_BITSTREAM),
5664            "::",
5665            stringify!(averageMVX)
5666        )
5667    );
5668    assert_eq!(
5669        unsafe { ::core::ptr::addr_of!((*ptr).averageMVY) as usize - ptr as usize },
5670        104usize,
5671        concat!(
5672            "Offset of field: ",
5673            stringify!(_NV_ENC_LOCK_BITSTREAM),
5674            "::",
5675            stringify!(averageMVY)
5676        )
5677    );
5678    assert_eq!(
5679        unsafe { ::core::ptr::addr_of!((*ptr).alphaLayerSizeInBytes) as usize - ptr as usize },
5680        108usize,
5681        concat!(
5682            "Offset of field: ",
5683            stringify!(_NV_ENC_LOCK_BITSTREAM),
5684            "::",
5685            stringify!(alphaLayerSizeInBytes)
5686        )
5687    );
5688    assert_eq!(
5689        unsafe { ::core::ptr::addr_of!((*ptr).outputStatsPtrSize) as usize - ptr as usize },
5690        112usize,
5691        concat!(
5692            "Offset of field: ",
5693            stringify!(_NV_ENC_LOCK_BITSTREAM),
5694            "::",
5695            stringify!(outputStatsPtrSize)
5696        )
5697    );
5698    assert_eq!(
5699        unsafe { ::core::ptr::addr_of!((*ptr).outputStatsPtr) as usize - ptr as usize },
5700        120usize,
5701        concat!(
5702            "Offset of field: ",
5703            stringify!(_NV_ENC_LOCK_BITSTREAM),
5704            "::",
5705            stringify!(outputStatsPtr)
5706        )
5707    );
5708    assert_eq!(
5709        unsafe { ::core::ptr::addr_of!((*ptr).frameIdxDisplay) as usize - ptr as usize },
5710        128usize,
5711        concat!(
5712            "Offset of field: ",
5713            stringify!(_NV_ENC_LOCK_BITSTREAM),
5714            "::",
5715            stringify!(frameIdxDisplay)
5716        )
5717    );
5718    assert_eq!(
5719        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
5720        132usize,
5721        concat!(
5722            "Offset of field: ",
5723            stringify!(_NV_ENC_LOCK_BITSTREAM),
5724            "::",
5725            stringify!(reserved1)
5726        )
5727    );
5728    assert_eq!(
5729        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
5730        1016usize,
5731        concat!(
5732            "Offset of field: ",
5733            stringify!(_NV_ENC_LOCK_BITSTREAM),
5734            "::",
5735            stringify!(reserved2)
5736        )
5737    );
5738    assert_eq!(
5739        unsafe { ::core::ptr::addr_of!((*ptr).reservedInternal) as usize - ptr as usize },
5740        1520usize,
5741        concat!(
5742            "Offset of field: ",
5743            stringify!(_NV_ENC_LOCK_BITSTREAM),
5744            "::",
5745            stringify!(reservedInternal)
5746        )
5747    );
5748}
5749#[test]
5750fn bindgen_test_layout__NV_ENC_LOCK_INPUT_BUFFER() {
5751    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_LOCK_INPUT_BUFFER> =
5752        ::core::mem::MaybeUninit::uninit();
5753    let ptr = UNINIT.as_ptr();
5754    assert_eq!(
5755        ::core::mem::size_of::<_NV_ENC_LOCK_INPUT_BUFFER>(),
5756        1544usize,
5757        concat!("Size of: ", stringify!(_NV_ENC_LOCK_INPUT_BUFFER))
5758    );
5759    assert_eq!(
5760        ::core::mem::align_of::<_NV_ENC_LOCK_INPUT_BUFFER>(),
5761        8usize,
5762        concat!("Alignment of ", stringify!(_NV_ENC_LOCK_INPUT_BUFFER))
5763    );
5764    assert_eq!(
5765        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
5766        0usize,
5767        concat!(
5768            "Offset of field: ",
5769            stringify!(_NV_ENC_LOCK_INPUT_BUFFER),
5770            "::",
5771            stringify!(version)
5772        )
5773    );
5774    assert_eq!(
5775        unsafe { ::core::ptr::addr_of!((*ptr).inputBuffer) as usize - ptr as usize },
5776        8usize,
5777        concat!(
5778            "Offset of field: ",
5779            stringify!(_NV_ENC_LOCK_INPUT_BUFFER),
5780            "::",
5781            stringify!(inputBuffer)
5782        )
5783    );
5784    assert_eq!(
5785        unsafe { ::core::ptr::addr_of!((*ptr).bufferDataPtr) as usize - ptr as usize },
5786        16usize,
5787        concat!(
5788            "Offset of field: ",
5789            stringify!(_NV_ENC_LOCK_INPUT_BUFFER),
5790            "::",
5791            stringify!(bufferDataPtr)
5792        )
5793    );
5794    assert_eq!(
5795        unsafe { ::core::ptr::addr_of!((*ptr).pitch) as usize - ptr as usize },
5796        24usize,
5797        concat!(
5798            "Offset of field: ",
5799            stringify!(_NV_ENC_LOCK_INPUT_BUFFER),
5800            "::",
5801            stringify!(pitch)
5802        )
5803    );
5804    assert_eq!(
5805        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
5806        28usize,
5807        concat!(
5808            "Offset of field: ",
5809            stringify!(_NV_ENC_LOCK_INPUT_BUFFER),
5810            "::",
5811            stringify!(reserved1)
5812        )
5813    );
5814    assert_eq!(
5815        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
5816        1032usize,
5817        concat!(
5818            "Offset of field: ",
5819            stringify!(_NV_ENC_LOCK_INPUT_BUFFER),
5820            "::",
5821            stringify!(reserved2)
5822        )
5823    );
5824}
5825#[test]
5826fn bindgen_test_layout__NV_ENC_MAP_INPUT_RESOURCE() {
5827    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_MAP_INPUT_RESOURCE> =
5828        ::core::mem::MaybeUninit::uninit();
5829    let ptr = UNINIT.as_ptr();
5830    assert_eq!(
5831        ::core::mem::size_of::<_NV_ENC_MAP_INPUT_RESOURCE>(),
5832        1544usize,
5833        concat!("Size of: ", stringify!(_NV_ENC_MAP_INPUT_RESOURCE))
5834    );
5835    assert_eq!(
5836        ::core::mem::align_of::<_NV_ENC_MAP_INPUT_RESOURCE>(),
5837        8usize,
5838        concat!("Alignment of ", stringify!(_NV_ENC_MAP_INPUT_RESOURCE))
5839    );
5840    assert_eq!(
5841        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
5842        0usize,
5843        concat!(
5844            "Offset of field: ",
5845            stringify!(_NV_ENC_MAP_INPUT_RESOURCE),
5846            "::",
5847            stringify!(version)
5848        )
5849    );
5850    assert_eq!(
5851        unsafe { ::core::ptr::addr_of!((*ptr).subResourceIndex) as usize - ptr as usize },
5852        4usize,
5853        concat!(
5854            "Offset of field: ",
5855            stringify!(_NV_ENC_MAP_INPUT_RESOURCE),
5856            "::",
5857            stringify!(subResourceIndex)
5858        )
5859    );
5860    assert_eq!(
5861        unsafe { ::core::ptr::addr_of!((*ptr).inputResource) as usize - ptr as usize },
5862        8usize,
5863        concat!(
5864            "Offset of field: ",
5865            stringify!(_NV_ENC_MAP_INPUT_RESOURCE),
5866            "::",
5867            stringify!(inputResource)
5868        )
5869    );
5870    assert_eq!(
5871        unsafe { ::core::ptr::addr_of!((*ptr).registeredResource) as usize - ptr as usize },
5872        16usize,
5873        concat!(
5874            "Offset of field: ",
5875            stringify!(_NV_ENC_MAP_INPUT_RESOURCE),
5876            "::",
5877            stringify!(registeredResource)
5878        )
5879    );
5880    assert_eq!(
5881        unsafe { ::core::ptr::addr_of!((*ptr).mappedResource) as usize - ptr as usize },
5882        24usize,
5883        concat!(
5884            "Offset of field: ",
5885            stringify!(_NV_ENC_MAP_INPUT_RESOURCE),
5886            "::",
5887            stringify!(mappedResource)
5888        )
5889    );
5890    assert_eq!(
5891        unsafe { ::core::ptr::addr_of!((*ptr).mappedBufferFmt) as usize - ptr as usize },
5892        32usize,
5893        concat!(
5894            "Offset of field: ",
5895            stringify!(_NV_ENC_MAP_INPUT_RESOURCE),
5896            "::",
5897            stringify!(mappedBufferFmt)
5898        )
5899    );
5900    assert_eq!(
5901        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
5902        36usize,
5903        concat!(
5904            "Offset of field: ",
5905            stringify!(_NV_ENC_MAP_INPUT_RESOURCE),
5906            "::",
5907            stringify!(reserved1)
5908        )
5909    );
5910    assert_eq!(
5911        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
5912        1040usize,
5913        concat!(
5914            "Offset of field: ",
5915            stringify!(_NV_ENC_MAP_INPUT_RESOURCE),
5916            "::",
5917            stringify!(reserved2)
5918        )
5919    );
5920}
5921#[test]
5922fn bindgen_test_layout__NV_ENC_INPUT_RESOURCE_OPENGL_TEX() {
5923    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_INPUT_RESOURCE_OPENGL_TEX> =
5924        ::core::mem::MaybeUninit::uninit();
5925    let ptr = UNINIT.as_ptr();
5926    assert_eq!(
5927        ::core::mem::size_of::<_NV_ENC_INPUT_RESOURCE_OPENGL_TEX>(),
5928        8usize,
5929        concat!("Size of: ", stringify!(_NV_ENC_INPUT_RESOURCE_OPENGL_TEX))
5930    );
5931    assert_eq!(
5932        ::core::mem::align_of::<_NV_ENC_INPUT_RESOURCE_OPENGL_TEX>(),
5933        4usize,
5934        concat!(
5935            "Alignment of ",
5936            stringify!(_NV_ENC_INPUT_RESOURCE_OPENGL_TEX)
5937        )
5938    );
5939    assert_eq!(
5940        unsafe { ::core::ptr::addr_of!((*ptr).texture) as usize - ptr as usize },
5941        0usize,
5942        concat!(
5943            "Offset of field: ",
5944            stringify!(_NV_ENC_INPUT_RESOURCE_OPENGL_TEX),
5945            "::",
5946            stringify!(texture)
5947        )
5948    );
5949    assert_eq!(
5950        unsafe { ::core::ptr::addr_of!((*ptr).target) as usize - ptr as usize },
5951        4usize,
5952        concat!(
5953            "Offset of field: ",
5954            stringify!(_NV_ENC_INPUT_RESOURCE_OPENGL_TEX),
5955            "::",
5956            stringify!(target)
5957        )
5958    );
5959}
5960#[test]
5961fn bindgen_test_layout__NV_ENC_FENCE_POINT_D3D12() {
5962    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_FENCE_POINT_D3D12> =
5963        ::core::mem::MaybeUninit::uninit();
5964    let ptr = UNINIT.as_ptr();
5965    assert_eq!(
5966        ::core::mem::size_of::<_NV_ENC_FENCE_POINT_D3D12>(),
5967        64usize,
5968        concat!("Size of: ", stringify!(_NV_ENC_FENCE_POINT_D3D12))
5969    );
5970    assert_eq!(
5971        ::core::mem::align_of::<_NV_ENC_FENCE_POINT_D3D12>(),
5972        8usize,
5973        concat!("Alignment of ", stringify!(_NV_ENC_FENCE_POINT_D3D12))
5974    );
5975    assert_eq!(
5976        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
5977        0usize,
5978        concat!(
5979            "Offset of field: ",
5980            stringify!(_NV_ENC_FENCE_POINT_D3D12),
5981            "::",
5982            stringify!(version)
5983        )
5984    );
5985    assert_eq!(
5986        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
5987        4usize,
5988        concat!(
5989            "Offset of field: ",
5990            stringify!(_NV_ENC_FENCE_POINT_D3D12),
5991            "::",
5992            stringify!(reserved)
5993        )
5994    );
5995    assert_eq!(
5996        unsafe { ::core::ptr::addr_of!((*ptr).pFence) as usize - ptr as usize },
5997        8usize,
5998        concat!(
5999            "Offset of field: ",
6000            stringify!(_NV_ENC_FENCE_POINT_D3D12),
6001            "::",
6002            stringify!(pFence)
6003        )
6004    );
6005    assert_eq!(
6006        unsafe { ::core::ptr::addr_of!((*ptr).waitValue) as usize - ptr as usize },
6007        16usize,
6008        concat!(
6009            "Offset of field: ",
6010            stringify!(_NV_ENC_FENCE_POINT_D3D12),
6011            "::",
6012            stringify!(waitValue)
6013        )
6014    );
6015    assert_eq!(
6016        unsafe { ::core::ptr::addr_of!((*ptr).signalValue) as usize - ptr as usize },
6017        24usize,
6018        concat!(
6019            "Offset of field: ",
6020            stringify!(_NV_ENC_FENCE_POINT_D3D12),
6021            "::",
6022            stringify!(signalValue)
6023        )
6024    );
6025    assert_eq!(
6026        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
6027        36usize,
6028        concat!(
6029            "Offset of field: ",
6030            stringify!(_NV_ENC_FENCE_POINT_D3D12),
6031            "::",
6032            stringify!(reserved1)
6033        )
6034    );
6035}
6036#[test]
6037fn bindgen_test_layout__NV_ENC_INPUT_RESOURCE_D3D12() {
6038    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_INPUT_RESOURCE_D3D12> =
6039        ::core::mem::MaybeUninit::uninit();
6040    let ptr = UNINIT.as_ptr();
6041    assert_eq!(
6042        ::core::mem::size_of::<_NV_ENC_INPUT_RESOURCE_D3D12>(),
6043        272usize,
6044        concat!("Size of: ", stringify!(_NV_ENC_INPUT_RESOURCE_D3D12))
6045    );
6046    assert_eq!(
6047        ::core::mem::align_of::<_NV_ENC_INPUT_RESOURCE_D3D12>(),
6048        8usize,
6049        concat!("Alignment of ", stringify!(_NV_ENC_INPUT_RESOURCE_D3D12))
6050    );
6051    assert_eq!(
6052        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
6053        0usize,
6054        concat!(
6055            "Offset of field: ",
6056            stringify!(_NV_ENC_INPUT_RESOURCE_D3D12),
6057            "::",
6058            stringify!(version)
6059        )
6060    );
6061    assert_eq!(
6062        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
6063        4usize,
6064        concat!(
6065            "Offset of field: ",
6066            stringify!(_NV_ENC_INPUT_RESOURCE_D3D12),
6067            "::",
6068            stringify!(reserved)
6069        )
6070    );
6071    assert_eq!(
6072        unsafe { ::core::ptr::addr_of!((*ptr).pInputBuffer) as usize - ptr as usize },
6073        8usize,
6074        concat!(
6075            "Offset of field: ",
6076            stringify!(_NV_ENC_INPUT_RESOURCE_D3D12),
6077            "::",
6078            stringify!(pInputBuffer)
6079        )
6080    );
6081    assert_eq!(
6082        unsafe { ::core::ptr::addr_of!((*ptr).inputFencePoint) as usize - ptr as usize },
6083        16usize,
6084        concat!(
6085            "Offset of field: ",
6086            stringify!(_NV_ENC_INPUT_RESOURCE_D3D12),
6087            "::",
6088            stringify!(inputFencePoint)
6089        )
6090    );
6091    assert_eq!(
6092        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
6093        80usize,
6094        concat!(
6095            "Offset of field: ",
6096            stringify!(_NV_ENC_INPUT_RESOURCE_D3D12),
6097            "::",
6098            stringify!(reserved1)
6099        )
6100    );
6101    assert_eq!(
6102        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
6103        144usize,
6104        concat!(
6105            "Offset of field: ",
6106            stringify!(_NV_ENC_INPUT_RESOURCE_D3D12),
6107            "::",
6108            stringify!(reserved2)
6109        )
6110    );
6111}
6112#[test]
6113fn bindgen_test_layout__NV_ENC_OUTPUT_RESOURCE_D3D12() {
6114    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_OUTPUT_RESOURCE_D3D12> =
6115        ::core::mem::MaybeUninit::uninit();
6116    let ptr = UNINIT.as_ptr();
6117    assert_eq!(
6118        ::core::mem::size_of::<_NV_ENC_OUTPUT_RESOURCE_D3D12>(),
6119        272usize,
6120        concat!("Size of: ", stringify!(_NV_ENC_OUTPUT_RESOURCE_D3D12))
6121    );
6122    assert_eq!(
6123        ::core::mem::align_of::<_NV_ENC_OUTPUT_RESOURCE_D3D12>(),
6124        8usize,
6125        concat!("Alignment of ", stringify!(_NV_ENC_OUTPUT_RESOURCE_D3D12))
6126    );
6127    assert_eq!(
6128        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
6129        0usize,
6130        concat!(
6131            "Offset of field: ",
6132            stringify!(_NV_ENC_OUTPUT_RESOURCE_D3D12),
6133            "::",
6134            stringify!(version)
6135        )
6136    );
6137    assert_eq!(
6138        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
6139        4usize,
6140        concat!(
6141            "Offset of field: ",
6142            stringify!(_NV_ENC_OUTPUT_RESOURCE_D3D12),
6143            "::",
6144            stringify!(reserved)
6145        )
6146    );
6147    assert_eq!(
6148        unsafe { ::core::ptr::addr_of!((*ptr).pOutputBuffer) as usize - ptr as usize },
6149        8usize,
6150        concat!(
6151            "Offset of field: ",
6152            stringify!(_NV_ENC_OUTPUT_RESOURCE_D3D12),
6153            "::",
6154            stringify!(pOutputBuffer)
6155        )
6156    );
6157    assert_eq!(
6158        unsafe { ::core::ptr::addr_of!((*ptr).outputFencePoint) as usize - ptr as usize },
6159        16usize,
6160        concat!(
6161            "Offset of field: ",
6162            stringify!(_NV_ENC_OUTPUT_RESOURCE_D3D12),
6163            "::",
6164            stringify!(outputFencePoint)
6165        )
6166    );
6167    assert_eq!(
6168        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
6169        80usize,
6170        concat!(
6171            "Offset of field: ",
6172            stringify!(_NV_ENC_OUTPUT_RESOURCE_D3D12),
6173            "::",
6174            stringify!(reserved1)
6175        )
6176    );
6177    assert_eq!(
6178        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
6179        144usize,
6180        concat!(
6181            "Offset of field: ",
6182            stringify!(_NV_ENC_OUTPUT_RESOURCE_D3D12),
6183            "::",
6184            stringify!(reserved2)
6185        )
6186    );
6187}
6188#[test]
6189fn bindgen_test_layout__NV_ENC_REGISTER_RESOURCE() {
6190    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_REGISTER_RESOURCE> =
6191        ::core::mem::MaybeUninit::uninit();
6192    let ptr = UNINIT.as_ptr();
6193    assert_eq!(
6194        ::core::mem::size_of::<_NV_ENC_REGISTER_RESOURCE>(),
6195        1536usize,
6196        concat!("Size of: ", stringify!(_NV_ENC_REGISTER_RESOURCE))
6197    );
6198    assert_eq!(
6199        ::core::mem::align_of::<_NV_ENC_REGISTER_RESOURCE>(),
6200        8usize,
6201        concat!("Alignment of ", stringify!(_NV_ENC_REGISTER_RESOURCE))
6202    );
6203    assert_eq!(
6204        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
6205        0usize,
6206        concat!(
6207            "Offset of field: ",
6208            stringify!(_NV_ENC_REGISTER_RESOURCE),
6209            "::",
6210            stringify!(version)
6211        )
6212    );
6213    assert_eq!(
6214        unsafe { ::core::ptr::addr_of!((*ptr).resourceType) as usize - ptr as usize },
6215        4usize,
6216        concat!(
6217            "Offset of field: ",
6218            stringify!(_NV_ENC_REGISTER_RESOURCE),
6219            "::",
6220            stringify!(resourceType)
6221        )
6222    );
6223    assert_eq!(
6224        unsafe { ::core::ptr::addr_of!((*ptr).width) as usize - ptr as usize },
6225        8usize,
6226        concat!(
6227            "Offset of field: ",
6228            stringify!(_NV_ENC_REGISTER_RESOURCE),
6229            "::",
6230            stringify!(width)
6231        )
6232    );
6233    assert_eq!(
6234        unsafe { ::core::ptr::addr_of!((*ptr).height) as usize - ptr as usize },
6235        12usize,
6236        concat!(
6237            "Offset of field: ",
6238            stringify!(_NV_ENC_REGISTER_RESOURCE),
6239            "::",
6240            stringify!(height)
6241        )
6242    );
6243    assert_eq!(
6244        unsafe { ::core::ptr::addr_of!((*ptr).pitch) as usize - ptr as usize },
6245        16usize,
6246        concat!(
6247            "Offset of field: ",
6248            stringify!(_NV_ENC_REGISTER_RESOURCE),
6249            "::",
6250            stringify!(pitch)
6251        )
6252    );
6253    assert_eq!(
6254        unsafe { ::core::ptr::addr_of!((*ptr).subResourceIndex) as usize - ptr as usize },
6255        20usize,
6256        concat!(
6257            "Offset of field: ",
6258            stringify!(_NV_ENC_REGISTER_RESOURCE),
6259            "::",
6260            stringify!(subResourceIndex)
6261        )
6262    );
6263    assert_eq!(
6264        unsafe { ::core::ptr::addr_of!((*ptr).resourceToRegister) as usize - ptr as usize },
6265        24usize,
6266        concat!(
6267            "Offset of field: ",
6268            stringify!(_NV_ENC_REGISTER_RESOURCE),
6269            "::",
6270            stringify!(resourceToRegister)
6271        )
6272    );
6273    assert_eq!(
6274        unsafe { ::core::ptr::addr_of!((*ptr).registeredResource) as usize - ptr as usize },
6275        32usize,
6276        concat!(
6277            "Offset of field: ",
6278            stringify!(_NV_ENC_REGISTER_RESOURCE),
6279            "::",
6280            stringify!(registeredResource)
6281        )
6282    );
6283    assert_eq!(
6284        unsafe { ::core::ptr::addr_of!((*ptr).bufferFormat) as usize - ptr as usize },
6285        40usize,
6286        concat!(
6287            "Offset of field: ",
6288            stringify!(_NV_ENC_REGISTER_RESOURCE),
6289            "::",
6290            stringify!(bufferFormat)
6291        )
6292    );
6293    assert_eq!(
6294        unsafe { ::core::ptr::addr_of!((*ptr).bufferUsage) as usize - ptr as usize },
6295        44usize,
6296        concat!(
6297            "Offset of field: ",
6298            stringify!(_NV_ENC_REGISTER_RESOURCE),
6299            "::",
6300            stringify!(bufferUsage)
6301        )
6302    );
6303    assert_eq!(
6304        unsafe { ::core::ptr::addr_of!((*ptr).pInputFencePoint) as usize - ptr as usize },
6305        48usize,
6306        concat!(
6307            "Offset of field: ",
6308            stringify!(_NV_ENC_REGISTER_RESOURCE),
6309            "::",
6310            stringify!(pInputFencePoint)
6311        )
6312    );
6313    assert_eq!(
6314        unsafe { ::core::ptr::addr_of!((*ptr).chromaOffset) as usize - ptr as usize },
6315        56usize,
6316        concat!(
6317            "Offset of field: ",
6318            stringify!(_NV_ENC_REGISTER_RESOURCE),
6319            "::",
6320            stringify!(chromaOffset)
6321        )
6322    );
6323    assert_eq!(
6324        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
6325        64usize,
6326        concat!(
6327            "Offset of field: ",
6328            stringify!(_NV_ENC_REGISTER_RESOURCE),
6329            "::",
6330            stringify!(reserved1)
6331        )
6332    );
6333    assert_eq!(
6334        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
6335        1048usize,
6336        concat!(
6337            "Offset of field: ",
6338            stringify!(_NV_ENC_REGISTER_RESOURCE),
6339            "::",
6340            stringify!(reserved2)
6341        )
6342    );
6343}
6344#[test]
6345fn bindgen_test_layout__NV_ENC_STAT() {
6346    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_STAT> = ::core::mem::MaybeUninit::uninit();
6347    let ptr = UNINIT.as_ptr();
6348    assert_eq!(
6349        ::core::mem::size_of::<_NV_ENC_STAT>(),
6350        1544usize,
6351        concat!("Size of: ", stringify!(_NV_ENC_STAT))
6352    );
6353    assert_eq!(
6354        ::core::mem::align_of::<_NV_ENC_STAT>(),
6355        8usize,
6356        concat!("Alignment of ", stringify!(_NV_ENC_STAT))
6357    );
6358    assert_eq!(
6359        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
6360        0usize,
6361        concat!(
6362            "Offset of field: ",
6363            stringify!(_NV_ENC_STAT),
6364            "::",
6365            stringify!(version)
6366        )
6367    );
6368    assert_eq!(
6369        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
6370        4usize,
6371        concat!(
6372            "Offset of field: ",
6373            stringify!(_NV_ENC_STAT),
6374            "::",
6375            stringify!(reserved)
6376        )
6377    );
6378    assert_eq!(
6379        unsafe { ::core::ptr::addr_of!((*ptr).outputBitStream) as usize - ptr as usize },
6380        8usize,
6381        concat!(
6382            "Offset of field: ",
6383            stringify!(_NV_ENC_STAT),
6384            "::",
6385            stringify!(outputBitStream)
6386        )
6387    );
6388    assert_eq!(
6389        unsafe { ::core::ptr::addr_of!((*ptr).bitStreamSize) as usize - ptr as usize },
6390        16usize,
6391        concat!(
6392            "Offset of field: ",
6393            stringify!(_NV_ENC_STAT),
6394            "::",
6395            stringify!(bitStreamSize)
6396        )
6397    );
6398    assert_eq!(
6399        unsafe { ::core::ptr::addr_of!((*ptr).picType) as usize - ptr as usize },
6400        20usize,
6401        concat!(
6402            "Offset of field: ",
6403            stringify!(_NV_ENC_STAT),
6404            "::",
6405            stringify!(picType)
6406        )
6407    );
6408    assert_eq!(
6409        unsafe { ::core::ptr::addr_of!((*ptr).lastValidByteOffset) as usize - ptr as usize },
6410        24usize,
6411        concat!(
6412            "Offset of field: ",
6413            stringify!(_NV_ENC_STAT),
6414            "::",
6415            stringify!(lastValidByteOffset)
6416        )
6417    );
6418    assert_eq!(
6419        unsafe { ::core::ptr::addr_of!((*ptr).sliceOffsets) as usize - ptr as usize },
6420        28usize,
6421        concat!(
6422            "Offset of field: ",
6423            stringify!(_NV_ENC_STAT),
6424            "::",
6425            stringify!(sliceOffsets)
6426        )
6427    );
6428    assert_eq!(
6429        unsafe { ::core::ptr::addr_of!((*ptr).picIdx) as usize - ptr as usize },
6430        92usize,
6431        concat!(
6432            "Offset of field: ",
6433            stringify!(_NV_ENC_STAT),
6434            "::",
6435            stringify!(picIdx)
6436        )
6437    );
6438    assert_eq!(
6439        unsafe { ::core::ptr::addr_of!((*ptr).frameAvgQP) as usize - ptr as usize },
6440        96usize,
6441        concat!(
6442            "Offset of field: ",
6443            stringify!(_NV_ENC_STAT),
6444            "::",
6445            stringify!(frameAvgQP)
6446        )
6447    );
6448    assert_eq!(
6449        unsafe { ::core::ptr::addr_of!((*ptr).ltrFrameIdx) as usize - ptr as usize },
6450        104usize,
6451        concat!(
6452            "Offset of field: ",
6453            stringify!(_NV_ENC_STAT),
6454            "::",
6455            stringify!(ltrFrameIdx)
6456        )
6457    );
6458    assert_eq!(
6459        unsafe { ::core::ptr::addr_of!((*ptr).intraMBCount) as usize - ptr as usize },
6460        108usize,
6461        concat!(
6462            "Offset of field: ",
6463            stringify!(_NV_ENC_STAT),
6464            "::",
6465            stringify!(intraMBCount)
6466        )
6467    );
6468    assert_eq!(
6469        unsafe { ::core::ptr::addr_of!((*ptr).interMBCount) as usize - ptr as usize },
6470        112usize,
6471        concat!(
6472            "Offset of field: ",
6473            stringify!(_NV_ENC_STAT),
6474            "::",
6475            stringify!(interMBCount)
6476        )
6477    );
6478    assert_eq!(
6479        unsafe { ::core::ptr::addr_of!((*ptr).averageMVX) as usize - ptr as usize },
6480        116usize,
6481        concat!(
6482            "Offset of field: ",
6483            stringify!(_NV_ENC_STAT),
6484            "::",
6485            stringify!(averageMVX)
6486        )
6487    );
6488    assert_eq!(
6489        unsafe { ::core::ptr::addr_of!((*ptr).averageMVY) as usize - ptr as usize },
6490        120usize,
6491        concat!(
6492            "Offset of field: ",
6493            stringify!(_NV_ENC_STAT),
6494            "::",
6495            stringify!(averageMVY)
6496        )
6497    );
6498    assert_eq!(
6499        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
6500        124usize,
6501        concat!(
6502            "Offset of field: ",
6503            stringify!(_NV_ENC_STAT),
6504            "::",
6505            stringify!(reserved1)
6506        )
6507    );
6508    assert_eq!(
6509        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
6510        1032usize,
6511        concat!(
6512            "Offset of field: ",
6513            stringify!(_NV_ENC_STAT),
6514            "::",
6515            stringify!(reserved2)
6516        )
6517    );
6518}
6519#[test]
6520fn bindgen_test_layout__NV_ENC_SEQUENCE_PARAM_PAYLOAD() {
6521    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_SEQUENCE_PARAM_PAYLOAD> =
6522        ::core::mem::MaybeUninit::uninit();
6523    let ptr = UNINIT.as_ptr();
6524    assert_eq!(
6525        ::core::mem::size_of::<_NV_ENC_SEQUENCE_PARAM_PAYLOAD>(),
6526        1544usize,
6527        concat!("Size of: ", stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD))
6528    );
6529    assert_eq!(
6530        ::core::mem::align_of::<_NV_ENC_SEQUENCE_PARAM_PAYLOAD>(),
6531        8usize,
6532        concat!("Alignment of ", stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD))
6533    );
6534    assert_eq!(
6535        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
6536        0usize,
6537        concat!(
6538            "Offset of field: ",
6539            stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD),
6540            "::",
6541            stringify!(version)
6542        )
6543    );
6544    assert_eq!(
6545        unsafe { ::core::ptr::addr_of!((*ptr).inBufferSize) as usize - ptr as usize },
6546        4usize,
6547        concat!(
6548            "Offset of field: ",
6549            stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD),
6550            "::",
6551            stringify!(inBufferSize)
6552        )
6553    );
6554    assert_eq!(
6555        unsafe { ::core::ptr::addr_of!((*ptr).spsId) as usize - ptr as usize },
6556        8usize,
6557        concat!(
6558            "Offset of field: ",
6559            stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD),
6560            "::",
6561            stringify!(spsId)
6562        )
6563    );
6564    assert_eq!(
6565        unsafe { ::core::ptr::addr_of!((*ptr).ppsId) as usize - ptr as usize },
6566        12usize,
6567        concat!(
6568            "Offset of field: ",
6569            stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD),
6570            "::",
6571            stringify!(ppsId)
6572        )
6573    );
6574    assert_eq!(
6575        unsafe { ::core::ptr::addr_of!((*ptr).spsppsBuffer) as usize - ptr as usize },
6576        16usize,
6577        concat!(
6578            "Offset of field: ",
6579            stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD),
6580            "::",
6581            stringify!(spsppsBuffer)
6582        )
6583    );
6584    assert_eq!(
6585        unsafe { ::core::ptr::addr_of!((*ptr).outSPSPPSPayloadSize) as usize - ptr as usize },
6586        24usize,
6587        concat!(
6588            "Offset of field: ",
6589            stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD),
6590            "::",
6591            stringify!(outSPSPPSPayloadSize)
6592        )
6593    );
6594    assert_eq!(
6595        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
6596        32usize,
6597        concat!(
6598            "Offset of field: ",
6599            stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD),
6600            "::",
6601            stringify!(reserved)
6602        )
6603    );
6604    assert_eq!(
6605        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
6606        1032usize,
6607        concat!(
6608            "Offset of field: ",
6609            stringify!(_NV_ENC_SEQUENCE_PARAM_PAYLOAD),
6610            "::",
6611            stringify!(reserved2)
6612        )
6613    );
6614}
6615#[test]
6616fn bindgen_test_layout__NV_ENC_EVENT_PARAMS() {
6617    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_EVENT_PARAMS> =
6618        ::core::mem::MaybeUninit::uninit();
6619    let ptr = UNINIT.as_ptr();
6620    assert_eq!(
6621        ::core::mem::size_of::<_NV_ENC_EVENT_PARAMS>(),
6622        1544usize,
6623        concat!("Size of: ", stringify!(_NV_ENC_EVENT_PARAMS))
6624    );
6625    assert_eq!(
6626        ::core::mem::align_of::<_NV_ENC_EVENT_PARAMS>(),
6627        8usize,
6628        concat!("Alignment of ", stringify!(_NV_ENC_EVENT_PARAMS))
6629    );
6630    assert_eq!(
6631        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
6632        0usize,
6633        concat!(
6634            "Offset of field: ",
6635            stringify!(_NV_ENC_EVENT_PARAMS),
6636            "::",
6637            stringify!(version)
6638        )
6639    );
6640    assert_eq!(
6641        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
6642        4usize,
6643        concat!(
6644            "Offset of field: ",
6645            stringify!(_NV_ENC_EVENT_PARAMS),
6646            "::",
6647            stringify!(reserved)
6648        )
6649    );
6650    assert_eq!(
6651        unsafe { ::core::ptr::addr_of!((*ptr).completionEvent) as usize - ptr as usize },
6652        8usize,
6653        concat!(
6654            "Offset of field: ",
6655            stringify!(_NV_ENC_EVENT_PARAMS),
6656            "::",
6657            stringify!(completionEvent)
6658        )
6659    );
6660    assert_eq!(
6661        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
6662        16usize,
6663        concat!(
6664            "Offset of field: ",
6665            stringify!(_NV_ENC_EVENT_PARAMS),
6666            "::",
6667            stringify!(reserved1)
6668        )
6669    );
6670    assert_eq!(
6671        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
6672        1032usize,
6673        concat!(
6674            "Offset of field: ",
6675            stringify!(_NV_ENC_EVENT_PARAMS),
6676            "::",
6677            stringify!(reserved2)
6678        )
6679    );
6680}
6681#[test]
6682fn bindgen_test_layout__NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS() {
6683    const UNINIT: ::core::mem::MaybeUninit<_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS> =
6684        ::core::mem::MaybeUninit::uninit();
6685    let ptr = UNINIT.as_ptr();
6686    assert_eq!(
6687        ::core::mem::size_of::<_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS>(),
6688        1552usize,
6689        concat!(
6690            "Size of: ",
6691            stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS)
6692        )
6693    );
6694    assert_eq!(
6695        ::core::mem::align_of::<_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS>(),
6696        8usize,
6697        concat!(
6698            "Alignment of ",
6699            stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS)
6700        )
6701    );
6702    assert_eq!(
6703        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
6704        0usize,
6705        concat!(
6706            "Offset of field: ",
6707            stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS),
6708            "::",
6709            stringify!(version)
6710        )
6711    );
6712    assert_eq!(
6713        unsafe { ::core::ptr::addr_of!((*ptr).deviceType) as usize - ptr as usize },
6714        4usize,
6715        concat!(
6716            "Offset of field: ",
6717            stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS),
6718            "::",
6719            stringify!(deviceType)
6720        )
6721    );
6722    assert_eq!(
6723        unsafe { ::core::ptr::addr_of!((*ptr).device) as usize - ptr as usize },
6724        8usize,
6725        concat!(
6726            "Offset of field: ",
6727            stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS),
6728            "::",
6729            stringify!(device)
6730        )
6731    );
6732    assert_eq!(
6733        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
6734        16usize,
6735        concat!(
6736            "Offset of field: ",
6737            stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS),
6738            "::",
6739            stringify!(reserved)
6740        )
6741    );
6742    assert_eq!(
6743        unsafe { ::core::ptr::addr_of!((*ptr).apiVersion) as usize - ptr as usize },
6744        24usize,
6745        concat!(
6746            "Offset of field: ",
6747            stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS),
6748            "::",
6749            stringify!(apiVersion)
6750        )
6751    );
6752    assert_eq!(
6753        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
6754        28usize,
6755        concat!(
6756            "Offset of field: ",
6757            stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS),
6758            "::",
6759            stringify!(reserved1)
6760        )
6761    );
6762    assert_eq!(
6763        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
6764        1040usize,
6765        concat!(
6766            "Offset of field: ",
6767            stringify!(_NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS),
6768            "::",
6769            stringify!(reserved2)
6770        )
6771    );
6772}
6773#[test]
6774fn bindgen_test_layout__NV_ENCODE_API_FUNCTION_LIST() {
6775    const UNINIT: ::core::mem::MaybeUninit<_NV_ENCODE_API_FUNCTION_LIST> =
6776        ::core::mem::MaybeUninit::uninit();
6777    let ptr = UNINIT.as_ptr();
6778    assert_eq!(
6779        ::core::mem::size_of::<_NV_ENCODE_API_FUNCTION_LIST>(),
6780        2552usize,
6781        concat!("Size of: ", stringify!(_NV_ENCODE_API_FUNCTION_LIST))
6782    );
6783    assert_eq!(
6784        ::core::mem::align_of::<_NV_ENCODE_API_FUNCTION_LIST>(),
6785        8usize,
6786        concat!("Alignment of ", stringify!(_NV_ENCODE_API_FUNCTION_LIST))
6787    );
6788    assert_eq!(
6789        unsafe { ::core::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
6790        0usize,
6791        concat!(
6792            "Offset of field: ",
6793            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6794            "::",
6795            stringify!(version)
6796        )
6797    );
6798    assert_eq!(
6799        unsafe { ::core::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
6800        4usize,
6801        concat!(
6802            "Offset of field: ",
6803            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6804            "::",
6805            stringify!(reserved)
6806        )
6807    );
6808    assert_eq!(
6809        unsafe { ::core::ptr::addr_of!((*ptr).nvEncOpenEncodeSession) as usize - ptr as usize },
6810        8usize,
6811        concat!(
6812            "Offset of field: ",
6813            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6814            "::",
6815            stringify!(nvEncOpenEncodeSession)
6816        )
6817    );
6818    assert_eq!(
6819        unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetEncodeGUIDCount) as usize - ptr as usize },
6820        16usize,
6821        concat!(
6822            "Offset of field: ",
6823            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6824            "::",
6825            stringify!(nvEncGetEncodeGUIDCount)
6826        )
6827    );
6828    assert_eq!(
6829        unsafe {
6830            ::core::ptr::addr_of!((*ptr).nvEncGetEncodeProfileGUIDCount) as usize - ptr as usize
6831        },
6832        24usize,
6833        concat!(
6834            "Offset of field: ",
6835            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6836            "::",
6837            stringify!(nvEncGetEncodeProfileGUIDCount)
6838        )
6839    );
6840    assert_eq!(
6841        unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetEncodeProfileGUIDs) as usize - ptr as usize },
6842        32usize,
6843        concat!(
6844            "Offset of field: ",
6845            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6846            "::",
6847            stringify!(nvEncGetEncodeProfileGUIDs)
6848        )
6849    );
6850    assert_eq!(
6851        unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetEncodeGUIDs) as usize - ptr as usize },
6852        40usize,
6853        concat!(
6854            "Offset of field: ",
6855            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6856            "::",
6857            stringify!(nvEncGetEncodeGUIDs)
6858        )
6859    );
6860    assert_eq!(
6861        unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetInputFormatCount) as usize - ptr as usize },
6862        48usize,
6863        concat!(
6864            "Offset of field: ",
6865            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6866            "::",
6867            stringify!(nvEncGetInputFormatCount)
6868        )
6869    );
6870    assert_eq!(
6871        unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetInputFormats) as usize - ptr as usize },
6872        56usize,
6873        concat!(
6874            "Offset of field: ",
6875            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6876            "::",
6877            stringify!(nvEncGetInputFormats)
6878        )
6879    );
6880    assert_eq!(
6881        unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetEncodeCaps) as usize - ptr as usize },
6882        64usize,
6883        concat!(
6884            "Offset of field: ",
6885            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6886            "::",
6887            stringify!(nvEncGetEncodeCaps)
6888        )
6889    );
6890    assert_eq!(
6891        unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetEncodePresetCount) as usize - ptr as usize },
6892        72usize,
6893        concat!(
6894            "Offset of field: ",
6895            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6896            "::",
6897            stringify!(nvEncGetEncodePresetCount)
6898        )
6899    );
6900    assert_eq!(
6901        unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetEncodePresetGUIDs) as usize - ptr as usize },
6902        80usize,
6903        concat!(
6904            "Offset of field: ",
6905            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6906            "::",
6907            stringify!(nvEncGetEncodePresetGUIDs)
6908        )
6909    );
6910    assert_eq!(
6911        unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetEncodePresetConfig) as usize - ptr as usize },
6912        88usize,
6913        concat!(
6914            "Offset of field: ",
6915            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6916            "::",
6917            stringify!(nvEncGetEncodePresetConfig)
6918        )
6919    );
6920    assert_eq!(
6921        unsafe { ::core::ptr::addr_of!((*ptr).nvEncInitializeEncoder) as usize - ptr as usize },
6922        96usize,
6923        concat!(
6924            "Offset of field: ",
6925            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6926            "::",
6927            stringify!(nvEncInitializeEncoder)
6928        )
6929    );
6930    assert_eq!(
6931        unsafe { ::core::ptr::addr_of!((*ptr).nvEncCreateInputBuffer) as usize - ptr as usize },
6932        104usize,
6933        concat!(
6934            "Offset of field: ",
6935            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6936            "::",
6937            stringify!(nvEncCreateInputBuffer)
6938        )
6939    );
6940    assert_eq!(
6941        unsafe { ::core::ptr::addr_of!((*ptr).nvEncDestroyInputBuffer) as usize - ptr as usize },
6942        112usize,
6943        concat!(
6944            "Offset of field: ",
6945            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6946            "::",
6947            stringify!(nvEncDestroyInputBuffer)
6948        )
6949    );
6950    assert_eq!(
6951        unsafe { ::core::ptr::addr_of!((*ptr).nvEncCreateBitstreamBuffer) as usize - ptr as usize },
6952        120usize,
6953        concat!(
6954            "Offset of field: ",
6955            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6956            "::",
6957            stringify!(nvEncCreateBitstreamBuffer)
6958        )
6959    );
6960    assert_eq!(
6961        unsafe {
6962            ::core::ptr::addr_of!((*ptr).nvEncDestroyBitstreamBuffer) as usize - ptr as usize
6963        },
6964        128usize,
6965        concat!(
6966            "Offset of field: ",
6967            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6968            "::",
6969            stringify!(nvEncDestroyBitstreamBuffer)
6970        )
6971    );
6972    assert_eq!(
6973        unsafe { ::core::ptr::addr_of!((*ptr).nvEncEncodePicture) as usize - ptr as usize },
6974        136usize,
6975        concat!(
6976            "Offset of field: ",
6977            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6978            "::",
6979            stringify!(nvEncEncodePicture)
6980        )
6981    );
6982    assert_eq!(
6983        unsafe { ::core::ptr::addr_of!((*ptr).nvEncLockBitstream) as usize - ptr as usize },
6984        144usize,
6985        concat!(
6986            "Offset of field: ",
6987            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6988            "::",
6989            stringify!(nvEncLockBitstream)
6990        )
6991    );
6992    assert_eq!(
6993        unsafe { ::core::ptr::addr_of!((*ptr).nvEncUnlockBitstream) as usize - ptr as usize },
6994        152usize,
6995        concat!(
6996            "Offset of field: ",
6997            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
6998            "::",
6999            stringify!(nvEncUnlockBitstream)
7000        )
7001    );
7002    assert_eq!(
7003        unsafe { ::core::ptr::addr_of!((*ptr).nvEncLockInputBuffer) as usize - ptr as usize },
7004        160usize,
7005        concat!(
7006            "Offset of field: ",
7007            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7008            "::",
7009            stringify!(nvEncLockInputBuffer)
7010        )
7011    );
7012    assert_eq!(
7013        unsafe { ::core::ptr::addr_of!((*ptr).nvEncUnlockInputBuffer) as usize - ptr as usize },
7014        168usize,
7015        concat!(
7016            "Offset of field: ",
7017            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7018            "::",
7019            stringify!(nvEncUnlockInputBuffer)
7020        )
7021    );
7022    assert_eq!(
7023        unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetEncodeStats) as usize - ptr as usize },
7024        176usize,
7025        concat!(
7026            "Offset of field: ",
7027            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7028            "::",
7029            stringify!(nvEncGetEncodeStats)
7030        )
7031    );
7032    assert_eq!(
7033        unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetSequenceParams) as usize - ptr as usize },
7034        184usize,
7035        concat!(
7036            "Offset of field: ",
7037            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7038            "::",
7039            stringify!(nvEncGetSequenceParams)
7040        )
7041    );
7042    assert_eq!(
7043        unsafe { ::core::ptr::addr_of!((*ptr).nvEncRegisterAsyncEvent) as usize - ptr as usize },
7044        192usize,
7045        concat!(
7046            "Offset of field: ",
7047            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7048            "::",
7049            stringify!(nvEncRegisterAsyncEvent)
7050        )
7051    );
7052    assert_eq!(
7053        unsafe { ::core::ptr::addr_of!((*ptr).nvEncUnregisterAsyncEvent) as usize - ptr as usize },
7054        200usize,
7055        concat!(
7056            "Offset of field: ",
7057            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7058            "::",
7059            stringify!(nvEncUnregisterAsyncEvent)
7060        )
7061    );
7062    assert_eq!(
7063        unsafe { ::core::ptr::addr_of!((*ptr).nvEncMapInputResource) as usize - ptr as usize },
7064        208usize,
7065        concat!(
7066            "Offset of field: ",
7067            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7068            "::",
7069            stringify!(nvEncMapInputResource)
7070        )
7071    );
7072    assert_eq!(
7073        unsafe { ::core::ptr::addr_of!((*ptr).nvEncUnmapInputResource) as usize - ptr as usize },
7074        216usize,
7075        concat!(
7076            "Offset of field: ",
7077            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7078            "::",
7079            stringify!(nvEncUnmapInputResource)
7080        )
7081    );
7082    assert_eq!(
7083        unsafe { ::core::ptr::addr_of!((*ptr).nvEncDestroyEncoder) as usize - ptr as usize },
7084        224usize,
7085        concat!(
7086            "Offset of field: ",
7087            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7088            "::",
7089            stringify!(nvEncDestroyEncoder)
7090        )
7091    );
7092    assert_eq!(
7093        unsafe { ::core::ptr::addr_of!((*ptr).nvEncInvalidateRefFrames) as usize - ptr as usize },
7094        232usize,
7095        concat!(
7096            "Offset of field: ",
7097            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7098            "::",
7099            stringify!(nvEncInvalidateRefFrames)
7100        )
7101    );
7102    assert_eq!(
7103        unsafe { ::core::ptr::addr_of!((*ptr).nvEncOpenEncodeSessionEx) as usize - ptr as usize },
7104        240usize,
7105        concat!(
7106            "Offset of field: ",
7107            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7108            "::",
7109            stringify!(nvEncOpenEncodeSessionEx)
7110        )
7111    );
7112    assert_eq!(
7113        unsafe { ::core::ptr::addr_of!((*ptr).nvEncRegisterResource) as usize - ptr as usize },
7114        248usize,
7115        concat!(
7116            "Offset of field: ",
7117            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7118            "::",
7119            stringify!(nvEncRegisterResource)
7120        )
7121    );
7122    assert_eq!(
7123        unsafe { ::core::ptr::addr_of!((*ptr).nvEncUnregisterResource) as usize - ptr as usize },
7124        256usize,
7125        concat!(
7126            "Offset of field: ",
7127            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7128            "::",
7129            stringify!(nvEncUnregisterResource)
7130        )
7131    );
7132    assert_eq!(
7133        unsafe { ::core::ptr::addr_of!((*ptr).nvEncReconfigureEncoder) as usize - ptr as usize },
7134        264usize,
7135        concat!(
7136            "Offset of field: ",
7137            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7138            "::",
7139            stringify!(nvEncReconfigureEncoder)
7140        )
7141    );
7142    assert_eq!(
7143        unsafe { ::core::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize },
7144        272usize,
7145        concat!(
7146            "Offset of field: ",
7147            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7148            "::",
7149            stringify!(reserved1)
7150        )
7151    );
7152    assert_eq!(
7153        unsafe { ::core::ptr::addr_of!((*ptr).nvEncCreateMVBuffer) as usize - ptr as usize },
7154        280usize,
7155        concat!(
7156            "Offset of field: ",
7157            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7158            "::",
7159            stringify!(nvEncCreateMVBuffer)
7160        )
7161    );
7162    assert_eq!(
7163        unsafe { ::core::ptr::addr_of!((*ptr).nvEncDestroyMVBuffer) as usize - ptr as usize },
7164        288usize,
7165        concat!(
7166            "Offset of field: ",
7167            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7168            "::",
7169            stringify!(nvEncDestroyMVBuffer)
7170        )
7171    );
7172    assert_eq!(
7173        unsafe {
7174            ::core::ptr::addr_of!((*ptr).nvEncRunMotionEstimationOnly) as usize - ptr as usize
7175        },
7176        296usize,
7177        concat!(
7178            "Offset of field: ",
7179            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7180            "::",
7181            stringify!(nvEncRunMotionEstimationOnly)
7182        )
7183    );
7184    assert_eq!(
7185        unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetLastErrorString) as usize - ptr as usize },
7186        304usize,
7187        concat!(
7188            "Offset of field: ",
7189            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7190            "::",
7191            stringify!(nvEncGetLastErrorString)
7192        )
7193    );
7194    assert_eq!(
7195        unsafe { ::core::ptr::addr_of!((*ptr).nvEncSetIOCudaStreams) as usize - ptr as usize },
7196        312usize,
7197        concat!(
7198            "Offset of field: ",
7199            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7200            "::",
7201            stringify!(nvEncSetIOCudaStreams)
7202        )
7203    );
7204    assert_eq!(
7205        unsafe {
7206            ::core::ptr::addr_of!((*ptr).nvEncGetEncodePresetConfigEx) as usize - ptr as usize
7207        },
7208        320usize,
7209        concat!(
7210            "Offset of field: ",
7211            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7212            "::",
7213            stringify!(nvEncGetEncodePresetConfigEx)
7214        )
7215    );
7216    assert_eq!(
7217        unsafe { ::core::ptr::addr_of!((*ptr).nvEncGetSequenceParamEx) as usize - ptr as usize },
7218        328usize,
7219        concat!(
7220            "Offset of field: ",
7221            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7222            "::",
7223            stringify!(nvEncGetSequenceParamEx)
7224        )
7225    );
7226    assert_eq!(
7227        unsafe { ::core::ptr::addr_of!((*ptr).nvEncRestoreEncoderState) as usize - ptr as usize },
7228        336usize,
7229        concat!(
7230            "Offset of field: ",
7231            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7232            "::",
7233            stringify!(nvEncRestoreEncoderState)
7234        )
7235    );
7236    assert_eq!(
7237        unsafe { ::core::ptr::addr_of!((*ptr).nvEncLookaheadPicture) as usize - ptr as usize },
7238        344usize,
7239        concat!(
7240            "Offset of field: ",
7241            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7242            "::",
7243            stringify!(nvEncLookaheadPicture)
7244        )
7245    );
7246    assert_eq!(
7247        unsafe { ::core::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize },
7248        352usize,
7249        concat!(
7250            "Offset of field: ",
7251            stringify!(_NV_ENCODE_API_FUNCTION_LIST),
7252            "::",
7253            stringify!(reserved2)
7254        )
7255    );
7256}
7257#[repr(u32)]
7258#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7259pub enum _NV_ENC_PARAMS_FRAME_FIELD_MODE {
7260    NV_ENC_PARAMS_FRAME_FIELD_MODE_FRAME = 1,
7261    NV_ENC_PARAMS_FRAME_FIELD_MODE_FIELD = 2,
7262    NV_ENC_PARAMS_FRAME_FIELD_MODE_MBAFF = 3,
7263}
7264#[repr(u32)]
7265#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7266pub enum _NV_ENC_PARAMS_RC_MODE {
7267    NV_ENC_PARAMS_RC_CONSTQP = 0,
7268    NV_ENC_PARAMS_RC_VBR = 1,
7269    NV_ENC_PARAMS_RC_CBR = 2,
7270}
7271#[repr(u32)]
7272#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7273pub enum _NV_ENC_MULTI_PASS {
7274    NV_ENC_MULTI_PASS_DISABLED = 0,
7275    NV_ENC_TWO_PASS_QUARTER_RESOLUTION = 1,
7276    NV_ENC_TWO_PASS_FULL_RESOLUTION = 2,
7277}
7278#[repr(u32)]
7279#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7280pub enum _NV_ENC_STATE_RESTORE_TYPE {
7281    NV_ENC_STATE_RESTORE_FULL = 1,
7282    NV_ENC_STATE_RESTORE_RATE_CONTROL = 2,
7283    NV_ENC_STATE_RESTORE_ENCODE = 3,
7284}
7285#[repr(u32)]
7286#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7287pub enum _NV_ENC_OUTPUT_STATS_LEVEL {
7288    NV_ENC_OUTPUT_STATS_NONE = 0,
7289    NV_ENC_OUTPUT_STATS_BLOCK_LEVEL = 1,
7290    NV_ENC_OUTPUT_STATS_ROW_LEVEL = 2,
7291}
7292#[repr(u32)]
7293#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7294pub enum _NV_ENC_EMPHASIS_MAP_LEVEL {
7295    NV_ENC_EMPHASIS_MAP_LEVEL_0 = 0,
7296    NV_ENC_EMPHASIS_MAP_LEVEL_1 = 1,
7297    NV_ENC_EMPHASIS_MAP_LEVEL_2 = 2,
7298    NV_ENC_EMPHASIS_MAP_LEVEL_3 = 3,
7299    NV_ENC_EMPHASIS_MAP_LEVEL_4 = 4,
7300    NV_ENC_EMPHASIS_MAP_LEVEL_5 = 5,
7301}
7302#[repr(u32)]
7303#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7304pub enum _NV_ENC_QP_MAP_MODE {
7305    NV_ENC_QP_MAP_DISABLED = 0,
7306    NV_ENC_QP_MAP_EMPHASIS = 1,
7307    NV_ENC_QP_MAP_DELTA = 2,
7308    NV_ENC_QP_MAP = 3,
7309}
7310#[repr(u32)]
7311#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7312pub enum _NV_ENC_PIC_STRUCT {
7313    NV_ENC_PIC_STRUCT_FRAME = 1,
7314    NV_ENC_PIC_STRUCT_FIELD_TOP_BOTTOM = 2,
7315    NV_ENC_PIC_STRUCT_FIELD_BOTTOM_TOP = 3,
7316}
7317#[repr(u32)]
7318#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7319pub enum _NV_ENC_DISPLAY_PIC_STRUCT {
7320    NV_ENC_PIC_STRUCT_DISPLAY_FRAME = 0,
7321    NV_ENC_PIC_STRUCT_DISPLAY_FIELD_TOP_BOTTOM = 1,
7322    NV_ENC_PIC_STRUCT_DISPLAY_FIELD_BOTTOM_TOP = 2,
7323    NV_ENC_PIC_STRUCT_DISPLAY_FRAME_DOUBLING = 3,
7324    NV_ENC_PIC_STRUCT_DISPLAY_FRAME_TRIPLING = 4,
7325}
7326#[repr(u32)]
7327#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7328pub enum _NV_ENC_PIC_TYPE {
7329    NV_ENC_PIC_TYPE_P = 0,
7330    NV_ENC_PIC_TYPE_B = 1,
7331    NV_ENC_PIC_TYPE_I = 2,
7332    NV_ENC_PIC_TYPE_IDR = 3,
7333    NV_ENC_PIC_TYPE_BI = 4,
7334    NV_ENC_PIC_TYPE_SKIPPED = 5,
7335    NV_ENC_PIC_TYPE_INTRA_REFRESH = 6,
7336    NV_ENC_PIC_TYPE_NONREF_P = 7,
7337    NV_ENC_PIC_TYPE_UNKNOWN = 255,
7338}
7339#[repr(u32)]
7340#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7341pub enum _NV_ENC_MV_PRECISION {
7342    NV_ENC_MV_PRECISION_DEFAULT = 0,
7343    NV_ENC_MV_PRECISION_FULL_PEL = 1,
7344    NV_ENC_MV_PRECISION_HALF_PEL = 2,
7345    NV_ENC_MV_PRECISION_QUARTER_PEL = 3,
7346}
7347#[repr(u32)]
7348#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7349pub enum _NV_ENC_BUFFER_FORMAT {
7350    NV_ENC_BUFFER_FORMAT_UNDEFINED = 0,
7351    NV_ENC_BUFFER_FORMAT_NV12 = 1,
7352    NV_ENC_BUFFER_FORMAT_YV12 = 16,
7353    NV_ENC_BUFFER_FORMAT_IYUV = 256,
7354    NV_ENC_BUFFER_FORMAT_YUV444 = 4096,
7355    NV_ENC_BUFFER_FORMAT_YUV420_10BIT = 65536,
7356    NV_ENC_BUFFER_FORMAT_YUV444_10BIT = 1048576,
7357    NV_ENC_BUFFER_FORMAT_ARGB = 16777216,
7358    NV_ENC_BUFFER_FORMAT_ARGB10 = 33554432,
7359    NV_ENC_BUFFER_FORMAT_AYUV = 67108864,
7360    NV_ENC_BUFFER_FORMAT_ABGR = 268435456,
7361    NV_ENC_BUFFER_FORMAT_ABGR10 = 536870912,
7362    NV_ENC_BUFFER_FORMAT_U8 = 1073741824,
7363}
7364#[repr(u32)]
7365#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7366pub enum _NV_ENC_LEVEL {
7367    NV_ENC_LEVEL_AUTOSELECT = 0,
7368    NV_ENC_LEVEL_H264_1 = 10,
7369    NV_ENC_LEVEL_H264_1b = 9,
7370    NV_ENC_LEVEL_H264_11 = 11,
7371    NV_ENC_LEVEL_H264_12 = 12,
7372    NV_ENC_LEVEL_H264_13 = 13,
7373    NV_ENC_LEVEL_H264_2 = 20,
7374    NV_ENC_LEVEL_H264_21 = 21,
7375    NV_ENC_LEVEL_H264_22 = 22,
7376    NV_ENC_LEVEL_H264_3 = 30,
7377    NV_ENC_LEVEL_H264_31 = 31,
7378    NV_ENC_LEVEL_H264_32 = 32,
7379    NV_ENC_LEVEL_H264_4 = 40,
7380    NV_ENC_LEVEL_H264_41 = 41,
7381    NV_ENC_LEVEL_H264_42 = 42,
7382    NV_ENC_LEVEL_H264_5 = 50,
7383    NV_ENC_LEVEL_H264_51 = 51,
7384    NV_ENC_LEVEL_H264_52 = 52,
7385    NV_ENC_LEVEL_H264_60 = 60,
7386    NV_ENC_LEVEL_H264_61 = 61,
7387    NV_ENC_LEVEL_H264_62 = 62,
7388    NV_ENC_LEVEL_HEVC_21 = 63,
7389    NV_ENC_LEVEL_HEVC_3 = 90,
7390    NV_ENC_LEVEL_HEVC_31 = 93,
7391    NV_ENC_LEVEL_HEVC_4 = 120,
7392    NV_ENC_LEVEL_HEVC_41 = 123,
7393    NV_ENC_LEVEL_HEVC_5 = 150,
7394    NV_ENC_LEVEL_HEVC_51 = 153,
7395    NV_ENC_LEVEL_HEVC_52 = 156,
7396    NV_ENC_LEVEL_HEVC_6 = 180,
7397    NV_ENC_LEVEL_HEVC_61 = 183,
7398    NV_ENC_LEVEL_HEVC_62 = 186,
7399    NV_ENC_TIER_HEVC_HIGH = 1,
7400    NV_ENC_LEVEL_AV1_22 = 2,
7401    NV_ENC_LEVEL_AV1_23 = 3,
7402    NV_ENC_LEVEL_AV1_3 = 4,
7403    NV_ENC_LEVEL_AV1_31 = 5,
7404    NV_ENC_LEVEL_AV1_32 = 6,
7405    NV_ENC_LEVEL_AV1_33 = 7,
7406    NV_ENC_LEVEL_AV1_4 = 8,
7407    NV_ENC_LEVEL_AV1_52 = 14,
7408    NV_ENC_LEVEL_AV1_53 = 15,
7409    NV_ENC_LEVEL_AV1_6 = 16,
7410    NV_ENC_LEVEL_AV1_61 = 17,
7411    NV_ENC_LEVEL_AV1_62 = 18,
7412    NV_ENC_LEVEL_AV1_63 = 19,
7413    NV_ENC_LEVEL_AV1_73 = 23,
7414    NV_ENC_LEVEL_AV1_AUTOSELECT = 24,
7415}
7416#[repr(u32)]
7417#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7418pub enum _NVENCSTATUS {
7419    NV_ENC_SUCCESS = 0,
7420    NV_ENC_ERR_NO_ENCODE_DEVICE = 1,
7421    NV_ENC_ERR_UNSUPPORTED_DEVICE = 2,
7422    NV_ENC_ERR_INVALID_ENCODERDEVICE = 3,
7423    NV_ENC_ERR_INVALID_DEVICE = 4,
7424    NV_ENC_ERR_DEVICE_NOT_EXIST = 5,
7425    NV_ENC_ERR_INVALID_PTR = 6,
7426    NV_ENC_ERR_INVALID_EVENT = 7,
7427    NV_ENC_ERR_INVALID_PARAM = 8,
7428    NV_ENC_ERR_INVALID_CALL = 9,
7429    NV_ENC_ERR_OUT_OF_MEMORY = 10,
7430    NV_ENC_ERR_ENCODER_NOT_INITIALIZED = 11,
7431    NV_ENC_ERR_UNSUPPORTED_PARAM = 12,
7432    NV_ENC_ERR_LOCK_BUSY = 13,
7433    NV_ENC_ERR_NOT_ENOUGH_BUFFER = 14,
7434    NV_ENC_ERR_INVALID_VERSION = 15,
7435    NV_ENC_ERR_MAP_FAILED = 16,
7436    NV_ENC_ERR_NEED_MORE_INPUT = 17,
7437    NV_ENC_ERR_ENCODER_BUSY = 18,
7438    NV_ENC_ERR_EVENT_NOT_REGISTERD = 19,
7439    NV_ENC_ERR_GENERIC = 20,
7440    NV_ENC_ERR_INCOMPATIBLE_CLIENT_KEY = 21,
7441    NV_ENC_ERR_UNIMPLEMENTED = 22,
7442    NV_ENC_ERR_RESOURCE_REGISTER_FAILED = 23,
7443    NV_ENC_ERR_RESOURCE_NOT_REGISTERED = 24,
7444    NV_ENC_ERR_RESOURCE_NOT_MAPPED = 25,
7445    NV_ENC_ERR_NEED_MORE_OUTPUT = 26,
7446}
7447#[repr(u32)]
7448#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7449pub enum _NV_ENC_PIC_FLAGS {
7450    NV_ENC_PIC_FLAG_FORCEINTRA = 1,
7451    NV_ENC_PIC_FLAG_FORCEIDR = 2,
7452    NV_ENC_PIC_FLAG_OUTPUT_SPSPPS = 4,
7453    NV_ENC_PIC_FLAG_EOS = 8,
7454    NV_ENC_PIC_FLAG_DISABLE_ENC_STATE_ADVANCE = 16,
7455    NV_ENC_PIC_FLAG_OUTPUT_RECON_FRAME = 32,
7456}
7457#[repr(u32)]
7458#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7459pub enum _NV_ENC_MEMORY_HEAP {
7460    NV_ENC_MEMORY_HEAP_AUTOSELECT = 0,
7461    NV_ENC_MEMORY_HEAP_VID = 1,
7462    NV_ENC_MEMORY_HEAP_SYSMEM_CACHED = 2,
7463    NV_ENC_MEMORY_HEAP_SYSMEM_UNCACHED = 3,
7464}
7465#[repr(u32)]
7466#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7467pub enum _NV_ENC_BFRAME_REF_MODE {
7468    NV_ENC_BFRAME_REF_MODE_DISABLED = 0,
7469    NV_ENC_BFRAME_REF_MODE_EACH = 1,
7470    NV_ENC_BFRAME_REF_MODE_MIDDLE = 2,
7471}
7472#[repr(u32)]
7473#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7474pub enum _NV_ENC_H264_ENTROPY_CODING_MODE {
7475    NV_ENC_H264_ENTROPY_CODING_MODE_AUTOSELECT = 0,
7476    NV_ENC_H264_ENTROPY_CODING_MODE_CABAC = 1,
7477    NV_ENC_H264_ENTROPY_CODING_MODE_CAVLC = 2,
7478}
7479#[repr(u32)]
7480#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7481pub enum _NV_ENC_H264_BDIRECT_MODE {
7482    NV_ENC_H264_BDIRECT_MODE_AUTOSELECT = 0,
7483    NV_ENC_H264_BDIRECT_MODE_DISABLE = 1,
7484    NV_ENC_H264_BDIRECT_MODE_TEMPORAL = 2,
7485    NV_ENC_H264_BDIRECT_MODE_SPATIAL = 3,
7486}
7487#[repr(u32)]
7488#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7489pub enum _NV_ENC_H264_FMO_MODE {
7490    NV_ENC_H264_FMO_AUTOSELECT = 0,
7491    NV_ENC_H264_FMO_ENABLE = 1,
7492    NV_ENC_H264_FMO_DISABLE = 2,
7493}
7494#[repr(u32)]
7495#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7496pub enum _NV_ENC_H264_ADAPTIVE_TRANSFORM_MODE {
7497    NV_ENC_H264_ADAPTIVE_TRANSFORM_AUTOSELECT = 0,
7498    NV_ENC_H264_ADAPTIVE_TRANSFORM_DISABLE = 1,
7499    NV_ENC_H264_ADAPTIVE_TRANSFORM_ENABLE = 2,
7500}
7501#[repr(u32)]
7502#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7503pub enum _NV_ENC_STEREO_PACKING_MODE {
7504    NV_ENC_STEREO_PACKING_MODE_NONE = 0,
7505    NV_ENC_STEREO_PACKING_MODE_CHECKERBOARD = 1,
7506    NV_ENC_STEREO_PACKING_MODE_COLINTERLEAVE = 2,
7507    NV_ENC_STEREO_PACKING_MODE_ROWINTERLEAVE = 3,
7508    NV_ENC_STEREO_PACKING_MODE_SIDEBYSIDE = 4,
7509    NV_ENC_STEREO_PACKING_MODE_TOPBOTTOM = 5,
7510    NV_ENC_STEREO_PACKING_MODE_FRAMESEQ = 6,
7511}
7512#[repr(u32)]
7513#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7514pub enum _NV_ENC_INPUT_RESOURCE_TYPE {
7515    NV_ENC_INPUT_RESOURCE_TYPE_DIRECTX = 0,
7516    NV_ENC_INPUT_RESOURCE_TYPE_CUDADEVICEPTR = 1,
7517    NV_ENC_INPUT_RESOURCE_TYPE_CUDAARRAY = 2,
7518    NV_ENC_INPUT_RESOURCE_TYPE_OPENGL_TEX = 3,
7519}
7520#[repr(u32)]
7521#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7522pub enum _NV_ENC_BUFFER_USAGE {
7523    NV_ENC_INPUT_IMAGE = 0,
7524    NV_ENC_OUTPUT_MOTION_VECTOR = 1,
7525    NV_ENC_OUTPUT_BITSTREAM = 2,
7526    NV_ENC_OUTPUT_RECON = 4,
7527}
7528#[repr(u32)]
7529#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7530pub enum _NV_ENC_DEVICE_TYPE {
7531    NV_ENC_DEVICE_TYPE_DIRECTX = 0,
7532    NV_ENC_DEVICE_TYPE_CUDA = 1,
7533    NV_ENC_DEVICE_TYPE_OPENGL = 2,
7534}
7535#[repr(u32)]
7536#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7537pub enum _NV_ENC_NUM_REF_FRAMES {
7538    NV_ENC_NUM_REF_FRAMES_AUTOSELECT = 0,
7539    NV_ENC_NUM_REF_FRAMES_1 = 1,
7540    NV_ENC_NUM_REF_FRAMES_2 = 2,
7541    NV_ENC_NUM_REF_FRAMES_3 = 3,
7542    NV_ENC_NUM_REF_FRAMES_4 = 4,
7543    NV_ENC_NUM_REF_FRAMES_5 = 5,
7544    NV_ENC_NUM_REF_FRAMES_6 = 6,
7545    NV_ENC_NUM_REF_FRAMES_7 = 7,
7546}
7547#[repr(u32)]
7548#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7549pub enum _NV_ENC_CAPS {
7550    NV_ENC_CAPS_NUM_MAX_BFRAMES = 0,
7551    NV_ENC_CAPS_SUPPORTED_RATECONTROL_MODES = 1,
7552    NV_ENC_CAPS_SUPPORT_FIELD_ENCODING = 2,
7553    NV_ENC_CAPS_SUPPORT_MONOCHROME = 3,
7554    NV_ENC_CAPS_SUPPORT_FMO = 4,
7555    NV_ENC_CAPS_SUPPORT_QPELMV = 5,
7556    NV_ENC_CAPS_SUPPORT_BDIRECT_MODE = 6,
7557    NV_ENC_CAPS_SUPPORT_CABAC = 7,
7558    NV_ENC_CAPS_SUPPORT_ADAPTIVE_TRANSFORM = 8,
7559    NV_ENC_CAPS_SUPPORT_STEREO_MVC = 9,
7560    NV_ENC_CAPS_NUM_MAX_TEMPORAL_LAYERS = 10,
7561    NV_ENC_CAPS_SUPPORT_HIERARCHICAL_PFRAMES = 11,
7562    NV_ENC_CAPS_SUPPORT_HIERARCHICAL_BFRAMES = 12,
7563    NV_ENC_CAPS_LEVEL_MAX = 13,
7564    NV_ENC_CAPS_LEVEL_MIN = 14,
7565    NV_ENC_CAPS_SEPARATE_COLOUR_PLANE = 15,
7566    NV_ENC_CAPS_WIDTH_MAX = 16,
7567    NV_ENC_CAPS_HEIGHT_MAX = 17,
7568    NV_ENC_CAPS_SUPPORT_TEMPORAL_SVC = 18,
7569    NV_ENC_CAPS_SUPPORT_DYN_RES_CHANGE = 19,
7570    NV_ENC_CAPS_SUPPORT_DYN_BITRATE_CHANGE = 20,
7571    NV_ENC_CAPS_SUPPORT_DYN_FORCE_CONSTQP = 21,
7572    NV_ENC_CAPS_SUPPORT_DYN_RCMODE_CHANGE = 22,
7573    NV_ENC_CAPS_SUPPORT_SUBFRAME_READBACK = 23,
7574    NV_ENC_CAPS_SUPPORT_CONSTRAINED_ENCODING = 24,
7575    NV_ENC_CAPS_SUPPORT_INTRA_REFRESH = 25,
7576    NV_ENC_CAPS_SUPPORT_CUSTOM_VBV_BUF_SIZE = 26,
7577    NV_ENC_CAPS_SUPPORT_DYNAMIC_SLICE_MODE = 27,
7578    NV_ENC_CAPS_SUPPORT_REF_PIC_INVALIDATION = 28,
7579    NV_ENC_CAPS_PREPROC_SUPPORT = 29,
7580    NV_ENC_CAPS_ASYNC_ENCODE_SUPPORT = 30,
7581    NV_ENC_CAPS_MB_NUM_MAX = 31,
7582    NV_ENC_CAPS_MB_PER_SEC_MAX = 32,
7583    NV_ENC_CAPS_SUPPORT_YUV444_ENCODE = 33,
7584    NV_ENC_CAPS_SUPPORT_LOSSLESS_ENCODE = 34,
7585    NV_ENC_CAPS_SUPPORT_SAO = 35,
7586    NV_ENC_CAPS_SUPPORT_MEONLY_MODE = 36,
7587    NV_ENC_CAPS_SUPPORT_LOOKAHEAD = 37,
7588    NV_ENC_CAPS_SUPPORT_TEMPORAL_AQ = 38,
7589    NV_ENC_CAPS_SUPPORT_10BIT_ENCODE = 39,
7590    NV_ENC_CAPS_NUM_MAX_LTR_FRAMES = 40,
7591    NV_ENC_CAPS_SUPPORT_WEIGHTED_PREDICTION = 41,
7592    NV_ENC_CAPS_DYNAMIC_QUERY_ENCODER_CAPACITY = 42,
7593    NV_ENC_CAPS_SUPPORT_BFRAME_REF_MODE = 43,
7594    NV_ENC_CAPS_SUPPORT_EMPHASIS_LEVEL_MAP = 44,
7595    NV_ENC_CAPS_WIDTH_MIN = 45,
7596    NV_ENC_CAPS_HEIGHT_MIN = 46,
7597    NV_ENC_CAPS_SUPPORT_MULTIPLE_REF_FRAMES = 47,
7598    NV_ENC_CAPS_SUPPORT_ALPHA_LAYER_ENCODING = 48,
7599    NV_ENC_CAPS_NUM_ENCODER_ENGINES = 49,
7600    NV_ENC_CAPS_SINGLE_SLICE_INTRA_REFRESH = 50,
7601    NV_ENC_CAPS_DISABLE_ENC_STATE_ADVANCE = 51,
7602    NV_ENC_CAPS_OUTPUT_RECON_SURFACE = 52,
7603    NV_ENC_CAPS_OUTPUT_BLOCK_STATS = 53,
7604    NV_ENC_CAPS_OUTPUT_ROW_STATS = 54,
7605    NV_ENC_CAPS_EXPOSED_COUNT = 55,
7606}
7607#[repr(u32)]
7608#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7609pub enum _NV_ENC_HEVC_CUSIZE {
7610    NV_ENC_HEVC_CUSIZE_AUTOSELECT = 0,
7611    NV_ENC_HEVC_CUSIZE_8x8 = 1,
7612    NV_ENC_HEVC_CUSIZE_16x16 = 2,
7613    NV_ENC_HEVC_CUSIZE_32x32 = 3,
7614    NV_ENC_HEVC_CUSIZE_64x64 = 4,
7615}
7616#[repr(u32)]
7617#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7618pub enum _NV_ENC_AV1_PART_SIZE {
7619    NV_ENC_AV1_PART_SIZE_AUTOSELECT = 0,
7620    NV_ENC_AV1_PART_SIZE_4x4 = 1,
7621    NV_ENC_AV1_PART_SIZE_8x8 = 2,
7622    NV_ENC_AV1_PART_SIZE_16x16 = 3,
7623    NV_ENC_AV1_PART_SIZE_32x32 = 4,
7624    NV_ENC_AV1_PART_SIZE_64x64 = 5,
7625}
7626#[repr(u32)]
7627#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7628pub enum _NV_ENC_VUI_VIDEO_FORMAT {
7629    NV_ENC_VUI_VIDEO_FORMAT_COMPONENT = 0,
7630    NV_ENC_VUI_VIDEO_FORMAT_PAL = 1,
7631    NV_ENC_VUI_VIDEO_FORMAT_NTSC = 2,
7632    NV_ENC_VUI_VIDEO_FORMAT_SECAM = 3,
7633    NV_ENC_VUI_VIDEO_FORMAT_MAC = 4,
7634    NV_ENC_VUI_VIDEO_FORMAT_UNSPECIFIED = 5,
7635}
7636#[repr(u32)]
7637#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7638pub enum _NV_ENC_VUI_COLOR_PRIMARIES {
7639    NV_ENC_VUI_COLOR_PRIMARIES_UNDEFINED = 0,
7640    NV_ENC_VUI_COLOR_PRIMARIES_BT709 = 1,
7641    NV_ENC_VUI_COLOR_PRIMARIES_UNSPECIFIED = 2,
7642    NV_ENC_VUI_COLOR_PRIMARIES_RESERVED = 3,
7643    NV_ENC_VUI_COLOR_PRIMARIES_BT470M = 4,
7644    NV_ENC_VUI_COLOR_PRIMARIES_BT470BG = 5,
7645    NV_ENC_VUI_COLOR_PRIMARIES_SMPTE170M = 6,
7646    NV_ENC_VUI_COLOR_PRIMARIES_SMPTE240M = 7,
7647    NV_ENC_VUI_COLOR_PRIMARIES_FILM = 8,
7648    NV_ENC_VUI_COLOR_PRIMARIES_BT2020 = 9,
7649    NV_ENC_VUI_COLOR_PRIMARIES_SMPTE428 = 10,
7650    NV_ENC_VUI_COLOR_PRIMARIES_SMPTE431 = 11,
7651    NV_ENC_VUI_COLOR_PRIMARIES_SMPTE432 = 12,
7652    NV_ENC_VUI_COLOR_PRIMARIES_JEDEC_P22 = 22,
7653}
7654#[repr(u32)]
7655#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7656pub enum _NV_ENC_VUI_TRANSFER_CHARACTERISTIC {
7657    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_UNDEFINED = 0,
7658    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT709 = 1,
7659    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_UNSPECIFIED = 2,
7660    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_RESERVED = 3,
7661    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT470M = 4,
7662    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT470BG = 5,
7663    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_SMPTE170M = 6,
7664    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_SMPTE240M = 7,
7665    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_LINEAR = 8,
7666    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_LOG = 9,
7667    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_LOG_SQRT = 10,
7668    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_IEC61966_2_4 = 11,
7669    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT1361_ECG = 12,
7670    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_SRGB = 13,
7671    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT2020_10 = 14,
7672    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_BT2020_12 = 15,
7673    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_SMPTE2084 = 16,
7674    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_SMPTE428 = 17,
7675    NV_ENC_VUI_TRANSFER_CHARACTERISTIC_ARIB_STD_B67 = 18,
7676}
7677#[repr(u32)]
7678#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7679pub enum _NV_ENC_VUI_MATRIX_COEFFS {
7680    NV_ENC_VUI_MATRIX_COEFFS_RGB = 0,
7681    NV_ENC_VUI_MATRIX_COEFFS_BT709 = 1,
7682    NV_ENC_VUI_MATRIX_COEFFS_UNSPECIFIED = 2,
7683    NV_ENC_VUI_MATRIX_COEFFS_RESERVED = 3,
7684    NV_ENC_VUI_MATRIX_COEFFS_FCC = 4,
7685    NV_ENC_VUI_MATRIX_COEFFS_BT470BG = 5,
7686    NV_ENC_VUI_MATRIX_COEFFS_SMPTE170M = 6,
7687    NV_ENC_VUI_MATRIX_COEFFS_SMPTE240M = 7,
7688    NV_ENC_VUI_MATRIX_COEFFS_YCGCO = 8,
7689    NV_ENC_VUI_MATRIX_COEFFS_BT2020_NCL = 9,
7690    NV_ENC_VUI_MATRIX_COEFFS_BT2020_CL = 10,
7691    NV_ENC_VUI_MATRIX_COEFFS_SMPTE2085 = 11,
7692}
7693#[repr(u32)]
7694#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7695pub enum NV_ENC_TUNING_INFO {
7696    NV_ENC_TUNING_INFO_UNDEFINED = 0,
7697    NV_ENC_TUNING_INFO_HIGH_QUALITY = 1,
7698    NV_ENC_TUNING_INFO_LOW_LATENCY = 2,
7699    NV_ENC_TUNING_INFO_ULTRA_LOW_LATENCY = 3,
7700    NV_ENC_TUNING_INFO_LOSSLESS = 4,
7701    NV_ENC_TUNING_INFO_COUNT = 5,
7702}
7703#[repr(u32)]
7704#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
7705pub enum _NV_ENC_SPLIT_ENCODE_MODE {
7706    NV_ENC_SPLIT_AUTO_MODE = 0,
7707    NV_ENC_SPLIT_AUTO_FORCED_MODE = 1,
7708    NV_ENC_SPLIT_TWO_FORCED_MODE = 2,
7709    NV_ENC_SPLIT_THREE_FORCED_MODE = 3,
7710    NV_ENC_SPLIT_DISABLE_MODE = 15,
7711}
7712#[repr(C)]
7713#[derive(Copy, Clone)]
7714pub union _NV_ENC_CODEC_CONFIG {
7715    pub h264Config: NV_ENC_CONFIG_H264,
7716    pub hevcConfig: NV_ENC_CONFIG_HEVC,
7717    pub av1Config: NV_ENC_CONFIG_AV1,
7718    pub h264MeOnlyConfig: NV_ENC_CONFIG_H264_MEONLY,
7719    pub hevcMeOnlyConfig: NV_ENC_CONFIG_HEVC_MEONLY,
7720    pub reserved: [u32; 320usize],
7721}
7722#[repr(C)]
7723#[derive(Copy, Clone)]
7724pub union _NV_ENC_PIC_PARAMS_H264_EXT {
7725    pub mvcPicParams: NV_ENC_PIC_PARAMS_MVC,
7726    pub reserved1: [u32; 32usize],
7727}
7728#[repr(C)]
7729#[derive(Copy, Clone)]
7730pub union _NV_ENC_CODEC_PIC_PARAMS {
7731    pub h264PicParams: NV_ENC_PIC_PARAMS_H264,
7732    pub hevcPicParams: NV_ENC_PIC_PARAMS_HEVC,
7733    pub av1PicParams: NV_ENC_PIC_PARAMS_AV1,
7734    pub reserved: [u32; 256usize],
7735}
7736impl<Storage> __BindgenBitfieldUnit<Storage> {
7737    #[inline]
7738    pub const fn new(storage: Storage) -> Self {
7739        Self { storage }
7740    }
7741}
7742impl<Storage> __BindgenBitfieldUnit<Storage>
7743where
7744    Storage: AsRef<[u8]> + AsMut<[u8]>,
7745{
7746    #[inline]
7747    pub fn get_bit(&self, index: usize) -> bool {
7748        debug_assert!(index / 8 < self.storage.as_ref().len());
7749        let byte_index = index / 8;
7750        let byte = self.storage.as_ref()[byte_index];
7751        let bit_index = if cfg!(target_endian = "big") {
7752            7 - (index % 8)
7753        } else {
7754            index % 8
7755        };
7756        let mask = 1 << bit_index;
7757        byte & mask == mask
7758    }
7759
7760    #[inline]
7761    pub fn set_bit(&mut self, index: usize, val: bool) {
7762        debug_assert!(index / 8 < self.storage.as_ref().len());
7763        let byte_index = index / 8;
7764        let byte = &mut self.storage.as_mut()[byte_index];
7765        let bit_index = if cfg!(target_endian = "big") {
7766            7 - (index % 8)
7767        } else {
7768            index % 8
7769        };
7770        let mask = 1 << bit_index;
7771        if val {
7772            *byte |= mask;
7773        } else {
7774            *byte &= !mask;
7775        }
7776    }
7777
7778    #[inline]
7779    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
7780        debug_assert!(bit_width <= 64);
7781        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
7782        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
7783        let mut val = 0;
7784        for i in 0..(bit_width as usize) {
7785            if self.get_bit(i + bit_offset) {
7786                let index = if cfg!(target_endian = "big") {
7787                    bit_width as usize - 1 - i
7788                } else {
7789                    i
7790                };
7791                val |= 1 << index;
7792            }
7793        }
7794        val
7795    }
7796
7797    #[inline]
7798    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
7799        debug_assert!(bit_width <= 64);
7800        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
7801        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
7802        for i in 0..(bit_width as usize) {
7803            let mask = 1 << i;
7804            let val_bit_is_set = val & mask == mask;
7805            let index = if cfg!(target_endian = "big") {
7806                bit_width as usize - 1 - i
7807            } else {
7808                i
7809            };
7810            self.set_bit(index + bit_offset, val_bit_is_set);
7811        }
7812    }
7813}
7814impl _NV_ENC_LEVEL {
7815    pub const NV_ENC_LEVEL_HEVC_1: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_3;
7816}
7817impl _NV_ENC_LEVEL {
7818    pub const NV_ENC_LEVEL_HEVC_2: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_60;
7819}
7820impl _NV_ENC_LEVEL {
7821    pub const NV_ENC_TIER_HEVC_MAIN: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_AUTOSELECT;
7822}
7823impl _NV_ENC_LEVEL {
7824    pub const NV_ENC_LEVEL_AV1_2: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_AUTOSELECT;
7825}
7826impl _NV_ENC_LEVEL {
7827    pub const NV_ENC_LEVEL_AV1_21: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_TIER_HEVC_HIGH;
7828}
7829impl _NV_ENC_LEVEL {
7830    pub const NV_ENC_LEVEL_AV1_41: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_1b;
7831}
7832impl _NV_ENC_LEVEL {
7833    pub const NV_ENC_LEVEL_AV1_42: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_1;
7834}
7835impl _NV_ENC_LEVEL {
7836    pub const NV_ENC_LEVEL_AV1_43: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_11;
7837}
7838impl _NV_ENC_LEVEL {
7839    pub const NV_ENC_LEVEL_AV1_5: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_12;
7840}
7841impl _NV_ENC_LEVEL {
7842    pub const NV_ENC_LEVEL_AV1_51: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_13;
7843}
7844impl _NV_ENC_LEVEL {
7845    pub const NV_ENC_LEVEL_AV1_7: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_2;
7846}
7847impl _NV_ENC_LEVEL {
7848    pub const NV_ENC_LEVEL_AV1_71: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_21;
7849}
7850impl _NV_ENC_LEVEL {
7851    pub const NV_ENC_LEVEL_AV1_72: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_H264_22;
7852}
7853impl _NV_ENC_LEVEL {
7854    pub const NV_ENC_TIER_AV1_0: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_LEVEL_AUTOSELECT;
7855}
7856impl _NV_ENC_LEVEL {
7857    pub const NV_ENC_TIER_AV1_1: _NV_ENC_LEVEL = _NV_ENC_LEVEL::NV_ENC_TIER_HEVC_HIGH;
7858}
7859impl Default for _NV_ENC_CAPS_PARAM {
7860    fn default() -> Self {
7861        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
7862        unsafe {
7863            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7864            s.assume_init()
7865        }
7866    }
7867}
7868impl Default for _NV_ENC_RESTORE_ENCODER_STATE_PARAMS {
7869    fn default() -> Self {
7870        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
7871        unsafe {
7872            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7873            s.assume_init()
7874        }
7875    }
7876}
7877impl Default for _NV_ENC_ENCODE_OUT_PARAMS {
7878    fn default() -> Self {
7879        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
7880        unsafe {
7881            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7882            s.assume_init()
7883        }
7884    }
7885}
7886impl Default for _NV_ENC_LOOKAHEAD_PIC_PARAMS {
7887    fn default() -> Self {
7888        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
7889        unsafe {
7890            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7891            s.assume_init()
7892        }
7893    }
7894}
7895impl Default for _NV_ENC_CREATE_INPUT_BUFFER {
7896    fn default() -> Self {
7897        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
7898        unsafe {
7899            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7900            s.assume_init()
7901        }
7902    }
7903}
7904impl Default for _NV_ENC_CREATE_BITSTREAM_BUFFER {
7905    fn default() -> Self {
7906        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
7907        unsafe {
7908            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7909            s.assume_init()
7910        }
7911    }
7912}
7913impl Default for _NV_ENC_CREATE_MV_BUFFER {
7914    fn default() -> Self {
7915        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
7916        unsafe {
7917            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7918            s.assume_init()
7919        }
7920    }
7921}
7922impl Default for _NV_ENC_RC_PARAMS {
7923    fn default() -> Self {
7924        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
7925        unsafe {
7926            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
7927            s.assume_init()
7928        }
7929    }
7930}
7931impl _NV_ENC_RC_PARAMS {
7932    #[inline]
7933    pub fn enableMinQP(&self) -> u32 {
7934        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
7935    }
7936
7937    #[inline]
7938    pub fn set_enableMinQP(&mut self, val: u32) {
7939        unsafe {
7940            let val: u32 = ::core::mem::transmute(val);
7941            self._bitfield_1.set(0usize, 1u8, val as u64)
7942        }
7943    }
7944
7945    #[inline]
7946    pub fn enableMaxQP(&self) -> u32 {
7947        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
7948    }
7949
7950    #[inline]
7951    pub fn set_enableMaxQP(&mut self, val: u32) {
7952        unsafe {
7953            let val: u32 = ::core::mem::transmute(val);
7954            self._bitfield_1.set(1usize, 1u8, val as u64)
7955        }
7956    }
7957
7958    #[inline]
7959    pub fn enableInitialRCQP(&self) -> u32 {
7960        unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
7961    }
7962
7963    #[inline]
7964    pub fn set_enableInitialRCQP(&mut self, val: u32) {
7965        unsafe {
7966            let val: u32 = ::core::mem::transmute(val);
7967            self._bitfield_1.set(2usize, 1u8, val as u64)
7968        }
7969    }
7970
7971    #[inline]
7972    pub fn enableAQ(&self) -> u32 {
7973        unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
7974    }
7975
7976    #[inline]
7977    pub fn set_enableAQ(&mut self, val: u32) {
7978        unsafe {
7979            let val: u32 = ::core::mem::transmute(val);
7980            self._bitfield_1.set(3usize, 1u8, val as u64)
7981        }
7982    }
7983
7984    #[inline]
7985    pub fn reservedBitField1(&self) -> u32 {
7986        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
7987    }
7988
7989    #[inline]
7990    pub fn set_reservedBitField1(&mut self, val: u32) {
7991        unsafe {
7992            let val: u32 = ::core::mem::transmute(val);
7993            self._bitfield_1.set(4usize, 1u8, val as u64)
7994        }
7995    }
7996
7997    #[inline]
7998    pub fn enableLookahead(&self) -> u32 {
7999        unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
8000    }
8001
8002    #[inline]
8003    pub fn set_enableLookahead(&mut self, val: u32) {
8004        unsafe {
8005            let val: u32 = ::core::mem::transmute(val);
8006            self._bitfield_1.set(5usize, 1u8, val as u64)
8007        }
8008    }
8009
8010    #[inline]
8011    pub fn disableIadapt(&self) -> u32 {
8012        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
8013    }
8014
8015    #[inline]
8016    pub fn set_disableIadapt(&mut self, val: u32) {
8017        unsafe {
8018            let val: u32 = ::core::mem::transmute(val);
8019            self._bitfield_1.set(6usize, 1u8, val as u64)
8020        }
8021    }
8022
8023    #[inline]
8024    pub fn disableBadapt(&self) -> u32 {
8025        unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
8026    }
8027
8028    #[inline]
8029    pub fn set_disableBadapt(&mut self, val: u32) {
8030        unsafe {
8031            let val: u32 = ::core::mem::transmute(val);
8032            self._bitfield_1.set(7usize, 1u8, val as u64)
8033        }
8034    }
8035
8036    #[inline]
8037    pub fn enableTemporalAQ(&self) -> u32 {
8038        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
8039    }
8040
8041    #[inline]
8042    pub fn set_enableTemporalAQ(&mut self, val: u32) {
8043        unsafe {
8044            let val: u32 = ::core::mem::transmute(val);
8045            self._bitfield_1.set(8usize, 1u8, val as u64)
8046        }
8047    }
8048
8049    #[inline]
8050    pub fn zeroReorderDelay(&self) -> u32 {
8051        unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
8052    }
8053
8054    #[inline]
8055    pub fn set_zeroReorderDelay(&mut self, val: u32) {
8056        unsafe {
8057            let val: u32 = ::core::mem::transmute(val);
8058            self._bitfield_1.set(9usize, 1u8, val as u64)
8059        }
8060    }
8061
8062    #[inline]
8063    pub fn enableNonRefP(&self) -> u32 {
8064        unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
8065    }
8066
8067    #[inline]
8068    pub fn set_enableNonRefP(&mut self, val: u32) {
8069        unsafe {
8070            let val: u32 = ::core::mem::transmute(val);
8071            self._bitfield_1.set(10usize, 1u8, val as u64)
8072        }
8073    }
8074
8075    #[inline]
8076    pub fn strictGOPTarget(&self) -> u32 {
8077        unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
8078    }
8079
8080    #[inline]
8081    pub fn set_strictGOPTarget(&mut self, val: u32) {
8082        unsafe {
8083            let val: u32 = ::core::mem::transmute(val);
8084            self._bitfield_1.set(11usize, 1u8, val as u64)
8085        }
8086    }
8087
8088    #[inline]
8089    pub fn aqStrength(&self) -> u32 {
8090        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u32) }
8091    }
8092
8093    #[inline]
8094    pub fn set_aqStrength(&mut self, val: u32) {
8095        unsafe {
8096            let val: u32 = ::core::mem::transmute(val);
8097            self._bitfield_1.set(12usize, 4u8, val as u64)
8098        }
8099    }
8100
8101    #[inline]
8102    pub fn enableExtLookahead(&self) -> u32 {
8103        unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) }
8104    }
8105
8106    #[inline]
8107    pub fn set_enableExtLookahead(&mut self, val: u32) {
8108        unsafe {
8109            let val: u32 = ::core::mem::transmute(val);
8110            self._bitfield_1.set(16usize, 1u8, val as u64)
8111        }
8112    }
8113
8114    #[inline]
8115    pub fn reservedBitFields(&self) -> u32 {
8116        unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 15u8) as u32) }
8117    }
8118
8119    #[inline]
8120    pub fn set_reservedBitFields(&mut self, val: u32) {
8121        unsafe {
8122            let val: u32 = ::core::mem::transmute(val);
8123            self._bitfield_1.set(17usize, 15u8, val as u64)
8124        }
8125    }
8126
8127    #[inline]
8128    pub fn new_bitfield_1(
8129        enableMinQP: u32,
8130        enableMaxQP: u32,
8131        enableInitialRCQP: u32,
8132        enableAQ: u32,
8133        reservedBitField1: u32,
8134        enableLookahead: u32,
8135        disableIadapt: u32,
8136        disableBadapt: u32,
8137        enableTemporalAQ: u32,
8138        zeroReorderDelay: u32,
8139        enableNonRefP: u32,
8140        strictGOPTarget: u32,
8141        aqStrength: u32,
8142        enableExtLookahead: u32,
8143        reservedBitFields: u32,
8144    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
8145        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
8146        __bindgen_bitfield_unit.set(0usize, 1u8, {
8147            let enableMinQP: u32 = unsafe { ::core::mem::transmute(enableMinQP) };
8148            enableMinQP as u64
8149        });
8150        __bindgen_bitfield_unit.set(1usize, 1u8, {
8151            let enableMaxQP: u32 = unsafe { ::core::mem::transmute(enableMaxQP) };
8152            enableMaxQP as u64
8153        });
8154        __bindgen_bitfield_unit.set(2usize, 1u8, {
8155            let enableInitialRCQP: u32 = unsafe { ::core::mem::transmute(enableInitialRCQP) };
8156            enableInitialRCQP as u64
8157        });
8158        __bindgen_bitfield_unit.set(3usize, 1u8, {
8159            let enableAQ: u32 = unsafe { ::core::mem::transmute(enableAQ) };
8160            enableAQ as u64
8161        });
8162        __bindgen_bitfield_unit.set(4usize, 1u8, {
8163            let reservedBitField1: u32 = unsafe { ::core::mem::transmute(reservedBitField1) };
8164            reservedBitField1 as u64
8165        });
8166        __bindgen_bitfield_unit.set(5usize, 1u8, {
8167            let enableLookahead: u32 = unsafe { ::core::mem::transmute(enableLookahead) };
8168            enableLookahead as u64
8169        });
8170        __bindgen_bitfield_unit.set(6usize, 1u8, {
8171            let disableIadapt: u32 = unsafe { ::core::mem::transmute(disableIadapt) };
8172            disableIadapt as u64
8173        });
8174        __bindgen_bitfield_unit.set(7usize, 1u8, {
8175            let disableBadapt: u32 = unsafe { ::core::mem::transmute(disableBadapt) };
8176            disableBadapt as u64
8177        });
8178        __bindgen_bitfield_unit.set(8usize, 1u8, {
8179            let enableTemporalAQ: u32 = unsafe { ::core::mem::transmute(enableTemporalAQ) };
8180            enableTemporalAQ as u64
8181        });
8182        __bindgen_bitfield_unit.set(9usize, 1u8, {
8183            let zeroReorderDelay: u32 = unsafe { ::core::mem::transmute(zeroReorderDelay) };
8184            zeroReorderDelay as u64
8185        });
8186        __bindgen_bitfield_unit.set(10usize, 1u8, {
8187            let enableNonRefP: u32 = unsafe { ::core::mem::transmute(enableNonRefP) };
8188            enableNonRefP as u64
8189        });
8190        __bindgen_bitfield_unit.set(11usize, 1u8, {
8191            let strictGOPTarget: u32 = unsafe { ::core::mem::transmute(strictGOPTarget) };
8192            strictGOPTarget as u64
8193        });
8194        __bindgen_bitfield_unit.set(12usize, 4u8, {
8195            let aqStrength: u32 = unsafe { ::core::mem::transmute(aqStrength) };
8196            aqStrength as u64
8197        });
8198        __bindgen_bitfield_unit.set(16usize, 1u8, {
8199            let enableExtLookahead: u32 = unsafe { ::core::mem::transmute(enableExtLookahead) };
8200            enableExtLookahead as u64
8201        });
8202        __bindgen_bitfield_unit.set(17usize, 15u8, {
8203            let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) };
8204            reservedBitFields as u64
8205        });
8206        __bindgen_bitfield_unit
8207    }
8208}
8209impl _NV_ENC_CLOCK_TIMESTAMP_SET {
8210    #[inline]
8211    pub fn countingType(&self) -> u32 {
8212        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
8213    }
8214
8215    #[inline]
8216    pub fn set_countingType(&mut self, val: u32) {
8217        unsafe {
8218            let val: u32 = ::core::mem::transmute(val);
8219            self._bitfield_1.set(0usize, 1u8, val as u64)
8220        }
8221    }
8222
8223    #[inline]
8224    pub fn discontinuityFlag(&self) -> u32 {
8225        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
8226    }
8227
8228    #[inline]
8229    pub fn set_discontinuityFlag(&mut self, val: u32) {
8230        unsafe {
8231            let val: u32 = ::core::mem::transmute(val);
8232            self._bitfield_1.set(1usize, 1u8, val as u64)
8233        }
8234    }
8235
8236    #[inline]
8237    pub fn cntDroppedFrames(&self) -> u32 {
8238        unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
8239    }
8240
8241    #[inline]
8242    pub fn set_cntDroppedFrames(&mut self, val: u32) {
8243        unsafe {
8244            let val: u32 = ::core::mem::transmute(val);
8245            self._bitfield_1.set(2usize, 1u8, val as u64)
8246        }
8247    }
8248
8249    #[inline]
8250    pub fn nFrames(&self) -> u32 {
8251        unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 8u8) as u32) }
8252    }
8253
8254    #[inline]
8255    pub fn set_nFrames(&mut self, val: u32) {
8256        unsafe {
8257            let val: u32 = ::core::mem::transmute(val);
8258            self._bitfield_1.set(3usize, 8u8, val as u64)
8259        }
8260    }
8261
8262    #[inline]
8263    pub fn secondsValue(&self) -> u32 {
8264        unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 6u8) as u32) }
8265    }
8266
8267    #[inline]
8268    pub fn set_secondsValue(&mut self, val: u32) {
8269        unsafe {
8270            let val: u32 = ::core::mem::transmute(val);
8271            self._bitfield_1.set(11usize, 6u8, val as u64)
8272        }
8273    }
8274
8275    #[inline]
8276    pub fn minutesValue(&self) -> u32 {
8277        unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 6u8) as u32) }
8278    }
8279
8280    #[inline]
8281    pub fn set_minutesValue(&mut self, val: u32) {
8282        unsafe {
8283            let val: u32 = ::core::mem::transmute(val);
8284            self._bitfield_1.set(17usize, 6u8, val as u64)
8285        }
8286    }
8287
8288    #[inline]
8289    pub fn hoursValue(&self) -> u32 {
8290        unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 5u8) as u32) }
8291    }
8292
8293    #[inline]
8294    pub fn set_hoursValue(&mut self, val: u32) {
8295        unsafe {
8296            let val: u32 = ::core::mem::transmute(val);
8297            self._bitfield_1.set(23usize, 5u8, val as u64)
8298        }
8299    }
8300
8301    #[inline]
8302    pub fn reserved2(&self) -> u32 {
8303        unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 4u8) as u32) }
8304    }
8305
8306    #[inline]
8307    pub fn set_reserved2(&mut self, val: u32) {
8308        unsafe {
8309            let val: u32 = ::core::mem::transmute(val);
8310            self._bitfield_1.set(28usize, 4u8, val as u64)
8311        }
8312    }
8313
8314    #[inline]
8315    pub fn new_bitfield_1(
8316        countingType: u32,
8317        discontinuityFlag: u32,
8318        cntDroppedFrames: u32,
8319        nFrames: u32,
8320        secondsValue: u32,
8321        minutesValue: u32,
8322        hoursValue: u32,
8323        reserved2: u32,
8324    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
8325        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
8326        __bindgen_bitfield_unit.set(0usize, 1u8, {
8327            let countingType: u32 = unsafe { ::core::mem::transmute(countingType) };
8328            countingType as u64
8329        });
8330        __bindgen_bitfield_unit.set(1usize, 1u8, {
8331            let discontinuityFlag: u32 = unsafe { ::core::mem::transmute(discontinuityFlag) };
8332            discontinuityFlag as u64
8333        });
8334        __bindgen_bitfield_unit.set(2usize, 1u8, {
8335            let cntDroppedFrames: u32 = unsafe { ::core::mem::transmute(cntDroppedFrames) };
8336            cntDroppedFrames as u64
8337        });
8338        __bindgen_bitfield_unit.set(3usize, 8u8, {
8339            let nFrames: u32 = unsafe { ::core::mem::transmute(nFrames) };
8340            nFrames as u64
8341        });
8342        __bindgen_bitfield_unit.set(11usize, 6u8, {
8343            let secondsValue: u32 = unsafe { ::core::mem::transmute(secondsValue) };
8344            secondsValue as u64
8345        });
8346        __bindgen_bitfield_unit.set(17usize, 6u8, {
8347            let minutesValue: u32 = unsafe { ::core::mem::transmute(minutesValue) };
8348            minutesValue as u64
8349        });
8350        __bindgen_bitfield_unit.set(23usize, 5u8, {
8351            let hoursValue: u32 = unsafe { ::core::mem::transmute(hoursValue) };
8352            hoursValue as u64
8353        });
8354        __bindgen_bitfield_unit.set(28usize, 4u8, {
8355            let reserved2: u32 = unsafe { ::core::mem::transmute(reserved2) };
8356            reserved2 as u64
8357        });
8358        __bindgen_bitfield_unit
8359    }
8360}
8361impl Default for _NV_ENC_TIME_CODE {
8362    fn default() -> Self {
8363        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
8364        unsafe {
8365            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8366            s.assume_init()
8367        }
8368    }
8369}
8370impl Default for _NV_ENC_CONFIG_H264_VUI_PARAMETERS {
8371    fn default() -> Self {
8372        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
8373        unsafe {
8374            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8375            s.assume_init()
8376        }
8377    }
8378}
8379impl _NVENC_EXTERNAL_ME_HINT_COUNTS_PER_BLOCKTYPE {
8380    #[inline]
8381    pub fn numCandsPerBlk16x16(&self) -> u32 {
8382        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) }
8383    }
8384
8385    #[inline]
8386    pub fn set_numCandsPerBlk16x16(&mut self, val: u32) {
8387        unsafe {
8388            let val: u32 = ::core::mem::transmute(val);
8389            self._bitfield_1.set(0usize, 4u8, val as u64)
8390        }
8391    }
8392
8393    #[inline]
8394    pub fn numCandsPerBlk16x8(&self) -> u32 {
8395        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u32) }
8396    }
8397
8398    #[inline]
8399    pub fn set_numCandsPerBlk16x8(&mut self, val: u32) {
8400        unsafe {
8401            let val: u32 = ::core::mem::transmute(val);
8402            self._bitfield_1.set(4usize, 4u8, val as u64)
8403        }
8404    }
8405
8406    #[inline]
8407    pub fn numCandsPerBlk8x16(&self) -> u32 {
8408        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u32) }
8409    }
8410
8411    #[inline]
8412    pub fn set_numCandsPerBlk8x16(&mut self, val: u32) {
8413        unsafe {
8414            let val: u32 = ::core::mem::transmute(val);
8415            self._bitfield_1.set(8usize, 4u8, val as u64)
8416        }
8417    }
8418
8419    #[inline]
8420    pub fn numCandsPerBlk8x8(&self) -> u32 {
8421        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u32) }
8422    }
8423
8424    #[inline]
8425    pub fn set_numCandsPerBlk8x8(&mut self, val: u32) {
8426        unsafe {
8427            let val: u32 = ::core::mem::transmute(val);
8428            self._bitfield_1.set(12usize, 4u8, val as u64)
8429        }
8430    }
8431
8432    #[inline]
8433    pub fn numCandsPerSb(&self) -> u32 {
8434        unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 8u8) as u32) }
8435    }
8436
8437    #[inline]
8438    pub fn set_numCandsPerSb(&mut self, val: u32) {
8439        unsafe {
8440            let val: u32 = ::core::mem::transmute(val);
8441            self._bitfield_1.set(16usize, 8u8, val as u64)
8442        }
8443    }
8444
8445    #[inline]
8446    pub fn reserved(&self) -> u32 {
8447        unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) }
8448    }
8449
8450    #[inline]
8451    pub fn set_reserved(&mut self, val: u32) {
8452        unsafe {
8453            let val: u32 = ::core::mem::transmute(val);
8454            self._bitfield_1.set(24usize, 8u8, val as u64)
8455        }
8456    }
8457
8458    #[inline]
8459    pub fn new_bitfield_1(
8460        numCandsPerBlk16x16: u32,
8461        numCandsPerBlk16x8: u32,
8462        numCandsPerBlk8x16: u32,
8463        numCandsPerBlk8x8: u32,
8464        numCandsPerSb: u32,
8465        reserved: u32,
8466    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
8467        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
8468        __bindgen_bitfield_unit.set(0usize, 4u8, {
8469            let numCandsPerBlk16x16: u32 = unsafe { ::core::mem::transmute(numCandsPerBlk16x16) };
8470            numCandsPerBlk16x16 as u64
8471        });
8472        __bindgen_bitfield_unit.set(4usize, 4u8, {
8473            let numCandsPerBlk16x8: u32 = unsafe { ::core::mem::transmute(numCandsPerBlk16x8) };
8474            numCandsPerBlk16x8 as u64
8475        });
8476        __bindgen_bitfield_unit.set(8usize, 4u8, {
8477            let numCandsPerBlk8x16: u32 = unsafe { ::core::mem::transmute(numCandsPerBlk8x16) };
8478            numCandsPerBlk8x16 as u64
8479        });
8480        __bindgen_bitfield_unit.set(12usize, 4u8, {
8481            let numCandsPerBlk8x8: u32 = unsafe { ::core::mem::transmute(numCandsPerBlk8x8) };
8482            numCandsPerBlk8x8 as u64
8483        });
8484        __bindgen_bitfield_unit.set(16usize, 8u8, {
8485            let numCandsPerSb: u32 = unsafe { ::core::mem::transmute(numCandsPerSb) };
8486            numCandsPerSb as u64
8487        });
8488        __bindgen_bitfield_unit.set(24usize, 8u8, {
8489            let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
8490            reserved as u64
8491        });
8492        __bindgen_bitfield_unit
8493    }
8494}
8495impl _NVENC_EXTERNAL_ME_HINT {
8496    #[inline]
8497    pub fn mvx(&self) -> i32 {
8498        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 12u8) as u32) }
8499    }
8500
8501    #[inline]
8502    pub fn set_mvx(&mut self, val: i32) {
8503        unsafe {
8504            let val: u32 = ::core::mem::transmute(val);
8505            self._bitfield_1.set(0usize, 12u8, val as u64)
8506        }
8507    }
8508
8509    #[inline]
8510    pub fn mvy(&self) -> i32 {
8511        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 10u8) as u32) }
8512    }
8513
8514    #[inline]
8515    pub fn set_mvy(&mut self, val: i32) {
8516        unsafe {
8517            let val: u32 = ::core::mem::transmute(val);
8518            self._bitfield_1.set(12usize, 10u8, val as u64)
8519        }
8520    }
8521
8522    #[inline]
8523    pub fn refidx(&self) -> i32 {
8524        unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 5u8) as u32) }
8525    }
8526
8527    #[inline]
8528    pub fn set_refidx(&mut self, val: i32) {
8529        unsafe {
8530            let val: u32 = ::core::mem::transmute(val);
8531            self._bitfield_1.set(22usize, 5u8, val as u64)
8532        }
8533    }
8534
8535    #[inline]
8536    pub fn dir(&self) -> i32 {
8537        unsafe { ::core::mem::transmute(self._bitfield_1.get(27usize, 1u8) as u32) }
8538    }
8539
8540    #[inline]
8541    pub fn set_dir(&mut self, val: i32) {
8542        unsafe {
8543            let val: u32 = ::core::mem::transmute(val);
8544            self._bitfield_1.set(27usize, 1u8, val as u64)
8545        }
8546    }
8547
8548    #[inline]
8549    pub fn partType(&self) -> i32 {
8550        unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 2u8) as u32) }
8551    }
8552
8553    #[inline]
8554    pub fn set_partType(&mut self, val: i32) {
8555        unsafe {
8556            let val: u32 = ::core::mem::transmute(val);
8557            self._bitfield_1.set(28usize, 2u8, val as u64)
8558        }
8559    }
8560
8561    #[inline]
8562    pub fn lastofPart(&self) -> i32 {
8563        unsafe { ::core::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u32) }
8564    }
8565
8566    #[inline]
8567    pub fn set_lastofPart(&mut self, val: i32) {
8568        unsafe {
8569            let val: u32 = ::core::mem::transmute(val);
8570            self._bitfield_1.set(30usize, 1u8, val as u64)
8571        }
8572    }
8573
8574    #[inline]
8575    pub fn lastOfMB(&self) -> i32 {
8576        unsafe { ::core::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u32) }
8577    }
8578
8579    #[inline]
8580    pub fn set_lastOfMB(&mut self, val: i32) {
8581        unsafe {
8582            let val: u32 = ::core::mem::transmute(val);
8583            self._bitfield_1.set(31usize, 1u8, val as u64)
8584        }
8585    }
8586
8587    #[inline]
8588    pub fn new_bitfield_1(
8589        mvx: i32,
8590        mvy: i32,
8591        refidx: i32,
8592        dir: i32,
8593        partType: i32,
8594        lastofPart: i32,
8595        lastOfMB: i32,
8596    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
8597        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
8598        __bindgen_bitfield_unit.set(0usize, 12u8, {
8599            let mvx: u32 = unsafe { ::core::mem::transmute(mvx) };
8600            mvx as u64
8601        });
8602        __bindgen_bitfield_unit.set(12usize, 10u8, {
8603            let mvy: u32 = unsafe { ::core::mem::transmute(mvy) };
8604            mvy as u64
8605        });
8606        __bindgen_bitfield_unit.set(22usize, 5u8, {
8607            let refidx: u32 = unsafe { ::core::mem::transmute(refidx) };
8608            refidx as u64
8609        });
8610        __bindgen_bitfield_unit.set(27usize, 1u8, {
8611            let dir: u32 = unsafe { ::core::mem::transmute(dir) };
8612            dir as u64
8613        });
8614        __bindgen_bitfield_unit.set(28usize, 2u8, {
8615            let partType: u32 = unsafe { ::core::mem::transmute(partType) };
8616            partType as u64
8617        });
8618        __bindgen_bitfield_unit.set(30usize, 1u8, {
8619            let lastofPart: u32 = unsafe { ::core::mem::transmute(lastofPart) };
8620            lastofPart as u64
8621        });
8622        __bindgen_bitfield_unit.set(31usize, 1u8, {
8623            let lastOfMB: u32 = unsafe { ::core::mem::transmute(lastOfMB) };
8624            lastOfMB as u64
8625        });
8626        __bindgen_bitfield_unit
8627    }
8628}
8629impl _NVENC_EXTERNAL_ME_SB_HINT {
8630    #[inline]
8631    pub fn refidx(&self) -> i16 {
8632        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u16) }
8633    }
8634
8635    #[inline]
8636    pub fn set_refidx(&mut self, val: i16) {
8637        unsafe {
8638            let val: u16 = ::core::mem::transmute(val);
8639            self._bitfield_1.set(0usize, 5u8, val as u64)
8640        }
8641    }
8642
8643    #[inline]
8644    pub fn direction(&self) -> i16 {
8645        unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u16) }
8646    }
8647
8648    #[inline]
8649    pub fn set_direction(&mut self, val: i16) {
8650        unsafe {
8651            let val: u16 = ::core::mem::transmute(val);
8652            self._bitfield_1.set(5usize, 1u8, val as u64)
8653        }
8654    }
8655
8656    #[inline]
8657    pub fn bi(&self) -> i16 {
8658        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u16) }
8659    }
8660
8661    #[inline]
8662    pub fn set_bi(&mut self, val: i16) {
8663        unsafe {
8664            let val: u16 = ::core::mem::transmute(val);
8665            self._bitfield_1.set(6usize, 1u8, val as u64)
8666        }
8667    }
8668
8669    #[inline]
8670    pub fn partition_type(&self) -> i16 {
8671        unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 3u8) as u16) }
8672    }
8673
8674    #[inline]
8675    pub fn set_partition_type(&mut self, val: i16) {
8676        unsafe {
8677            let val: u16 = ::core::mem::transmute(val);
8678            self._bitfield_1.set(7usize, 3u8, val as u64)
8679        }
8680    }
8681
8682    #[inline]
8683    pub fn x8(&self) -> i16 {
8684        unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 3u8) as u16) }
8685    }
8686
8687    #[inline]
8688    pub fn set_x8(&mut self, val: i16) {
8689        unsafe {
8690            let val: u16 = ::core::mem::transmute(val);
8691            self._bitfield_1.set(10usize, 3u8, val as u64)
8692        }
8693    }
8694
8695    #[inline]
8696    pub fn last_of_cu(&self) -> i16 {
8697        unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
8698    }
8699
8700    #[inline]
8701    pub fn set_last_of_cu(&mut self, val: i16) {
8702        unsafe {
8703            let val: u16 = ::core::mem::transmute(val);
8704            self._bitfield_1.set(13usize, 1u8, val as u64)
8705        }
8706    }
8707
8708    #[inline]
8709    pub fn last_of_sb(&self) -> i16 {
8710        unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
8711    }
8712
8713    #[inline]
8714    pub fn set_last_of_sb(&mut self, val: i16) {
8715        unsafe {
8716            let val: u16 = ::core::mem::transmute(val);
8717            self._bitfield_1.set(14usize, 1u8, val as u64)
8718        }
8719    }
8720
8721    #[inline]
8722    pub fn reserved0(&self) -> i16 {
8723        unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
8724    }
8725
8726    #[inline]
8727    pub fn set_reserved0(&mut self, val: i16) {
8728        unsafe {
8729            let val: u16 = ::core::mem::transmute(val);
8730            self._bitfield_1.set(15usize, 1u8, val as u64)
8731        }
8732    }
8733
8734    #[inline]
8735    pub fn mvx(&self) -> i16 {
8736        unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 14u8) as u16) }
8737    }
8738
8739    #[inline]
8740    pub fn set_mvx(&mut self, val: i16) {
8741        unsafe {
8742            let val: u16 = ::core::mem::transmute(val);
8743            self._bitfield_1.set(16usize, 14u8, val as u64)
8744        }
8745    }
8746
8747    #[inline]
8748    pub fn cu_size(&self) -> i16 {
8749        unsafe { ::core::mem::transmute(self._bitfield_1.get(30usize, 2u8) as u16) }
8750    }
8751
8752    #[inline]
8753    pub fn set_cu_size(&mut self, val: i16) {
8754        unsafe {
8755            let val: u16 = ::core::mem::transmute(val);
8756            self._bitfield_1.set(30usize, 2u8, val as u64)
8757        }
8758    }
8759
8760    #[inline]
8761    pub fn mvy(&self) -> i16 {
8762        unsafe { ::core::mem::transmute(self._bitfield_1.get(32usize, 12u8) as u16) }
8763    }
8764
8765    #[inline]
8766    pub fn set_mvy(&mut self, val: i16) {
8767        unsafe {
8768            let val: u16 = ::core::mem::transmute(val);
8769            self._bitfield_1.set(32usize, 12u8, val as u64)
8770        }
8771    }
8772
8773    #[inline]
8774    pub fn y8(&self) -> i16 {
8775        unsafe { ::core::mem::transmute(self._bitfield_1.get(44usize, 3u8) as u16) }
8776    }
8777
8778    #[inline]
8779    pub fn set_y8(&mut self, val: i16) {
8780        unsafe {
8781            let val: u16 = ::core::mem::transmute(val);
8782            self._bitfield_1.set(44usize, 3u8, val as u64)
8783        }
8784    }
8785
8786    #[inline]
8787    pub fn reserved1(&self) -> i16 {
8788        unsafe { ::core::mem::transmute(self._bitfield_1.get(47usize, 1u8) as u16) }
8789    }
8790
8791    #[inline]
8792    pub fn set_reserved1(&mut self, val: i16) {
8793        unsafe {
8794            let val: u16 = ::core::mem::transmute(val);
8795            self._bitfield_1.set(47usize, 1u8, val as u64)
8796        }
8797    }
8798
8799    #[inline]
8800    pub fn new_bitfield_1(
8801        refidx: i16,
8802        direction: i16,
8803        bi: i16,
8804        partition_type: i16,
8805        x8: i16,
8806        last_of_cu: i16,
8807        last_of_sb: i16,
8808        reserved0: i16,
8809        mvx: i16,
8810        cu_size: i16,
8811        mvy: i16,
8812        y8: i16,
8813        reserved1: i16,
8814    ) -> __BindgenBitfieldUnit<[u8; 6usize]> {
8815        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 6usize]> = Default::default();
8816        __bindgen_bitfield_unit.set(0usize, 5u8, {
8817            let refidx: u16 = unsafe { ::core::mem::transmute(refidx) };
8818            refidx as u64
8819        });
8820        __bindgen_bitfield_unit.set(5usize, 1u8, {
8821            let direction: u16 = unsafe { ::core::mem::transmute(direction) };
8822            direction as u64
8823        });
8824        __bindgen_bitfield_unit.set(6usize, 1u8, {
8825            let bi: u16 = unsafe { ::core::mem::transmute(bi) };
8826            bi as u64
8827        });
8828        __bindgen_bitfield_unit.set(7usize, 3u8, {
8829            let partition_type: u16 = unsafe { ::core::mem::transmute(partition_type) };
8830            partition_type as u64
8831        });
8832        __bindgen_bitfield_unit.set(10usize, 3u8, {
8833            let x8: u16 = unsafe { ::core::mem::transmute(x8) };
8834            x8 as u64
8835        });
8836        __bindgen_bitfield_unit.set(13usize, 1u8, {
8837            let last_of_cu: u16 = unsafe { ::core::mem::transmute(last_of_cu) };
8838            last_of_cu as u64
8839        });
8840        __bindgen_bitfield_unit.set(14usize, 1u8, {
8841            let last_of_sb: u16 = unsafe { ::core::mem::transmute(last_of_sb) };
8842            last_of_sb as u64
8843        });
8844        __bindgen_bitfield_unit.set(15usize, 1u8, {
8845            let reserved0: u16 = unsafe { ::core::mem::transmute(reserved0) };
8846            reserved0 as u64
8847        });
8848        __bindgen_bitfield_unit.set(16usize, 14u8, {
8849            let mvx: u16 = unsafe { ::core::mem::transmute(mvx) };
8850            mvx as u64
8851        });
8852        __bindgen_bitfield_unit.set(30usize, 2u8, {
8853            let cu_size: u16 = unsafe { ::core::mem::transmute(cu_size) };
8854            cu_size as u64
8855        });
8856        __bindgen_bitfield_unit.set(32usize, 12u8, {
8857            let mvy: u16 = unsafe { ::core::mem::transmute(mvy) };
8858            mvy as u64
8859        });
8860        __bindgen_bitfield_unit.set(44usize, 3u8, {
8861            let y8: u16 = unsafe { ::core::mem::transmute(y8) };
8862            y8 as u64
8863        });
8864        __bindgen_bitfield_unit.set(47usize, 1u8, {
8865            let reserved1: u16 = unsafe { ::core::mem::transmute(reserved1) };
8866            reserved1 as u64
8867        });
8868        __bindgen_bitfield_unit
8869    }
8870}
8871impl Default for _NV_ENC_CONFIG_H264 {
8872    fn default() -> Self {
8873        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
8874        unsafe {
8875            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8876            s.assume_init()
8877        }
8878    }
8879}
8880impl _NV_ENC_CONFIG_H264 {
8881    #[inline]
8882    pub fn enableTemporalSVC(&self) -> u32 {
8883        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
8884    }
8885
8886    #[inline]
8887    pub fn set_enableTemporalSVC(&mut self, val: u32) {
8888        unsafe {
8889            let val: u32 = ::core::mem::transmute(val);
8890            self._bitfield_1.set(0usize, 1u8, val as u64)
8891        }
8892    }
8893
8894    #[inline]
8895    pub fn enableStereoMVC(&self) -> u32 {
8896        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
8897    }
8898
8899    #[inline]
8900    pub fn set_enableStereoMVC(&mut self, val: u32) {
8901        unsafe {
8902            let val: u32 = ::core::mem::transmute(val);
8903            self._bitfield_1.set(1usize, 1u8, val as u64)
8904        }
8905    }
8906
8907    #[inline]
8908    pub fn hierarchicalPFrames(&self) -> u32 {
8909        unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
8910    }
8911
8912    #[inline]
8913    pub fn set_hierarchicalPFrames(&mut self, val: u32) {
8914        unsafe {
8915            let val: u32 = ::core::mem::transmute(val);
8916            self._bitfield_1.set(2usize, 1u8, val as u64)
8917        }
8918    }
8919
8920    #[inline]
8921    pub fn hierarchicalBFrames(&self) -> u32 {
8922        unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
8923    }
8924
8925    #[inline]
8926    pub fn set_hierarchicalBFrames(&mut self, val: u32) {
8927        unsafe {
8928            let val: u32 = ::core::mem::transmute(val);
8929            self._bitfield_1.set(3usize, 1u8, val as u64)
8930        }
8931    }
8932
8933    #[inline]
8934    pub fn outputBufferingPeriodSEI(&self) -> u32 {
8935        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
8936    }
8937
8938    #[inline]
8939    pub fn set_outputBufferingPeriodSEI(&mut self, val: u32) {
8940        unsafe {
8941            let val: u32 = ::core::mem::transmute(val);
8942            self._bitfield_1.set(4usize, 1u8, val as u64)
8943        }
8944    }
8945
8946    #[inline]
8947    pub fn outputPictureTimingSEI(&self) -> u32 {
8948        unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
8949    }
8950
8951    #[inline]
8952    pub fn set_outputPictureTimingSEI(&mut self, val: u32) {
8953        unsafe {
8954            let val: u32 = ::core::mem::transmute(val);
8955            self._bitfield_1.set(5usize, 1u8, val as u64)
8956        }
8957    }
8958
8959    #[inline]
8960    pub fn outputAUD(&self) -> u32 {
8961        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
8962    }
8963
8964    #[inline]
8965    pub fn set_outputAUD(&mut self, val: u32) {
8966        unsafe {
8967            let val: u32 = ::core::mem::transmute(val);
8968            self._bitfield_1.set(6usize, 1u8, val as u64)
8969        }
8970    }
8971
8972    #[inline]
8973    pub fn disableSPSPPS(&self) -> u32 {
8974        unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
8975    }
8976
8977    #[inline]
8978    pub fn set_disableSPSPPS(&mut self, val: u32) {
8979        unsafe {
8980            let val: u32 = ::core::mem::transmute(val);
8981            self._bitfield_1.set(7usize, 1u8, val as u64)
8982        }
8983    }
8984
8985    #[inline]
8986    pub fn outputFramePackingSEI(&self) -> u32 {
8987        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
8988    }
8989
8990    #[inline]
8991    pub fn set_outputFramePackingSEI(&mut self, val: u32) {
8992        unsafe {
8993            let val: u32 = ::core::mem::transmute(val);
8994            self._bitfield_1.set(8usize, 1u8, val as u64)
8995        }
8996    }
8997
8998    #[inline]
8999    pub fn outputRecoveryPointSEI(&self) -> u32 {
9000        unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
9001    }
9002
9003    #[inline]
9004    pub fn set_outputRecoveryPointSEI(&mut self, val: u32) {
9005        unsafe {
9006            let val: u32 = ::core::mem::transmute(val);
9007            self._bitfield_1.set(9usize, 1u8, val as u64)
9008        }
9009    }
9010
9011    #[inline]
9012    pub fn enableIntraRefresh(&self) -> u32 {
9013        unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
9014    }
9015
9016    #[inline]
9017    pub fn set_enableIntraRefresh(&mut self, val: u32) {
9018        unsafe {
9019            let val: u32 = ::core::mem::transmute(val);
9020            self._bitfield_1.set(10usize, 1u8, val as u64)
9021        }
9022    }
9023
9024    #[inline]
9025    pub fn enableConstrainedEncoding(&self) -> u32 {
9026        unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
9027    }
9028
9029    #[inline]
9030    pub fn set_enableConstrainedEncoding(&mut self, val: u32) {
9031        unsafe {
9032            let val: u32 = ::core::mem::transmute(val);
9033            self._bitfield_1.set(11usize, 1u8, val as u64)
9034        }
9035    }
9036
9037    #[inline]
9038    pub fn repeatSPSPPS(&self) -> u32 {
9039        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
9040    }
9041
9042    #[inline]
9043    pub fn set_repeatSPSPPS(&mut self, val: u32) {
9044        unsafe {
9045            let val: u32 = ::core::mem::transmute(val);
9046            self._bitfield_1.set(12usize, 1u8, val as u64)
9047        }
9048    }
9049
9050    #[inline]
9051    pub fn enableVFR(&self) -> u32 {
9052        unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
9053    }
9054
9055    #[inline]
9056    pub fn set_enableVFR(&mut self, val: u32) {
9057        unsafe {
9058            let val: u32 = ::core::mem::transmute(val);
9059            self._bitfield_1.set(13usize, 1u8, val as u64)
9060        }
9061    }
9062
9063    #[inline]
9064    pub fn enableLTR(&self) -> u32 {
9065        unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) }
9066    }
9067
9068    #[inline]
9069    pub fn set_enableLTR(&mut self, val: u32) {
9070        unsafe {
9071            let val: u32 = ::core::mem::transmute(val);
9072            self._bitfield_1.set(14usize, 1u8, val as u64)
9073        }
9074    }
9075
9076    #[inline]
9077    pub fn qpPrimeYZeroTransformBypassFlag(&self) -> u32 {
9078        unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
9079    }
9080
9081    #[inline]
9082    pub fn set_qpPrimeYZeroTransformBypassFlag(&mut self, val: u32) {
9083        unsafe {
9084            let val: u32 = ::core::mem::transmute(val);
9085            self._bitfield_1.set(15usize, 1u8, val as u64)
9086        }
9087    }
9088
9089    #[inline]
9090    pub fn useConstrainedIntraPred(&self) -> u32 {
9091        unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) }
9092    }
9093
9094    #[inline]
9095    pub fn set_useConstrainedIntraPred(&mut self, val: u32) {
9096        unsafe {
9097            let val: u32 = ::core::mem::transmute(val);
9098            self._bitfield_1.set(16usize, 1u8, val as u64)
9099        }
9100    }
9101
9102    #[inline]
9103    pub fn enableFillerDataInsertion(&self) -> u32 {
9104        unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) }
9105    }
9106
9107    #[inline]
9108    pub fn set_enableFillerDataInsertion(&mut self, val: u32) {
9109        unsafe {
9110            let val: u32 = ::core::mem::transmute(val);
9111            self._bitfield_1.set(17usize, 1u8, val as u64)
9112        }
9113    }
9114
9115    #[inline]
9116    pub fn disableSVCPrefixNalu(&self) -> u32 {
9117        unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) }
9118    }
9119
9120    #[inline]
9121    pub fn set_disableSVCPrefixNalu(&mut self, val: u32) {
9122        unsafe {
9123            let val: u32 = ::core::mem::transmute(val);
9124            self._bitfield_1.set(18usize, 1u8, val as u64)
9125        }
9126    }
9127
9128    #[inline]
9129    pub fn enableScalabilityInfoSEI(&self) -> u32 {
9130        unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) }
9131    }
9132
9133    #[inline]
9134    pub fn set_enableScalabilityInfoSEI(&mut self, val: u32) {
9135        unsafe {
9136            let val: u32 = ::core::mem::transmute(val);
9137            self._bitfield_1.set(19usize, 1u8, val as u64)
9138        }
9139    }
9140
9141    #[inline]
9142    pub fn singleSliceIntraRefresh(&self) -> u32 {
9143        unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) }
9144    }
9145
9146    #[inline]
9147    pub fn set_singleSliceIntraRefresh(&mut self, val: u32) {
9148        unsafe {
9149            let val: u32 = ::core::mem::transmute(val);
9150            self._bitfield_1.set(20usize, 1u8, val as u64)
9151        }
9152    }
9153
9154    #[inline]
9155    pub fn enableTimeCode(&self) -> u32 {
9156        unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) }
9157    }
9158
9159    #[inline]
9160    pub fn set_enableTimeCode(&mut self, val: u32) {
9161        unsafe {
9162            let val: u32 = ::core::mem::transmute(val);
9163            self._bitfield_1.set(21usize, 1u8, val as u64)
9164        }
9165    }
9166
9167    #[inline]
9168    pub fn reservedBitFields(&self) -> u32 {
9169        unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 10u8) as u32) }
9170    }
9171
9172    #[inline]
9173    pub fn set_reservedBitFields(&mut self, val: u32) {
9174        unsafe {
9175            let val: u32 = ::core::mem::transmute(val);
9176            self._bitfield_1.set(22usize, 10u8, val as u64)
9177        }
9178    }
9179
9180    #[inline]
9181    pub fn new_bitfield_1(
9182        enableTemporalSVC: u32,
9183        enableStereoMVC: u32,
9184        hierarchicalPFrames: u32,
9185        hierarchicalBFrames: u32,
9186        outputBufferingPeriodSEI: u32,
9187        outputPictureTimingSEI: u32,
9188        outputAUD: u32,
9189        disableSPSPPS: u32,
9190        outputFramePackingSEI: u32,
9191        outputRecoveryPointSEI: u32,
9192        enableIntraRefresh: u32,
9193        enableConstrainedEncoding: u32,
9194        repeatSPSPPS: u32,
9195        enableVFR: u32,
9196        enableLTR: u32,
9197        qpPrimeYZeroTransformBypassFlag: u32,
9198        useConstrainedIntraPred: u32,
9199        enableFillerDataInsertion: u32,
9200        disableSVCPrefixNalu: u32,
9201        enableScalabilityInfoSEI: u32,
9202        singleSliceIntraRefresh: u32,
9203        enableTimeCode: u32,
9204        reservedBitFields: u32,
9205    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
9206        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
9207        __bindgen_bitfield_unit.set(0usize, 1u8, {
9208            let enableTemporalSVC: u32 = unsafe { ::core::mem::transmute(enableTemporalSVC) };
9209            enableTemporalSVC as u64
9210        });
9211        __bindgen_bitfield_unit.set(1usize, 1u8, {
9212            let enableStereoMVC: u32 = unsafe { ::core::mem::transmute(enableStereoMVC) };
9213            enableStereoMVC as u64
9214        });
9215        __bindgen_bitfield_unit.set(2usize, 1u8, {
9216            let hierarchicalPFrames: u32 = unsafe { ::core::mem::transmute(hierarchicalPFrames) };
9217            hierarchicalPFrames as u64
9218        });
9219        __bindgen_bitfield_unit.set(3usize, 1u8, {
9220            let hierarchicalBFrames: u32 = unsafe { ::core::mem::transmute(hierarchicalBFrames) };
9221            hierarchicalBFrames as u64
9222        });
9223        __bindgen_bitfield_unit.set(4usize, 1u8, {
9224            let outputBufferingPeriodSEI: u32 =
9225                unsafe { ::core::mem::transmute(outputBufferingPeriodSEI) };
9226            outputBufferingPeriodSEI as u64
9227        });
9228        __bindgen_bitfield_unit.set(5usize, 1u8, {
9229            let outputPictureTimingSEI: u32 =
9230                unsafe { ::core::mem::transmute(outputPictureTimingSEI) };
9231            outputPictureTimingSEI as u64
9232        });
9233        __bindgen_bitfield_unit.set(6usize, 1u8, {
9234            let outputAUD: u32 = unsafe { ::core::mem::transmute(outputAUD) };
9235            outputAUD as u64
9236        });
9237        __bindgen_bitfield_unit.set(7usize, 1u8, {
9238            let disableSPSPPS: u32 = unsafe { ::core::mem::transmute(disableSPSPPS) };
9239            disableSPSPPS as u64
9240        });
9241        __bindgen_bitfield_unit.set(8usize, 1u8, {
9242            let outputFramePackingSEI: u32 =
9243                unsafe { ::core::mem::transmute(outputFramePackingSEI) };
9244            outputFramePackingSEI as u64
9245        });
9246        __bindgen_bitfield_unit.set(9usize, 1u8, {
9247            let outputRecoveryPointSEI: u32 =
9248                unsafe { ::core::mem::transmute(outputRecoveryPointSEI) };
9249            outputRecoveryPointSEI as u64
9250        });
9251        __bindgen_bitfield_unit.set(10usize, 1u8, {
9252            let enableIntraRefresh: u32 = unsafe { ::core::mem::transmute(enableIntraRefresh) };
9253            enableIntraRefresh as u64
9254        });
9255        __bindgen_bitfield_unit.set(11usize, 1u8, {
9256            let enableConstrainedEncoding: u32 =
9257                unsafe { ::core::mem::transmute(enableConstrainedEncoding) };
9258            enableConstrainedEncoding as u64
9259        });
9260        __bindgen_bitfield_unit.set(12usize, 1u8, {
9261            let repeatSPSPPS: u32 = unsafe { ::core::mem::transmute(repeatSPSPPS) };
9262            repeatSPSPPS as u64
9263        });
9264        __bindgen_bitfield_unit.set(13usize, 1u8, {
9265            let enableVFR: u32 = unsafe { ::core::mem::transmute(enableVFR) };
9266            enableVFR as u64
9267        });
9268        __bindgen_bitfield_unit.set(14usize, 1u8, {
9269            let enableLTR: u32 = unsafe { ::core::mem::transmute(enableLTR) };
9270            enableLTR as u64
9271        });
9272        __bindgen_bitfield_unit.set(15usize, 1u8, {
9273            let qpPrimeYZeroTransformBypassFlag: u32 =
9274                unsafe { ::core::mem::transmute(qpPrimeYZeroTransformBypassFlag) };
9275            qpPrimeYZeroTransformBypassFlag as u64
9276        });
9277        __bindgen_bitfield_unit.set(16usize, 1u8, {
9278            let useConstrainedIntraPred: u32 =
9279                unsafe { ::core::mem::transmute(useConstrainedIntraPred) };
9280            useConstrainedIntraPred as u64
9281        });
9282        __bindgen_bitfield_unit.set(17usize, 1u8, {
9283            let enableFillerDataInsertion: u32 =
9284                unsafe { ::core::mem::transmute(enableFillerDataInsertion) };
9285            enableFillerDataInsertion as u64
9286        });
9287        __bindgen_bitfield_unit.set(18usize, 1u8, {
9288            let disableSVCPrefixNalu: u32 = unsafe { ::core::mem::transmute(disableSVCPrefixNalu) };
9289            disableSVCPrefixNalu as u64
9290        });
9291        __bindgen_bitfield_unit.set(19usize, 1u8, {
9292            let enableScalabilityInfoSEI: u32 =
9293                unsafe { ::core::mem::transmute(enableScalabilityInfoSEI) };
9294            enableScalabilityInfoSEI as u64
9295        });
9296        __bindgen_bitfield_unit.set(20usize, 1u8, {
9297            let singleSliceIntraRefresh: u32 =
9298                unsafe { ::core::mem::transmute(singleSliceIntraRefresh) };
9299            singleSliceIntraRefresh as u64
9300        });
9301        __bindgen_bitfield_unit.set(21usize, 1u8, {
9302            let enableTimeCode: u32 = unsafe { ::core::mem::transmute(enableTimeCode) };
9303            enableTimeCode as u64
9304        });
9305        __bindgen_bitfield_unit.set(22usize, 10u8, {
9306            let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) };
9307            reservedBitFields as u64
9308        });
9309        __bindgen_bitfield_unit
9310    }
9311}
9312impl Default for _NV_ENC_CONFIG_HEVC {
9313    fn default() -> Self {
9314        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
9315        unsafe {
9316            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9317            s.assume_init()
9318        }
9319    }
9320}
9321impl _NV_ENC_CONFIG_HEVC {
9322    #[inline]
9323    pub fn useConstrainedIntraPred(&self) -> u32 {
9324        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
9325    }
9326
9327    #[inline]
9328    pub fn set_useConstrainedIntraPred(&mut self, val: u32) {
9329        unsafe {
9330            let val: u32 = ::core::mem::transmute(val);
9331            self._bitfield_1.set(0usize, 1u8, val as u64)
9332        }
9333    }
9334
9335    #[inline]
9336    pub fn disableDeblockAcrossSliceBoundary(&self) -> u32 {
9337        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
9338    }
9339
9340    #[inline]
9341    pub fn set_disableDeblockAcrossSliceBoundary(&mut self, val: u32) {
9342        unsafe {
9343            let val: u32 = ::core::mem::transmute(val);
9344            self._bitfield_1.set(1usize, 1u8, val as u64)
9345        }
9346    }
9347
9348    #[inline]
9349    pub fn outputBufferingPeriodSEI(&self) -> u32 {
9350        unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
9351    }
9352
9353    #[inline]
9354    pub fn set_outputBufferingPeriodSEI(&mut self, val: u32) {
9355        unsafe {
9356            let val: u32 = ::core::mem::transmute(val);
9357            self._bitfield_1.set(2usize, 1u8, val as u64)
9358        }
9359    }
9360
9361    #[inline]
9362    pub fn outputPictureTimingSEI(&self) -> u32 {
9363        unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
9364    }
9365
9366    #[inline]
9367    pub fn set_outputPictureTimingSEI(&mut self, val: u32) {
9368        unsafe {
9369            let val: u32 = ::core::mem::transmute(val);
9370            self._bitfield_1.set(3usize, 1u8, val as u64)
9371        }
9372    }
9373
9374    #[inline]
9375    pub fn outputAUD(&self) -> u32 {
9376        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
9377    }
9378
9379    #[inline]
9380    pub fn set_outputAUD(&mut self, val: u32) {
9381        unsafe {
9382            let val: u32 = ::core::mem::transmute(val);
9383            self._bitfield_1.set(4usize, 1u8, val as u64)
9384        }
9385    }
9386
9387    #[inline]
9388    pub fn enableLTR(&self) -> u32 {
9389        unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
9390    }
9391
9392    #[inline]
9393    pub fn set_enableLTR(&mut self, val: u32) {
9394        unsafe {
9395            let val: u32 = ::core::mem::transmute(val);
9396            self._bitfield_1.set(5usize, 1u8, val as u64)
9397        }
9398    }
9399
9400    #[inline]
9401    pub fn disableSPSPPS(&self) -> u32 {
9402        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
9403    }
9404
9405    #[inline]
9406    pub fn set_disableSPSPPS(&mut self, val: u32) {
9407        unsafe {
9408            let val: u32 = ::core::mem::transmute(val);
9409            self._bitfield_1.set(6usize, 1u8, val as u64)
9410        }
9411    }
9412
9413    #[inline]
9414    pub fn repeatSPSPPS(&self) -> u32 {
9415        unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
9416    }
9417
9418    #[inline]
9419    pub fn set_repeatSPSPPS(&mut self, val: u32) {
9420        unsafe {
9421            let val: u32 = ::core::mem::transmute(val);
9422            self._bitfield_1.set(7usize, 1u8, val as u64)
9423        }
9424    }
9425
9426    #[inline]
9427    pub fn enableIntraRefresh(&self) -> u32 {
9428        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
9429    }
9430
9431    #[inline]
9432    pub fn set_enableIntraRefresh(&mut self, val: u32) {
9433        unsafe {
9434            let val: u32 = ::core::mem::transmute(val);
9435            self._bitfield_1.set(8usize, 1u8, val as u64)
9436        }
9437    }
9438
9439    #[inline]
9440    pub fn chromaFormatIDC(&self) -> u32 {
9441        unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u32) }
9442    }
9443
9444    #[inline]
9445    pub fn set_chromaFormatIDC(&mut self, val: u32) {
9446        unsafe {
9447            let val: u32 = ::core::mem::transmute(val);
9448            self._bitfield_1.set(9usize, 2u8, val as u64)
9449        }
9450    }
9451
9452    #[inline]
9453    pub fn pixelBitDepthMinus8(&self) -> u32 {
9454        unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 3u8) as u32) }
9455    }
9456
9457    #[inline]
9458    pub fn set_pixelBitDepthMinus8(&mut self, val: u32) {
9459        unsafe {
9460            let val: u32 = ::core::mem::transmute(val);
9461            self._bitfield_1.set(11usize, 3u8, val as u64)
9462        }
9463    }
9464
9465    #[inline]
9466    pub fn enableFillerDataInsertion(&self) -> u32 {
9467        unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) }
9468    }
9469
9470    #[inline]
9471    pub fn set_enableFillerDataInsertion(&mut self, val: u32) {
9472        unsafe {
9473            let val: u32 = ::core::mem::transmute(val);
9474            self._bitfield_1.set(14usize, 1u8, val as u64)
9475        }
9476    }
9477
9478    #[inline]
9479    pub fn enableConstrainedEncoding(&self) -> u32 {
9480        unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
9481    }
9482
9483    #[inline]
9484    pub fn set_enableConstrainedEncoding(&mut self, val: u32) {
9485        unsafe {
9486            let val: u32 = ::core::mem::transmute(val);
9487            self._bitfield_1.set(15usize, 1u8, val as u64)
9488        }
9489    }
9490
9491    #[inline]
9492    pub fn enableAlphaLayerEncoding(&self) -> u32 {
9493        unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) }
9494    }
9495
9496    #[inline]
9497    pub fn set_enableAlphaLayerEncoding(&mut self, val: u32) {
9498        unsafe {
9499            let val: u32 = ::core::mem::transmute(val);
9500            self._bitfield_1.set(16usize, 1u8, val as u64)
9501        }
9502    }
9503
9504    #[inline]
9505    pub fn singleSliceIntraRefresh(&self) -> u32 {
9506        unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) }
9507    }
9508
9509    #[inline]
9510    pub fn set_singleSliceIntraRefresh(&mut self, val: u32) {
9511        unsafe {
9512            let val: u32 = ::core::mem::transmute(val);
9513            self._bitfield_1.set(17usize, 1u8, val as u64)
9514        }
9515    }
9516
9517    #[inline]
9518    pub fn outputRecoveryPointSEI(&self) -> u32 {
9519        unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) }
9520    }
9521
9522    #[inline]
9523    pub fn set_outputRecoveryPointSEI(&mut self, val: u32) {
9524        unsafe {
9525            let val: u32 = ::core::mem::transmute(val);
9526            self._bitfield_1.set(18usize, 1u8, val as u64)
9527        }
9528    }
9529
9530    #[inline]
9531    pub fn outputTimeCodeSEI(&self) -> u32 {
9532        unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) }
9533    }
9534
9535    #[inline]
9536    pub fn set_outputTimeCodeSEI(&mut self, val: u32) {
9537        unsafe {
9538            let val: u32 = ::core::mem::transmute(val);
9539            self._bitfield_1.set(19usize, 1u8, val as u64)
9540        }
9541    }
9542
9543    #[inline]
9544    pub fn reserved(&self) -> u32 {
9545        unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 12u8) as u32) }
9546    }
9547
9548    #[inline]
9549    pub fn set_reserved(&mut self, val: u32) {
9550        unsafe {
9551            let val: u32 = ::core::mem::transmute(val);
9552            self._bitfield_1.set(20usize, 12u8, val as u64)
9553        }
9554    }
9555
9556    #[inline]
9557    pub fn new_bitfield_1(
9558        useConstrainedIntraPred: u32,
9559        disableDeblockAcrossSliceBoundary: u32,
9560        outputBufferingPeriodSEI: u32,
9561        outputPictureTimingSEI: u32,
9562        outputAUD: u32,
9563        enableLTR: u32,
9564        disableSPSPPS: u32,
9565        repeatSPSPPS: u32,
9566        enableIntraRefresh: u32,
9567        chromaFormatIDC: u32,
9568        pixelBitDepthMinus8: u32,
9569        enableFillerDataInsertion: u32,
9570        enableConstrainedEncoding: u32,
9571        enableAlphaLayerEncoding: u32,
9572        singleSliceIntraRefresh: u32,
9573        outputRecoveryPointSEI: u32,
9574        outputTimeCodeSEI: u32,
9575        reserved: u32,
9576    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
9577        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
9578        __bindgen_bitfield_unit.set(0usize, 1u8, {
9579            let useConstrainedIntraPred: u32 =
9580                unsafe { ::core::mem::transmute(useConstrainedIntraPred) };
9581            useConstrainedIntraPred as u64
9582        });
9583        __bindgen_bitfield_unit.set(1usize, 1u8, {
9584            let disableDeblockAcrossSliceBoundary: u32 =
9585                unsafe { ::core::mem::transmute(disableDeblockAcrossSliceBoundary) };
9586            disableDeblockAcrossSliceBoundary as u64
9587        });
9588        __bindgen_bitfield_unit.set(2usize, 1u8, {
9589            let outputBufferingPeriodSEI: u32 =
9590                unsafe { ::core::mem::transmute(outputBufferingPeriodSEI) };
9591            outputBufferingPeriodSEI as u64
9592        });
9593        __bindgen_bitfield_unit.set(3usize, 1u8, {
9594            let outputPictureTimingSEI: u32 =
9595                unsafe { ::core::mem::transmute(outputPictureTimingSEI) };
9596            outputPictureTimingSEI as u64
9597        });
9598        __bindgen_bitfield_unit.set(4usize, 1u8, {
9599            let outputAUD: u32 = unsafe { ::core::mem::transmute(outputAUD) };
9600            outputAUD as u64
9601        });
9602        __bindgen_bitfield_unit.set(5usize, 1u8, {
9603            let enableLTR: u32 = unsafe { ::core::mem::transmute(enableLTR) };
9604            enableLTR as u64
9605        });
9606        __bindgen_bitfield_unit.set(6usize, 1u8, {
9607            let disableSPSPPS: u32 = unsafe { ::core::mem::transmute(disableSPSPPS) };
9608            disableSPSPPS as u64
9609        });
9610        __bindgen_bitfield_unit.set(7usize, 1u8, {
9611            let repeatSPSPPS: u32 = unsafe { ::core::mem::transmute(repeatSPSPPS) };
9612            repeatSPSPPS as u64
9613        });
9614        __bindgen_bitfield_unit.set(8usize, 1u8, {
9615            let enableIntraRefresh: u32 = unsafe { ::core::mem::transmute(enableIntraRefresh) };
9616            enableIntraRefresh as u64
9617        });
9618        __bindgen_bitfield_unit.set(9usize, 2u8, {
9619            let chromaFormatIDC: u32 = unsafe { ::core::mem::transmute(chromaFormatIDC) };
9620            chromaFormatIDC as u64
9621        });
9622        __bindgen_bitfield_unit.set(11usize, 3u8, {
9623            let pixelBitDepthMinus8: u32 = unsafe { ::core::mem::transmute(pixelBitDepthMinus8) };
9624            pixelBitDepthMinus8 as u64
9625        });
9626        __bindgen_bitfield_unit.set(14usize, 1u8, {
9627            let enableFillerDataInsertion: u32 =
9628                unsafe { ::core::mem::transmute(enableFillerDataInsertion) };
9629            enableFillerDataInsertion as u64
9630        });
9631        __bindgen_bitfield_unit.set(15usize, 1u8, {
9632            let enableConstrainedEncoding: u32 =
9633                unsafe { ::core::mem::transmute(enableConstrainedEncoding) };
9634            enableConstrainedEncoding as u64
9635        });
9636        __bindgen_bitfield_unit.set(16usize, 1u8, {
9637            let enableAlphaLayerEncoding: u32 =
9638                unsafe { ::core::mem::transmute(enableAlphaLayerEncoding) };
9639            enableAlphaLayerEncoding as u64
9640        });
9641        __bindgen_bitfield_unit.set(17usize, 1u8, {
9642            let singleSliceIntraRefresh: u32 =
9643                unsafe { ::core::mem::transmute(singleSliceIntraRefresh) };
9644            singleSliceIntraRefresh as u64
9645        });
9646        __bindgen_bitfield_unit.set(18usize, 1u8, {
9647            let outputRecoveryPointSEI: u32 =
9648                unsafe { ::core::mem::transmute(outputRecoveryPointSEI) };
9649            outputRecoveryPointSEI as u64
9650        });
9651        __bindgen_bitfield_unit.set(19usize, 1u8, {
9652            let outputTimeCodeSEI: u32 = unsafe { ::core::mem::transmute(outputTimeCodeSEI) };
9653            outputTimeCodeSEI as u64
9654        });
9655        __bindgen_bitfield_unit.set(20usize, 12u8, {
9656            let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
9657            reserved as u64
9658        });
9659        __bindgen_bitfield_unit
9660    }
9661}
9662impl _NV_ENC_FILM_GRAIN_PARAMS_AV1 {
9663    #[inline]
9664    pub fn applyGrain(&self) -> u32 {
9665        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
9666    }
9667
9668    #[inline]
9669    pub fn set_applyGrain(&mut self, val: u32) {
9670        unsafe {
9671            let val: u32 = ::core::mem::transmute(val);
9672            self._bitfield_1.set(0usize, 1u8, val as u64)
9673        }
9674    }
9675
9676    #[inline]
9677    pub fn chromaScalingFromLuma(&self) -> u32 {
9678        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
9679    }
9680
9681    #[inline]
9682    pub fn set_chromaScalingFromLuma(&mut self, val: u32) {
9683        unsafe {
9684            let val: u32 = ::core::mem::transmute(val);
9685            self._bitfield_1.set(1usize, 1u8, val as u64)
9686        }
9687    }
9688
9689    #[inline]
9690    pub fn overlapFlag(&self) -> u32 {
9691        unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
9692    }
9693
9694    #[inline]
9695    pub fn set_overlapFlag(&mut self, val: u32) {
9696        unsafe {
9697            let val: u32 = ::core::mem::transmute(val);
9698            self._bitfield_1.set(2usize, 1u8, val as u64)
9699        }
9700    }
9701
9702    #[inline]
9703    pub fn clipToRestrictedRange(&self) -> u32 {
9704        unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
9705    }
9706
9707    #[inline]
9708    pub fn set_clipToRestrictedRange(&mut self, val: u32) {
9709        unsafe {
9710            let val: u32 = ::core::mem::transmute(val);
9711            self._bitfield_1.set(3usize, 1u8, val as u64)
9712        }
9713    }
9714
9715    #[inline]
9716    pub fn grainScalingMinus8(&self) -> u32 {
9717        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u32) }
9718    }
9719
9720    #[inline]
9721    pub fn set_grainScalingMinus8(&mut self, val: u32) {
9722        unsafe {
9723            let val: u32 = ::core::mem::transmute(val);
9724            self._bitfield_1.set(4usize, 2u8, val as u64)
9725        }
9726    }
9727
9728    #[inline]
9729    pub fn arCoeffLag(&self) -> u32 {
9730        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u32) }
9731    }
9732
9733    #[inline]
9734    pub fn set_arCoeffLag(&mut self, val: u32) {
9735        unsafe {
9736            let val: u32 = ::core::mem::transmute(val);
9737            self._bitfield_1.set(6usize, 2u8, val as u64)
9738        }
9739    }
9740
9741    #[inline]
9742    pub fn numYPoints(&self) -> u32 {
9743        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u32) }
9744    }
9745
9746    #[inline]
9747    pub fn set_numYPoints(&mut self, val: u32) {
9748        unsafe {
9749            let val: u32 = ::core::mem::transmute(val);
9750            self._bitfield_1.set(8usize, 4u8, val as u64)
9751        }
9752    }
9753
9754    #[inline]
9755    pub fn numCbPoints(&self) -> u32 {
9756        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u32) }
9757    }
9758
9759    #[inline]
9760    pub fn set_numCbPoints(&mut self, val: u32) {
9761        unsafe {
9762            let val: u32 = ::core::mem::transmute(val);
9763            self._bitfield_1.set(12usize, 4u8, val as u64)
9764        }
9765    }
9766
9767    #[inline]
9768    pub fn numCrPoints(&self) -> u32 {
9769        unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 4u8) as u32) }
9770    }
9771
9772    #[inline]
9773    pub fn set_numCrPoints(&mut self, val: u32) {
9774        unsafe {
9775            let val: u32 = ::core::mem::transmute(val);
9776            self._bitfield_1.set(16usize, 4u8, val as u64)
9777        }
9778    }
9779
9780    #[inline]
9781    pub fn arCoeffShiftMinus6(&self) -> u32 {
9782        unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 2u8) as u32) }
9783    }
9784
9785    #[inline]
9786    pub fn set_arCoeffShiftMinus6(&mut self, val: u32) {
9787        unsafe {
9788            let val: u32 = ::core::mem::transmute(val);
9789            self._bitfield_1.set(20usize, 2u8, val as u64)
9790        }
9791    }
9792
9793    #[inline]
9794    pub fn grainScaleShift(&self) -> u32 {
9795        unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 2u8) as u32) }
9796    }
9797
9798    #[inline]
9799    pub fn set_grainScaleShift(&mut self, val: u32) {
9800        unsafe {
9801            let val: u32 = ::core::mem::transmute(val);
9802            self._bitfield_1.set(22usize, 2u8, val as u64)
9803        }
9804    }
9805
9806    #[inline]
9807    pub fn reserved1(&self) -> u32 {
9808        unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) }
9809    }
9810
9811    #[inline]
9812    pub fn set_reserved1(&mut self, val: u32) {
9813        unsafe {
9814            let val: u32 = ::core::mem::transmute(val);
9815            self._bitfield_1.set(24usize, 8u8, val as u64)
9816        }
9817    }
9818
9819    #[inline]
9820    pub fn new_bitfield_1(
9821        applyGrain: u32,
9822        chromaScalingFromLuma: u32,
9823        overlapFlag: u32,
9824        clipToRestrictedRange: u32,
9825        grainScalingMinus8: u32,
9826        arCoeffLag: u32,
9827        numYPoints: u32,
9828        numCbPoints: u32,
9829        numCrPoints: u32,
9830        arCoeffShiftMinus6: u32,
9831        grainScaleShift: u32,
9832        reserved1: u32,
9833    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
9834        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
9835        __bindgen_bitfield_unit.set(0usize, 1u8, {
9836            let applyGrain: u32 = unsafe { ::core::mem::transmute(applyGrain) };
9837            applyGrain as u64
9838        });
9839        __bindgen_bitfield_unit.set(1usize, 1u8, {
9840            let chromaScalingFromLuma: u32 =
9841                unsafe { ::core::mem::transmute(chromaScalingFromLuma) };
9842            chromaScalingFromLuma as u64
9843        });
9844        __bindgen_bitfield_unit.set(2usize, 1u8, {
9845            let overlapFlag: u32 = unsafe { ::core::mem::transmute(overlapFlag) };
9846            overlapFlag as u64
9847        });
9848        __bindgen_bitfield_unit.set(3usize, 1u8, {
9849            let clipToRestrictedRange: u32 =
9850                unsafe { ::core::mem::transmute(clipToRestrictedRange) };
9851            clipToRestrictedRange as u64
9852        });
9853        __bindgen_bitfield_unit.set(4usize, 2u8, {
9854            let grainScalingMinus8: u32 = unsafe { ::core::mem::transmute(grainScalingMinus8) };
9855            grainScalingMinus8 as u64
9856        });
9857        __bindgen_bitfield_unit.set(6usize, 2u8, {
9858            let arCoeffLag: u32 = unsafe { ::core::mem::transmute(arCoeffLag) };
9859            arCoeffLag as u64
9860        });
9861        __bindgen_bitfield_unit.set(8usize, 4u8, {
9862            let numYPoints: u32 = unsafe { ::core::mem::transmute(numYPoints) };
9863            numYPoints as u64
9864        });
9865        __bindgen_bitfield_unit.set(12usize, 4u8, {
9866            let numCbPoints: u32 = unsafe { ::core::mem::transmute(numCbPoints) };
9867            numCbPoints as u64
9868        });
9869        __bindgen_bitfield_unit.set(16usize, 4u8, {
9870            let numCrPoints: u32 = unsafe { ::core::mem::transmute(numCrPoints) };
9871            numCrPoints as u64
9872        });
9873        __bindgen_bitfield_unit.set(20usize, 2u8, {
9874            let arCoeffShiftMinus6: u32 = unsafe { ::core::mem::transmute(arCoeffShiftMinus6) };
9875            arCoeffShiftMinus6 as u64
9876        });
9877        __bindgen_bitfield_unit.set(22usize, 2u8, {
9878            let grainScaleShift: u32 = unsafe { ::core::mem::transmute(grainScaleShift) };
9879            grainScaleShift as u64
9880        });
9881        __bindgen_bitfield_unit.set(24usize, 8u8, {
9882            let reserved1: u32 = unsafe { ::core::mem::transmute(reserved1) };
9883            reserved1 as u64
9884        });
9885        __bindgen_bitfield_unit
9886    }
9887}
9888impl Default for _NV_ENC_CONFIG_AV1 {
9889    fn default() -> Self {
9890        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
9891        unsafe {
9892            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
9893            s.assume_init()
9894        }
9895    }
9896}
9897impl _NV_ENC_CONFIG_AV1 {
9898    #[inline]
9899    pub fn outputAnnexBFormat(&self) -> u32 {
9900        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
9901    }
9902
9903    #[inline]
9904    pub fn set_outputAnnexBFormat(&mut self, val: u32) {
9905        unsafe {
9906            let val: u32 = ::core::mem::transmute(val);
9907            self._bitfield_1.set(0usize, 1u8, val as u64)
9908        }
9909    }
9910
9911    #[inline]
9912    pub fn enableTimingInfo(&self) -> u32 {
9913        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
9914    }
9915
9916    #[inline]
9917    pub fn set_enableTimingInfo(&mut self, val: u32) {
9918        unsafe {
9919            let val: u32 = ::core::mem::transmute(val);
9920            self._bitfield_1.set(1usize, 1u8, val as u64)
9921        }
9922    }
9923
9924    #[inline]
9925    pub fn enableDecoderModelInfo(&self) -> u32 {
9926        unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
9927    }
9928
9929    #[inline]
9930    pub fn set_enableDecoderModelInfo(&mut self, val: u32) {
9931        unsafe {
9932            let val: u32 = ::core::mem::transmute(val);
9933            self._bitfield_1.set(2usize, 1u8, val as u64)
9934        }
9935    }
9936
9937    #[inline]
9938    pub fn enableFrameIdNumbers(&self) -> u32 {
9939        unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
9940    }
9941
9942    #[inline]
9943    pub fn set_enableFrameIdNumbers(&mut self, val: u32) {
9944        unsafe {
9945            let val: u32 = ::core::mem::transmute(val);
9946            self._bitfield_1.set(3usize, 1u8, val as u64)
9947        }
9948    }
9949
9950    #[inline]
9951    pub fn disableSeqHdr(&self) -> u32 {
9952        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
9953    }
9954
9955    #[inline]
9956    pub fn set_disableSeqHdr(&mut self, val: u32) {
9957        unsafe {
9958            let val: u32 = ::core::mem::transmute(val);
9959            self._bitfield_1.set(4usize, 1u8, val as u64)
9960        }
9961    }
9962
9963    #[inline]
9964    pub fn repeatSeqHdr(&self) -> u32 {
9965        unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
9966    }
9967
9968    #[inline]
9969    pub fn set_repeatSeqHdr(&mut self, val: u32) {
9970        unsafe {
9971            let val: u32 = ::core::mem::transmute(val);
9972            self._bitfield_1.set(5usize, 1u8, val as u64)
9973        }
9974    }
9975
9976    #[inline]
9977    pub fn enableIntraRefresh(&self) -> u32 {
9978        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
9979    }
9980
9981    #[inline]
9982    pub fn set_enableIntraRefresh(&mut self, val: u32) {
9983        unsafe {
9984            let val: u32 = ::core::mem::transmute(val);
9985            self._bitfield_1.set(6usize, 1u8, val as u64)
9986        }
9987    }
9988
9989    #[inline]
9990    pub fn chromaFormatIDC(&self) -> u32 {
9991        unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 2u8) as u32) }
9992    }
9993
9994    #[inline]
9995    pub fn set_chromaFormatIDC(&mut self, val: u32) {
9996        unsafe {
9997            let val: u32 = ::core::mem::transmute(val);
9998            self._bitfield_1.set(7usize, 2u8, val as u64)
9999        }
10000    }
10001
10002    #[inline]
10003    pub fn enableBitstreamPadding(&self) -> u32 {
10004        unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
10005    }
10006
10007    #[inline]
10008    pub fn set_enableBitstreamPadding(&mut self, val: u32) {
10009        unsafe {
10010            let val: u32 = ::core::mem::transmute(val);
10011            self._bitfield_1.set(9usize, 1u8, val as u64)
10012        }
10013    }
10014
10015    #[inline]
10016    pub fn enableCustomTileConfig(&self) -> u32 {
10017        unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
10018    }
10019
10020    #[inline]
10021    pub fn set_enableCustomTileConfig(&mut self, val: u32) {
10022        unsafe {
10023            let val: u32 = ::core::mem::transmute(val);
10024            self._bitfield_1.set(10usize, 1u8, val as u64)
10025        }
10026    }
10027
10028    #[inline]
10029    pub fn enableFilmGrainParams(&self) -> u32 {
10030        unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
10031    }
10032
10033    #[inline]
10034    pub fn set_enableFilmGrainParams(&mut self, val: u32) {
10035        unsafe {
10036            let val: u32 = ::core::mem::transmute(val);
10037            self._bitfield_1.set(11usize, 1u8, val as u64)
10038        }
10039    }
10040
10041    #[inline]
10042    pub fn inputPixelBitDepthMinus8(&self) -> u32 {
10043        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 3u8) as u32) }
10044    }
10045
10046    #[inline]
10047    pub fn set_inputPixelBitDepthMinus8(&mut self, val: u32) {
10048        unsafe {
10049            let val: u32 = ::core::mem::transmute(val);
10050            self._bitfield_1.set(12usize, 3u8, val as u64)
10051        }
10052    }
10053
10054    #[inline]
10055    pub fn pixelBitDepthMinus8(&self) -> u32 {
10056        unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 3u8) as u32) }
10057    }
10058
10059    #[inline]
10060    pub fn set_pixelBitDepthMinus8(&mut self, val: u32) {
10061        unsafe {
10062            let val: u32 = ::core::mem::transmute(val);
10063            self._bitfield_1.set(15usize, 3u8, val as u64)
10064        }
10065    }
10066
10067    #[inline]
10068    pub fn reserved(&self) -> u32 {
10069        unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 14u8) as u32) }
10070    }
10071
10072    #[inline]
10073    pub fn set_reserved(&mut self, val: u32) {
10074        unsafe {
10075            let val: u32 = ::core::mem::transmute(val);
10076            self._bitfield_1.set(18usize, 14u8, val as u64)
10077        }
10078    }
10079
10080    #[inline]
10081    pub fn new_bitfield_1(
10082        outputAnnexBFormat: u32,
10083        enableTimingInfo: u32,
10084        enableDecoderModelInfo: u32,
10085        enableFrameIdNumbers: u32,
10086        disableSeqHdr: u32,
10087        repeatSeqHdr: u32,
10088        enableIntraRefresh: u32,
10089        chromaFormatIDC: u32,
10090        enableBitstreamPadding: u32,
10091        enableCustomTileConfig: u32,
10092        enableFilmGrainParams: u32,
10093        inputPixelBitDepthMinus8: u32,
10094        pixelBitDepthMinus8: u32,
10095        reserved: u32,
10096    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
10097        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
10098        __bindgen_bitfield_unit.set(0usize, 1u8, {
10099            let outputAnnexBFormat: u32 = unsafe { ::core::mem::transmute(outputAnnexBFormat) };
10100            outputAnnexBFormat as u64
10101        });
10102        __bindgen_bitfield_unit.set(1usize, 1u8, {
10103            let enableTimingInfo: u32 = unsafe { ::core::mem::transmute(enableTimingInfo) };
10104            enableTimingInfo as u64
10105        });
10106        __bindgen_bitfield_unit.set(2usize, 1u8, {
10107            let enableDecoderModelInfo: u32 =
10108                unsafe { ::core::mem::transmute(enableDecoderModelInfo) };
10109            enableDecoderModelInfo as u64
10110        });
10111        __bindgen_bitfield_unit.set(3usize, 1u8, {
10112            let enableFrameIdNumbers: u32 = unsafe { ::core::mem::transmute(enableFrameIdNumbers) };
10113            enableFrameIdNumbers as u64
10114        });
10115        __bindgen_bitfield_unit.set(4usize, 1u8, {
10116            let disableSeqHdr: u32 = unsafe { ::core::mem::transmute(disableSeqHdr) };
10117            disableSeqHdr as u64
10118        });
10119        __bindgen_bitfield_unit.set(5usize, 1u8, {
10120            let repeatSeqHdr: u32 = unsafe { ::core::mem::transmute(repeatSeqHdr) };
10121            repeatSeqHdr as u64
10122        });
10123        __bindgen_bitfield_unit.set(6usize, 1u8, {
10124            let enableIntraRefresh: u32 = unsafe { ::core::mem::transmute(enableIntraRefresh) };
10125            enableIntraRefresh as u64
10126        });
10127        __bindgen_bitfield_unit.set(7usize, 2u8, {
10128            let chromaFormatIDC: u32 = unsafe { ::core::mem::transmute(chromaFormatIDC) };
10129            chromaFormatIDC as u64
10130        });
10131        __bindgen_bitfield_unit.set(9usize, 1u8, {
10132            let enableBitstreamPadding: u32 =
10133                unsafe { ::core::mem::transmute(enableBitstreamPadding) };
10134            enableBitstreamPadding as u64
10135        });
10136        __bindgen_bitfield_unit.set(10usize, 1u8, {
10137            let enableCustomTileConfig: u32 =
10138                unsafe { ::core::mem::transmute(enableCustomTileConfig) };
10139            enableCustomTileConfig as u64
10140        });
10141        __bindgen_bitfield_unit.set(11usize, 1u8, {
10142            let enableFilmGrainParams: u32 =
10143                unsafe { ::core::mem::transmute(enableFilmGrainParams) };
10144            enableFilmGrainParams as u64
10145        });
10146        __bindgen_bitfield_unit.set(12usize, 3u8, {
10147            let inputPixelBitDepthMinus8: u32 =
10148                unsafe { ::core::mem::transmute(inputPixelBitDepthMinus8) };
10149            inputPixelBitDepthMinus8 as u64
10150        });
10151        __bindgen_bitfield_unit.set(15usize, 3u8, {
10152            let pixelBitDepthMinus8: u32 = unsafe { ::core::mem::transmute(pixelBitDepthMinus8) };
10153            pixelBitDepthMinus8 as u64
10154        });
10155        __bindgen_bitfield_unit.set(18usize, 14u8, {
10156            let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
10157            reserved as u64
10158        });
10159        __bindgen_bitfield_unit
10160    }
10161}
10162impl Default for _NV_ENC_CONFIG_H264_MEONLY {
10163    fn default() -> Self {
10164        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
10165        unsafe {
10166            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10167            s.assume_init()
10168        }
10169    }
10170}
10171impl _NV_ENC_CONFIG_H264_MEONLY {
10172    #[inline]
10173    pub fn disablePartition16x16(&self) -> u32 {
10174        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
10175    }
10176
10177    #[inline]
10178    pub fn set_disablePartition16x16(&mut self, val: u32) {
10179        unsafe {
10180            let val: u32 = ::core::mem::transmute(val);
10181            self._bitfield_1.set(0usize, 1u8, val as u64)
10182        }
10183    }
10184
10185    #[inline]
10186    pub fn disablePartition8x16(&self) -> u32 {
10187        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
10188    }
10189
10190    #[inline]
10191    pub fn set_disablePartition8x16(&mut self, val: u32) {
10192        unsafe {
10193            let val: u32 = ::core::mem::transmute(val);
10194            self._bitfield_1.set(1usize, 1u8, val as u64)
10195        }
10196    }
10197
10198    #[inline]
10199    pub fn disablePartition16x8(&self) -> u32 {
10200        unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
10201    }
10202
10203    #[inline]
10204    pub fn set_disablePartition16x8(&mut self, val: u32) {
10205        unsafe {
10206            let val: u32 = ::core::mem::transmute(val);
10207            self._bitfield_1.set(2usize, 1u8, val as u64)
10208        }
10209    }
10210
10211    #[inline]
10212    pub fn disablePartition8x8(&self) -> u32 {
10213        unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
10214    }
10215
10216    #[inline]
10217    pub fn set_disablePartition8x8(&mut self, val: u32) {
10218        unsafe {
10219            let val: u32 = ::core::mem::transmute(val);
10220            self._bitfield_1.set(3usize, 1u8, val as u64)
10221        }
10222    }
10223
10224    #[inline]
10225    pub fn disableIntraSearch(&self) -> u32 {
10226        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
10227    }
10228
10229    #[inline]
10230    pub fn set_disableIntraSearch(&mut self, val: u32) {
10231        unsafe {
10232            let val: u32 = ::core::mem::transmute(val);
10233            self._bitfield_1.set(4usize, 1u8, val as u64)
10234        }
10235    }
10236
10237    #[inline]
10238    pub fn bStereoEnable(&self) -> u32 {
10239        unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
10240    }
10241
10242    #[inline]
10243    pub fn set_bStereoEnable(&mut self, val: u32) {
10244        unsafe {
10245            let val: u32 = ::core::mem::transmute(val);
10246            self._bitfield_1.set(5usize, 1u8, val as u64)
10247        }
10248    }
10249
10250    #[inline]
10251    pub fn reserved(&self) -> u32 {
10252        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 26u8) as u32) }
10253    }
10254
10255    #[inline]
10256    pub fn set_reserved(&mut self, val: u32) {
10257        unsafe {
10258            let val: u32 = ::core::mem::transmute(val);
10259            self._bitfield_1.set(6usize, 26u8, val as u64)
10260        }
10261    }
10262
10263    #[inline]
10264    pub fn new_bitfield_1(
10265        disablePartition16x16: u32,
10266        disablePartition8x16: u32,
10267        disablePartition16x8: u32,
10268        disablePartition8x8: u32,
10269        disableIntraSearch: u32,
10270        bStereoEnable: u32,
10271        reserved: u32,
10272    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
10273        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
10274        __bindgen_bitfield_unit.set(0usize, 1u8, {
10275            let disablePartition16x16: u32 =
10276                unsafe { ::core::mem::transmute(disablePartition16x16) };
10277            disablePartition16x16 as u64
10278        });
10279        __bindgen_bitfield_unit.set(1usize, 1u8, {
10280            let disablePartition8x16: u32 = unsafe { ::core::mem::transmute(disablePartition8x16) };
10281            disablePartition8x16 as u64
10282        });
10283        __bindgen_bitfield_unit.set(2usize, 1u8, {
10284            let disablePartition16x8: u32 = unsafe { ::core::mem::transmute(disablePartition16x8) };
10285            disablePartition16x8 as u64
10286        });
10287        __bindgen_bitfield_unit.set(3usize, 1u8, {
10288            let disablePartition8x8: u32 = unsafe { ::core::mem::transmute(disablePartition8x8) };
10289            disablePartition8x8 as u64
10290        });
10291        __bindgen_bitfield_unit.set(4usize, 1u8, {
10292            let disableIntraSearch: u32 = unsafe { ::core::mem::transmute(disableIntraSearch) };
10293            disableIntraSearch as u64
10294        });
10295        __bindgen_bitfield_unit.set(5usize, 1u8, {
10296            let bStereoEnable: u32 = unsafe { ::core::mem::transmute(bStereoEnable) };
10297            bStereoEnable as u64
10298        });
10299        __bindgen_bitfield_unit.set(6usize, 26u8, {
10300            let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
10301            reserved as u64
10302        });
10303        __bindgen_bitfield_unit
10304    }
10305}
10306impl Default for _NV_ENC_CONFIG_HEVC_MEONLY {
10307    fn default() -> Self {
10308        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
10309        unsafe {
10310            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10311            s.assume_init()
10312        }
10313    }
10314}
10315impl Default for _NV_ENC_CODEC_CONFIG {
10316    fn default() -> Self {
10317        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
10318        unsafe {
10319            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10320            s.assume_init()
10321        }
10322    }
10323}
10324impl Default for _NV_ENC_CONFIG {
10325    fn default() -> Self {
10326        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
10327        unsafe {
10328            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10329            s.assume_init()
10330        }
10331    }
10332}
10333impl Default for _NV_ENC_INITIALIZE_PARAMS {
10334    fn default() -> Self {
10335        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
10336        unsafe {
10337            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10338            s.assume_init()
10339        }
10340    }
10341}
10342impl _NV_ENC_INITIALIZE_PARAMS {
10343    #[inline]
10344    pub fn reportSliceOffsets(&self) -> u32 {
10345        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
10346    }
10347
10348    #[inline]
10349    pub fn set_reportSliceOffsets(&mut self, val: u32) {
10350        unsafe {
10351            let val: u32 = ::core::mem::transmute(val);
10352            self._bitfield_1.set(0usize, 1u8, val as u64)
10353        }
10354    }
10355
10356    #[inline]
10357    pub fn enableSubFrameWrite(&self) -> u32 {
10358        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
10359    }
10360
10361    #[inline]
10362    pub fn set_enableSubFrameWrite(&mut self, val: u32) {
10363        unsafe {
10364            let val: u32 = ::core::mem::transmute(val);
10365            self._bitfield_1.set(1usize, 1u8, val as u64)
10366        }
10367    }
10368
10369    #[inline]
10370    pub fn enableExternalMEHints(&self) -> u32 {
10371        unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
10372    }
10373
10374    #[inline]
10375    pub fn set_enableExternalMEHints(&mut self, val: u32) {
10376        unsafe {
10377            let val: u32 = ::core::mem::transmute(val);
10378            self._bitfield_1.set(2usize, 1u8, val as u64)
10379        }
10380    }
10381
10382    #[inline]
10383    pub fn enableMEOnlyMode(&self) -> u32 {
10384        unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
10385    }
10386
10387    #[inline]
10388    pub fn set_enableMEOnlyMode(&mut self, val: u32) {
10389        unsafe {
10390            let val: u32 = ::core::mem::transmute(val);
10391            self._bitfield_1.set(3usize, 1u8, val as u64)
10392        }
10393    }
10394
10395    #[inline]
10396    pub fn enableWeightedPrediction(&self) -> u32 {
10397        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
10398    }
10399
10400    #[inline]
10401    pub fn set_enableWeightedPrediction(&mut self, val: u32) {
10402        unsafe {
10403            let val: u32 = ::core::mem::transmute(val);
10404            self._bitfield_1.set(4usize, 1u8, val as u64)
10405        }
10406    }
10407
10408    #[inline]
10409    pub fn splitEncodeMode(&self) -> u32 {
10410        unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 4u8) as u32) }
10411    }
10412
10413    #[inline]
10414    pub fn set_splitEncodeMode(&mut self, val: u32) {
10415        unsafe {
10416            let val: u32 = ::core::mem::transmute(val);
10417            self._bitfield_1.set(5usize, 4u8, val as u64)
10418        }
10419    }
10420
10421    #[inline]
10422    pub fn enableOutputInVidmem(&self) -> u32 {
10423        unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
10424    }
10425
10426    #[inline]
10427    pub fn set_enableOutputInVidmem(&mut self, val: u32) {
10428        unsafe {
10429            let val: u32 = ::core::mem::transmute(val);
10430            self._bitfield_1.set(9usize, 1u8, val as u64)
10431        }
10432    }
10433
10434    #[inline]
10435    pub fn enableReconFrameOutput(&self) -> u32 {
10436        unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
10437    }
10438
10439    #[inline]
10440    pub fn set_enableReconFrameOutput(&mut self, val: u32) {
10441        unsafe {
10442            let val: u32 = ::core::mem::transmute(val);
10443            self._bitfield_1.set(10usize, 1u8, val as u64)
10444        }
10445    }
10446
10447    #[inline]
10448    pub fn enableOutputStats(&self) -> u32 {
10449        unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
10450    }
10451
10452    #[inline]
10453    pub fn set_enableOutputStats(&mut self, val: u32) {
10454        unsafe {
10455            let val: u32 = ::core::mem::transmute(val);
10456            self._bitfield_1.set(11usize, 1u8, val as u64)
10457        }
10458    }
10459
10460    #[inline]
10461    pub fn reservedBitFields(&self) -> u32 {
10462        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 20u8) as u32) }
10463    }
10464
10465    #[inline]
10466    pub fn set_reservedBitFields(&mut self, val: u32) {
10467        unsafe {
10468            let val: u32 = ::core::mem::transmute(val);
10469            self._bitfield_1.set(12usize, 20u8, val as u64)
10470        }
10471    }
10472
10473    #[inline]
10474    pub fn new_bitfield_1(
10475        reportSliceOffsets: u32,
10476        enableSubFrameWrite: u32,
10477        enableExternalMEHints: u32,
10478        enableMEOnlyMode: u32,
10479        enableWeightedPrediction: u32,
10480        splitEncodeMode: u32,
10481        enableOutputInVidmem: u32,
10482        enableReconFrameOutput: u32,
10483        enableOutputStats: u32,
10484        reservedBitFields: u32,
10485    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
10486        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
10487        __bindgen_bitfield_unit.set(0usize, 1u8, {
10488            let reportSliceOffsets: u32 = unsafe { ::core::mem::transmute(reportSliceOffsets) };
10489            reportSliceOffsets as u64
10490        });
10491        __bindgen_bitfield_unit.set(1usize, 1u8, {
10492            let enableSubFrameWrite: u32 = unsafe { ::core::mem::transmute(enableSubFrameWrite) };
10493            enableSubFrameWrite as u64
10494        });
10495        __bindgen_bitfield_unit.set(2usize, 1u8, {
10496            let enableExternalMEHints: u32 =
10497                unsafe { ::core::mem::transmute(enableExternalMEHints) };
10498            enableExternalMEHints as u64
10499        });
10500        __bindgen_bitfield_unit.set(3usize, 1u8, {
10501            let enableMEOnlyMode: u32 = unsafe { ::core::mem::transmute(enableMEOnlyMode) };
10502            enableMEOnlyMode as u64
10503        });
10504        __bindgen_bitfield_unit.set(4usize, 1u8, {
10505            let enableWeightedPrediction: u32 =
10506                unsafe { ::core::mem::transmute(enableWeightedPrediction) };
10507            enableWeightedPrediction as u64
10508        });
10509        __bindgen_bitfield_unit.set(5usize, 4u8, {
10510            let splitEncodeMode: u32 = unsafe { ::core::mem::transmute(splitEncodeMode) };
10511            splitEncodeMode as u64
10512        });
10513        __bindgen_bitfield_unit.set(9usize, 1u8, {
10514            let enableOutputInVidmem: u32 = unsafe { ::core::mem::transmute(enableOutputInVidmem) };
10515            enableOutputInVidmem as u64
10516        });
10517        __bindgen_bitfield_unit.set(10usize, 1u8, {
10518            let enableReconFrameOutput: u32 =
10519                unsafe { ::core::mem::transmute(enableReconFrameOutput) };
10520            enableReconFrameOutput as u64
10521        });
10522        __bindgen_bitfield_unit.set(11usize, 1u8, {
10523            let enableOutputStats: u32 = unsafe { ::core::mem::transmute(enableOutputStats) };
10524            enableOutputStats as u64
10525        });
10526        __bindgen_bitfield_unit.set(12usize, 20u8, {
10527            let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) };
10528            reservedBitFields as u64
10529        });
10530        __bindgen_bitfield_unit
10531    }
10532}
10533impl Default for _NV_ENC_RECONFIGURE_PARAMS {
10534    fn default() -> Self {
10535        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
10536        unsafe {
10537            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10538            s.assume_init()
10539        }
10540    }
10541}
10542impl _NV_ENC_RECONFIGURE_PARAMS {
10543    #[inline]
10544    pub fn resetEncoder(&self) -> u32 {
10545        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
10546    }
10547
10548    #[inline]
10549    pub fn set_resetEncoder(&mut self, val: u32) {
10550        unsafe {
10551            let val: u32 = ::core::mem::transmute(val);
10552            self._bitfield_1.set(0usize, 1u8, val as u64)
10553        }
10554    }
10555
10556    #[inline]
10557    pub fn forceIDR(&self) -> u32 {
10558        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
10559    }
10560
10561    #[inline]
10562    pub fn set_forceIDR(&mut self, val: u32) {
10563        unsafe {
10564            let val: u32 = ::core::mem::transmute(val);
10565            self._bitfield_1.set(1usize, 1u8, val as u64)
10566        }
10567    }
10568
10569    #[inline]
10570    pub fn reserved(&self) -> u32 {
10571        unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
10572    }
10573
10574    #[inline]
10575    pub fn set_reserved(&mut self, val: u32) {
10576        unsafe {
10577            let val: u32 = ::core::mem::transmute(val);
10578            self._bitfield_1.set(2usize, 30u8, val as u64)
10579        }
10580    }
10581
10582    #[inline]
10583    pub fn new_bitfield_1(
10584        resetEncoder: u32,
10585        forceIDR: u32,
10586        reserved: u32,
10587    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
10588        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
10589        __bindgen_bitfield_unit.set(0usize, 1u8, {
10590            let resetEncoder: u32 = unsafe { ::core::mem::transmute(resetEncoder) };
10591            resetEncoder as u64
10592        });
10593        __bindgen_bitfield_unit.set(1usize, 1u8, {
10594            let forceIDR: u32 = unsafe { ::core::mem::transmute(forceIDR) };
10595            forceIDR as u64
10596        });
10597        __bindgen_bitfield_unit.set(2usize, 30u8, {
10598            let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
10599            reserved as u64
10600        });
10601        __bindgen_bitfield_unit
10602    }
10603}
10604impl Default for _NV_ENC_PRESET_CONFIG {
10605    fn default() -> Self {
10606        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
10607        unsafe {
10608            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10609            s.assume_init()
10610        }
10611    }
10612}
10613impl Default for _NV_ENC_PIC_PARAMS_MVC {
10614    fn default() -> Self {
10615        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
10616        unsafe {
10617            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10618            s.assume_init()
10619        }
10620    }
10621}
10622impl Default for _NV_ENC_PIC_PARAMS_H264_EXT {
10623    fn default() -> Self {
10624        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
10625        unsafe {
10626            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10627            s.assume_init()
10628        }
10629    }
10630}
10631impl Default for _NV_ENC_SEI_PAYLOAD {
10632    fn default() -> Self {
10633        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
10634        unsafe {
10635            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10636            s.assume_init()
10637        }
10638    }
10639}
10640impl Default for _NV_ENC_PIC_PARAMS_H264 {
10641    fn default() -> Self {
10642        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
10643        unsafe {
10644            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10645            s.assume_init()
10646        }
10647    }
10648}
10649impl _NV_ENC_PIC_PARAMS_H264 {
10650    #[inline]
10651    pub fn constrainedFrame(&self) -> u32 {
10652        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
10653    }
10654
10655    #[inline]
10656    pub fn set_constrainedFrame(&mut self, val: u32) {
10657        unsafe {
10658            let val: u32 = ::core::mem::transmute(val);
10659            self._bitfield_1.set(0usize, 1u8, val as u64)
10660        }
10661    }
10662
10663    #[inline]
10664    pub fn sliceModeDataUpdate(&self) -> u32 {
10665        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
10666    }
10667
10668    #[inline]
10669    pub fn set_sliceModeDataUpdate(&mut self, val: u32) {
10670        unsafe {
10671            let val: u32 = ::core::mem::transmute(val);
10672            self._bitfield_1.set(1usize, 1u8, val as u64)
10673        }
10674    }
10675
10676    #[inline]
10677    pub fn ltrMarkFrame(&self) -> u32 {
10678        unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
10679    }
10680
10681    #[inline]
10682    pub fn set_ltrMarkFrame(&mut self, val: u32) {
10683        unsafe {
10684            let val: u32 = ::core::mem::transmute(val);
10685            self._bitfield_1.set(2usize, 1u8, val as u64)
10686        }
10687    }
10688
10689    #[inline]
10690    pub fn ltrUseFrames(&self) -> u32 {
10691        unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
10692    }
10693
10694    #[inline]
10695    pub fn set_ltrUseFrames(&mut self, val: u32) {
10696        unsafe {
10697            let val: u32 = ::core::mem::transmute(val);
10698            self._bitfield_1.set(3usize, 1u8, val as u64)
10699        }
10700    }
10701
10702    #[inline]
10703    pub fn reservedBitFields(&self) -> u32 {
10704        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 28u8) as u32) }
10705    }
10706
10707    #[inline]
10708    pub fn set_reservedBitFields(&mut self, val: u32) {
10709        unsafe {
10710            let val: u32 = ::core::mem::transmute(val);
10711            self._bitfield_1.set(4usize, 28u8, val as u64)
10712        }
10713    }
10714
10715    #[inline]
10716    pub fn new_bitfield_1(
10717        constrainedFrame: u32,
10718        sliceModeDataUpdate: u32,
10719        ltrMarkFrame: u32,
10720        ltrUseFrames: u32,
10721        reservedBitFields: u32,
10722    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
10723        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
10724        __bindgen_bitfield_unit.set(0usize, 1u8, {
10725            let constrainedFrame: u32 = unsafe { ::core::mem::transmute(constrainedFrame) };
10726            constrainedFrame as u64
10727        });
10728        __bindgen_bitfield_unit.set(1usize, 1u8, {
10729            let sliceModeDataUpdate: u32 = unsafe { ::core::mem::transmute(sliceModeDataUpdate) };
10730            sliceModeDataUpdate as u64
10731        });
10732        __bindgen_bitfield_unit.set(2usize, 1u8, {
10733            let ltrMarkFrame: u32 = unsafe { ::core::mem::transmute(ltrMarkFrame) };
10734            ltrMarkFrame as u64
10735        });
10736        __bindgen_bitfield_unit.set(3usize, 1u8, {
10737            let ltrUseFrames: u32 = unsafe { ::core::mem::transmute(ltrUseFrames) };
10738            ltrUseFrames as u64
10739        });
10740        __bindgen_bitfield_unit.set(4usize, 28u8, {
10741            let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) };
10742            reservedBitFields as u64
10743        });
10744        __bindgen_bitfield_unit
10745    }
10746}
10747impl Default for _NV_ENC_PIC_PARAMS_HEVC {
10748    fn default() -> Self {
10749        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
10750        unsafe {
10751            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10752            s.assume_init()
10753        }
10754    }
10755}
10756impl _NV_ENC_PIC_PARAMS_HEVC {
10757    #[inline]
10758    pub fn constrainedFrame(&self) -> u32 {
10759        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
10760    }
10761
10762    #[inline]
10763    pub fn set_constrainedFrame(&mut self, val: u32) {
10764        unsafe {
10765            let val: u32 = ::core::mem::transmute(val);
10766            self._bitfield_1.set(0usize, 1u8, val as u64)
10767        }
10768    }
10769
10770    #[inline]
10771    pub fn sliceModeDataUpdate(&self) -> u32 {
10772        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
10773    }
10774
10775    #[inline]
10776    pub fn set_sliceModeDataUpdate(&mut self, val: u32) {
10777        unsafe {
10778            let val: u32 = ::core::mem::transmute(val);
10779            self._bitfield_1.set(1usize, 1u8, val as u64)
10780        }
10781    }
10782
10783    #[inline]
10784    pub fn ltrMarkFrame(&self) -> u32 {
10785        unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
10786    }
10787
10788    #[inline]
10789    pub fn set_ltrMarkFrame(&mut self, val: u32) {
10790        unsafe {
10791            let val: u32 = ::core::mem::transmute(val);
10792            self._bitfield_1.set(2usize, 1u8, val as u64)
10793        }
10794    }
10795
10796    #[inline]
10797    pub fn ltrUseFrames(&self) -> u32 {
10798        unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
10799    }
10800
10801    #[inline]
10802    pub fn set_ltrUseFrames(&mut self, val: u32) {
10803        unsafe {
10804            let val: u32 = ::core::mem::transmute(val);
10805            self._bitfield_1.set(3usize, 1u8, val as u64)
10806        }
10807    }
10808
10809    #[inline]
10810    pub fn reservedBitFields(&self) -> u32 {
10811        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 28u8) as u32) }
10812    }
10813
10814    #[inline]
10815    pub fn set_reservedBitFields(&mut self, val: u32) {
10816        unsafe {
10817            let val: u32 = ::core::mem::transmute(val);
10818            self._bitfield_1.set(4usize, 28u8, val as u64)
10819        }
10820    }
10821
10822    #[inline]
10823    pub fn new_bitfield_1(
10824        constrainedFrame: u32,
10825        sliceModeDataUpdate: u32,
10826        ltrMarkFrame: u32,
10827        ltrUseFrames: u32,
10828        reservedBitFields: u32,
10829    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
10830        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
10831        __bindgen_bitfield_unit.set(0usize, 1u8, {
10832            let constrainedFrame: u32 = unsafe { ::core::mem::transmute(constrainedFrame) };
10833            constrainedFrame as u64
10834        });
10835        __bindgen_bitfield_unit.set(1usize, 1u8, {
10836            let sliceModeDataUpdate: u32 = unsafe { ::core::mem::transmute(sliceModeDataUpdate) };
10837            sliceModeDataUpdate as u64
10838        });
10839        __bindgen_bitfield_unit.set(2usize, 1u8, {
10840            let ltrMarkFrame: u32 = unsafe { ::core::mem::transmute(ltrMarkFrame) };
10841            ltrMarkFrame as u64
10842        });
10843        __bindgen_bitfield_unit.set(3usize, 1u8, {
10844            let ltrUseFrames: u32 = unsafe { ::core::mem::transmute(ltrUseFrames) };
10845            ltrUseFrames as u64
10846        });
10847        __bindgen_bitfield_unit.set(4usize, 28u8, {
10848            let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) };
10849            reservedBitFields as u64
10850        });
10851        __bindgen_bitfield_unit
10852    }
10853}
10854impl Default for _NV_ENC_PIC_PARAMS_AV1 {
10855    fn default() -> Self {
10856        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
10857        unsafe {
10858            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
10859            s.assume_init()
10860        }
10861    }
10862}
10863impl _NV_ENC_PIC_PARAMS_AV1 {
10864    #[inline]
10865    pub fn goldenFrameFlag(&self) -> u32 {
10866        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
10867    }
10868
10869    #[inline]
10870    pub fn set_goldenFrameFlag(&mut self, val: u32) {
10871        unsafe {
10872            let val: u32 = ::core::mem::transmute(val);
10873            self._bitfield_1.set(0usize, 1u8, val as u64)
10874        }
10875    }
10876
10877    #[inline]
10878    pub fn arfFrameFlag(&self) -> u32 {
10879        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
10880    }
10881
10882    #[inline]
10883    pub fn set_arfFrameFlag(&mut self, val: u32) {
10884        unsafe {
10885            let val: u32 = ::core::mem::transmute(val);
10886            self._bitfield_1.set(1usize, 1u8, val as u64)
10887        }
10888    }
10889
10890    #[inline]
10891    pub fn arf2FrameFlag(&self) -> u32 {
10892        unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
10893    }
10894
10895    #[inline]
10896    pub fn set_arf2FrameFlag(&mut self, val: u32) {
10897        unsafe {
10898            let val: u32 = ::core::mem::transmute(val);
10899            self._bitfield_1.set(2usize, 1u8, val as u64)
10900        }
10901    }
10902
10903    #[inline]
10904    pub fn bwdFrameFlag(&self) -> u32 {
10905        unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
10906    }
10907
10908    #[inline]
10909    pub fn set_bwdFrameFlag(&mut self, val: u32) {
10910        unsafe {
10911            let val: u32 = ::core::mem::transmute(val);
10912            self._bitfield_1.set(3usize, 1u8, val as u64)
10913        }
10914    }
10915
10916    #[inline]
10917    pub fn overlayFrameFlag(&self) -> u32 {
10918        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
10919    }
10920
10921    #[inline]
10922    pub fn set_overlayFrameFlag(&mut self, val: u32) {
10923        unsafe {
10924            let val: u32 = ::core::mem::transmute(val);
10925            self._bitfield_1.set(4usize, 1u8, val as u64)
10926        }
10927    }
10928
10929    #[inline]
10930    pub fn showExistingFrameFlag(&self) -> u32 {
10931        unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
10932    }
10933
10934    #[inline]
10935    pub fn set_showExistingFrameFlag(&mut self, val: u32) {
10936        unsafe {
10937            let val: u32 = ::core::mem::transmute(val);
10938            self._bitfield_1.set(5usize, 1u8, val as u64)
10939        }
10940    }
10941
10942    #[inline]
10943    pub fn errorResilientModeFlag(&self) -> u32 {
10944        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
10945    }
10946
10947    #[inline]
10948    pub fn set_errorResilientModeFlag(&mut self, val: u32) {
10949        unsafe {
10950            let val: u32 = ::core::mem::transmute(val);
10951            self._bitfield_1.set(6usize, 1u8, val as u64)
10952        }
10953    }
10954
10955    #[inline]
10956    pub fn tileConfigUpdate(&self) -> u32 {
10957        unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
10958    }
10959
10960    #[inline]
10961    pub fn set_tileConfigUpdate(&mut self, val: u32) {
10962        unsafe {
10963            let val: u32 = ::core::mem::transmute(val);
10964            self._bitfield_1.set(7usize, 1u8, val as u64)
10965        }
10966    }
10967
10968    #[inline]
10969    pub fn enableCustomTileConfig(&self) -> u32 {
10970        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
10971    }
10972
10973    #[inline]
10974    pub fn set_enableCustomTileConfig(&mut self, val: u32) {
10975        unsafe {
10976            let val: u32 = ::core::mem::transmute(val);
10977            self._bitfield_1.set(8usize, 1u8, val as u64)
10978        }
10979    }
10980
10981    #[inline]
10982    pub fn filmGrainParamsUpdate(&self) -> u32 {
10983        unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
10984    }
10985
10986    #[inline]
10987    pub fn set_filmGrainParamsUpdate(&mut self, val: u32) {
10988        unsafe {
10989            let val: u32 = ::core::mem::transmute(val);
10990            self._bitfield_1.set(9usize, 1u8, val as u64)
10991        }
10992    }
10993
10994    #[inline]
10995    pub fn reservedBitFields(&self) -> u32 {
10996        unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 22u8) as u32) }
10997    }
10998
10999    #[inline]
11000    pub fn set_reservedBitFields(&mut self, val: u32) {
11001        unsafe {
11002            let val: u32 = ::core::mem::transmute(val);
11003            self._bitfield_1.set(10usize, 22u8, val as u64)
11004        }
11005    }
11006
11007    #[inline]
11008    pub fn new_bitfield_1(
11009        goldenFrameFlag: u32,
11010        arfFrameFlag: u32,
11011        arf2FrameFlag: u32,
11012        bwdFrameFlag: u32,
11013        overlayFrameFlag: u32,
11014        showExistingFrameFlag: u32,
11015        errorResilientModeFlag: u32,
11016        tileConfigUpdate: u32,
11017        enableCustomTileConfig: u32,
11018        filmGrainParamsUpdate: u32,
11019        reservedBitFields: u32,
11020    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
11021        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
11022        __bindgen_bitfield_unit.set(0usize, 1u8, {
11023            let goldenFrameFlag: u32 = unsafe { ::core::mem::transmute(goldenFrameFlag) };
11024            goldenFrameFlag as u64
11025        });
11026        __bindgen_bitfield_unit.set(1usize, 1u8, {
11027            let arfFrameFlag: u32 = unsafe { ::core::mem::transmute(arfFrameFlag) };
11028            arfFrameFlag as u64
11029        });
11030        __bindgen_bitfield_unit.set(2usize, 1u8, {
11031            let arf2FrameFlag: u32 = unsafe { ::core::mem::transmute(arf2FrameFlag) };
11032            arf2FrameFlag as u64
11033        });
11034        __bindgen_bitfield_unit.set(3usize, 1u8, {
11035            let bwdFrameFlag: u32 = unsafe { ::core::mem::transmute(bwdFrameFlag) };
11036            bwdFrameFlag as u64
11037        });
11038        __bindgen_bitfield_unit.set(4usize, 1u8, {
11039            let overlayFrameFlag: u32 = unsafe { ::core::mem::transmute(overlayFrameFlag) };
11040            overlayFrameFlag as u64
11041        });
11042        __bindgen_bitfield_unit.set(5usize, 1u8, {
11043            let showExistingFrameFlag: u32 =
11044                unsafe { ::core::mem::transmute(showExistingFrameFlag) };
11045            showExistingFrameFlag as u64
11046        });
11047        __bindgen_bitfield_unit.set(6usize, 1u8, {
11048            let errorResilientModeFlag: u32 =
11049                unsafe { ::core::mem::transmute(errorResilientModeFlag) };
11050            errorResilientModeFlag as u64
11051        });
11052        __bindgen_bitfield_unit.set(7usize, 1u8, {
11053            let tileConfigUpdate: u32 = unsafe { ::core::mem::transmute(tileConfigUpdate) };
11054            tileConfigUpdate as u64
11055        });
11056        __bindgen_bitfield_unit.set(8usize, 1u8, {
11057            let enableCustomTileConfig: u32 =
11058                unsafe { ::core::mem::transmute(enableCustomTileConfig) };
11059            enableCustomTileConfig as u64
11060        });
11061        __bindgen_bitfield_unit.set(9usize, 1u8, {
11062            let filmGrainParamsUpdate: u32 =
11063                unsafe { ::core::mem::transmute(filmGrainParamsUpdate) };
11064            filmGrainParamsUpdate as u64
11065        });
11066        __bindgen_bitfield_unit.set(10usize, 22u8, {
11067            let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) };
11068            reservedBitFields as u64
11069        });
11070        __bindgen_bitfield_unit
11071    }
11072}
11073impl Default for _NV_ENC_CODEC_PIC_PARAMS {
11074    fn default() -> Self {
11075        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
11076        unsafe {
11077            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11078            s.assume_init()
11079        }
11080    }
11081}
11082impl Default for _NV_ENC_PIC_PARAMS {
11083    fn default() -> Self {
11084        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
11085        unsafe {
11086            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11087            s.assume_init()
11088        }
11089    }
11090}
11091impl Default for _NV_ENC_MEONLY_PARAMS {
11092    fn default() -> Self {
11093        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
11094        unsafe {
11095            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11096            s.assume_init()
11097        }
11098    }
11099}
11100impl Default for _NV_ENC_LOCK_BITSTREAM {
11101    fn default() -> Self {
11102        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
11103        unsafe {
11104            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11105            s.assume_init()
11106        }
11107    }
11108}
11109impl _NV_ENC_LOCK_BITSTREAM {
11110    #[inline]
11111    pub fn doNotWait(&self) -> u32 {
11112        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
11113    }
11114
11115    #[inline]
11116    pub fn set_doNotWait(&mut self, val: u32) {
11117        unsafe {
11118            let val: u32 = ::core::mem::transmute(val);
11119            self._bitfield_1.set(0usize, 1u8, val as u64)
11120        }
11121    }
11122
11123    #[inline]
11124    pub fn ltrFrame(&self) -> u32 {
11125        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
11126    }
11127
11128    #[inline]
11129    pub fn set_ltrFrame(&mut self, val: u32) {
11130        unsafe {
11131            let val: u32 = ::core::mem::transmute(val);
11132            self._bitfield_1.set(1usize, 1u8, val as u64)
11133        }
11134    }
11135
11136    #[inline]
11137    pub fn getRCStats(&self) -> u32 {
11138        unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
11139    }
11140
11141    #[inline]
11142    pub fn set_getRCStats(&mut self, val: u32) {
11143        unsafe {
11144            let val: u32 = ::core::mem::transmute(val);
11145            self._bitfield_1.set(2usize, 1u8, val as u64)
11146        }
11147    }
11148
11149    #[inline]
11150    pub fn reservedBitFields(&self) -> u32 {
11151        unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
11152    }
11153
11154    #[inline]
11155    pub fn set_reservedBitFields(&mut self, val: u32) {
11156        unsafe {
11157            let val: u32 = ::core::mem::transmute(val);
11158            self._bitfield_1.set(3usize, 29u8, val as u64)
11159        }
11160    }
11161
11162    #[inline]
11163    pub fn new_bitfield_1(
11164        doNotWait: u32,
11165        ltrFrame: u32,
11166        getRCStats: u32,
11167        reservedBitFields: u32,
11168    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
11169        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
11170        __bindgen_bitfield_unit.set(0usize, 1u8, {
11171            let doNotWait: u32 = unsafe { ::core::mem::transmute(doNotWait) };
11172            doNotWait as u64
11173        });
11174        __bindgen_bitfield_unit.set(1usize, 1u8, {
11175            let ltrFrame: u32 = unsafe { ::core::mem::transmute(ltrFrame) };
11176            ltrFrame as u64
11177        });
11178        __bindgen_bitfield_unit.set(2usize, 1u8, {
11179            let getRCStats: u32 = unsafe { ::core::mem::transmute(getRCStats) };
11180            getRCStats as u64
11181        });
11182        __bindgen_bitfield_unit.set(3usize, 29u8, {
11183            let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) };
11184            reservedBitFields as u64
11185        });
11186        __bindgen_bitfield_unit
11187    }
11188}
11189impl Default for _NV_ENC_LOCK_INPUT_BUFFER {
11190    fn default() -> Self {
11191        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
11192        unsafe {
11193            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11194            s.assume_init()
11195        }
11196    }
11197}
11198impl _NV_ENC_LOCK_INPUT_BUFFER {
11199    #[inline]
11200    pub fn doNotWait(&self) -> u32 {
11201        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
11202    }
11203
11204    #[inline]
11205    pub fn set_doNotWait(&mut self, val: u32) {
11206        unsafe {
11207            let val: u32 = ::core::mem::transmute(val);
11208            self._bitfield_1.set(0usize, 1u8, val as u64)
11209        }
11210    }
11211
11212    #[inline]
11213    pub fn reservedBitFields(&self) -> u32 {
11214        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
11215    }
11216
11217    #[inline]
11218    pub fn set_reservedBitFields(&mut self, val: u32) {
11219        unsafe {
11220            let val: u32 = ::core::mem::transmute(val);
11221            self._bitfield_1.set(1usize, 31u8, val as u64)
11222        }
11223    }
11224
11225    #[inline]
11226    pub fn new_bitfield_1(
11227        doNotWait: u32,
11228        reservedBitFields: u32,
11229    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
11230        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
11231        __bindgen_bitfield_unit.set(0usize, 1u8, {
11232            let doNotWait: u32 = unsafe { ::core::mem::transmute(doNotWait) };
11233            doNotWait as u64
11234        });
11235        __bindgen_bitfield_unit.set(1usize, 31u8, {
11236            let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) };
11237            reservedBitFields as u64
11238        });
11239        __bindgen_bitfield_unit
11240    }
11241}
11242impl Default for _NV_ENC_MAP_INPUT_RESOURCE {
11243    fn default() -> Self {
11244        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
11245        unsafe {
11246            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11247            s.assume_init()
11248        }
11249    }
11250}
11251impl Default for _NV_ENC_FENCE_POINT_D3D12 {
11252    fn default() -> Self {
11253        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
11254        unsafe {
11255            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11256            s.assume_init()
11257        }
11258    }
11259}
11260impl _NV_ENC_FENCE_POINT_D3D12 {
11261    #[inline]
11262    pub fn bWait(&self) -> u32 {
11263        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
11264    }
11265
11266    #[inline]
11267    pub fn set_bWait(&mut self, val: u32) {
11268        unsafe {
11269            let val: u32 = ::core::mem::transmute(val);
11270            self._bitfield_1.set(0usize, 1u8, val as u64)
11271        }
11272    }
11273
11274    #[inline]
11275    pub fn bSignal(&self) -> u32 {
11276        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
11277    }
11278
11279    #[inline]
11280    pub fn set_bSignal(&mut self, val: u32) {
11281        unsafe {
11282            let val: u32 = ::core::mem::transmute(val);
11283            self._bitfield_1.set(1usize, 1u8, val as u64)
11284        }
11285    }
11286
11287    #[inline]
11288    pub fn reservedBitField(&self) -> u32 {
11289        unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
11290    }
11291
11292    #[inline]
11293    pub fn set_reservedBitField(&mut self, val: u32) {
11294        unsafe {
11295            let val: u32 = ::core::mem::transmute(val);
11296            self._bitfield_1.set(2usize, 30u8, val as u64)
11297        }
11298    }
11299
11300    #[inline]
11301    pub fn new_bitfield_1(
11302        bWait: u32,
11303        bSignal: u32,
11304        reservedBitField: u32,
11305    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
11306        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
11307        __bindgen_bitfield_unit.set(0usize, 1u8, {
11308            let bWait: u32 = unsafe { ::core::mem::transmute(bWait) };
11309            bWait as u64
11310        });
11311        __bindgen_bitfield_unit.set(1usize, 1u8, {
11312            let bSignal: u32 = unsafe { ::core::mem::transmute(bSignal) };
11313            bSignal as u64
11314        });
11315        __bindgen_bitfield_unit.set(2usize, 30u8, {
11316            let reservedBitField: u32 = unsafe { ::core::mem::transmute(reservedBitField) };
11317            reservedBitField as u64
11318        });
11319        __bindgen_bitfield_unit
11320    }
11321}
11322impl Default for _NV_ENC_INPUT_RESOURCE_D3D12 {
11323    fn default() -> Self {
11324        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
11325        unsafe {
11326            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11327            s.assume_init()
11328        }
11329    }
11330}
11331impl Default for _NV_ENC_OUTPUT_RESOURCE_D3D12 {
11332    fn default() -> Self {
11333        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
11334        unsafe {
11335            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11336            s.assume_init()
11337        }
11338    }
11339}
11340impl Default for _NV_ENC_REGISTER_RESOURCE {
11341    fn default() -> Self {
11342        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
11343        unsafe {
11344            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11345            s.assume_init()
11346        }
11347    }
11348}
11349impl Default for _NV_ENC_STAT {
11350    fn default() -> Self {
11351        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
11352        unsafe {
11353            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11354            s.assume_init()
11355        }
11356    }
11357}
11358impl _NV_ENC_STAT {
11359    #[inline]
11360    pub fn ltrFrame(&self) -> u32 {
11361        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
11362    }
11363
11364    #[inline]
11365    pub fn set_ltrFrame(&mut self, val: u32) {
11366        unsafe {
11367            let val: u32 = ::core::mem::transmute(val);
11368            self._bitfield_1.set(0usize, 1u8, val as u64)
11369        }
11370    }
11371
11372    #[inline]
11373    pub fn reservedBitFields(&self) -> u32 {
11374        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
11375    }
11376
11377    #[inline]
11378    pub fn set_reservedBitFields(&mut self, val: u32) {
11379        unsafe {
11380            let val: u32 = ::core::mem::transmute(val);
11381            self._bitfield_1.set(1usize, 31u8, val as u64)
11382        }
11383    }
11384
11385    #[inline]
11386    pub fn new_bitfield_1(
11387        ltrFrame: u32,
11388        reservedBitFields: u32,
11389    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
11390        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
11391        __bindgen_bitfield_unit.set(0usize, 1u8, {
11392            let ltrFrame: u32 = unsafe { ::core::mem::transmute(ltrFrame) };
11393            ltrFrame as u64
11394        });
11395        __bindgen_bitfield_unit.set(1usize, 31u8, {
11396            let reservedBitFields: u32 = unsafe { ::core::mem::transmute(reservedBitFields) };
11397            reservedBitFields as u64
11398        });
11399        __bindgen_bitfield_unit
11400    }
11401}
11402impl Default for _NV_ENC_SEQUENCE_PARAM_PAYLOAD {
11403    fn default() -> Self {
11404        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
11405        unsafe {
11406            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11407            s.assume_init()
11408        }
11409    }
11410}
11411impl Default for _NV_ENC_EVENT_PARAMS {
11412    fn default() -> Self {
11413        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
11414        unsafe {
11415            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11416            s.assume_init()
11417        }
11418    }
11419}
11420impl Default for _NV_ENC_OPEN_ENCODE_SESSIONEX_PARAMS {
11421    fn default() -> Self {
11422        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
11423        unsafe {
11424            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11425            s.assume_init()
11426        }
11427    }
11428}
11429impl Default for _NV_ENCODE_API_FUNCTION_LIST {
11430    fn default() -> Self {
11431        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
11432        unsafe {
11433            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
11434            s.assume_init()
11435        }
11436    }
11437}
11438pub use self::{
11439    _NVENCSTATUS as NVENCSTATUS,
11440    _NV_ENC_AV1_PART_SIZE as NV_ENC_AV1_PART_SIZE,
11441    _NV_ENC_BFRAME_REF_MODE as NV_ENC_BFRAME_REF_MODE,
11442    _NV_ENC_BUFFER_FORMAT as NV_ENC_BUFFER_FORMAT,
11443    _NV_ENC_BUFFER_USAGE as NV_ENC_BUFFER_USAGE,
11444    _NV_ENC_CAPS as NV_ENC_CAPS,
11445    _NV_ENC_DEVICE_TYPE as NV_ENC_DEVICE_TYPE,
11446    _NV_ENC_DISPLAY_PIC_STRUCT as NV_ENC_DISPLAY_PIC_STRUCT,
11447    _NV_ENC_EMPHASIS_MAP_LEVEL as NV_ENC_EMPHASIS_MAP_LEVEL,
11448    _NV_ENC_H264_ADAPTIVE_TRANSFORM_MODE as NV_ENC_H264_ADAPTIVE_TRANSFORM_MODE,
11449    _NV_ENC_H264_BDIRECT_MODE as NV_ENC_H264_BDIRECT_MODE,
11450    _NV_ENC_H264_ENTROPY_CODING_MODE as NV_ENC_H264_ENTROPY_CODING_MODE,
11451    _NV_ENC_H264_FMO_MODE as NV_ENC_H264_FMO_MODE,
11452    _NV_ENC_HEVC_CUSIZE as NV_ENC_HEVC_CUSIZE,
11453    _NV_ENC_INPUT_RESOURCE_TYPE as NV_ENC_INPUT_RESOURCE_TYPE,
11454    _NV_ENC_LEVEL as NV_ENC_LEVEL,
11455    _NV_ENC_MEMORY_HEAP as NV_ENC_MEMORY_HEAP,
11456    _NV_ENC_MULTI_PASS as NV_ENC_MULTI_PASS,
11457    _NV_ENC_MV_PRECISION as NV_ENC_MV_PRECISION,
11458    _NV_ENC_NUM_REF_FRAMES as NV_ENC_NUM_REF_FRAMES,
11459    _NV_ENC_OUTPUT_STATS_LEVEL as NV_ENC_OUTPUT_STATS_LEVEL,
11460    _NV_ENC_PARAMS_FRAME_FIELD_MODE as NV_ENC_PARAMS_FRAME_FIELD_MODE,
11461    _NV_ENC_PARAMS_RC_MODE as NV_ENC_PARAMS_RC_MODE,
11462    _NV_ENC_PIC_FLAGS as NV_ENC_PIC_FLAGS,
11463    _NV_ENC_PIC_STRUCT as NV_ENC_PIC_STRUCT,
11464    _NV_ENC_PIC_TYPE as NV_ENC_PIC_TYPE,
11465    _NV_ENC_QP_MAP_MODE as NV_ENC_QP_MAP_MODE,
11466    _NV_ENC_SPLIT_ENCODE_MODE as NV_ENC_SPLIT_ENCODE_MODE,
11467    _NV_ENC_STATE_RESTORE_TYPE as NV_ENC_STATE_RESTORE_TYPE,
11468    _NV_ENC_STEREO_PACKING_MODE as NV_ENC_STEREO_PACKING_MODE,
11469    _NV_ENC_VUI_COLOR_PRIMARIES as NV_ENC_VUI_COLOR_PRIMARIES,
11470    _NV_ENC_VUI_MATRIX_COEFFS as NV_ENC_VUI_MATRIX_COEFFS,
11471    _NV_ENC_VUI_TRANSFER_CHARACTERISTIC as NV_ENC_VUI_TRANSFER_CHARACTERISTIC,
11472    _NV_ENC_VUI_VIDEO_FORMAT as NV_ENC_VUI_VIDEO_FORMAT,
11473};
11474extern "C" {
11475    #[must_use]
11476    pub fn NvEncOpenEncodeSession(
11477        device: *mut ::core::ffi::c_void,
11478        deviceType: u32,
11479        encoder: *mut *mut ::core::ffi::c_void,
11480    ) -> NVENCSTATUS;
11481    #[must_use]
11482    pub fn NvEncGetEncodeGUIDCount(
11483        encoder: *mut ::core::ffi::c_void,
11484        encodeGUIDCount: *mut u32,
11485    ) -> NVENCSTATUS;
11486    #[must_use]
11487    pub fn NvEncGetEncodeGUIDs(
11488        encoder: *mut ::core::ffi::c_void,
11489        GUIDs: *mut GUID,
11490        guidArraySize: u32,
11491        GUIDCount: *mut u32,
11492    ) -> NVENCSTATUS;
11493    #[must_use]
11494    pub fn NvEncGetEncodeProfileGUIDCount(
11495        encoder: *mut ::core::ffi::c_void,
11496        encodeGUID: GUID,
11497        encodeProfileGUIDCount: *mut u32,
11498    ) -> NVENCSTATUS;
11499    #[must_use]
11500    pub fn NvEncGetEncodeProfileGUIDs(
11501        encoder: *mut ::core::ffi::c_void,
11502        encodeGUID: GUID,
11503        profileGUIDs: *mut GUID,
11504        guidArraySize: u32,
11505        GUIDCount: *mut u32,
11506    ) -> NVENCSTATUS;
11507    #[must_use]
11508    pub fn NvEncGetInputFormatCount(
11509        encoder: *mut ::core::ffi::c_void,
11510        encodeGUID: GUID,
11511        inputFmtCount: *mut u32,
11512    ) -> NVENCSTATUS;
11513    #[must_use]
11514    pub fn NvEncGetInputFormats(
11515        encoder: *mut ::core::ffi::c_void,
11516        encodeGUID: GUID,
11517        inputFmts: *mut NV_ENC_BUFFER_FORMAT,
11518        inputFmtArraySize: u32,
11519        inputFmtCount: *mut u32,
11520    ) -> NVENCSTATUS;
11521    #[must_use]
11522    pub fn NvEncGetEncodeCaps(
11523        encoder: *mut ::core::ffi::c_void,
11524        encodeGUID: GUID,
11525        capsParam: *mut NV_ENC_CAPS_PARAM,
11526        capsVal: *mut ::core::ffi::c_int,
11527    ) -> NVENCSTATUS;
11528    #[must_use]
11529    pub fn NvEncGetEncodePresetCount(
11530        encoder: *mut ::core::ffi::c_void,
11531        encodeGUID: GUID,
11532        encodePresetGUIDCount: *mut u32,
11533    ) -> NVENCSTATUS;
11534    #[must_use]
11535    pub fn NvEncGetEncodePresetGUIDs(
11536        encoder: *mut ::core::ffi::c_void,
11537        encodeGUID: GUID,
11538        presetGUIDs: *mut GUID,
11539        guidArraySize: u32,
11540        encodePresetGUIDCount: *mut u32,
11541    ) -> NVENCSTATUS;
11542    #[must_use]
11543    pub fn NvEncGetEncodePresetConfig(
11544        encoder: *mut ::core::ffi::c_void,
11545        encodeGUID: GUID,
11546        presetGUID: GUID,
11547        presetConfig: *mut NV_ENC_PRESET_CONFIG,
11548    ) -> NVENCSTATUS;
11549    #[must_use]
11550    pub fn NvEncGetEncodePresetConfigEx(
11551        encoder: *mut ::core::ffi::c_void,
11552        encodeGUID: GUID,
11553        presetGUID: GUID,
11554        tuningInfo: NV_ENC_TUNING_INFO,
11555        presetConfig: *mut NV_ENC_PRESET_CONFIG,
11556    ) -> NVENCSTATUS;
11557    #[must_use]
11558    pub fn NvEncInitializeEncoder(
11559        encoder: *mut ::core::ffi::c_void,
11560        createEncodeParams: *mut NV_ENC_INITIALIZE_PARAMS,
11561    ) -> NVENCSTATUS;
11562    #[must_use]
11563    pub fn NvEncCreateInputBuffer(
11564        encoder: *mut ::core::ffi::c_void,
11565        createInputBufferParams: *mut NV_ENC_CREATE_INPUT_BUFFER,
11566    ) -> NVENCSTATUS;
11567    #[must_use]
11568    pub fn NvEncDestroyInputBuffer(
11569        encoder: *mut ::core::ffi::c_void,
11570        inputBuffer: NV_ENC_INPUT_PTR,
11571    ) -> NVENCSTATUS;
11572    #[must_use]
11573    pub fn NvEncSetIOCudaStreams(
11574        encoder: *mut ::core::ffi::c_void,
11575        inputStream: NV_ENC_CUSTREAM_PTR,
11576        outputStream: NV_ENC_CUSTREAM_PTR,
11577    ) -> NVENCSTATUS;
11578    #[must_use]
11579    pub fn NvEncCreateBitstreamBuffer(
11580        encoder: *mut ::core::ffi::c_void,
11581        createBitstreamBufferParams: *mut NV_ENC_CREATE_BITSTREAM_BUFFER,
11582    ) -> NVENCSTATUS;
11583    #[must_use]
11584    pub fn NvEncDestroyBitstreamBuffer(
11585        encoder: *mut ::core::ffi::c_void,
11586        bitstreamBuffer: NV_ENC_OUTPUT_PTR,
11587    ) -> NVENCSTATUS;
11588    #[must_use]
11589    pub fn NvEncEncodePicture(
11590        encoder: *mut ::core::ffi::c_void,
11591        encodePicParams: *mut NV_ENC_PIC_PARAMS,
11592    ) -> NVENCSTATUS;
11593    #[must_use]
11594    pub fn NvEncLockBitstream(
11595        encoder: *mut ::core::ffi::c_void,
11596        lockBitstreamBufferParams: *mut NV_ENC_LOCK_BITSTREAM,
11597    ) -> NVENCSTATUS;
11598    #[must_use]
11599    pub fn NvEncUnlockBitstream(
11600        encoder: *mut ::core::ffi::c_void,
11601        bitstreamBuffer: NV_ENC_OUTPUT_PTR,
11602    ) -> NVENCSTATUS;
11603    #[must_use]
11604    pub fn NvEncRestoreEncoderState(
11605        encoder: *mut ::core::ffi::c_void,
11606        restoreState: *mut NV_ENC_RESTORE_ENCODER_STATE_PARAMS,
11607    ) -> NVENCSTATUS;
11608    #[must_use]
11609    pub fn NvEncLockInputBuffer(
11610        encoder: *mut ::core::ffi::c_void,
11611        lockInputBufferParams: *mut NV_ENC_LOCK_INPUT_BUFFER,
11612    ) -> NVENCSTATUS;
11613    #[must_use]
11614    pub fn NvEncUnlockInputBuffer(
11615        encoder: *mut ::core::ffi::c_void,
11616        inputBuffer: NV_ENC_INPUT_PTR,
11617    ) -> NVENCSTATUS;
11618    #[must_use]
11619    pub fn NvEncGetEncodeStats(
11620        encoder: *mut ::core::ffi::c_void,
11621        encodeStats: *mut NV_ENC_STAT,
11622    ) -> NVENCSTATUS;
11623    #[must_use]
11624    pub fn NvEncGetSequenceParams(
11625        encoder: *mut ::core::ffi::c_void,
11626        sequenceParamPayload: *mut NV_ENC_SEQUENCE_PARAM_PAYLOAD,
11627    ) -> NVENCSTATUS;
11628    #[must_use]
11629    pub fn NvEncGetSequenceParamEx(
11630        encoder: *mut ::core::ffi::c_void,
11631        encInitParams: *mut NV_ENC_INITIALIZE_PARAMS,
11632        sequenceParamPayload: *mut NV_ENC_SEQUENCE_PARAM_PAYLOAD,
11633    ) -> NVENCSTATUS;
11634    #[must_use]
11635    pub fn NvEncRegisterAsyncEvent(
11636        encoder: *mut ::core::ffi::c_void,
11637        eventParams: *mut NV_ENC_EVENT_PARAMS,
11638    ) -> NVENCSTATUS;
11639    #[must_use]
11640    pub fn NvEncUnregisterAsyncEvent(
11641        encoder: *mut ::core::ffi::c_void,
11642        eventParams: *mut NV_ENC_EVENT_PARAMS,
11643    ) -> NVENCSTATUS;
11644    #[must_use]
11645    pub fn NvEncMapInputResource(
11646        encoder: *mut ::core::ffi::c_void,
11647        mapInputResParams: *mut NV_ENC_MAP_INPUT_RESOURCE,
11648    ) -> NVENCSTATUS;
11649    #[must_use]
11650    pub fn NvEncUnmapInputResource(
11651        encoder: *mut ::core::ffi::c_void,
11652        mappedInputBuffer: NV_ENC_INPUT_PTR,
11653    ) -> NVENCSTATUS;
11654    #[must_use]
11655    pub fn NvEncDestroyEncoder(encoder: *mut ::core::ffi::c_void) -> NVENCSTATUS;
11656    #[must_use]
11657    pub fn NvEncInvalidateRefFrames(
11658        encoder: *mut ::core::ffi::c_void,
11659        invalidRefFrameTimeStamp: u64,
11660    ) -> NVENCSTATUS;
11661    #[must_use]
11662    pub fn NvEncOpenEncodeSessionEx(
11663        openSessionExParams: *mut NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS,
11664        encoder: *mut *mut ::core::ffi::c_void,
11665    ) -> NVENCSTATUS;
11666    #[must_use]
11667    pub fn NvEncRegisterResource(
11668        encoder: *mut ::core::ffi::c_void,
11669        registerResParams: *mut NV_ENC_REGISTER_RESOURCE,
11670    ) -> NVENCSTATUS;
11671    #[must_use]
11672    pub fn NvEncUnregisterResource(
11673        encoder: *mut ::core::ffi::c_void,
11674        registeredResource: NV_ENC_REGISTERED_PTR,
11675    ) -> NVENCSTATUS;
11676    #[must_use]
11677    pub fn NvEncReconfigureEncoder(
11678        encoder: *mut ::core::ffi::c_void,
11679        reInitEncodeParams: *mut NV_ENC_RECONFIGURE_PARAMS,
11680    ) -> NVENCSTATUS;
11681    #[must_use]
11682    pub fn NvEncCreateMVBuffer(
11683        encoder: *mut ::core::ffi::c_void,
11684        createMVBufferParams: *mut NV_ENC_CREATE_MV_BUFFER,
11685    ) -> NVENCSTATUS;
11686    #[must_use]
11687    pub fn NvEncDestroyMVBuffer(
11688        encoder: *mut ::core::ffi::c_void,
11689        mvBuffer: NV_ENC_OUTPUT_PTR,
11690    ) -> NVENCSTATUS;
11691    #[must_use]
11692    pub fn NvEncRunMotionEstimationOnly(
11693        encoder: *mut ::core::ffi::c_void,
11694        meOnlyParams: *mut NV_ENC_MEONLY_PARAMS,
11695    ) -> NVENCSTATUS;
11696    #[must_use]
11697    pub fn NvEncodeAPIGetMaxSupportedVersion(version: *mut u32) -> NVENCSTATUS;
11698    pub fn NvEncGetLastErrorString(encoder: *mut ::core::ffi::c_void)
11699        -> *const ::core::ffi::c_char;
11700    #[must_use]
11701    pub fn NvEncLookaheadPicture(
11702        encoder: *mut ::core::ffi::c_void,
11703        lookaheadParamas: *mut NV_ENC_LOOKAHEAD_PIC_PARAMS,
11704    ) -> NVENCSTATUS;
11705    #[must_use]
11706    pub fn NvEncodeAPICreateInstance(functionList: *mut NV_ENCODE_API_FUNCTION_LIST)
11707        -> NVENCSTATUS;
11708}