nvidia_video_codec_sdk/sys/windows_sys/
nvEncodeAPI.rs

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