media_codec_vpx_sys/opt/rustwide/workdir/generated/
vpx.rs

1/* automatically generated by rust-bindgen 0.72.0 */
2
3pub const VPX_IMAGE_ABI_VERSION: u32 = 5;
4pub const VPX_IMG_FMT_PLANAR: u32 = 256;
5pub const VPX_IMG_FMT_UV_FLIP: u32 = 512;
6pub const VPX_IMG_FMT_HAS_ALPHA: u32 = 1024;
7pub const VPX_IMG_FMT_HIGHBITDEPTH: u32 = 2048;
8pub const VPX_PLANE_PACKED: u32 = 0;
9pub const VPX_PLANE_Y: u32 = 0;
10pub const VPX_PLANE_U: u32 = 1;
11pub const VPX_PLANE_V: u32 = 2;
12pub const VPX_PLANE_ALPHA: u32 = 3;
13pub const _VCRT_COMPILER_PREPROCESSOR: u32 = 1;
14pub const _SAL_VERSION: u32 = 20;
15pub const __SAL_H_VERSION: u32 = 180000000;
16pub const _USE_DECLSPECS_FOR_SAL: u32 = 0;
17pub const _USE_ATTRIBUTES_FOR_SAL: u32 = 0;
18pub const _CRT_PACKING: u32 = 8;
19pub const _HAS_EXCEPTIONS: u32 = 1;
20pub const _STL_LANG: u32 = 0;
21pub const _HAS_CXX17: u32 = 0;
22pub const _HAS_CXX20: u32 = 0;
23pub const _HAS_CXX23: u32 = 0;
24pub const _HAS_NODISCARD: u32 = 0;
25pub const _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE: u32 = 1;
26pub const _CRT_BUILD_DESKTOP_APP: u32 = 1;
27pub const _ARGMAX: u32 = 100;
28pub const _CRT_INT_MAX: u32 = 2147483647;
29pub const _CRT_FUNCTIONS_REQUIRED: u32 = 1;
30pub const _CRT_HAS_CXX17: u32 = 0;
31pub const _CRT_HAS_C11: u32 = 1;
32pub const _CRT_INTERNAL_NONSTDC_NAMES: u32 = 1;
33pub const __STDC_SECURE_LIB__: u32 = 200411;
34pub const __GOT_SECURE_LIB__: u32 = 200411;
35pub const __STDC_WANT_SECURE_LIB__: u32 = 1;
36pub const _SECURECRT_FILL_BUFFER_PATTERN: u32 = 254;
37pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES: u32 = 0;
38pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT: u32 = 0;
39pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES: u32 = 1;
40pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY: u32 = 0;
41pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY: u32 = 0;
42pub const WCHAR_MIN: u32 = 0;
43pub const WCHAR_MAX: u32 = 65535;
44pub const WINT_MIN: u32 = 0;
45pub const WINT_MAX: u32 = 65535;
46pub const PRId8: &[u8; 4] = b"hhd\0";
47pub const PRId16: &[u8; 3] = b"hd\0";
48pub const PRId32: &[u8; 2] = b"d\0";
49pub const PRId64: &[u8; 4] = b"lld\0";
50pub const PRIdLEAST8: &[u8; 4] = b"hhd\0";
51pub const PRIdLEAST16: &[u8; 3] = b"hd\0";
52pub const PRIdLEAST32: &[u8; 2] = b"d\0";
53pub const PRIdLEAST64: &[u8; 4] = b"lld\0";
54pub const PRIdFAST8: &[u8; 4] = b"hhd\0";
55pub const PRIdFAST16: &[u8; 2] = b"d\0";
56pub const PRIdFAST32: &[u8; 2] = b"d\0";
57pub const PRIdFAST64: &[u8; 4] = b"lld\0";
58pub const PRIdMAX: &[u8; 4] = b"lld\0";
59pub const PRIdPTR: &[u8; 4] = b"lld\0";
60pub const PRIi8: &[u8; 4] = b"hhi\0";
61pub const PRIi16: &[u8; 3] = b"hi\0";
62pub const PRIi32: &[u8; 2] = b"i\0";
63pub const PRIi64: &[u8; 4] = b"lli\0";
64pub const PRIiLEAST8: &[u8; 4] = b"hhi\0";
65pub const PRIiLEAST16: &[u8; 3] = b"hi\0";
66pub const PRIiLEAST32: &[u8; 2] = b"i\0";
67pub const PRIiLEAST64: &[u8; 4] = b"lli\0";
68pub const PRIiFAST8: &[u8; 4] = b"hhi\0";
69pub const PRIiFAST16: &[u8; 2] = b"i\0";
70pub const PRIiFAST32: &[u8; 2] = b"i\0";
71pub const PRIiFAST64: &[u8; 4] = b"lli\0";
72pub const PRIiMAX: &[u8; 4] = b"lli\0";
73pub const PRIiPTR: &[u8; 4] = b"lli\0";
74pub const PRIo8: &[u8; 4] = b"hho\0";
75pub const PRIo16: &[u8; 3] = b"ho\0";
76pub const PRIo32: &[u8; 2] = b"o\0";
77pub const PRIo64: &[u8; 4] = b"llo\0";
78pub const PRIoLEAST8: &[u8; 4] = b"hho\0";
79pub const PRIoLEAST16: &[u8; 3] = b"ho\0";
80pub const PRIoLEAST32: &[u8; 2] = b"o\0";
81pub const PRIoLEAST64: &[u8; 4] = b"llo\0";
82pub const PRIoFAST8: &[u8; 4] = b"hho\0";
83pub const PRIoFAST16: &[u8; 2] = b"o\0";
84pub const PRIoFAST32: &[u8; 2] = b"o\0";
85pub const PRIoFAST64: &[u8; 4] = b"llo\0";
86pub const PRIoMAX: &[u8; 4] = b"llo\0";
87pub const PRIoPTR: &[u8; 4] = b"llo\0";
88pub const PRIu8: &[u8; 4] = b"hhu\0";
89pub const PRIu16: &[u8; 3] = b"hu\0";
90pub const PRIu32: &[u8; 2] = b"u\0";
91pub const PRIu64: &[u8; 4] = b"llu\0";
92pub const PRIuLEAST8: &[u8; 4] = b"hhu\0";
93pub const PRIuLEAST16: &[u8; 3] = b"hu\0";
94pub const PRIuLEAST32: &[u8; 2] = b"u\0";
95pub const PRIuLEAST64: &[u8; 4] = b"llu\0";
96pub const PRIuFAST8: &[u8; 4] = b"hhu\0";
97pub const PRIuFAST16: &[u8; 2] = b"u\0";
98pub const PRIuFAST32: &[u8; 2] = b"u\0";
99pub const PRIuFAST64: &[u8; 4] = b"llu\0";
100pub const PRIuMAX: &[u8; 4] = b"llu\0";
101pub const PRIuPTR: &[u8; 4] = b"llu\0";
102pub const PRIx8: &[u8; 4] = b"hhx\0";
103pub const PRIx16: &[u8; 3] = b"hx\0";
104pub const PRIx32: &[u8; 2] = b"x\0";
105pub const PRIx64: &[u8; 4] = b"llx\0";
106pub const PRIxLEAST8: &[u8; 4] = b"hhx\0";
107pub const PRIxLEAST16: &[u8; 3] = b"hx\0";
108pub const PRIxLEAST32: &[u8; 2] = b"x\0";
109pub const PRIxLEAST64: &[u8; 4] = b"llx\0";
110pub const PRIxFAST8: &[u8; 4] = b"hhx\0";
111pub const PRIxFAST16: &[u8; 2] = b"x\0";
112pub const PRIxFAST32: &[u8; 2] = b"x\0";
113pub const PRIxFAST64: &[u8; 4] = b"llx\0";
114pub const PRIxMAX: &[u8; 4] = b"llx\0";
115pub const PRIxPTR: &[u8; 4] = b"llx\0";
116pub const PRIX8: &[u8; 4] = b"hhX\0";
117pub const PRIX16: &[u8; 3] = b"hX\0";
118pub const PRIX32: &[u8; 2] = b"X\0";
119pub const PRIX64: &[u8; 4] = b"llX\0";
120pub const PRIXLEAST8: &[u8; 4] = b"hhX\0";
121pub const PRIXLEAST16: &[u8; 3] = b"hX\0";
122pub const PRIXLEAST32: &[u8; 2] = b"X\0";
123pub const PRIXLEAST64: &[u8; 4] = b"llX\0";
124pub const PRIXFAST8: &[u8; 4] = b"hhX\0";
125pub const PRIXFAST16: &[u8; 2] = b"X\0";
126pub const PRIXFAST32: &[u8; 2] = b"X\0";
127pub const PRIXFAST64: &[u8; 4] = b"llX\0";
128pub const PRIXMAX: &[u8; 4] = b"llX\0";
129pub const PRIXPTR: &[u8; 4] = b"llX\0";
130pub const SCNd8: &[u8; 4] = b"hhd\0";
131pub const SCNd16: &[u8; 3] = b"hd\0";
132pub const SCNd32: &[u8; 2] = b"d\0";
133pub const SCNd64: &[u8; 4] = b"lld\0";
134pub const SCNdLEAST8: &[u8; 4] = b"hhd\0";
135pub const SCNdLEAST16: &[u8; 3] = b"hd\0";
136pub const SCNdLEAST32: &[u8; 2] = b"d\0";
137pub const SCNdLEAST64: &[u8; 4] = b"lld\0";
138pub const SCNdFAST8: &[u8; 4] = b"hhd\0";
139pub const SCNdFAST16: &[u8; 2] = b"d\0";
140pub const SCNdFAST32: &[u8; 2] = b"d\0";
141pub const SCNdFAST64: &[u8; 4] = b"lld\0";
142pub const SCNdMAX: &[u8; 4] = b"lld\0";
143pub const SCNdPTR: &[u8; 4] = b"lld\0";
144pub const SCNi8: &[u8; 4] = b"hhi\0";
145pub const SCNi16: &[u8; 3] = b"hi\0";
146pub const SCNi32: &[u8; 2] = b"i\0";
147pub const SCNi64: &[u8; 4] = b"lli\0";
148pub const SCNiLEAST8: &[u8; 4] = b"hhi\0";
149pub const SCNiLEAST16: &[u8; 3] = b"hi\0";
150pub const SCNiLEAST32: &[u8; 2] = b"i\0";
151pub const SCNiLEAST64: &[u8; 4] = b"lli\0";
152pub const SCNiFAST8: &[u8; 4] = b"hhi\0";
153pub const SCNiFAST16: &[u8; 2] = b"i\0";
154pub const SCNiFAST32: &[u8; 2] = b"i\0";
155pub const SCNiFAST64: &[u8; 4] = b"lli\0";
156pub const SCNiMAX: &[u8; 4] = b"lli\0";
157pub const SCNiPTR: &[u8; 4] = b"lli\0";
158pub const SCNo8: &[u8; 4] = b"hho\0";
159pub const SCNo16: &[u8; 3] = b"ho\0";
160pub const SCNo32: &[u8; 2] = b"o\0";
161pub const SCNo64: &[u8; 4] = b"llo\0";
162pub const SCNoLEAST8: &[u8; 4] = b"hho\0";
163pub const SCNoLEAST16: &[u8; 3] = b"ho\0";
164pub const SCNoLEAST32: &[u8; 2] = b"o\0";
165pub const SCNoLEAST64: &[u8; 4] = b"llo\0";
166pub const SCNoFAST8: &[u8; 4] = b"hho\0";
167pub const SCNoFAST16: &[u8; 2] = b"o\0";
168pub const SCNoFAST32: &[u8; 2] = b"o\0";
169pub const SCNoFAST64: &[u8; 4] = b"llo\0";
170pub const SCNoMAX: &[u8; 4] = b"llo\0";
171pub const SCNoPTR: &[u8; 4] = b"llo\0";
172pub const SCNu8: &[u8; 4] = b"hhu\0";
173pub const SCNu16: &[u8; 3] = b"hu\0";
174pub const SCNu32: &[u8; 2] = b"u\0";
175pub const SCNu64: &[u8; 4] = b"llu\0";
176pub const SCNuLEAST8: &[u8; 4] = b"hhu\0";
177pub const SCNuLEAST16: &[u8; 3] = b"hu\0";
178pub const SCNuLEAST32: &[u8; 2] = b"u\0";
179pub const SCNuLEAST64: &[u8; 4] = b"llu\0";
180pub const SCNuFAST8: &[u8; 4] = b"hhu\0";
181pub const SCNuFAST16: &[u8; 2] = b"u\0";
182pub const SCNuFAST32: &[u8; 2] = b"u\0";
183pub const SCNuFAST64: &[u8; 4] = b"llu\0";
184pub const SCNuMAX: &[u8; 4] = b"llu\0";
185pub const SCNuPTR: &[u8; 4] = b"llu\0";
186pub const SCNx8: &[u8; 4] = b"hhx\0";
187pub const SCNx16: &[u8; 3] = b"hx\0";
188pub const SCNx32: &[u8; 2] = b"x\0";
189pub const SCNx64: &[u8; 4] = b"llx\0";
190pub const SCNxLEAST8: &[u8; 4] = b"hhx\0";
191pub const SCNxLEAST16: &[u8; 3] = b"hx\0";
192pub const SCNxLEAST32: &[u8; 2] = b"x\0";
193pub const SCNxLEAST64: &[u8; 4] = b"llx\0";
194pub const SCNxFAST8: &[u8; 4] = b"hhx\0";
195pub const SCNxFAST16: &[u8; 2] = b"x\0";
196pub const SCNxFAST32: &[u8; 2] = b"x\0";
197pub const SCNxFAST64: &[u8; 4] = b"llx\0";
198pub const SCNxMAX: &[u8; 4] = b"llx\0";
199pub const SCNxPTR: &[u8; 4] = b"llx\0";
200pub const VPX_CODEC_ABI_VERSION: u32 = 9;
201pub const VPX_CODEC_CAP_DECODER: u32 = 1;
202pub const VPX_CODEC_CAP_ENCODER: u32 = 2;
203pub const VPX_CODEC_CAP_HIGHBITDEPTH: u32 = 4;
204pub const VPX_TPL_ABI_VERSION: u32 = 4;
205pub const VPX_EXT_RATECTRL_ABI_VERSION: u32 = 10;
206pub const VPX_RC_MAX_STATIC_GF_GROUP_LENGTH: u32 = 250;
207pub const VPX_RC_MAX_REF_FRAMES: u32 = 4;
208pub const VPX_DEFAULT_Q: i32 = -1;
209pub const VPX_DEFAULT_RDMULT: i32 = -1;
210pub const VPX_TS_MAX_PERIODICITY: u32 = 16;
211pub const VPX_TS_MAX_LAYERS: u32 = 5;
212pub const VPX_MAX_LAYERS: u32 = 12;
213pub const VPX_SS_MAX_LAYERS: u32 = 5;
214pub const VPX_SS_DEFAULT_LAYERS: u32 = 1;
215pub const VPX_ENCODER_ABI_VERSION: u32 = 37;
216pub const VPX_CODEC_CAP_PSNR: u32 = 65536;
217pub const VPX_CODEC_CAP_OUTPUT_PARTITION: u32 = 131072;
218pub const VPX_CODEC_USE_PSNR: u32 = 65536;
219pub const VPX_CODEC_USE_OUTPUT_PARTITION: u32 = 131072;
220pub const VPX_CODEC_USE_HIGHBITDEPTH: u32 = 262144;
221pub const VPX_FRAME_IS_KEY: u32 = 1;
222pub const VPX_FRAME_IS_DROPPABLE: u32 = 2;
223pub const VPX_FRAME_IS_INVISIBLE: u32 = 4;
224pub const VPX_FRAME_IS_FRAGMENT: u32 = 8;
225pub const VPX_ERROR_RESILIENT_DEFAULT: u32 = 1;
226pub const VPX_ERROR_RESILIENT_PARTITIONS: u32 = 2;
227pub const VPX_EFLAG_FORCE_KF: u32 = 1;
228pub const VPX_DL_REALTIME: u32 = 1;
229pub const VPX_DL_GOOD_QUALITY: u32 = 1000000;
230pub const VPX_DL_BEST_QUALITY: u32 = 0;
231pub const VP8_EFLAG_NO_REF_LAST: u32 = 65536;
232pub const VP8_EFLAG_NO_REF_GF: u32 = 131072;
233pub const VP8_EFLAG_NO_REF_ARF: u32 = 2097152;
234pub const VP8_EFLAG_NO_UPD_LAST: u32 = 262144;
235pub const VP8_EFLAG_NO_UPD_GF: u32 = 4194304;
236pub const VP8_EFLAG_NO_UPD_ARF: u32 = 8388608;
237pub const VP8_EFLAG_FORCE_GF: u32 = 524288;
238pub const VP8_EFLAG_FORCE_ARF: u32 = 16777216;
239pub const VP8_EFLAG_NO_UPD_ENTROPY: u32 = 1048576;
240pub const VPX_MAXIMUM_WORK_BUFFERS: u32 = 8;
241pub const VP9_MAXIMUM_REF_BUFFERS: u32 = 8;
242pub const VPX_DECODER_ABI_VERSION: u32 = 12;
243pub const VPX_CODEC_CAP_PUT_SLICE: u32 = 65536;
244pub const VPX_CODEC_CAP_PUT_FRAME: u32 = 131072;
245pub const VPX_CODEC_CAP_POSTPROC: u32 = 262144;
246pub const VPX_CODEC_CAP_ERROR_CONCEALMENT: u32 = 524288;
247pub const VPX_CODEC_CAP_INPUT_FRAGMENTS: u32 = 1048576;
248pub const VPX_CODEC_CAP_FRAME_THREADING: u32 = 2097152;
249pub const VPX_CODEC_CAP_EXTERNAL_FRAME_BUFFER: u32 = 4194304;
250pub const VPX_CODEC_USE_POSTPROC: u32 = 65536;
251pub const VPX_CODEC_USE_ERROR_CONCEALMENT: u32 = 131072;
252pub const VPX_CODEC_USE_INPUT_FRAGMENTS: u32 = 262144;
253pub const VPX_CODEC_USE_FRAME_THREADING: u32 = 524288;
254#[repr(i32)]
255#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
256pub enum vpx_img_fmt {
257    VPX_IMG_FMT_NONE = 0,
258    VPX_IMG_FMT_YV12 = 769,
259    VPX_IMG_FMT_I420 = 258,
260    VPX_IMG_FMT_I422 = 261,
261    VPX_IMG_FMT_I444 = 262,
262    VPX_IMG_FMT_I440 = 263,
263    VPX_IMG_FMT_NV12 = 265,
264    VPX_IMG_FMT_I42016 = 2306,
265    VPX_IMG_FMT_I42216 = 2309,
266    VPX_IMG_FMT_I44416 = 2310,
267    VPX_IMG_FMT_I44016 = 2311,
268}
269pub use self::vpx_img_fmt as vpx_img_fmt_t;
270#[repr(i32)]
271#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
272pub enum vpx_color_space {
273    VPX_CS_UNKNOWN = 0,
274    VPX_CS_BT_601 = 1,
275    VPX_CS_BT_709 = 2,
276    VPX_CS_SMPTE_170 = 3,
277    VPX_CS_SMPTE_240 = 4,
278    VPX_CS_BT_2020 = 5,
279    VPX_CS_RESERVED = 6,
280    VPX_CS_SRGB = 7,
281}
282pub use self::vpx_color_space as vpx_color_space_t;
283#[repr(i32)]
284#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
285pub enum vpx_color_range {
286    VPX_CR_STUDIO_RANGE = 0,
287    VPX_CR_FULL_RANGE = 1,
288}
289pub use self::vpx_color_range as vpx_color_range_t;
290#[repr(C)]
291#[derive(Debug, Copy, Clone)]
292pub struct vpx_image {
293    pub fmt: vpx_img_fmt_t,
294    pub cs: vpx_color_space_t,
295    pub range: vpx_color_range_t,
296    pub w: ::std::os::raw::c_uint,
297    pub h: ::std::os::raw::c_uint,
298    pub bit_depth: ::std::os::raw::c_uint,
299    pub d_w: ::std::os::raw::c_uint,
300    pub d_h: ::std::os::raw::c_uint,
301    pub r_w: ::std::os::raw::c_uint,
302    pub r_h: ::std::os::raw::c_uint,
303    pub x_chroma_shift: ::std::os::raw::c_uint,
304    pub y_chroma_shift: ::std::os::raw::c_uint,
305    pub planes: [*mut ::std::os::raw::c_uchar; 4usize],
306    pub stride: [::std::os::raw::c_int; 4usize],
307    pub bps: ::std::os::raw::c_int,
308    pub user_priv: *mut ::std::os::raw::c_void,
309    pub img_data: *mut ::std::os::raw::c_uchar,
310    pub img_data_owner: ::std::os::raw::c_int,
311    pub self_allocd: ::std::os::raw::c_int,
312    pub fb_priv: *mut ::std::os::raw::c_void,
313}
314#[allow(clippy::unnecessary_operation, clippy::identity_op)]
315const _: () = {
316    ["Size of vpx_image"][::std::mem::size_of::<vpx_image>() - 136usize];
317    ["Alignment of vpx_image"][::std::mem::align_of::<vpx_image>() - 8usize];
318    ["Offset of field: vpx_image::fmt"][::std::mem::offset_of!(vpx_image, fmt) - 0usize];
319    ["Offset of field: vpx_image::cs"][::std::mem::offset_of!(vpx_image, cs) - 4usize];
320    ["Offset of field: vpx_image::range"][::std::mem::offset_of!(vpx_image, range) - 8usize];
321    ["Offset of field: vpx_image::w"][::std::mem::offset_of!(vpx_image, w) - 12usize];
322    ["Offset of field: vpx_image::h"][::std::mem::offset_of!(vpx_image, h) - 16usize];
323    ["Offset of field: vpx_image::bit_depth"][::std::mem::offset_of!(vpx_image, bit_depth) - 20usize];
324    ["Offset of field: vpx_image::d_w"][::std::mem::offset_of!(vpx_image, d_w) - 24usize];
325    ["Offset of field: vpx_image::d_h"][::std::mem::offset_of!(vpx_image, d_h) - 28usize];
326    ["Offset of field: vpx_image::r_w"][::std::mem::offset_of!(vpx_image, r_w) - 32usize];
327    ["Offset of field: vpx_image::r_h"][::std::mem::offset_of!(vpx_image, r_h) - 36usize];
328    ["Offset of field: vpx_image::x_chroma_shift"][::std::mem::offset_of!(vpx_image, x_chroma_shift) - 40usize];
329    ["Offset of field: vpx_image::y_chroma_shift"][::std::mem::offset_of!(vpx_image, y_chroma_shift) - 44usize];
330    ["Offset of field: vpx_image::planes"][::std::mem::offset_of!(vpx_image, planes) - 48usize];
331    ["Offset of field: vpx_image::stride"][::std::mem::offset_of!(vpx_image, stride) - 80usize];
332    ["Offset of field: vpx_image::bps"][::std::mem::offset_of!(vpx_image, bps) - 96usize];
333    ["Offset of field: vpx_image::user_priv"][::std::mem::offset_of!(vpx_image, user_priv) - 104usize];
334    ["Offset of field: vpx_image::img_data"][::std::mem::offset_of!(vpx_image, img_data) - 112usize];
335    ["Offset of field: vpx_image::img_data_owner"][::std::mem::offset_of!(vpx_image, img_data_owner) - 120usize];
336    ["Offset of field: vpx_image::self_allocd"][::std::mem::offset_of!(vpx_image, self_allocd) - 124usize];
337    ["Offset of field: vpx_image::fb_priv"][::std::mem::offset_of!(vpx_image, fb_priv) - 128usize];
338};
339pub type vpx_image_t = vpx_image;
340#[repr(C)]
341#[derive(Debug, Copy, Clone)]
342pub struct vpx_image_rect {
343    pub x: ::std::os::raw::c_uint,
344    pub y: ::std::os::raw::c_uint,
345    pub w: ::std::os::raw::c_uint,
346    pub h: ::std::os::raw::c_uint,
347}
348#[allow(clippy::unnecessary_operation, clippy::identity_op)]
349const _: () = {
350    ["Size of vpx_image_rect"][::std::mem::size_of::<vpx_image_rect>() - 16usize];
351    ["Alignment of vpx_image_rect"][::std::mem::align_of::<vpx_image_rect>() - 4usize];
352    ["Offset of field: vpx_image_rect::x"][::std::mem::offset_of!(vpx_image_rect, x) - 0usize];
353    ["Offset of field: vpx_image_rect::y"][::std::mem::offset_of!(vpx_image_rect, y) - 4usize];
354    ["Offset of field: vpx_image_rect::w"][::std::mem::offset_of!(vpx_image_rect, w) - 8usize];
355    ["Offset of field: vpx_image_rect::h"][::std::mem::offset_of!(vpx_image_rect, h) - 12usize];
356};
357pub type vpx_image_rect_t = vpx_image_rect;
358unsafe extern "C" {
359    pub fn vpx_img_alloc(
360        img: *mut vpx_image_t,
361        fmt: vpx_img_fmt_t,
362        d_w: ::std::os::raw::c_uint,
363        d_h: ::std::os::raw::c_uint,
364        align: ::std::os::raw::c_uint,
365    ) -> *mut vpx_image_t;
366}
367unsafe extern "C" {
368    pub fn vpx_img_wrap(
369        img: *mut vpx_image_t,
370        fmt: vpx_img_fmt_t,
371        d_w: ::std::os::raw::c_uint,
372        d_h: ::std::os::raw::c_uint,
373        stride_align: ::std::os::raw::c_uint,
374        img_data: *mut ::std::os::raw::c_uchar,
375    ) -> *mut vpx_image_t;
376}
377unsafe extern "C" {
378    pub fn vpx_img_set_rect(
379        img: *mut vpx_image_t,
380        x: ::std::os::raw::c_uint,
381        y: ::std::os::raw::c_uint,
382        w: ::std::os::raw::c_uint,
383        h: ::std::os::raw::c_uint,
384    ) -> ::std::os::raw::c_int;
385}
386unsafe extern "C" {
387    pub fn vpx_img_flip(img: *mut vpx_image_t);
388}
389unsafe extern "C" {
390    pub fn vpx_img_free(img: *mut vpx_image_t);
391}
392pub type va_list = *mut ::std::os::raw::c_char;
393unsafe extern "C" {
394    pub fn __va_start(arg1: *mut *mut ::std::os::raw::c_char, ...);
395}
396pub type __vcrt_bool = bool;
397pub type wchar_t = ::std::os::raw::c_ushort;
398unsafe extern "C" {
399    pub fn __security_init_cookie();
400}
401unsafe extern "C" {
402    pub fn __security_check_cookie(_StackCookie: usize);
403}
404unsafe extern "C" {
405    pub fn __report_gsfailure(_StackCookie: usize) -> !;
406}
407unsafe extern "C" {
408    pub static mut __security_cookie: usize;
409}
410pub type __crt_bool = bool;
411unsafe extern "C" {
412    pub fn _invalid_parameter_noinfo();
413}
414unsafe extern "C" {
415    pub fn _invalid_parameter_noinfo_noreturn() -> !;
416}
417unsafe extern "C" {
418    pub fn _invoke_watson(
419        _Expression: *const wchar_t,
420        _FunctionName: *const wchar_t,
421        _FileName: *const wchar_t,
422        _LineNo: ::std::os::raw::c_uint,
423        _Reserved: usize,
424    ) -> !;
425}
426pub type errno_t = ::std::os::raw::c_int;
427pub type wint_t = ::std::os::raw::c_ushort;
428pub type wctype_t = ::std::os::raw::c_ushort;
429pub type __time32_t = ::std::os::raw::c_long;
430pub type __time64_t = ::std::os::raw::c_longlong;
431#[repr(C)]
432#[derive(Debug, Copy, Clone)]
433pub struct __crt_locale_data_public {
434    pub _locale_pctype: *const ::std::os::raw::c_ushort,
435    pub _locale_mb_cur_max: ::std::os::raw::c_int,
436    pub _locale_lc_codepage: ::std::os::raw::c_uint,
437}
438#[allow(clippy::unnecessary_operation, clippy::identity_op)]
439const _: () = {
440    ["Size of __crt_locale_data_public"][::std::mem::size_of::<__crt_locale_data_public>() - 16usize];
441    ["Alignment of __crt_locale_data_public"][::std::mem::align_of::<__crt_locale_data_public>() - 8usize];
442    ["Offset of field: __crt_locale_data_public::_locale_pctype"][::std::mem::offset_of!(__crt_locale_data_public, _locale_pctype) - 0usize];
443    ["Offset of field: __crt_locale_data_public::_locale_mb_cur_max"][::std::mem::offset_of!(__crt_locale_data_public, _locale_mb_cur_max) - 8usize];
444    ["Offset of field: __crt_locale_data_public::_locale_lc_codepage"]
445        [::std::mem::offset_of!(__crt_locale_data_public, _locale_lc_codepage) - 12usize];
446};
447#[repr(C)]
448#[derive(Debug, Copy, Clone)]
449pub struct __crt_locale_pointers {
450    pub locinfo: *mut __crt_locale_data,
451    pub mbcinfo: *mut __crt_multibyte_data,
452}
453#[allow(clippy::unnecessary_operation, clippy::identity_op)]
454const _: () = {
455    ["Size of __crt_locale_pointers"][::std::mem::size_of::<__crt_locale_pointers>() - 16usize];
456    ["Alignment of __crt_locale_pointers"][::std::mem::align_of::<__crt_locale_pointers>() - 8usize];
457    ["Offset of field: __crt_locale_pointers::locinfo"][::std::mem::offset_of!(__crt_locale_pointers, locinfo) - 0usize];
458    ["Offset of field: __crt_locale_pointers::mbcinfo"][::std::mem::offset_of!(__crt_locale_pointers, mbcinfo) - 8usize];
459};
460pub type _locale_t = *mut __crt_locale_pointers;
461#[repr(C)]
462#[derive(Debug, Copy, Clone)]
463pub struct _Mbstatet {
464    pub _Wchar: ::std::os::raw::c_ulong,
465    pub _Byte: ::std::os::raw::c_ushort,
466    pub _State: ::std::os::raw::c_ushort,
467}
468#[allow(clippy::unnecessary_operation, clippy::identity_op)]
469const _: () = {
470    ["Size of _Mbstatet"][::std::mem::size_of::<_Mbstatet>() - 8usize];
471    ["Alignment of _Mbstatet"][::std::mem::align_of::<_Mbstatet>() - 4usize];
472    ["Offset of field: _Mbstatet::_Wchar"][::std::mem::offset_of!(_Mbstatet, _Wchar) - 0usize];
473    ["Offset of field: _Mbstatet::_Byte"][::std::mem::offset_of!(_Mbstatet, _Byte) - 4usize];
474    ["Offset of field: _Mbstatet::_State"][::std::mem::offset_of!(_Mbstatet, _State) - 6usize];
475};
476pub type mbstate_t = _Mbstatet;
477pub type time_t = __time64_t;
478pub type rsize_t = usize;
479unsafe extern "C" {
480    pub fn _errno() -> *mut ::std::os::raw::c_int;
481}
482unsafe extern "C" {
483    pub fn _set_errno(_Value: ::std::os::raw::c_int) -> errno_t;
484}
485unsafe extern "C" {
486    pub fn _get_errno(_Value: *mut ::std::os::raw::c_int) -> errno_t;
487}
488unsafe extern "C" {
489    pub fn __threadid() -> ::std::os::raw::c_ulong;
490}
491unsafe extern "C" {
492    pub fn __threadhandle() -> usize;
493}
494pub type int_least8_t = ::std::os::raw::c_schar;
495pub type int_least16_t = ::std::os::raw::c_short;
496pub type int_least32_t = ::std::os::raw::c_int;
497pub type int_least64_t = ::std::os::raw::c_longlong;
498pub type uint_least8_t = ::std::os::raw::c_uchar;
499pub type uint_least16_t = ::std::os::raw::c_ushort;
500pub type uint_least32_t = ::std::os::raw::c_uint;
501pub type uint_least64_t = ::std::os::raw::c_ulonglong;
502pub type int_fast8_t = ::std::os::raw::c_schar;
503pub type int_fast16_t = ::std::os::raw::c_int;
504pub type int_fast32_t = ::std::os::raw::c_int;
505pub type int_fast64_t = ::std::os::raw::c_longlong;
506pub type uint_fast8_t = ::std::os::raw::c_uchar;
507pub type uint_fast16_t = ::std::os::raw::c_uint;
508pub type uint_fast32_t = ::std::os::raw::c_uint;
509pub type uint_fast64_t = ::std::os::raw::c_ulonglong;
510pub type intmax_t = ::std::os::raw::c_longlong;
511pub type uintmax_t = ::std::os::raw::c_ulonglong;
512#[repr(C)]
513#[derive(Debug, Copy, Clone)]
514pub struct _Lldiv_t {
515    pub quot: intmax_t,
516    pub rem: intmax_t,
517}
518#[allow(clippy::unnecessary_operation, clippy::identity_op)]
519const _: () = {
520    ["Size of _Lldiv_t"][::std::mem::size_of::<_Lldiv_t>() - 16usize];
521    ["Alignment of _Lldiv_t"][::std::mem::align_of::<_Lldiv_t>() - 8usize];
522    ["Offset of field: _Lldiv_t::quot"][::std::mem::offset_of!(_Lldiv_t, quot) - 0usize];
523    ["Offset of field: _Lldiv_t::rem"][::std::mem::offset_of!(_Lldiv_t, rem) - 8usize];
524};
525pub type imaxdiv_t = _Lldiv_t;
526unsafe extern "C" {
527    pub fn imaxabs(_Number: intmax_t) -> intmax_t;
528}
529unsafe extern "C" {
530    pub fn imaxdiv(_Numerator: intmax_t, _Denominator: intmax_t) -> imaxdiv_t;
531}
532unsafe extern "C" {
533    pub fn strtoimax(_String: *const ::std::os::raw::c_char, _EndPtr: *mut *mut ::std::os::raw::c_char, _Radix: ::std::os::raw::c_int) -> intmax_t;
534}
535unsafe extern "C" {
536    pub fn _strtoimax_l(
537        _String: *const ::std::os::raw::c_char,
538        _EndPtr: *mut *mut ::std::os::raw::c_char,
539        _Radix: ::std::os::raw::c_int,
540        _Locale: _locale_t,
541    ) -> intmax_t;
542}
543unsafe extern "C" {
544    pub fn strtoumax(_String: *const ::std::os::raw::c_char, _EndPtr: *mut *mut ::std::os::raw::c_char, _Radix: ::std::os::raw::c_int) -> uintmax_t;
545}
546unsafe extern "C" {
547    pub fn _strtoumax_l(
548        _String: *const ::std::os::raw::c_char,
549        _EndPtr: *mut *mut ::std::os::raw::c_char,
550        _Radix: ::std::os::raw::c_int,
551        _Locale: _locale_t,
552    ) -> uintmax_t;
553}
554unsafe extern "C" {
555    pub fn wcstoimax(_String: *const wchar_t, _EndPtr: *mut *mut wchar_t, _Radix: ::std::os::raw::c_int) -> intmax_t;
556}
557unsafe extern "C" {
558    pub fn _wcstoimax_l(_String: *const wchar_t, _EndPtr: *mut *mut wchar_t, _Radix: ::std::os::raw::c_int, _Locale: _locale_t) -> intmax_t;
559}
560unsafe extern "C" {
561    pub fn wcstoumax(_String: *const wchar_t, _EndPtr: *mut *mut wchar_t, _Radix: ::std::os::raw::c_int) -> uintmax_t;
562}
563unsafe extern "C" {
564    pub fn _wcstoumax_l(_String: *const wchar_t, _EndPtr: *mut *mut wchar_t, _Radix: ::std::os::raw::c_int, _Locale: _locale_t) -> uintmax_t;
565}
566#[repr(i32)]
567#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
568pub enum vpx_codec_err_t {
569    VPX_CODEC_OK = 0,
570    VPX_CODEC_ERROR = 1,
571    VPX_CODEC_MEM_ERROR = 2,
572    VPX_CODEC_ABI_MISMATCH = 3,
573    VPX_CODEC_INCAPABLE = 4,
574    VPX_CODEC_UNSUP_BITSTREAM = 5,
575    VPX_CODEC_UNSUP_FEATURE = 6,
576    VPX_CODEC_CORRUPT_FRAME = 7,
577    VPX_CODEC_INVALID_PARAM = 8,
578    VPX_CODEC_LIST_END = 9,
579}
580pub type vpx_codec_caps_t = ::std::os::raw::c_long;
581pub type vpx_codec_flags_t = ::std::os::raw::c_long;
582#[repr(C)]
583#[derive(Debug, Copy, Clone)]
584pub struct vpx_codec_iface {
585    _unused: [u8; 0],
586}
587pub type vpx_codec_iface_t = vpx_codec_iface;
588#[repr(C)]
589#[derive(Debug, Copy, Clone)]
590pub struct vpx_codec_priv {
591    _unused: [u8; 0],
592}
593pub type vpx_codec_priv_t = vpx_codec_priv;
594pub type vpx_codec_iter_t = *const ::std::os::raw::c_void;
595#[repr(C)]
596#[derive(Copy, Clone)]
597pub struct vpx_codec_ctx {
598    pub name: *const ::std::os::raw::c_char,
599    pub iface: *const vpx_codec_iface,
600    pub err: vpx_codec_err_t,
601    pub err_detail: *const ::std::os::raw::c_char,
602    pub init_flags: vpx_codec_flags_t,
603    pub config: vpx_codec_ctx__bindgen_ty_1,
604    pub priv_: *mut vpx_codec_priv_t,
605}
606#[repr(C)]
607#[derive(Copy, Clone)]
608pub union vpx_codec_ctx__bindgen_ty_1 {
609    pub dec: *const vpx_codec_dec_cfg,
610    pub enc: *const vpx_codec_enc_cfg,
611    pub raw: *const ::std::os::raw::c_void,
612}
613#[allow(clippy::unnecessary_operation, clippy::identity_op)]
614const _: () = {
615    ["Size of vpx_codec_ctx__bindgen_ty_1"][::std::mem::size_of::<vpx_codec_ctx__bindgen_ty_1>() - 8usize];
616    ["Alignment of vpx_codec_ctx__bindgen_ty_1"][::std::mem::align_of::<vpx_codec_ctx__bindgen_ty_1>() - 8usize];
617    ["Offset of field: vpx_codec_ctx__bindgen_ty_1::dec"][::std::mem::offset_of!(vpx_codec_ctx__bindgen_ty_1, dec) - 0usize];
618    ["Offset of field: vpx_codec_ctx__bindgen_ty_1::enc"][::std::mem::offset_of!(vpx_codec_ctx__bindgen_ty_1, enc) - 0usize];
619    ["Offset of field: vpx_codec_ctx__bindgen_ty_1::raw"][::std::mem::offset_of!(vpx_codec_ctx__bindgen_ty_1, raw) - 0usize];
620};
621#[allow(clippy::unnecessary_operation, clippy::identity_op)]
622const _: () = {
623    ["Size of vpx_codec_ctx"][::std::mem::size_of::<vpx_codec_ctx>() - 56usize];
624    ["Alignment of vpx_codec_ctx"][::std::mem::align_of::<vpx_codec_ctx>() - 8usize];
625    ["Offset of field: vpx_codec_ctx::name"][::std::mem::offset_of!(vpx_codec_ctx, name) - 0usize];
626    ["Offset of field: vpx_codec_ctx::iface"][::std::mem::offset_of!(vpx_codec_ctx, iface) - 8usize];
627    ["Offset of field: vpx_codec_ctx::err"][::std::mem::offset_of!(vpx_codec_ctx, err) - 16usize];
628    ["Offset of field: vpx_codec_ctx::err_detail"][::std::mem::offset_of!(vpx_codec_ctx, err_detail) - 24usize];
629    ["Offset of field: vpx_codec_ctx::init_flags"][::std::mem::offset_of!(vpx_codec_ctx, init_flags) - 32usize];
630    ["Offset of field: vpx_codec_ctx::config"][::std::mem::offset_of!(vpx_codec_ctx, config) - 40usize];
631    ["Offset of field: vpx_codec_ctx::priv_"][::std::mem::offset_of!(vpx_codec_ctx, priv_) - 48usize];
632};
633pub type vpx_codec_ctx_t = vpx_codec_ctx;
634#[repr(i32)]
635#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
636pub enum vpx_bit_depth {
637    VPX_BITS_8 = 8,
638    VPX_BITS_10 = 10,
639    VPX_BITS_12 = 12,
640}
641pub use self::vpx_bit_depth as vpx_bit_depth_t;
642unsafe extern "C" {
643    pub fn vpx_codec_version() -> ::std::os::raw::c_int;
644}
645unsafe extern "C" {
646    pub fn vpx_codec_version_str() -> *const ::std::os::raw::c_char;
647}
648unsafe extern "C" {
649    pub fn vpx_codec_version_extra_str() -> *const ::std::os::raw::c_char;
650}
651unsafe extern "C" {
652    pub fn vpx_codec_build_config() -> *const ::std::os::raw::c_char;
653}
654unsafe extern "C" {
655    pub fn vpx_codec_iface_name(iface: *const vpx_codec_iface) -> *const ::std::os::raw::c_char;
656}
657unsafe extern "C" {
658    pub fn vpx_codec_err_to_string(err: vpx_codec_err_t) -> *const ::std::os::raw::c_char;
659}
660unsafe extern "C" {
661    pub fn vpx_codec_error(ctx: *const vpx_codec_ctx_t) -> *const ::std::os::raw::c_char;
662}
663unsafe extern "C" {
664    pub fn vpx_codec_error_detail(ctx: *const vpx_codec_ctx_t) -> *const ::std::os::raw::c_char;
665}
666unsafe extern "C" {
667    pub fn vpx_codec_destroy(ctx: *mut vpx_codec_ctx_t) -> vpx_codec_err_t;
668}
669unsafe extern "C" {
670    pub fn vpx_codec_get_caps(iface: *const vpx_codec_iface) -> vpx_codec_caps_t;
671}
672unsafe extern "C" {
673    pub fn vpx_codec_control_(ctx: *mut vpx_codec_ctx_t, ctrl_id: ::std::os::raw::c_int, ...) -> vpx_codec_err_t;
674}
675#[repr(i32)]
676#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
677pub enum vp8_com_control_id {
678    VP8_SET_REFERENCE = 1,
679    VP8_COPY_REFERENCE = 2,
680    VP8_SET_POSTPROC = 3,
681    VP9_GET_REFERENCE = 128,
682    VP8_COMMON_CTRL_ID_MAX = 129,
683    VP8_DECODER_CTRL_ID_START = 256,
684}
685#[repr(i32)]
686#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
687pub enum vp8_postproc_level {
688    VP8_NOFILTERING = 0,
689    VP8_DEBLOCK = 1,
690    VP8_DEMACROBLOCK = 2,
691    VP8_ADDNOISE = 4,
692    VP8_MFQE = 8,
693}
694#[repr(C)]
695#[derive(Debug, Copy, Clone)]
696pub struct vp8_postproc_cfg {
697    pub post_proc_flag: ::std::os::raw::c_int,
698    pub deblocking_level: ::std::os::raw::c_int,
699    pub noise_level: ::std::os::raw::c_int,
700}
701#[allow(clippy::unnecessary_operation, clippy::identity_op)]
702const _: () = {
703    ["Size of vp8_postproc_cfg"][::std::mem::size_of::<vp8_postproc_cfg>() - 12usize];
704    ["Alignment of vp8_postproc_cfg"][::std::mem::align_of::<vp8_postproc_cfg>() - 4usize];
705    ["Offset of field: vp8_postproc_cfg::post_proc_flag"][::std::mem::offset_of!(vp8_postproc_cfg, post_proc_flag) - 0usize];
706    ["Offset of field: vp8_postproc_cfg::deblocking_level"][::std::mem::offset_of!(vp8_postproc_cfg, deblocking_level) - 4usize];
707    ["Offset of field: vp8_postproc_cfg::noise_level"][::std::mem::offset_of!(vp8_postproc_cfg, noise_level) - 8usize];
708};
709pub type vp8_postproc_cfg_t = vp8_postproc_cfg;
710#[repr(i32)]
711#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
712pub enum vpx_ref_frame_type {
713    VP8_LAST_FRAME = 1,
714    VP8_GOLD_FRAME = 2,
715    VP8_ALTR_FRAME = 4,
716}
717pub use self::vpx_ref_frame_type as vpx_ref_frame_type_t;
718#[repr(C)]
719#[derive(Debug, Copy, Clone)]
720pub struct vpx_ref_frame {
721    pub frame_type: vpx_ref_frame_type_t,
722    pub img: vpx_image_t,
723}
724#[allow(clippy::unnecessary_operation, clippy::identity_op)]
725const _: () = {
726    ["Size of vpx_ref_frame"][::std::mem::size_of::<vpx_ref_frame>() - 144usize];
727    ["Alignment of vpx_ref_frame"][::std::mem::align_of::<vpx_ref_frame>() - 8usize];
728    ["Offset of field: vpx_ref_frame::frame_type"][::std::mem::offset_of!(vpx_ref_frame, frame_type) - 0usize];
729    ["Offset of field: vpx_ref_frame::img"][::std::mem::offset_of!(vpx_ref_frame, img) - 8usize];
730};
731pub type vpx_ref_frame_t = vpx_ref_frame;
732#[repr(C)]
733#[derive(Debug, Copy, Clone)]
734pub struct vp9_ref_frame {
735    pub idx: ::std::os::raw::c_int,
736    pub img: vpx_image_t,
737}
738#[allow(clippy::unnecessary_operation, clippy::identity_op)]
739const _: () = {
740    ["Size of vp9_ref_frame"][::std::mem::size_of::<vp9_ref_frame>() - 144usize];
741    ["Alignment of vp9_ref_frame"][::std::mem::align_of::<vp9_ref_frame>() - 8usize];
742    ["Offset of field: vp9_ref_frame::idx"][::std::mem::offset_of!(vp9_ref_frame, idx) - 0usize];
743    ["Offset of field: vp9_ref_frame::img"][::std::mem::offset_of!(vp9_ref_frame, img) - 8usize];
744};
745pub type vp9_ref_frame_t = vp9_ref_frame;
746#[repr(C)]
747#[derive(Debug, Copy, Clone)]
748pub struct VpxTplBlockStats {
749    pub row: i16,
750    pub col: i16,
751    pub intra_cost: i64,
752    pub inter_cost: i64,
753    pub mv_r: i16,
754    pub mv_c: i16,
755    pub srcrf_rate: i64,
756    pub srcrf_dist: i64,
757    pub inter_pred_err: i64,
758    pub intra_pred_err: i64,
759    pub ref_frame_index: ::std::os::raw::c_int,
760}
761#[allow(clippy::unnecessary_operation, clippy::identity_op)]
762const _: () = {
763    ["Size of VpxTplBlockStats"][::std::mem::size_of::<VpxTplBlockStats>() - 72usize];
764    ["Alignment of VpxTplBlockStats"][::std::mem::align_of::<VpxTplBlockStats>() - 8usize];
765    ["Offset of field: VpxTplBlockStats::row"][::std::mem::offset_of!(VpxTplBlockStats, row) - 0usize];
766    ["Offset of field: VpxTplBlockStats::col"][::std::mem::offset_of!(VpxTplBlockStats, col) - 2usize];
767    ["Offset of field: VpxTplBlockStats::intra_cost"][::std::mem::offset_of!(VpxTplBlockStats, intra_cost) - 8usize];
768    ["Offset of field: VpxTplBlockStats::inter_cost"][::std::mem::offset_of!(VpxTplBlockStats, inter_cost) - 16usize];
769    ["Offset of field: VpxTplBlockStats::mv_r"][::std::mem::offset_of!(VpxTplBlockStats, mv_r) - 24usize];
770    ["Offset of field: VpxTplBlockStats::mv_c"][::std::mem::offset_of!(VpxTplBlockStats, mv_c) - 26usize];
771    ["Offset of field: VpxTplBlockStats::srcrf_rate"][::std::mem::offset_of!(VpxTplBlockStats, srcrf_rate) - 32usize];
772    ["Offset of field: VpxTplBlockStats::srcrf_dist"][::std::mem::offset_of!(VpxTplBlockStats, srcrf_dist) - 40usize];
773    ["Offset of field: VpxTplBlockStats::inter_pred_err"][::std::mem::offset_of!(VpxTplBlockStats, inter_pred_err) - 48usize];
774    ["Offset of field: VpxTplBlockStats::intra_pred_err"][::std::mem::offset_of!(VpxTplBlockStats, intra_pred_err) - 56usize];
775    ["Offset of field: VpxTplBlockStats::ref_frame_index"][::std::mem::offset_of!(VpxTplBlockStats, ref_frame_index) - 64usize];
776};
777#[repr(C)]
778#[derive(Debug, Copy, Clone)]
779pub struct VpxTplFrameStats {
780    pub frame_width: ::std::os::raw::c_int,
781    pub frame_height: ::std::os::raw::c_int,
782    pub num_blocks: ::std::os::raw::c_int,
783    pub block_stats_list: *mut VpxTplBlockStats,
784}
785#[allow(clippy::unnecessary_operation, clippy::identity_op)]
786const _: () = {
787    ["Size of VpxTplFrameStats"][::std::mem::size_of::<VpxTplFrameStats>() - 24usize];
788    ["Alignment of VpxTplFrameStats"][::std::mem::align_of::<VpxTplFrameStats>() - 8usize];
789    ["Offset of field: VpxTplFrameStats::frame_width"][::std::mem::offset_of!(VpxTplFrameStats, frame_width) - 0usize];
790    ["Offset of field: VpxTplFrameStats::frame_height"][::std::mem::offset_of!(VpxTplFrameStats, frame_height) - 4usize];
791    ["Offset of field: VpxTplFrameStats::num_blocks"][::std::mem::offset_of!(VpxTplFrameStats, num_blocks) - 8usize];
792    ["Offset of field: VpxTplFrameStats::block_stats_list"][::std::mem::offset_of!(VpxTplFrameStats, block_stats_list) - 16usize];
793};
794#[repr(C)]
795#[derive(Debug, Copy, Clone)]
796pub struct VpxTplGopStats {
797    pub size: ::std::os::raw::c_int,
798    pub frame_stats_list: *mut VpxTplFrameStats,
799}
800#[allow(clippy::unnecessary_operation, clippy::identity_op)]
801const _: () = {
802    ["Size of VpxTplGopStats"][::std::mem::size_of::<VpxTplGopStats>() - 16usize];
803    ["Alignment of VpxTplGopStats"][::std::mem::align_of::<VpxTplGopStats>() - 8usize];
804    ["Offset of field: VpxTplGopStats::size"][::std::mem::offset_of!(VpxTplGopStats, size) - 0usize];
805    ["Offset of field: VpxTplGopStats::frame_stats_list"][::std::mem::offset_of!(VpxTplGopStats, frame_stats_list) - 8usize];
806};
807#[repr(i32)]
808#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
809pub enum vpx_rc_type {
810    VPX_RC_NONE = 0,
811    VPX_RC_QP = 1,
812    VPX_RC_GOP = 2,
813    VPX_RC_RDMULT = 4,
814    VPX_RC_GOP_QP = 3,
815    VPX_RC_GOP_QP_RDMULT = 7,
816}
817pub use self::vpx_rc_type as vpx_rc_type_t;
818#[repr(i32)]
819#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
820pub enum vpx_ext_rc_mode {
821    VPX_RC_QMODE = 0,
822    VPX_RC_VBR = 1,
823    VPX_RC_CQ = 2,
824}
825pub use self::vpx_ext_rc_mode as vpx_ext_rc_mode_t;
826#[repr(i32)]
827#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
828pub enum vpx_rc_frame_update_type {
829    VPX_RC_INVALID_UPDATE_TYPE = -1,
830    VPX_RC_KF_UPDATE = 0,
831    VPX_RC_LF_UPDATE = 1,
832    VPX_RC_GF_UPDATE = 2,
833    VPX_RC_ARF_UPDATE = 3,
834    VPX_RC_OVERLAY_UPDATE = 4,
835    VPX_RC_MID_OVERLAY_UPDATE = 5,
836    VPX_RC_USE_BUF_FRAME = 6,
837}
838pub use self::vpx_rc_frame_update_type as vpx_rc_frame_update_type_t;
839#[repr(i32)]
840#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
841pub enum vpx_rc_ref_name {
842    VPX_RC_INVALID_REF_FRAME = -1,
843    VPX_RC_INTRA_FRAME = 0,
844    VPX_RC_LAST_FRAME = 1,
845    VPX_RC_GOLDEN_FRAME = 2,
846    VPX_RC_ALTREF_FRAME = 3,
847}
848pub use self::vpx_rc_ref_name as vpx_rc_ref_name_t;
849pub type vpx_rc_model_t = *mut ::std::os::raw::c_void;
850#[repr(C)]
851#[derive(Debug, Copy, Clone)]
852pub struct vpx_rc_encodeframe_decision {
853    pub q_index: ::std::os::raw::c_int,
854    pub rdmult: ::std::os::raw::c_int,
855}
856#[allow(clippy::unnecessary_operation, clippy::identity_op)]
857const _: () = {
858    ["Size of vpx_rc_encodeframe_decision"][::std::mem::size_of::<vpx_rc_encodeframe_decision>() - 8usize];
859    ["Alignment of vpx_rc_encodeframe_decision"][::std::mem::align_of::<vpx_rc_encodeframe_decision>() - 4usize];
860    ["Offset of field: vpx_rc_encodeframe_decision::q_index"][::std::mem::offset_of!(vpx_rc_encodeframe_decision, q_index) - 0usize];
861    ["Offset of field: vpx_rc_encodeframe_decision::rdmult"][::std::mem::offset_of!(vpx_rc_encodeframe_decision, rdmult) - 4usize];
862};
863pub type vpx_rc_encodeframe_decision_t = vpx_rc_encodeframe_decision;
864#[repr(C)]
865#[derive(Debug, Copy, Clone)]
866pub struct vpx_rc_encodeframe_info {
867    pub frame_type: ::std::os::raw::c_int,
868    pub show_index: ::std::os::raw::c_int,
869    pub coding_index: ::std::os::raw::c_int,
870    pub gop_index: ::std::os::raw::c_int,
871    pub ref_frame_coding_indexes: [::std::os::raw::c_int; 3usize],
872    pub ref_frame_valid_list: [::std::os::raw::c_int; 3usize],
873    pub gop_size: ::std::os::raw::c_int,
874    pub use_alt_ref: ::std::os::raw::c_int,
875}
876#[allow(clippy::unnecessary_operation, clippy::identity_op)]
877const _: () = {
878    ["Size of vpx_rc_encodeframe_info"][::std::mem::size_of::<vpx_rc_encodeframe_info>() - 48usize];
879    ["Alignment of vpx_rc_encodeframe_info"][::std::mem::align_of::<vpx_rc_encodeframe_info>() - 4usize];
880    ["Offset of field: vpx_rc_encodeframe_info::frame_type"][::std::mem::offset_of!(vpx_rc_encodeframe_info, frame_type) - 0usize];
881    ["Offset of field: vpx_rc_encodeframe_info::show_index"][::std::mem::offset_of!(vpx_rc_encodeframe_info, show_index) - 4usize];
882    ["Offset of field: vpx_rc_encodeframe_info::coding_index"][::std::mem::offset_of!(vpx_rc_encodeframe_info, coding_index) - 8usize];
883    ["Offset of field: vpx_rc_encodeframe_info::gop_index"][::std::mem::offset_of!(vpx_rc_encodeframe_info, gop_index) - 12usize];
884    ["Offset of field: vpx_rc_encodeframe_info::ref_frame_coding_indexes"]
885        [::std::mem::offset_of!(vpx_rc_encodeframe_info, ref_frame_coding_indexes) - 16usize];
886    ["Offset of field: vpx_rc_encodeframe_info::ref_frame_valid_list"]
887        [::std::mem::offset_of!(vpx_rc_encodeframe_info, ref_frame_valid_list) - 28usize];
888    ["Offset of field: vpx_rc_encodeframe_info::gop_size"][::std::mem::offset_of!(vpx_rc_encodeframe_info, gop_size) - 40usize];
889    ["Offset of field: vpx_rc_encodeframe_info::use_alt_ref"][::std::mem::offset_of!(vpx_rc_encodeframe_info, use_alt_ref) - 44usize];
890};
891pub type vpx_rc_encodeframe_info_t = vpx_rc_encodeframe_info;
892#[repr(C)]
893#[derive(Debug, Copy, Clone)]
894pub struct vpx_rc_encodeframe_result {
895    pub bit_count: i64,
896    pub actual_encoding_qindex: ::std::os::raw::c_int,
897}
898#[allow(clippy::unnecessary_operation, clippy::identity_op)]
899const _: () = {
900    ["Size of vpx_rc_encodeframe_result"][::std::mem::size_of::<vpx_rc_encodeframe_result>() - 16usize];
901    ["Alignment of vpx_rc_encodeframe_result"][::std::mem::align_of::<vpx_rc_encodeframe_result>() - 8usize];
902    ["Offset of field: vpx_rc_encodeframe_result::bit_count"][::std::mem::offset_of!(vpx_rc_encodeframe_result, bit_count) - 0usize];
903    ["Offset of field: vpx_rc_encodeframe_result::actual_encoding_qindex"]
904        [::std::mem::offset_of!(vpx_rc_encodeframe_result, actual_encoding_qindex) - 8usize];
905};
906pub type vpx_rc_encodeframe_result_t = vpx_rc_encodeframe_result;
907#[repr(i32)]
908#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
909pub enum vpx_rc_status {
910    VPX_RC_OK = 0,
911    VPX_RC_ERROR = 1,
912}
913pub use self::vpx_rc_status as vpx_rc_status_t;
914#[repr(C)]
915#[derive(Debug, Copy, Clone)]
916pub struct vpx_rc_frame_stats {
917    pub frame: f64,
918    pub weight: f64,
919    pub intra_error: f64,
920    pub coded_error: f64,
921    pub sr_coded_error: f64,
922    pub frame_noise_energy: f64,
923    pub pcnt_inter: f64,
924    pub pcnt_motion: f64,
925    pub pcnt_second_ref: f64,
926    pub pcnt_neutral: f64,
927    pub pcnt_intra_low: f64,
928    pub pcnt_intra_high: f64,
929    pub intra_skip_pct: f64,
930    pub intra_smooth_pct: f64,
931    pub inactive_zone_rows: f64,
932    pub inactive_zone_cols: f64,
933    pub MVr: f64,
934    pub mvr_abs: f64,
935    pub MVc: f64,
936    pub mvc_abs: f64,
937    pub MVrv: f64,
938    pub MVcv: f64,
939    pub mv_in_out_count: f64,
940    pub duration: f64,
941    pub count: f64,
942    pub new_mv_count: f64,
943}
944#[allow(clippy::unnecessary_operation, clippy::identity_op)]
945const _: () = {
946    ["Size of vpx_rc_frame_stats"][::std::mem::size_of::<vpx_rc_frame_stats>() - 208usize];
947    ["Alignment of vpx_rc_frame_stats"][::std::mem::align_of::<vpx_rc_frame_stats>() - 8usize];
948    ["Offset of field: vpx_rc_frame_stats::frame"][::std::mem::offset_of!(vpx_rc_frame_stats, frame) - 0usize];
949    ["Offset of field: vpx_rc_frame_stats::weight"][::std::mem::offset_of!(vpx_rc_frame_stats, weight) - 8usize];
950    ["Offset of field: vpx_rc_frame_stats::intra_error"][::std::mem::offset_of!(vpx_rc_frame_stats, intra_error) - 16usize];
951    ["Offset of field: vpx_rc_frame_stats::coded_error"][::std::mem::offset_of!(vpx_rc_frame_stats, coded_error) - 24usize];
952    ["Offset of field: vpx_rc_frame_stats::sr_coded_error"][::std::mem::offset_of!(vpx_rc_frame_stats, sr_coded_error) - 32usize];
953    ["Offset of field: vpx_rc_frame_stats::frame_noise_energy"][::std::mem::offset_of!(vpx_rc_frame_stats, frame_noise_energy) - 40usize];
954    ["Offset of field: vpx_rc_frame_stats::pcnt_inter"][::std::mem::offset_of!(vpx_rc_frame_stats, pcnt_inter) - 48usize];
955    ["Offset of field: vpx_rc_frame_stats::pcnt_motion"][::std::mem::offset_of!(vpx_rc_frame_stats, pcnt_motion) - 56usize];
956    ["Offset of field: vpx_rc_frame_stats::pcnt_second_ref"][::std::mem::offset_of!(vpx_rc_frame_stats, pcnt_second_ref) - 64usize];
957    ["Offset of field: vpx_rc_frame_stats::pcnt_neutral"][::std::mem::offset_of!(vpx_rc_frame_stats, pcnt_neutral) - 72usize];
958    ["Offset of field: vpx_rc_frame_stats::pcnt_intra_low"][::std::mem::offset_of!(vpx_rc_frame_stats, pcnt_intra_low) - 80usize];
959    ["Offset of field: vpx_rc_frame_stats::pcnt_intra_high"][::std::mem::offset_of!(vpx_rc_frame_stats, pcnt_intra_high) - 88usize];
960    ["Offset of field: vpx_rc_frame_stats::intra_skip_pct"][::std::mem::offset_of!(vpx_rc_frame_stats, intra_skip_pct) - 96usize];
961    ["Offset of field: vpx_rc_frame_stats::intra_smooth_pct"][::std::mem::offset_of!(vpx_rc_frame_stats, intra_smooth_pct) - 104usize];
962    ["Offset of field: vpx_rc_frame_stats::inactive_zone_rows"][::std::mem::offset_of!(vpx_rc_frame_stats, inactive_zone_rows) - 112usize];
963    ["Offset of field: vpx_rc_frame_stats::inactive_zone_cols"][::std::mem::offset_of!(vpx_rc_frame_stats, inactive_zone_cols) - 120usize];
964    ["Offset of field: vpx_rc_frame_stats::MVr"][::std::mem::offset_of!(vpx_rc_frame_stats, MVr) - 128usize];
965    ["Offset of field: vpx_rc_frame_stats::mvr_abs"][::std::mem::offset_of!(vpx_rc_frame_stats, mvr_abs) - 136usize];
966    ["Offset of field: vpx_rc_frame_stats::MVc"][::std::mem::offset_of!(vpx_rc_frame_stats, MVc) - 144usize];
967    ["Offset of field: vpx_rc_frame_stats::mvc_abs"][::std::mem::offset_of!(vpx_rc_frame_stats, mvc_abs) - 152usize];
968    ["Offset of field: vpx_rc_frame_stats::MVrv"][::std::mem::offset_of!(vpx_rc_frame_stats, MVrv) - 160usize];
969    ["Offset of field: vpx_rc_frame_stats::MVcv"][::std::mem::offset_of!(vpx_rc_frame_stats, MVcv) - 168usize];
970    ["Offset of field: vpx_rc_frame_stats::mv_in_out_count"][::std::mem::offset_of!(vpx_rc_frame_stats, mv_in_out_count) - 176usize];
971    ["Offset of field: vpx_rc_frame_stats::duration"][::std::mem::offset_of!(vpx_rc_frame_stats, duration) - 184usize];
972    ["Offset of field: vpx_rc_frame_stats::count"][::std::mem::offset_of!(vpx_rc_frame_stats, count) - 192usize];
973    ["Offset of field: vpx_rc_frame_stats::new_mv_count"][::std::mem::offset_of!(vpx_rc_frame_stats, new_mv_count) - 200usize];
974};
975pub type vpx_rc_frame_stats_t = vpx_rc_frame_stats;
976#[repr(C)]
977#[derive(Debug, Copy, Clone)]
978pub struct vpx_rc_firstpass_stats {
979    pub frame_stats: *mut vpx_rc_frame_stats_t,
980    pub num_frames: ::std::os::raw::c_int,
981}
982#[allow(clippy::unnecessary_operation, clippy::identity_op)]
983const _: () = {
984    ["Size of vpx_rc_firstpass_stats"][::std::mem::size_of::<vpx_rc_firstpass_stats>() - 16usize];
985    ["Alignment of vpx_rc_firstpass_stats"][::std::mem::align_of::<vpx_rc_firstpass_stats>() - 8usize];
986    ["Offset of field: vpx_rc_firstpass_stats::frame_stats"][::std::mem::offset_of!(vpx_rc_firstpass_stats, frame_stats) - 0usize];
987    ["Offset of field: vpx_rc_firstpass_stats::num_frames"][::std::mem::offset_of!(vpx_rc_firstpass_stats, num_frames) - 8usize];
988};
989pub type vpx_rc_firstpass_stats_t = vpx_rc_firstpass_stats;
990#[repr(C)]
991#[derive(Debug, Copy, Clone)]
992pub struct vpx_rc_config {
993    pub frame_width: ::std::os::raw::c_int,
994    pub frame_height: ::std::os::raw::c_int,
995    pub show_frame_count: ::std::os::raw::c_int,
996    pub max_gf_interval: ::std::os::raw::c_int,
997    pub min_gf_interval: ::std::os::raw::c_int,
998    pub target_bitrate_kbps: ::std::os::raw::c_int,
999    pub frame_rate_num: ::std::os::raw::c_int,
1000    pub frame_rate_den: ::std::os::raw::c_int,
1001    pub rc_mode: vpx_ext_rc_mode_t,
1002    pub overshoot_percent: ::std::os::raw::c_int,
1003    pub undershoot_percent: ::std::os::raw::c_int,
1004    pub min_base_q_index: ::std::os::raw::c_int,
1005    pub max_base_q_index: ::std::os::raw::c_int,
1006    pub base_qp: ::std::os::raw::c_int,
1007}
1008#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1009const _: () = {
1010    ["Size of vpx_rc_config"][::std::mem::size_of::<vpx_rc_config>() - 56usize];
1011    ["Alignment of vpx_rc_config"][::std::mem::align_of::<vpx_rc_config>() - 4usize];
1012    ["Offset of field: vpx_rc_config::frame_width"][::std::mem::offset_of!(vpx_rc_config, frame_width) - 0usize];
1013    ["Offset of field: vpx_rc_config::frame_height"][::std::mem::offset_of!(vpx_rc_config, frame_height) - 4usize];
1014    ["Offset of field: vpx_rc_config::show_frame_count"][::std::mem::offset_of!(vpx_rc_config, show_frame_count) - 8usize];
1015    ["Offset of field: vpx_rc_config::max_gf_interval"][::std::mem::offset_of!(vpx_rc_config, max_gf_interval) - 12usize];
1016    ["Offset of field: vpx_rc_config::min_gf_interval"][::std::mem::offset_of!(vpx_rc_config, min_gf_interval) - 16usize];
1017    ["Offset of field: vpx_rc_config::target_bitrate_kbps"][::std::mem::offset_of!(vpx_rc_config, target_bitrate_kbps) - 20usize];
1018    ["Offset of field: vpx_rc_config::frame_rate_num"][::std::mem::offset_of!(vpx_rc_config, frame_rate_num) - 24usize];
1019    ["Offset of field: vpx_rc_config::frame_rate_den"][::std::mem::offset_of!(vpx_rc_config, frame_rate_den) - 28usize];
1020    ["Offset of field: vpx_rc_config::rc_mode"][::std::mem::offset_of!(vpx_rc_config, rc_mode) - 32usize];
1021    ["Offset of field: vpx_rc_config::overshoot_percent"][::std::mem::offset_of!(vpx_rc_config, overshoot_percent) - 36usize];
1022    ["Offset of field: vpx_rc_config::undershoot_percent"][::std::mem::offset_of!(vpx_rc_config, undershoot_percent) - 40usize];
1023    ["Offset of field: vpx_rc_config::min_base_q_index"][::std::mem::offset_of!(vpx_rc_config, min_base_q_index) - 44usize];
1024    ["Offset of field: vpx_rc_config::max_base_q_index"][::std::mem::offset_of!(vpx_rc_config, max_base_q_index) - 48usize];
1025    ["Offset of field: vpx_rc_config::base_qp"][::std::mem::offset_of!(vpx_rc_config, base_qp) - 52usize];
1026};
1027pub type vpx_rc_config_t = vpx_rc_config;
1028#[repr(C)]
1029#[derive(Debug, Copy, Clone)]
1030pub struct vpx_rc_ref_frame {
1031    pub index: [::std::os::raw::c_int; 4usize],
1032    pub name: [vpx_rc_ref_name_t; 4usize],
1033}
1034#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1035const _: () = {
1036    ["Size of vpx_rc_ref_frame"][::std::mem::size_of::<vpx_rc_ref_frame>() - 32usize];
1037    ["Alignment of vpx_rc_ref_frame"][::std::mem::align_of::<vpx_rc_ref_frame>() - 4usize];
1038    ["Offset of field: vpx_rc_ref_frame::index"][::std::mem::offset_of!(vpx_rc_ref_frame, index) - 0usize];
1039    ["Offset of field: vpx_rc_ref_frame::name"][::std::mem::offset_of!(vpx_rc_ref_frame, name) - 16usize];
1040};
1041pub type vpx_rc_ref_frame_t = vpx_rc_ref_frame;
1042#[repr(C)]
1043#[derive(Debug, Copy, Clone)]
1044pub struct vpx_rc_gop_decision {
1045    pub gop_coding_frames: ::std::os::raw::c_int,
1046    pub use_alt_ref: ::std::os::raw::c_int,
1047    pub use_key_frame: ::std::os::raw::c_int,
1048    pub update_type: [vpx_rc_frame_update_type_t; 252usize],
1049    pub update_ref_index: [::std::os::raw::c_int; 252usize],
1050    pub ref_frame_list: [vpx_rc_ref_frame_t; 252usize],
1051}
1052#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1053const _: () = {
1054    ["Size of vpx_rc_gop_decision"][::std::mem::size_of::<vpx_rc_gop_decision>() - 10092usize];
1055    ["Alignment of vpx_rc_gop_decision"][::std::mem::align_of::<vpx_rc_gop_decision>() - 4usize];
1056    ["Offset of field: vpx_rc_gop_decision::gop_coding_frames"][::std::mem::offset_of!(vpx_rc_gop_decision, gop_coding_frames) - 0usize];
1057    ["Offset of field: vpx_rc_gop_decision::use_alt_ref"][::std::mem::offset_of!(vpx_rc_gop_decision, use_alt_ref) - 4usize];
1058    ["Offset of field: vpx_rc_gop_decision::use_key_frame"][::std::mem::offset_of!(vpx_rc_gop_decision, use_key_frame) - 8usize];
1059    ["Offset of field: vpx_rc_gop_decision::update_type"][::std::mem::offset_of!(vpx_rc_gop_decision, update_type) - 12usize];
1060    ["Offset of field: vpx_rc_gop_decision::update_ref_index"][::std::mem::offset_of!(vpx_rc_gop_decision, update_ref_index) - 1020usize];
1061    ["Offset of field: vpx_rc_gop_decision::ref_frame_list"][::std::mem::offset_of!(vpx_rc_gop_decision, ref_frame_list) - 2028usize];
1062};
1063pub type vpx_rc_gop_decision_t = vpx_rc_gop_decision;
1064#[repr(C)]
1065#[derive(Debug, Copy, Clone)]
1066pub struct vpx_rc_key_frame_decision {
1067    pub key_frame_show_index: ::std::os::raw::c_int,
1068    pub key_frame_group_size: ::std::os::raw::c_int,
1069}
1070#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1071const _: () = {
1072    ["Size of vpx_rc_key_frame_decision"][::std::mem::size_of::<vpx_rc_key_frame_decision>() - 8usize];
1073    ["Alignment of vpx_rc_key_frame_decision"][::std::mem::align_of::<vpx_rc_key_frame_decision>() - 4usize];
1074    ["Offset of field: vpx_rc_key_frame_decision::key_frame_show_index"]
1075        [::std::mem::offset_of!(vpx_rc_key_frame_decision, key_frame_show_index) - 0usize];
1076    ["Offset of field: vpx_rc_key_frame_decision::key_frame_group_size"]
1077        [::std::mem::offset_of!(vpx_rc_key_frame_decision, key_frame_group_size) - 4usize];
1078};
1079pub type vpx_rc_key_frame_decision_t = vpx_rc_key_frame_decision;
1080pub type vpx_rc_create_model_cb_fn_t = ::std::option::Option<
1081    unsafe extern "C" fn(
1082        priv_: *mut ::std::os::raw::c_void,
1083        ratectrl_config: *const vpx_rc_config_t,
1084        rate_ctrl_model_ptr: *mut vpx_rc_model_t,
1085    ) -> vpx_rc_status_t,
1086>;
1087pub type vpx_rc_send_firstpass_stats_cb_fn_t = ::std::option::Option<
1088    unsafe extern "C" fn(rate_ctrl_model: vpx_rc_model_t, first_pass_stats: *const vpx_rc_firstpass_stats_t) -> vpx_rc_status_t,
1089>;
1090pub type vpx_rc_send_tpl_gop_stats_cb_fn_t =
1091    ::std::option::Option<unsafe extern "C" fn(rate_ctrl_model: vpx_rc_model_t, tpl_gop_stats: *const VpxTplGopStats) -> vpx_rc_status_t>;
1092pub type vpx_rc_get_encodeframe_decision_cb_fn_t = ::std::option::Option<
1093    unsafe extern "C" fn(
1094        rate_ctrl_model: vpx_rc_model_t,
1095        frame_gop_index: ::std::os::raw::c_int,
1096        frame_decision: *mut vpx_rc_encodeframe_decision_t,
1097    ) -> vpx_rc_status_t,
1098>;
1099pub type vpx_rc_update_encodeframe_result_cb_fn_t = ::std::option::Option<
1100    unsafe extern "C" fn(rate_ctrl_model: vpx_rc_model_t, encode_frame_result: *const vpx_rc_encodeframe_result_t) -> vpx_rc_status_t,
1101>;
1102pub type vpx_rc_get_key_frame_decision_cb_fn_t = ::std::option::Option<
1103    unsafe extern "C" fn(rate_ctrl_model: vpx_rc_model_t, key_frame_decision: *mut vpx_rc_key_frame_decision_t) -> vpx_rc_status_t,
1104>;
1105pub type vpx_rc_get_gop_decision_cb_fn_t =
1106    ::std::option::Option<unsafe extern "C" fn(rate_ctrl_model: vpx_rc_model_t, gop_decision: *mut vpx_rc_gop_decision_t) -> vpx_rc_status_t>;
1107pub type vpx_rc_get_frame_rdmult_cb_fn_t = ::std::option::Option<
1108    unsafe extern "C" fn(
1109        rate_ctrl_model: vpx_rc_model_t,
1110        frame_info: *const vpx_rc_encodeframe_info_t,
1111        rdmult: *mut ::std::os::raw::c_int,
1112    ) -> vpx_rc_status_t,
1113>;
1114pub type vpx_rc_delete_model_cb_fn_t = ::std::option::Option<unsafe extern "C" fn(rate_ctrl_model: vpx_rc_model_t) -> vpx_rc_status_t>;
1115#[repr(C)]
1116#[derive(Debug, Copy, Clone)]
1117pub struct vpx_rc_funcs {
1118    pub rc_type: vpx_rc_type_t,
1119    pub create_model: vpx_rc_create_model_cb_fn_t,
1120    pub send_firstpass_stats: vpx_rc_send_firstpass_stats_cb_fn_t,
1121    pub send_tpl_gop_stats: vpx_rc_send_tpl_gop_stats_cb_fn_t,
1122    pub get_encodeframe_decision: vpx_rc_get_encodeframe_decision_cb_fn_t,
1123    pub update_encodeframe_result: vpx_rc_update_encodeframe_result_cb_fn_t,
1124    pub get_key_frame_decision: vpx_rc_get_key_frame_decision_cb_fn_t,
1125    pub get_gop_decision: vpx_rc_get_gop_decision_cb_fn_t,
1126    pub get_frame_rdmult: vpx_rc_get_frame_rdmult_cb_fn_t,
1127    pub delete_model: vpx_rc_delete_model_cb_fn_t,
1128    pub rate_ctrl_log_path: *const ::std::os::raw::c_char,
1129    pub priv_: *mut ::std::os::raw::c_void,
1130}
1131#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1132const _: () = {
1133    ["Size of vpx_rc_funcs"][::std::mem::size_of::<vpx_rc_funcs>() - 96usize];
1134    ["Alignment of vpx_rc_funcs"][::std::mem::align_of::<vpx_rc_funcs>() - 8usize];
1135    ["Offset of field: vpx_rc_funcs::rc_type"][::std::mem::offset_of!(vpx_rc_funcs, rc_type) - 0usize];
1136    ["Offset of field: vpx_rc_funcs::create_model"][::std::mem::offset_of!(vpx_rc_funcs, create_model) - 8usize];
1137    ["Offset of field: vpx_rc_funcs::send_firstpass_stats"][::std::mem::offset_of!(vpx_rc_funcs, send_firstpass_stats) - 16usize];
1138    ["Offset of field: vpx_rc_funcs::send_tpl_gop_stats"][::std::mem::offset_of!(vpx_rc_funcs, send_tpl_gop_stats) - 24usize];
1139    ["Offset of field: vpx_rc_funcs::get_encodeframe_decision"][::std::mem::offset_of!(vpx_rc_funcs, get_encodeframe_decision) - 32usize];
1140    ["Offset of field: vpx_rc_funcs::update_encodeframe_result"][::std::mem::offset_of!(vpx_rc_funcs, update_encodeframe_result) - 40usize];
1141    ["Offset of field: vpx_rc_funcs::get_key_frame_decision"][::std::mem::offset_of!(vpx_rc_funcs, get_key_frame_decision) - 48usize];
1142    ["Offset of field: vpx_rc_funcs::get_gop_decision"][::std::mem::offset_of!(vpx_rc_funcs, get_gop_decision) - 56usize];
1143    ["Offset of field: vpx_rc_funcs::get_frame_rdmult"][::std::mem::offset_of!(vpx_rc_funcs, get_frame_rdmult) - 64usize];
1144    ["Offset of field: vpx_rc_funcs::delete_model"][::std::mem::offset_of!(vpx_rc_funcs, delete_model) - 72usize];
1145    ["Offset of field: vpx_rc_funcs::rate_ctrl_log_path"][::std::mem::offset_of!(vpx_rc_funcs, rate_ctrl_log_path) - 80usize];
1146    ["Offset of field: vpx_rc_funcs::priv_"][::std::mem::offset_of!(vpx_rc_funcs, priv_) - 88usize];
1147};
1148pub type vpx_rc_funcs_t = vpx_rc_funcs;
1149#[repr(C)]
1150#[derive(Debug, Copy, Clone)]
1151pub struct vpx_fixed_buf {
1152    pub buf: *mut ::std::os::raw::c_void,
1153    pub sz: usize,
1154}
1155#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1156const _: () = {
1157    ["Size of vpx_fixed_buf"][::std::mem::size_of::<vpx_fixed_buf>() - 16usize];
1158    ["Alignment of vpx_fixed_buf"][::std::mem::align_of::<vpx_fixed_buf>() - 8usize];
1159    ["Offset of field: vpx_fixed_buf::buf"][::std::mem::offset_of!(vpx_fixed_buf, buf) - 0usize];
1160    ["Offset of field: vpx_fixed_buf::sz"][::std::mem::offset_of!(vpx_fixed_buf, sz) - 8usize];
1161};
1162pub type vpx_fixed_buf_t = vpx_fixed_buf;
1163pub type vpx_codec_pts_t = i64;
1164pub type vpx_codec_frame_flags_t = u32;
1165pub type vpx_codec_er_flags_t = u32;
1166#[repr(i32)]
1167#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1168pub enum vpx_codec_cx_pkt_kind {
1169    VPX_CODEC_CX_FRAME_PKT = 0,
1170    VPX_CODEC_STATS_PKT = 1,
1171    VPX_CODEC_FPMB_STATS_PKT = 2,
1172    VPX_CODEC_PSNR_PKT = 3,
1173    VPX_CODEC_CUSTOM_PKT = 256,
1174}
1175#[repr(C)]
1176#[derive(Copy, Clone)]
1177pub struct vpx_codec_cx_pkt {
1178    pub kind: vpx_codec_cx_pkt_kind,
1179    pub data: vpx_codec_cx_pkt__bindgen_ty_1,
1180}
1181#[repr(C)]
1182#[derive(Copy, Clone)]
1183pub union vpx_codec_cx_pkt__bindgen_ty_1 {
1184    pub frame: vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1,
1185    pub twopass_stats: vpx_fixed_buf_t,
1186    pub firstpass_mb_stats: vpx_fixed_buf_t,
1187    pub psnr: vpx_codec_cx_pkt__bindgen_ty_1_vpx_psnr_pkt,
1188    pub raw: vpx_fixed_buf_t,
1189    pub pad: [::std::os::raw::c_char; 124usize],
1190}
1191#[repr(C)]
1192#[derive(Debug, Copy, Clone)]
1193pub struct vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1 {
1194    pub buf: *mut ::std::os::raw::c_void,
1195    pub sz: usize,
1196    pub pts: vpx_codec_pts_t,
1197    pub duration: ::std::os::raw::c_ulong,
1198    pub flags: vpx_codec_frame_flags_t,
1199    pub partition_id: ::std::os::raw::c_int,
1200    pub width: [::std::os::raw::c_uint; 5usize],
1201    pub height: [::std::os::raw::c_uint; 5usize],
1202    pub spatial_layer_encoded: [u8; 5usize],
1203}
1204#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1205const _: () = {
1206    ["Size of vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1"][::std::mem::size_of::<vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1>() - 88usize];
1207    ["Alignment of vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1"][::std::mem::align_of::<vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1>() - 8usize];
1208    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1::buf"]
1209        [::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1, buf) - 0usize];
1210    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1::sz"]
1211        [::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1, sz) - 8usize];
1212    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1::pts"]
1213        [::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1, pts) - 16usize];
1214    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1::duration"]
1215        [::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1, duration) - 24usize];
1216    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1::flags"]
1217        [::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1, flags) - 28usize];
1218    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1::partition_id"]
1219        [::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1, partition_id) - 32usize];
1220    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1::width"]
1221        [::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1, width) - 36usize];
1222    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1::height"]
1223        [::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1, height) - 56usize];
1224    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1::spatial_layer_encoded"]
1225        [::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1, spatial_layer_encoded) - 76usize];
1226};
1227#[repr(C)]
1228#[derive(Debug, Copy, Clone)]
1229pub struct vpx_codec_cx_pkt__bindgen_ty_1_vpx_psnr_pkt {
1230    pub samples: [::std::os::raw::c_uint; 4usize],
1231    pub sse: [u64; 4usize],
1232    pub psnr: [f64; 4usize],
1233}
1234#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1235const _: () = {
1236    ["Size of vpx_codec_cx_pkt__bindgen_ty_1_vpx_psnr_pkt"][::std::mem::size_of::<vpx_codec_cx_pkt__bindgen_ty_1_vpx_psnr_pkt>() - 80usize];
1237    ["Alignment of vpx_codec_cx_pkt__bindgen_ty_1_vpx_psnr_pkt"][::std::mem::align_of::<vpx_codec_cx_pkt__bindgen_ty_1_vpx_psnr_pkt>() - 8usize];
1238    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1_vpx_psnr_pkt::samples"]
1239        [::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1_vpx_psnr_pkt, samples) - 0usize];
1240    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1_vpx_psnr_pkt::sse"]
1241        [::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1_vpx_psnr_pkt, sse) - 16usize];
1242    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1_vpx_psnr_pkt::psnr"]
1243        [::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1_vpx_psnr_pkt, psnr) - 48usize];
1244};
1245#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1246const _: () = {
1247    ["Size of vpx_codec_cx_pkt__bindgen_ty_1"][::std::mem::size_of::<vpx_codec_cx_pkt__bindgen_ty_1>() - 128usize];
1248    ["Alignment of vpx_codec_cx_pkt__bindgen_ty_1"][::std::mem::align_of::<vpx_codec_cx_pkt__bindgen_ty_1>() - 8usize];
1249    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1::frame"][::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1, frame) - 0usize];
1250    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1::twopass_stats"]
1251        [::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1, twopass_stats) - 0usize];
1252    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1::firstpass_mb_stats"]
1253        [::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1, firstpass_mb_stats) - 0usize];
1254    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1::psnr"][::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1, psnr) - 0usize];
1255    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1::raw"][::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1, raw) - 0usize];
1256    ["Offset of field: vpx_codec_cx_pkt__bindgen_ty_1::pad"][::std::mem::offset_of!(vpx_codec_cx_pkt__bindgen_ty_1, pad) - 0usize];
1257};
1258#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1259const _: () = {
1260    ["Size of vpx_codec_cx_pkt"][::std::mem::size_of::<vpx_codec_cx_pkt>() - 136usize];
1261    ["Alignment of vpx_codec_cx_pkt"][::std::mem::align_of::<vpx_codec_cx_pkt>() - 8usize];
1262    ["Offset of field: vpx_codec_cx_pkt::kind"][::std::mem::offset_of!(vpx_codec_cx_pkt, kind) - 0usize];
1263    ["Offset of field: vpx_codec_cx_pkt::data"][::std::mem::offset_of!(vpx_codec_cx_pkt, data) - 8usize];
1264};
1265pub type vpx_codec_cx_pkt_t = vpx_codec_cx_pkt;
1266pub type vpx_codec_enc_output_cx_pkt_cb_fn_t =
1267    ::std::option::Option<unsafe extern "C" fn(pkt: *mut vpx_codec_cx_pkt_t, user_data: *mut ::std::os::raw::c_void)>;
1268#[repr(C)]
1269#[derive(Debug, Copy, Clone)]
1270pub struct vpx_codec_enc_output_cx_cb_pair {
1271    pub output_cx_pkt: vpx_codec_enc_output_cx_pkt_cb_fn_t,
1272    pub user_priv: *mut ::std::os::raw::c_void,
1273}
1274#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1275const _: () = {
1276    ["Size of vpx_codec_enc_output_cx_cb_pair"][::std::mem::size_of::<vpx_codec_enc_output_cx_cb_pair>() - 16usize];
1277    ["Alignment of vpx_codec_enc_output_cx_cb_pair"][::std::mem::align_of::<vpx_codec_enc_output_cx_cb_pair>() - 8usize];
1278    ["Offset of field: vpx_codec_enc_output_cx_cb_pair::output_cx_pkt"]
1279        [::std::mem::offset_of!(vpx_codec_enc_output_cx_cb_pair, output_cx_pkt) - 0usize];
1280    ["Offset of field: vpx_codec_enc_output_cx_cb_pair::user_priv"][::std::mem::offset_of!(vpx_codec_enc_output_cx_cb_pair, user_priv) - 8usize];
1281};
1282pub type vpx_codec_priv_output_cx_pkt_cb_pair_t = vpx_codec_enc_output_cx_cb_pair;
1283#[repr(C)]
1284#[derive(Debug, Copy, Clone)]
1285pub struct vpx_rational {
1286    pub num: ::std::os::raw::c_int,
1287    pub den: ::std::os::raw::c_int,
1288}
1289#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1290const _: () = {
1291    ["Size of vpx_rational"][::std::mem::size_of::<vpx_rational>() - 8usize];
1292    ["Alignment of vpx_rational"][::std::mem::align_of::<vpx_rational>() - 4usize];
1293    ["Offset of field: vpx_rational::num"][::std::mem::offset_of!(vpx_rational, num) - 0usize];
1294    ["Offset of field: vpx_rational::den"][::std::mem::offset_of!(vpx_rational, den) - 4usize];
1295};
1296pub type vpx_rational_t = vpx_rational;
1297#[repr(i32)]
1298#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1299pub enum vpx_enc_pass {
1300    VPX_RC_ONE_PASS = 0,
1301    VPX_RC_FIRST_PASS = 1,
1302    VPX_RC_LAST_PASS = 2,
1303}
1304#[repr(i32)]
1305#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1306pub enum vpx_rc_mode {
1307    VPX_VBR = 0,
1308    VPX_CBR = 1,
1309    VPX_CQ = 2,
1310    VPX_Q = 3,
1311}
1312impl vpx_kf_mode {
1313    pub const VPX_KF_DISABLED: vpx_kf_mode = vpx_kf_mode::VPX_KF_FIXED;
1314}
1315#[repr(i32)]
1316#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1317pub enum vpx_kf_mode {
1318    VPX_KF_FIXED = 0,
1319    VPX_KF_AUTO = 1,
1320}
1321pub type vpx_enc_frame_flags_t = ::std::os::raw::c_long;
1322#[repr(C)]
1323#[derive(Debug, Copy, Clone)]
1324pub struct vpx_codec_enc_cfg {
1325    pub g_usage: ::std::os::raw::c_uint,
1326    pub g_threads: ::std::os::raw::c_uint,
1327    pub g_profile: ::std::os::raw::c_uint,
1328    pub g_w: ::std::os::raw::c_uint,
1329    pub g_h: ::std::os::raw::c_uint,
1330    pub g_bit_depth: vpx_bit_depth_t,
1331    pub g_input_bit_depth: ::std::os::raw::c_uint,
1332    pub g_timebase: vpx_rational,
1333    pub g_error_resilient: vpx_codec_er_flags_t,
1334    pub g_pass: vpx_enc_pass,
1335    pub g_lag_in_frames: ::std::os::raw::c_uint,
1336    pub rc_dropframe_thresh: ::std::os::raw::c_uint,
1337    pub rc_resize_allowed: ::std::os::raw::c_uint,
1338    pub rc_scaled_width: ::std::os::raw::c_uint,
1339    pub rc_scaled_height: ::std::os::raw::c_uint,
1340    pub rc_resize_up_thresh: ::std::os::raw::c_uint,
1341    pub rc_resize_down_thresh: ::std::os::raw::c_uint,
1342    pub rc_end_usage: vpx_rc_mode,
1343    pub rc_twopass_stats_in: vpx_fixed_buf_t,
1344    pub rc_firstpass_mb_stats_in: vpx_fixed_buf_t,
1345    pub rc_target_bitrate: ::std::os::raw::c_uint,
1346    pub rc_min_quantizer: ::std::os::raw::c_uint,
1347    pub rc_max_quantizer: ::std::os::raw::c_uint,
1348    pub rc_undershoot_pct: ::std::os::raw::c_uint,
1349    pub rc_overshoot_pct: ::std::os::raw::c_uint,
1350    pub rc_buf_sz: ::std::os::raw::c_uint,
1351    pub rc_buf_initial_sz: ::std::os::raw::c_uint,
1352    pub rc_buf_optimal_sz: ::std::os::raw::c_uint,
1353    pub rc_2pass_vbr_bias_pct: ::std::os::raw::c_uint,
1354    pub rc_2pass_vbr_minsection_pct: ::std::os::raw::c_uint,
1355    pub rc_2pass_vbr_maxsection_pct: ::std::os::raw::c_uint,
1356    pub rc_2pass_vbr_corpus_complexity: ::std::os::raw::c_uint,
1357    pub kf_mode: vpx_kf_mode,
1358    pub kf_min_dist: ::std::os::raw::c_uint,
1359    pub kf_max_dist: ::std::os::raw::c_uint,
1360    pub ss_number_layers: ::std::os::raw::c_uint,
1361    pub ss_enable_auto_alt_ref: [::std::os::raw::c_int; 5usize],
1362    pub ss_target_bitrate: [::std::os::raw::c_uint; 5usize],
1363    pub ts_number_layers: ::std::os::raw::c_uint,
1364    pub ts_target_bitrate: [::std::os::raw::c_uint; 5usize],
1365    pub ts_rate_decimator: [::std::os::raw::c_uint; 5usize],
1366    pub ts_periodicity: ::std::os::raw::c_uint,
1367    pub ts_layer_id: [::std::os::raw::c_uint; 16usize],
1368    pub layer_target_bitrate: [::std::os::raw::c_uint; 12usize],
1369    pub temporal_layering_mode: ::std::os::raw::c_int,
1370    pub use_vizier_rc_params: ::std::os::raw::c_int,
1371    pub active_wq_factor: vpx_rational_t,
1372    pub err_per_mb_factor: vpx_rational_t,
1373    pub sr_default_decay_limit: vpx_rational_t,
1374    pub sr_diff_factor: vpx_rational_t,
1375    pub kf_err_per_mb_factor: vpx_rational_t,
1376    pub kf_frame_min_boost_factor: vpx_rational_t,
1377    pub kf_frame_max_boost_first_factor: vpx_rational_t,
1378    pub kf_frame_max_boost_subs_factor: vpx_rational_t,
1379    pub kf_max_total_boost_factor: vpx_rational_t,
1380    pub gf_max_total_boost_factor: vpx_rational_t,
1381    pub gf_frame_max_boost_factor: vpx_rational_t,
1382    pub zm_factor: vpx_rational_t,
1383    pub rd_mult_inter_qp_fac: vpx_rational_t,
1384    pub rd_mult_arf_qp_fac: vpx_rational_t,
1385    pub rd_mult_key_qp_fac: vpx_rational_t,
1386}
1387#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1388const _: () = {
1389    ["Size of vpx_codec_enc_cfg"][::std::mem::size_of::<vpx_codec_enc_cfg>() - 504usize];
1390    ["Alignment of vpx_codec_enc_cfg"][::std::mem::align_of::<vpx_codec_enc_cfg>() - 8usize];
1391    ["Offset of field: vpx_codec_enc_cfg::g_usage"][::std::mem::offset_of!(vpx_codec_enc_cfg, g_usage) - 0usize];
1392    ["Offset of field: vpx_codec_enc_cfg::g_threads"][::std::mem::offset_of!(vpx_codec_enc_cfg, g_threads) - 4usize];
1393    ["Offset of field: vpx_codec_enc_cfg::g_profile"][::std::mem::offset_of!(vpx_codec_enc_cfg, g_profile) - 8usize];
1394    ["Offset of field: vpx_codec_enc_cfg::g_w"][::std::mem::offset_of!(vpx_codec_enc_cfg, g_w) - 12usize];
1395    ["Offset of field: vpx_codec_enc_cfg::g_h"][::std::mem::offset_of!(vpx_codec_enc_cfg, g_h) - 16usize];
1396    ["Offset of field: vpx_codec_enc_cfg::g_bit_depth"][::std::mem::offset_of!(vpx_codec_enc_cfg, g_bit_depth) - 20usize];
1397    ["Offset of field: vpx_codec_enc_cfg::g_input_bit_depth"][::std::mem::offset_of!(vpx_codec_enc_cfg, g_input_bit_depth) - 24usize];
1398    ["Offset of field: vpx_codec_enc_cfg::g_timebase"][::std::mem::offset_of!(vpx_codec_enc_cfg, g_timebase) - 28usize];
1399    ["Offset of field: vpx_codec_enc_cfg::g_error_resilient"][::std::mem::offset_of!(vpx_codec_enc_cfg, g_error_resilient) - 36usize];
1400    ["Offset of field: vpx_codec_enc_cfg::g_pass"][::std::mem::offset_of!(vpx_codec_enc_cfg, g_pass) - 40usize];
1401    ["Offset of field: vpx_codec_enc_cfg::g_lag_in_frames"][::std::mem::offset_of!(vpx_codec_enc_cfg, g_lag_in_frames) - 44usize];
1402    ["Offset of field: vpx_codec_enc_cfg::rc_dropframe_thresh"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_dropframe_thresh) - 48usize];
1403    ["Offset of field: vpx_codec_enc_cfg::rc_resize_allowed"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_resize_allowed) - 52usize];
1404    ["Offset of field: vpx_codec_enc_cfg::rc_scaled_width"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_scaled_width) - 56usize];
1405    ["Offset of field: vpx_codec_enc_cfg::rc_scaled_height"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_scaled_height) - 60usize];
1406    ["Offset of field: vpx_codec_enc_cfg::rc_resize_up_thresh"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_resize_up_thresh) - 64usize];
1407    ["Offset of field: vpx_codec_enc_cfg::rc_resize_down_thresh"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_resize_down_thresh) - 68usize];
1408    ["Offset of field: vpx_codec_enc_cfg::rc_end_usage"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_end_usage) - 72usize];
1409    ["Offset of field: vpx_codec_enc_cfg::rc_twopass_stats_in"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_twopass_stats_in) - 80usize];
1410    ["Offset of field: vpx_codec_enc_cfg::rc_firstpass_mb_stats_in"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_firstpass_mb_stats_in) - 96usize];
1411    ["Offset of field: vpx_codec_enc_cfg::rc_target_bitrate"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_target_bitrate) - 112usize];
1412    ["Offset of field: vpx_codec_enc_cfg::rc_min_quantizer"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_min_quantizer) - 116usize];
1413    ["Offset of field: vpx_codec_enc_cfg::rc_max_quantizer"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_max_quantizer) - 120usize];
1414    ["Offset of field: vpx_codec_enc_cfg::rc_undershoot_pct"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_undershoot_pct) - 124usize];
1415    ["Offset of field: vpx_codec_enc_cfg::rc_overshoot_pct"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_overshoot_pct) - 128usize];
1416    ["Offset of field: vpx_codec_enc_cfg::rc_buf_sz"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_buf_sz) - 132usize];
1417    ["Offset of field: vpx_codec_enc_cfg::rc_buf_initial_sz"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_buf_initial_sz) - 136usize];
1418    ["Offset of field: vpx_codec_enc_cfg::rc_buf_optimal_sz"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_buf_optimal_sz) - 140usize];
1419    ["Offset of field: vpx_codec_enc_cfg::rc_2pass_vbr_bias_pct"][::std::mem::offset_of!(vpx_codec_enc_cfg, rc_2pass_vbr_bias_pct) - 144usize];
1420    ["Offset of field: vpx_codec_enc_cfg::rc_2pass_vbr_minsection_pct"]
1421        [::std::mem::offset_of!(vpx_codec_enc_cfg, rc_2pass_vbr_minsection_pct) - 148usize];
1422    ["Offset of field: vpx_codec_enc_cfg::rc_2pass_vbr_maxsection_pct"]
1423        [::std::mem::offset_of!(vpx_codec_enc_cfg, rc_2pass_vbr_maxsection_pct) - 152usize];
1424    ["Offset of field: vpx_codec_enc_cfg::rc_2pass_vbr_corpus_complexity"]
1425        [::std::mem::offset_of!(vpx_codec_enc_cfg, rc_2pass_vbr_corpus_complexity) - 156usize];
1426    ["Offset of field: vpx_codec_enc_cfg::kf_mode"][::std::mem::offset_of!(vpx_codec_enc_cfg, kf_mode) - 160usize];
1427    ["Offset of field: vpx_codec_enc_cfg::kf_min_dist"][::std::mem::offset_of!(vpx_codec_enc_cfg, kf_min_dist) - 164usize];
1428    ["Offset of field: vpx_codec_enc_cfg::kf_max_dist"][::std::mem::offset_of!(vpx_codec_enc_cfg, kf_max_dist) - 168usize];
1429    ["Offset of field: vpx_codec_enc_cfg::ss_number_layers"][::std::mem::offset_of!(vpx_codec_enc_cfg, ss_number_layers) - 172usize];
1430    ["Offset of field: vpx_codec_enc_cfg::ss_enable_auto_alt_ref"][::std::mem::offset_of!(vpx_codec_enc_cfg, ss_enable_auto_alt_ref) - 176usize];
1431    ["Offset of field: vpx_codec_enc_cfg::ss_target_bitrate"][::std::mem::offset_of!(vpx_codec_enc_cfg, ss_target_bitrate) - 196usize];
1432    ["Offset of field: vpx_codec_enc_cfg::ts_number_layers"][::std::mem::offset_of!(vpx_codec_enc_cfg, ts_number_layers) - 216usize];
1433    ["Offset of field: vpx_codec_enc_cfg::ts_target_bitrate"][::std::mem::offset_of!(vpx_codec_enc_cfg, ts_target_bitrate) - 220usize];
1434    ["Offset of field: vpx_codec_enc_cfg::ts_rate_decimator"][::std::mem::offset_of!(vpx_codec_enc_cfg, ts_rate_decimator) - 240usize];
1435    ["Offset of field: vpx_codec_enc_cfg::ts_periodicity"][::std::mem::offset_of!(vpx_codec_enc_cfg, ts_periodicity) - 260usize];
1436    ["Offset of field: vpx_codec_enc_cfg::ts_layer_id"][::std::mem::offset_of!(vpx_codec_enc_cfg, ts_layer_id) - 264usize];
1437    ["Offset of field: vpx_codec_enc_cfg::layer_target_bitrate"][::std::mem::offset_of!(vpx_codec_enc_cfg, layer_target_bitrate) - 328usize];
1438    ["Offset of field: vpx_codec_enc_cfg::temporal_layering_mode"][::std::mem::offset_of!(vpx_codec_enc_cfg, temporal_layering_mode) - 376usize];
1439    ["Offset of field: vpx_codec_enc_cfg::use_vizier_rc_params"][::std::mem::offset_of!(vpx_codec_enc_cfg, use_vizier_rc_params) - 380usize];
1440    ["Offset of field: vpx_codec_enc_cfg::active_wq_factor"][::std::mem::offset_of!(vpx_codec_enc_cfg, active_wq_factor) - 384usize];
1441    ["Offset of field: vpx_codec_enc_cfg::err_per_mb_factor"][::std::mem::offset_of!(vpx_codec_enc_cfg, err_per_mb_factor) - 392usize];
1442    ["Offset of field: vpx_codec_enc_cfg::sr_default_decay_limit"][::std::mem::offset_of!(vpx_codec_enc_cfg, sr_default_decay_limit) - 400usize];
1443    ["Offset of field: vpx_codec_enc_cfg::sr_diff_factor"][::std::mem::offset_of!(vpx_codec_enc_cfg, sr_diff_factor) - 408usize];
1444    ["Offset of field: vpx_codec_enc_cfg::kf_err_per_mb_factor"][::std::mem::offset_of!(vpx_codec_enc_cfg, kf_err_per_mb_factor) - 416usize];
1445    ["Offset of field: vpx_codec_enc_cfg::kf_frame_min_boost_factor"]
1446        [::std::mem::offset_of!(vpx_codec_enc_cfg, kf_frame_min_boost_factor) - 424usize];
1447    ["Offset of field: vpx_codec_enc_cfg::kf_frame_max_boost_first_factor"]
1448        [::std::mem::offset_of!(vpx_codec_enc_cfg, kf_frame_max_boost_first_factor) - 432usize];
1449    ["Offset of field: vpx_codec_enc_cfg::kf_frame_max_boost_subs_factor"]
1450        [::std::mem::offset_of!(vpx_codec_enc_cfg, kf_frame_max_boost_subs_factor) - 440usize];
1451    ["Offset of field: vpx_codec_enc_cfg::kf_max_total_boost_factor"]
1452        [::std::mem::offset_of!(vpx_codec_enc_cfg, kf_max_total_boost_factor) - 448usize];
1453    ["Offset of field: vpx_codec_enc_cfg::gf_max_total_boost_factor"]
1454        [::std::mem::offset_of!(vpx_codec_enc_cfg, gf_max_total_boost_factor) - 456usize];
1455    ["Offset of field: vpx_codec_enc_cfg::gf_frame_max_boost_factor"]
1456        [::std::mem::offset_of!(vpx_codec_enc_cfg, gf_frame_max_boost_factor) - 464usize];
1457    ["Offset of field: vpx_codec_enc_cfg::zm_factor"][::std::mem::offset_of!(vpx_codec_enc_cfg, zm_factor) - 472usize];
1458    ["Offset of field: vpx_codec_enc_cfg::rd_mult_inter_qp_fac"][::std::mem::offset_of!(vpx_codec_enc_cfg, rd_mult_inter_qp_fac) - 480usize];
1459    ["Offset of field: vpx_codec_enc_cfg::rd_mult_arf_qp_fac"][::std::mem::offset_of!(vpx_codec_enc_cfg, rd_mult_arf_qp_fac) - 488usize];
1460    ["Offset of field: vpx_codec_enc_cfg::rd_mult_key_qp_fac"][::std::mem::offset_of!(vpx_codec_enc_cfg, rd_mult_key_qp_fac) - 496usize];
1461};
1462pub type vpx_codec_enc_cfg_t = vpx_codec_enc_cfg;
1463#[repr(C)]
1464#[derive(Debug, Copy, Clone)]
1465pub struct vpx_svc_parameters {
1466    pub max_quantizers: [::std::os::raw::c_int; 12usize],
1467    pub min_quantizers: [::std::os::raw::c_int; 12usize],
1468    pub scaling_factor_num: [::std::os::raw::c_int; 12usize],
1469    pub scaling_factor_den: [::std::os::raw::c_int; 12usize],
1470    pub speed_per_layer: [::std::os::raw::c_int; 12usize],
1471    pub temporal_layering_mode: ::std::os::raw::c_int,
1472    pub loopfilter_ctrl: [::std::os::raw::c_int; 12usize],
1473}
1474#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1475const _: () = {
1476    ["Size of vpx_svc_parameters"][::std::mem::size_of::<vpx_svc_parameters>() - 292usize];
1477    ["Alignment of vpx_svc_parameters"][::std::mem::align_of::<vpx_svc_parameters>() - 4usize];
1478    ["Offset of field: vpx_svc_parameters::max_quantizers"][::std::mem::offset_of!(vpx_svc_parameters, max_quantizers) - 0usize];
1479    ["Offset of field: vpx_svc_parameters::min_quantizers"][::std::mem::offset_of!(vpx_svc_parameters, min_quantizers) - 48usize];
1480    ["Offset of field: vpx_svc_parameters::scaling_factor_num"][::std::mem::offset_of!(vpx_svc_parameters, scaling_factor_num) - 96usize];
1481    ["Offset of field: vpx_svc_parameters::scaling_factor_den"][::std::mem::offset_of!(vpx_svc_parameters, scaling_factor_den) - 144usize];
1482    ["Offset of field: vpx_svc_parameters::speed_per_layer"][::std::mem::offset_of!(vpx_svc_parameters, speed_per_layer) - 192usize];
1483    ["Offset of field: vpx_svc_parameters::temporal_layering_mode"][::std::mem::offset_of!(vpx_svc_parameters, temporal_layering_mode) - 240usize];
1484    ["Offset of field: vpx_svc_parameters::loopfilter_ctrl"][::std::mem::offset_of!(vpx_svc_parameters, loopfilter_ctrl) - 244usize];
1485};
1486pub type vpx_svc_extra_cfg_t = vpx_svc_parameters;
1487unsafe extern "C" {
1488    pub fn vpx_codec_enc_init_ver(
1489        ctx: *mut vpx_codec_ctx_t,
1490        iface: *const vpx_codec_iface,
1491        cfg: *const vpx_codec_enc_cfg_t,
1492        flags: vpx_codec_flags_t,
1493        ver: ::std::os::raw::c_int,
1494    ) -> vpx_codec_err_t;
1495}
1496unsafe extern "C" {
1497    pub fn vpx_codec_enc_init_multi_ver(
1498        ctx: *mut vpx_codec_ctx_t,
1499        iface: *const vpx_codec_iface,
1500        cfg: *mut vpx_codec_enc_cfg_t,
1501        num_enc: ::std::os::raw::c_int,
1502        flags: vpx_codec_flags_t,
1503        dsf: *mut vpx_rational_t,
1504        ver: ::std::os::raw::c_int,
1505    ) -> vpx_codec_err_t;
1506}
1507unsafe extern "C" {
1508    pub fn vpx_codec_enc_config_default(
1509        iface: *const vpx_codec_iface,
1510        cfg: *mut vpx_codec_enc_cfg_t,
1511        usage: ::std::os::raw::c_uint,
1512    ) -> vpx_codec_err_t;
1513}
1514unsafe extern "C" {
1515    pub fn vpx_codec_enc_config_set(ctx: *mut vpx_codec_ctx_t, cfg: *const vpx_codec_enc_cfg_t) -> vpx_codec_err_t;
1516}
1517unsafe extern "C" {
1518    pub fn vpx_codec_get_global_headers(ctx: *mut vpx_codec_ctx_t) -> *mut vpx_fixed_buf_t;
1519}
1520pub type vpx_enc_deadline_t = ::std::os::raw::c_ulong;
1521unsafe extern "C" {
1522    pub fn vpx_codec_encode(
1523        ctx: *mut vpx_codec_ctx_t,
1524        img: *const vpx_image_t,
1525        pts: vpx_codec_pts_t,
1526        duration: ::std::os::raw::c_ulong,
1527        flags: vpx_enc_frame_flags_t,
1528        deadline: vpx_enc_deadline_t,
1529    ) -> vpx_codec_err_t;
1530}
1531unsafe extern "C" {
1532    pub fn vpx_codec_set_cx_data_buf(
1533        ctx: *mut vpx_codec_ctx_t,
1534        buf: *const vpx_fixed_buf_t,
1535        pad_before: ::std::os::raw::c_uint,
1536        pad_after: ::std::os::raw::c_uint,
1537    ) -> vpx_codec_err_t;
1538}
1539unsafe extern "C" {
1540    pub fn vpx_codec_get_cx_data(ctx: *mut vpx_codec_ctx_t, iter: *mut vpx_codec_iter_t) -> *const vpx_codec_cx_pkt_t;
1541}
1542unsafe extern "C" {
1543    pub fn vpx_codec_get_preview_frame(ctx: *mut vpx_codec_ctx_t) -> *const vpx_image_t;
1544}
1545unsafe extern "C" {
1546    pub static mut vpx_codec_vp8_cx_algo: vpx_codec_iface_t;
1547}
1548unsafe extern "C" {
1549    pub fn vpx_codec_vp8_cx() -> *const vpx_codec_iface;
1550}
1551unsafe extern "C" {
1552    pub static mut vpx_codec_vp9_cx_algo: vpx_codec_iface_t;
1553}
1554unsafe extern "C" {
1555    pub fn vpx_codec_vp9_cx() -> *const vpx_codec_iface;
1556}
1557#[repr(i32)]
1558#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1559pub enum vp8e_enc_control_id {
1560    VP8E_SET_ROI_MAP = 8,
1561    VP8E_SET_ACTIVEMAP = 9,
1562    VP8E_SET_SCALEMODE = 11,
1563    VP8E_SET_CPUUSED = 13,
1564    VP8E_SET_ENABLEAUTOALTREF = 14,
1565    VP8E_SET_NOISE_SENSITIVITY = 15,
1566    VP8E_SET_SHARPNESS = 16,
1567    VP8E_SET_STATIC_THRESHOLD = 17,
1568    VP8E_SET_TOKEN_PARTITIONS = 18,
1569    VP8E_GET_LAST_QUANTIZER = 19,
1570    VP8E_GET_LAST_QUANTIZER_64 = 20,
1571    VP8E_SET_ARNR_MAXFRAMES = 21,
1572    VP8E_SET_ARNR_STRENGTH = 22,
1573    VP8E_SET_ARNR_TYPE = 23,
1574    VP8E_SET_TUNING = 24,
1575    VP8E_SET_CQ_LEVEL = 25,
1576    VP8E_SET_MAX_INTRA_BITRATE_PCT = 26,
1577    VP8E_SET_FRAME_FLAGS = 27,
1578    VP9E_SET_MAX_INTER_BITRATE_PCT = 28,
1579    VP9E_SET_GF_CBR_BOOST_PCT = 29,
1580    VP8E_SET_TEMPORAL_LAYER_ID = 30,
1581    VP8E_SET_SCREEN_CONTENT_MODE = 31,
1582    VP9E_SET_LOSSLESS = 32,
1583    VP9E_SET_TILE_COLUMNS = 33,
1584    VP9E_SET_TILE_ROWS = 34,
1585    VP9E_SET_FRAME_PARALLEL_DECODING = 35,
1586    VP9E_SET_AQ_MODE = 36,
1587    VP9E_SET_FRAME_PERIODIC_BOOST = 37,
1588    VP9E_SET_NOISE_SENSITIVITY = 38,
1589    VP9E_SET_SVC = 39,
1590    VP9E_SET_ROI_MAP = 40,
1591    VP9E_SET_SVC_PARAMETERS = 41,
1592    VP9E_SET_SVC_LAYER_ID = 42,
1593    VP9E_SET_TUNE_CONTENT = 43,
1594    VP9E_GET_SVC_LAYER_ID = 44,
1595    VP9E_REGISTER_CX_CALLBACK = 45,
1596    VP9E_SET_COLOR_SPACE = 46,
1597    VP9E_SET_MIN_GF_INTERVAL = 48,
1598    VP9E_SET_MAX_GF_INTERVAL = 49,
1599    VP9E_GET_ACTIVEMAP = 50,
1600    VP9E_SET_COLOR_RANGE = 51,
1601    VP9E_SET_SVC_REF_FRAME_CONFIG = 52,
1602    VP9E_SET_RENDER_SIZE = 53,
1603    VP9E_SET_TARGET_LEVEL = 54,
1604    VP9E_SET_ROW_MT = 55,
1605    VP9E_GET_LEVEL = 56,
1606    VP9E_SET_ALT_REF_AQ = 57,
1607    VP8E_SET_GF_CBR_BOOST_PCT = 58,
1608    VP9E_ENABLE_MOTION_VECTOR_UNIT_TEST = 59,
1609    VP9E_SET_SVC_INTER_LAYER_PRED = 60,
1610    VP9E_SET_SVC_FRAME_DROP_LAYER = 61,
1611    VP9E_GET_SVC_REF_FRAME_CONFIG = 62,
1612    VP9E_SET_SVC_GF_TEMPORAL_REF = 63,
1613    VP9E_SET_SVC_SPATIAL_LAYER_SYNC = 64,
1614    VP9E_SET_TPL = 65,
1615    VP9E_SET_POSTENCODE_DROP = 66,
1616    VP9E_SET_DELTA_Q_UV = 67,
1617    VP9E_SET_DISABLE_OVERSHOOT_MAXQ_CBR = 68,
1618    VP9E_SET_DISABLE_LOOPFILTER = 69,
1619    VP9E_SET_EXTERNAL_RATE_CONTROL = 70,
1620    VP9E_SET_RTC_EXTERNAL_RATECTRL = 71,
1621    VP9E_GET_LOOPFILTER_LEVEL = 72,
1622    VP9E_GET_LAST_QUANTIZER_SVC_LAYERS = 73,
1623    VP8E_SET_RTC_EXTERNAL_RATECTRL = 74,
1624    VP9E_SET_QUANTIZER_ONE_PASS = 75,
1625    VP9E_SET_KEY_FRAME_FILTERING = 76,
1626}
1627#[repr(i32)]
1628#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1629pub enum vpx_scaling_mode_1d {
1630    VP8E_NORMAL = 0,
1631    VP8E_FOURFIVE = 1,
1632    VP8E_THREEFIVE = 2,
1633    VP8E_ONETWO = 3,
1634}
1635pub use self::vpx_scaling_mode_1d as VPX_SCALING_MODE;
1636#[repr(i32)]
1637#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1638pub enum vp9e_temporal_layering_mode {
1639    VP9E_TEMPORAL_LAYERING_MODE_NOLAYERING = 0,
1640    VP9E_TEMPORAL_LAYERING_MODE_BYPASS = 1,
1641    VP9E_TEMPORAL_LAYERING_MODE_0101 = 2,
1642    VP9E_TEMPORAL_LAYERING_MODE_0212 = 3,
1643}
1644pub use self::vp9e_temporal_layering_mode as VP9E_TEMPORAL_LAYERING_MODE;
1645#[repr(C)]
1646#[derive(Debug, Copy, Clone)]
1647pub struct vpx_roi_map {
1648    pub enabled: u8,
1649    pub roi_map: *mut ::std::os::raw::c_uchar,
1650    pub rows: ::std::os::raw::c_uint,
1651    pub cols: ::std::os::raw::c_uint,
1652    pub delta_q: [::std::os::raw::c_int; 8usize],
1653    pub delta_lf: [::std::os::raw::c_int; 8usize],
1654    pub skip: [::std::os::raw::c_int; 8usize],
1655    pub ref_frame: [::std::os::raw::c_int; 8usize],
1656    pub static_threshold: [::std::os::raw::c_uint; 4usize],
1657}
1658#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1659const _: () = {
1660    ["Size of vpx_roi_map"][::std::mem::size_of::<vpx_roi_map>() - 168usize];
1661    ["Alignment of vpx_roi_map"][::std::mem::align_of::<vpx_roi_map>() - 8usize];
1662    ["Offset of field: vpx_roi_map::enabled"][::std::mem::offset_of!(vpx_roi_map, enabled) - 0usize];
1663    ["Offset of field: vpx_roi_map::roi_map"][::std::mem::offset_of!(vpx_roi_map, roi_map) - 8usize];
1664    ["Offset of field: vpx_roi_map::rows"][::std::mem::offset_of!(vpx_roi_map, rows) - 16usize];
1665    ["Offset of field: vpx_roi_map::cols"][::std::mem::offset_of!(vpx_roi_map, cols) - 20usize];
1666    ["Offset of field: vpx_roi_map::delta_q"][::std::mem::offset_of!(vpx_roi_map, delta_q) - 24usize];
1667    ["Offset of field: vpx_roi_map::delta_lf"][::std::mem::offset_of!(vpx_roi_map, delta_lf) - 56usize];
1668    ["Offset of field: vpx_roi_map::skip"][::std::mem::offset_of!(vpx_roi_map, skip) - 88usize];
1669    ["Offset of field: vpx_roi_map::ref_frame"][::std::mem::offset_of!(vpx_roi_map, ref_frame) - 120usize];
1670    ["Offset of field: vpx_roi_map::static_threshold"][::std::mem::offset_of!(vpx_roi_map, static_threshold) - 152usize];
1671};
1672pub type vpx_roi_map_t = vpx_roi_map;
1673#[repr(C)]
1674#[derive(Debug, Copy, Clone)]
1675pub struct vpx_active_map {
1676    pub active_map: *mut ::std::os::raw::c_uchar,
1677    pub rows: ::std::os::raw::c_uint,
1678    pub cols: ::std::os::raw::c_uint,
1679}
1680#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1681const _: () = {
1682    ["Size of vpx_active_map"][::std::mem::size_of::<vpx_active_map>() - 16usize];
1683    ["Alignment of vpx_active_map"][::std::mem::align_of::<vpx_active_map>() - 8usize];
1684    ["Offset of field: vpx_active_map::active_map"][::std::mem::offset_of!(vpx_active_map, active_map) - 0usize];
1685    ["Offset of field: vpx_active_map::rows"][::std::mem::offset_of!(vpx_active_map, rows) - 8usize];
1686    ["Offset of field: vpx_active_map::cols"][::std::mem::offset_of!(vpx_active_map, cols) - 12usize];
1687};
1688pub type vpx_active_map_t = vpx_active_map;
1689#[repr(C)]
1690#[derive(Debug, Copy, Clone)]
1691pub struct vpx_scaling_mode {
1692    pub h_scaling_mode: VPX_SCALING_MODE,
1693    pub v_scaling_mode: VPX_SCALING_MODE,
1694}
1695#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1696const _: () = {
1697    ["Size of vpx_scaling_mode"][::std::mem::size_of::<vpx_scaling_mode>() - 8usize];
1698    ["Alignment of vpx_scaling_mode"][::std::mem::align_of::<vpx_scaling_mode>() - 4usize];
1699    ["Offset of field: vpx_scaling_mode::h_scaling_mode"][::std::mem::offset_of!(vpx_scaling_mode, h_scaling_mode) - 0usize];
1700    ["Offset of field: vpx_scaling_mode::v_scaling_mode"][::std::mem::offset_of!(vpx_scaling_mode, v_scaling_mode) - 4usize];
1701};
1702pub type vpx_scaling_mode_t = vpx_scaling_mode;
1703#[repr(i32)]
1704#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1705pub enum vp8e_token_partitions {
1706    VP8_ONE_TOKENPARTITION = 0,
1707    VP8_TWO_TOKENPARTITION = 1,
1708    VP8_FOUR_TOKENPARTITION = 2,
1709    VP8_EIGHT_TOKENPARTITION = 3,
1710}
1711#[repr(i32)]
1712#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1713pub enum vp9e_tune_content {
1714    VP9E_CONTENT_DEFAULT = 0,
1715    VP9E_CONTENT_SCREEN = 1,
1716    VP9E_CONTENT_FILM = 2,
1717    VP9E_CONTENT_INVALID = 3,
1718}
1719#[repr(i32)]
1720#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1721pub enum vp8e_tuning {
1722    VP8_TUNE_PSNR = 0,
1723    VP8_TUNE_SSIM = 1,
1724}
1725#[repr(C)]
1726#[derive(Debug, Copy, Clone)]
1727pub struct vpx_svc_layer_id {
1728    pub spatial_layer_id: ::std::os::raw::c_int,
1729    pub temporal_layer_id: ::std::os::raw::c_int,
1730    pub temporal_layer_id_per_spatial: [::std::os::raw::c_int; 5usize],
1731}
1732#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1733const _: () = {
1734    ["Size of vpx_svc_layer_id"][::std::mem::size_of::<vpx_svc_layer_id>() - 28usize];
1735    ["Alignment of vpx_svc_layer_id"][::std::mem::align_of::<vpx_svc_layer_id>() - 4usize];
1736    ["Offset of field: vpx_svc_layer_id::spatial_layer_id"][::std::mem::offset_of!(vpx_svc_layer_id, spatial_layer_id) - 0usize];
1737    ["Offset of field: vpx_svc_layer_id::temporal_layer_id"][::std::mem::offset_of!(vpx_svc_layer_id, temporal_layer_id) - 4usize];
1738    ["Offset of field: vpx_svc_layer_id::temporal_layer_id_per_spatial"]
1739        [::std::mem::offset_of!(vpx_svc_layer_id, temporal_layer_id_per_spatial) - 8usize];
1740};
1741pub type vpx_svc_layer_id_t = vpx_svc_layer_id;
1742#[repr(C)]
1743#[derive(Debug, Copy, Clone)]
1744pub struct vpx_svc_ref_frame_config {
1745    pub lst_fb_idx: [::std::os::raw::c_int; 5usize],
1746    pub gld_fb_idx: [::std::os::raw::c_int; 5usize],
1747    pub alt_fb_idx: [::std::os::raw::c_int; 5usize],
1748    pub update_buffer_slot: [::std::os::raw::c_int; 5usize],
1749    pub update_last: [::std::os::raw::c_int; 5usize],
1750    pub update_golden: [::std::os::raw::c_int; 5usize],
1751    pub update_alt_ref: [::std::os::raw::c_int; 5usize],
1752    pub reference_last: [::std::os::raw::c_int; 5usize],
1753    pub reference_golden: [::std::os::raw::c_int; 5usize],
1754    pub reference_alt_ref: [::std::os::raw::c_int; 5usize],
1755    pub duration: [i64; 5usize],
1756}
1757#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1758const _: () = {
1759    ["Size of vpx_svc_ref_frame_config"][::std::mem::size_of::<vpx_svc_ref_frame_config>() - 240usize];
1760    ["Alignment of vpx_svc_ref_frame_config"][::std::mem::align_of::<vpx_svc_ref_frame_config>() - 8usize];
1761    ["Offset of field: vpx_svc_ref_frame_config::lst_fb_idx"][::std::mem::offset_of!(vpx_svc_ref_frame_config, lst_fb_idx) - 0usize];
1762    ["Offset of field: vpx_svc_ref_frame_config::gld_fb_idx"][::std::mem::offset_of!(vpx_svc_ref_frame_config, gld_fb_idx) - 20usize];
1763    ["Offset of field: vpx_svc_ref_frame_config::alt_fb_idx"][::std::mem::offset_of!(vpx_svc_ref_frame_config, alt_fb_idx) - 40usize];
1764    ["Offset of field: vpx_svc_ref_frame_config::update_buffer_slot"][::std::mem::offset_of!(vpx_svc_ref_frame_config, update_buffer_slot) - 60usize];
1765    ["Offset of field: vpx_svc_ref_frame_config::update_last"][::std::mem::offset_of!(vpx_svc_ref_frame_config, update_last) - 80usize];
1766    ["Offset of field: vpx_svc_ref_frame_config::update_golden"][::std::mem::offset_of!(vpx_svc_ref_frame_config, update_golden) - 100usize];
1767    ["Offset of field: vpx_svc_ref_frame_config::update_alt_ref"][::std::mem::offset_of!(vpx_svc_ref_frame_config, update_alt_ref) - 120usize];
1768    ["Offset of field: vpx_svc_ref_frame_config::reference_last"][::std::mem::offset_of!(vpx_svc_ref_frame_config, reference_last) - 140usize];
1769    ["Offset of field: vpx_svc_ref_frame_config::reference_golden"][::std::mem::offset_of!(vpx_svc_ref_frame_config, reference_golden) - 160usize];
1770    ["Offset of field: vpx_svc_ref_frame_config::reference_alt_ref"][::std::mem::offset_of!(vpx_svc_ref_frame_config, reference_alt_ref) - 180usize];
1771    ["Offset of field: vpx_svc_ref_frame_config::duration"][::std::mem::offset_of!(vpx_svc_ref_frame_config, duration) - 200usize];
1772};
1773pub type vpx_svc_ref_frame_config_t = vpx_svc_ref_frame_config;
1774#[repr(i32)]
1775#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1776pub enum SVC_LAYER_DROP_MODE {
1777    CONSTRAINED_LAYER_DROP = 0,
1778    LAYER_DROP = 1,
1779    FULL_SUPERFRAME_DROP = 2,
1780    CONSTRAINED_FROM_ABOVE_DROP = 3,
1781}
1782#[repr(C)]
1783#[derive(Debug, Copy, Clone)]
1784pub struct vpx_svc_frame_drop {
1785    pub framedrop_thresh: [::std::os::raw::c_int; 5usize],
1786    pub framedrop_mode: SVC_LAYER_DROP_MODE,
1787    pub max_consec_drop: ::std::os::raw::c_int,
1788}
1789#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1790const _: () = {
1791    ["Size of vpx_svc_frame_drop"][::std::mem::size_of::<vpx_svc_frame_drop>() - 28usize];
1792    ["Alignment of vpx_svc_frame_drop"][::std::mem::align_of::<vpx_svc_frame_drop>() - 4usize];
1793    ["Offset of field: vpx_svc_frame_drop::framedrop_thresh"][::std::mem::offset_of!(vpx_svc_frame_drop, framedrop_thresh) - 0usize];
1794    ["Offset of field: vpx_svc_frame_drop::framedrop_mode"][::std::mem::offset_of!(vpx_svc_frame_drop, framedrop_mode) - 20usize];
1795    ["Offset of field: vpx_svc_frame_drop::max_consec_drop"][::std::mem::offset_of!(vpx_svc_frame_drop, max_consec_drop) - 24usize];
1796};
1797pub type vpx_svc_frame_drop_t = vpx_svc_frame_drop;
1798#[repr(C)]
1799#[derive(Debug, Copy, Clone)]
1800pub struct vpx_svc_spatial_layer_sync {
1801    pub spatial_layer_sync: [::std::os::raw::c_int; 5usize],
1802    pub base_layer_intra_only: ::std::os::raw::c_int,
1803}
1804#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1805const _: () = {
1806    ["Size of vpx_svc_spatial_layer_sync"][::std::mem::size_of::<vpx_svc_spatial_layer_sync>() - 24usize];
1807    ["Alignment of vpx_svc_spatial_layer_sync"][::std::mem::align_of::<vpx_svc_spatial_layer_sync>() - 4usize];
1808    ["Offset of field: vpx_svc_spatial_layer_sync::spatial_layer_sync"]
1809        [::std::mem::offset_of!(vpx_svc_spatial_layer_sync, spatial_layer_sync) - 0usize];
1810    ["Offset of field: vpx_svc_spatial_layer_sync::base_layer_intra_only"]
1811        [::std::mem::offset_of!(vpx_svc_spatial_layer_sync, base_layer_intra_only) - 20usize];
1812};
1813pub type vpx_svc_spatial_layer_sync_t = vpx_svc_spatial_layer_sync;
1814unsafe extern "C" {
1815    pub static mut vpx_codec_vp8_dx_algo: vpx_codec_iface_t;
1816}
1817unsafe extern "C" {
1818    pub fn vpx_codec_vp8_dx() -> *const vpx_codec_iface;
1819}
1820unsafe extern "C" {
1821    pub static mut vpx_codec_vp9_dx_algo: vpx_codec_iface_t;
1822}
1823unsafe extern "C" {
1824    pub fn vpx_codec_vp9_dx() -> *const vpx_codec_iface;
1825}
1826impl vp8_dec_control_id {
1827    pub const VP8D_SET_DECRYPTOR: vp8_dec_control_id = vp8_dec_control_id::VPXD_SET_DECRYPTOR;
1828}
1829#[repr(i32)]
1830#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1831pub enum vp8_dec_control_id {
1832    VP8D_GET_LAST_REF_UPDATES = 256,
1833    VP8D_GET_FRAME_CORRUPTED = 257,
1834    VP8D_GET_LAST_REF_USED = 258,
1835    VPXD_SET_DECRYPTOR = 259,
1836    VP9D_GET_FRAME_SIZE = 260,
1837    VP9D_GET_DISPLAY_SIZE = 261,
1838    VP9D_GET_BIT_DEPTH = 262,
1839    VP9_SET_BYTE_ALIGNMENT = 263,
1840    VP9_INVERT_TILE_DECODE_ORDER = 264,
1841    VP9_SET_SKIP_LOOP_FILTER = 265,
1842    VP9_DECODE_SVC_SPATIAL_LAYER = 266,
1843    VPXD_GET_LAST_QUANTIZER = 267,
1844    VP9D_SET_ROW_MT = 268,
1845    VP9D_SET_LOOP_FILTER_OPT = 269,
1846    VP8_DECODER_CTRL_ID_MAX = 270,
1847}
1848pub type vpx_decrypt_cb = ::std::option::Option<
1849    unsafe extern "C" fn(
1850        decrypt_state: *mut ::std::os::raw::c_void,
1851        input: *const ::std::os::raw::c_uchar,
1852        output: *mut ::std::os::raw::c_uchar,
1853        count: ::std::os::raw::c_int,
1854    ),
1855>;
1856#[repr(C)]
1857#[derive(Debug, Copy, Clone)]
1858pub struct vpx_decrypt_init {
1859    pub decrypt_cb: vpx_decrypt_cb,
1860    pub decrypt_state: *mut ::std::os::raw::c_void,
1861}
1862#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1863const _: () = {
1864    ["Size of vpx_decrypt_init"][::std::mem::size_of::<vpx_decrypt_init>() - 16usize];
1865    ["Alignment of vpx_decrypt_init"][::std::mem::align_of::<vpx_decrypt_init>() - 8usize];
1866    ["Offset of field: vpx_decrypt_init::decrypt_cb"][::std::mem::offset_of!(vpx_decrypt_init, decrypt_cb) - 0usize];
1867    ["Offset of field: vpx_decrypt_init::decrypt_state"][::std::mem::offset_of!(vpx_decrypt_init, decrypt_state) - 8usize];
1868};
1869#[repr(C)]
1870#[derive(Debug, Copy, Clone)]
1871pub struct vpx_codec_frame_buffer {
1872    pub data: *mut u8,
1873    pub size: usize,
1874    pub priv_: *mut ::std::os::raw::c_void,
1875}
1876#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1877const _: () = {
1878    ["Size of vpx_codec_frame_buffer"][::std::mem::size_of::<vpx_codec_frame_buffer>() - 24usize];
1879    ["Alignment of vpx_codec_frame_buffer"][::std::mem::align_of::<vpx_codec_frame_buffer>() - 8usize];
1880    ["Offset of field: vpx_codec_frame_buffer::data"][::std::mem::offset_of!(vpx_codec_frame_buffer, data) - 0usize];
1881    ["Offset of field: vpx_codec_frame_buffer::size"][::std::mem::offset_of!(vpx_codec_frame_buffer, size) - 8usize];
1882    ["Offset of field: vpx_codec_frame_buffer::priv_"][::std::mem::offset_of!(vpx_codec_frame_buffer, priv_) - 16usize];
1883};
1884pub type vpx_codec_frame_buffer_t = vpx_codec_frame_buffer;
1885pub type vpx_get_frame_buffer_cb_fn_t = ::std::option::Option<
1886    unsafe extern "C" fn(priv_: *mut ::std::os::raw::c_void, min_size: usize, fb: *mut vpx_codec_frame_buffer_t) -> ::std::os::raw::c_int,
1887>;
1888pub type vpx_release_frame_buffer_cb_fn_t =
1889    ::std::option::Option<unsafe extern "C" fn(priv_: *mut ::std::os::raw::c_void, fb: *mut vpx_codec_frame_buffer_t) -> ::std::os::raw::c_int>;
1890#[repr(C)]
1891#[derive(Debug, Copy, Clone)]
1892pub struct vpx_codec_stream_info {
1893    pub sz: ::std::os::raw::c_uint,
1894    pub w: ::std::os::raw::c_uint,
1895    pub h: ::std::os::raw::c_uint,
1896    pub is_kf: ::std::os::raw::c_uint,
1897}
1898#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1899const _: () = {
1900    ["Size of vpx_codec_stream_info"][::std::mem::size_of::<vpx_codec_stream_info>() - 16usize];
1901    ["Alignment of vpx_codec_stream_info"][::std::mem::align_of::<vpx_codec_stream_info>() - 4usize];
1902    ["Offset of field: vpx_codec_stream_info::sz"][::std::mem::offset_of!(vpx_codec_stream_info, sz) - 0usize];
1903    ["Offset of field: vpx_codec_stream_info::w"][::std::mem::offset_of!(vpx_codec_stream_info, w) - 4usize];
1904    ["Offset of field: vpx_codec_stream_info::h"][::std::mem::offset_of!(vpx_codec_stream_info, h) - 8usize];
1905    ["Offset of field: vpx_codec_stream_info::is_kf"][::std::mem::offset_of!(vpx_codec_stream_info, is_kf) - 12usize];
1906};
1907pub type vpx_codec_stream_info_t = vpx_codec_stream_info;
1908#[repr(C)]
1909#[derive(Debug, Copy, Clone)]
1910pub struct vpx_codec_dec_cfg {
1911    pub threads: ::std::os::raw::c_uint,
1912    pub w: ::std::os::raw::c_uint,
1913    pub h: ::std::os::raw::c_uint,
1914}
1915#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1916const _: () = {
1917    ["Size of vpx_codec_dec_cfg"][::std::mem::size_of::<vpx_codec_dec_cfg>() - 12usize];
1918    ["Alignment of vpx_codec_dec_cfg"][::std::mem::align_of::<vpx_codec_dec_cfg>() - 4usize];
1919    ["Offset of field: vpx_codec_dec_cfg::threads"][::std::mem::offset_of!(vpx_codec_dec_cfg, threads) - 0usize];
1920    ["Offset of field: vpx_codec_dec_cfg::w"][::std::mem::offset_of!(vpx_codec_dec_cfg, w) - 4usize];
1921    ["Offset of field: vpx_codec_dec_cfg::h"][::std::mem::offset_of!(vpx_codec_dec_cfg, h) - 8usize];
1922};
1923pub type vpx_codec_dec_cfg_t = vpx_codec_dec_cfg;
1924unsafe extern "C" {
1925    pub fn vpx_codec_dec_init_ver(
1926        ctx: *mut vpx_codec_ctx_t,
1927        iface: *const vpx_codec_iface,
1928        cfg: *const vpx_codec_dec_cfg_t,
1929        flags: vpx_codec_flags_t,
1930        ver: ::std::os::raw::c_int,
1931    ) -> vpx_codec_err_t;
1932}
1933unsafe extern "C" {
1934    pub fn vpx_codec_peek_stream_info(
1935        iface: *const vpx_codec_iface,
1936        data: *const u8,
1937        data_sz: ::std::os::raw::c_uint,
1938        si: *mut vpx_codec_stream_info_t,
1939    ) -> vpx_codec_err_t;
1940}
1941unsafe extern "C" {
1942    pub fn vpx_codec_get_stream_info(ctx: *mut vpx_codec_ctx_t, si: *mut vpx_codec_stream_info_t) -> vpx_codec_err_t;
1943}
1944unsafe extern "C" {
1945    pub fn vpx_codec_decode(
1946        ctx: *mut vpx_codec_ctx_t,
1947        data: *const u8,
1948        data_sz: ::std::os::raw::c_uint,
1949        user_priv: *mut ::std::os::raw::c_void,
1950        deadline: ::std::os::raw::c_long,
1951    ) -> vpx_codec_err_t;
1952}
1953unsafe extern "C" {
1954    pub fn vpx_codec_get_frame(ctx: *mut vpx_codec_ctx_t, iter: *mut vpx_codec_iter_t) -> *mut vpx_image_t;
1955}
1956pub type vpx_codec_put_frame_cb_fn_t = ::std::option::Option<unsafe extern "C" fn(user_priv: *mut ::std::os::raw::c_void, img: *const vpx_image_t)>;
1957unsafe extern "C" {
1958    pub fn vpx_codec_register_put_frame_cb(
1959        ctx: *mut vpx_codec_ctx_t,
1960        cb: vpx_codec_put_frame_cb_fn_t,
1961        user_priv: *mut ::std::os::raw::c_void,
1962    ) -> vpx_codec_err_t;
1963}
1964pub type vpx_codec_put_slice_cb_fn_t = ::std::option::Option<
1965    unsafe extern "C" fn(
1966        user_priv: *mut ::std::os::raw::c_void,
1967        img: *const vpx_image_t,
1968        valid: *const vpx_image_rect_t,
1969        update: *const vpx_image_rect_t,
1970    ),
1971>;
1972unsafe extern "C" {
1973    pub fn vpx_codec_register_put_slice_cb(
1974        ctx: *mut vpx_codec_ctx_t,
1975        cb: vpx_codec_put_slice_cb_fn_t,
1976        user_priv: *mut ::std::os::raw::c_void,
1977    ) -> vpx_codec_err_t;
1978}
1979unsafe extern "C" {
1980    pub fn vpx_codec_set_frame_buffer_functions(
1981        ctx: *mut vpx_codec_ctx_t,
1982        cb_get: vpx_get_frame_buffer_cb_fn_t,
1983        cb_release: vpx_release_frame_buffer_cb_fn_t,
1984        cb_priv: *mut ::std::os::raw::c_void,
1985    ) -> vpx_codec_err_t;
1986}
1987#[repr(C)]
1988#[derive(Debug, Copy, Clone)]
1989pub struct __crt_locale_data {
1990    pub _address: u8,
1991}
1992#[repr(C)]
1993#[derive(Debug, Copy, Clone)]
1994pub struct __crt_multibyte_data {
1995    pub _address: u8,
1996}