caldera_bindings/avcodec/
mod.rs

1/* automatically generated by rust-bindgen */
2
3#[link(name = "avcodec")] extern {}
4
5pub const _ERRNO_H: u32 = 1;
6pub const _FEATURES_H: u32 = 1;
7pub const _DEFAULT_SOURCE: u32 = 1;
8pub const __USE_ISOC11: u32 = 1;
9pub const __USE_ISOC99: u32 = 1;
10pub const __USE_ISOC95: u32 = 1;
11pub const __USE_POSIX_IMPLICITLY: u32 = 1;
12pub const _POSIX_SOURCE: u32 = 1;
13pub const _POSIX_C_SOURCE: u32 = 200809;
14pub const __USE_POSIX: u32 = 1;
15pub const __USE_POSIX2: u32 = 1;
16pub const __USE_POSIX199309: u32 = 1;
17pub const __USE_POSIX199506: u32 = 1;
18pub const __USE_XOPEN2K: u32 = 1;
19pub const __USE_XOPEN2K8: u32 = 1;
20pub const _ATFILE_SOURCE: u32 = 1;
21pub const __USE_MISC: u32 = 1;
22pub const __USE_ATFILE: u32 = 1;
23pub const __USE_FORTIFY_LEVEL: u32 = 0;
24pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
25pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
26pub const _STDC_PREDEF_H: u32 = 1;
27pub const __STDC_IEC_559__: u32 = 1;
28pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
29pub const __STDC_ISO_10646__: u32 = 201706;
30pub const __GNU_LIBRARY__: u32 = 6;
31pub const __GLIBC__: u32 = 2;
32pub const __GLIBC_MINOR__: u32 = 29;
33pub const _SYS_CDEFS_H: u32 = 1;
34pub const __glibc_c99_flexarr_available: u32 = 1;
35pub const __WORDSIZE: u32 = 64;
36pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
37pub const __SYSCALL_WORDSIZE: u32 = 64;
38pub const __HAVE_GENERIC_SELECTION: u32 = 1;
39pub const _BITS_ERRNO_H: u32 = 1;
40pub const EPERM: u32 = 1;
41pub const ENOENT: u32 = 2;
42pub const ESRCH: u32 = 3;
43pub const EINTR: u32 = 4;
44pub const EIO: u32 = 5;
45pub const ENXIO: u32 = 6;
46pub const E2BIG: u32 = 7;
47pub const ENOEXEC: u32 = 8;
48pub const EBADF: u32 = 9;
49pub const ECHILD: u32 = 10;
50pub const EAGAIN: u32 = 11;
51pub const ENOMEM: u32 = 12;
52pub const EACCES: u32 = 13;
53pub const EFAULT: u32 = 14;
54pub const ENOTBLK: u32 = 15;
55pub const EBUSY: u32 = 16;
56pub const EEXIST: u32 = 17;
57pub const EXDEV: u32 = 18;
58pub const ENODEV: u32 = 19;
59pub const ENOTDIR: u32 = 20;
60pub const EISDIR: u32 = 21;
61pub const EINVAL: u32 = 22;
62pub const ENFILE: u32 = 23;
63pub const EMFILE: u32 = 24;
64pub const ENOTTY: u32 = 25;
65pub const ETXTBSY: u32 = 26;
66pub const EFBIG: u32 = 27;
67pub const ENOSPC: u32 = 28;
68pub const ESPIPE: u32 = 29;
69pub const EROFS: u32 = 30;
70pub const EMLINK: u32 = 31;
71pub const EPIPE: u32 = 32;
72pub const EDOM: u32 = 33;
73pub const ERANGE: u32 = 34;
74pub const EDEADLK: u32 = 35;
75pub const ENAMETOOLONG: u32 = 36;
76pub const ENOLCK: u32 = 37;
77pub const ENOSYS: u32 = 38;
78pub const ENOTEMPTY: u32 = 39;
79pub const ELOOP: u32 = 40;
80pub const EWOULDBLOCK: u32 = 11;
81pub const ENOMSG: u32 = 42;
82pub const EIDRM: u32 = 43;
83pub const ECHRNG: u32 = 44;
84pub const EL2NSYNC: u32 = 45;
85pub const EL3HLT: u32 = 46;
86pub const EL3RST: u32 = 47;
87pub const ELNRNG: u32 = 48;
88pub const EUNATCH: u32 = 49;
89pub const ENOCSI: u32 = 50;
90pub const EL2HLT: u32 = 51;
91pub const EBADE: u32 = 52;
92pub const EBADR: u32 = 53;
93pub const EXFULL: u32 = 54;
94pub const ENOANO: u32 = 55;
95pub const EBADRQC: u32 = 56;
96pub const EBADSLT: u32 = 57;
97pub const EDEADLOCK: u32 = 35;
98pub const EBFONT: u32 = 59;
99pub const ENOSTR: u32 = 60;
100pub const ENODATA: u32 = 61;
101pub const ETIME: u32 = 62;
102pub const ENOSR: u32 = 63;
103pub const ENONET: u32 = 64;
104pub const ENOPKG: u32 = 65;
105pub const EREMOTE: u32 = 66;
106pub const ENOLINK: u32 = 67;
107pub const EADV: u32 = 68;
108pub const ESRMNT: u32 = 69;
109pub const ECOMM: u32 = 70;
110pub const EPROTO: u32 = 71;
111pub const EMULTIHOP: u32 = 72;
112pub const EDOTDOT: u32 = 73;
113pub const EBADMSG: u32 = 74;
114pub const EOVERFLOW: u32 = 75;
115pub const ENOTUNIQ: u32 = 76;
116pub const EBADFD: u32 = 77;
117pub const EREMCHG: u32 = 78;
118pub const ELIBACC: u32 = 79;
119pub const ELIBBAD: u32 = 80;
120pub const ELIBSCN: u32 = 81;
121pub const ELIBMAX: u32 = 82;
122pub const ELIBEXEC: u32 = 83;
123pub const EILSEQ: u32 = 84;
124pub const ERESTART: u32 = 85;
125pub const ESTRPIPE: u32 = 86;
126pub const EUSERS: u32 = 87;
127pub const ENOTSOCK: u32 = 88;
128pub const EDESTADDRREQ: u32 = 89;
129pub const EMSGSIZE: u32 = 90;
130pub const EPROTOTYPE: u32 = 91;
131pub const ENOPROTOOPT: u32 = 92;
132pub const EPROTONOSUPPORT: u32 = 93;
133pub const ESOCKTNOSUPPORT: u32 = 94;
134pub const EOPNOTSUPP: u32 = 95;
135pub const EPFNOSUPPORT: u32 = 96;
136pub const EAFNOSUPPORT: u32 = 97;
137pub const EADDRINUSE: u32 = 98;
138pub const EADDRNOTAVAIL: u32 = 99;
139pub const ENETDOWN: u32 = 100;
140pub const ENETUNREACH: u32 = 101;
141pub const ENETRESET: u32 = 102;
142pub const ECONNABORTED: u32 = 103;
143pub const ECONNRESET: u32 = 104;
144pub const ENOBUFS: u32 = 105;
145pub const EISCONN: u32 = 106;
146pub const ENOTCONN: u32 = 107;
147pub const ESHUTDOWN: u32 = 108;
148pub const ETOOMANYREFS: u32 = 109;
149pub const ETIMEDOUT: u32 = 110;
150pub const ECONNREFUSED: u32 = 111;
151pub const EHOSTDOWN: u32 = 112;
152pub const EHOSTUNREACH: u32 = 113;
153pub const EALREADY: u32 = 114;
154pub const EINPROGRESS: u32 = 115;
155pub const ESTALE: u32 = 116;
156pub const EUCLEAN: u32 = 117;
157pub const ENOTNAM: u32 = 118;
158pub const ENAVAIL: u32 = 119;
159pub const EISNAM: u32 = 120;
160pub const EREMOTEIO: u32 = 121;
161pub const EDQUOT: u32 = 122;
162pub const ENOMEDIUM: u32 = 123;
163pub const EMEDIUMTYPE: u32 = 124;
164pub const ECANCELED: u32 = 125;
165pub const ENOKEY: u32 = 126;
166pub const EKEYEXPIRED: u32 = 127;
167pub const EKEYREVOKED: u32 = 128;
168pub const EKEYREJECTED: u32 = 129;
169pub const EOWNERDEAD: u32 = 130;
170pub const ENOTRECOVERABLE: u32 = 131;
171pub const ERFKILL: u32 = 132;
172pub const EHWPOISON: u32 = 133;
173pub const ENOTSUP: u32 = 95;
174pub const _STDINT_H: u32 = 1;
175pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
176pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
177pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
178pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
179pub const _BITS_TYPES_H: u32 = 1;
180pub const __TIMESIZE: u32 = 64;
181pub const _BITS_TYPESIZES_H: u32 = 1;
182pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
183pub const __INO_T_MATCHES_INO64_T: u32 = 1;
184pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
185pub const __FD_SETSIZE: u32 = 1024;
186pub const _BITS_TIME64_H: u32 = 1;
187pub const _BITS_WCHAR_H: u32 = 1;
188pub const _BITS_STDINT_INTN_H: u32 = 1;
189pub const _BITS_STDINT_UINTN_H: u32 = 1;
190pub const INT8_MIN: i32 = -128;
191pub const INT16_MIN: i32 = -32768;
192pub const INT32_MIN: i32 = -2147483648;
193pub const INT8_MAX: u32 = 127;
194pub const INT16_MAX: u32 = 32767;
195pub const INT32_MAX: u32 = 2147483647;
196pub const UINT8_MAX: u32 = 255;
197pub const UINT16_MAX: u32 = 65535;
198pub const UINT32_MAX: u32 = 4294967295;
199pub const INT_LEAST8_MIN: i32 = -128;
200pub const INT_LEAST16_MIN: i32 = -32768;
201pub const INT_LEAST32_MIN: i32 = -2147483648;
202pub const INT_LEAST8_MAX: u32 = 127;
203pub const INT_LEAST16_MAX: u32 = 32767;
204pub const INT_LEAST32_MAX: u32 = 2147483647;
205pub const UINT_LEAST8_MAX: u32 = 255;
206pub const UINT_LEAST16_MAX: u32 = 65535;
207pub const UINT_LEAST32_MAX: u32 = 4294967295;
208pub const INT_FAST8_MIN: i32 = -128;
209pub const INT_FAST16_MIN: i64 = -9223372036854775808;
210pub const INT_FAST32_MIN: i64 = -9223372036854775808;
211pub const INT_FAST8_MAX: u32 = 127;
212pub const INT_FAST16_MAX: u64 = 9223372036854775807;
213pub const INT_FAST32_MAX: u64 = 9223372036854775807;
214pub const UINT_FAST8_MAX: u32 = 255;
215pub const UINT_FAST16_MAX: i32 = -1;
216pub const UINT_FAST32_MAX: i32 = -1;
217pub const INTPTR_MIN: i64 = -9223372036854775808;
218pub const INTPTR_MAX: u64 = 9223372036854775807;
219pub const UINTPTR_MAX: i32 = -1;
220pub const PTRDIFF_MIN: i64 = -9223372036854775808;
221pub const PTRDIFF_MAX: u64 = 9223372036854775807;
222pub const SIG_ATOMIC_MIN: i32 = -2147483648;
223pub const SIG_ATOMIC_MAX: u32 = 2147483647;
224pub const SIZE_MAX: i32 = -1;
225pub const WINT_MIN: u32 = 0;
226pub const WINT_MAX: u32 = 4294967295;
227pub const FF_LAMBDA_SHIFT: u32 = 7;
228pub const FF_LAMBDA_SCALE: u32 = 128;
229pub const FF_QP2LAMBDA: u32 = 118;
230pub const FF_LAMBDA_MAX: u32 = 32767;
231pub const FF_QUALITY_SCALE: u32 = 128;
232pub const AV_TIME_BASE: u32 = 1000000;
233pub const _INTTYPES_H: u32 = 1;
234pub const ____gwchar_t_defined: u32 = 1;
235pub const __PRI64_PREFIX: &'static [u8; 2usize] = b"l\0";
236pub const __PRIPTR_PREFIX: &'static [u8; 2usize] = b"l\0";
237pub const PRId8: &'static [u8; 2usize] = b"d\0";
238pub const PRId16: &'static [u8; 2usize] = b"d\0";
239pub const PRId32: &'static [u8; 2usize] = b"d\0";
240pub const PRId64: &'static [u8; 3usize] = b"ld\0";
241pub const PRIdLEAST8: &'static [u8; 2usize] = b"d\0";
242pub const PRIdLEAST16: &'static [u8; 2usize] = b"d\0";
243pub const PRIdLEAST32: &'static [u8; 2usize] = b"d\0";
244pub const PRIdLEAST64: &'static [u8; 3usize] = b"ld\0";
245pub const PRIdFAST8: &'static [u8; 2usize] = b"d\0";
246pub const PRIdFAST16: &'static [u8; 3usize] = b"ld\0";
247pub const PRIdFAST32: &'static [u8; 3usize] = b"ld\0";
248pub const PRIdFAST64: &'static [u8; 3usize] = b"ld\0";
249pub const PRIi8: &'static [u8; 2usize] = b"i\0";
250pub const PRIi16: &'static [u8; 2usize] = b"i\0";
251pub const PRIi32: &'static [u8; 2usize] = b"i\0";
252pub const PRIi64: &'static [u8; 3usize] = b"li\0";
253pub const PRIiLEAST8: &'static [u8; 2usize] = b"i\0";
254pub const PRIiLEAST16: &'static [u8; 2usize] = b"i\0";
255pub const PRIiLEAST32: &'static [u8; 2usize] = b"i\0";
256pub const PRIiLEAST64: &'static [u8; 3usize] = b"li\0";
257pub const PRIiFAST8: &'static [u8; 2usize] = b"i\0";
258pub const PRIiFAST16: &'static [u8; 3usize] = b"li\0";
259pub const PRIiFAST32: &'static [u8; 3usize] = b"li\0";
260pub const PRIiFAST64: &'static [u8; 3usize] = b"li\0";
261pub const PRIo8: &'static [u8; 2usize] = b"o\0";
262pub const PRIo16: &'static [u8; 2usize] = b"o\0";
263pub const PRIo32: &'static [u8; 2usize] = b"o\0";
264pub const PRIo64: &'static [u8; 3usize] = b"lo\0";
265pub const PRIoLEAST8: &'static [u8; 2usize] = b"o\0";
266pub const PRIoLEAST16: &'static [u8; 2usize] = b"o\0";
267pub const PRIoLEAST32: &'static [u8; 2usize] = b"o\0";
268pub const PRIoLEAST64: &'static [u8; 3usize] = b"lo\0";
269pub const PRIoFAST8: &'static [u8; 2usize] = b"o\0";
270pub const PRIoFAST16: &'static [u8; 3usize] = b"lo\0";
271pub const PRIoFAST32: &'static [u8; 3usize] = b"lo\0";
272pub const PRIoFAST64: &'static [u8; 3usize] = b"lo\0";
273pub const PRIu8: &'static [u8; 2usize] = b"u\0";
274pub const PRIu16: &'static [u8; 2usize] = b"u\0";
275pub const PRIu32: &'static [u8; 2usize] = b"u\0";
276pub const PRIu64: &'static [u8; 3usize] = b"lu\0";
277pub const PRIuLEAST8: &'static [u8; 2usize] = b"u\0";
278pub const PRIuLEAST16: &'static [u8; 2usize] = b"u\0";
279pub const PRIuLEAST32: &'static [u8; 2usize] = b"u\0";
280pub const PRIuLEAST64: &'static [u8; 3usize] = b"lu\0";
281pub const PRIuFAST8: &'static [u8; 2usize] = b"u\0";
282pub const PRIuFAST16: &'static [u8; 3usize] = b"lu\0";
283pub const PRIuFAST32: &'static [u8; 3usize] = b"lu\0";
284pub const PRIuFAST64: &'static [u8; 3usize] = b"lu\0";
285pub const PRIx8: &'static [u8; 2usize] = b"x\0";
286pub const PRIx16: &'static [u8; 2usize] = b"x\0";
287pub const PRIx32: &'static [u8; 2usize] = b"x\0";
288pub const PRIx64: &'static [u8; 3usize] = b"lx\0";
289pub const PRIxLEAST8: &'static [u8; 2usize] = b"x\0";
290pub const PRIxLEAST16: &'static [u8; 2usize] = b"x\0";
291pub const PRIxLEAST32: &'static [u8; 2usize] = b"x\0";
292pub const PRIxLEAST64: &'static [u8; 3usize] = b"lx\0";
293pub const PRIxFAST8: &'static [u8; 2usize] = b"x\0";
294pub const PRIxFAST16: &'static [u8; 3usize] = b"lx\0";
295pub const PRIxFAST32: &'static [u8; 3usize] = b"lx\0";
296pub const PRIxFAST64: &'static [u8; 3usize] = b"lx\0";
297pub const PRIX8: &'static [u8; 2usize] = b"X\0";
298pub const PRIX16: &'static [u8; 2usize] = b"X\0";
299pub const PRIX32: &'static [u8; 2usize] = b"X\0";
300pub const PRIX64: &'static [u8; 3usize] = b"lX\0";
301pub const PRIXLEAST8: &'static [u8; 2usize] = b"X\0";
302pub const PRIXLEAST16: &'static [u8; 2usize] = b"X\0";
303pub const PRIXLEAST32: &'static [u8; 2usize] = b"X\0";
304pub const PRIXLEAST64: &'static [u8; 3usize] = b"lX\0";
305pub const PRIXFAST8: &'static [u8; 2usize] = b"X\0";
306pub const PRIXFAST16: &'static [u8; 3usize] = b"lX\0";
307pub const PRIXFAST32: &'static [u8; 3usize] = b"lX\0";
308pub const PRIXFAST64: &'static [u8; 3usize] = b"lX\0";
309pub const PRIdMAX: &'static [u8; 3usize] = b"ld\0";
310pub const PRIiMAX: &'static [u8; 3usize] = b"li\0";
311pub const PRIoMAX: &'static [u8; 3usize] = b"lo\0";
312pub const PRIuMAX: &'static [u8; 3usize] = b"lu\0";
313pub const PRIxMAX: &'static [u8; 3usize] = b"lx\0";
314pub const PRIXMAX: &'static [u8; 3usize] = b"lX\0";
315pub const PRIdPTR: &'static [u8; 3usize] = b"ld\0";
316pub const PRIiPTR: &'static [u8; 3usize] = b"li\0";
317pub const PRIoPTR: &'static [u8; 3usize] = b"lo\0";
318pub const PRIuPTR: &'static [u8; 3usize] = b"lu\0";
319pub const PRIxPTR: &'static [u8; 3usize] = b"lx\0";
320pub const PRIXPTR: &'static [u8; 3usize] = b"lX\0";
321pub const SCNd8: &'static [u8; 4usize] = b"hhd\0";
322pub const SCNd16: &'static [u8; 3usize] = b"hd\0";
323pub const SCNd32: &'static [u8; 2usize] = b"d\0";
324pub const SCNd64: &'static [u8; 3usize] = b"ld\0";
325pub const SCNdLEAST8: &'static [u8; 4usize] = b"hhd\0";
326pub const SCNdLEAST16: &'static [u8; 3usize] = b"hd\0";
327pub const SCNdLEAST32: &'static [u8; 2usize] = b"d\0";
328pub const SCNdLEAST64: &'static [u8; 3usize] = b"ld\0";
329pub const SCNdFAST8: &'static [u8; 4usize] = b"hhd\0";
330pub const SCNdFAST16: &'static [u8; 3usize] = b"ld\0";
331pub const SCNdFAST32: &'static [u8; 3usize] = b"ld\0";
332pub const SCNdFAST64: &'static [u8; 3usize] = b"ld\0";
333pub const SCNi8: &'static [u8; 4usize] = b"hhi\0";
334pub const SCNi16: &'static [u8; 3usize] = b"hi\0";
335pub const SCNi32: &'static [u8; 2usize] = b"i\0";
336pub const SCNi64: &'static [u8; 3usize] = b"li\0";
337pub const SCNiLEAST8: &'static [u8; 4usize] = b"hhi\0";
338pub const SCNiLEAST16: &'static [u8; 3usize] = b"hi\0";
339pub const SCNiLEAST32: &'static [u8; 2usize] = b"i\0";
340pub const SCNiLEAST64: &'static [u8; 3usize] = b"li\0";
341pub const SCNiFAST8: &'static [u8; 4usize] = b"hhi\0";
342pub const SCNiFAST16: &'static [u8; 3usize] = b"li\0";
343pub const SCNiFAST32: &'static [u8; 3usize] = b"li\0";
344pub const SCNiFAST64: &'static [u8; 3usize] = b"li\0";
345pub const SCNu8: &'static [u8; 4usize] = b"hhu\0";
346pub const SCNu16: &'static [u8; 3usize] = b"hu\0";
347pub const SCNu32: &'static [u8; 2usize] = b"u\0";
348pub const SCNu64: &'static [u8; 3usize] = b"lu\0";
349pub const SCNuLEAST8: &'static [u8; 4usize] = b"hhu\0";
350pub const SCNuLEAST16: &'static [u8; 3usize] = b"hu\0";
351pub const SCNuLEAST32: &'static [u8; 2usize] = b"u\0";
352pub const SCNuLEAST64: &'static [u8; 3usize] = b"lu\0";
353pub const SCNuFAST8: &'static [u8; 4usize] = b"hhu\0";
354pub const SCNuFAST16: &'static [u8; 3usize] = b"lu\0";
355pub const SCNuFAST32: &'static [u8; 3usize] = b"lu\0";
356pub const SCNuFAST64: &'static [u8; 3usize] = b"lu\0";
357pub const SCNo8: &'static [u8; 4usize] = b"hho\0";
358pub const SCNo16: &'static [u8; 3usize] = b"ho\0";
359pub const SCNo32: &'static [u8; 2usize] = b"o\0";
360pub const SCNo64: &'static [u8; 3usize] = b"lo\0";
361pub const SCNoLEAST8: &'static [u8; 4usize] = b"hho\0";
362pub const SCNoLEAST16: &'static [u8; 3usize] = b"ho\0";
363pub const SCNoLEAST32: &'static [u8; 2usize] = b"o\0";
364pub const SCNoLEAST64: &'static [u8; 3usize] = b"lo\0";
365pub const SCNoFAST8: &'static [u8; 4usize] = b"hho\0";
366pub const SCNoFAST16: &'static [u8; 3usize] = b"lo\0";
367pub const SCNoFAST32: &'static [u8; 3usize] = b"lo\0";
368pub const SCNoFAST64: &'static [u8; 3usize] = b"lo\0";
369pub const SCNx8: &'static [u8; 4usize] = b"hhx\0";
370pub const SCNx16: &'static [u8; 3usize] = b"hx\0";
371pub const SCNx32: &'static [u8; 2usize] = b"x\0";
372pub const SCNx64: &'static [u8; 3usize] = b"lx\0";
373pub const SCNxLEAST8: &'static [u8; 4usize] = b"hhx\0";
374pub const SCNxLEAST16: &'static [u8; 3usize] = b"hx\0";
375pub const SCNxLEAST32: &'static [u8; 2usize] = b"x\0";
376pub const SCNxLEAST64: &'static [u8; 3usize] = b"lx\0";
377pub const SCNxFAST8: &'static [u8; 4usize] = b"hhx\0";
378pub const SCNxFAST16: &'static [u8; 3usize] = b"lx\0";
379pub const SCNxFAST32: &'static [u8; 3usize] = b"lx\0";
380pub const SCNxFAST64: &'static [u8; 3usize] = b"lx\0";
381pub const SCNdMAX: &'static [u8; 3usize] = b"ld\0";
382pub const SCNiMAX: &'static [u8; 3usize] = b"li\0";
383pub const SCNoMAX: &'static [u8; 3usize] = b"lo\0";
384pub const SCNuMAX: &'static [u8; 3usize] = b"lu\0";
385pub const SCNxMAX: &'static [u8; 3usize] = b"lx\0";
386pub const SCNdPTR: &'static [u8; 3usize] = b"ld\0";
387pub const SCNiPTR: &'static [u8; 3usize] = b"li\0";
388pub const SCNoPTR: &'static [u8; 3usize] = b"lo\0";
389pub const SCNuPTR: &'static [u8; 3usize] = b"lu\0";
390pub const SCNxPTR: &'static [u8; 3usize] = b"lx\0";
391pub const _LIBC_LIMITS_H_: u32 = 1;
392pub const MB_LEN_MAX: u32 = 16;
393pub const _BITS_POSIX1_LIM_H: u32 = 1;
394pub const _POSIX_AIO_LISTIO_MAX: u32 = 2;
395pub const _POSIX_AIO_MAX: u32 = 1;
396pub const _POSIX_ARG_MAX: u32 = 4096;
397pub const _POSIX_CHILD_MAX: u32 = 25;
398pub const _POSIX_DELAYTIMER_MAX: u32 = 32;
399pub const _POSIX_HOST_NAME_MAX: u32 = 255;
400pub const _POSIX_LINK_MAX: u32 = 8;
401pub const _POSIX_LOGIN_NAME_MAX: u32 = 9;
402pub const _POSIX_MAX_CANON: u32 = 255;
403pub const _POSIX_MAX_INPUT: u32 = 255;
404pub const _POSIX_MQ_OPEN_MAX: u32 = 8;
405pub const _POSIX_MQ_PRIO_MAX: u32 = 32;
406pub const _POSIX_NAME_MAX: u32 = 14;
407pub const _POSIX_NGROUPS_MAX: u32 = 8;
408pub const _POSIX_OPEN_MAX: u32 = 20;
409pub const _POSIX_PATH_MAX: u32 = 256;
410pub const _POSIX_PIPE_BUF: u32 = 512;
411pub const _POSIX_RE_DUP_MAX: u32 = 255;
412pub const _POSIX_RTSIG_MAX: u32 = 8;
413pub const _POSIX_SEM_NSEMS_MAX: u32 = 256;
414pub const _POSIX_SEM_VALUE_MAX: u32 = 32767;
415pub const _POSIX_SIGQUEUE_MAX: u32 = 32;
416pub const _POSIX_SSIZE_MAX: u32 = 32767;
417pub const _POSIX_STREAM_MAX: u32 = 8;
418pub const _POSIX_SYMLINK_MAX: u32 = 255;
419pub const _POSIX_SYMLOOP_MAX: u32 = 8;
420pub const _POSIX_TIMER_MAX: u32 = 32;
421pub const _POSIX_TTY_NAME_MAX: u32 = 9;
422pub const _POSIX_TZNAME_MAX: u32 = 6;
423pub const _POSIX_CLOCKRES_MIN: u32 = 20000000;
424pub const NR_OPEN: u32 = 1024;
425pub const NGROUPS_MAX: u32 = 65536;
426pub const ARG_MAX: u32 = 131072;
427pub const LINK_MAX: u32 = 127;
428pub const MAX_CANON: u32 = 255;
429pub const MAX_INPUT: u32 = 255;
430pub const NAME_MAX: u32 = 255;
431pub const PATH_MAX: u32 = 4096;
432pub const PIPE_BUF: u32 = 4096;
433pub const XATTR_NAME_MAX: u32 = 255;
434pub const XATTR_SIZE_MAX: u32 = 65536;
435pub const XATTR_LIST_MAX: u32 = 65536;
436pub const RTSIG_MAX: u32 = 32;
437pub const _POSIX_THREAD_KEYS_MAX: u32 = 128;
438pub const PTHREAD_KEYS_MAX: u32 = 1024;
439pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4;
440pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4;
441pub const _POSIX_THREAD_THREADS_MAX: u32 = 64;
442pub const AIO_PRIO_DELTA_MAX: u32 = 20;
443pub const PTHREAD_STACK_MIN: u32 = 16384;
444pub const DELAYTIMER_MAX: u32 = 2147483647;
445pub const TTY_NAME_MAX: u32 = 32;
446pub const LOGIN_NAME_MAX: u32 = 256;
447pub const HOST_NAME_MAX: u32 = 64;
448pub const MQ_PRIO_MAX: u32 = 32768;
449pub const SEM_VALUE_MAX: u32 = 2147483647;
450pub const _BITS_POSIX2_LIM_H: u32 = 1;
451pub const _POSIX2_BC_BASE_MAX: u32 = 99;
452pub const _POSIX2_BC_DIM_MAX: u32 = 2048;
453pub const _POSIX2_BC_SCALE_MAX: u32 = 99;
454pub const _POSIX2_BC_STRING_MAX: u32 = 1000;
455pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2;
456pub const _POSIX2_EXPR_NEST_MAX: u32 = 32;
457pub const _POSIX2_LINE_MAX: u32 = 2048;
458pub const _POSIX2_RE_DUP_MAX: u32 = 255;
459pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14;
460pub const BC_BASE_MAX: u32 = 99;
461pub const BC_DIM_MAX: u32 = 2048;
462pub const BC_SCALE_MAX: u32 = 99;
463pub const BC_STRING_MAX: u32 = 1000;
464pub const COLL_WEIGHTS_MAX: u32 = 255;
465pub const EXPR_NEST_MAX: u32 = 32;
466pub const LINE_MAX: u32 = 2048;
467pub const CHARCLASS_NAME_MAX: u32 = 2048;
468pub const RE_DUP_MAX: u32 = 32767;
469pub const _MATH_H: u32 = 1;
470pub const _BITS_LIBM_SIMD_DECL_STUBS_H: u32 = 1;
471pub const __HAVE_FLOAT128: u32 = 0;
472pub const __HAVE_DISTINCT_FLOAT128: u32 = 0;
473pub const __HAVE_FLOAT64X: u32 = 1;
474pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1;
475pub const __HAVE_FLOAT16: u32 = 0;
476pub const __HAVE_FLOAT32: u32 = 1;
477pub const __HAVE_FLOAT64: u32 = 1;
478pub const __HAVE_FLOAT32X: u32 = 1;
479pub const __HAVE_FLOAT128X: u32 = 0;
480pub const __HAVE_DISTINCT_FLOAT16: u32 = 0;
481pub const __HAVE_DISTINCT_FLOAT32: u32 = 0;
482pub const __HAVE_DISTINCT_FLOAT64: u32 = 0;
483pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0;
484pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0;
485pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0;
486pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0;
487pub const __FP_LOGB0_IS_MIN: u32 = 1;
488pub const __FP_LOGBNAN_IS_MIN: u32 = 1;
489pub const FP_ILOGB0: i32 = -2147483648;
490pub const FP_ILOGBNAN: i32 = -2147483648;
491pub const __MATH_DECLARING_DOUBLE: u32 = 1;
492pub const __MATH_DECLARING_FLOATN: u32 = 0;
493pub const __MATH_DECLARE_LDOUBLE: u32 = 1;
494pub const FP_NAN: u32 = 0;
495pub const FP_INFINITE: u32 = 1;
496pub const FP_ZERO: u32 = 2;
497pub const FP_SUBNORMAL: u32 = 3;
498pub const FP_NORMAL: u32 = 4;
499pub const MATH_ERRNO: u32 = 1;
500pub const MATH_ERREXCEPT: u32 = 2;
501pub const math_errhandling: u32 = 3;
502pub const M_E: f64 = 2.718281828459045;
503pub const M_LOG2E: f64 = 1.4426950408889634;
504pub const M_LOG10E: f64 = 0.4342944819032518;
505pub const M_LN2: f64 = 0.6931471805599453;
506pub const M_LN10: f64 = 2.302585092994046;
507pub const M_PI: f64 = 3.141592653589793;
508pub const M_PI_2: f64 = 1.5707963267948966;
509pub const M_PI_4: f64 = 0.7853981633974483;
510pub const M_1_PI: f64 = 0.3183098861837907;
511pub const M_2_PI: f64 = 0.6366197723675814;
512pub const M_2_SQRTPI: f64 = 1.1283791670955126;
513pub const M_SQRT2: f64 = 1.4142135623730951;
514pub const M_SQRT1_2: f64 = 0.7071067811865476;
515pub const _STDIO_H: u32 = 1;
516pub const __GNUC_VA_LIST: u32 = 1;
517pub const _____fpos_t_defined: u32 = 1;
518pub const ____mbstate_t_defined: u32 = 1;
519pub const _____fpos64_t_defined: u32 = 1;
520pub const ____FILE_defined: u32 = 1;
521pub const __FILE_defined: u32 = 1;
522pub const __struct_FILE_defined: u32 = 1;
523pub const _IO_EOF_SEEN: u32 = 16;
524pub const _IO_ERR_SEEN: u32 = 32;
525pub const _IO_USER_LOCK: u32 = 32768;
526pub const _IOFBF: u32 = 0;
527pub const _IOLBF: u32 = 1;
528pub const _IONBF: u32 = 2;
529pub const BUFSIZ: u32 = 8192;
530pub const EOF: i32 = -1;
531pub const SEEK_SET: u32 = 0;
532pub const SEEK_CUR: u32 = 1;
533pub const SEEK_END: u32 = 2;
534pub const P_tmpdir: &'static [u8; 5usize] = b"/tmp\0";
535pub const _BITS_STDIO_LIM_H: u32 = 1;
536pub const L_tmpnam: u32 = 20;
537pub const TMP_MAX: u32 = 238328;
538pub const FILENAME_MAX: u32 = 4096;
539pub const L_ctermid: u32 = 9;
540pub const FOPEN_MAX: u32 = 16;
541pub const _STDLIB_H: u32 = 1;
542pub const WNOHANG: u32 = 1;
543pub const WUNTRACED: u32 = 2;
544pub const WSTOPPED: u32 = 2;
545pub const WEXITED: u32 = 4;
546pub const WCONTINUED: u32 = 8;
547pub const WNOWAIT: u32 = 16777216;
548pub const __WNOTHREAD: u32 = 536870912;
549pub const __WALL: u32 = 1073741824;
550pub const __WCLONE: u32 = 2147483648;
551pub const __W_CONTINUED: u32 = 65535;
552pub const __WCOREFLAG: u32 = 128;
553pub const __ldiv_t_defined: u32 = 1;
554pub const __lldiv_t_defined: u32 = 1;
555pub const RAND_MAX: u32 = 2147483647;
556pub const EXIT_FAILURE: u32 = 1;
557pub const EXIT_SUCCESS: u32 = 0;
558pub const _SYS_TYPES_H: u32 = 1;
559pub const __clock_t_defined: u32 = 1;
560pub const __clockid_t_defined: u32 = 1;
561pub const __time_t_defined: u32 = 1;
562pub const __timer_t_defined: u32 = 1;
563pub const __BIT_TYPES_DEFINED__: u32 = 1;
564pub const _ENDIAN_H: u32 = 1;
565pub const __LITTLE_ENDIAN: u32 = 1234;
566pub const __BIG_ENDIAN: u32 = 4321;
567pub const __PDP_ENDIAN: u32 = 3412;
568pub const __BYTE_ORDER: u32 = 1234;
569pub const __FLOAT_WORD_ORDER: u32 = 1234;
570pub const LITTLE_ENDIAN: u32 = 1234;
571pub const BIG_ENDIAN: u32 = 4321;
572pub const PDP_ENDIAN: u32 = 3412;
573pub const BYTE_ORDER: u32 = 1234;
574pub const _BITS_BYTESWAP_H: u32 = 1;
575pub const _BITS_UINTN_IDENTITY_H: u32 = 1;
576pub const _SYS_SELECT_H: u32 = 1;
577pub const __FD_ZERO_STOS: &'static [u8; 6usize] = b"stosq\0";
578pub const __sigset_t_defined: u32 = 1;
579pub const __timeval_defined: u32 = 1;
580pub const _STRUCT_TIMESPEC: u32 = 1;
581pub const FD_SETSIZE: u32 = 1024;
582pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1;
583pub const _THREAD_SHARED_TYPES_H: u32 = 1;
584pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1;
585pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40;
586pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56;
587pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56;
588pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32;
589pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4;
590pub const __SIZEOF_PTHREAD_COND_T: u32 = 48;
591pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4;
592pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8;
593pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4;
594pub const __PTHREAD_MUTEX_LOCK_ELISION: u32 = 1;
595pub const __PTHREAD_MUTEX_NUSERS_AFTER_KIND: u32 = 0;
596pub const __PTHREAD_MUTEX_USE_UNION: u32 = 0;
597pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED: u32 = 1;
598pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1;
599pub const __have_pthread_attr_t: u32 = 1;
600pub const _ALLOCA_H: u32 = 1;
601pub const _STRING_H: u32 = 1;
602pub const _BITS_TYPES_LOCALE_T_H: u32 = 1;
603pub const _BITS_TYPES___LOCALE_T_H: u32 = 1;
604pub const _STRINGS_H: u32 = 1;
605pub const LIBAVUTIL_VERSION_MAJOR: u32 = 56;
606pub const LIBAVUTIL_VERSION_MINOR: u32 = 22;
607pub const LIBAVUTIL_VERSION_MICRO: u32 = 100;
608pub const AV_HAVE_BIGENDIAN: u32 = 0;
609pub const AV_HAVE_FAST_UNALIGNED: u32 = 1;
610pub const AVERROR_EXPERIMENTAL: i32 = -733130664;
611pub const AVERROR_INPUT_CHANGED: i32 = -1668179713;
612pub const AVERROR_OUTPUT_CHANGED: i32 = -1668179714;
613pub const AV_ERROR_MAX_STRING_SIZE: u32 = 64;
614pub const M_LOG2_10: f64 = 3.321928094887362;
615pub const M_PHI: f64 = 1.618033988749895;
616pub const AV_LOG_QUIET: i32 = -8;
617pub const AV_LOG_PANIC: u32 = 0;
618pub const AV_LOG_FATAL: u32 = 8;
619pub const AV_LOG_ERROR: u32 = 16;
620pub const AV_LOG_WARNING: u32 = 24;
621pub const AV_LOG_INFO: u32 = 32;
622pub const AV_LOG_VERBOSE: u32 = 40;
623pub const AV_LOG_DEBUG: u32 = 48;
624pub const AV_LOG_TRACE: u32 = 56;
625pub const AV_LOG_MAX_OFFSET: u32 = 64;
626pub const AV_LOG_SKIP_REPEATED: u32 = 1;
627pub const AV_LOG_PRINT_LEVEL: u32 = 2;
628pub const AVPALETTE_SIZE: u32 = 1024;
629pub const AVPALETTE_COUNT: u32 = 256;
630pub const AV_FOURCC_MAX_STRING_SIZE: u32 = 32;
631pub const AV_BUFFER_FLAG_READONLY: u32 = 1;
632pub const AV_CPU_FLAG_FORCE: u32 = 2147483648;
633pub const AV_CPU_FLAG_MMX: u32 = 1;
634pub const AV_CPU_FLAG_MMXEXT: u32 = 2;
635pub const AV_CPU_FLAG_MMX2: u32 = 2;
636pub const AV_CPU_FLAG_3DNOW: u32 = 4;
637pub const AV_CPU_FLAG_SSE: u32 = 8;
638pub const AV_CPU_FLAG_SSE2: u32 = 16;
639pub const AV_CPU_FLAG_SSE2SLOW: u32 = 1073741824;
640pub const AV_CPU_FLAG_3DNOWEXT: u32 = 32;
641pub const AV_CPU_FLAG_SSE3: u32 = 64;
642pub const AV_CPU_FLAG_SSE3SLOW: u32 = 536870912;
643pub const AV_CPU_FLAG_SSSE3: u32 = 128;
644pub const AV_CPU_FLAG_SSSE3SLOW: u32 = 67108864;
645pub const AV_CPU_FLAG_ATOM: u32 = 268435456;
646pub const AV_CPU_FLAG_SSE4: u32 = 256;
647pub const AV_CPU_FLAG_SSE42: u32 = 512;
648pub const AV_CPU_FLAG_AESNI: u32 = 524288;
649pub const AV_CPU_FLAG_AVX: u32 = 16384;
650pub const AV_CPU_FLAG_AVXSLOW: u32 = 134217728;
651pub const AV_CPU_FLAG_XOP: u32 = 1024;
652pub const AV_CPU_FLAG_FMA4: u32 = 2048;
653pub const AV_CPU_FLAG_CMOV: u32 = 4096;
654pub const AV_CPU_FLAG_AVX2: u32 = 32768;
655pub const AV_CPU_FLAG_FMA3: u32 = 65536;
656pub const AV_CPU_FLAG_BMI1: u32 = 131072;
657pub const AV_CPU_FLAG_BMI2: u32 = 262144;
658pub const AV_CPU_FLAG_AVX512: u32 = 1048576;
659pub const AV_CPU_FLAG_ALTIVEC: u32 = 1;
660pub const AV_CPU_FLAG_VSX: u32 = 2;
661pub const AV_CPU_FLAG_POWER8: u32 = 4;
662pub const AV_CPU_FLAG_ARMV5TE: u32 = 1;
663pub const AV_CPU_FLAG_ARMV6: u32 = 2;
664pub const AV_CPU_FLAG_ARMV6T2: u32 = 4;
665pub const AV_CPU_FLAG_VFP: u32 = 8;
666pub const AV_CPU_FLAG_VFPV3: u32 = 16;
667pub const AV_CPU_FLAG_NEON: u32 = 32;
668pub const AV_CPU_FLAG_ARMV8: u32 = 64;
669pub const AV_CPU_FLAG_VFP_VM: u32 = 128;
670pub const AV_CPU_FLAG_SETEND: u32 = 65536;
671pub const AV_CH_FRONT_LEFT: u32 = 1;
672pub const AV_CH_FRONT_RIGHT: u32 = 2;
673pub const AV_CH_FRONT_CENTER: u32 = 4;
674pub const AV_CH_LOW_FREQUENCY: u32 = 8;
675pub const AV_CH_BACK_LEFT: u32 = 16;
676pub const AV_CH_BACK_RIGHT: u32 = 32;
677pub const AV_CH_FRONT_LEFT_OF_CENTER: u32 = 64;
678pub const AV_CH_FRONT_RIGHT_OF_CENTER: u32 = 128;
679pub const AV_CH_BACK_CENTER: u32 = 256;
680pub const AV_CH_SIDE_LEFT: u32 = 512;
681pub const AV_CH_SIDE_RIGHT: u32 = 1024;
682pub const AV_CH_TOP_CENTER: u32 = 2048;
683pub const AV_CH_TOP_FRONT_LEFT: u32 = 4096;
684pub const AV_CH_TOP_FRONT_CENTER: u32 = 8192;
685pub const AV_CH_TOP_FRONT_RIGHT: u32 = 16384;
686pub const AV_CH_TOP_BACK_LEFT: u32 = 32768;
687pub const AV_CH_TOP_BACK_CENTER: u32 = 65536;
688pub const AV_CH_TOP_BACK_RIGHT: u32 = 131072;
689pub const AV_CH_STEREO_LEFT: u32 = 536870912;
690pub const AV_CH_STEREO_RIGHT: u32 = 1073741824;
691pub const AV_CH_WIDE_LEFT: u32 = 2147483648;
692pub const AV_CH_WIDE_RIGHT: u64 = 4294967296;
693pub const AV_CH_SURROUND_DIRECT_LEFT: u64 = 8589934592;
694pub const AV_CH_SURROUND_DIRECT_RIGHT: u64 = 17179869184;
695pub const AV_CH_LOW_FREQUENCY_2: u64 = 34359738368;
696pub const AV_CH_LAYOUT_NATIVE: i64 = -9223372036854775808;
697pub const AV_CH_LAYOUT_MONO: u32 = 4;
698pub const AV_CH_LAYOUT_STEREO: u32 = 3;
699pub const AV_CH_LAYOUT_2POINT1: u32 = 11;
700pub const AV_CH_LAYOUT_2_1: u32 = 259;
701pub const AV_CH_LAYOUT_SURROUND: u32 = 7;
702pub const AV_CH_LAYOUT_3POINT1: u32 = 15;
703pub const AV_CH_LAYOUT_4POINT0: u32 = 263;
704pub const AV_CH_LAYOUT_4POINT1: u32 = 271;
705pub const AV_CH_LAYOUT_2_2: u32 = 1539;
706pub const AV_CH_LAYOUT_QUAD: u32 = 51;
707pub const AV_CH_LAYOUT_5POINT0: u32 = 1543;
708pub const AV_CH_LAYOUT_5POINT1: u32 = 1551;
709pub const AV_CH_LAYOUT_5POINT0_BACK: u32 = 55;
710pub const AV_CH_LAYOUT_5POINT1_BACK: u32 = 63;
711pub const AV_CH_LAYOUT_6POINT0: u32 = 1799;
712pub const AV_CH_LAYOUT_6POINT0_FRONT: u32 = 1731;
713pub const AV_CH_LAYOUT_HEXAGONAL: u32 = 311;
714pub const AV_CH_LAYOUT_6POINT1: u32 = 1807;
715pub const AV_CH_LAYOUT_6POINT1_BACK: u32 = 319;
716pub const AV_CH_LAYOUT_6POINT1_FRONT: u32 = 1739;
717pub const AV_CH_LAYOUT_7POINT0: u32 = 1591;
718pub const AV_CH_LAYOUT_7POINT0_FRONT: u32 = 1735;
719pub const AV_CH_LAYOUT_7POINT1: u32 = 1599;
720pub const AV_CH_LAYOUT_7POINT1_WIDE: u32 = 1743;
721pub const AV_CH_LAYOUT_7POINT1_WIDE_BACK: u32 = 255;
722pub const AV_CH_LAYOUT_OCTAGONAL: u32 = 1847;
723pub const AV_CH_LAYOUT_HEXADECAGONAL: u64 = 6442710839;
724pub const AV_CH_LAYOUT_STEREO_DOWNMIX: u32 = 1610612736;
725pub const AV_DICT_MATCH_CASE: u32 = 1;
726pub const AV_DICT_IGNORE_SUFFIX: u32 = 2;
727pub const AV_DICT_DONT_STRDUP_KEY: u32 = 4;
728pub const AV_DICT_DONT_STRDUP_VAL: u32 = 8;
729pub const AV_DICT_DONT_OVERWRITE: u32 = 16;
730pub const AV_DICT_APPEND: u32 = 32;
731pub const AV_DICT_MULTIKEY: u32 = 64;
732pub const AV_NUM_DATA_POINTERS: u32 = 8;
733pub const AV_FRAME_FLAG_CORRUPT: u32 = 1;
734pub const AV_FRAME_FLAG_DISCARD: u32 = 4;
735pub const FF_DECODE_ERROR_INVALID_BITSTREAM: u32 = 1;
736pub const FF_DECODE_ERROR_MISSING_REFERENCE: u32 = 2;
737pub const LIBAVCODEC_VERSION_MAJOR: u32 = 58;
738pub const LIBAVCODEC_VERSION_MINOR: u32 = 35;
739pub const LIBAVCODEC_VERSION_MICRO: u32 = 100;
740pub const AV_CODEC_PROP_INTRA_ONLY: u32 = 1;
741pub const AV_CODEC_PROP_LOSSY: u32 = 2;
742pub const AV_CODEC_PROP_LOSSLESS: u32 = 4;
743pub const AV_CODEC_PROP_REORDER: u32 = 8;
744pub const AV_CODEC_PROP_BITMAP_SUB: u32 = 65536;
745pub const AV_CODEC_PROP_TEXT_SUB: u32 = 131072;
746pub const AV_INPUT_BUFFER_PADDING_SIZE: u32 = 64;
747pub const AV_INPUT_BUFFER_MIN_SIZE: u32 = 16384;
748pub const AV_CODEC_FLAG_UNALIGNED: u32 = 1;
749pub const AV_CODEC_FLAG_QSCALE: u32 = 2;
750pub const AV_CODEC_FLAG_4MV: u32 = 4;
751pub const AV_CODEC_FLAG_OUTPUT_CORRUPT: u32 = 8;
752pub const AV_CODEC_FLAG_QPEL: u32 = 16;
753pub const AV_CODEC_FLAG_PASS1: u32 = 512;
754pub const AV_CODEC_FLAG_PASS2: u32 = 1024;
755pub const AV_CODEC_FLAG_LOOP_FILTER: u32 = 2048;
756pub const AV_CODEC_FLAG_GRAY: u32 = 8192;
757pub const AV_CODEC_FLAG_PSNR: u32 = 32768;
758pub const AV_CODEC_FLAG_TRUNCATED: u32 = 65536;
759pub const AV_CODEC_FLAG_INTERLACED_DCT: u32 = 262144;
760pub const AV_CODEC_FLAG_LOW_DELAY: u32 = 524288;
761pub const AV_CODEC_FLAG_GLOBAL_HEADER: u32 = 4194304;
762pub const AV_CODEC_FLAG_BITEXACT: u32 = 8388608;
763pub const AV_CODEC_FLAG_AC_PRED: u32 = 16777216;
764pub const AV_CODEC_FLAG_INTERLACED_ME: u32 = 536870912;
765pub const AV_CODEC_FLAG_CLOSED_GOP: u32 = 2147483648;
766pub const AV_CODEC_FLAG2_FAST: u32 = 1;
767pub const AV_CODEC_FLAG2_NO_OUTPUT: u32 = 4;
768pub const AV_CODEC_FLAG2_LOCAL_HEADER: u32 = 8;
769pub const AV_CODEC_FLAG2_DROP_FRAME_TIMECODE: u32 = 8192;
770pub const AV_CODEC_FLAG2_CHUNKS: u32 = 32768;
771pub const AV_CODEC_FLAG2_IGNORE_CROP: u32 = 65536;
772pub const AV_CODEC_FLAG2_SHOW_ALL: u32 = 4194304;
773pub const AV_CODEC_FLAG2_EXPORT_MVS: u32 = 268435456;
774pub const AV_CODEC_FLAG2_SKIP_MANUAL: u32 = 536870912;
775pub const AV_CODEC_FLAG2_RO_FLUSH_NOOP: u32 = 1073741824;
776pub const AV_CODEC_CAP_DRAW_HORIZ_BAND: u32 = 1;
777pub const AV_CODEC_CAP_DR1: u32 = 2;
778pub const AV_CODEC_CAP_TRUNCATED: u32 = 8;
779pub const AV_CODEC_CAP_DELAY: u32 = 32;
780pub const AV_CODEC_CAP_SMALL_LAST_FRAME: u32 = 64;
781pub const AV_CODEC_CAP_SUBFRAMES: u32 = 256;
782pub const AV_CODEC_CAP_EXPERIMENTAL: u32 = 512;
783pub const AV_CODEC_CAP_CHANNEL_CONF: u32 = 1024;
784pub const AV_CODEC_CAP_FRAME_THREADS: u32 = 4096;
785pub const AV_CODEC_CAP_SLICE_THREADS: u32 = 8192;
786pub const AV_CODEC_CAP_PARAM_CHANGE: u32 = 16384;
787pub const AV_CODEC_CAP_AUTO_THREADS: u32 = 32768;
788pub const AV_CODEC_CAP_VARIABLE_FRAME_SIZE: u32 = 65536;
789pub const AV_CODEC_CAP_AVOID_PROBING: u32 = 131072;
790pub const AV_CODEC_CAP_INTRA_ONLY: u32 = 1073741824;
791pub const AV_CODEC_CAP_LOSSLESS: u32 = 2147483648;
792pub const AV_CODEC_CAP_HARDWARE: u32 = 262144;
793pub const AV_CODEC_CAP_HYBRID: u32 = 524288;
794pub const AV_GET_BUFFER_FLAG_REF: u32 = 1;
795pub const AV_PKT_FLAG_KEY: u32 = 1;
796pub const AV_PKT_FLAG_CORRUPT: u32 = 2;
797pub const AV_PKT_FLAG_DISCARD: u32 = 4;
798pub const AV_PKT_FLAG_TRUSTED: u32 = 8;
799pub const AV_PKT_FLAG_DISPOSABLE: u32 = 16;
800pub const FF_COMPRESSION_DEFAULT: i32 = -1;
801pub const FF_PRED_LEFT: u32 = 0;
802pub const FF_PRED_PLANE: u32 = 1;
803pub const FF_PRED_MEDIAN: u32 = 2;
804pub const FF_CMP_SAD: u32 = 0;
805pub const FF_CMP_SSE: u32 = 1;
806pub const FF_CMP_SATD: u32 = 2;
807pub const FF_CMP_DCT: u32 = 3;
808pub const FF_CMP_PSNR: u32 = 4;
809pub const FF_CMP_BIT: u32 = 5;
810pub const FF_CMP_RD: u32 = 6;
811pub const FF_CMP_ZERO: u32 = 7;
812pub const FF_CMP_VSAD: u32 = 8;
813pub const FF_CMP_VSSE: u32 = 9;
814pub const FF_CMP_NSSE: u32 = 10;
815pub const FF_CMP_W53: u32 = 11;
816pub const FF_CMP_W97: u32 = 12;
817pub const FF_CMP_DCTMAX: u32 = 13;
818pub const FF_CMP_DCT264: u32 = 14;
819pub const FF_CMP_MEDIAN_SAD: u32 = 15;
820pub const FF_CMP_CHROMA: u32 = 256;
821pub const SLICE_FLAG_CODED_ORDER: u32 = 1;
822pub const SLICE_FLAG_ALLOW_FIELD: u32 = 2;
823pub const SLICE_FLAG_ALLOW_PLANE: u32 = 4;
824pub const FF_MB_DECISION_SIMPLE: u32 = 0;
825pub const FF_MB_DECISION_BITS: u32 = 1;
826pub const FF_MB_DECISION_RD: u32 = 2;
827pub const FF_CODER_TYPE_VLC: u32 = 0;
828pub const FF_CODER_TYPE_AC: u32 = 1;
829pub const FF_CODER_TYPE_RAW: u32 = 2;
830pub const FF_CODER_TYPE_RLE: u32 = 3;
831pub const FF_BUG_AUTODETECT: u32 = 1;
832pub const FF_BUG_XVID_ILACE: u32 = 4;
833pub const FF_BUG_UMP4: u32 = 8;
834pub const FF_BUG_NO_PADDING: u32 = 16;
835pub const FF_BUG_AMV: u32 = 32;
836pub const FF_BUG_QPEL_CHROMA: u32 = 64;
837pub const FF_BUG_STD_QPEL: u32 = 128;
838pub const FF_BUG_QPEL_CHROMA2: u32 = 256;
839pub const FF_BUG_DIRECT_BLOCKSIZE: u32 = 512;
840pub const FF_BUG_EDGE: u32 = 1024;
841pub const FF_BUG_HPEL_CHROMA: u32 = 2048;
842pub const FF_BUG_DC_CLIP: u32 = 4096;
843pub const FF_BUG_MS: u32 = 8192;
844pub const FF_BUG_TRUNCATED: u32 = 16384;
845pub const FF_BUG_IEDGE: u32 = 32768;
846pub const FF_COMPLIANCE_VERY_STRICT: u32 = 2;
847pub const FF_COMPLIANCE_STRICT: u32 = 1;
848pub const FF_COMPLIANCE_NORMAL: u32 = 0;
849pub const FF_COMPLIANCE_UNOFFICIAL: i32 = -1;
850pub const FF_COMPLIANCE_EXPERIMENTAL: i32 = -2;
851pub const FF_EC_GUESS_MVS: u32 = 1;
852pub const FF_EC_DEBLOCK: u32 = 2;
853pub const FF_EC_FAVOR_INTER: u32 = 256;
854pub const FF_DEBUG_PICT_INFO: u32 = 1;
855pub const FF_DEBUG_RC: u32 = 2;
856pub const FF_DEBUG_BITSTREAM: u32 = 4;
857pub const FF_DEBUG_MB_TYPE: u32 = 8;
858pub const FF_DEBUG_QP: u32 = 16;
859pub const FF_DEBUG_DCT_COEFF: u32 = 64;
860pub const FF_DEBUG_SKIP: u32 = 128;
861pub const FF_DEBUG_STARTCODE: u32 = 256;
862pub const FF_DEBUG_ER: u32 = 1024;
863pub const FF_DEBUG_MMCO: u32 = 2048;
864pub const FF_DEBUG_BUGS: u32 = 4096;
865pub const FF_DEBUG_BUFFERS: u32 = 32768;
866pub const FF_DEBUG_THREADS: u32 = 65536;
867pub const FF_DEBUG_GREEN_MD: u32 = 8388608;
868pub const FF_DEBUG_NOMC: u32 = 16777216;
869pub const AV_EF_CRCCHECK: u32 = 1;
870pub const AV_EF_BITSTREAM: u32 = 2;
871pub const AV_EF_BUFFER: u32 = 4;
872pub const AV_EF_EXPLODE: u32 = 8;
873pub const AV_EF_IGNORE_ERR: u32 = 32768;
874pub const AV_EF_CAREFUL: u32 = 65536;
875pub const AV_EF_COMPLIANT: u32 = 131072;
876pub const AV_EF_AGGRESSIVE: u32 = 262144;
877pub const FF_DCT_AUTO: u32 = 0;
878pub const FF_DCT_FASTINT: u32 = 1;
879pub const FF_DCT_INT: u32 = 2;
880pub const FF_DCT_MMX: u32 = 3;
881pub const FF_DCT_ALTIVEC: u32 = 5;
882pub const FF_DCT_FAAN: u32 = 6;
883pub const FF_IDCT_AUTO: u32 = 0;
884pub const FF_IDCT_INT: u32 = 1;
885pub const FF_IDCT_SIMPLE: u32 = 2;
886pub const FF_IDCT_SIMPLEMMX: u32 = 3;
887pub const FF_IDCT_ARM: u32 = 7;
888pub const FF_IDCT_ALTIVEC: u32 = 8;
889pub const FF_IDCT_SIMPLEARM: u32 = 10;
890pub const FF_IDCT_XVID: u32 = 14;
891pub const FF_IDCT_SIMPLEARMV5TE: u32 = 16;
892pub const FF_IDCT_SIMPLEARMV6: u32 = 17;
893pub const FF_IDCT_FAAN: u32 = 20;
894pub const FF_IDCT_SIMPLENEON: u32 = 22;
895pub const FF_IDCT_NONE: u32 = 24;
896pub const FF_IDCT_SIMPLEAUTO: u32 = 128;
897pub const FF_THREAD_FRAME: u32 = 1;
898pub const FF_THREAD_SLICE: u32 = 2;
899pub const FF_PROFILE_UNKNOWN: i32 = -99;
900pub const FF_PROFILE_RESERVED: i32 = -100;
901pub const FF_PROFILE_AAC_MAIN: u32 = 0;
902pub const FF_PROFILE_AAC_LOW: u32 = 1;
903pub const FF_PROFILE_AAC_SSR: u32 = 2;
904pub const FF_PROFILE_AAC_LTP: u32 = 3;
905pub const FF_PROFILE_AAC_HE: u32 = 4;
906pub const FF_PROFILE_AAC_HE_V2: u32 = 28;
907pub const FF_PROFILE_AAC_LD: u32 = 22;
908pub const FF_PROFILE_AAC_ELD: u32 = 38;
909pub const FF_PROFILE_MPEG2_AAC_LOW: u32 = 128;
910pub const FF_PROFILE_MPEG2_AAC_HE: u32 = 131;
911pub const FF_PROFILE_DNXHD: u32 = 0;
912pub const FF_PROFILE_DNXHR_LB: u32 = 1;
913pub const FF_PROFILE_DNXHR_SQ: u32 = 2;
914pub const FF_PROFILE_DNXHR_HQ: u32 = 3;
915pub const FF_PROFILE_DNXHR_HQX: u32 = 4;
916pub const FF_PROFILE_DNXHR_444: u32 = 5;
917pub const FF_PROFILE_DTS: u32 = 20;
918pub const FF_PROFILE_DTS_ES: u32 = 30;
919pub const FF_PROFILE_DTS_96_24: u32 = 40;
920pub const FF_PROFILE_DTS_HD_HRA: u32 = 50;
921pub const FF_PROFILE_DTS_HD_MA: u32 = 60;
922pub const FF_PROFILE_DTS_EXPRESS: u32 = 70;
923pub const FF_PROFILE_MPEG2_422: u32 = 0;
924pub const FF_PROFILE_MPEG2_HIGH: u32 = 1;
925pub const FF_PROFILE_MPEG2_SS: u32 = 2;
926pub const FF_PROFILE_MPEG2_SNR_SCALABLE: u32 = 3;
927pub const FF_PROFILE_MPEG2_MAIN: u32 = 4;
928pub const FF_PROFILE_MPEG2_SIMPLE: u32 = 5;
929pub const FF_PROFILE_H264_CONSTRAINED: u32 = 512;
930pub const FF_PROFILE_H264_INTRA: u32 = 2048;
931pub const FF_PROFILE_H264_BASELINE: u32 = 66;
932pub const FF_PROFILE_H264_CONSTRAINED_BASELINE: u32 = 578;
933pub const FF_PROFILE_H264_MAIN: u32 = 77;
934pub const FF_PROFILE_H264_EXTENDED: u32 = 88;
935pub const FF_PROFILE_H264_HIGH: u32 = 100;
936pub const FF_PROFILE_H264_HIGH_10: u32 = 110;
937pub const FF_PROFILE_H264_HIGH_10_INTRA: u32 = 2158;
938pub const FF_PROFILE_H264_MULTIVIEW_HIGH: u32 = 118;
939pub const FF_PROFILE_H264_HIGH_422: u32 = 122;
940pub const FF_PROFILE_H264_HIGH_422_INTRA: u32 = 2170;
941pub const FF_PROFILE_H264_STEREO_HIGH: u32 = 128;
942pub const FF_PROFILE_H264_HIGH_444: u32 = 144;
943pub const FF_PROFILE_H264_HIGH_444_PREDICTIVE: u32 = 244;
944pub const FF_PROFILE_H264_HIGH_444_INTRA: u32 = 2292;
945pub const FF_PROFILE_H264_CAVLC_444: u32 = 44;
946pub const FF_PROFILE_VC1_SIMPLE: u32 = 0;
947pub const FF_PROFILE_VC1_MAIN: u32 = 1;
948pub const FF_PROFILE_VC1_COMPLEX: u32 = 2;
949pub const FF_PROFILE_VC1_ADVANCED: u32 = 3;
950pub const FF_PROFILE_MPEG4_SIMPLE: u32 = 0;
951pub const FF_PROFILE_MPEG4_SIMPLE_SCALABLE: u32 = 1;
952pub const FF_PROFILE_MPEG4_CORE: u32 = 2;
953pub const FF_PROFILE_MPEG4_MAIN: u32 = 3;
954pub const FF_PROFILE_MPEG4_N_BIT: u32 = 4;
955pub const FF_PROFILE_MPEG4_SCALABLE_TEXTURE: u32 = 5;
956pub const FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION: u32 = 6;
957pub const FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE: u32 = 7;
958pub const FF_PROFILE_MPEG4_HYBRID: u32 = 8;
959pub const FF_PROFILE_MPEG4_ADVANCED_REAL_TIME: u32 = 9;
960pub const FF_PROFILE_MPEG4_CORE_SCALABLE: u32 = 10;
961pub const FF_PROFILE_MPEG4_ADVANCED_CODING: u32 = 11;
962pub const FF_PROFILE_MPEG4_ADVANCED_CORE: u32 = 12;
963pub const FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE: u32 = 13;
964pub const FF_PROFILE_MPEG4_SIMPLE_STUDIO: u32 = 14;
965pub const FF_PROFILE_MPEG4_ADVANCED_SIMPLE: u32 = 15;
966pub const FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0: u32 = 1;
967pub const FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1: u32 = 2;
968pub const FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION: u32 = 32768;
969pub const FF_PROFILE_JPEG2000_DCINEMA_2K: u32 = 3;
970pub const FF_PROFILE_JPEG2000_DCINEMA_4K: u32 = 4;
971pub const FF_PROFILE_VP9_0: u32 = 0;
972pub const FF_PROFILE_VP9_1: u32 = 1;
973pub const FF_PROFILE_VP9_2: u32 = 2;
974pub const FF_PROFILE_VP9_3: u32 = 3;
975pub const FF_PROFILE_HEVC_MAIN: u32 = 1;
976pub const FF_PROFILE_HEVC_MAIN_10: u32 = 2;
977pub const FF_PROFILE_HEVC_MAIN_STILL_PICTURE: u32 = 3;
978pub const FF_PROFILE_HEVC_REXT: u32 = 4;
979pub const FF_PROFILE_AV1_MAIN: u32 = 0;
980pub const FF_PROFILE_AV1_HIGH: u32 = 1;
981pub const FF_PROFILE_AV1_PROFESSIONAL: u32 = 2;
982pub const FF_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT: u32 = 192;
983pub const FF_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT: u32 = 193;
984pub const FF_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT: u32 = 194;
985pub const FF_PROFILE_MJPEG_HUFFMAN_LOSSLESS: u32 = 195;
986pub const FF_PROFILE_MJPEG_JPEG_LS: u32 = 247;
987pub const FF_PROFILE_SBC_MSBC: u32 = 1;
988pub const FF_LEVEL_UNKNOWN: i32 = -99;
989pub const FF_SUB_CHARENC_MODE_DO_NOTHING: i32 = -1;
990pub const FF_SUB_CHARENC_MODE_AUTOMATIC: u32 = 0;
991pub const FF_SUB_CHARENC_MODE_PRE_DECODER: u32 = 1;
992pub const FF_SUB_CHARENC_MODE_IGNORE: u32 = 2;
993pub const FF_DEBUG_VIS_MV_P_FOR: u32 = 1;
994pub const FF_DEBUG_VIS_MV_B_FOR: u32 = 2;
995pub const FF_DEBUG_VIS_MV_B_BACK: u32 = 4;
996pub const FF_CODEC_PROPERTY_LOSSLESS: u32 = 1;
997pub const FF_CODEC_PROPERTY_CLOSED_CAPTIONS: u32 = 2;
998pub const FF_SUB_TEXT_FMT_ASS: u32 = 0;
999pub const FF_SUB_TEXT_FMT_ASS_WITH_TIMINGS: u32 = 1;
1000pub const AV_HWACCEL_CODEC_CAP_EXPERIMENTAL: u32 = 512;
1001pub const AV_HWACCEL_FLAG_IGNORE_LEVEL: u32 = 1;
1002pub const AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH: u32 = 2;
1003pub const AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH: u32 = 4;
1004pub const AV_SUBTITLE_FLAG_FORCED: u32 = 1;
1005pub const AV_PARSER_PTS_NB: u32 = 4;
1006pub const PARSER_FLAG_COMPLETE_FRAMES: u32 = 1;
1007pub const PARSER_FLAG_ONCE: u32 = 2;
1008pub const PARSER_FLAG_FETCHED_OFFSET: u32 = 4;
1009pub const PARSER_FLAG_USE_CODEC_TS: u32 = 4096;
1010extern "C" {
1011    pub fn __errno_location() -> *mut ::std::os::raw::c_int;
1012}
1013pub type __u_char = ::std::os::raw::c_uchar;
1014pub type __u_short = ::std::os::raw::c_ushort;
1015pub type __u_int = ::std::os::raw::c_uint;
1016pub type __u_long = ::std::os::raw::c_ulong;
1017pub type __int8_t = ::std::os::raw::c_schar;
1018pub type __uint8_t = ::std::os::raw::c_uchar;
1019pub type __int16_t = ::std::os::raw::c_short;
1020pub type __uint16_t = ::std::os::raw::c_ushort;
1021pub type __int32_t = ::std::os::raw::c_int;
1022pub type __uint32_t = ::std::os::raw::c_uint;
1023pub type __int64_t = ::std::os::raw::c_long;
1024pub type __uint64_t = ::std::os::raw::c_ulong;
1025pub type __int_least8_t = __int8_t;
1026pub type __uint_least8_t = __uint8_t;
1027pub type __int_least16_t = __int16_t;
1028pub type __uint_least16_t = __uint16_t;
1029pub type __int_least32_t = __int32_t;
1030pub type __uint_least32_t = __uint32_t;
1031pub type __int_least64_t = __int64_t;
1032pub type __uint_least64_t = __uint64_t;
1033pub type __quad_t = ::std::os::raw::c_long;
1034pub type __u_quad_t = ::std::os::raw::c_ulong;
1035pub type __intmax_t = ::std::os::raw::c_long;
1036pub type __uintmax_t = ::std::os::raw::c_ulong;
1037pub type __dev_t = ::std::os::raw::c_ulong;
1038pub type __uid_t = ::std::os::raw::c_uint;
1039pub type __gid_t = ::std::os::raw::c_uint;
1040pub type __ino_t = ::std::os::raw::c_ulong;
1041pub type __ino64_t = ::std::os::raw::c_ulong;
1042pub type __mode_t = ::std::os::raw::c_uint;
1043pub type __nlink_t = ::std::os::raw::c_ulong;
1044pub type __off_t = ::std::os::raw::c_long;
1045pub type __off64_t = ::std::os::raw::c_long;
1046pub type __pid_t = ::std::os::raw::c_int;
1047#[repr(C)]
1048#[derive(Debug, Copy, Clone)]
1049pub struct __fsid_t {
1050    pub __val: [::std::os::raw::c_int; 2usize],
1051}
1052pub type __clock_t = ::std::os::raw::c_long;
1053pub type __rlim_t = ::std::os::raw::c_ulong;
1054pub type __rlim64_t = ::std::os::raw::c_ulong;
1055pub type __id_t = ::std::os::raw::c_uint;
1056pub type __time_t = ::std::os::raw::c_long;
1057pub type __useconds_t = ::std::os::raw::c_uint;
1058pub type __suseconds_t = ::std::os::raw::c_long;
1059pub type __daddr_t = ::std::os::raw::c_int;
1060pub type __key_t = ::std::os::raw::c_int;
1061pub type __clockid_t = ::std::os::raw::c_int;
1062pub type __timer_t = *mut ::std::os::raw::c_void;
1063pub type __blksize_t = ::std::os::raw::c_long;
1064pub type __blkcnt_t = ::std::os::raw::c_long;
1065pub type __blkcnt64_t = ::std::os::raw::c_long;
1066pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
1067pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
1068pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
1069pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
1070pub type __fsword_t = ::std::os::raw::c_long;
1071pub type __ssize_t = ::std::os::raw::c_long;
1072pub type __syscall_slong_t = ::std::os::raw::c_long;
1073pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
1074pub type __loff_t = __off64_t;
1075pub type __caddr_t = *mut ::std::os::raw::c_char;
1076pub type __intptr_t = ::std::os::raw::c_long;
1077pub type __socklen_t = ::std::os::raw::c_uint;
1078pub type __sig_atomic_t = ::std::os::raw::c_int;
1079pub type int_least8_t = __int_least8_t;
1080pub type int_least16_t = __int_least16_t;
1081pub type int_least32_t = __int_least32_t;
1082pub type int_least64_t = __int_least64_t;
1083pub type uint_least8_t = __uint_least8_t;
1084pub type uint_least16_t = __uint_least16_t;
1085pub type uint_least32_t = __uint_least32_t;
1086pub type uint_least64_t = __uint_least64_t;
1087pub type int_fast8_t = ::std::os::raw::c_schar;
1088pub type int_fast16_t = ::std::os::raw::c_long;
1089pub type int_fast32_t = ::std::os::raw::c_long;
1090pub type int_fast64_t = ::std::os::raw::c_long;
1091pub type uint_fast8_t = ::std::os::raw::c_uchar;
1092pub type uint_fast16_t = ::std::os::raw::c_ulong;
1093pub type uint_fast32_t = ::std::os::raw::c_ulong;
1094pub type uint_fast64_t = ::std::os::raw::c_ulong;
1095pub type intmax_t = __intmax_t;
1096pub type uintmax_t = __uintmax_t;
1097extern "C" {
1098    pub fn avutil_version() -> ::std::os::raw::c_uint;
1099}
1100extern "C" {
1101    pub fn av_version_info() -> *const ::std::os::raw::c_char;
1102}
1103extern "C" {
1104    pub fn avutil_configuration() -> *const ::std::os::raw::c_char;
1105}
1106extern "C" {
1107    pub fn avutil_license() -> *const ::std::os::raw::c_char;
1108}
1109pub const AVMediaType_AVMEDIA_TYPE_UNKNOWN: AVMediaType = -1;
1110pub const AVMediaType_AVMEDIA_TYPE_VIDEO: AVMediaType = 0;
1111pub const AVMediaType_AVMEDIA_TYPE_AUDIO: AVMediaType = 1;
1112pub const AVMediaType_AVMEDIA_TYPE_DATA: AVMediaType = 2;
1113pub const AVMediaType_AVMEDIA_TYPE_SUBTITLE: AVMediaType = 3;
1114pub const AVMediaType_AVMEDIA_TYPE_ATTACHMENT: AVMediaType = 4;
1115pub const AVMediaType_AVMEDIA_TYPE_NB: AVMediaType = 5;
1116pub type AVMediaType = i32;
1117extern "C" {
1118    pub fn av_get_media_type_string(media_type: AVMediaType) -> *const ::std::os::raw::c_char;
1119}
1120pub const AVPictureType_AV_PICTURE_TYPE_NONE: AVPictureType = 0;
1121pub const AVPictureType_AV_PICTURE_TYPE_I: AVPictureType = 1;
1122pub const AVPictureType_AV_PICTURE_TYPE_P: AVPictureType = 2;
1123pub const AVPictureType_AV_PICTURE_TYPE_B: AVPictureType = 3;
1124pub const AVPictureType_AV_PICTURE_TYPE_S: AVPictureType = 4;
1125pub const AVPictureType_AV_PICTURE_TYPE_SI: AVPictureType = 5;
1126pub const AVPictureType_AV_PICTURE_TYPE_SP: AVPictureType = 6;
1127pub const AVPictureType_AV_PICTURE_TYPE_BI: AVPictureType = 7;
1128pub type AVPictureType = u32;
1129extern "C" {
1130    pub fn av_get_picture_type_char(pict_type: AVPictureType) -> ::std::os::raw::c_char;
1131}
1132pub type __gwchar_t = ::std::os::raw::c_int;
1133#[repr(C)]
1134#[derive(Debug, Copy, Clone)]
1135pub struct imaxdiv_t {
1136    pub quot: ::std::os::raw::c_long,
1137    pub rem: ::std::os::raw::c_long,
1138}
1139extern "C" {
1140    pub fn imaxabs(__n: intmax_t) -> intmax_t;
1141}
1142extern "C" {
1143    pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t;
1144}
1145extern "C" {
1146    pub fn strtoimax(
1147        __nptr: *const ::std::os::raw::c_char,
1148        __endptr: *mut *mut ::std::os::raw::c_char,
1149        __base: ::std::os::raw::c_int,
1150    ) -> intmax_t;
1151}
1152extern "C" {
1153    pub fn strtoumax(
1154        __nptr: *const ::std::os::raw::c_char,
1155        __endptr: *mut *mut ::std::os::raw::c_char,
1156        __base: ::std::os::raw::c_int,
1157    ) -> uintmax_t;
1158}
1159extern "C" {
1160    pub fn wcstoimax(
1161        __nptr: *const __gwchar_t,
1162        __endptr: *mut *mut __gwchar_t,
1163        __base: ::std::os::raw::c_int,
1164    ) -> intmax_t;
1165}
1166extern "C" {
1167    pub fn wcstoumax(
1168        __nptr: *const __gwchar_t,
1169        __endptr: *mut *mut __gwchar_t,
1170        __base: ::std::os::raw::c_int,
1171    ) -> uintmax_t;
1172}
1173pub type _Float32 = f32;
1174pub type _Float64 = f64;
1175pub type _Float32x = f64;
1176pub type _Float64x = u128;
1177pub type float_t = f32;
1178pub type double_t = f64;
1179extern "C" {
1180    pub fn __fpclassify(__value: f64) -> ::std::os::raw::c_int;
1181}
1182extern "C" {
1183    pub fn __signbit(__value: f64) -> ::std::os::raw::c_int;
1184}
1185extern "C" {
1186    pub fn __isinf(__value: f64) -> ::std::os::raw::c_int;
1187}
1188extern "C" {
1189    pub fn __finite(__value: f64) -> ::std::os::raw::c_int;
1190}
1191extern "C" {
1192    pub fn __isnan(__value: f64) -> ::std::os::raw::c_int;
1193}
1194extern "C" {
1195    pub fn __iseqsig(__x: f64, __y: f64) -> ::std::os::raw::c_int;
1196}
1197extern "C" {
1198    pub fn __issignaling(__value: f64) -> ::std::os::raw::c_int;
1199}
1200extern "C" {
1201    pub fn acos(__x: f64) -> f64;
1202}
1203extern "C" {
1204    pub fn __acos(__x: f64) -> f64;
1205}
1206extern "C" {
1207    pub fn asin(__x: f64) -> f64;
1208}
1209extern "C" {
1210    pub fn __asin(__x: f64) -> f64;
1211}
1212extern "C" {
1213    pub fn atan(__x: f64) -> f64;
1214}
1215extern "C" {
1216    pub fn __atan(__x: f64) -> f64;
1217}
1218extern "C" {
1219    pub fn atan2(__y: f64, __x: f64) -> f64;
1220}
1221extern "C" {
1222    pub fn __atan2(__y: f64, __x: f64) -> f64;
1223}
1224extern "C" {
1225    pub fn cos(__x: f64) -> f64;
1226}
1227extern "C" {
1228    pub fn __cos(__x: f64) -> f64;
1229}
1230extern "C" {
1231    pub fn sin(__x: f64) -> f64;
1232}
1233extern "C" {
1234    pub fn __sin(__x: f64) -> f64;
1235}
1236extern "C" {
1237    pub fn tan(__x: f64) -> f64;
1238}
1239extern "C" {
1240    pub fn __tan(__x: f64) -> f64;
1241}
1242extern "C" {
1243    pub fn cosh(__x: f64) -> f64;
1244}
1245extern "C" {
1246    pub fn __cosh(__x: f64) -> f64;
1247}
1248extern "C" {
1249    pub fn sinh(__x: f64) -> f64;
1250}
1251extern "C" {
1252    pub fn __sinh(__x: f64) -> f64;
1253}
1254extern "C" {
1255    pub fn tanh(__x: f64) -> f64;
1256}
1257extern "C" {
1258    pub fn __tanh(__x: f64) -> f64;
1259}
1260extern "C" {
1261    pub fn acosh(__x: f64) -> f64;
1262}
1263extern "C" {
1264    pub fn __acosh(__x: f64) -> f64;
1265}
1266extern "C" {
1267    pub fn asinh(__x: f64) -> f64;
1268}
1269extern "C" {
1270    pub fn __asinh(__x: f64) -> f64;
1271}
1272extern "C" {
1273    pub fn atanh(__x: f64) -> f64;
1274}
1275extern "C" {
1276    pub fn __atanh(__x: f64) -> f64;
1277}
1278extern "C" {
1279    pub fn exp(__x: f64) -> f64;
1280}
1281extern "C" {
1282    pub fn __exp(__x: f64) -> f64;
1283}
1284extern "C" {
1285    pub fn frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64;
1286}
1287extern "C" {
1288    pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64;
1289}
1290extern "C" {
1291    pub fn ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64;
1292}
1293extern "C" {
1294    pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64;
1295}
1296extern "C" {
1297    pub fn log(__x: f64) -> f64;
1298}
1299extern "C" {
1300    pub fn __log(__x: f64) -> f64;
1301}
1302extern "C" {
1303    pub fn log10(__x: f64) -> f64;
1304}
1305extern "C" {
1306    pub fn __log10(__x: f64) -> f64;
1307}
1308extern "C" {
1309    pub fn modf(__x: f64, __iptr: *mut f64) -> f64;
1310}
1311extern "C" {
1312    pub fn __modf(__x: f64, __iptr: *mut f64) -> f64;
1313}
1314extern "C" {
1315    pub fn expm1(__x: f64) -> f64;
1316}
1317extern "C" {
1318    pub fn __expm1(__x: f64) -> f64;
1319}
1320extern "C" {
1321    pub fn log1p(__x: f64) -> f64;
1322}
1323extern "C" {
1324    pub fn __log1p(__x: f64) -> f64;
1325}
1326extern "C" {
1327    pub fn logb(__x: f64) -> f64;
1328}
1329extern "C" {
1330    pub fn __logb(__x: f64) -> f64;
1331}
1332extern "C" {
1333    pub fn exp2(__x: f64) -> f64;
1334}
1335extern "C" {
1336    pub fn __exp2(__x: f64) -> f64;
1337}
1338extern "C" {
1339    pub fn log2(__x: f64) -> f64;
1340}
1341extern "C" {
1342    pub fn __log2(__x: f64) -> f64;
1343}
1344extern "C" {
1345    pub fn pow(__x: f64, __y: f64) -> f64;
1346}
1347extern "C" {
1348    pub fn __pow(__x: f64, __y: f64) -> f64;
1349}
1350extern "C" {
1351    pub fn sqrt(__x: f64) -> f64;
1352}
1353extern "C" {
1354    pub fn __sqrt(__x: f64) -> f64;
1355}
1356extern "C" {
1357    pub fn hypot(__x: f64, __y: f64) -> f64;
1358}
1359extern "C" {
1360    pub fn __hypot(__x: f64, __y: f64) -> f64;
1361}
1362extern "C" {
1363    pub fn cbrt(__x: f64) -> f64;
1364}
1365extern "C" {
1366    pub fn __cbrt(__x: f64) -> f64;
1367}
1368extern "C" {
1369    pub fn ceil(__x: f64) -> f64;
1370}
1371extern "C" {
1372    pub fn __ceil(__x: f64) -> f64;
1373}
1374extern "C" {
1375    pub fn fabs(__x: f64) -> f64;
1376}
1377extern "C" {
1378    pub fn __fabs(__x: f64) -> f64;
1379}
1380extern "C" {
1381    pub fn floor(__x: f64) -> f64;
1382}
1383extern "C" {
1384    pub fn __floor(__x: f64) -> f64;
1385}
1386extern "C" {
1387    pub fn fmod(__x: f64, __y: f64) -> f64;
1388}
1389extern "C" {
1390    pub fn __fmod(__x: f64, __y: f64) -> f64;
1391}
1392extern "C" {
1393    pub fn isinf(__value: f64) -> ::std::os::raw::c_int;
1394}
1395extern "C" {
1396    pub fn finite(__value: f64) -> ::std::os::raw::c_int;
1397}
1398extern "C" {
1399    pub fn drem(__x: f64, __y: f64) -> f64;
1400}
1401extern "C" {
1402    pub fn __drem(__x: f64, __y: f64) -> f64;
1403}
1404extern "C" {
1405    pub fn significand(__x: f64) -> f64;
1406}
1407extern "C" {
1408    pub fn __significand(__x: f64) -> f64;
1409}
1410extern "C" {
1411    pub fn copysign(__x: f64, __y: f64) -> f64;
1412}
1413extern "C" {
1414    pub fn __copysign(__x: f64, __y: f64) -> f64;
1415}
1416extern "C" {
1417    pub fn nan(__tagb: *const ::std::os::raw::c_char) -> f64;
1418}
1419extern "C" {
1420    pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64;
1421}
1422extern "C" {
1423    pub fn isnan(__value: f64) -> ::std::os::raw::c_int;
1424}
1425extern "C" {
1426    pub fn j0(arg1: f64) -> f64;
1427}
1428extern "C" {
1429    pub fn __j0(arg1: f64) -> f64;
1430}
1431extern "C" {
1432    pub fn j1(arg1: f64) -> f64;
1433}
1434extern "C" {
1435    pub fn __j1(arg1: f64) -> f64;
1436}
1437extern "C" {
1438    pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
1439}
1440extern "C" {
1441    pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
1442}
1443extern "C" {
1444    pub fn y0(arg1: f64) -> f64;
1445}
1446extern "C" {
1447    pub fn __y0(arg1: f64) -> f64;
1448}
1449extern "C" {
1450    pub fn y1(arg1: f64) -> f64;
1451}
1452extern "C" {
1453    pub fn __y1(arg1: f64) -> f64;
1454}
1455extern "C" {
1456    pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
1457}
1458extern "C" {
1459    pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
1460}
1461extern "C" {
1462    pub fn erf(arg1: f64) -> f64;
1463}
1464extern "C" {
1465    pub fn __erf(arg1: f64) -> f64;
1466}
1467extern "C" {
1468    pub fn erfc(arg1: f64) -> f64;
1469}
1470extern "C" {
1471    pub fn __erfc(arg1: f64) -> f64;
1472}
1473extern "C" {
1474    pub fn lgamma(arg1: f64) -> f64;
1475}
1476extern "C" {
1477    pub fn __lgamma(arg1: f64) -> f64;
1478}
1479extern "C" {
1480    pub fn tgamma(arg1: f64) -> f64;
1481}
1482extern "C" {
1483    pub fn __tgamma(arg1: f64) -> f64;
1484}
1485extern "C" {
1486    pub fn gamma(arg1: f64) -> f64;
1487}
1488extern "C" {
1489    pub fn __gamma(arg1: f64) -> f64;
1490}
1491extern "C" {
1492    pub fn lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64;
1493}
1494extern "C" {
1495    pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64;
1496}
1497extern "C" {
1498    pub fn rint(__x: f64) -> f64;
1499}
1500extern "C" {
1501    pub fn __rint(__x: f64) -> f64;
1502}
1503extern "C" {
1504    pub fn nextafter(__x: f64, __y: f64) -> f64;
1505}
1506extern "C" {
1507    pub fn __nextafter(__x: f64, __y: f64) -> f64;
1508}
1509extern "C" {
1510    pub fn nexttoward(__x: f64, __y: u128) -> f64;
1511}
1512extern "C" {
1513    pub fn __nexttoward(__x: f64, __y: u128) -> f64;
1514}
1515extern "C" {
1516    pub fn remainder(__x: f64, __y: f64) -> f64;
1517}
1518extern "C" {
1519    pub fn __remainder(__x: f64, __y: f64) -> f64;
1520}
1521extern "C" {
1522    pub fn scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64;
1523}
1524extern "C" {
1525    pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64;
1526}
1527extern "C" {
1528    pub fn ilogb(__x: f64) -> ::std::os::raw::c_int;
1529}
1530extern "C" {
1531    pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int;
1532}
1533extern "C" {
1534    pub fn scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64;
1535}
1536extern "C" {
1537    pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64;
1538}
1539extern "C" {
1540    pub fn nearbyint(__x: f64) -> f64;
1541}
1542extern "C" {
1543    pub fn __nearbyint(__x: f64) -> f64;
1544}
1545extern "C" {
1546    pub fn round(__x: f64) -> f64;
1547}
1548extern "C" {
1549    pub fn __round(__x: f64) -> f64;
1550}
1551extern "C" {
1552    pub fn trunc(__x: f64) -> f64;
1553}
1554extern "C" {
1555    pub fn __trunc(__x: f64) -> f64;
1556}
1557extern "C" {
1558    pub fn remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64;
1559}
1560extern "C" {
1561    pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64;
1562}
1563extern "C" {
1564    pub fn lrint(__x: f64) -> ::std::os::raw::c_long;
1565}
1566extern "C" {
1567    pub fn __lrint(__x: f64) -> ::std::os::raw::c_long;
1568}
1569extern "C" {
1570    pub fn llrint(__x: f64) -> ::std::os::raw::c_longlong;
1571}
1572extern "C" {
1573    pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong;
1574}
1575extern "C" {
1576    pub fn lround(__x: f64) -> ::std::os::raw::c_long;
1577}
1578extern "C" {
1579    pub fn __lround(__x: f64) -> ::std::os::raw::c_long;
1580}
1581extern "C" {
1582    pub fn llround(__x: f64) -> ::std::os::raw::c_longlong;
1583}
1584extern "C" {
1585    pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong;
1586}
1587extern "C" {
1588    pub fn fdim(__x: f64, __y: f64) -> f64;
1589}
1590extern "C" {
1591    pub fn __fdim(__x: f64, __y: f64) -> f64;
1592}
1593extern "C" {
1594    pub fn fmax(__x: f64, __y: f64) -> f64;
1595}
1596extern "C" {
1597    pub fn __fmax(__x: f64, __y: f64) -> f64;
1598}
1599extern "C" {
1600    pub fn fmin(__x: f64, __y: f64) -> f64;
1601}
1602extern "C" {
1603    pub fn __fmin(__x: f64, __y: f64) -> f64;
1604}
1605extern "C" {
1606    pub fn fma(__x: f64, __y: f64, __z: f64) -> f64;
1607}
1608extern "C" {
1609    pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64;
1610}
1611extern "C" {
1612    pub fn scalb(__x: f64, __n: f64) -> f64;
1613}
1614extern "C" {
1615    pub fn __scalb(__x: f64, __n: f64) -> f64;
1616}
1617extern "C" {
1618    pub fn __fpclassifyf(__value: f32) -> ::std::os::raw::c_int;
1619}
1620extern "C" {
1621    pub fn __signbitf(__value: f32) -> ::std::os::raw::c_int;
1622}
1623extern "C" {
1624    pub fn __isinff(__value: f32) -> ::std::os::raw::c_int;
1625}
1626extern "C" {
1627    pub fn __finitef(__value: f32) -> ::std::os::raw::c_int;
1628}
1629extern "C" {
1630    pub fn __isnanf(__value: f32) -> ::std::os::raw::c_int;
1631}
1632extern "C" {
1633    pub fn __iseqsigf(__x: f32, __y: f32) -> ::std::os::raw::c_int;
1634}
1635extern "C" {
1636    pub fn __issignalingf(__value: f32) -> ::std::os::raw::c_int;
1637}
1638extern "C" {
1639    pub fn acosf(__x: f32) -> f32;
1640}
1641extern "C" {
1642    pub fn __acosf(__x: f32) -> f32;
1643}
1644extern "C" {
1645    pub fn asinf(__x: f32) -> f32;
1646}
1647extern "C" {
1648    pub fn __asinf(__x: f32) -> f32;
1649}
1650extern "C" {
1651    pub fn atanf(__x: f32) -> f32;
1652}
1653extern "C" {
1654    pub fn __atanf(__x: f32) -> f32;
1655}
1656extern "C" {
1657    pub fn atan2f(__y: f32, __x: f32) -> f32;
1658}
1659extern "C" {
1660    pub fn __atan2f(__y: f32, __x: f32) -> f32;
1661}
1662extern "C" {
1663    pub fn cosf(__x: f32) -> f32;
1664}
1665extern "C" {
1666    pub fn __cosf(__x: f32) -> f32;
1667}
1668extern "C" {
1669    pub fn sinf(__x: f32) -> f32;
1670}
1671extern "C" {
1672    pub fn __sinf(__x: f32) -> f32;
1673}
1674extern "C" {
1675    pub fn tanf(__x: f32) -> f32;
1676}
1677extern "C" {
1678    pub fn __tanf(__x: f32) -> f32;
1679}
1680extern "C" {
1681    pub fn coshf(__x: f32) -> f32;
1682}
1683extern "C" {
1684    pub fn __coshf(__x: f32) -> f32;
1685}
1686extern "C" {
1687    pub fn sinhf(__x: f32) -> f32;
1688}
1689extern "C" {
1690    pub fn __sinhf(__x: f32) -> f32;
1691}
1692extern "C" {
1693    pub fn tanhf(__x: f32) -> f32;
1694}
1695extern "C" {
1696    pub fn __tanhf(__x: f32) -> f32;
1697}
1698extern "C" {
1699    pub fn acoshf(__x: f32) -> f32;
1700}
1701extern "C" {
1702    pub fn __acoshf(__x: f32) -> f32;
1703}
1704extern "C" {
1705    pub fn asinhf(__x: f32) -> f32;
1706}
1707extern "C" {
1708    pub fn __asinhf(__x: f32) -> f32;
1709}
1710extern "C" {
1711    pub fn atanhf(__x: f32) -> f32;
1712}
1713extern "C" {
1714    pub fn __atanhf(__x: f32) -> f32;
1715}
1716extern "C" {
1717    pub fn expf(__x: f32) -> f32;
1718}
1719extern "C" {
1720    pub fn __expf(__x: f32) -> f32;
1721}
1722extern "C" {
1723    pub fn frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32;
1724}
1725extern "C" {
1726    pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32;
1727}
1728extern "C" {
1729    pub fn ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32;
1730}
1731extern "C" {
1732    pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32;
1733}
1734extern "C" {
1735    pub fn logf(__x: f32) -> f32;
1736}
1737extern "C" {
1738    pub fn __logf(__x: f32) -> f32;
1739}
1740extern "C" {
1741    pub fn log10f(__x: f32) -> f32;
1742}
1743extern "C" {
1744    pub fn __log10f(__x: f32) -> f32;
1745}
1746extern "C" {
1747    pub fn modff(__x: f32, __iptr: *mut f32) -> f32;
1748}
1749extern "C" {
1750    pub fn __modff(__x: f32, __iptr: *mut f32) -> f32;
1751}
1752extern "C" {
1753    pub fn expm1f(__x: f32) -> f32;
1754}
1755extern "C" {
1756    pub fn __expm1f(__x: f32) -> f32;
1757}
1758extern "C" {
1759    pub fn log1pf(__x: f32) -> f32;
1760}
1761extern "C" {
1762    pub fn __log1pf(__x: f32) -> f32;
1763}
1764extern "C" {
1765    pub fn logbf(__x: f32) -> f32;
1766}
1767extern "C" {
1768    pub fn __logbf(__x: f32) -> f32;
1769}
1770extern "C" {
1771    pub fn exp2f(__x: f32) -> f32;
1772}
1773extern "C" {
1774    pub fn __exp2f(__x: f32) -> f32;
1775}
1776extern "C" {
1777    pub fn log2f(__x: f32) -> f32;
1778}
1779extern "C" {
1780    pub fn __log2f(__x: f32) -> f32;
1781}
1782extern "C" {
1783    pub fn powf(__x: f32, __y: f32) -> f32;
1784}
1785extern "C" {
1786    pub fn __powf(__x: f32, __y: f32) -> f32;
1787}
1788extern "C" {
1789    pub fn sqrtf(__x: f32) -> f32;
1790}
1791extern "C" {
1792    pub fn __sqrtf(__x: f32) -> f32;
1793}
1794extern "C" {
1795    pub fn hypotf(__x: f32, __y: f32) -> f32;
1796}
1797extern "C" {
1798    pub fn __hypotf(__x: f32, __y: f32) -> f32;
1799}
1800extern "C" {
1801    pub fn cbrtf(__x: f32) -> f32;
1802}
1803extern "C" {
1804    pub fn __cbrtf(__x: f32) -> f32;
1805}
1806extern "C" {
1807    pub fn ceilf(__x: f32) -> f32;
1808}
1809extern "C" {
1810    pub fn __ceilf(__x: f32) -> f32;
1811}
1812extern "C" {
1813    pub fn fabsf(__x: f32) -> f32;
1814}
1815extern "C" {
1816    pub fn __fabsf(__x: f32) -> f32;
1817}
1818extern "C" {
1819    pub fn floorf(__x: f32) -> f32;
1820}
1821extern "C" {
1822    pub fn __floorf(__x: f32) -> f32;
1823}
1824extern "C" {
1825    pub fn fmodf(__x: f32, __y: f32) -> f32;
1826}
1827extern "C" {
1828    pub fn __fmodf(__x: f32, __y: f32) -> f32;
1829}
1830extern "C" {
1831    pub fn isinff(__value: f32) -> ::std::os::raw::c_int;
1832}
1833extern "C" {
1834    pub fn finitef(__value: f32) -> ::std::os::raw::c_int;
1835}
1836extern "C" {
1837    pub fn dremf(__x: f32, __y: f32) -> f32;
1838}
1839extern "C" {
1840    pub fn __dremf(__x: f32, __y: f32) -> f32;
1841}
1842extern "C" {
1843    pub fn significandf(__x: f32) -> f32;
1844}
1845extern "C" {
1846    pub fn __significandf(__x: f32) -> f32;
1847}
1848extern "C" {
1849    pub fn copysignf(__x: f32, __y: f32) -> f32;
1850}
1851extern "C" {
1852    pub fn __copysignf(__x: f32, __y: f32) -> f32;
1853}
1854extern "C" {
1855    pub fn nanf(__tagb: *const ::std::os::raw::c_char) -> f32;
1856}
1857extern "C" {
1858    pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32;
1859}
1860extern "C" {
1861    pub fn isnanf(__value: f32) -> ::std::os::raw::c_int;
1862}
1863extern "C" {
1864    pub fn j0f(arg1: f32) -> f32;
1865}
1866extern "C" {
1867    pub fn __j0f(arg1: f32) -> f32;
1868}
1869extern "C" {
1870    pub fn j1f(arg1: f32) -> f32;
1871}
1872extern "C" {
1873    pub fn __j1f(arg1: f32) -> f32;
1874}
1875extern "C" {
1876    pub fn jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
1877}
1878extern "C" {
1879    pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
1880}
1881extern "C" {
1882    pub fn y0f(arg1: f32) -> f32;
1883}
1884extern "C" {
1885    pub fn __y0f(arg1: f32) -> f32;
1886}
1887extern "C" {
1888    pub fn y1f(arg1: f32) -> f32;
1889}
1890extern "C" {
1891    pub fn __y1f(arg1: f32) -> f32;
1892}
1893extern "C" {
1894    pub fn ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
1895}
1896extern "C" {
1897    pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
1898}
1899extern "C" {
1900    pub fn erff(arg1: f32) -> f32;
1901}
1902extern "C" {
1903    pub fn __erff(arg1: f32) -> f32;
1904}
1905extern "C" {
1906    pub fn erfcf(arg1: f32) -> f32;
1907}
1908extern "C" {
1909    pub fn __erfcf(arg1: f32) -> f32;
1910}
1911extern "C" {
1912    pub fn lgammaf(arg1: f32) -> f32;
1913}
1914extern "C" {
1915    pub fn __lgammaf(arg1: f32) -> f32;
1916}
1917extern "C" {
1918    pub fn tgammaf(arg1: f32) -> f32;
1919}
1920extern "C" {
1921    pub fn __tgammaf(arg1: f32) -> f32;
1922}
1923extern "C" {
1924    pub fn gammaf(arg1: f32) -> f32;
1925}
1926extern "C" {
1927    pub fn __gammaf(arg1: f32) -> f32;
1928}
1929extern "C" {
1930    pub fn lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32;
1931}
1932extern "C" {
1933    pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32;
1934}
1935extern "C" {
1936    pub fn rintf(__x: f32) -> f32;
1937}
1938extern "C" {
1939    pub fn __rintf(__x: f32) -> f32;
1940}
1941extern "C" {
1942    pub fn nextafterf(__x: f32, __y: f32) -> f32;
1943}
1944extern "C" {
1945    pub fn __nextafterf(__x: f32, __y: f32) -> f32;
1946}
1947extern "C" {
1948    pub fn nexttowardf(__x: f32, __y: u128) -> f32;
1949}
1950extern "C" {
1951    pub fn __nexttowardf(__x: f32, __y: u128) -> f32;
1952}
1953extern "C" {
1954    pub fn remainderf(__x: f32, __y: f32) -> f32;
1955}
1956extern "C" {
1957    pub fn __remainderf(__x: f32, __y: f32) -> f32;
1958}
1959extern "C" {
1960    pub fn scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32;
1961}
1962extern "C" {
1963    pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32;
1964}
1965extern "C" {
1966    pub fn ilogbf(__x: f32) -> ::std::os::raw::c_int;
1967}
1968extern "C" {
1969    pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int;
1970}
1971extern "C" {
1972    pub fn scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32;
1973}
1974extern "C" {
1975    pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32;
1976}
1977extern "C" {
1978    pub fn nearbyintf(__x: f32) -> f32;
1979}
1980extern "C" {
1981    pub fn __nearbyintf(__x: f32) -> f32;
1982}
1983extern "C" {
1984    pub fn roundf(__x: f32) -> f32;
1985}
1986extern "C" {
1987    pub fn __roundf(__x: f32) -> f32;
1988}
1989extern "C" {
1990    pub fn truncf(__x: f32) -> f32;
1991}
1992extern "C" {
1993    pub fn __truncf(__x: f32) -> f32;
1994}
1995extern "C" {
1996    pub fn remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32;
1997}
1998extern "C" {
1999    pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32;
2000}
2001extern "C" {
2002    pub fn lrintf(__x: f32) -> ::std::os::raw::c_long;
2003}
2004extern "C" {
2005    pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long;
2006}
2007extern "C" {
2008    pub fn llrintf(__x: f32) -> ::std::os::raw::c_longlong;
2009}
2010extern "C" {
2011    pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong;
2012}
2013extern "C" {
2014    pub fn lroundf(__x: f32) -> ::std::os::raw::c_long;
2015}
2016extern "C" {
2017    pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long;
2018}
2019extern "C" {
2020    pub fn llroundf(__x: f32) -> ::std::os::raw::c_longlong;
2021}
2022extern "C" {
2023    pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong;
2024}
2025extern "C" {
2026    pub fn fdimf(__x: f32, __y: f32) -> f32;
2027}
2028extern "C" {
2029    pub fn __fdimf(__x: f32, __y: f32) -> f32;
2030}
2031extern "C" {
2032    pub fn fmaxf(__x: f32, __y: f32) -> f32;
2033}
2034extern "C" {
2035    pub fn __fmaxf(__x: f32, __y: f32) -> f32;
2036}
2037extern "C" {
2038    pub fn fminf(__x: f32, __y: f32) -> f32;
2039}
2040extern "C" {
2041    pub fn __fminf(__x: f32, __y: f32) -> f32;
2042}
2043extern "C" {
2044    pub fn fmaf(__x: f32, __y: f32, __z: f32) -> f32;
2045}
2046extern "C" {
2047    pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32;
2048}
2049extern "C" {
2050    pub fn scalbf(__x: f32, __n: f32) -> f32;
2051}
2052extern "C" {
2053    pub fn __scalbf(__x: f32, __n: f32) -> f32;
2054}
2055extern "C" {
2056    pub fn __fpclassifyl(__value: u128) -> ::std::os::raw::c_int;
2057}
2058extern "C" {
2059    pub fn __signbitl(__value: u128) -> ::std::os::raw::c_int;
2060}
2061extern "C" {
2062    pub fn __isinfl(__value: u128) -> ::std::os::raw::c_int;
2063}
2064extern "C" {
2065    pub fn __finitel(__value: u128) -> ::std::os::raw::c_int;
2066}
2067extern "C" {
2068    pub fn __isnanl(__value: u128) -> ::std::os::raw::c_int;
2069}
2070extern "C" {
2071    pub fn __iseqsigl(__x: u128, __y: u128) -> ::std::os::raw::c_int;
2072}
2073extern "C" {
2074    pub fn __issignalingl(__value: u128) -> ::std::os::raw::c_int;
2075}
2076extern "C" {
2077    pub fn acosl(__x: u128) -> u128;
2078}
2079extern "C" {
2080    pub fn __acosl(__x: u128) -> u128;
2081}
2082extern "C" {
2083    pub fn asinl(__x: u128) -> u128;
2084}
2085extern "C" {
2086    pub fn __asinl(__x: u128) -> u128;
2087}
2088extern "C" {
2089    pub fn atanl(__x: u128) -> u128;
2090}
2091extern "C" {
2092    pub fn __atanl(__x: u128) -> u128;
2093}
2094extern "C" {
2095    pub fn atan2l(__y: u128, __x: u128) -> u128;
2096}
2097extern "C" {
2098    pub fn __atan2l(__y: u128, __x: u128) -> u128;
2099}
2100extern "C" {
2101    pub fn cosl(__x: u128) -> u128;
2102}
2103extern "C" {
2104    pub fn __cosl(__x: u128) -> u128;
2105}
2106extern "C" {
2107    pub fn sinl(__x: u128) -> u128;
2108}
2109extern "C" {
2110    pub fn __sinl(__x: u128) -> u128;
2111}
2112extern "C" {
2113    pub fn tanl(__x: u128) -> u128;
2114}
2115extern "C" {
2116    pub fn __tanl(__x: u128) -> u128;
2117}
2118extern "C" {
2119    pub fn coshl(__x: u128) -> u128;
2120}
2121extern "C" {
2122    pub fn __coshl(__x: u128) -> u128;
2123}
2124extern "C" {
2125    pub fn sinhl(__x: u128) -> u128;
2126}
2127extern "C" {
2128    pub fn __sinhl(__x: u128) -> u128;
2129}
2130extern "C" {
2131    pub fn tanhl(__x: u128) -> u128;
2132}
2133extern "C" {
2134    pub fn __tanhl(__x: u128) -> u128;
2135}
2136extern "C" {
2137    pub fn acoshl(__x: u128) -> u128;
2138}
2139extern "C" {
2140    pub fn __acoshl(__x: u128) -> u128;
2141}
2142extern "C" {
2143    pub fn asinhl(__x: u128) -> u128;
2144}
2145extern "C" {
2146    pub fn __asinhl(__x: u128) -> u128;
2147}
2148extern "C" {
2149    pub fn atanhl(__x: u128) -> u128;
2150}
2151extern "C" {
2152    pub fn __atanhl(__x: u128) -> u128;
2153}
2154extern "C" {
2155    pub fn expl(__x: u128) -> u128;
2156}
2157extern "C" {
2158    pub fn __expl(__x: u128) -> u128;
2159}
2160extern "C" {
2161    pub fn frexpl(__x: u128, __exponent: *mut ::std::os::raw::c_int) -> u128;
2162}
2163extern "C" {
2164    pub fn __frexpl(__x: u128, __exponent: *mut ::std::os::raw::c_int) -> u128;
2165}
2166extern "C" {
2167    pub fn ldexpl(__x: u128, __exponent: ::std::os::raw::c_int) -> u128;
2168}
2169extern "C" {
2170    pub fn __ldexpl(__x: u128, __exponent: ::std::os::raw::c_int) -> u128;
2171}
2172extern "C" {
2173    pub fn logl(__x: u128) -> u128;
2174}
2175extern "C" {
2176    pub fn __logl(__x: u128) -> u128;
2177}
2178extern "C" {
2179    pub fn log10l(__x: u128) -> u128;
2180}
2181extern "C" {
2182    pub fn __log10l(__x: u128) -> u128;
2183}
2184extern "C" {
2185    pub fn modfl(__x: u128, __iptr: *mut u128) -> u128;
2186}
2187extern "C" {
2188    pub fn __modfl(__x: u128, __iptr: *mut u128) -> u128;
2189}
2190extern "C" {
2191    pub fn expm1l(__x: u128) -> u128;
2192}
2193extern "C" {
2194    pub fn __expm1l(__x: u128) -> u128;
2195}
2196extern "C" {
2197    pub fn log1pl(__x: u128) -> u128;
2198}
2199extern "C" {
2200    pub fn __log1pl(__x: u128) -> u128;
2201}
2202extern "C" {
2203    pub fn logbl(__x: u128) -> u128;
2204}
2205extern "C" {
2206    pub fn __logbl(__x: u128) -> u128;
2207}
2208extern "C" {
2209    pub fn exp2l(__x: u128) -> u128;
2210}
2211extern "C" {
2212    pub fn __exp2l(__x: u128) -> u128;
2213}
2214extern "C" {
2215    pub fn log2l(__x: u128) -> u128;
2216}
2217extern "C" {
2218    pub fn __log2l(__x: u128) -> u128;
2219}
2220extern "C" {
2221    pub fn powl(__x: u128, __y: u128) -> u128;
2222}
2223extern "C" {
2224    pub fn __powl(__x: u128, __y: u128) -> u128;
2225}
2226extern "C" {
2227    pub fn sqrtl(__x: u128) -> u128;
2228}
2229extern "C" {
2230    pub fn __sqrtl(__x: u128) -> u128;
2231}
2232extern "C" {
2233    pub fn hypotl(__x: u128, __y: u128) -> u128;
2234}
2235extern "C" {
2236    pub fn __hypotl(__x: u128, __y: u128) -> u128;
2237}
2238extern "C" {
2239    pub fn cbrtl(__x: u128) -> u128;
2240}
2241extern "C" {
2242    pub fn __cbrtl(__x: u128) -> u128;
2243}
2244extern "C" {
2245    pub fn ceill(__x: u128) -> u128;
2246}
2247extern "C" {
2248    pub fn __ceill(__x: u128) -> u128;
2249}
2250extern "C" {
2251    pub fn fabsl(__x: u128) -> u128;
2252}
2253extern "C" {
2254    pub fn __fabsl(__x: u128) -> u128;
2255}
2256extern "C" {
2257    pub fn floorl(__x: u128) -> u128;
2258}
2259extern "C" {
2260    pub fn __floorl(__x: u128) -> u128;
2261}
2262extern "C" {
2263    pub fn fmodl(__x: u128, __y: u128) -> u128;
2264}
2265extern "C" {
2266    pub fn __fmodl(__x: u128, __y: u128) -> u128;
2267}
2268extern "C" {
2269    pub fn isinfl(__value: u128) -> ::std::os::raw::c_int;
2270}
2271extern "C" {
2272    pub fn finitel(__value: u128) -> ::std::os::raw::c_int;
2273}
2274extern "C" {
2275    pub fn dreml(__x: u128, __y: u128) -> u128;
2276}
2277extern "C" {
2278    pub fn __dreml(__x: u128, __y: u128) -> u128;
2279}
2280extern "C" {
2281    pub fn significandl(__x: u128) -> u128;
2282}
2283extern "C" {
2284    pub fn __significandl(__x: u128) -> u128;
2285}
2286extern "C" {
2287    pub fn copysignl(__x: u128, __y: u128) -> u128;
2288}
2289extern "C" {
2290    pub fn __copysignl(__x: u128, __y: u128) -> u128;
2291}
2292extern "C" {
2293    pub fn nanl(__tagb: *const ::std::os::raw::c_char) -> u128;
2294}
2295extern "C" {
2296    pub fn __nanl(__tagb: *const ::std::os::raw::c_char) -> u128;
2297}
2298extern "C" {
2299    pub fn isnanl(__value: u128) -> ::std::os::raw::c_int;
2300}
2301extern "C" {
2302    pub fn j0l(arg1: u128) -> u128;
2303}
2304extern "C" {
2305    pub fn __j0l(arg1: u128) -> u128;
2306}
2307extern "C" {
2308    pub fn j1l(arg1: u128) -> u128;
2309}
2310extern "C" {
2311    pub fn __j1l(arg1: u128) -> u128;
2312}
2313extern "C" {
2314    pub fn jnl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128;
2315}
2316extern "C" {
2317    pub fn __jnl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128;
2318}
2319extern "C" {
2320    pub fn y0l(arg1: u128) -> u128;
2321}
2322extern "C" {
2323    pub fn __y0l(arg1: u128) -> u128;
2324}
2325extern "C" {
2326    pub fn y1l(arg1: u128) -> u128;
2327}
2328extern "C" {
2329    pub fn __y1l(arg1: u128) -> u128;
2330}
2331extern "C" {
2332    pub fn ynl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128;
2333}
2334extern "C" {
2335    pub fn __ynl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128;
2336}
2337extern "C" {
2338    pub fn erfl(arg1: u128) -> u128;
2339}
2340extern "C" {
2341    pub fn __erfl(arg1: u128) -> u128;
2342}
2343extern "C" {
2344    pub fn erfcl(arg1: u128) -> u128;
2345}
2346extern "C" {
2347    pub fn __erfcl(arg1: u128) -> u128;
2348}
2349extern "C" {
2350    pub fn lgammal(arg1: u128) -> u128;
2351}
2352extern "C" {
2353    pub fn __lgammal(arg1: u128) -> u128;
2354}
2355extern "C" {
2356    pub fn tgammal(arg1: u128) -> u128;
2357}
2358extern "C" {
2359    pub fn __tgammal(arg1: u128) -> u128;
2360}
2361extern "C" {
2362    pub fn gammal(arg1: u128) -> u128;
2363}
2364extern "C" {
2365    pub fn __gammal(arg1: u128) -> u128;
2366}
2367extern "C" {
2368    pub fn lgammal_r(arg1: u128, __signgamp: *mut ::std::os::raw::c_int) -> u128;
2369}
2370extern "C" {
2371    pub fn __lgammal_r(arg1: u128, __signgamp: *mut ::std::os::raw::c_int) -> u128;
2372}
2373extern "C" {
2374    pub fn rintl(__x: u128) -> u128;
2375}
2376extern "C" {
2377    pub fn __rintl(__x: u128) -> u128;
2378}
2379extern "C" {
2380    pub fn nextafterl(__x: u128, __y: u128) -> u128;
2381}
2382extern "C" {
2383    pub fn __nextafterl(__x: u128, __y: u128) -> u128;
2384}
2385extern "C" {
2386    pub fn nexttowardl(__x: u128, __y: u128) -> u128;
2387}
2388extern "C" {
2389    pub fn __nexttowardl(__x: u128, __y: u128) -> u128;
2390}
2391extern "C" {
2392    pub fn remainderl(__x: u128, __y: u128) -> u128;
2393}
2394extern "C" {
2395    pub fn __remainderl(__x: u128, __y: u128) -> u128;
2396}
2397extern "C" {
2398    pub fn scalbnl(__x: u128, __n: ::std::os::raw::c_int) -> u128;
2399}
2400extern "C" {
2401    pub fn __scalbnl(__x: u128, __n: ::std::os::raw::c_int) -> u128;
2402}
2403extern "C" {
2404    pub fn ilogbl(__x: u128) -> ::std::os::raw::c_int;
2405}
2406extern "C" {
2407    pub fn __ilogbl(__x: u128) -> ::std::os::raw::c_int;
2408}
2409extern "C" {
2410    pub fn scalblnl(__x: u128, __n: ::std::os::raw::c_long) -> u128;
2411}
2412extern "C" {
2413    pub fn __scalblnl(__x: u128, __n: ::std::os::raw::c_long) -> u128;
2414}
2415extern "C" {
2416    pub fn nearbyintl(__x: u128) -> u128;
2417}
2418extern "C" {
2419    pub fn __nearbyintl(__x: u128) -> u128;
2420}
2421extern "C" {
2422    pub fn roundl(__x: u128) -> u128;
2423}
2424extern "C" {
2425    pub fn __roundl(__x: u128) -> u128;
2426}
2427extern "C" {
2428    pub fn truncl(__x: u128) -> u128;
2429}
2430extern "C" {
2431    pub fn __truncl(__x: u128) -> u128;
2432}
2433extern "C" {
2434    pub fn remquol(__x: u128, __y: u128, __quo: *mut ::std::os::raw::c_int) -> u128;
2435}
2436extern "C" {
2437    pub fn __remquol(__x: u128, __y: u128, __quo: *mut ::std::os::raw::c_int) -> u128;
2438}
2439extern "C" {
2440    pub fn lrintl(__x: u128) -> ::std::os::raw::c_long;
2441}
2442extern "C" {
2443    pub fn __lrintl(__x: u128) -> ::std::os::raw::c_long;
2444}
2445extern "C" {
2446    pub fn llrintl(__x: u128) -> ::std::os::raw::c_longlong;
2447}
2448extern "C" {
2449    pub fn __llrintl(__x: u128) -> ::std::os::raw::c_longlong;
2450}
2451extern "C" {
2452    pub fn lroundl(__x: u128) -> ::std::os::raw::c_long;
2453}
2454extern "C" {
2455    pub fn __lroundl(__x: u128) -> ::std::os::raw::c_long;
2456}
2457extern "C" {
2458    pub fn llroundl(__x: u128) -> ::std::os::raw::c_longlong;
2459}
2460extern "C" {
2461    pub fn __llroundl(__x: u128) -> ::std::os::raw::c_longlong;
2462}
2463extern "C" {
2464    pub fn fdiml(__x: u128, __y: u128) -> u128;
2465}
2466extern "C" {
2467    pub fn __fdiml(__x: u128, __y: u128) -> u128;
2468}
2469extern "C" {
2470    pub fn fmaxl(__x: u128, __y: u128) -> u128;
2471}
2472extern "C" {
2473    pub fn __fmaxl(__x: u128, __y: u128) -> u128;
2474}
2475extern "C" {
2476    pub fn fminl(__x: u128, __y: u128) -> u128;
2477}
2478extern "C" {
2479    pub fn __fminl(__x: u128, __y: u128) -> u128;
2480}
2481extern "C" {
2482    pub fn fmal(__x: u128, __y: u128, __z: u128) -> u128;
2483}
2484extern "C" {
2485    pub fn __fmal(__x: u128, __y: u128, __z: u128) -> u128;
2486}
2487extern "C" {
2488    pub fn scalbl(__x: u128, __n: u128) -> u128;
2489}
2490extern "C" {
2491    pub fn __scalbl(__x: u128, __n: u128) -> u128;
2492}
2493extern "C" {
2494    #[link_name = "\u{1}signgam"]
2495    pub static mut signgam: ::std::os::raw::c_int;
2496}
2497pub type va_list = __builtin_va_list;
2498pub type __gnuc_va_list = __builtin_va_list;
2499#[repr(C)]
2500#[derive(Copy, Clone)]
2501pub struct __mbstate_t {
2502    pub __count: ::std::os::raw::c_int,
2503    pub __value: __mbstate_t__bindgen_ty_1,
2504}
2505#[repr(C)]
2506#[derive(Copy, Clone)]
2507pub union __mbstate_t__bindgen_ty_1 {
2508    pub __wch: ::std::os::raw::c_uint,
2509    pub __wchb: [::std::os::raw::c_char; 4usize],
2510    _bindgen_union_align: u32,
2511}
2512#[repr(C)]
2513#[derive(Copy, Clone)]
2514pub struct _G_fpos_t {
2515    pub __pos: __off_t,
2516    pub __state: __mbstate_t,
2517}
2518pub type __fpos_t = _G_fpos_t;
2519#[repr(C)]
2520#[derive(Copy, Clone)]
2521pub struct _G_fpos64_t {
2522    pub __pos: __off64_t,
2523    pub __state: __mbstate_t,
2524}
2525pub type __fpos64_t = _G_fpos64_t;
2526pub type __FILE = _IO_FILE;
2527pub type FILE = _IO_FILE;
2528#[repr(C)]
2529#[derive(Debug, Copy, Clone)]
2530pub struct _IO_marker {
2531    _unused: [u8; 0],
2532}
2533#[repr(C)]
2534#[derive(Debug, Copy, Clone)]
2535pub struct _IO_codecvt {
2536    _unused: [u8; 0],
2537}
2538#[repr(C)]
2539#[derive(Debug, Copy, Clone)]
2540pub struct _IO_wide_data {
2541    _unused: [u8; 0],
2542}
2543pub type _IO_lock_t = ::std::os::raw::c_void;
2544#[repr(C)]
2545#[derive(Debug, Copy, Clone)]
2546pub struct _IO_FILE {
2547    pub _flags: ::std::os::raw::c_int,
2548    pub _IO_read_ptr: *mut ::std::os::raw::c_char,
2549    pub _IO_read_end: *mut ::std::os::raw::c_char,
2550    pub _IO_read_base: *mut ::std::os::raw::c_char,
2551    pub _IO_write_base: *mut ::std::os::raw::c_char,
2552    pub _IO_write_ptr: *mut ::std::os::raw::c_char,
2553    pub _IO_write_end: *mut ::std::os::raw::c_char,
2554    pub _IO_buf_base: *mut ::std::os::raw::c_char,
2555    pub _IO_buf_end: *mut ::std::os::raw::c_char,
2556    pub _IO_save_base: *mut ::std::os::raw::c_char,
2557    pub _IO_backup_base: *mut ::std::os::raw::c_char,
2558    pub _IO_save_end: *mut ::std::os::raw::c_char,
2559    pub _markers: *mut _IO_marker,
2560    pub _chain: *mut _IO_FILE,
2561    pub _fileno: ::std::os::raw::c_int,
2562    pub _flags2: ::std::os::raw::c_int,
2563    pub _old_offset: __off_t,
2564    pub _cur_column: ::std::os::raw::c_ushort,
2565    pub _vtable_offset: ::std::os::raw::c_schar,
2566    pub _shortbuf: [::std::os::raw::c_char; 1usize],
2567    pub _lock: *mut _IO_lock_t,
2568    pub _offset: __off64_t,
2569    pub _codecvt: *mut _IO_codecvt,
2570    pub _wide_data: *mut _IO_wide_data,
2571    pub _freeres_list: *mut _IO_FILE,
2572    pub _freeres_buf: *mut ::std::os::raw::c_void,
2573    pub __pad5: usize,
2574    pub _mode: ::std::os::raw::c_int,
2575    pub _unused2: [::std::os::raw::c_char; 20usize],
2576}
2577pub type off_t = __off_t;
2578pub type fpos_t = __fpos_t;
2579extern "C" {
2580    #[link_name = "\u{1}stdin"]
2581    pub static mut stdin: *mut FILE;
2582}
2583extern "C" {
2584    #[link_name = "\u{1}stdout"]
2585    pub static mut stdout: *mut FILE;
2586}
2587extern "C" {
2588    #[link_name = "\u{1}stderr"]
2589    pub static mut stderr: *mut FILE;
2590}
2591extern "C" {
2592    pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
2593}
2594extern "C" {
2595    pub fn rename(
2596        __old: *const ::std::os::raw::c_char,
2597        __new: *const ::std::os::raw::c_char,
2598    ) -> ::std::os::raw::c_int;
2599}
2600extern "C" {
2601    pub fn renameat(
2602        __oldfd: ::std::os::raw::c_int,
2603        __old: *const ::std::os::raw::c_char,
2604        __newfd: ::std::os::raw::c_int,
2605        __new: *const ::std::os::raw::c_char,
2606    ) -> ::std::os::raw::c_int;
2607}
2608extern "C" {
2609    pub fn tmpfile() -> *mut FILE;
2610}
2611extern "C" {
2612    pub fn tmpnam(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
2613}
2614extern "C" {
2615    pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
2616}
2617extern "C" {
2618    pub fn tempnam(
2619        __dir: *const ::std::os::raw::c_char,
2620        __pfx: *const ::std::os::raw::c_char,
2621    ) -> *mut ::std::os::raw::c_char;
2622}
2623extern "C" {
2624    pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
2625}
2626extern "C" {
2627    pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int;
2628}
2629extern "C" {
2630    pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2631}
2632extern "C" {
2633    pub fn fopen(
2634        __filename: *const ::std::os::raw::c_char,
2635        __modes: *const ::std::os::raw::c_char,
2636    ) -> *mut FILE;
2637}
2638extern "C" {
2639    pub fn freopen(
2640        __filename: *const ::std::os::raw::c_char,
2641        __modes: *const ::std::os::raw::c_char,
2642        __stream: *mut FILE,
2643    ) -> *mut FILE;
2644}
2645extern "C" {
2646    pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char)
2647        -> *mut FILE;
2648}
2649extern "C" {
2650    pub fn fmemopen(
2651        __s: *mut ::std::os::raw::c_void,
2652        __len: usize,
2653        __modes: *const ::std::os::raw::c_char,
2654    ) -> *mut FILE;
2655}
2656extern "C" {
2657    pub fn open_memstream(
2658        __bufloc: *mut *mut ::std::os::raw::c_char,
2659        __sizeloc: *mut usize,
2660    ) -> *mut FILE;
2661}
2662extern "C" {
2663    pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char);
2664}
2665extern "C" {
2666    pub fn setvbuf(
2667        __stream: *mut FILE,
2668        __buf: *mut ::std::os::raw::c_char,
2669        __modes: ::std::os::raw::c_int,
2670        __n: usize,
2671    ) -> ::std::os::raw::c_int;
2672}
2673extern "C" {
2674    pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize);
2675}
2676extern "C" {
2677    pub fn setlinebuf(__stream: *mut FILE);
2678}
2679extern "C" {
2680    pub fn fprintf(
2681        __stream: *mut FILE,
2682        __format: *const ::std::os::raw::c_char,
2683        ...
2684    ) -> ::std::os::raw::c_int;
2685}
2686extern "C" {
2687    pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
2688}
2689extern "C" {
2690    pub fn sprintf(
2691        __s: *mut ::std::os::raw::c_char,
2692        __format: *const ::std::os::raw::c_char,
2693        ...
2694    ) -> ::std::os::raw::c_int;
2695}
2696extern "C" {
2697    pub fn vfprintf(
2698        __s: *mut FILE,
2699        __format: *const ::std::os::raw::c_char,
2700        __arg: *mut __va_list_tag,
2701    ) -> ::std::os::raw::c_int;
2702}
2703extern "C" {
2704    pub fn vprintf(
2705        __format: *const ::std::os::raw::c_char,
2706        __arg: *mut __va_list_tag,
2707    ) -> ::std::os::raw::c_int;
2708}
2709extern "C" {
2710    pub fn vsprintf(
2711        __s: *mut ::std::os::raw::c_char,
2712        __format: *const ::std::os::raw::c_char,
2713        __arg: *mut __va_list_tag,
2714    ) -> ::std::os::raw::c_int;
2715}
2716extern "C" {
2717    pub fn snprintf(
2718        __s: *mut ::std::os::raw::c_char,
2719        __maxlen: ::std::os::raw::c_ulong,
2720        __format: *const ::std::os::raw::c_char,
2721        ...
2722    ) -> ::std::os::raw::c_int;
2723}
2724extern "C" {
2725    pub fn vsnprintf(
2726        __s: *mut ::std::os::raw::c_char,
2727        __maxlen: ::std::os::raw::c_ulong,
2728        __format: *const ::std::os::raw::c_char,
2729        __arg: *mut __va_list_tag,
2730    ) -> ::std::os::raw::c_int;
2731}
2732extern "C" {
2733    pub fn vdprintf(
2734        __fd: ::std::os::raw::c_int,
2735        __fmt: *const ::std::os::raw::c_char,
2736        __arg: *mut __va_list_tag,
2737    ) -> ::std::os::raw::c_int;
2738}
2739extern "C" {
2740    pub fn dprintf(
2741        __fd: ::std::os::raw::c_int,
2742        __fmt: *const ::std::os::raw::c_char,
2743        ...
2744    ) -> ::std::os::raw::c_int;
2745}
2746extern "C" {
2747    pub fn fscanf(
2748        __stream: *mut FILE,
2749        __format: *const ::std::os::raw::c_char,
2750        ...
2751    ) -> ::std::os::raw::c_int;
2752}
2753extern "C" {
2754    pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
2755}
2756extern "C" {
2757    pub fn sscanf(
2758        __s: *const ::std::os::raw::c_char,
2759        __format: *const ::std::os::raw::c_char,
2760        ...
2761    ) -> ::std::os::raw::c_int;
2762}
2763extern "C" {
2764    #[link_name = "\u{1}__isoc99_fscanf"]
2765    pub fn fscanf1(
2766        __stream: *mut FILE,
2767        __format: *const ::std::os::raw::c_char,
2768        ...
2769    ) -> ::std::os::raw::c_int;
2770}
2771extern "C" {
2772    #[link_name = "\u{1}__isoc99_scanf"]
2773    pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
2774}
2775extern "C" {
2776    #[link_name = "\u{1}__isoc99_sscanf"]
2777    pub fn sscanf1(
2778        __s: *const ::std::os::raw::c_char,
2779        __format: *const ::std::os::raw::c_char,
2780        ...
2781    ) -> ::std::os::raw::c_int;
2782}
2783extern "C" {
2784    pub fn vfscanf(
2785        __s: *mut FILE,
2786        __format: *const ::std::os::raw::c_char,
2787        __arg: *mut __va_list_tag,
2788    ) -> ::std::os::raw::c_int;
2789}
2790extern "C" {
2791    pub fn vscanf(
2792        __format: *const ::std::os::raw::c_char,
2793        __arg: *mut __va_list_tag,
2794    ) -> ::std::os::raw::c_int;
2795}
2796extern "C" {
2797    pub fn vsscanf(
2798        __s: *const ::std::os::raw::c_char,
2799        __format: *const ::std::os::raw::c_char,
2800        __arg: *mut __va_list_tag,
2801    ) -> ::std::os::raw::c_int;
2802}
2803extern "C" {
2804    #[link_name = "\u{1}__isoc99_vfscanf"]
2805    pub fn vfscanf1(
2806        __s: *mut FILE,
2807        __format: *const ::std::os::raw::c_char,
2808        __arg: *mut __va_list_tag,
2809    ) -> ::std::os::raw::c_int;
2810}
2811extern "C" {
2812    #[link_name = "\u{1}__isoc99_vscanf"]
2813    pub fn vscanf1(
2814        __format: *const ::std::os::raw::c_char,
2815        __arg: *mut __va_list_tag,
2816    ) -> ::std::os::raw::c_int;
2817}
2818extern "C" {
2819    #[link_name = "\u{1}__isoc99_vsscanf"]
2820    pub fn vsscanf1(
2821        __s: *const ::std::os::raw::c_char,
2822        __format: *const ::std::os::raw::c_char,
2823        __arg: *mut __va_list_tag,
2824    ) -> ::std::os::raw::c_int;
2825}
2826extern "C" {
2827    pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int;
2828}
2829extern "C" {
2830    pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int;
2831}
2832extern "C" {
2833    pub fn getchar() -> ::std::os::raw::c_int;
2834}
2835extern "C" {
2836    pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2837}
2838extern "C" {
2839    pub fn getchar_unlocked() -> ::std::os::raw::c_int;
2840}
2841extern "C" {
2842    pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2843}
2844extern "C" {
2845    pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
2846}
2847extern "C" {
2848    pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
2849}
2850extern "C" {
2851    pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2852}
2853extern "C" {
2854    pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE)
2855        -> ::std::os::raw::c_int;
2856}
2857extern "C" {
2858    pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
2859}
2860extern "C" {
2861    pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2862}
2863extern "C" {
2864    pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int;
2865}
2866extern "C" {
2867    pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
2868}
2869extern "C" {
2870    pub fn fgets(
2871        __s: *mut ::std::os::raw::c_char,
2872        __n: ::std::os::raw::c_int,
2873        __stream: *mut FILE,
2874    ) -> *mut ::std::os::raw::c_char;
2875}
2876extern "C" {
2877    pub fn __getdelim(
2878        __lineptr: *mut *mut ::std::os::raw::c_char,
2879        __n: *mut usize,
2880        __delimiter: ::std::os::raw::c_int,
2881        __stream: *mut FILE,
2882    ) -> __ssize_t;
2883}
2884extern "C" {
2885    pub fn getdelim(
2886        __lineptr: *mut *mut ::std::os::raw::c_char,
2887        __n: *mut usize,
2888        __delimiter: ::std::os::raw::c_int,
2889        __stream: *mut FILE,
2890    ) -> __ssize_t;
2891}
2892extern "C" {
2893    pub fn getline(
2894        __lineptr: *mut *mut ::std::os::raw::c_char,
2895        __n: *mut usize,
2896        __stream: *mut FILE,
2897    ) -> __ssize_t;
2898}
2899extern "C" {
2900    pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int;
2901}
2902extern "C" {
2903    pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
2904}
2905extern "C" {
2906    pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
2907}
2908extern "C" {
2909    pub fn fread(
2910        __ptr: *mut ::std::os::raw::c_void,
2911        __size: ::std::os::raw::c_ulong,
2912        __n: ::std::os::raw::c_ulong,
2913        __stream: *mut FILE,
2914    ) -> ::std::os::raw::c_ulong;
2915}
2916extern "C" {
2917    pub fn fwrite(
2918        __ptr: *const ::std::os::raw::c_void,
2919        __size: ::std::os::raw::c_ulong,
2920        __n: ::std::os::raw::c_ulong,
2921        __s: *mut FILE,
2922    ) -> ::std::os::raw::c_ulong;
2923}
2924extern "C" {
2925    pub fn fread_unlocked(
2926        __ptr: *mut ::std::os::raw::c_void,
2927        __size: usize,
2928        __n: usize,
2929        __stream: *mut FILE,
2930    ) -> usize;
2931}
2932extern "C" {
2933    pub fn fwrite_unlocked(
2934        __ptr: *const ::std::os::raw::c_void,
2935        __size: usize,
2936        __n: usize,
2937        __stream: *mut FILE,
2938    ) -> usize;
2939}
2940extern "C" {
2941    pub fn fseek(
2942        __stream: *mut FILE,
2943        __off: ::std::os::raw::c_long,
2944        __whence: ::std::os::raw::c_int,
2945    ) -> ::std::os::raw::c_int;
2946}
2947extern "C" {
2948    pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long;
2949}
2950extern "C" {
2951    pub fn rewind(__stream: *mut FILE);
2952}
2953extern "C" {
2954    pub fn fseeko(
2955        __stream: *mut FILE,
2956        __off: __off_t,
2957        __whence: ::std::os::raw::c_int,
2958    ) -> ::std::os::raw::c_int;
2959}
2960extern "C" {
2961    pub fn ftello(__stream: *mut FILE) -> __off_t;
2962}
2963extern "C" {
2964    pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int;
2965}
2966extern "C" {
2967    pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int;
2968}
2969extern "C" {
2970    pub fn clearerr(__stream: *mut FILE);
2971}
2972extern "C" {
2973    pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int;
2974}
2975extern "C" {
2976    pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int;
2977}
2978extern "C" {
2979    pub fn clearerr_unlocked(__stream: *mut FILE);
2980}
2981extern "C" {
2982    pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2983}
2984extern "C" {
2985    pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2986}
2987extern "C" {
2988    pub fn perror(__s: *const ::std::os::raw::c_char);
2989}
2990extern "C" {
2991    #[link_name = "\u{1}sys_nerr"]
2992    pub static mut sys_nerr: ::std::os::raw::c_int;
2993}
2994extern "C" {
2995    #[link_name = "\u{1}sys_errlist"]
2996    pub static mut sys_errlist: [*const ::std::os::raw::c_char; 0usize];
2997}
2998extern "C" {
2999    pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int;
3000}
3001extern "C" {
3002    pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
3003}
3004extern "C" {
3005    pub fn popen(
3006        __command: *const ::std::os::raw::c_char,
3007        __modes: *const ::std::os::raw::c_char,
3008    ) -> *mut FILE;
3009}
3010extern "C" {
3011    pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
3012}
3013extern "C" {
3014    pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3015}
3016extern "C" {
3017    pub fn flockfile(__stream: *mut FILE);
3018}
3019extern "C" {
3020    pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int;
3021}
3022extern "C" {
3023    pub fn funlockfile(__stream: *mut FILE);
3024}
3025extern "C" {
3026    pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int;
3027}
3028extern "C" {
3029    pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3030}
3031pub type wchar_t = ::std::os::raw::c_int;
3032#[repr(C)]
3033#[derive(Debug, Copy, Clone)]
3034pub struct div_t {
3035    pub quot: ::std::os::raw::c_int,
3036    pub rem: ::std::os::raw::c_int,
3037}
3038#[repr(C)]
3039#[derive(Debug, Copy, Clone)]
3040pub struct ldiv_t {
3041    pub quot: ::std::os::raw::c_long,
3042    pub rem: ::std::os::raw::c_long,
3043}
3044#[repr(C)]
3045#[derive(Debug, Copy, Clone)]
3046pub struct lldiv_t {
3047    pub quot: ::std::os::raw::c_longlong,
3048    pub rem: ::std::os::raw::c_longlong,
3049}
3050extern "C" {
3051    pub fn __ctype_get_mb_cur_max() -> usize;
3052}
3053extern "C" {
3054    pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64;
3055}
3056extern "C" {
3057    pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3058}
3059extern "C" {
3060    pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
3061}
3062extern "C" {
3063    pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
3064}
3065extern "C" {
3066    pub fn strtod(
3067        __nptr: *const ::std::os::raw::c_char,
3068        __endptr: *mut *mut ::std::os::raw::c_char,
3069    ) -> f64;
3070}
3071extern "C" {
3072    pub fn strtof(
3073        __nptr: *const ::std::os::raw::c_char,
3074        __endptr: *mut *mut ::std::os::raw::c_char,
3075    ) -> f32;
3076}
3077extern "C" {
3078    pub fn strtold(
3079        __nptr: *const ::std::os::raw::c_char,
3080        __endptr: *mut *mut ::std::os::raw::c_char,
3081    ) -> u128;
3082}
3083extern "C" {
3084    pub fn strtol(
3085        __nptr: *const ::std::os::raw::c_char,
3086        __endptr: *mut *mut ::std::os::raw::c_char,
3087        __base: ::std::os::raw::c_int,
3088    ) -> ::std::os::raw::c_long;
3089}
3090extern "C" {
3091    pub fn strtoul(
3092        __nptr: *const ::std::os::raw::c_char,
3093        __endptr: *mut *mut ::std::os::raw::c_char,
3094        __base: ::std::os::raw::c_int,
3095    ) -> ::std::os::raw::c_ulong;
3096}
3097extern "C" {
3098    pub fn strtoq(
3099        __nptr: *const ::std::os::raw::c_char,
3100        __endptr: *mut *mut ::std::os::raw::c_char,
3101        __base: ::std::os::raw::c_int,
3102    ) -> ::std::os::raw::c_longlong;
3103}
3104extern "C" {
3105    pub fn strtouq(
3106        __nptr: *const ::std::os::raw::c_char,
3107        __endptr: *mut *mut ::std::os::raw::c_char,
3108        __base: ::std::os::raw::c_int,
3109    ) -> ::std::os::raw::c_ulonglong;
3110}
3111extern "C" {
3112    pub fn strtoll(
3113        __nptr: *const ::std::os::raw::c_char,
3114        __endptr: *mut *mut ::std::os::raw::c_char,
3115        __base: ::std::os::raw::c_int,
3116    ) -> ::std::os::raw::c_longlong;
3117}
3118extern "C" {
3119    pub fn strtoull(
3120        __nptr: *const ::std::os::raw::c_char,
3121        __endptr: *mut *mut ::std::os::raw::c_char,
3122        __base: ::std::os::raw::c_int,
3123    ) -> ::std::os::raw::c_ulonglong;
3124}
3125extern "C" {
3126    pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char;
3127}
3128extern "C" {
3129    pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
3130}
3131pub type u_char = __u_char;
3132pub type u_short = __u_short;
3133pub type u_int = __u_int;
3134pub type u_long = __u_long;
3135pub type quad_t = __quad_t;
3136pub type u_quad_t = __u_quad_t;
3137pub type fsid_t = __fsid_t;
3138pub type loff_t = __loff_t;
3139pub type ino_t = __ino_t;
3140pub type dev_t = __dev_t;
3141pub type gid_t = __gid_t;
3142pub type mode_t = __mode_t;
3143pub type nlink_t = __nlink_t;
3144pub type uid_t = __uid_t;
3145pub type pid_t = __pid_t;
3146pub type id_t = __id_t;
3147pub type daddr_t = __daddr_t;
3148pub type caddr_t = __caddr_t;
3149pub type key_t = __key_t;
3150pub type clock_t = __clock_t;
3151pub type clockid_t = __clockid_t;
3152pub type time_t = __time_t;
3153pub type timer_t = __timer_t;
3154pub type ulong = ::std::os::raw::c_ulong;
3155pub type ushort = ::std::os::raw::c_ushort;
3156pub type uint = ::std::os::raw::c_uint;
3157pub type u_int8_t = ::std::os::raw::c_uchar;
3158pub type u_int16_t = ::std::os::raw::c_ushort;
3159pub type u_int32_t = ::std::os::raw::c_uint;
3160pub type u_int64_t = ::std::os::raw::c_ulong;
3161pub type register_t = ::std::os::raw::c_long;
3162#[repr(C)]
3163#[derive(Debug, Copy, Clone)]
3164pub struct __sigset_t {
3165    pub __val: [::std::os::raw::c_ulong; 16usize],
3166}
3167pub type sigset_t = __sigset_t;
3168#[repr(C)]
3169#[derive(Debug, Copy, Clone)]
3170pub struct timeval {
3171    pub tv_sec: __time_t,
3172    pub tv_usec: __suseconds_t,
3173}
3174#[repr(C)]
3175#[derive(Debug, Copy, Clone)]
3176pub struct timespec {
3177    pub tv_sec: __time_t,
3178    pub tv_nsec: __syscall_slong_t,
3179}
3180pub type suseconds_t = __suseconds_t;
3181pub type __fd_mask = ::std::os::raw::c_long;
3182#[repr(C)]
3183#[derive(Debug, Copy, Clone)]
3184pub struct fd_set {
3185    pub __fds_bits: [__fd_mask; 16usize],
3186}
3187pub type fd_mask = __fd_mask;
3188extern "C" {
3189    pub fn select(
3190        __nfds: ::std::os::raw::c_int,
3191        __readfds: *mut fd_set,
3192        __writefds: *mut fd_set,
3193        __exceptfds: *mut fd_set,
3194        __timeout: *mut timeval,
3195    ) -> ::std::os::raw::c_int;
3196}
3197extern "C" {
3198    pub fn pselect(
3199        __nfds: ::std::os::raw::c_int,
3200        __readfds: *mut fd_set,
3201        __writefds: *mut fd_set,
3202        __exceptfds: *mut fd_set,
3203        __timeout: *const timespec,
3204        __sigmask: *const __sigset_t,
3205    ) -> ::std::os::raw::c_int;
3206}
3207pub type blksize_t = __blksize_t;
3208pub type blkcnt_t = __blkcnt_t;
3209pub type fsblkcnt_t = __fsblkcnt_t;
3210pub type fsfilcnt_t = __fsfilcnt_t;
3211#[repr(C)]
3212#[derive(Debug, Copy, Clone)]
3213pub struct __pthread_rwlock_arch_t {
3214    pub __readers: ::std::os::raw::c_uint,
3215    pub __writers: ::std::os::raw::c_uint,
3216    pub __wrphase_futex: ::std::os::raw::c_uint,
3217    pub __writers_futex: ::std::os::raw::c_uint,
3218    pub __pad3: ::std::os::raw::c_uint,
3219    pub __pad4: ::std::os::raw::c_uint,
3220    pub __cur_writer: ::std::os::raw::c_int,
3221    pub __shared: ::std::os::raw::c_int,
3222    pub __rwelision: ::std::os::raw::c_schar,
3223    pub __pad1: [::std::os::raw::c_uchar; 7usize],
3224    pub __pad2: ::std::os::raw::c_ulong,
3225    pub __flags: ::std::os::raw::c_uint,
3226}
3227#[repr(C)]
3228#[derive(Debug, Copy, Clone)]
3229pub struct __pthread_internal_list {
3230    pub __prev: *mut __pthread_internal_list,
3231    pub __next: *mut __pthread_internal_list,
3232}
3233pub type __pthread_list_t = __pthread_internal_list;
3234#[repr(C)]
3235#[derive(Debug, Copy, Clone)]
3236pub struct __pthread_mutex_s {
3237    pub __lock: ::std::os::raw::c_int,
3238    pub __count: ::std::os::raw::c_uint,
3239    pub __owner: ::std::os::raw::c_int,
3240    pub __nusers: ::std::os::raw::c_uint,
3241    pub __kind: ::std::os::raw::c_int,
3242    pub __spins: ::std::os::raw::c_short,
3243    pub __elision: ::std::os::raw::c_short,
3244    pub __list: __pthread_list_t,
3245}
3246#[repr(C)]
3247#[derive(Copy, Clone)]
3248pub struct __pthread_cond_s {
3249    pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1,
3250    pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2,
3251    pub __g_refs: [::std::os::raw::c_uint; 2usize],
3252    pub __g_size: [::std::os::raw::c_uint; 2usize],
3253    pub __g1_orig_size: ::std::os::raw::c_uint,
3254    pub __wrefs: ::std::os::raw::c_uint,
3255    pub __g_signals: [::std::os::raw::c_uint; 2usize],
3256}
3257#[repr(C)]
3258#[derive(Copy, Clone)]
3259pub union __pthread_cond_s__bindgen_ty_1 {
3260    pub __wseq: ::std::os::raw::c_ulonglong,
3261    pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1,
3262    _bindgen_union_align: u64,
3263}
3264#[repr(C)]
3265#[derive(Debug, Copy, Clone)]
3266pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 {
3267    pub __low: ::std::os::raw::c_uint,
3268    pub __high: ::std::os::raw::c_uint,
3269}
3270#[repr(C)]
3271#[derive(Copy, Clone)]
3272pub union __pthread_cond_s__bindgen_ty_2 {
3273    pub __g1_start: ::std::os::raw::c_ulonglong,
3274    pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1,
3275    _bindgen_union_align: u64,
3276}
3277#[repr(C)]
3278#[derive(Debug, Copy, Clone)]
3279pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 {
3280    pub __low: ::std::os::raw::c_uint,
3281    pub __high: ::std::os::raw::c_uint,
3282}
3283pub type pthread_t = ::std::os::raw::c_ulong;
3284#[repr(C)]
3285#[derive(Copy, Clone)]
3286pub union pthread_mutexattr_t {
3287    pub __size: [::std::os::raw::c_char; 4usize],
3288    pub __align: ::std::os::raw::c_int,
3289    _bindgen_union_align: u32,
3290}
3291#[repr(C)]
3292#[derive(Copy, Clone)]
3293pub union pthread_condattr_t {
3294    pub __size: [::std::os::raw::c_char; 4usize],
3295    pub __align: ::std::os::raw::c_int,
3296    _bindgen_union_align: u32,
3297}
3298pub type pthread_key_t = ::std::os::raw::c_uint;
3299pub type pthread_once_t = ::std::os::raw::c_int;
3300#[repr(C)]
3301#[derive(Copy, Clone)]
3302pub union pthread_attr_t {
3303    pub __size: [::std::os::raw::c_char; 56usize],
3304    pub __align: ::std::os::raw::c_long,
3305    _bindgen_union_align: [u64; 7usize],
3306}
3307#[repr(C)]
3308#[derive(Copy, Clone)]
3309pub union pthread_mutex_t {
3310    pub __data: __pthread_mutex_s,
3311    pub __size: [::std::os::raw::c_char; 40usize],
3312    pub __align: ::std::os::raw::c_long,
3313    _bindgen_union_align: [u64; 5usize],
3314}
3315#[repr(C)]
3316#[derive(Copy, Clone)]
3317pub union pthread_cond_t {
3318    pub __data: __pthread_cond_s,
3319    pub __size: [::std::os::raw::c_char; 48usize],
3320    pub __align: ::std::os::raw::c_longlong,
3321    _bindgen_union_align: [u64; 6usize],
3322}
3323#[repr(C)]
3324#[derive(Copy, Clone)]
3325pub union pthread_rwlock_t {
3326    pub __data: __pthread_rwlock_arch_t,
3327    pub __size: [::std::os::raw::c_char; 56usize],
3328    pub __align: ::std::os::raw::c_long,
3329    _bindgen_union_align: [u64; 7usize],
3330}
3331#[repr(C)]
3332#[derive(Copy, Clone)]
3333pub union pthread_rwlockattr_t {
3334    pub __size: [::std::os::raw::c_char; 8usize],
3335    pub __align: ::std::os::raw::c_long,
3336    _bindgen_union_align: u64,
3337}
3338pub type pthread_spinlock_t = ::std::os::raw::c_int;
3339#[repr(C)]
3340#[derive(Copy, Clone)]
3341pub union pthread_barrier_t {
3342    pub __size: [::std::os::raw::c_char; 32usize],
3343    pub __align: ::std::os::raw::c_long,
3344    _bindgen_union_align: [u64; 4usize],
3345}
3346#[repr(C)]
3347#[derive(Copy, Clone)]
3348pub union pthread_barrierattr_t {
3349    pub __size: [::std::os::raw::c_char; 4usize],
3350    pub __align: ::std::os::raw::c_int,
3351    _bindgen_union_align: u32,
3352}
3353extern "C" {
3354    pub fn random() -> ::std::os::raw::c_long;
3355}
3356extern "C" {
3357    pub fn srandom(__seed: ::std::os::raw::c_uint);
3358}
3359extern "C" {
3360    pub fn initstate(
3361        __seed: ::std::os::raw::c_uint,
3362        __statebuf: *mut ::std::os::raw::c_char,
3363        __statelen: usize,
3364    ) -> *mut ::std::os::raw::c_char;
3365}
3366extern "C" {
3367    pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3368}
3369#[repr(C)]
3370#[derive(Debug, Copy, Clone)]
3371pub struct random_data {
3372    pub fptr: *mut i32,
3373    pub rptr: *mut i32,
3374    pub state: *mut i32,
3375    pub rand_type: ::std::os::raw::c_int,
3376    pub rand_deg: ::std::os::raw::c_int,
3377    pub rand_sep: ::std::os::raw::c_int,
3378    pub end_ptr: *mut i32,
3379}
3380extern "C" {
3381    pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int;
3382}
3383extern "C" {
3384    pub fn srandom_r(
3385        __seed: ::std::os::raw::c_uint,
3386        __buf: *mut random_data,
3387    ) -> ::std::os::raw::c_int;
3388}
3389extern "C" {
3390    pub fn initstate_r(
3391        __seed: ::std::os::raw::c_uint,
3392        __statebuf: *mut ::std::os::raw::c_char,
3393        __statelen: usize,
3394        __buf: *mut random_data,
3395    ) -> ::std::os::raw::c_int;
3396}
3397extern "C" {
3398    pub fn setstate_r(
3399        __statebuf: *mut ::std::os::raw::c_char,
3400        __buf: *mut random_data,
3401    ) -> ::std::os::raw::c_int;
3402}
3403extern "C" {
3404    pub fn rand() -> ::std::os::raw::c_int;
3405}
3406extern "C" {
3407    pub fn srand(__seed: ::std::os::raw::c_uint);
3408}
3409extern "C" {
3410    pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
3411}
3412extern "C" {
3413    pub fn drand48() -> f64;
3414}
3415extern "C" {
3416    pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64;
3417}
3418extern "C" {
3419    pub fn lrand48() -> ::std::os::raw::c_long;
3420}
3421extern "C" {
3422    pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
3423}
3424extern "C" {
3425    pub fn mrand48() -> ::std::os::raw::c_long;
3426}
3427extern "C" {
3428    pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
3429}
3430extern "C" {
3431    pub fn srand48(__seedval: ::std::os::raw::c_long);
3432}
3433extern "C" {
3434    pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort;
3435}
3436extern "C" {
3437    pub fn lcong48(__param: *mut ::std::os::raw::c_ushort);
3438}
3439#[repr(C)]
3440#[derive(Debug, Copy, Clone)]
3441pub struct drand48_data {
3442    pub __x: [::std::os::raw::c_ushort; 3usize],
3443    pub __old_x: [::std::os::raw::c_ushort; 3usize],
3444    pub __c: ::std::os::raw::c_ushort,
3445    pub __init: ::std::os::raw::c_ushort,
3446    pub __a: ::std::os::raw::c_ulonglong,
3447}
3448extern "C" {
3449    pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int;
3450}
3451extern "C" {
3452    pub fn erand48_r(
3453        __xsubi: *mut ::std::os::raw::c_ushort,
3454        __buffer: *mut drand48_data,
3455        __result: *mut f64,
3456    ) -> ::std::os::raw::c_int;
3457}
3458extern "C" {
3459    pub fn lrand48_r(
3460        __buffer: *mut drand48_data,
3461        __result: *mut ::std::os::raw::c_long,
3462    ) -> ::std::os::raw::c_int;
3463}
3464extern "C" {
3465    pub fn nrand48_r(
3466        __xsubi: *mut ::std::os::raw::c_ushort,
3467        __buffer: *mut drand48_data,
3468        __result: *mut ::std::os::raw::c_long,
3469    ) -> ::std::os::raw::c_int;
3470}
3471extern "C" {
3472    pub fn mrand48_r(
3473        __buffer: *mut drand48_data,
3474        __result: *mut ::std::os::raw::c_long,
3475    ) -> ::std::os::raw::c_int;
3476}
3477extern "C" {
3478    pub fn jrand48_r(
3479        __xsubi: *mut ::std::os::raw::c_ushort,
3480        __buffer: *mut drand48_data,
3481        __result: *mut ::std::os::raw::c_long,
3482    ) -> ::std::os::raw::c_int;
3483}
3484extern "C" {
3485    pub fn srand48_r(
3486        __seedval: ::std::os::raw::c_long,
3487        __buffer: *mut drand48_data,
3488    ) -> ::std::os::raw::c_int;
3489}
3490extern "C" {
3491    pub fn seed48_r(
3492        __seed16v: *mut ::std::os::raw::c_ushort,
3493        __buffer: *mut drand48_data,
3494    ) -> ::std::os::raw::c_int;
3495}
3496extern "C" {
3497    pub fn lcong48_r(
3498        __param: *mut ::std::os::raw::c_ushort,
3499        __buffer: *mut drand48_data,
3500    ) -> ::std::os::raw::c_int;
3501}
3502extern "C" {
3503    pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
3504}
3505extern "C" {
3506    pub fn calloc(
3507        __nmemb: ::std::os::raw::c_ulong,
3508        __size: ::std::os::raw::c_ulong,
3509    ) -> *mut ::std::os::raw::c_void;
3510}
3511extern "C" {
3512    pub fn realloc(
3513        __ptr: *mut ::std::os::raw::c_void,
3514        __size: ::std::os::raw::c_ulong,
3515    ) -> *mut ::std::os::raw::c_void;
3516}
3517extern "C" {
3518    pub fn reallocarray(
3519        __ptr: *mut ::std::os::raw::c_void,
3520        __nmemb: usize,
3521        __size: usize,
3522    ) -> *mut ::std::os::raw::c_void;
3523}
3524extern "C" {
3525    pub fn free(__ptr: *mut ::std::os::raw::c_void);
3526}
3527extern "C" {
3528    pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
3529}
3530extern "C" {
3531    pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void;
3532}
3533extern "C" {
3534    pub fn posix_memalign(
3535        __memptr: *mut *mut ::std::os::raw::c_void,
3536        __alignment: usize,
3537        __size: usize,
3538    ) -> ::std::os::raw::c_int;
3539}
3540extern "C" {
3541    pub fn aligned_alloc(__alignment: usize, __size: usize) -> *mut ::std::os::raw::c_void;
3542}
3543extern "C" {
3544    pub fn abort();
3545}
3546extern "C" {
3547    pub fn atexit(__func: ::std::option::Option<unsafe extern "C" fn()>) -> ::std::os::raw::c_int;
3548}
3549extern "C" {
3550    pub fn at_quick_exit(
3551        __func: ::std::option::Option<unsafe extern "C" fn()>,
3552    ) -> ::std::os::raw::c_int;
3553}
3554extern "C" {
3555    pub fn on_exit(
3556        __func: ::std::option::Option<
3557            unsafe extern "C" fn(__func: ::std::os::raw::c_int, __arg: *mut ::std::os::raw::c_void),
3558        >,
3559        __arg: *mut ::std::os::raw::c_void,
3560    ) -> ::std::os::raw::c_int;
3561}
3562extern "C" {
3563    pub fn exit(__status: ::std::os::raw::c_int);
3564}
3565extern "C" {
3566    pub fn quick_exit(__status: ::std::os::raw::c_int);
3567}
3568extern "C" {
3569    pub fn _Exit(__status: ::std::os::raw::c_int);
3570}
3571extern "C" {
3572    pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3573}
3574extern "C" {
3575    pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3576}
3577extern "C" {
3578    pub fn setenv(
3579        __name: *const ::std::os::raw::c_char,
3580        __value: *const ::std::os::raw::c_char,
3581        __replace: ::std::os::raw::c_int,
3582    ) -> ::std::os::raw::c_int;
3583}
3584extern "C" {
3585    pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3586}
3587extern "C" {
3588    pub fn clearenv() -> ::std::os::raw::c_int;
3589}
3590extern "C" {
3591    pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3592}
3593extern "C" {
3594    pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3595}
3596extern "C" {
3597    pub fn mkstemps(
3598        __template: *mut ::std::os::raw::c_char,
3599        __suffixlen: ::std::os::raw::c_int,
3600    ) -> ::std::os::raw::c_int;
3601}
3602extern "C" {
3603    pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3604}
3605extern "C" {
3606    pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3607}
3608extern "C" {
3609    pub fn realpath(
3610        __name: *const ::std::os::raw::c_char,
3611        __resolved: *mut ::std::os::raw::c_char,
3612    ) -> *mut ::std::os::raw::c_char;
3613}
3614pub type __compar_fn_t = ::std::option::Option<
3615    unsafe extern "C" fn(
3616        arg1: *const ::std::os::raw::c_void,
3617        arg2: *const ::std::os::raw::c_void,
3618    ) -> ::std::os::raw::c_int,
3619>;
3620extern "C" {
3621    pub fn bsearch(
3622        __key: *const ::std::os::raw::c_void,
3623        __base: *const ::std::os::raw::c_void,
3624        __nmemb: usize,
3625        __size: usize,
3626        __compar: __compar_fn_t,
3627    ) -> *mut ::std::os::raw::c_void;
3628}
3629extern "C" {
3630    pub fn qsort(
3631        __base: *mut ::std::os::raw::c_void,
3632        __nmemb: usize,
3633        __size: usize,
3634        __compar: __compar_fn_t,
3635    );
3636}
3637extern "C" {
3638    pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3639}
3640extern "C" {
3641    pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
3642}
3643extern "C" {
3644    pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
3645}
3646extern "C" {
3647    pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t;
3648}
3649extern "C" {
3650    pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t;
3651}
3652extern "C" {
3653    pub fn lldiv(
3654        __numer: ::std::os::raw::c_longlong,
3655        __denom: ::std::os::raw::c_longlong,
3656    ) -> lldiv_t;
3657}
3658extern "C" {
3659    pub fn ecvt(
3660        __value: f64,
3661        __ndigit: ::std::os::raw::c_int,
3662        __decpt: *mut ::std::os::raw::c_int,
3663        __sign: *mut ::std::os::raw::c_int,
3664    ) -> *mut ::std::os::raw::c_char;
3665}
3666extern "C" {
3667    pub fn fcvt(
3668        __value: f64,
3669        __ndigit: ::std::os::raw::c_int,
3670        __decpt: *mut ::std::os::raw::c_int,
3671        __sign: *mut ::std::os::raw::c_int,
3672    ) -> *mut ::std::os::raw::c_char;
3673}
3674extern "C" {
3675    pub fn gcvt(
3676        __value: f64,
3677        __ndigit: ::std::os::raw::c_int,
3678        __buf: *mut ::std::os::raw::c_char,
3679    ) -> *mut ::std::os::raw::c_char;
3680}
3681extern "C" {
3682    pub fn qecvt(
3683        __value: u128,
3684        __ndigit: ::std::os::raw::c_int,
3685        __decpt: *mut ::std::os::raw::c_int,
3686        __sign: *mut ::std::os::raw::c_int,
3687    ) -> *mut ::std::os::raw::c_char;
3688}
3689extern "C" {
3690    pub fn qfcvt(
3691        __value: u128,
3692        __ndigit: ::std::os::raw::c_int,
3693        __decpt: *mut ::std::os::raw::c_int,
3694        __sign: *mut ::std::os::raw::c_int,
3695    ) -> *mut ::std::os::raw::c_char;
3696}
3697extern "C" {
3698    pub fn qgcvt(
3699        __value: u128,
3700        __ndigit: ::std::os::raw::c_int,
3701        __buf: *mut ::std::os::raw::c_char,
3702    ) -> *mut ::std::os::raw::c_char;
3703}
3704extern "C" {
3705    pub fn ecvt_r(
3706        __value: f64,
3707        __ndigit: ::std::os::raw::c_int,
3708        __decpt: *mut ::std::os::raw::c_int,
3709        __sign: *mut ::std::os::raw::c_int,
3710        __buf: *mut ::std::os::raw::c_char,
3711        __len: usize,
3712    ) -> ::std::os::raw::c_int;
3713}
3714extern "C" {
3715    pub fn fcvt_r(
3716        __value: f64,
3717        __ndigit: ::std::os::raw::c_int,
3718        __decpt: *mut ::std::os::raw::c_int,
3719        __sign: *mut ::std::os::raw::c_int,
3720        __buf: *mut ::std::os::raw::c_char,
3721        __len: usize,
3722    ) -> ::std::os::raw::c_int;
3723}
3724extern "C" {
3725    pub fn qecvt_r(
3726        __value: u128,
3727        __ndigit: ::std::os::raw::c_int,
3728        __decpt: *mut ::std::os::raw::c_int,
3729        __sign: *mut ::std::os::raw::c_int,
3730        __buf: *mut ::std::os::raw::c_char,
3731        __len: usize,
3732    ) -> ::std::os::raw::c_int;
3733}
3734extern "C" {
3735    pub fn qfcvt_r(
3736        __value: u128,
3737        __ndigit: ::std::os::raw::c_int,
3738        __decpt: *mut ::std::os::raw::c_int,
3739        __sign: *mut ::std::os::raw::c_int,
3740        __buf: *mut ::std::os::raw::c_char,
3741        __len: usize,
3742    ) -> ::std::os::raw::c_int;
3743}
3744extern "C" {
3745    pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int;
3746}
3747extern "C" {
3748    pub fn mbtowc(
3749        __pwc: *mut wchar_t,
3750        __s: *const ::std::os::raw::c_char,
3751        __n: usize,
3752    ) -> ::std::os::raw::c_int;
3753}
3754extern "C" {
3755    pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int;
3756}
3757extern "C" {
3758    pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize;
3759}
3760extern "C" {
3761    pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize;
3762}
3763extern "C" {
3764    pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3765}
3766extern "C" {
3767    pub fn getsubopt(
3768        __optionp: *mut *mut ::std::os::raw::c_char,
3769        __tokens: *const *mut ::std::os::raw::c_char,
3770        __valuep: *mut *mut ::std::os::raw::c_char,
3771    ) -> ::std::os::raw::c_int;
3772}
3773extern "C" {
3774    pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int)
3775        -> ::std::os::raw::c_int;
3776}
3777extern "C" {
3778    pub fn memcpy(
3779        __dest: *mut ::std::os::raw::c_void,
3780        __src: *const ::std::os::raw::c_void,
3781        __n: ::std::os::raw::c_ulong,
3782    ) -> *mut ::std::os::raw::c_void;
3783}
3784extern "C" {
3785    pub fn memmove(
3786        __dest: *mut ::std::os::raw::c_void,
3787        __src: *const ::std::os::raw::c_void,
3788        __n: ::std::os::raw::c_ulong,
3789    ) -> *mut ::std::os::raw::c_void;
3790}
3791extern "C" {
3792    pub fn memccpy(
3793        __dest: *mut ::std::os::raw::c_void,
3794        __src: *const ::std::os::raw::c_void,
3795        __c: ::std::os::raw::c_int,
3796        __n: usize,
3797    ) -> *mut ::std::os::raw::c_void;
3798}
3799extern "C" {
3800    pub fn memset(
3801        __s: *mut ::std::os::raw::c_void,
3802        __c: ::std::os::raw::c_int,
3803        __n: ::std::os::raw::c_ulong,
3804    ) -> *mut ::std::os::raw::c_void;
3805}
3806extern "C" {
3807    pub fn memcmp(
3808        __s1: *const ::std::os::raw::c_void,
3809        __s2: *const ::std::os::raw::c_void,
3810        __n: ::std::os::raw::c_ulong,
3811    ) -> ::std::os::raw::c_int;
3812}
3813extern "C" {
3814    pub fn memchr(
3815        __s: *const ::std::os::raw::c_void,
3816        __c: ::std::os::raw::c_int,
3817        __n: ::std::os::raw::c_ulong,
3818    ) -> *mut ::std::os::raw::c_void;
3819}
3820extern "C" {
3821    pub fn strcpy(
3822        __dest: *mut ::std::os::raw::c_char,
3823        __src: *const ::std::os::raw::c_char,
3824    ) -> *mut ::std::os::raw::c_char;
3825}
3826extern "C" {
3827    pub fn strncpy(
3828        __dest: *mut ::std::os::raw::c_char,
3829        __src: *const ::std::os::raw::c_char,
3830        __n: ::std::os::raw::c_ulong,
3831    ) -> *mut ::std::os::raw::c_char;
3832}
3833extern "C" {
3834    pub fn strcat(
3835        __dest: *mut ::std::os::raw::c_char,
3836        __src: *const ::std::os::raw::c_char,
3837    ) -> *mut ::std::os::raw::c_char;
3838}
3839extern "C" {
3840    pub fn strncat(
3841        __dest: *mut ::std::os::raw::c_char,
3842        __src: *const ::std::os::raw::c_char,
3843        __n: ::std::os::raw::c_ulong,
3844    ) -> *mut ::std::os::raw::c_char;
3845}
3846extern "C" {
3847    pub fn strcmp(
3848        __s1: *const ::std::os::raw::c_char,
3849        __s2: *const ::std::os::raw::c_char,
3850    ) -> ::std::os::raw::c_int;
3851}
3852extern "C" {
3853    pub fn strncmp(
3854        __s1: *const ::std::os::raw::c_char,
3855        __s2: *const ::std::os::raw::c_char,
3856        __n: ::std::os::raw::c_ulong,
3857    ) -> ::std::os::raw::c_int;
3858}
3859extern "C" {
3860    pub fn strcoll(
3861        __s1: *const ::std::os::raw::c_char,
3862        __s2: *const ::std::os::raw::c_char,
3863    ) -> ::std::os::raw::c_int;
3864}
3865extern "C" {
3866    pub fn strxfrm(
3867        __dest: *mut ::std::os::raw::c_char,
3868        __src: *const ::std::os::raw::c_char,
3869        __n: ::std::os::raw::c_ulong,
3870    ) -> ::std::os::raw::c_ulong;
3871}
3872#[repr(C)]
3873#[derive(Debug, Copy, Clone)]
3874pub struct __locale_struct {
3875    pub __locales: [*mut __locale_data; 13usize],
3876    pub __ctype_b: *const ::std::os::raw::c_ushort,
3877    pub __ctype_tolower: *const ::std::os::raw::c_int,
3878    pub __ctype_toupper: *const ::std::os::raw::c_int,
3879    pub __names: [*const ::std::os::raw::c_char; 13usize],
3880}
3881pub type __locale_t = *mut __locale_struct;
3882pub type locale_t = __locale_t;
3883extern "C" {
3884    pub fn strcoll_l(
3885        __s1: *const ::std::os::raw::c_char,
3886        __s2: *const ::std::os::raw::c_char,
3887        __l: locale_t,
3888    ) -> ::std::os::raw::c_int;
3889}
3890extern "C" {
3891    pub fn strxfrm_l(
3892        __dest: *mut ::std::os::raw::c_char,
3893        __src: *const ::std::os::raw::c_char,
3894        __n: usize,
3895        __l: locale_t,
3896    ) -> usize;
3897}
3898extern "C" {
3899    pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3900}
3901extern "C" {
3902    pub fn strndup(
3903        __string: *const ::std::os::raw::c_char,
3904        __n: ::std::os::raw::c_ulong,
3905    ) -> *mut ::std::os::raw::c_char;
3906}
3907extern "C" {
3908    pub fn strchr(
3909        __s: *const ::std::os::raw::c_char,
3910        __c: ::std::os::raw::c_int,
3911    ) -> *mut ::std::os::raw::c_char;
3912}
3913extern "C" {
3914    pub fn strrchr(
3915        __s: *const ::std::os::raw::c_char,
3916        __c: ::std::os::raw::c_int,
3917    ) -> *mut ::std::os::raw::c_char;
3918}
3919extern "C" {
3920    pub fn strcspn(
3921        __s: *const ::std::os::raw::c_char,
3922        __reject: *const ::std::os::raw::c_char,
3923    ) -> ::std::os::raw::c_ulong;
3924}
3925extern "C" {
3926    pub fn strspn(
3927        __s: *const ::std::os::raw::c_char,
3928        __accept: *const ::std::os::raw::c_char,
3929    ) -> ::std::os::raw::c_ulong;
3930}
3931extern "C" {
3932    pub fn strpbrk(
3933        __s: *const ::std::os::raw::c_char,
3934        __accept: *const ::std::os::raw::c_char,
3935    ) -> *mut ::std::os::raw::c_char;
3936}
3937extern "C" {
3938    pub fn strstr(
3939        __haystack: *const ::std::os::raw::c_char,
3940        __needle: *const ::std::os::raw::c_char,
3941    ) -> *mut ::std::os::raw::c_char;
3942}
3943extern "C" {
3944    pub fn strtok(
3945        __s: *mut ::std::os::raw::c_char,
3946        __delim: *const ::std::os::raw::c_char,
3947    ) -> *mut ::std::os::raw::c_char;
3948}
3949extern "C" {
3950    pub fn __strtok_r(
3951        __s: *mut ::std::os::raw::c_char,
3952        __delim: *const ::std::os::raw::c_char,
3953        __save_ptr: *mut *mut ::std::os::raw::c_char,
3954    ) -> *mut ::std::os::raw::c_char;
3955}
3956extern "C" {
3957    pub fn strtok_r(
3958        __s: *mut ::std::os::raw::c_char,
3959        __delim: *const ::std::os::raw::c_char,
3960        __save_ptr: *mut *mut ::std::os::raw::c_char,
3961    ) -> *mut ::std::os::raw::c_char;
3962}
3963extern "C" {
3964    pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong;
3965}
3966extern "C" {
3967    pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize;
3968}
3969extern "C" {
3970    pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
3971}
3972extern "C" {
3973    #[link_name = "\u{1}__xpg_strerror_r"]
3974    pub fn strerror_r(
3975        __errnum: ::std::os::raw::c_int,
3976        __buf: *mut ::std::os::raw::c_char,
3977        __buflen: usize,
3978    ) -> ::std::os::raw::c_int;
3979}
3980extern "C" {
3981    pub fn strerror_l(
3982        __errnum: ::std::os::raw::c_int,
3983        __l: locale_t,
3984    ) -> *mut ::std::os::raw::c_char;
3985}
3986extern "C" {
3987    pub fn bcmp(
3988        __s1: *const ::std::os::raw::c_void,
3989        __s2: *const ::std::os::raw::c_void,
3990        __n: usize,
3991    ) -> ::std::os::raw::c_int;
3992}
3993extern "C" {
3994    pub fn bcopy(
3995        __src: *const ::std::os::raw::c_void,
3996        __dest: *mut ::std::os::raw::c_void,
3997        __n: usize,
3998    );
3999}
4000extern "C" {
4001    pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong);
4002}
4003extern "C" {
4004    pub fn index(
4005        __s: *const ::std::os::raw::c_char,
4006        __c: ::std::os::raw::c_int,
4007    ) -> *mut ::std::os::raw::c_char;
4008}
4009extern "C" {
4010    pub fn rindex(
4011        __s: *const ::std::os::raw::c_char,
4012        __c: ::std::os::raw::c_int,
4013    ) -> *mut ::std::os::raw::c_char;
4014}
4015extern "C" {
4016    pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4017}
4018extern "C" {
4019    pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
4020}
4021extern "C" {
4022    pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int;
4023}
4024extern "C" {
4025    pub fn strcasecmp(
4026        __s1: *const ::std::os::raw::c_char,
4027        __s2: *const ::std::os::raw::c_char,
4028    ) -> ::std::os::raw::c_int;
4029}
4030extern "C" {
4031    pub fn strncasecmp(
4032        __s1: *const ::std::os::raw::c_char,
4033        __s2: *const ::std::os::raw::c_char,
4034        __n: ::std::os::raw::c_ulong,
4035    ) -> ::std::os::raw::c_int;
4036}
4037extern "C" {
4038    pub fn strcasecmp_l(
4039        __s1: *const ::std::os::raw::c_char,
4040        __s2: *const ::std::os::raw::c_char,
4041        __loc: locale_t,
4042    ) -> ::std::os::raw::c_int;
4043}
4044extern "C" {
4045    pub fn strncasecmp_l(
4046        __s1: *const ::std::os::raw::c_char,
4047        __s2: *const ::std::os::raw::c_char,
4048        __n: usize,
4049        __loc: locale_t,
4050    ) -> ::std::os::raw::c_int;
4051}
4052extern "C" {
4053    pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize);
4054}
4055extern "C" {
4056    pub fn strsep(
4057        __stringp: *mut *mut ::std::os::raw::c_char,
4058        __delim: *const ::std::os::raw::c_char,
4059    ) -> *mut ::std::os::raw::c_char;
4060}
4061extern "C" {
4062    pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
4063}
4064extern "C" {
4065    pub fn __stpcpy(
4066        __dest: *mut ::std::os::raw::c_char,
4067        __src: *const ::std::os::raw::c_char,
4068    ) -> *mut ::std::os::raw::c_char;
4069}
4070extern "C" {
4071    pub fn stpcpy(
4072        __dest: *mut ::std::os::raw::c_char,
4073        __src: *const ::std::os::raw::c_char,
4074    ) -> *mut ::std::os::raw::c_char;
4075}
4076extern "C" {
4077    pub fn __stpncpy(
4078        __dest: *mut ::std::os::raw::c_char,
4079        __src: *const ::std::os::raw::c_char,
4080        __n: usize,
4081    ) -> *mut ::std::os::raw::c_char;
4082}
4083extern "C" {
4084    pub fn stpncpy(
4085        __dest: *mut ::std::os::raw::c_char,
4086        __src: *const ::std::os::raw::c_char,
4087        __n: ::std::os::raw::c_ulong,
4088    ) -> *mut ::std::os::raw::c_char;
4089}
4090extern "C" {
4091    pub fn av_log2(v: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
4092}
4093extern "C" {
4094    pub fn av_log2_16bit(v: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
4095}
4096#[repr(C)]
4097#[repr(align(16))]
4098#[derive(Debug, Copy, Clone)]
4099pub struct max_align_t {
4100    pub __clang_max_align_nonce1: ::std::os::raw::c_longlong,
4101    pub __bindgen_padding_0: u64,
4102    pub __clang_max_align_nonce2: u128,
4103}
4104extern "C" {
4105    pub fn av_strerror(
4106        errnum: ::std::os::raw::c_int,
4107        errbuf: *mut ::std::os::raw::c_char,
4108        errbuf_size: usize,
4109    ) -> ::std::os::raw::c_int;
4110}
4111extern "C" {
4112    pub fn av_malloc(size: usize) -> *mut ::std::os::raw::c_void;
4113}
4114extern "C" {
4115    pub fn av_mallocz(size: usize) -> *mut ::std::os::raw::c_void;
4116}
4117extern "C" {
4118    pub fn av_malloc_array(nmemb: usize, size: usize) -> *mut ::std::os::raw::c_void;
4119}
4120extern "C" {
4121    pub fn av_mallocz_array(nmemb: usize, size: usize) -> *mut ::std::os::raw::c_void;
4122}
4123extern "C" {
4124    pub fn av_calloc(nmemb: usize, size: usize) -> *mut ::std::os::raw::c_void;
4125}
4126extern "C" {
4127    pub fn av_realloc(ptr: *mut ::std::os::raw::c_void, size: usize)
4128        -> *mut ::std::os::raw::c_void;
4129}
4130extern "C" {
4131    pub fn av_reallocp(ptr: *mut ::std::os::raw::c_void, size: usize) -> ::std::os::raw::c_int;
4132}
4133extern "C" {
4134    pub fn av_realloc_f(
4135        ptr: *mut ::std::os::raw::c_void,
4136        nelem: usize,
4137        elsize: usize,
4138    ) -> *mut ::std::os::raw::c_void;
4139}
4140extern "C" {
4141    pub fn av_realloc_array(
4142        ptr: *mut ::std::os::raw::c_void,
4143        nmemb: usize,
4144        size: usize,
4145    ) -> *mut ::std::os::raw::c_void;
4146}
4147extern "C" {
4148    pub fn av_reallocp_array(
4149        ptr: *mut ::std::os::raw::c_void,
4150        nmemb: usize,
4151        size: usize,
4152    ) -> ::std::os::raw::c_int;
4153}
4154extern "C" {
4155    pub fn av_fast_realloc(
4156        ptr: *mut ::std::os::raw::c_void,
4157        size: *mut ::std::os::raw::c_uint,
4158        min_size: usize,
4159    ) -> *mut ::std::os::raw::c_void;
4160}
4161extern "C" {
4162    pub fn av_fast_malloc(
4163        ptr: *mut ::std::os::raw::c_void,
4164        size: *mut ::std::os::raw::c_uint,
4165        min_size: usize,
4166    );
4167}
4168extern "C" {
4169    pub fn av_fast_mallocz(
4170        ptr: *mut ::std::os::raw::c_void,
4171        size: *mut ::std::os::raw::c_uint,
4172        min_size: usize,
4173    );
4174}
4175extern "C" {
4176    pub fn av_free(ptr: *mut ::std::os::raw::c_void);
4177}
4178extern "C" {
4179    pub fn av_freep(ptr: *mut ::std::os::raw::c_void);
4180}
4181extern "C" {
4182    pub fn av_strdup(s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
4183}
4184extern "C" {
4185    pub fn av_strndup(s: *const ::std::os::raw::c_char, len: usize) -> *mut ::std::os::raw::c_char;
4186}
4187extern "C" {
4188    pub fn av_memdup(p: *const ::std::os::raw::c_void, size: usize) -> *mut ::std::os::raw::c_void;
4189}
4190extern "C" {
4191    pub fn av_memcpy_backptr(dst: *mut u8, back: ::std::os::raw::c_int, cnt: ::std::os::raw::c_int);
4192}
4193extern "C" {
4194    pub fn av_dynarray_add(
4195        tab_ptr: *mut ::std::os::raw::c_void,
4196        nb_ptr: *mut ::std::os::raw::c_int,
4197        elem: *mut ::std::os::raw::c_void,
4198    );
4199}
4200extern "C" {
4201    pub fn av_dynarray_add_nofree(
4202        tab_ptr: *mut ::std::os::raw::c_void,
4203        nb_ptr: *mut ::std::os::raw::c_int,
4204        elem: *mut ::std::os::raw::c_void,
4205    ) -> ::std::os::raw::c_int;
4206}
4207extern "C" {
4208    pub fn av_dynarray2_add(
4209        tab_ptr: *mut *mut ::std::os::raw::c_void,
4210        nb_ptr: *mut ::std::os::raw::c_int,
4211        elem_size: usize,
4212        elem_data: *const u8,
4213    ) -> *mut ::std::os::raw::c_void;
4214}
4215extern "C" {
4216    pub fn av_max_alloc(max: usize);
4217}
4218#[repr(C)]
4219#[derive(Debug, Copy, Clone)]
4220pub struct AVRational {
4221    pub num: ::std::os::raw::c_int,
4222    pub den: ::std::os::raw::c_int,
4223}
4224extern "C" {
4225    pub fn av_reduce(
4226        dst_num: *mut ::std::os::raw::c_int,
4227        dst_den: *mut ::std::os::raw::c_int,
4228        num: i64,
4229        den: i64,
4230        max: i64,
4231    ) -> ::std::os::raw::c_int;
4232}
4233extern "C" {
4234    pub fn av_mul_q(b: AVRational, c: AVRational) -> AVRational;
4235}
4236extern "C" {
4237    pub fn av_div_q(b: AVRational, c: AVRational) -> AVRational;
4238}
4239extern "C" {
4240    pub fn av_add_q(b: AVRational, c: AVRational) -> AVRational;
4241}
4242extern "C" {
4243    pub fn av_sub_q(b: AVRational, c: AVRational) -> AVRational;
4244}
4245extern "C" {
4246    pub fn av_d2q(d: f64, max: ::std::os::raw::c_int) -> AVRational;
4247}
4248extern "C" {
4249    pub fn av_nearer_q(q: AVRational, q1: AVRational, q2: AVRational) -> ::std::os::raw::c_int;
4250}
4251extern "C" {
4252    pub fn av_find_nearest_q_idx(q: AVRational, q_list: *const AVRational)
4253        -> ::std::os::raw::c_int;
4254}
4255extern "C" {
4256    pub fn av_q2intfloat(q: AVRational) -> u32;
4257}
4258#[repr(C)]
4259#[derive(Copy, Clone)]
4260pub union av_intfloat32 {
4261    pub i: u32,
4262    pub f: f32,
4263    _bindgen_union_align: u32,
4264}
4265#[repr(C)]
4266#[derive(Copy, Clone)]
4267pub union av_intfloat64 {
4268    pub i: u64,
4269    pub f: f64,
4270    _bindgen_union_align: u64,
4271}
4272pub const AVRounding_AV_ROUND_ZERO: AVRounding = 0;
4273pub const AVRounding_AV_ROUND_INF: AVRounding = 1;
4274pub const AVRounding_AV_ROUND_DOWN: AVRounding = 2;
4275pub const AVRounding_AV_ROUND_UP: AVRounding = 3;
4276pub const AVRounding_AV_ROUND_NEAR_INF: AVRounding = 5;
4277pub const AVRounding_AV_ROUND_PASS_MINMAX: AVRounding = 8192;
4278pub type AVRounding = u32;
4279extern "C" {
4280    pub fn av_gcd(a: i64, b: i64) -> i64;
4281}
4282extern "C" {
4283    pub fn av_rescale(a: i64, b: i64, c: i64) -> i64;
4284}
4285extern "C" {
4286    pub fn av_rescale_rnd(a: i64, b: i64, c: i64, rnd: AVRounding) -> i64;
4287}
4288extern "C" {
4289    pub fn av_rescale_q(a: i64, bq: AVRational, cq: AVRational) -> i64;
4290}
4291extern "C" {
4292    pub fn av_rescale_q_rnd(a: i64, bq: AVRational, cq: AVRational, rnd: AVRounding) -> i64;
4293}
4294extern "C" {
4295    pub fn av_compare_ts(
4296        ts_a: i64,
4297        tb_a: AVRational,
4298        ts_b: i64,
4299        tb_b: AVRational,
4300    ) -> ::std::os::raw::c_int;
4301}
4302extern "C" {
4303    pub fn av_compare_mod(a: u64, b: u64, mod_: u64) -> i64;
4304}
4305extern "C" {
4306    pub fn av_rescale_delta(
4307        in_tb: AVRational,
4308        in_ts: i64,
4309        fs_tb: AVRational,
4310        duration: ::std::os::raw::c_int,
4311        last: *mut i64,
4312        out_tb: AVRational,
4313    ) -> i64;
4314}
4315extern "C" {
4316    pub fn av_add_stable(ts_tb: AVRational, ts: i64, inc_tb: AVRational, inc: i64) -> i64;
4317}
4318pub const AVClassCategory_AV_CLASS_CATEGORY_NA: AVClassCategory = 0;
4319pub const AVClassCategory_AV_CLASS_CATEGORY_INPUT: AVClassCategory = 1;
4320pub const AVClassCategory_AV_CLASS_CATEGORY_OUTPUT: AVClassCategory = 2;
4321pub const AVClassCategory_AV_CLASS_CATEGORY_MUXER: AVClassCategory = 3;
4322pub const AVClassCategory_AV_CLASS_CATEGORY_DEMUXER: AVClassCategory = 4;
4323pub const AVClassCategory_AV_CLASS_CATEGORY_ENCODER: AVClassCategory = 5;
4324pub const AVClassCategory_AV_CLASS_CATEGORY_DECODER: AVClassCategory = 6;
4325pub const AVClassCategory_AV_CLASS_CATEGORY_FILTER: AVClassCategory = 7;
4326pub const AVClassCategory_AV_CLASS_CATEGORY_BITSTREAM_FILTER: AVClassCategory = 8;
4327pub const AVClassCategory_AV_CLASS_CATEGORY_SWSCALER: AVClassCategory = 9;
4328pub const AVClassCategory_AV_CLASS_CATEGORY_SWRESAMPLER: AVClassCategory = 10;
4329pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT: AVClassCategory = 40;
4330pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT: AVClassCategory = 41;
4331pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT: AVClassCategory = 42;
4332pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT: AVClassCategory = 43;
4333pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_OUTPUT: AVClassCategory = 44;
4334pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_INPUT: AVClassCategory = 45;
4335pub const AVClassCategory_AV_CLASS_CATEGORY_NB: AVClassCategory = 46;
4336pub type AVClassCategory = u32;
4337#[repr(C)]
4338#[derive(Debug, Copy, Clone)]
4339pub struct AVOptionRanges {
4340    _unused: [u8; 0],
4341}
4342#[repr(C)]
4343#[derive(Debug, Copy, Clone)]
4344pub struct AVClass {
4345    pub class_name: *const ::std::os::raw::c_char,
4346    pub item_name: ::std::option::Option<
4347        unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> *const ::std::os::raw::c_char,
4348    >,
4349    pub option: *mut AVOption,
4350    pub version: ::std::os::raw::c_int,
4351    pub log_level_offset_offset: ::std::os::raw::c_int,
4352    pub parent_log_context_offset: ::std::os::raw::c_int,
4353    pub child_next: ::std::option::Option<
4354        unsafe extern "C" fn(
4355            obj: *mut ::std::os::raw::c_void,
4356            prev: *mut ::std::os::raw::c_void,
4357        ) -> *mut ::std::os::raw::c_void,
4358    >,
4359    pub child_class_next:
4360        ::std::option::Option<unsafe extern "C" fn(prev: *const AVClass) -> *const AVClass>,
4361    pub category: AVClassCategory,
4362    pub get_category: ::std::option::Option<
4363        unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> AVClassCategory,
4364    >,
4365    pub query_ranges: ::std::option::Option<
4366        unsafe extern "C" fn(
4367            arg1: *mut *mut AVOptionRanges,
4368            obj: *mut ::std::os::raw::c_void,
4369            key: *const ::std::os::raw::c_char,
4370            flags: ::std::os::raw::c_int,
4371        ) -> ::std::os::raw::c_int,
4372    >,
4373}
4374extern "C" {
4375    pub fn av_log(
4376        avcl: *mut ::std::os::raw::c_void,
4377        level: ::std::os::raw::c_int,
4378        fmt: *const ::std::os::raw::c_char,
4379        ...
4380    );
4381}
4382extern "C" {
4383    pub fn av_vlog(
4384        avcl: *mut ::std::os::raw::c_void,
4385        level: ::std::os::raw::c_int,
4386        fmt: *const ::std::os::raw::c_char,
4387        vl: *mut __va_list_tag,
4388    );
4389}
4390extern "C" {
4391    pub fn av_log_get_level() -> ::std::os::raw::c_int;
4392}
4393extern "C" {
4394    pub fn av_log_set_level(level: ::std::os::raw::c_int);
4395}
4396extern "C" {
4397    pub fn av_log_set_callback(
4398        callback: ::std::option::Option<
4399            unsafe extern "C" fn(
4400                callback: *mut ::std::os::raw::c_void,
4401                arg1: ::std::os::raw::c_int,
4402                arg2: *const ::std::os::raw::c_char,
4403                arg3: *mut __va_list_tag,
4404            ),
4405        >,
4406    );
4407}
4408extern "C" {
4409    pub fn av_log_default_callback(
4410        avcl: *mut ::std::os::raw::c_void,
4411        level: ::std::os::raw::c_int,
4412        fmt: *const ::std::os::raw::c_char,
4413        vl: *mut __va_list_tag,
4414    );
4415}
4416extern "C" {
4417    pub fn av_default_item_name(ctx: *mut ::std::os::raw::c_void) -> *const ::std::os::raw::c_char;
4418}
4419extern "C" {
4420    pub fn av_default_get_category(ptr: *mut ::std::os::raw::c_void) -> AVClassCategory;
4421}
4422extern "C" {
4423    pub fn av_log_format_line(
4424        ptr: *mut ::std::os::raw::c_void,
4425        level: ::std::os::raw::c_int,
4426        fmt: *const ::std::os::raw::c_char,
4427        vl: *mut __va_list_tag,
4428        line: *mut ::std::os::raw::c_char,
4429        line_size: ::std::os::raw::c_int,
4430        print_prefix: *mut ::std::os::raw::c_int,
4431    );
4432}
4433extern "C" {
4434    pub fn av_log_format_line2(
4435        ptr: *mut ::std::os::raw::c_void,
4436        level: ::std::os::raw::c_int,
4437        fmt: *const ::std::os::raw::c_char,
4438        vl: *mut __va_list_tag,
4439        line: *mut ::std::os::raw::c_char,
4440        line_size: ::std::os::raw::c_int,
4441        print_prefix: *mut ::std::os::raw::c_int,
4442    ) -> ::std::os::raw::c_int;
4443}
4444extern "C" {
4445    pub fn av_log_set_flags(arg: ::std::os::raw::c_int);
4446}
4447extern "C" {
4448    pub fn av_log_get_flags() -> ::std::os::raw::c_int;
4449}
4450pub const AVPixelFormat_AV_PIX_FMT_NONE: AVPixelFormat = -1;
4451pub const AVPixelFormat_AV_PIX_FMT_YUV420P: AVPixelFormat = 0;
4452pub const AVPixelFormat_AV_PIX_FMT_YUYV422: AVPixelFormat = 1;
4453pub const AVPixelFormat_AV_PIX_FMT_RGB24: AVPixelFormat = 2;
4454pub const AVPixelFormat_AV_PIX_FMT_BGR24: AVPixelFormat = 3;
4455pub const AVPixelFormat_AV_PIX_FMT_YUV422P: AVPixelFormat = 4;
4456pub const AVPixelFormat_AV_PIX_FMT_YUV444P: AVPixelFormat = 5;
4457pub const AVPixelFormat_AV_PIX_FMT_YUV410P: AVPixelFormat = 6;
4458pub const AVPixelFormat_AV_PIX_FMT_YUV411P: AVPixelFormat = 7;
4459pub const AVPixelFormat_AV_PIX_FMT_GRAY8: AVPixelFormat = 8;
4460pub const AVPixelFormat_AV_PIX_FMT_MONOWHITE: AVPixelFormat = 9;
4461pub const AVPixelFormat_AV_PIX_FMT_MONOBLACK: AVPixelFormat = 10;
4462pub const AVPixelFormat_AV_PIX_FMT_PAL8: AVPixelFormat = 11;
4463pub const AVPixelFormat_AV_PIX_FMT_YUVJ420P: AVPixelFormat = 12;
4464pub const AVPixelFormat_AV_PIX_FMT_YUVJ422P: AVPixelFormat = 13;
4465pub const AVPixelFormat_AV_PIX_FMT_YUVJ444P: AVPixelFormat = 14;
4466pub const AVPixelFormat_AV_PIX_FMT_UYVY422: AVPixelFormat = 15;
4467pub const AVPixelFormat_AV_PIX_FMT_UYYVYY411: AVPixelFormat = 16;
4468pub const AVPixelFormat_AV_PIX_FMT_BGR8: AVPixelFormat = 17;
4469pub const AVPixelFormat_AV_PIX_FMT_BGR4: AVPixelFormat = 18;
4470pub const AVPixelFormat_AV_PIX_FMT_BGR4_BYTE: AVPixelFormat = 19;
4471pub const AVPixelFormat_AV_PIX_FMT_RGB8: AVPixelFormat = 20;
4472pub const AVPixelFormat_AV_PIX_FMT_RGB4: AVPixelFormat = 21;
4473pub const AVPixelFormat_AV_PIX_FMT_RGB4_BYTE: AVPixelFormat = 22;
4474pub const AVPixelFormat_AV_PIX_FMT_NV12: AVPixelFormat = 23;
4475pub const AVPixelFormat_AV_PIX_FMT_NV21: AVPixelFormat = 24;
4476pub const AVPixelFormat_AV_PIX_FMT_ARGB: AVPixelFormat = 25;
4477pub const AVPixelFormat_AV_PIX_FMT_RGBA: AVPixelFormat = 26;
4478pub const AVPixelFormat_AV_PIX_FMT_ABGR: AVPixelFormat = 27;
4479pub const AVPixelFormat_AV_PIX_FMT_BGRA: AVPixelFormat = 28;
4480pub const AVPixelFormat_AV_PIX_FMT_GRAY16BE: AVPixelFormat = 29;
4481pub const AVPixelFormat_AV_PIX_FMT_GRAY16LE: AVPixelFormat = 30;
4482pub const AVPixelFormat_AV_PIX_FMT_YUV440P: AVPixelFormat = 31;
4483pub const AVPixelFormat_AV_PIX_FMT_YUVJ440P: AVPixelFormat = 32;
4484pub const AVPixelFormat_AV_PIX_FMT_YUVA420P: AVPixelFormat = 33;
4485pub const AVPixelFormat_AV_PIX_FMT_RGB48BE: AVPixelFormat = 34;
4486pub const AVPixelFormat_AV_PIX_FMT_RGB48LE: AVPixelFormat = 35;
4487pub const AVPixelFormat_AV_PIX_FMT_RGB565BE: AVPixelFormat = 36;
4488pub const AVPixelFormat_AV_PIX_FMT_RGB565LE: AVPixelFormat = 37;
4489pub const AVPixelFormat_AV_PIX_FMT_RGB555BE: AVPixelFormat = 38;
4490pub const AVPixelFormat_AV_PIX_FMT_RGB555LE: AVPixelFormat = 39;
4491pub const AVPixelFormat_AV_PIX_FMT_BGR565BE: AVPixelFormat = 40;
4492pub const AVPixelFormat_AV_PIX_FMT_BGR565LE: AVPixelFormat = 41;
4493pub const AVPixelFormat_AV_PIX_FMT_BGR555BE: AVPixelFormat = 42;
4494pub const AVPixelFormat_AV_PIX_FMT_BGR555LE: AVPixelFormat = 43;
4495pub const AVPixelFormat_AV_PIX_FMT_VAAPI_MOCO: AVPixelFormat = 44;
4496pub const AVPixelFormat_AV_PIX_FMT_VAAPI_IDCT: AVPixelFormat = 45;
4497pub const AVPixelFormat_AV_PIX_FMT_VAAPI_VLD: AVPixelFormat = 46;
4498pub const AVPixelFormat_AV_PIX_FMT_VAAPI: AVPixelFormat = 46;
4499pub const AVPixelFormat_AV_PIX_FMT_YUV420P16LE: AVPixelFormat = 47;
4500pub const AVPixelFormat_AV_PIX_FMT_YUV420P16BE: AVPixelFormat = 48;
4501pub const AVPixelFormat_AV_PIX_FMT_YUV422P16LE: AVPixelFormat = 49;
4502pub const AVPixelFormat_AV_PIX_FMT_YUV422P16BE: AVPixelFormat = 50;
4503pub const AVPixelFormat_AV_PIX_FMT_YUV444P16LE: AVPixelFormat = 51;
4504pub const AVPixelFormat_AV_PIX_FMT_YUV444P16BE: AVPixelFormat = 52;
4505pub const AVPixelFormat_AV_PIX_FMT_DXVA2_VLD: AVPixelFormat = 53;
4506pub const AVPixelFormat_AV_PIX_FMT_RGB444LE: AVPixelFormat = 54;
4507pub const AVPixelFormat_AV_PIX_FMT_RGB444BE: AVPixelFormat = 55;
4508pub const AVPixelFormat_AV_PIX_FMT_BGR444LE: AVPixelFormat = 56;
4509pub const AVPixelFormat_AV_PIX_FMT_BGR444BE: AVPixelFormat = 57;
4510pub const AVPixelFormat_AV_PIX_FMT_YA8: AVPixelFormat = 58;
4511pub const AVPixelFormat_AV_PIX_FMT_Y400A: AVPixelFormat = 58;
4512pub const AVPixelFormat_AV_PIX_FMT_GRAY8A: AVPixelFormat = 58;
4513pub const AVPixelFormat_AV_PIX_FMT_BGR48BE: AVPixelFormat = 59;
4514pub const AVPixelFormat_AV_PIX_FMT_BGR48LE: AVPixelFormat = 60;
4515pub const AVPixelFormat_AV_PIX_FMT_YUV420P9BE: AVPixelFormat = 61;
4516pub const AVPixelFormat_AV_PIX_FMT_YUV420P9LE: AVPixelFormat = 62;
4517pub const AVPixelFormat_AV_PIX_FMT_YUV420P10BE: AVPixelFormat = 63;
4518pub const AVPixelFormat_AV_PIX_FMT_YUV420P10LE: AVPixelFormat = 64;
4519pub const AVPixelFormat_AV_PIX_FMT_YUV422P10BE: AVPixelFormat = 65;
4520pub const AVPixelFormat_AV_PIX_FMT_YUV422P10LE: AVPixelFormat = 66;
4521pub const AVPixelFormat_AV_PIX_FMT_YUV444P9BE: AVPixelFormat = 67;
4522pub const AVPixelFormat_AV_PIX_FMT_YUV444P9LE: AVPixelFormat = 68;
4523pub const AVPixelFormat_AV_PIX_FMT_YUV444P10BE: AVPixelFormat = 69;
4524pub const AVPixelFormat_AV_PIX_FMT_YUV444P10LE: AVPixelFormat = 70;
4525pub const AVPixelFormat_AV_PIX_FMT_YUV422P9BE: AVPixelFormat = 71;
4526pub const AVPixelFormat_AV_PIX_FMT_YUV422P9LE: AVPixelFormat = 72;
4527pub const AVPixelFormat_AV_PIX_FMT_GBRP: AVPixelFormat = 73;
4528pub const AVPixelFormat_AV_PIX_FMT_GBR24P: AVPixelFormat = 73;
4529pub const AVPixelFormat_AV_PIX_FMT_GBRP9BE: AVPixelFormat = 74;
4530pub const AVPixelFormat_AV_PIX_FMT_GBRP9LE: AVPixelFormat = 75;
4531pub const AVPixelFormat_AV_PIX_FMT_GBRP10BE: AVPixelFormat = 76;
4532pub const AVPixelFormat_AV_PIX_FMT_GBRP10LE: AVPixelFormat = 77;
4533pub const AVPixelFormat_AV_PIX_FMT_GBRP16BE: AVPixelFormat = 78;
4534pub const AVPixelFormat_AV_PIX_FMT_GBRP16LE: AVPixelFormat = 79;
4535pub const AVPixelFormat_AV_PIX_FMT_YUVA422P: AVPixelFormat = 80;
4536pub const AVPixelFormat_AV_PIX_FMT_YUVA444P: AVPixelFormat = 81;
4537pub const AVPixelFormat_AV_PIX_FMT_YUVA420P9BE: AVPixelFormat = 82;
4538pub const AVPixelFormat_AV_PIX_FMT_YUVA420P9LE: AVPixelFormat = 83;
4539pub const AVPixelFormat_AV_PIX_FMT_YUVA422P9BE: AVPixelFormat = 84;
4540pub const AVPixelFormat_AV_PIX_FMT_YUVA422P9LE: AVPixelFormat = 85;
4541pub const AVPixelFormat_AV_PIX_FMT_YUVA444P9BE: AVPixelFormat = 86;
4542pub const AVPixelFormat_AV_PIX_FMT_YUVA444P9LE: AVPixelFormat = 87;
4543pub const AVPixelFormat_AV_PIX_FMT_YUVA420P10BE: AVPixelFormat = 88;
4544pub const AVPixelFormat_AV_PIX_FMT_YUVA420P10LE: AVPixelFormat = 89;
4545pub const AVPixelFormat_AV_PIX_FMT_YUVA422P10BE: AVPixelFormat = 90;
4546pub const AVPixelFormat_AV_PIX_FMT_YUVA422P10LE: AVPixelFormat = 91;
4547pub const AVPixelFormat_AV_PIX_FMT_YUVA444P10BE: AVPixelFormat = 92;
4548pub const AVPixelFormat_AV_PIX_FMT_YUVA444P10LE: AVPixelFormat = 93;
4549pub const AVPixelFormat_AV_PIX_FMT_YUVA420P16BE: AVPixelFormat = 94;
4550pub const AVPixelFormat_AV_PIX_FMT_YUVA420P16LE: AVPixelFormat = 95;
4551pub const AVPixelFormat_AV_PIX_FMT_YUVA422P16BE: AVPixelFormat = 96;
4552pub const AVPixelFormat_AV_PIX_FMT_YUVA422P16LE: AVPixelFormat = 97;
4553pub const AVPixelFormat_AV_PIX_FMT_YUVA444P16BE: AVPixelFormat = 98;
4554pub const AVPixelFormat_AV_PIX_FMT_YUVA444P16LE: AVPixelFormat = 99;
4555pub const AVPixelFormat_AV_PIX_FMT_VDPAU: AVPixelFormat = 100;
4556pub const AVPixelFormat_AV_PIX_FMT_XYZ12LE: AVPixelFormat = 101;
4557pub const AVPixelFormat_AV_PIX_FMT_XYZ12BE: AVPixelFormat = 102;
4558pub const AVPixelFormat_AV_PIX_FMT_NV16: AVPixelFormat = 103;
4559pub const AVPixelFormat_AV_PIX_FMT_NV20LE: AVPixelFormat = 104;
4560pub const AVPixelFormat_AV_PIX_FMT_NV20BE: AVPixelFormat = 105;
4561pub const AVPixelFormat_AV_PIX_FMT_RGBA64BE: AVPixelFormat = 106;
4562pub const AVPixelFormat_AV_PIX_FMT_RGBA64LE: AVPixelFormat = 107;
4563pub const AVPixelFormat_AV_PIX_FMT_BGRA64BE: AVPixelFormat = 108;
4564pub const AVPixelFormat_AV_PIX_FMT_BGRA64LE: AVPixelFormat = 109;
4565pub const AVPixelFormat_AV_PIX_FMT_YVYU422: AVPixelFormat = 110;
4566pub const AVPixelFormat_AV_PIX_FMT_YA16BE: AVPixelFormat = 111;
4567pub const AVPixelFormat_AV_PIX_FMT_YA16LE: AVPixelFormat = 112;
4568pub const AVPixelFormat_AV_PIX_FMT_GBRAP: AVPixelFormat = 113;
4569pub const AVPixelFormat_AV_PIX_FMT_GBRAP16BE: AVPixelFormat = 114;
4570pub const AVPixelFormat_AV_PIX_FMT_GBRAP16LE: AVPixelFormat = 115;
4571pub const AVPixelFormat_AV_PIX_FMT_QSV: AVPixelFormat = 116;
4572pub const AVPixelFormat_AV_PIX_FMT_MMAL: AVPixelFormat = 117;
4573pub const AVPixelFormat_AV_PIX_FMT_D3D11VA_VLD: AVPixelFormat = 118;
4574pub const AVPixelFormat_AV_PIX_FMT_CUDA: AVPixelFormat = 119;
4575pub const AVPixelFormat_AV_PIX_FMT_0RGB: AVPixelFormat = 120;
4576pub const AVPixelFormat_AV_PIX_FMT_RGB0: AVPixelFormat = 121;
4577pub const AVPixelFormat_AV_PIX_FMT_0BGR: AVPixelFormat = 122;
4578pub const AVPixelFormat_AV_PIX_FMT_BGR0: AVPixelFormat = 123;
4579pub const AVPixelFormat_AV_PIX_FMT_YUV420P12BE: AVPixelFormat = 124;
4580pub const AVPixelFormat_AV_PIX_FMT_YUV420P12LE: AVPixelFormat = 125;
4581pub const AVPixelFormat_AV_PIX_FMT_YUV420P14BE: AVPixelFormat = 126;
4582pub const AVPixelFormat_AV_PIX_FMT_YUV420P14LE: AVPixelFormat = 127;
4583pub const AVPixelFormat_AV_PIX_FMT_YUV422P12BE: AVPixelFormat = 128;
4584pub const AVPixelFormat_AV_PIX_FMT_YUV422P12LE: AVPixelFormat = 129;
4585pub const AVPixelFormat_AV_PIX_FMT_YUV422P14BE: AVPixelFormat = 130;
4586pub const AVPixelFormat_AV_PIX_FMT_YUV422P14LE: AVPixelFormat = 131;
4587pub const AVPixelFormat_AV_PIX_FMT_YUV444P12BE: AVPixelFormat = 132;
4588pub const AVPixelFormat_AV_PIX_FMT_YUV444P12LE: AVPixelFormat = 133;
4589pub const AVPixelFormat_AV_PIX_FMT_YUV444P14BE: AVPixelFormat = 134;
4590pub const AVPixelFormat_AV_PIX_FMT_YUV444P14LE: AVPixelFormat = 135;
4591pub const AVPixelFormat_AV_PIX_FMT_GBRP12BE: AVPixelFormat = 136;
4592pub const AVPixelFormat_AV_PIX_FMT_GBRP12LE: AVPixelFormat = 137;
4593pub const AVPixelFormat_AV_PIX_FMT_GBRP14BE: AVPixelFormat = 138;
4594pub const AVPixelFormat_AV_PIX_FMT_GBRP14LE: AVPixelFormat = 139;
4595pub const AVPixelFormat_AV_PIX_FMT_YUVJ411P: AVPixelFormat = 140;
4596pub const AVPixelFormat_AV_PIX_FMT_BAYER_BGGR8: AVPixelFormat = 141;
4597pub const AVPixelFormat_AV_PIX_FMT_BAYER_RGGB8: AVPixelFormat = 142;
4598pub const AVPixelFormat_AV_PIX_FMT_BAYER_GBRG8: AVPixelFormat = 143;
4599pub const AVPixelFormat_AV_PIX_FMT_BAYER_GRBG8: AVPixelFormat = 144;
4600pub const AVPixelFormat_AV_PIX_FMT_BAYER_BGGR16LE: AVPixelFormat = 145;
4601pub const AVPixelFormat_AV_PIX_FMT_BAYER_BGGR16BE: AVPixelFormat = 146;
4602pub const AVPixelFormat_AV_PIX_FMT_BAYER_RGGB16LE: AVPixelFormat = 147;
4603pub const AVPixelFormat_AV_PIX_FMT_BAYER_RGGB16BE: AVPixelFormat = 148;
4604pub const AVPixelFormat_AV_PIX_FMT_BAYER_GBRG16LE: AVPixelFormat = 149;
4605pub const AVPixelFormat_AV_PIX_FMT_BAYER_GBRG16BE: AVPixelFormat = 150;
4606pub const AVPixelFormat_AV_PIX_FMT_BAYER_GRBG16LE: AVPixelFormat = 151;
4607pub const AVPixelFormat_AV_PIX_FMT_BAYER_GRBG16BE: AVPixelFormat = 152;
4608pub const AVPixelFormat_AV_PIX_FMT_XVMC: AVPixelFormat = 153;
4609pub const AVPixelFormat_AV_PIX_FMT_YUV440P10LE: AVPixelFormat = 154;
4610pub const AVPixelFormat_AV_PIX_FMT_YUV440P10BE: AVPixelFormat = 155;
4611pub const AVPixelFormat_AV_PIX_FMT_YUV440P12LE: AVPixelFormat = 156;
4612pub const AVPixelFormat_AV_PIX_FMT_YUV440P12BE: AVPixelFormat = 157;
4613pub const AVPixelFormat_AV_PIX_FMT_AYUV64LE: AVPixelFormat = 158;
4614pub const AVPixelFormat_AV_PIX_FMT_AYUV64BE: AVPixelFormat = 159;
4615pub const AVPixelFormat_AV_PIX_FMT_VIDEOTOOLBOX: AVPixelFormat = 160;
4616pub const AVPixelFormat_AV_PIX_FMT_P010LE: AVPixelFormat = 161;
4617pub const AVPixelFormat_AV_PIX_FMT_P010BE: AVPixelFormat = 162;
4618pub const AVPixelFormat_AV_PIX_FMT_GBRAP12BE: AVPixelFormat = 163;
4619pub const AVPixelFormat_AV_PIX_FMT_GBRAP12LE: AVPixelFormat = 164;
4620pub const AVPixelFormat_AV_PIX_FMT_GBRAP10BE: AVPixelFormat = 165;
4621pub const AVPixelFormat_AV_PIX_FMT_GBRAP10LE: AVPixelFormat = 166;
4622pub const AVPixelFormat_AV_PIX_FMT_MEDIACODEC: AVPixelFormat = 167;
4623pub const AVPixelFormat_AV_PIX_FMT_GRAY12BE: AVPixelFormat = 168;
4624pub const AVPixelFormat_AV_PIX_FMT_GRAY12LE: AVPixelFormat = 169;
4625pub const AVPixelFormat_AV_PIX_FMT_GRAY10BE: AVPixelFormat = 170;
4626pub const AVPixelFormat_AV_PIX_FMT_GRAY10LE: AVPixelFormat = 171;
4627pub const AVPixelFormat_AV_PIX_FMT_P016LE: AVPixelFormat = 172;
4628pub const AVPixelFormat_AV_PIX_FMT_P016BE: AVPixelFormat = 173;
4629pub const AVPixelFormat_AV_PIX_FMT_D3D11: AVPixelFormat = 174;
4630pub const AVPixelFormat_AV_PIX_FMT_GRAY9BE: AVPixelFormat = 175;
4631pub const AVPixelFormat_AV_PIX_FMT_GRAY9LE: AVPixelFormat = 176;
4632pub const AVPixelFormat_AV_PIX_FMT_GBRPF32BE: AVPixelFormat = 177;
4633pub const AVPixelFormat_AV_PIX_FMT_GBRPF32LE: AVPixelFormat = 178;
4634pub const AVPixelFormat_AV_PIX_FMT_GBRAPF32BE: AVPixelFormat = 179;
4635pub const AVPixelFormat_AV_PIX_FMT_GBRAPF32LE: AVPixelFormat = 180;
4636pub const AVPixelFormat_AV_PIX_FMT_DRM_PRIME: AVPixelFormat = 181;
4637pub const AVPixelFormat_AV_PIX_FMT_OPENCL: AVPixelFormat = 182;
4638pub const AVPixelFormat_AV_PIX_FMT_GRAY14BE: AVPixelFormat = 183;
4639pub const AVPixelFormat_AV_PIX_FMT_GRAY14LE: AVPixelFormat = 184;
4640pub const AVPixelFormat_AV_PIX_FMT_GRAYF32BE: AVPixelFormat = 185;
4641pub const AVPixelFormat_AV_PIX_FMT_GRAYF32LE: AVPixelFormat = 186;
4642pub const AVPixelFormat_AV_PIX_FMT_NB: AVPixelFormat = 187;
4643pub type AVPixelFormat = i32;
4644pub const AVColorPrimaries_AVCOL_PRI_RESERVED0: AVColorPrimaries = 0;
4645pub const AVColorPrimaries_AVCOL_PRI_BT709: AVColorPrimaries = 1;
4646pub const AVColorPrimaries_AVCOL_PRI_UNSPECIFIED: AVColorPrimaries = 2;
4647pub const AVColorPrimaries_AVCOL_PRI_RESERVED: AVColorPrimaries = 3;
4648pub const AVColorPrimaries_AVCOL_PRI_BT470M: AVColorPrimaries = 4;
4649pub const AVColorPrimaries_AVCOL_PRI_BT470BG: AVColorPrimaries = 5;
4650pub const AVColorPrimaries_AVCOL_PRI_SMPTE170M: AVColorPrimaries = 6;
4651pub const AVColorPrimaries_AVCOL_PRI_SMPTE240M: AVColorPrimaries = 7;
4652pub const AVColorPrimaries_AVCOL_PRI_FILM: AVColorPrimaries = 8;
4653pub const AVColorPrimaries_AVCOL_PRI_BT2020: AVColorPrimaries = 9;
4654pub const AVColorPrimaries_AVCOL_PRI_SMPTE428: AVColorPrimaries = 10;
4655pub const AVColorPrimaries_AVCOL_PRI_SMPTEST428_1: AVColorPrimaries = 10;
4656pub const AVColorPrimaries_AVCOL_PRI_SMPTE431: AVColorPrimaries = 11;
4657pub const AVColorPrimaries_AVCOL_PRI_SMPTE432: AVColorPrimaries = 12;
4658pub const AVColorPrimaries_AVCOL_PRI_JEDEC_P22: AVColorPrimaries = 22;
4659pub const AVColorPrimaries_AVCOL_PRI_NB: AVColorPrimaries = 23;
4660pub type AVColorPrimaries = u32;
4661pub const AVColorTransferCharacteristic_AVCOL_TRC_RESERVED0: AVColorTransferCharacteristic = 0;
4662pub const AVColorTransferCharacteristic_AVCOL_TRC_BT709: AVColorTransferCharacteristic = 1;
4663pub const AVColorTransferCharacteristic_AVCOL_TRC_UNSPECIFIED: AVColorTransferCharacteristic = 2;
4664pub const AVColorTransferCharacteristic_AVCOL_TRC_RESERVED: AVColorTransferCharacteristic = 3;
4665pub const AVColorTransferCharacteristic_AVCOL_TRC_GAMMA22: AVColorTransferCharacteristic = 4;
4666pub const AVColorTransferCharacteristic_AVCOL_TRC_GAMMA28: AVColorTransferCharacteristic = 5;
4667pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTE170M: AVColorTransferCharacteristic = 6;
4668pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTE240M: AVColorTransferCharacteristic = 7;
4669pub const AVColorTransferCharacteristic_AVCOL_TRC_LINEAR: AVColorTransferCharacteristic = 8;
4670pub const AVColorTransferCharacteristic_AVCOL_TRC_LOG: AVColorTransferCharacteristic = 9;
4671pub const AVColorTransferCharacteristic_AVCOL_TRC_LOG_SQRT: AVColorTransferCharacteristic = 10;
4672pub const AVColorTransferCharacteristic_AVCOL_TRC_IEC61966_2_4: AVColorTransferCharacteristic = 11;
4673pub const AVColorTransferCharacteristic_AVCOL_TRC_BT1361_ECG: AVColorTransferCharacteristic = 12;
4674pub const AVColorTransferCharacteristic_AVCOL_TRC_IEC61966_2_1: AVColorTransferCharacteristic = 13;
4675pub const AVColorTransferCharacteristic_AVCOL_TRC_BT2020_10: AVColorTransferCharacteristic = 14;
4676pub const AVColorTransferCharacteristic_AVCOL_TRC_BT2020_12: AVColorTransferCharacteristic = 15;
4677pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTE2084: AVColorTransferCharacteristic = 16;
4678pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTEST2084: AVColorTransferCharacteristic = 16;
4679pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTE428: AVColorTransferCharacteristic = 17;
4680pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTEST428_1: AVColorTransferCharacteristic = 17;
4681pub const AVColorTransferCharacteristic_AVCOL_TRC_ARIB_STD_B67: AVColorTransferCharacteristic = 18;
4682pub const AVColorTransferCharacteristic_AVCOL_TRC_NB: AVColorTransferCharacteristic = 19;
4683pub type AVColorTransferCharacteristic = u32;
4684pub const AVColorSpace_AVCOL_SPC_RGB: AVColorSpace = 0;
4685pub const AVColorSpace_AVCOL_SPC_BT709: AVColorSpace = 1;
4686pub const AVColorSpace_AVCOL_SPC_UNSPECIFIED: AVColorSpace = 2;
4687pub const AVColorSpace_AVCOL_SPC_RESERVED: AVColorSpace = 3;
4688pub const AVColorSpace_AVCOL_SPC_FCC: AVColorSpace = 4;
4689pub const AVColorSpace_AVCOL_SPC_BT470BG: AVColorSpace = 5;
4690pub const AVColorSpace_AVCOL_SPC_SMPTE170M: AVColorSpace = 6;
4691pub const AVColorSpace_AVCOL_SPC_SMPTE240M: AVColorSpace = 7;
4692pub const AVColorSpace_AVCOL_SPC_YCGCO: AVColorSpace = 8;
4693pub const AVColorSpace_AVCOL_SPC_YCOCG: AVColorSpace = 8;
4694pub const AVColorSpace_AVCOL_SPC_BT2020_NCL: AVColorSpace = 9;
4695pub const AVColorSpace_AVCOL_SPC_BT2020_CL: AVColorSpace = 10;
4696pub const AVColorSpace_AVCOL_SPC_SMPTE2085: AVColorSpace = 11;
4697pub const AVColorSpace_AVCOL_SPC_CHROMA_DERIVED_NCL: AVColorSpace = 12;
4698pub const AVColorSpace_AVCOL_SPC_CHROMA_DERIVED_CL: AVColorSpace = 13;
4699pub const AVColorSpace_AVCOL_SPC_ICTCP: AVColorSpace = 14;
4700pub const AVColorSpace_AVCOL_SPC_NB: AVColorSpace = 15;
4701pub type AVColorSpace = u32;
4702pub const AVColorRange_AVCOL_RANGE_UNSPECIFIED: AVColorRange = 0;
4703pub const AVColorRange_AVCOL_RANGE_MPEG: AVColorRange = 1;
4704pub const AVColorRange_AVCOL_RANGE_JPEG: AVColorRange = 2;
4705pub const AVColorRange_AVCOL_RANGE_NB: AVColorRange = 3;
4706pub type AVColorRange = u32;
4707pub const AVChromaLocation_AVCHROMA_LOC_UNSPECIFIED: AVChromaLocation = 0;
4708pub const AVChromaLocation_AVCHROMA_LOC_LEFT: AVChromaLocation = 1;
4709pub const AVChromaLocation_AVCHROMA_LOC_CENTER: AVChromaLocation = 2;
4710pub const AVChromaLocation_AVCHROMA_LOC_TOPLEFT: AVChromaLocation = 3;
4711pub const AVChromaLocation_AVCHROMA_LOC_TOP: AVChromaLocation = 4;
4712pub const AVChromaLocation_AVCHROMA_LOC_BOTTOMLEFT: AVChromaLocation = 5;
4713pub const AVChromaLocation_AVCHROMA_LOC_BOTTOM: AVChromaLocation = 6;
4714pub const AVChromaLocation_AVCHROMA_LOC_NB: AVChromaLocation = 7;
4715pub type AVChromaLocation = u32;
4716extern "C" {
4717    pub fn av_int_list_length_for_size(
4718        elsize: ::std::os::raw::c_uint,
4719        list: *const ::std::os::raw::c_void,
4720        term: u64,
4721    ) -> ::std::os::raw::c_uint;
4722}
4723extern "C" {
4724    pub fn av_fopen_utf8(
4725        path: *const ::std::os::raw::c_char,
4726        mode: *const ::std::os::raw::c_char,
4727    ) -> *mut FILE;
4728}
4729extern "C" {
4730    pub fn av_get_time_base_q() -> AVRational;
4731}
4732extern "C" {
4733    pub fn av_fourcc_make_string(
4734        buf: *mut ::std::os::raw::c_char,
4735        fourcc: u32,
4736    ) -> *mut ::std::os::raw::c_char;
4737}
4738pub const AVSampleFormat_AV_SAMPLE_FMT_NONE: AVSampleFormat = -1;
4739pub const AVSampleFormat_AV_SAMPLE_FMT_U8: AVSampleFormat = 0;
4740pub const AVSampleFormat_AV_SAMPLE_FMT_S16: AVSampleFormat = 1;
4741pub const AVSampleFormat_AV_SAMPLE_FMT_S32: AVSampleFormat = 2;
4742pub const AVSampleFormat_AV_SAMPLE_FMT_FLT: AVSampleFormat = 3;
4743pub const AVSampleFormat_AV_SAMPLE_FMT_DBL: AVSampleFormat = 4;
4744pub const AVSampleFormat_AV_SAMPLE_FMT_U8P: AVSampleFormat = 5;
4745pub const AVSampleFormat_AV_SAMPLE_FMT_S16P: AVSampleFormat = 6;
4746pub const AVSampleFormat_AV_SAMPLE_FMT_S32P: AVSampleFormat = 7;
4747pub const AVSampleFormat_AV_SAMPLE_FMT_FLTP: AVSampleFormat = 8;
4748pub const AVSampleFormat_AV_SAMPLE_FMT_DBLP: AVSampleFormat = 9;
4749pub const AVSampleFormat_AV_SAMPLE_FMT_S64: AVSampleFormat = 10;
4750pub const AVSampleFormat_AV_SAMPLE_FMT_S64P: AVSampleFormat = 11;
4751pub const AVSampleFormat_AV_SAMPLE_FMT_NB: AVSampleFormat = 12;
4752pub type AVSampleFormat = i32;
4753extern "C" {
4754    pub fn av_get_sample_fmt_name(sample_fmt: AVSampleFormat) -> *const ::std::os::raw::c_char;
4755}
4756extern "C" {
4757    pub fn av_get_sample_fmt(name: *const ::std::os::raw::c_char) -> AVSampleFormat;
4758}
4759extern "C" {
4760    pub fn av_get_alt_sample_fmt(
4761        sample_fmt: AVSampleFormat,
4762        planar: ::std::os::raw::c_int,
4763    ) -> AVSampleFormat;
4764}
4765extern "C" {
4766    pub fn av_get_packed_sample_fmt(sample_fmt: AVSampleFormat) -> AVSampleFormat;
4767}
4768extern "C" {
4769    pub fn av_get_planar_sample_fmt(sample_fmt: AVSampleFormat) -> AVSampleFormat;
4770}
4771extern "C" {
4772    pub fn av_get_sample_fmt_string(
4773        buf: *mut ::std::os::raw::c_char,
4774        buf_size: ::std::os::raw::c_int,
4775        sample_fmt: AVSampleFormat,
4776    ) -> *mut ::std::os::raw::c_char;
4777}
4778extern "C" {
4779    pub fn av_get_bytes_per_sample(sample_fmt: AVSampleFormat) -> ::std::os::raw::c_int;
4780}
4781extern "C" {
4782    pub fn av_sample_fmt_is_planar(sample_fmt: AVSampleFormat) -> ::std::os::raw::c_int;
4783}
4784extern "C" {
4785    pub fn av_samples_get_buffer_size(
4786        linesize: *mut ::std::os::raw::c_int,
4787        nb_channels: ::std::os::raw::c_int,
4788        nb_samples: ::std::os::raw::c_int,
4789        sample_fmt: AVSampleFormat,
4790        align: ::std::os::raw::c_int,
4791    ) -> ::std::os::raw::c_int;
4792}
4793extern "C" {
4794    pub fn av_samples_fill_arrays(
4795        audio_data: *mut *mut u8,
4796        linesize: *mut ::std::os::raw::c_int,
4797        buf: *const u8,
4798        nb_channels: ::std::os::raw::c_int,
4799        nb_samples: ::std::os::raw::c_int,
4800        sample_fmt: AVSampleFormat,
4801        align: ::std::os::raw::c_int,
4802    ) -> ::std::os::raw::c_int;
4803}
4804extern "C" {
4805    pub fn av_samples_alloc(
4806        audio_data: *mut *mut u8,
4807        linesize: *mut ::std::os::raw::c_int,
4808        nb_channels: ::std::os::raw::c_int,
4809        nb_samples: ::std::os::raw::c_int,
4810        sample_fmt: AVSampleFormat,
4811        align: ::std::os::raw::c_int,
4812    ) -> ::std::os::raw::c_int;
4813}
4814extern "C" {
4815    pub fn av_samples_alloc_array_and_samples(
4816        audio_data: *mut *mut *mut u8,
4817        linesize: *mut ::std::os::raw::c_int,
4818        nb_channels: ::std::os::raw::c_int,
4819        nb_samples: ::std::os::raw::c_int,
4820        sample_fmt: AVSampleFormat,
4821        align: ::std::os::raw::c_int,
4822    ) -> ::std::os::raw::c_int;
4823}
4824extern "C" {
4825    pub fn av_samples_copy(
4826        dst: *mut *mut u8,
4827        src: *const *mut u8,
4828        dst_offset: ::std::os::raw::c_int,
4829        src_offset: ::std::os::raw::c_int,
4830        nb_samples: ::std::os::raw::c_int,
4831        nb_channels: ::std::os::raw::c_int,
4832        sample_fmt: AVSampleFormat,
4833    ) -> ::std::os::raw::c_int;
4834}
4835extern "C" {
4836    pub fn av_samples_set_silence(
4837        audio_data: *mut *mut u8,
4838        offset: ::std::os::raw::c_int,
4839        nb_samples: ::std::os::raw::c_int,
4840        nb_channels: ::std::os::raw::c_int,
4841        sample_fmt: AVSampleFormat,
4842    ) -> ::std::os::raw::c_int;
4843}
4844#[repr(C)]
4845#[derive(Debug, Copy, Clone)]
4846pub struct AVBuffer {
4847    _unused: [u8; 0],
4848}
4849#[repr(C)]
4850#[derive(Debug, Copy, Clone)]
4851pub struct AVBufferRef {
4852    pub buffer: *mut AVBuffer,
4853    pub data: *mut u8,
4854    pub size: ::std::os::raw::c_int,
4855}
4856extern "C" {
4857    pub fn av_buffer_alloc(size: ::std::os::raw::c_int) -> *mut AVBufferRef;
4858}
4859extern "C" {
4860    pub fn av_buffer_allocz(size: ::std::os::raw::c_int) -> *mut AVBufferRef;
4861}
4862extern "C" {
4863    pub fn av_buffer_create(
4864        data: *mut u8,
4865        size: ::std::os::raw::c_int,
4866        free: ::std::option::Option<
4867            unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, size: *mut u8),
4868        >,
4869        opaque: *mut ::std::os::raw::c_void,
4870        flags: ::std::os::raw::c_int,
4871    ) -> *mut AVBufferRef;
4872}
4873extern "C" {
4874    pub fn av_buffer_default_free(opaque: *mut ::std::os::raw::c_void, data: *mut u8);
4875}
4876extern "C" {
4877    pub fn av_buffer_ref(buf: *mut AVBufferRef) -> *mut AVBufferRef;
4878}
4879extern "C" {
4880    pub fn av_buffer_unref(buf: *mut *mut AVBufferRef);
4881}
4882extern "C" {
4883    pub fn av_buffer_is_writable(buf: *const AVBufferRef) -> ::std::os::raw::c_int;
4884}
4885extern "C" {
4886    pub fn av_buffer_get_opaque(buf: *const AVBufferRef) -> *mut ::std::os::raw::c_void;
4887}
4888extern "C" {
4889    pub fn av_buffer_get_ref_count(buf: *const AVBufferRef) -> ::std::os::raw::c_int;
4890}
4891extern "C" {
4892    pub fn av_buffer_make_writable(buf: *mut *mut AVBufferRef) -> ::std::os::raw::c_int;
4893}
4894extern "C" {
4895    pub fn av_buffer_realloc(
4896        buf: *mut *mut AVBufferRef,
4897        size: ::std::os::raw::c_int,
4898    ) -> ::std::os::raw::c_int;
4899}
4900#[repr(C)]
4901#[derive(Debug, Copy, Clone)]
4902pub struct AVBufferPool {
4903    _unused: [u8; 0],
4904}
4905extern "C" {
4906    pub fn av_buffer_pool_init(
4907        size: ::std::os::raw::c_int,
4908        alloc: ::std::option::Option<
4909            unsafe extern "C" fn(size: ::std::os::raw::c_int) -> *mut AVBufferRef,
4910        >,
4911    ) -> *mut AVBufferPool;
4912}
4913extern "C" {
4914    pub fn av_buffer_pool_init2(
4915        size: ::std::os::raw::c_int,
4916        opaque: *mut ::std::os::raw::c_void,
4917        alloc: ::std::option::Option<
4918            unsafe extern "C" fn(
4919                size: *mut ::std::os::raw::c_void,
4920                opaque: ::std::os::raw::c_int,
4921            ) -> *mut AVBufferRef,
4922        >,
4923        pool_free: ::std::option::Option<unsafe extern "C" fn(size: *mut ::std::os::raw::c_void)>,
4924    ) -> *mut AVBufferPool;
4925}
4926extern "C" {
4927    pub fn av_buffer_pool_uninit(pool: *mut *mut AVBufferPool);
4928}
4929extern "C" {
4930    pub fn av_buffer_pool_get(pool: *mut AVBufferPool) -> *mut AVBufferRef;
4931}
4932extern "C" {
4933    pub fn av_get_cpu_flags() -> ::std::os::raw::c_int;
4934}
4935extern "C" {
4936    pub fn av_force_cpu_flags(flags: ::std::os::raw::c_int);
4937}
4938extern "C" {
4939    pub fn av_set_cpu_flags_mask(mask: ::std::os::raw::c_int);
4940}
4941extern "C" {
4942    pub fn av_parse_cpu_flags(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
4943}
4944extern "C" {
4945    pub fn av_parse_cpu_caps(
4946        flags: *mut ::std::os::raw::c_uint,
4947        s: *const ::std::os::raw::c_char,
4948    ) -> ::std::os::raw::c_int;
4949}
4950extern "C" {
4951    pub fn av_cpu_count() -> ::std::os::raw::c_int;
4952}
4953extern "C" {
4954    pub fn av_cpu_max_align() -> usize;
4955}
4956pub const AVMatrixEncoding_AV_MATRIX_ENCODING_NONE: AVMatrixEncoding = 0;
4957pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DOLBY: AVMatrixEncoding = 1;
4958pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DPLII: AVMatrixEncoding = 2;
4959pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DPLIIX: AVMatrixEncoding = 3;
4960pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DPLIIZ: AVMatrixEncoding = 4;
4961pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DOLBYEX: AVMatrixEncoding = 5;
4962pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DOLBYHEADPHONE: AVMatrixEncoding = 6;
4963pub const AVMatrixEncoding_AV_MATRIX_ENCODING_NB: AVMatrixEncoding = 7;
4964pub type AVMatrixEncoding = u32;
4965extern "C" {
4966    pub fn av_get_channel_layout(name: *const ::std::os::raw::c_char) -> u64;
4967}
4968extern "C" {
4969    pub fn av_get_extended_channel_layout(
4970        name: *const ::std::os::raw::c_char,
4971        channel_layout: *mut u64,
4972        nb_channels: *mut ::std::os::raw::c_int,
4973    ) -> ::std::os::raw::c_int;
4974}
4975extern "C" {
4976    pub fn av_get_channel_layout_string(
4977        buf: *mut ::std::os::raw::c_char,
4978        buf_size: ::std::os::raw::c_int,
4979        nb_channels: ::std::os::raw::c_int,
4980        channel_layout: u64,
4981    );
4982}
4983#[repr(C)]
4984#[derive(Debug, Copy, Clone)]
4985pub struct AVBPrint {
4986    _unused: [u8; 0],
4987}
4988extern "C" {
4989    pub fn av_bprint_channel_layout(
4990        bp: *mut AVBPrint,
4991        nb_channels: ::std::os::raw::c_int,
4992        channel_layout: u64,
4993    );
4994}
4995extern "C" {
4996    pub fn av_get_channel_layout_nb_channels(channel_layout: u64) -> ::std::os::raw::c_int;
4997}
4998extern "C" {
4999    pub fn av_get_default_channel_layout(nb_channels: ::std::os::raw::c_int) -> i64;
5000}
5001extern "C" {
5002    pub fn av_get_channel_layout_channel_index(
5003        channel_layout: u64,
5004        channel: u64,
5005    ) -> ::std::os::raw::c_int;
5006}
5007extern "C" {
5008    pub fn av_channel_layout_extract_channel(
5009        channel_layout: u64,
5010        index: ::std::os::raw::c_int,
5011    ) -> u64;
5012}
5013extern "C" {
5014    pub fn av_get_channel_name(channel: u64) -> *const ::std::os::raw::c_char;
5015}
5016extern "C" {
5017    pub fn av_get_channel_description(channel: u64) -> *const ::std::os::raw::c_char;
5018}
5019extern "C" {
5020    pub fn av_get_standard_channel_layout(
5021        index: ::std::os::raw::c_uint,
5022        layout: *mut u64,
5023        name: *mut *const ::std::os::raw::c_char,
5024    ) -> ::std::os::raw::c_int;
5025}
5026#[repr(C)]
5027#[derive(Debug, Copy, Clone)]
5028pub struct AVDictionaryEntry {
5029    pub key: *mut ::std::os::raw::c_char,
5030    pub value: *mut ::std::os::raw::c_char,
5031}
5032#[repr(C)]
5033#[derive(Debug, Copy, Clone)]
5034pub struct AVDictionary {
5035    _unused: [u8; 0],
5036}
5037extern "C" {
5038    pub fn av_dict_get(
5039        m: *const AVDictionary,
5040        key: *const ::std::os::raw::c_char,
5041        prev: *const AVDictionaryEntry,
5042        flags: ::std::os::raw::c_int,
5043    ) -> *mut AVDictionaryEntry;
5044}
5045extern "C" {
5046    pub fn av_dict_count(m: *const AVDictionary) -> ::std::os::raw::c_int;
5047}
5048extern "C" {
5049    pub fn av_dict_set(
5050        pm: *mut *mut AVDictionary,
5051        key: *const ::std::os::raw::c_char,
5052        value: *const ::std::os::raw::c_char,
5053        flags: ::std::os::raw::c_int,
5054    ) -> ::std::os::raw::c_int;
5055}
5056extern "C" {
5057    pub fn av_dict_set_int(
5058        pm: *mut *mut AVDictionary,
5059        key: *const ::std::os::raw::c_char,
5060        value: i64,
5061        flags: ::std::os::raw::c_int,
5062    ) -> ::std::os::raw::c_int;
5063}
5064extern "C" {
5065    pub fn av_dict_parse_string(
5066        pm: *mut *mut AVDictionary,
5067        str: *const ::std::os::raw::c_char,
5068        key_val_sep: *const ::std::os::raw::c_char,
5069        pairs_sep: *const ::std::os::raw::c_char,
5070        flags: ::std::os::raw::c_int,
5071    ) -> ::std::os::raw::c_int;
5072}
5073extern "C" {
5074    pub fn av_dict_copy(
5075        dst: *mut *mut AVDictionary,
5076        src: *const AVDictionary,
5077        flags: ::std::os::raw::c_int,
5078    ) -> ::std::os::raw::c_int;
5079}
5080extern "C" {
5081    pub fn av_dict_free(m: *mut *mut AVDictionary);
5082}
5083extern "C" {
5084    pub fn av_dict_get_string(
5085        m: *const AVDictionary,
5086        buffer: *mut *mut ::std::os::raw::c_char,
5087        key_val_sep: ::std::os::raw::c_char,
5088        pairs_sep: ::std::os::raw::c_char,
5089    ) -> ::std::os::raw::c_int;
5090}
5091pub const AVFrameSideDataType_AV_FRAME_DATA_PANSCAN: AVFrameSideDataType = 0;
5092pub const AVFrameSideDataType_AV_FRAME_DATA_A53_CC: AVFrameSideDataType = 1;
5093pub const AVFrameSideDataType_AV_FRAME_DATA_STEREO3D: AVFrameSideDataType = 2;
5094pub const AVFrameSideDataType_AV_FRAME_DATA_MATRIXENCODING: AVFrameSideDataType = 3;
5095pub const AVFrameSideDataType_AV_FRAME_DATA_DOWNMIX_INFO: AVFrameSideDataType = 4;
5096pub const AVFrameSideDataType_AV_FRAME_DATA_REPLAYGAIN: AVFrameSideDataType = 5;
5097pub const AVFrameSideDataType_AV_FRAME_DATA_DISPLAYMATRIX: AVFrameSideDataType = 6;
5098pub const AVFrameSideDataType_AV_FRAME_DATA_AFD: AVFrameSideDataType = 7;
5099pub const AVFrameSideDataType_AV_FRAME_DATA_MOTION_VECTORS: AVFrameSideDataType = 8;
5100pub const AVFrameSideDataType_AV_FRAME_DATA_SKIP_SAMPLES: AVFrameSideDataType = 9;
5101pub const AVFrameSideDataType_AV_FRAME_DATA_AUDIO_SERVICE_TYPE: AVFrameSideDataType = 10;
5102pub const AVFrameSideDataType_AV_FRAME_DATA_MASTERING_DISPLAY_METADATA: AVFrameSideDataType = 11;
5103pub const AVFrameSideDataType_AV_FRAME_DATA_GOP_TIMECODE: AVFrameSideDataType = 12;
5104pub const AVFrameSideDataType_AV_FRAME_DATA_SPHERICAL: AVFrameSideDataType = 13;
5105pub const AVFrameSideDataType_AV_FRAME_DATA_CONTENT_LIGHT_LEVEL: AVFrameSideDataType = 14;
5106pub const AVFrameSideDataType_AV_FRAME_DATA_ICC_PROFILE: AVFrameSideDataType = 15;
5107pub const AVFrameSideDataType_AV_FRAME_DATA_QP_TABLE_PROPERTIES: AVFrameSideDataType = 16;
5108pub const AVFrameSideDataType_AV_FRAME_DATA_QP_TABLE_DATA: AVFrameSideDataType = 17;
5109pub const AVFrameSideDataType_AV_FRAME_DATA_S12M_TIMECODE: AVFrameSideDataType = 18;
5110pub type AVFrameSideDataType = u32;
5111pub const AVActiveFormatDescription_AV_AFD_SAME: AVActiveFormatDescription = 8;
5112pub const AVActiveFormatDescription_AV_AFD_4_3: AVActiveFormatDescription = 9;
5113pub const AVActiveFormatDescription_AV_AFD_16_9: AVActiveFormatDescription = 10;
5114pub const AVActiveFormatDescription_AV_AFD_14_9: AVActiveFormatDescription = 11;
5115pub const AVActiveFormatDescription_AV_AFD_4_3_SP_14_9: AVActiveFormatDescription = 13;
5116pub const AVActiveFormatDescription_AV_AFD_16_9_SP_14_9: AVActiveFormatDescription = 14;
5117pub const AVActiveFormatDescription_AV_AFD_SP_4_3: AVActiveFormatDescription = 15;
5118pub type AVActiveFormatDescription = u32;
5119#[repr(C)]
5120#[derive(Debug, Copy, Clone)]
5121pub struct AVFrameSideData {
5122    pub type_: AVFrameSideDataType,
5123    pub data: *mut u8,
5124    pub size: ::std::os::raw::c_int,
5125    pub metadata: *mut AVDictionary,
5126    pub buf: *mut AVBufferRef,
5127}
5128#[repr(C)]
5129#[derive(Debug, Copy, Clone)]
5130pub struct AVFrame {
5131    pub data: [*mut u8; 8usize],
5132    pub linesize: [::std::os::raw::c_int; 8usize],
5133    pub extended_data: *mut *mut u8,
5134    pub width: ::std::os::raw::c_int,
5135    pub height: ::std::os::raw::c_int,
5136    pub nb_samples: ::std::os::raw::c_int,
5137    pub format: ::std::os::raw::c_int,
5138    pub key_frame: ::std::os::raw::c_int,
5139    pub pict_type: AVPictureType,
5140    pub sample_aspect_ratio: AVRational,
5141    pub pts: i64,
5142    pub pkt_pts: i64,
5143    pub pkt_dts: i64,
5144    pub coded_picture_number: ::std::os::raw::c_int,
5145    pub display_picture_number: ::std::os::raw::c_int,
5146    pub quality: ::std::os::raw::c_int,
5147    pub opaque: *mut ::std::os::raw::c_void,
5148    pub error: [u64; 8usize],
5149    pub repeat_pict: ::std::os::raw::c_int,
5150    pub interlaced_frame: ::std::os::raw::c_int,
5151    pub top_field_first: ::std::os::raw::c_int,
5152    pub palette_has_changed: ::std::os::raw::c_int,
5153    pub reordered_opaque: i64,
5154    pub sample_rate: ::std::os::raw::c_int,
5155    pub channel_layout: u64,
5156    pub buf: [*mut AVBufferRef; 8usize],
5157    pub extended_buf: *mut *mut AVBufferRef,
5158    pub nb_extended_buf: ::std::os::raw::c_int,
5159    pub side_data: *mut *mut AVFrameSideData,
5160    pub nb_side_data: ::std::os::raw::c_int,
5161    pub flags: ::std::os::raw::c_int,
5162    pub color_range: AVColorRange,
5163    pub color_primaries: AVColorPrimaries,
5164    pub color_trc: AVColorTransferCharacteristic,
5165    pub colorspace: AVColorSpace,
5166    pub chroma_location: AVChromaLocation,
5167    pub best_effort_timestamp: i64,
5168    pub pkt_pos: i64,
5169    pub pkt_duration: i64,
5170    pub metadata: *mut AVDictionary,
5171    pub decode_error_flags: ::std::os::raw::c_int,
5172    pub channels: ::std::os::raw::c_int,
5173    pub pkt_size: ::std::os::raw::c_int,
5174    pub qscale_table: *mut i8,
5175    pub qstride: ::std::os::raw::c_int,
5176    pub qscale_type: ::std::os::raw::c_int,
5177    pub qp_table_buf: *mut AVBufferRef,
5178    pub hw_frames_ctx: *mut AVBufferRef,
5179    pub opaque_ref: *mut AVBufferRef,
5180    pub crop_top: usize,
5181    pub crop_bottom: usize,
5182    pub crop_left: usize,
5183    pub crop_right: usize,
5184    pub private_ref: *mut AVBufferRef,
5185}
5186extern "C" {
5187    pub fn av_frame_get_best_effort_timestamp(frame: *const AVFrame) -> i64;
5188}
5189extern "C" {
5190    pub fn av_frame_set_best_effort_timestamp(frame: *mut AVFrame, val: i64);
5191}
5192extern "C" {
5193    pub fn av_frame_get_pkt_duration(frame: *const AVFrame) -> i64;
5194}
5195extern "C" {
5196    pub fn av_frame_set_pkt_duration(frame: *mut AVFrame, val: i64);
5197}
5198extern "C" {
5199    pub fn av_frame_get_pkt_pos(frame: *const AVFrame) -> i64;
5200}
5201extern "C" {
5202    pub fn av_frame_set_pkt_pos(frame: *mut AVFrame, val: i64);
5203}
5204extern "C" {
5205    pub fn av_frame_get_channel_layout(frame: *const AVFrame) -> i64;
5206}
5207extern "C" {
5208    pub fn av_frame_set_channel_layout(frame: *mut AVFrame, val: i64);
5209}
5210extern "C" {
5211    pub fn av_frame_get_channels(frame: *const AVFrame) -> ::std::os::raw::c_int;
5212}
5213extern "C" {
5214    pub fn av_frame_set_channels(frame: *mut AVFrame, val: ::std::os::raw::c_int);
5215}
5216extern "C" {
5217    pub fn av_frame_get_sample_rate(frame: *const AVFrame) -> ::std::os::raw::c_int;
5218}
5219extern "C" {
5220    pub fn av_frame_set_sample_rate(frame: *mut AVFrame, val: ::std::os::raw::c_int);
5221}
5222extern "C" {
5223    pub fn av_frame_get_metadata(frame: *const AVFrame) -> *mut AVDictionary;
5224}
5225extern "C" {
5226    pub fn av_frame_set_metadata(frame: *mut AVFrame, val: *mut AVDictionary);
5227}
5228extern "C" {
5229    pub fn av_frame_get_decode_error_flags(frame: *const AVFrame) -> ::std::os::raw::c_int;
5230}
5231extern "C" {
5232    pub fn av_frame_set_decode_error_flags(frame: *mut AVFrame, val: ::std::os::raw::c_int);
5233}
5234extern "C" {
5235    pub fn av_frame_get_pkt_size(frame: *const AVFrame) -> ::std::os::raw::c_int;
5236}
5237extern "C" {
5238    pub fn av_frame_set_pkt_size(frame: *mut AVFrame, val: ::std::os::raw::c_int);
5239}
5240extern "C" {
5241    pub fn av_frame_get_qp_table(
5242        f: *mut AVFrame,
5243        stride: *mut ::std::os::raw::c_int,
5244        type_: *mut ::std::os::raw::c_int,
5245    ) -> *mut i8;
5246}
5247extern "C" {
5248    pub fn av_frame_set_qp_table(
5249        f: *mut AVFrame,
5250        buf: *mut AVBufferRef,
5251        stride: ::std::os::raw::c_int,
5252        type_: ::std::os::raw::c_int,
5253    ) -> ::std::os::raw::c_int;
5254}
5255extern "C" {
5256    pub fn av_frame_get_colorspace(frame: *const AVFrame) -> AVColorSpace;
5257}
5258extern "C" {
5259    pub fn av_frame_set_colorspace(frame: *mut AVFrame, val: AVColorSpace);
5260}
5261extern "C" {
5262    pub fn av_frame_get_color_range(frame: *const AVFrame) -> AVColorRange;
5263}
5264extern "C" {
5265    pub fn av_frame_set_color_range(frame: *mut AVFrame, val: AVColorRange);
5266}
5267extern "C" {
5268    pub fn av_get_colorspace_name(val: AVColorSpace) -> *const ::std::os::raw::c_char;
5269}
5270extern "C" {
5271    pub fn av_frame_alloc() -> *mut AVFrame;
5272}
5273extern "C" {
5274    pub fn av_frame_free(frame: *mut *mut AVFrame);
5275}
5276extern "C" {
5277    pub fn av_frame_ref(dst: *mut AVFrame, src: *const AVFrame) -> ::std::os::raw::c_int;
5278}
5279extern "C" {
5280    pub fn av_frame_clone(src: *const AVFrame) -> *mut AVFrame;
5281}
5282extern "C" {
5283    pub fn av_frame_unref(frame: *mut AVFrame);
5284}
5285extern "C" {
5286    pub fn av_frame_move_ref(dst: *mut AVFrame, src: *mut AVFrame);
5287}
5288extern "C" {
5289    pub fn av_frame_get_buffer(
5290        frame: *mut AVFrame,
5291        align: ::std::os::raw::c_int,
5292    ) -> ::std::os::raw::c_int;
5293}
5294extern "C" {
5295    pub fn av_frame_is_writable(frame: *mut AVFrame) -> ::std::os::raw::c_int;
5296}
5297extern "C" {
5298    pub fn av_frame_make_writable(frame: *mut AVFrame) -> ::std::os::raw::c_int;
5299}
5300extern "C" {
5301    pub fn av_frame_copy(dst: *mut AVFrame, src: *const AVFrame) -> ::std::os::raw::c_int;
5302}
5303extern "C" {
5304    pub fn av_frame_copy_props(dst: *mut AVFrame, src: *const AVFrame) -> ::std::os::raw::c_int;
5305}
5306extern "C" {
5307    pub fn av_frame_get_plane_buffer(
5308        frame: *mut AVFrame,
5309        plane: ::std::os::raw::c_int,
5310    ) -> *mut AVBufferRef;
5311}
5312extern "C" {
5313    pub fn av_frame_new_side_data(
5314        frame: *mut AVFrame,
5315        type_: AVFrameSideDataType,
5316        size: ::std::os::raw::c_int,
5317    ) -> *mut AVFrameSideData;
5318}
5319extern "C" {
5320    pub fn av_frame_new_side_data_from_buf(
5321        frame: *mut AVFrame,
5322        type_: AVFrameSideDataType,
5323        buf: *mut AVBufferRef,
5324    ) -> *mut AVFrameSideData;
5325}
5326extern "C" {
5327    pub fn av_frame_get_side_data(
5328        frame: *const AVFrame,
5329        type_: AVFrameSideDataType,
5330    ) -> *mut AVFrameSideData;
5331}
5332extern "C" {
5333    pub fn av_frame_remove_side_data(frame: *mut AVFrame, type_: AVFrameSideDataType);
5334}
5335pub const AV_FRAME_CROP_UNALIGNED: _bindgen_ty_2 = 1;
5336pub type _bindgen_ty_2 = u32;
5337extern "C" {
5338    pub fn av_frame_apply_cropping(
5339        frame: *mut AVFrame,
5340        flags: ::std::os::raw::c_int,
5341    ) -> ::std::os::raw::c_int;
5342}
5343extern "C" {
5344    pub fn av_frame_side_data_name(type_: AVFrameSideDataType) -> *const ::std::os::raw::c_char;
5345}
5346pub const AVHWDeviceType_AV_HWDEVICE_TYPE_NONE: AVHWDeviceType = 0;
5347pub const AVHWDeviceType_AV_HWDEVICE_TYPE_VDPAU: AVHWDeviceType = 1;
5348pub const AVHWDeviceType_AV_HWDEVICE_TYPE_CUDA: AVHWDeviceType = 2;
5349pub const AVHWDeviceType_AV_HWDEVICE_TYPE_VAAPI: AVHWDeviceType = 3;
5350pub const AVHWDeviceType_AV_HWDEVICE_TYPE_DXVA2: AVHWDeviceType = 4;
5351pub const AVHWDeviceType_AV_HWDEVICE_TYPE_QSV: AVHWDeviceType = 5;
5352pub const AVHWDeviceType_AV_HWDEVICE_TYPE_VIDEOTOOLBOX: AVHWDeviceType = 6;
5353pub const AVHWDeviceType_AV_HWDEVICE_TYPE_D3D11VA: AVHWDeviceType = 7;
5354pub const AVHWDeviceType_AV_HWDEVICE_TYPE_DRM: AVHWDeviceType = 8;
5355pub const AVHWDeviceType_AV_HWDEVICE_TYPE_OPENCL: AVHWDeviceType = 9;
5356pub const AVHWDeviceType_AV_HWDEVICE_TYPE_MEDIACODEC: AVHWDeviceType = 10;
5357pub type AVHWDeviceType = u32;
5358#[repr(C)]
5359#[derive(Debug, Copy, Clone)]
5360pub struct AVHWDeviceInternal {
5361    _unused: [u8; 0],
5362}
5363#[repr(C)]
5364#[derive(Debug, Copy, Clone)]
5365pub struct AVHWDeviceContext {
5366    pub av_class: *const AVClass,
5367    pub internal: *mut AVHWDeviceInternal,
5368    pub type_: AVHWDeviceType,
5369    pub hwctx: *mut ::std::os::raw::c_void,
5370    pub free: ::std::option::Option<unsafe extern "C" fn(ctx: *mut AVHWDeviceContext)>,
5371    pub user_opaque: *mut ::std::os::raw::c_void,
5372}
5373#[repr(C)]
5374#[derive(Debug, Copy, Clone)]
5375pub struct AVHWFramesInternal {
5376    _unused: [u8; 0],
5377}
5378#[repr(C)]
5379#[derive(Debug, Copy, Clone)]
5380pub struct AVHWFramesContext {
5381    pub av_class: *const AVClass,
5382    pub internal: *mut AVHWFramesInternal,
5383    pub device_ref: *mut AVBufferRef,
5384    pub device_ctx: *mut AVHWDeviceContext,
5385    pub hwctx: *mut ::std::os::raw::c_void,
5386    pub free: ::std::option::Option<unsafe extern "C" fn(ctx: *mut AVHWFramesContext)>,
5387    pub user_opaque: *mut ::std::os::raw::c_void,
5388    pub pool: *mut AVBufferPool,
5389    pub initial_pool_size: ::std::os::raw::c_int,
5390    pub format: AVPixelFormat,
5391    pub sw_format: AVPixelFormat,
5392    pub width: ::std::os::raw::c_int,
5393    pub height: ::std::os::raw::c_int,
5394}
5395extern "C" {
5396    pub fn av_hwdevice_find_type_by_name(name: *const ::std::os::raw::c_char) -> AVHWDeviceType;
5397}
5398extern "C" {
5399    pub fn av_hwdevice_get_type_name(type_: AVHWDeviceType) -> *const ::std::os::raw::c_char;
5400}
5401extern "C" {
5402    pub fn av_hwdevice_iterate_types(prev: AVHWDeviceType) -> AVHWDeviceType;
5403}
5404extern "C" {
5405    pub fn av_hwdevice_ctx_alloc(type_: AVHWDeviceType) -> *mut AVBufferRef;
5406}
5407extern "C" {
5408    pub fn av_hwdevice_ctx_init(ref_: *mut AVBufferRef) -> ::std::os::raw::c_int;
5409}
5410extern "C" {
5411    pub fn av_hwdevice_ctx_create(
5412        device_ctx: *mut *mut AVBufferRef,
5413        type_: AVHWDeviceType,
5414        device: *const ::std::os::raw::c_char,
5415        opts: *mut AVDictionary,
5416        flags: ::std::os::raw::c_int,
5417    ) -> ::std::os::raw::c_int;
5418}
5419extern "C" {
5420    pub fn av_hwdevice_ctx_create_derived(
5421        dst_ctx: *mut *mut AVBufferRef,
5422        type_: AVHWDeviceType,
5423        src_ctx: *mut AVBufferRef,
5424        flags: ::std::os::raw::c_int,
5425    ) -> ::std::os::raw::c_int;
5426}
5427extern "C" {
5428    pub fn av_hwframe_ctx_alloc(device_ctx: *mut AVBufferRef) -> *mut AVBufferRef;
5429}
5430extern "C" {
5431    pub fn av_hwframe_ctx_init(ref_: *mut AVBufferRef) -> ::std::os::raw::c_int;
5432}
5433extern "C" {
5434    pub fn av_hwframe_get_buffer(
5435        hwframe_ctx: *mut AVBufferRef,
5436        frame: *mut AVFrame,
5437        flags: ::std::os::raw::c_int,
5438    ) -> ::std::os::raw::c_int;
5439}
5440extern "C" {
5441    pub fn av_hwframe_transfer_data(
5442        dst: *mut AVFrame,
5443        src: *const AVFrame,
5444        flags: ::std::os::raw::c_int,
5445    ) -> ::std::os::raw::c_int;
5446}
5447pub const AVHWFrameTransferDirection_AV_HWFRAME_TRANSFER_DIRECTION_FROM:
5448    AVHWFrameTransferDirection = 0;
5449pub const AVHWFrameTransferDirection_AV_HWFRAME_TRANSFER_DIRECTION_TO: AVHWFrameTransferDirection =
5450    1;
5451pub type AVHWFrameTransferDirection = u32;
5452extern "C" {
5453    pub fn av_hwframe_transfer_get_formats(
5454        hwframe_ctx: *mut AVBufferRef,
5455        dir: AVHWFrameTransferDirection,
5456        formats: *mut *mut AVPixelFormat,
5457        flags: ::std::os::raw::c_int,
5458    ) -> ::std::os::raw::c_int;
5459}
5460#[repr(C)]
5461#[derive(Debug, Copy, Clone)]
5462pub struct AVHWFramesConstraints {
5463    pub valid_hw_formats: *mut AVPixelFormat,
5464    pub valid_sw_formats: *mut AVPixelFormat,
5465    pub min_width: ::std::os::raw::c_int,
5466    pub min_height: ::std::os::raw::c_int,
5467    pub max_width: ::std::os::raw::c_int,
5468    pub max_height: ::std::os::raw::c_int,
5469}
5470extern "C" {
5471    pub fn av_hwdevice_hwconfig_alloc(device_ctx: *mut AVBufferRef) -> *mut ::std::os::raw::c_void;
5472}
5473extern "C" {
5474    pub fn av_hwdevice_get_hwframe_constraints(
5475        ref_: *mut AVBufferRef,
5476        hwconfig: *const ::std::os::raw::c_void,
5477    ) -> *mut AVHWFramesConstraints;
5478}
5479extern "C" {
5480    pub fn av_hwframe_constraints_free(constraints: *mut *mut AVHWFramesConstraints);
5481}
5482pub const AV_HWFRAME_MAP_READ: _bindgen_ty_3 = 1;
5483pub const AV_HWFRAME_MAP_WRITE: _bindgen_ty_3 = 2;
5484pub const AV_HWFRAME_MAP_OVERWRITE: _bindgen_ty_3 = 4;
5485pub const AV_HWFRAME_MAP_DIRECT: _bindgen_ty_3 = 8;
5486pub type _bindgen_ty_3 = u32;
5487extern "C" {
5488    pub fn av_hwframe_map(
5489        dst: *mut AVFrame,
5490        src: *const AVFrame,
5491        flags: ::std::os::raw::c_int,
5492    ) -> ::std::os::raw::c_int;
5493}
5494extern "C" {
5495    pub fn av_hwframe_ctx_create_derived(
5496        derived_frame_ctx: *mut *mut AVBufferRef,
5497        format: AVPixelFormat,
5498        derived_device_ctx: *mut AVBufferRef,
5499        source_frame_ctx: *mut AVBufferRef,
5500        flags: ::std::os::raw::c_int,
5501    ) -> ::std::os::raw::c_int;
5502}
5503pub const AVCodecID_AV_CODEC_ID_NONE: AVCodecID = 0;
5504pub const AVCodecID_AV_CODEC_ID_MPEG1VIDEO: AVCodecID = 1;
5505#[doc = "< preferred ID for MPEG-1/2 video decoding"]
5506pub const AVCodecID_AV_CODEC_ID_MPEG2VIDEO: AVCodecID = 2;
5507pub const AVCodecID_AV_CODEC_ID_H261: AVCodecID = 3;
5508pub const AVCodecID_AV_CODEC_ID_H263: AVCodecID = 4;
5509pub const AVCodecID_AV_CODEC_ID_RV10: AVCodecID = 5;
5510pub const AVCodecID_AV_CODEC_ID_RV20: AVCodecID = 6;
5511pub const AVCodecID_AV_CODEC_ID_MJPEG: AVCodecID = 7;
5512pub const AVCodecID_AV_CODEC_ID_MJPEGB: AVCodecID = 8;
5513pub const AVCodecID_AV_CODEC_ID_LJPEG: AVCodecID = 9;
5514pub const AVCodecID_AV_CODEC_ID_SP5X: AVCodecID = 10;
5515pub const AVCodecID_AV_CODEC_ID_JPEGLS: AVCodecID = 11;
5516pub const AVCodecID_AV_CODEC_ID_MPEG4: AVCodecID = 12;
5517pub const AVCodecID_AV_CODEC_ID_RAWVIDEO: AVCodecID = 13;
5518pub const AVCodecID_AV_CODEC_ID_MSMPEG4V1: AVCodecID = 14;
5519pub const AVCodecID_AV_CODEC_ID_MSMPEG4V2: AVCodecID = 15;
5520pub const AVCodecID_AV_CODEC_ID_MSMPEG4V3: AVCodecID = 16;
5521pub const AVCodecID_AV_CODEC_ID_WMV1: AVCodecID = 17;
5522pub const AVCodecID_AV_CODEC_ID_WMV2: AVCodecID = 18;
5523pub const AVCodecID_AV_CODEC_ID_H263P: AVCodecID = 19;
5524pub const AVCodecID_AV_CODEC_ID_H263I: AVCodecID = 20;
5525pub const AVCodecID_AV_CODEC_ID_FLV1: AVCodecID = 21;
5526pub const AVCodecID_AV_CODEC_ID_SVQ1: AVCodecID = 22;
5527pub const AVCodecID_AV_CODEC_ID_SVQ3: AVCodecID = 23;
5528pub const AVCodecID_AV_CODEC_ID_DVVIDEO: AVCodecID = 24;
5529pub const AVCodecID_AV_CODEC_ID_HUFFYUV: AVCodecID = 25;
5530pub const AVCodecID_AV_CODEC_ID_CYUV: AVCodecID = 26;
5531pub const AVCodecID_AV_CODEC_ID_H264: AVCodecID = 27;
5532pub const AVCodecID_AV_CODEC_ID_INDEO3: AVCodecID = 28;
5533pub const AVCodecID_AV_CODEC_ID_VP3: AVCodecID = 29;
5534pub const AVCodecID_AV_CODEC_ID_THEORA: AVCodecID = 30;
5535pub const AVCodecID_AV_CODEC_ID_ASV1: AVCodecID = 31;
5536pub const AVCodecID_AV_CODEC_ID_ASV2: AVCodecID = 32;
5537pub const AVCodecID_AV_CODEC_ID_FFV1: AVCodecID = 33;
5538pub const AVCodecID_AV_CODEC_ID_4XM: AVCodecID = 34;
5539pub const AVCodecID_AV_CODEC_ID_VCR1: AVCodecID = 35;
5540pub const AVCodecID_AV_CODEC_ID_CLJR: AVCodecID = 36;
5541pub const AVCodecID_AV_CODEC_ID_MDEC: AVCodecID = 37;
5542pub const AVCodecID_AV_CODEC_ID_ROQ: AVCodecID = 38;
5543pub const AVCodecID_AV_CODEC_ID_INTERPLAY_VIDEO: AVCodecID = 39;
5544pub const AVCodecID_AV_CODEC_ID_XAN_WC3: AVCodecID = 40;
5545pub const AVCodecID_AV_CODEC_ID_XAN_WC4: AVCodecID = 41;
5546pub const AVCodecID_AV_CODEC_ID_RPZA: AVCodecID = 42;
5547pub const AVCodecID_AV_CODEC_ID_CINEPAK: AVCodecID = 43;
5548pub const AVCodecID_AV_CODEC_ID_WS_VQA: AVCodecID = 44;
5549pub const AVCodecID_AV_CODEC_ID_MSRLE: AVCodecID = 45;
5550pub const AVCodecID_AV_CODEC_ID_MSVIDEO1: AVCodecID = 46;
5551pub const AVCodecID_AV_CODEC_ID_IDCIN: AVCodecID = 47;
5552pub const AVCodecID_AV_CODEC_ID_8BPS: AVCodecID = 48;
5553pub const AVCodecID_AV_CODEC_ID_SMC: AVCodecID = 49;
5554pub const AVCodecID_AV_CODEC_ID_FLIC: AVCodecID = 50;
5555pub const AVCodecID_AV_CODEC_ID_TRUEMOTION1: AVCodecID = 51;
5556pub const AVCodecID_AV_CODEC_ID_VMDVIDEO: AVCodecID = 52;
5557pub const AVCodecID_AV_CODEC_ID_MSZH: AVCodecID = 53;
5558pub const AVCodecID_AV_CODEC_ID_ZLIB: AVCodecID = 54;
5559pub const AVCodecID_AV_CODEC_ID_QTRLE: AVCodecID = 55;
5560pub const AVCodecID_AV_CODEC_ID_TSCC: AVCodecID = 56;
5561pub const AVCodecID_AV_CODEC_ID_ULTI: AVCodecID = 57;
5562pub const AVCodecID_AV_CODEC_ID_QDRAW: AVCodecID = 58;
5563pub const AVCodecID_AV_CODEC_ID_VIXL: AVCodecID = 59;
5564pub const AVCodecID_AV_CODEC_ID_QPEG: AVCodecID = 60;
5565pub const AVCodecID_AV_CODEC_ID_PNG: AVCodecID = 61;
5566pub const AVCodecID_AV_CODEC_ID_PPM: AVCodecID = 62;
5567pub const AVCodecID_AV_CODEC_ID_PBM: AVCodecID = 63;
5568pub const AVCodecID_AV_CODEC_ID_PGM: AVCodecID = 64;
5569pub const AVCodecID_AV_CODEC_ID_PGMYUV: AVCodecID = 65;
5570pub const AVCodecID_AV_CODEC_ID_PAM: AVCodecID = 66;
5571pub const AVCodecID_AV_CODEC_ID_FFVHUFF: AVCodecID = 67;
5572pub const AVCodecID_AV_CODEC_ID_RV30: AVCodecID = 68;
5573pub const AVCodecID_AV_CODEC_ID_RV40: AVCodecID = 69;
5574pub const AVCodecID_AV_CODEC_ID_VC1: AVCodecID = 70;
5575pub const AVCodecID_AV_CODEC_ID_WMV3: AVCodecID = 71;
5576pub const AVCodecID_AV_CODEC_ID_LOCO: AVCodecID = 72;
5577pub const AVCodecID_AV_CODEC_ID_WNV1: AVCodecID = 73;
5578pub const AVCodecID_AV_CODEC_ID_AASC: AVCodecID = 74;
5579pub const AVCodecID_AV_CODEC_ID_INDEO2: AVCodecID = 75;
5580pub const AVCodecID_AV_CODEC_ID_FRAPS: AVCodecID = 76;
5581pub const AVCodecID_AV_CODEC_ID_TRUEMOTION2: AVCodecID = 77;
5582pub const AVCodecID_AV_CODEC_ID_BMP: AVCodecID = 78;
5583pub const AVCodecID_AV_CODEC_ID_CSCD: AVCodecID = 79;
5584pub const AVCodecID_AV_CODEC_ID_MMVIDEO: AVCodecID = 80;
5585pub const AVCodecID_AV_CODEC_ID_ZMBV: AVCodecID = 81;
5586pub const AVCodecID_AV_CODEC_ID_AVS: AVCodecID = 82;
5587pub const AVCodecID_AV_CODEC_ID_SMACKVIDEO: AVCodecID = 83;
5588pub const AVCodecID_AV_CODEC_ID_NUV: AVCodecID = 84;
5589pub const AVCodecID_AV_CODEC_ID_KMVC: AVCodecID = 85;
5590pub const AVCodecID_AV_CODEC_ID_FLASHSV: AVCodecID = 86;
5591pub const AVCodecID_AV_CODEC_ID_CAVS: AVCodecID = 87;
5592pub const AVCodecID_AV_CODEC_ID_JPEG2000: AVCodecID = 88;
5593pub const AVCodecID_AV_CODEC_ID_VMNC: AVCodecID = 89;
5594pub const AVCodecID_AV_CODEC_ID_VP5: AVCodecID = 90;
5595pub const AVCodecID_AV_CODEC_ID_VP6: AVCodecID = 91;
5596pub const AVCodecID_AV_CODEC_ID_VP6F: AVCodecID = 92;
5597pub const AVCodecID_AV_CODEC_ID_TARGA: AVCodecID = 93;
5598pub const AVCodecID_AV_CODEC_ID_DSICINVIDEO: AVCodecID = 94;
5599pub const AVCodecID_AV_CODEC_ID_TIERTEXSEQVIDEO: AVCodecID = 95;
5600pub const AVCodecID_AV_CODEC_ID_TIFF: AVCodecID = 96;
5601pub const AVCodecID_AV_CODEC_ID_GIF: AVCodecID = 97;
5602pub const AVCodecID_AV_CODEC_ID_DXA: AVCodecID = 98;
5603pub const AVCodecID_AV_CODEC_ID_DNXHD: AVCodecID = 99;
5604pub const AVCodecID_AV_CODEC_ID_THP: AVCodecID = 100;
5605pub const AVCodecID_AV_CODEC_ID_SGI: AVCodecID = 101;
5606pub const AVCodecID_AV_CODEC_ID_C93: AVCodecID = 102;
5607pub const AVCodecID_AV_CODEC_ID_BETHSOFTVID: AVCodecID = 103;
5608pub const AVCodecID_AV_CODEC_ID_PTX: AVCodecID = 104;
5609pub const AVCodecID_AV_CODEC_ID_TXD: AVCodecID = 105;
5610pub const AVCodecID_AV_CODEC_ID_VP6A: AVCodecID = 106;
5611pub const AVCodecID_AV_CODEC_ID_AMV: AVCodecID = 107;
5612pub const AVCodecID_AV_CODEC_ID_VB: AVCodecID = 108;
5613pub const AVCodecID_AV_CODEC_ID_PCX: AVCodecID = 109;
5614pub const AVCodecID_AV_CODEC_ID_SUNRAST: AVCodecID = 110;
5615pub const AVCodecID_AV_CODEC_ID_INDEO4: AVCodecID = 111;
5616pub const AVCodecID_AV_CODEC_ID_INDEO5: AVCodecID = 112;
5617pub const AVCodecID_AV_CODEC_ID_MIMIC: AVCodecID = 113;
5618pub const AVCodecID_AV_CODEC_ID_RL2: AVCodecID = 114;
5619pub const AVCodecID_AV_CODEC_ID_ESCAPE124: AVCodecID = 115;
5620pub const AVCodecID_AV_CODEC_ID_DIRAC: AVCodecID = 116;
5621pub const AVCodecID_AV_CODEC_ID_BFI: AVCodecID = 117;
5622pub const AVCodecID_AV_CODEC_ID_CMV: AVCodecID = 118;
5623pub const AVCodecID_AV_CODEC_ID_MOTIONPIXELS: AVCodecID = 119;
5624pub const AVCodecID_AV_CODEC_ID_TGV: AVCodecID = 120;
5625pub const AVCodecID_AV_CODEC_ID_TGQ: AVCodecID = 121;
5626pub const AVCodecID_AV_CODEC_ID_TQI: AVCodecID = 122;
5627pub const AVCodecID_AV_CODEC_ID_AURA: AVCodecID = 123;
5628pub const AVCodecID_AV_CODEC_ID_AURA2: AVCodecID = 124;
5629pub const AVCodecID_AV_CODEC_ID_V210X: AVCodecID = 125;
5630pub const AVCodecID_AV_CODEC_ID_TMV: AVCodecID = 126;
5631pub const AVCodecID_AV_CODEC_ID_V210: AVCodecID = 127;
5632pub const AVCodecID_AV_CODEC_ID_DPX: AVCodecID = 128;
5633pub const AVCodecID_AV_CODEC_ID_MAD: AVCodecID = 129;
5634pub const AVCodecID_AV_CODEC_ID_FRWU: AVCodecID = 130;
5635pub const AVCodecID_AV_CODEC_ID_FLASHSV2: AVCodecID = 131;
5636pub const AVCodecID_AV_CODEC_ID_CDGRAPHICS: AVCodecID = 132;
5637pub const AVCodecID_AV_CODEC_ID_R210: AVCodecID = 133;
5638pub const AVCodecID_AV_CODEC_ID_ANM: AVCodecID = 134;
5639pub const AVCodecID_AV_CODEC_ID_BINKVIDEO: AVCodecID = 135;
5640pub const AVCodecID_AV_CODEC_ID_IFF_ILBM: AVCodecID = 136;
5641pub const AVCodecID_AV_CODEC_ID_KGV1: AVCodecID = 137;
5642pub const AVCodecID_AV_CODEC_ID_YOP: AVCodecID = 138;
5643pub const AVCodecID_AV_CODEC_ID_VP8: AVCodecID = 139;
5644pub const AVCodecID_AV_CODEC_ID_PICTOR: AVCodecID = 140;
5645pub const AVCodecID_AV_CODEC_ID_ANSI: AVCodecID = 141;
5646pub const AVCodecID_AV_CODEC_ID_A64_MULTI: AVCodecID = 142;
5647pub const AVCodecID_AV_CODEC_ID_A64_MULTI5: AVCodecID = 143;
5648pub const AVCodecID_AV_CODEC_ID_R10K: AVCodecID = 144;
5649pub const AVCodecID_AV_CODEC_ID_MXPEG: AVCodecID = 145;
5650pub const AVCodecID_AV_CODEC_ID_LAGARITH: AVCodecID = 146;
5651pub const AVCodecID_AV_CODEC_ID_PRORES: AVCodecID = 147;
5652pub const AVCodecID_AV_CODEC_ID_JV: AVCodecID = 148;
5653pub const AVCodecID_AV_CODEC_ID_DFA: AVCodecID = 149;
5654pub const AVCodecID_AV_CODEC_ID_WMV3IMAGE: AVCodecID = 150;
5655pub const AVCodecID_AV_CODEC_ID_VC1IMAGE: AVCodecID = 151;
5656pub const AVCodecID_AV_CODEC_ID_UTVIDEO: AVCodecID = 152;
5657pub const AVCodecID_AV_CODEC_ID_BMV_VIDEO: AVCodecID = 153;
5658pub const AVCodecID_AV_CODEC_ID_VBLE: AVCodecID = 154;
5659pub const AVCodecID_AV_CODEC_ID_DXTORY: AVCodecID = 155;
5660pub const AVCodecID_AV_CODEC_ID_V410: AVCodecID = 156;
5661pub const AVCodecID_AV_CODEC_ID_XWD: AVCodecID = 157;
5662pub const AVCodecID_AV_CODEC_ID_CDXL: AVCodecID = 158;
5663pub const AVCodecID_AV_CODEC_ID_XBM: AVCodecID = 159;
5664pub const AVCodecID_AV_CODEC_ID_ZEROCODEC: AVCodecID = 160;
5665pub const AVCodecID_AV_CODEC_ID_MSS1: AVCodecID = 161;
5666pub const AVCodecID_AV_CODEC_ID_MSA1: AVCodecID = 162;
5667pub const AVCodecID_AV_CODEC_ID_TSCC2: AVCodecID = 163;
5668pub const AVCodecID_AV_CODEC_ID_MTS2: AVCodecID = 164;
5669pub const AVCodecID_AV_CODEC_ID_CLLC: AVCodecID = 165;
5670pub const AVCodecID_AV_CODEC_ID_MSS2: AVCodecID = 166;
5671pub const AVCodecID_AV_CODEC_ID_VP9: AVCodecID = 167;
5672pub const AVCodecID_AV_CODEC_ID_AIC: AVCodecID = 168;
5673pub const AVCodecID_AV_CODEC_ID_ESCAPE130: AVCodecID = 169;
5674pub const AVCodecID_AV_CODEC_ID_G2M: AVCodecID = 170;
5675pub const AVCodecID_AV_CODEC_ID_WEBP: AVCodecID = 171;
5676pub const AVCodecID_AV_CODEC_ID_HNM4_VIDEO: AVCodecID = 172;
5677pub const AVCodecID_AV_CODEC_ID_HEVC: AVCodecID = 173;
5678pub const AVCodecID_AV_CODEC_ID_FIC: AVCodecID = 174;
5679pub const AVCodecID_AV_CODEC_ID_ALIAS_PIX: AVCodecID = 175;
5680pub const AVCodecID_AV_CODEC_ID_BRENDER_PIX: AVCodecID = 176;
5681pub const AVCodecID_AV_CODEC_ID_PAF_VIDEO: AVCodecID = 177;
5682pub const AVCodecID_AV_CODEC_ID_EXR: AVCodecID = 178;
5683pub const AVCodecID_AV_CODEC_ID_VP7: AVCodecID = 179;
5684pub const AVCodecID_AV_CODEC_ID_SANM: AVCodecID = 180;
5685pub const AVCodecID_AV_CODEC_ID_SGIRLE: AVCodecID = 181;
5686pub const AVCodecID_AV_CODEC_ID_MVC1: AVCodecID = 182;
5687pub const AVCodecID_AV_CODEC_ID_MVC2: AVCodecID = 183;
5688pub const AVCodecID_AV_CODEC_ID_HQX: AVCodecID = 184;
5689pub const AVCodecID_AV_CODEC_ID_TDSC: AVCodecID = 185;
5690pub const AVCodecID_AV_CODEC_ID_HQ_HQA: AVCodecID = 186;
5691pub const AVCodecID_AV_CODEC_ID_HAP: AVCodecID = 187;
5692pub const AVCodecID_AV_CODEC_ID_DDS: AVCodecID = 188;
5693pub const AVCodecID_AV_CODEC_ID_DXV: AVCodecID = 189;
5694pub const AVCodecID_AV_CODEC_ID_SCREENPRESSO: AVCodecID = 190;
5695pub const AVCodecID_AV_CODEC_ID_RSCC: AVCodecID = 191;
5696pub const AVCodecID_AV_CODEC_ID_AVS2: AVCodecID = 192;
5697pub const AVCodecID_AV_CODEC_ID_Y41P: AVCodecID = 32768;
5698pub const AVCodecID_AV_CODEC_ID_AVRP: AVCodecID = 32769;
5699pub const AVCodecID_AV_CODEC_ID_012V: AVCodecID = 32770;
5700pub const AVCodecID_AV_CODEC_ID_AVUI: AVCodecID = 32771;
5701pub const AVCodecID_AV_CODEC_ID_AYUV: AVCodecID = 32772;
5702pub const AVCodecID_AV_CODEC_ID_TARGA_Y216: AVCodecID = 32773;
5703pub const AVCodecID_AV_CODEC_ID_V308: AVCodecID = 32774;
5704pub const AVCodecID_AV_CODEC_ID_V408: AVCodecID = 32775;
5705pub const AVCodecID_AV_CODEC_ID_YUV4: AVCodecID = 32776;
5706pub const AVCodecID_AV_CODEC_ID_AVRN: AVCodecID = 32777;
5707pub const AVCodecID_AV_CODEC_ID_CPIA: AVCodecID = 32778;
5708pub const AVCodecID_AV_CODEC_ID_XFACE: AVCodecID = 32779;
5709pub const AVCodecID_AV_CODEC_ID_SNOW: AVCodecID = 32780;
5710pub const AVCodecID_AV_CODEC_ID_SMVJPEG: AVCodecID = 32781;
5711pub const AVCodecID_AV_CODEC_ID_APNG: AVCodecID = 32782;
5712pub const AVCodecID_AV_CODEC_ID_DAALA: AVCodecID = 32783;
5713pub const AVCodecID_AV_CODEC_ID_CFHD: AVCodecID = 32784;
5714pub const AVCodecID_AV_CODEC_ID_TRUEMOTION2RT: AVCodecID = 32785;
5715pub const AVCodecID_AV_CODEC_ID_M101: AVCodecID = 32786;
5716pub const AVCodecID_AV_CODEC_ID_MAGICYUV: AVCodecID = 32787;
5717pub const AVCodecID_AV_CODEC_ID_SHEERVIDEO: AVCodecID = 32788;
5718pub const AVCodecID_AV_CODEC_ID_YLC: AVCodecID = 32789;
5719pub const AVCodecID_AV_CODEC_ID_PSD: AVCodecID = 32790;
5720pub const AVCodecID_AV_CODEC_ID_PIXLET: AVCodecID = 32791;
5721pub const AVCodecID_AV_CODEC_ID_SPEEDHQ: AVCodecID = 32792;
5722pub const AVCodecID_AV_CODEC_ID_FMVC: AVCodecID = 32793;
5723pub const AVCodecID_AV_CODEC_ID_SCPR: AVCodecID = 32794;
5724pub const AVCodecID_AV_CODEC_ID_CLEARVIDEO: AVCodecID = 32795;
5725pub const AVCodecID_AV_CODEC_ID_XPM: AVCodecID = 32796;
5726pub const AVCodecID_AV_CODEC_ID_AV1: AVCodecID = 32797;
5727pub const AVCodecID_AV_CODEC_ID_BITPACKED: AVCodecID = 32798;
5728pub const AVCodecID_AV_CODEC_ID_MSCC: AVCodecID = 32799;
5729pub const AVCodecID_AV_CODEC_ID_SRGC: AVCodecID = 32800;
5730pub const AVCodecID_AV_CODEC_ID_SVG: AVCodecID = 32801;
5731pub const AVCodecID_AV_CODEC_ID_GDV: AVCodecID = 32802;
5732pub const AVCodecID_AV_CODEC_ID_FITS: AVCodecID = 32803;
5733pub const AVCodecID_AV_CODEC_ID_IMM4: AVCodecID = 32804;
5734pub const AVCodecID_AV_CODEC_ID_PROSUMER: AVCodecID = 32805;
5735pub const AVCodecID_AV_CODEC_ID_MWSC: AVCodecID = 32806;
5736pub const AVCodecID_AV_CODEC_ID_WCMV: AVCodecID = 32807;
5737pub const AVCodecID_AV_CODEC_ID_RASC: AVCodecID = 32808;
5738#[doc = "< A dummy id pointing at the start of audio codecs"]
5739pub const AVCodecID_AV_CODEC_ID_FIRST_AUDIO: AVCodecID = 65536;
5740pub const AVCodecID_AV_CODEC_ID_PCM_S16LE: AVCodecID = 65536;
5741pub const AVCodecID_AV_CODEC_ID_PCM_S16BE: AVCodecID = 65537;
5742pub const AVCodecID_AV_CODEC_ID_PCM_U16LE: AVCodecID = 65538;
5743pub const AVCodecID_AV_CODEC_ID_PCM_U16BE: AVCodecID = 65539;
5744pub const AVCodecID_AV_CODEC_ID_PCM_S8: AVCodecID = 65540;
5745pub const AVCodecID_AV_CODEC_ID_PCM_U8: AVCodecID = 65541;
5746pub const AVCodecID_AV_CODEC_ID_PCM_MULAW: AVCodecID = 65542;
5747pub const AVCodecID_AV_CODEC_ID_PCM_ALAW: AVCodecID = 65543;
5748pub const AVCodecID_AV_CODEC_ID_PCM_S32LE: AVCodecID = 65544;
5749pub const AVCodecID_AV_CODEC_ID_PCM_S32BE: AVCodecID = 65545;
5750pub const AVCodecID_AV_CODEC_ID_PCM_U32LE: AVCodecID = 65546;
5751pub const AVCodecID_AV_CODEC_ID_PCM_U32BE: AVCodecID = 65547;
5752pub const AVCodecID_AV_CODEC_ID_PCM_S24LE: AVCodecID = 65548;
5753pub const AVCodecID_AV_CODEC_ID_PCM_S24BE: AVCodecID = 65549;
5754pub const AVCodecID_AV_CODEC_ID_PCM_U24LE: AVCodecID = 65550;
5755pub const AVCodecID_AV_CODEC_ID_PCM_U24BE: AVCodecID = 65551;
5756pub const AVCodecID_AV_CODEC_ID_PCM_S24DAUD: AVCodecID = 65552;
5757pub const AVCodecID_AV_CODEC_ID_PCM_ZORK: AVCodecID = 65553;
5758pub const AVCodecID_AV_CODEC_ID_PCM_S16LE_PLANAR: AVCodecID = 65554;
5759pub const AVCodecID_AV_CODEC_ID_PCM_DVD: AVCodecID = 65555;
5760pub const AVCodecID_AV_CODEC_ID_PCM_F32BE: AVCodecID = 65556;
5761pub const AVCodecID_AV_CODEC_ID_PCM_F32LE: AVCodecID = 65557;
5762pub const AVCodecID_AV_CODEC_ID_PCM_F64BE: AVCodecID = 65558;
5763pub const AVCodecID_AV_CODEC_ID_PCM_F64LE: AVCodecID = 65559;
5764pub const AVCodecID_AV_CODEC_ID_PCM_BLURAY: AVCodecID = 65560;
5765pub const AVCodecID_AV_CODEC_ID_PCM_LXF: AVCodecID = 65561;
5766pub const AVCodecID_AV_CODEC_ID_S302M: AVCodecID = 65562;
5767pub const AVCodecID_AV_CODEC_ID_PCM_S8_PLANAR: AVCodecID = 65563;
5768pub const AVCodecID_AV_CODEC_ID_PCM_S24LE_PLANAR: AVCodecID = 65564;
5769pub const AVCodecID_AV_CODEC_ID_PCM_S32LE_PLANAR: AVCodecID = 65565;
5770pub const AVCodecID_AV_CODEC_ID_PCM_S16BE_PLANAR: AVCodecID = 65566;
5771pub const AVCodecID_AV_CODEC_ID_PCM_S64LE: AVCodecID = 67584;
5772pub const AVCodecID_AV_CODEC_ID_PCM_S64BE: AVCodecID = 67585;
5773pub const AVCodecID_AV_CODEC_ID_PCM_F16LE: AVCodecID = 67586;
5774pub const AVCodecID_AV_CODEC_ID_PCM_F24LE: AVCodecID = 67587;
5775pub const AVCodecID_AV_CODEC_ID_PCM_VIDC: AVCodecID = 67588;
5776pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_QT: AVCodecID = 69632;
5777pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_WAV: AVCodecID = 69633;
5778pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_DK3: AVCodecID = 69634;
5779pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_DK4: AVCodecID = 69635;
5780pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_WS: AVCodecID = 69636;
5781pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_SMJPEG: AVCodecID = 69637;
5782pub const AVCodecID_AV_CODEC_ID_ADPCM_MS: AVCodecID = 69638;
5783pub const AVCodecID_AV_CODEC_ID_ADPCM_4XM: AVCodecID = 69639;
5784pub const AVCodecID_AV_CODEC_ID_ADPCM_XA: AVCodecID = 69640;
5785pub const AVCodecID_AV_CODEC_ID_ADPCM_ADX: AVCodecID = 69641;
5786pub const AVCodecID_AV_CODEC_ID_ADPCM_EA: AVCodecID = 69642;
5787pub const AVCodecID_AV_CODEC_ID_ADPCM_G726: AVCodecID = 69643;
5788pub const AVCodecID_AV_CODEC_ID_ADPCM_CT: AVCodecID = 69644;
5789pub const AVCodecID_AV_CODEC_ID_ADPCM_SWF: AVCodecID = 69645;
5790pub const AVCodecID_AV_CODEC_ID_ADPCM_YAMAHA: AVCodecID = 69646;
5791pub const AVCodecID_AV_CODEC_ID_ADPCM_SBPRO_4: AVCodecID = 69647;
5792pub const AVCodecID_AV_CODEC_ID_ADPCM_SBPRO_3: AVCodecID = 69648;
5793pub const AVCodecID_AV_CODEC_ID_ADPCM_SBPRO_2: AVCodecID = 69649;
5794pub const AVCodecID_AV_CODEC_ID_ADPCM_THP: AVCodecID = 69650;
5795pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_AMV: AVCodecID = 69651;
5796pub const AVCodecID_AV_CODEC_ID_ADPCM_EA_R1: AVCodecID = 69652;
5797pub const AVCodecID_AV_CODEC_ID_ADPCM_EA_R3: AVCodecID = 69653;
5798pub const AVCodecID_AV_CODEC_ID_ADPCM_EA_R2: AVCodecID = 69654;
5799pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_EA_SEAD: AVCodecID = 69655;
5800pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_EA_EACS: AVCodecID = 69656;
5801pub const AVCodecID_AV_CODEC_ID_ADPCM_EA_XAS: AVCodecID = 69657;
5802pub const AVCodecID_AV_CODEC_ID_ADPCM_EA_MAXIS_XA: AVCodecID = 69658;
5803pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_ISS: AVCodecID = 69659;
5804pub const AVCodecID_AV_CODEC_ID_ADPCM_G722: AVCodecID = 69660;
5805pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_APC: AVCodecID = 69661;
5806pub const AVCodecID_AV_CODEC_ID_ADPCM_VIMA: AVCodecID = 69662;
5807pub const AVCodecID_AV_CODEC_ID_ADPCM_AFC: AVCodecID = 71680;
5808pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_OKI: AVCodecID = 71681;
5809pub const AVCodecID_AV_CODEC_ID_ADPCM_DTK: AVCodecID = 71682;
5810pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_RAD: AVCodecID = 71683;
5811pub const AVCodecID_AV_CODEC_ID_ADPCM_G726LE: AVCodecID = 71684;
5812pub const AVCodecID_AV_CODEC_ID_ADPCM_THP_LE: AVCodecID = 71685;
5813pub const AVCodecID_AV_CODEC_ID_ADPCM_PSX: AVCodecID = 71686;
5814pub const AVCodecID_AV_CODEC_ID_ADPCM_AICA: AVCodecID = 71687;
5815pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_DAT4: AVCodecID = 71688;
5816pub const AVCodecID_AV_CODEC_ID_ADPCM_MTAF: AVCodecID = 71689;
5817pub const AVCodecID_AV_CODEC_ID_AMR_NB: AVCodecID = 73728;
5818pub const AVCodecID_AV_CODEC_ID_AMR_WB: AVCodecID = 73729;
5819pub const AVCodecID_AV_CODEC_ID_RA_144: AVCodecID = 77824;
5820pub const AVCodecID_AV_CODEC_ID_RA_288: AVCodecID = 77825;
5821pub const AVCodecID_AV_CODEC_ID_ROQ_DPCM: AVCodecID = 81920;
5822pub const AVCodecID_AV_CODEC_ID_INTERPLAY_DPCM: AVCodecID = 81921;
5823pub const AVCodecID_AV_CODEC_ID_XAN_DPCM: AVCodecID = 81922;
5824pub const AVCodecID_AV_CODEC_ID_SOL_DPCM: AVCodecID = 81923;
5825pub const AVCodecID_AV_CODEC_ID_SDX2_DPCM: AVCodecID = 83968;
5826pub const AVCodecID_AV_CODEC_ID_GREMLIN_DPCM: AVCodecID = 83969;
5827pub const AVCodecID_AV_CODEC_ID_MP2: AVCodecID = 86016;
5828#[doc = "< preferred ID for decoding MPEG audio layer 1, 2 or 3"]
5829pub const AVCodecID_AV_CODEC_ID_MP3: AVCodecID = 86017;
5830pub const AVCodecID_AV_CODEC_ID_AAC: AVCodecID = 86018;
5831pub const AVCodecID_AV_CODEC_ID_AC3: AVCodecID = 86019;
5832pub const AVCodecID_AV_CODEC_ID_DTS: AVCodecID = 86020;
5833pub const AVCodecID_AV_CODEC_ID_VORBIS: AVCodecID = 86021;
5834pub const AVCodecID_AV_CODEC_ID_DVAUDIO: AVCodecID = 86022;
5835pub const AVCodecID_AV_CODEC_ID_WMAV1: AVCodecID = 86023;
5836pub const AVCodecID_AV_CODEC_ID_WMAV2: AVCodecID = 86024;
5837pub const AVCodecID_AV_CODEC_ID_MACE3: AVCodecID = 86025;
5838pub const AVCodecID_AV_CODEC_ID_MACE6: AVCodecID = 86026;
5839pub const AVCodecID_AV_CODEC_ID_VMDAUDIO: AVCodecID = 86027;
5840pub const AVCodecID_AV_CODEC_ID_FLAC: AVCodecID = 86028;
5841pub const AVCodecID_AV_CODEC_ID_MP3ADU: AVCodecID = 86029;
5842pub const AVCodecID_AV_CODEC_ID_MP3ON4: AVCodecID = 86030;
5843pub const AVCodecID_AV_CODEC_ID_SHORTEN: AVCodecID = 86031;
5844pub const AVCodecID_AV_CODEC_ID_ALAC: AVCodecID = 86032;
5845pub const AVCodecID_AV_CODEC_ID_WESTWOOD_SND1: AVCodecID = 86033;
5846#[doc = "< as in Berlin toast format"]
5847pub const AVCodecID_AV_CODEC_ID_GSM: AVCodecID = 86034;
5848pub const AVCodecID_AV_CODEC_ID_QDM2: AVCodecID = 86035;
5849pub const AVCodecID_AV_CODEC_ID_COOK: AVCodecID = 86036;
5850pub const AVCodecID_AV_CODEC_ID_TRUESPEECH: AVCodecID = 86037;
5851pub const AVCodecID_AV_CODEC_ID_TTA: AVCodecID = 86038;
5852pub const AVCodecID_AV_CODEC_ID_SMACKAUDIO: AVCodecID = 86039;
5853pub const AVCodecID_AV_CODEC_ID_QCELP: AVCodecID = 86040;
5854pub const AVCodecID_AV_CODEC_ID_WAVPACK: AVCodecID = 86041;
5855pub const AVCodecID_AV_CODEC_ID_DSICINAUDIO: AVCodecID = 86042;
5856pub const AVCodecID_AV_CODEC_ID_IMC: AVCodecID = 86043;
5857pub const AVCodecID_AV_CODEC_ID_MUSEPACK7: AVCodecID = 86044;
5858pub const AVCodecID_AV_CODEC_ID_MLP: AVCodecID = 86045;
5859pub const AVCodecID_AV_CODEC_ID_GSM_MS: AVCodecID = 86046;
5860pub const AVCodecID_AV_CODEC_ID_ATRAC3: AVCodecID = 86047;
5861pub const AVCodecID_AV_CODEC_ID_APE: AVCodecID = 86048;
5862pub const AVCodecID_AV_CODEC_ID_NELLYMOSER: AVCodecID = 86049;
5863pub const AVCodecID_AV_CODEC_ID_MUSEPACK8: AVCodecID = 86050;
5864pub const AVCodecID_AV_CODEC_ID_SPEEX: AVCodecID = 86051;
5865pub const AVCodecID_AV_CODEC_ID_WMAVOICE: AVCodecID = 86052;
5866pub const AVCodecID_AV_CODEC_ID_WMAPRO: AVCodecID = 86053;
5867pub const AVCodecID_AV_CODEC_ID_WMALOSSLESS: AVCodecID = 86054;
5868pub const AVCodecID_AV_CODEC_ID_ATRAC3P: AVCodecID = 86055;
5869pub const AVCodecID_AV_CODEC_ID_EAC3: AVCodecID = 86056;
5870pub const AVCodecID_AV_CODEC_ID_SIPR: AVCodecID = 86057;
5871pub const AVCodecID_AV_CODEC_ID_MP1: AVCodecID = 86058;
5872pub const AVCodecID_AV_CODEC_ID_TWINVQ: AVCodecID = 86059;
5873pub const AVCodecID_AV_CODEC_ID_TRUEHD: AVCodecID = 86060;
5874pub const AVCodecID_AV_CODEC_ID_MP4ALS: AVCodecID = 86061;
5875pub const AVCodecID_AV_CODEC_ID_ATRAC1: AVCodecID = 86062;
5876pub const AVCodecID_AV_CODEC_ID_BINKAUDIO_RDFT: AVCodecID = 86063;
5877pub const AVCodecID_AV_CODEC_ID_BINKAUDIO_DCT: AVCodecID = 86064;
5878pub const AVCodecID_AV_CODEC_ID_AAC_LATM: AVCodecID = 86065;
5879pub const AVCodecID_AV_CODEC_ID_QDMC: AVCodecID = 86066;
5880pub const AVCodecID_AV_CODEC_ID_CELT: AVCodecID = 86067;
5881pub const AVCodecID_AV_CODEC_ID_G723_1: AVCodecID = 86068;
5882pub const AVCodecID_AV_CODEC_ID_G729: AVCodecID = 86069;
5883pub const AVCodecID_AV_CODEC_ID_8SVX_EXP: AVCodecID = 86070;
5884pub const AVCodecID_AV_CODEC_ID_8SVX_FIB: AVCodecID = 86071;
5885pub const AVCodecID_AV_CODEC_ID_BMV_AUDIO: AVCodecID = 86072;
5886pub const AVCodecID_AV_CODEC_ID_RALF: AVCodecID = 86073;
5887pub const AVCodecID_AV_CODEC_ID_IAC: AVCodecID = 86074;
5888pub const AVCodecID_AV_CODEC_ID_ILBC: AVCodecID = 86075;
5889pub const AVCodecID_AV_CODEC_ID_OPUS: AVCodecID = 86076;
5890pub const AVCodecID_AV_CODEC_ID_COMFORT_NOISE: AVCodecID = 86077;
5891pub const AVCodecID_AV_CODEC_ID_TAK: AVCodecID = 86078;
5892pub const AVCodecID_AV_CODEC_ID_METASOUND: AVCodecID = 86079;
5893pub const AVCodecID_AV_CODEC_ID_PAF_AUDIO: AVCodecID = 86080;
5894pub const AVCodecID_AV_CODEC_ID_ON2AVC: AVCodecID = 86081;
5895pub const AVCodecID_AV_CODEC_ID_DSS_SP: AVCodecID = 86082;
5896pub const AVCodecID_AV_CODEC_ID_CODEC2: AVCodecID = 86083;
5897pub const AVCodecID_AV_CODEC_ID_FFWAVESYNTH: AVCodecID = 88064;
5898pub const AVCodecID_AV_CODEC_ID_SONIC: AVCodecID = 88065;
5899pub const AVCodecID_AV_CODEC_ID_SONIC_LS: AVCodecID = 88066;
5900pub const AVCodecID_AV_CODEC_ID_EVRC: AVCodecID = 88067;
5901pub const AVCodecID_AV_CODEC_ID_SMV: AVCodecID = 88068;
5902pub const AVCodecID_AV_CODEC_ID_DSD_LSBF: AVCodecID = 88069;
5903pub const AVCodecID_AV_CODEC_ID_DSD_MSBF: AVCodecID = 88070;
5904pub const AVCodecID_AV_CODEC_ID_DSD_LSBF_PLANAR: AVCodecID = 88071;
5905pub const AVCodecID_AV_CODEC_ID_DSD_MSBF_PLANAR: AVCodecID = 88072;
5906pub const AVCodecID_AV_CODEC_ID_4GV: AVCodecID = 88073;
5907pub const AVCodecID_AV_CODEC_ID_INTERPLAY_ACM: AVCodecID = 88074;
5908pub const AVCodecID_AV_CODEC_ID_XMA1: AVCodecID = 88075;
5909pub const AVCodecID_AV_CODEC_ID_XMA2: AVCodecID = 88076;
5910pub const AVCodecID_AV_CODEC_ID_DST: AVCodecID = 88077;
5911pub const AVCodecID_AV_CODEC_ID_ATRAC3AL: AVCodecID = 88078;
5912pub const AVCodecID_AV_CODEC_ID_ATRAC3PAL: AVCodecID = 88079;
5913pub const AVCodecID_AV_CODEC_ID_DOLBY_E: AVCodecID = 88080;
5914pub const AVCodecID_AV_CODEC_ID_APTX: AVCodecID = 88081;
5915pub const AVCodecID_AV_CODEC_ID_APTX_HD: AVCodecID = 88082;
5916pub const AVCodecID_AV_CODEC_ID_SBC: AVCodecID = 88083;
5917pub const AVCodecID_AV_CODEC_ID_ATRAC9: AVCodecID = 88084;
5918#[doc = "< A dummy ID pointing at the start of subtitle codecs."]
5919pub const AVCodecID_AV_CODEC_ID_FIRST_SUBTITLE: AVCodecID = 94208;
5920pub const AVCodecID_AV_CODEC_ID_DVD_SUBTITLE: AVCodecID = 94208;
5921pub const AVCodecID_AV_CODEC_ID_DVB_SUBTITLE: AVCodecID = 94209;
5922#[doc = "< raw UTF-8 text"]
5923pub const AVCodecID_AV_CODEC_ID_TEXT: AVCodecID = 94210;
5924pub const AVCodecID_AV_CODEC_ID_XSUB: AVCodecID = 94211;
5925pub const AVCodecID_AV_CODEC_ID_SSA: AVCodecID = 94212;
5926pub const AVCodecID_AV_CODEC_ID_MOV_TEXT: AVCodecID = 94213;
5927pub const AVCodecID_AV_CODEC_ID_HDMV_PGS_SUBTITLE: AVCodecID = 94214;
5928pub const AVCodecID_AV_CODEC_ID_DVB_TELETEXT: AVCodecID = 94215;
5929pub const AVCodecID_AV_CODEC_ID_SRT: AVCodecID = 94216;
5930pub const AVCodecID_AV_CODEC_ID_MICRODVD: AVCodecID = 96256;
5931pub const AVCodecID_AV_CODEC_ID_EIA_608: AVCodecID = 96257;
5932pub const AVCodecID_AV_CODEC_ID_JACOSUB: AVCodecID = 96258;
5933pub const AVCodecID_AV_CODEC_ID_SAMI: AVCodecID = 96259;
5934pub const AVCodecID_AV_CODEC_ID_REALTEXT: AVCodecID = 96260;
5935pub const AVCodecID_AV_CODEC_ID_STL: AVCodecID = 96261;
5936pub const AVCodecID_AV_CODEC_ID_SUBVIEWER1: AVCodecID = 96262;
5937pub const AVCodecID_AV_CODEC_ID_SUBVIEWER: AVCodecID = 96263;
5938pub const AVCodecID_AV_CODEC_ID_SUBRIP: AVCodecID = 96264;
5939pub const AVCodecID_AV_CODEC_ID_WEBVTT: AVCodecID = 96265;
5940pub const AVCodecID_AV_CODEC_ID_MPL2: AVCodecID = 96266;
5941pub const AVCodecID_AV_CODEC_ID_VPLAYER: AVCodecID = 96267;
5942pub const AVCodecID_AV_CODEC_ID_PJS: AVCodecID = 96268;
5943pub const AVCodecID_AV_CODEC_ID_ASS: AVCodecID = 96269;
5944pub const AVCodecID_AV_CODEC_ID_HDMV_TEXT_SUBTITLE: AVCodecID = 96270;
5945pub const AVCodecID_AV_CODEC_ID_TTML: AVCodecID = 96271;
5946#[doc = "< A dummy ID pointing at the start of various fake codecs."]
5947pub const AVCodecID_AV_CODEC_ID_FIRST_UNKNOWN: AVCodecID = 98304;
5948pub const AVCodecID_AV_CODEC_ID_TTF: AVCodecID = 98304;
5949#[doc = "< Contain timestamp estimated through PCR of program stream."]
5950pub const AVCodecID_AV_CODEC_ID_SCTE_35: AVCodecID = 98305;
5951pub const AVCodecID_AV_CODEC_ID_BINTEXT: AVCodecID = 100352;
5952pub const AVCodecID_AV_CODEC_ID_XBIN: AVCodecID = 100353;
5953pub const AVCodecID_AV_CODEC_ID_IDF: AVCodecID = 100354;
5954pub const AVCodecID_AV_CODEC_ID_OTF: AVCodecID = 100355;
5955pub const AVCodecID_AV_CODEC_ID_SMPTE_KLV: AVCodecID = 100356;
5956pub const AVCodecID_AV_CODEC_ID_DVD_NAV: AVCodecID = 100357;
5957pub const AVCodecID_AV_CODEC_ID_TIMED_ID3: AVCodecID = 100358;
5958pub const AVCodecID_AV_CODEC_ID_BIN_DATA: AVCodecID = 100359;
5959#[doc = "< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it"]
5960pub const AVCodecID_AV_CODEC_ID_PROBE: AVCodecID = 102400;
5961#[doc = "< _FAKE_ codec to indicate a raw MPEG-2 TS"]
5962#[doc = " stream (only used by libavformat)"]
5963pub const AVCodecID_AV_CODEC_ID_MPEG2TS: AVCodecID = 131072;
5964#[doc = "< _FAKE_ codec to indicate a MPEG-4 Systems"]
5965#[doc = " stream (only used by libavformat)"]
5966pub const AVCodecID_AV_CODEC_ID_MPEG4SYSTEMS: AVCodecID = 131073;
5967#[doc = "< Dummy codec for streams containing only metadata information."]
5968pub const AVCodecID_AV_CODEC_ID_FFMETADATA: AVCodecID = 135168;
5969#[doc = "< Passthrough codec, AVFrames wrapped in AVPacket"]
5970pub const AVCodecID_AV_CODEC_ID_WRAPPED_AVFRAME: AVCodecID = 135169;
5971#[doc = " Identify the syntax and semantics of the bitstream."]
5972#[doc = " The principle is roughly:"]
5973#[doc = " Two decoders with the same ID can decode the same streams."]
5974#[doc = " Two encoders with the same ID can encode compatible streams."]
5975#[doc = " There may be slight deviations from the principle due to implementation"]
5976#[doc = " details."]
5977#[doc = ""]
5978#[doc = " If you add a codec ID to this list, add it so that"]
5979#[doc = " 1. no value of an existing codec ID changes (that would break ABI),"]
5980#[doc = " 2. it is as close as possible to similar codecs"]
5981#[doc = ""]
5982#[doc = " After adding new codec IDs, do not forget to add an entry to the codec"]
5983#[doc = " descriptor list and bump libavcodec minor version."]
5984pub type AVCodecID = u32;
5985#[doc = " This struct describes the properties of a single codec described by an"]
5986#[doc = " AVCodecID."]
5987#[doc = " @see avcodec_descriptor_get()"]
5988#[repr(C)]
5989#[derive(Debug, Copy, Clone)]
5990pub struct AVCodecDescriptor {
5991    pub id: AVCodecID,
5992    pub type_: AVMediaType,
5993    #[doc = " Name of the codec described by this descriptor. It is non-empty and"]
5994    #[doc = " unique for each codec descriptor. It should contain alphanumeric"]
5995    #[doc = " characters and \'_\' only."]
5996    pub name: *const ::std::os::raw::c_char,
5997    #[doc = " A more descriptive name for this codec. May be NULL."]
5998    pub long_name: *const ::std::os::raw::c_char,
5999    #[doc = " Codec properties, a combination of AV_CODEC_PROP_* flags."]
6000    pub props: ::std::os::raw::c_int,
6001    #[doc = " MIME type(s) associated with the codec."]
6002    #[doc = " May be NULL; if not, a NULL-terminated array of MIME types."]
6003    #[doc = " The first item is always non-NULL and is the preferred MIME type."]
6004    pub mime_types: *const *const ::std::os::raw::c_char,
6005    #[doc = " If non-NULL, an array of profiles recognized for this codec."]
6006    #[doc = " Terminated with FF_PROFILE_UNKNOWN."]
6007    pub profiles: *const AVProfile,
6008}
6009#[doc = "< discard nothing"]
6010pub const AVDiscard_AVDISCARD_NONE: AVDiscard = -16;
6011#[doc = "< discard useless packets like 0 size packets in avi"]
6012pub const AVDiscard_AVDISCARD_DEFAULT: AVDiscard = 0;
6013#[doc = "< discard all non reference"]
6014pub const AVDiscard_AVDISCARD_NONREF: AVDiscard = 8;
6015#[doc = "< discard all bidirectional frames"]
6016pub const AVDiscard_AVDISCARD_BIDIR: AVDiscard = 16;
6017#[doc = "< discard all non intra frames"]
6018pub const AVDiscard_AVDISCARD_NONINTRA: AVDiscard = 24;
6019#[doc = "< discard all frames except keyframes"]
6020pub const AVDiscard_AVDISCARD_NONKEY: AVDiscard = 32;
6021#[doc = "< discard all"]
6022pub const AVDiscard_AVDISCARD_ALL: AVDiscard = 48;
6023#[doc = " @ingroup lavc_decoding"]
6024pub type AVDiscard = i32;
6025pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_MAIN: AVAudioServiceType = 0;
6026pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_EFFECTS: AVAudioServiceType = 1;
6027pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED: AVAudioServiceType = 2;
6028pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED: AVAudioServiceType = 3;
6029pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_DIALOGUE: AVAudioServiceType = 4;
6030pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_COMMENTARY: AVAudioServiceType = 5;
6031pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_EMERGENCY: AVAudioServiceType = 6;
6032pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_VOICE_OVER: AVAudioServiceType = 7;
6033pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_KARAOKE: AVAudioServiceType = 8;
6034#[doc = "< Not part of ABI"]
6035pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_NB: AVAudioServiceType = 9;
6036pub type AVAudioServiceType = u32;
6037#[doc = " @ingroup lavc_encoding"]
6038#[repr(C)]
6039#[derive(Debug, Copy, Clone)]
6040pub struct RcOverride {
6041    pub start_frame: ::std::os::raw::c_int,
6042    pub end_frame: ::std::os::raw::c_int,
6043    pub qscale: ::std::os::raw::c_int,
6044    pub quality_factor: f32,
6045}
6046#[doc = " Pan Scan area."]
6047#[doc = " This specifies the area which should be displayed."]
6048#[doc = " Note there may be multiple such areas for one frame."]
6049#[repr(C)]
6050#[derive(Debug, Copy, Clone)]
6051pub struct AVPanScan {
6052    #[doc = " id"]
6053    #[doc = " - encoding: Set by user."]
6054    #[doc = " - decoding: Set by libavcodec."]
6055    pub id: ::std::os::raw::c_int,
6056    #[doc = " width and height in 1/16 pel"]
6057    #[doc = " - encoding: Set by user."]
6058    #[doc = " - decoding: Set by libavcodec."]
6059    pub width: ::std::os::raw::c_int,
6060    pub height: ::std::os::raw::c_int,
6061    #[doc = " position of the top left corner in 1/16 pel for up to 3 fields/frames"]
6062    #[doc = " - encoding: Set by user."]
6063    #[doc = " - decoding: Set by libavcodec."]
6064    pub position: [[i16; 2usize]; 3usize],
6065}
6066#[doc = " This structure describes the bitrate properties of an encoded bitstream. It"]
6067#[doc = " roughly corresponds to a subset the VBV parameters for MPEG-2 or HRD"]
6068#[doc = " parameters for H.264/HEVC."]
6069#[repr(C)]
6070#[derive(Debug, Copy, Clone)]
6071pub struct AVCPBProperties {
6072    #[doc = " Maximum bitrate of the stream, in bits per second."]
6073    #[doc = " Zero if unknown or unspecified."]
6074    pub max_bitrate: ::std::os::raw::c_int,
6075    #[doc = " Minimum bitrate of the stream, in bits per second."]
6076    #[doc = " Zero if unknown or unspecified."]
6077    pub min_bitrate: ::std::os::raw::c_int,
6078    #[doc = " Average bitrate of the stream, in bits per second."]
6079    #[doc = " Zero if unknown or unspecified."]
6080    pub avg_bitrate: ::std::os::raw::c_int,
6081    #[doc = " The size of the buffer to which the ratecontrol is applied, in bits."]
6082    #[doc = " Zero if unknown or unspecified."]
6083    pub buffer_size: ::std::os::raw::c_int,
6084    #[doc = " The delay between the time the packet this structure is associated with"]
6085    #[doc = " is received and the time when it should be decoded, in periods of a 27MHz"]
6086    #[doc = " clock."]
6087    #[doc = ""]
6088    #[doc = " UINT64_MAX when unknown or unspecified."]
6089    pub vbv_delay: u64,
6090}
6091#[doc = " An AV_PKT_DATA_PALETTE side data packet contains exactly AVPALETTE_SIZE"]
6092#[doc = " bytes worth of palette. This side data signals that a new palette is"]
6093#[doc = " present."]
6094pub const AVPacketSideDataType_AV_PKT_DATA_PALETTE: AVPacketSideDataType = 0;
6095#[doc = " The AV_PKT_DATA_NEW_EXTRADATA is used to notify the codec or the format"]
6096#[doc = " that the extradata buffer was changed and the receiving side should"]
6097#[doc = " act upon it appropriately. The new extradata is embedded in the side"]
6098#[doc = " data buffer and should be immediately used for processing the current"]
6099#[doc = " frame or packet."]
6100pub const AVPacketSideDataType_AV_PKT_DATA_NEW_EXTRADATA: AVPacketSideDataType = 1;
6101#[doc = " An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows:"]
6102#[doc = " @code"]
6103#[doc = " u32le param_flags"]
6104#[doc = " if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT)"]
6105#[doc = "     s32le channel_count"]
6106#[doc = " if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT)"]
6107#[doc = "     u64le channel_layout"]
6108#[doc = " if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE)"]
6109#[doc = "     s32le sample_rate"]
6110#[doc = " if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS)"]
6111#[doc = "     s32le width"]
6112#[doc = "     s32le height"]
6113#[doc = " @endcode"]
6114pub const AVPacketSideDataType_AV_PKT_DATA_PARAM_CHANGE: AVPacketSideDataType = 2;
6115#[doc = " An AV_PKT_DATA_H263_MB_INFO side data packet contains a number of"]
6116#[doc = " structures with info about macroblocks relevant to splitting the"]
6117#[doc = " packet into smaller packets on macroblock edges (e.g. as for RFC 2190)."]
6118#[doc = " That is, it does not necessarily contain info about all macroblocks,"]
6119#[doc = " as long as the distance between macroblocks in the info is smaller"]
6120#[doc = " than the target payload size."]
6121#[doc = " Each MB info structure is 12 bytes, and is laid out as follows:"]
6122#[doc = " @code"]
6123#[doc = " u32le bit offset from the start of the packet"]
6124#[doc = " u8    current quantizer at the start of the macroblock"]
6125#[doc = " u8    GOB number"]
6126#[doc = " u16le macroblock address within the GOB"]
6127#[doc = " u8    horizontal MV predictor"]
6128#[doc = " u8    vertical MV predictor"]
6129#[doc = " u8    horizontal MV predictor for block number 3"]
6130#[doc = " u8    vertical MV predictor for block number 3"]
6131#[doc = " @endcode"]
6132pub const AVPacketSideDataType_AV_PKT_DATA_H263_MB_INFO: AVPacketSideDataType = 3;
6133#[doc = " This side data should be associated with an audio stream and contains"]
6134#[doc = " ReplayGain information in form of the AVReplayGain struct."]
6135pub const AVPacketSideDataType_AV_PKT_DATA_REPLAYGAIN: AVPacketSideDataType = 4;
6136#[doc = " This side data contains a 3x3 transformation matrix describing an affine"]
6137#[doc = " transformation that needs to be applied to the decoded video frames for"]
6138#[doc = " correct presentation."]
6139#[doc = ""]
6140#[doc = " See libavutil/display.h for a detailed description of the data."]
6141pub const AVPacketSideDataType_AV_PKT_DATA_DISPLAYMATRIX: AVPacketSideDataType = 5;
6142#[doc = " This side data should be associated with a video stream and contains"]
6143#[doc = " Stereoscopic 3D information in form of the AVStereo3D struct."]
6144pub const AVPacketSideDataType_AV_PKT_DATA_STEREO3D: AVPacketSideDataType = 6;
6145#[doc = " This side data should be associated with an audio stream and corresponds"]
6146#[doc = " to enum AVAudioServiceType."]
6147pub const AVPacketSideDataType_AV_PKT_DATA_AUDIO_SERVICE_TYPE: AVPacketSideDataType = 7;
6148#[doc = " This side data contains quality related information from the encoder."]
6149#[doc = " @code"]
6150#[doc = " u32le quality factor of the compressed frame. Allowed range is between 1 (good) and FF_LAMBDA_MAX (bad)."]
6151#[doc = " u8    picture type"]
6152#[doc = " u8    error count"]
6153#[doc = " u16   reserved"]
6154#[doc = " u64le[error count] sum of squared differences between encoder in and output"]
6155#[doc = " @endcode"]
6156pub const AVPacketSideDataType_AV_PKT_DATA_QUALITY_STATS: AVPacketSideDataType = 8;
6157#[doc = " This side data contains an integer value representing the stream index"]
6158#[doc = " of a \"fallback\" track.  A fallback track indicates an alternate"]
6159#[doc = " track to use when the current track can not be decoded for some reason."]
6160#[doc = " e.g. no decoder available for codec."]
6161pub const AVPacketSideDataType_AV_PKT_DATA_FALLBACK_TRACK: AVPacketSideDataType = 9;
6162#[doc = " This side data corresponds to the AVCPBProperties struct."]
6163pub const AVPacketSideDataType_AV_PKT_DATA_CPB_PROPERTIES: AVPacketSideDataType = 10;
6164#[doc = " Recommmends skipping the specified number of samples"]
6165#[doc = " @code"]
6166#[doc = " u32le number of samples to skip from start of this packet"]
6167#[doc = " u32le number of samples to skip from end of this packet"]
6168#[doc = " u8    reason for start skip"]
6169#[doc = " u8    reason for end   skip (0=padding silence, 1=convergence)"]
6170#[doc = " @endcode"]
6171pub const AVPacketSideDataType_AV_PKT_DATA_SKIP_SAMPLES: AVPacketSideDataType = 11;
6172#[doc = " An AV_PKT_DATA_JP_DUALMONO side data packet indicates that"]
6173#[doc = " the packet may contain \"dual mono\" audio specific to Japanese DTV"]
6174#[doc = " and if it is true, recommends only the selected channel to be used."]
6175#[doc = " @code"]
6176#[doc = " u8    selected channels (0=mail/left, 1=sub/right, 2=both)"]
6177#[doc = " @endcode"]
6178pub const AVPacketSideDataType_AV_PKT_DATA_JP_DUALMONO: AVPacketSideDataType = 12;
6179#[doc = " A list of zero terminated key/value strings. There is no end marker for"]
6180#[doc = " the list, so it is required to rely on the side data size to stop."]
6181pub const AVPacketSideDataType_AV_PKT_DATA_STRINGS_METADATA: AVPacketSideDataType = 13;
6182#[doc = " Subtitle event position"]
6183#[doc = " @code"]
6184#[doc = " u32le x1"]
6185#[doc = " u32le y1"]
6186#[doc = " u32le x2"]
6187#[doc = " u32le y2"]
6188#[doc = " @endcode"]
6189pub const AVPacketSideDataType_AV_PKT_DATA_SUBTITLE_POSITION: AVPacketSideDataType = 14;
6190#[doc = " Data found in BlockAdditional element of matroska container. There is"]
6191#[doc = " no end marker for the data, so it is required to rely on the side data"]
6192#[doc = " size to recognize the end. 8 byte id (as found in BlockAddId) followed"]
6193#[doc = " by data."]
6194pub const AVPacketSideDataType_AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL: AVPacketSideDataType = 15;
6195#[doc = " The optional first identifier line of a WebVTT cue."]
6196pub const AVPacketSideDataType_AV_PKT_DATA_WEBVTT_IDENTIFIER: AVPacketSideDataType = 16;
6197#[doc = " The optional settings (rendering instructions) that immediately"]
6198#[doc = " follow the timestamp specifier of a WebVTT cue."]
6199pub const AVPacketSideDataType_AV_PKT_DATA_WEBVTT_SETTINGS: AVPacketSideDataType = 17;
6200#[doc = " A list of zero terminated key/value strings. There is no end marker for"]
6201#[doc = " the list, so it is required to rely on the side data size to stop. This"]
6202#[doc = " side data includes updated metadata which appeared in the stream."]
6203pub const AVPacketSideDataType_AV_PKT_DATA_METADATA_UPDATE: AVPacketSideDataType = 18;
6204#[doc = " MPEGTS stream ID as uint8_t, this is required to pass the stream ID"]
6205#[doc = " information from the demuxer to the corresponding muxer."]
6206pub const AVPacketSideDataType_AV_PKT_DATA_MPEGTS_STREAM_ID: AVPacketSideDataType = 19;
6207#[doc = " Mastering display metadata (based on SMPTE-2086:2014). This metadata"]
6208#[doc = " should be associated with a video stream and contains data in the form"]
6209#[doc = " of the AVMasteringDisplayMetadata struct."]
6210pub const AVPacketSideDataType_AV_PKT_DATA_MASTERING_DISPLAY_METADATA: AVPacketSideDataType = 20;
6211#[doc = " This side data should be associated with a video stream and corresponds"]
6212#[doc = " to the AVSphericalMapping structure."]
6213pub const AVPacketSideDataType_AV_PKT_DATA_SPHERICAL: AVPacketSideDataType = 21;
6214#[doc = " Content light level (based on CTA-861.3). This metadata should be"]
6215#[doc = " associated with a video stream and contains data in the form of the"]
6216#[doc = " AVContentLightMetadata struct."]
6217pub const AVPacketSideDataType_AV_PKT_DATA_CONTENT_LIGHT_LEVEL: AVPacketSideDataType = 22;
6218#[doc = " ATSC A53 Part 4 Closed Captions. This metadata should be associated with"]
6219#[doc = " a video stream. A53 CC bitstream is stored as uint8_t in AVPacketSideData.data."]
6220#[doc = " The number of bytes of CC data is AVPacketSideData.size."]
6221pub const AVPacketSideDataType_AV_PKT_DATA_A53_CC: AVPacketSideDataType = 23;
6222#[doc = " This side data is encryption initialization data."]
6223#[doc = " The format is not part of ABI, use av_encryption_init_info_* methods to"]
6224#[doc = " access."]
6225pub const AVPacketSideDataType_AV_PKT_DATA_ENCRYPTION_INIT_INFO: AVPacketSideDataType = 24;
6226#[doc = " This side data contains encryption info for how to decrypt the packet."]
6227#[doc = " The format is not part of ABI, use av_encryption_info_* methods to access."]
6228pub const AVPacketSideDataType_AV_PKT_DATA_ENCRYPTION_INFO: AVPacketSideDataType = 25;
6229#[doc = " Active Format Description data consisting of a single byte as specified"]
6230#[doc = " in ETSI TS 101 154 using AVActiveFormatDescription enum."]
6231pub const AVPacketSideDataType_AV_PKT_DATA_AFD: AVPacketSideDataType = 26;
6232#[doc = " The number of side data types."]
6233#[doc = " This is not part of the public API/ABI in the sense that it may"]
6234#[doc = " change when new side data types are added."]
6235#[doc = " This must stay the last enum value."]
6236#[doc = " If its value becomes huge, some code using it"]
6237#[doc = " needs to be updated as it assumes it to be smaller than other limits."]
6238pub const AVPacketSideDataType_AV_PKT_DATA_NB: AVPacketSideDataType = 27;
6239#[doc = " @defgroup lavc_packet AVPacket"]
6240#[doc = ""]
6241#[doc = " Types and functions for working with AVPacket."]
6242#[doc = " @{"]
6243pub type AVPacketSideDataType = u32;
6244#[repr(C)]
6245#[derive(Debug, Copy, Clone)]
6246pub struct AVPacketSideData {
6247    pub data: *mut u8,
6248    pub size: ::std::os::raw::c_int,
6249    pub type_: AVPacketSideDataType,
6250}
6251#[doc = " This structure stores compressed data. It is typically exported by demuxers"]
6252#[doc = " and then passed as input to decoders, or received as output from encoders and"]
6253#[doc = " then passed to muxers."]
6254#[doc = ""]
6255#[doc = " For video, it should typically contain one compressed frame. For audio it may"]
6256#[doc = " contain several compressed frames. Encoders are allowed to output empty"]
6257#[doc = " packets, with no compressed data, containing only side data"]
6258#[doc = " (e.g. to update some stream parameters at the end of encoding)."]
6259#[doc = ""]
6260#[doc = " AVPacket is one of the few structs in FFmpeg, whose size is a part of public"]
6261#[doc = " ABI. Thus it may be allocated on stack and no new fields can be added to it"]
6262#[doc = " without libavcodec and libavformat major bump."]
6263#[doc = ""]
6264#[doc = " The semantics of data ownership depends on the buf field."]
6265#[doc = " If it is set, the packet data is dynamically allocated and is"]
6266#[doc = " valid indefinitely until a call to av_packet_unref() reduces the"]
6267#[doc = " reference count to 0."]
6268#[doc = ""]
6269#[doc = " If the buf field is not set av_packet_ref() would make a copy instead"]
6270#[doc = " of increasing the reference count."]
6271#[doc = ""]
6272#[doc = " The side data is always allocated with av_malloc(), copied by"]
6273#[doc = " av_packet_ref() and freed by av_packet_unref()."]
6274#[doc = ""]
6275#[doc = " @see av_packet_ref"]
6276#[doc = " @see av_packet_unref"]
6277#[repr(C)]
6278#[derive(Debug, Copy, Clone)]
6279pub struct AVPacket {
6280    #[doc = " A reference to the reference-counted buffer where the packet data is"]
6281    #[doc = " stored."]
6282    #[doc = " May be NULL, then the packet data is not reference-counted."]
6283    pub buf: *mut AVBufferRef,
6284    #[doc = " Presentation timestamp in AVStream->time_base units; the time at which"]
6285    #[doc = " the decompressed packet will be presented to the user."]
6286    #[doc = " Can be AV_NOPTS_VALUE if it is not stored in the file."]
6287    #[doc = " pts MUST be larger or equal to dts as presentation cannot happen before"]
6288    #[doc = " decompression, unless one wants to view hex dumps. Some formats misuse"]
6289    #[doc = " the terms dts and pts/cts to mean something different. Such timestamps"]
6290    #[doc = " must be converted to true pts/dts before they are stored in AVPacket."]
6291    pub pts: i64,
6292    #[doc = " Decompression timestamp in AVStream->time_base units; the time at which"]
6293    #[doc = " the packet is decompressed."]
6294    #[doc = " Can be AV_NOPTS_VALUE if it is not stored in the file."]
6295    pub dts: i64,
6296    pub data: *mut u8,
6297    pub size: ::std::os::raw::c_int,
6298    pub stream_index: ::std::os::raw::c_int,
6299    #[doc = " A combination of AV_PKT_FLAG values"]
6300    pub flags: ::std::os::raw::c_int,
6301    #[doc = " Additional packet data that can be provided by the container."]
6302    #[doc = " Packet can contain several types of side information."]
6303    pub side_data: *mut AVPacketSideData,
6304    pub side_data_elems: ::std::os::raw::c_int,
6305    #[doc = " Duration of this packet in AVStream->time_base units, 0 if unknown."]
6306    #[doc = " Equals next_pts - this_pts in presentation order."]
6307    pub duration: i64,
6308    #[doc = "< byte position in stream, -1 if unknown"]
6309    pub pos: i64,
6310    #[doc = " @deprecated Same as the duration field, but as int64_t. This was required"]
6311    #[doc = " for Matroska subtitles, whose duration values could overflow when the"]
6312    #[doc = " duration field was still an int."]
6313    pub convergence_duration: i64,
6314}
6315pub const AVSideDataParamChangeFlags_AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT:
6316    AVSideDataParamChangeFlags = 1;
6317pub const AVSideDataParamChangeFlags_AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT:
6318    AVSideDataParamChangeFlags = 2;
6319pub const AVSideDataParamChangeFlags_AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE:
6320    AVSideDataParamChangeFlags = 4;
6321pub const AVSideDataParamChangeFlags_AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS:
6322    AVSideDataParamChangeFlags = 8;
6323pub type AVSideDataParamChangeFlags = u32;
6324#[doc = " @}"]
6325#[repr(C)]
6326#[derive(Debug, Copy, Clone)]
6327pub struct AVCodecInternal {
6328    _unused: [u8; 0],
6329}
6330pub const AVFieldOrder_AV_FIELD_UNKNOWN: AVFieldOrder = 0;
6331pub const AVFieldOrder_AV_FIELD_PROGRESSIVE: AVFieldOrder = 1;
6332pub const AVFieldOrder_AV_FIELD_TT: AVFieldOrder = 2;
6333pub const AVFieldOrder_AV_FIELD_BB: AVFieldOrder = 3;
6334pub const AVFieldOrder_AV_FIELD_TB: AVFieldOrder = 4;
6335pub const AVFieldOrder_AV_FIELD_BT: AVFieldOrder = 5;
6336pub type AVFieldOrder = u32;
6337#[doc = " main external API structure."]
6338#[doc = " New fields can be added to the end with minor version bumps."]
6339#[doc = " Removal, reordering and changes to existing fields require a major"]
6340#[doc = " version bump."]
6341#[doc = " You can use AVOptions (av_opt* / av_set/get*()) to access these fields from user"]
6342#[doc = " applications."]
6343#[doc = " The name string for AVOptions options matches the associated command line"]
6344#[doc = " parameter name and can be found in libavcodec/options_table.h"]
6345#[doc = " The AVOption/command line parameter names differ in some cases from the C"]
6346#[doc = " structure field names for historic reasons or brevity."]
6347#[doc = " sizeof(AVCodecContext) must not be used outside libav*."]
6348#[repr(C)]
6349#[derive(Debug, Copy, Clone)]
6350pub struct AVCodecContext {
6351    #[doc = " information on struct for av_log"]
6352    #[doc = " - set by avcodec_alloc_context3"]
6353    pub av_class: *const AVClass,
6354    pub log_level_offset: ::std::os::raw::c_int,
6355    pub codec_type: AVMediaType,
6356    pub codec: *const AVCodec,
6357    pub codec_id: AVCodecID,
6358    #[doc = " fourcc (LSB first, so \"ABCD\" -> (\'D\'<<24) + (\'C\'<<16) + (\'B\'<<8) + \'A\')."]
6359    #[doc = " This is used to work around some encoder bugs."]
6360    #[doc = " A demuxer should set this to what is stored in the field used to identify the codec."]
6361    #[doc = " If there are multiple such fields in a container then the demuxer should choose the one"]
6362    #[doc = " which maximizes the information about the used codec."]
6363    #[doc = " If the codec tag field in a container is larger than 32 bits then the demuxer should"]
6364    #[doc = " remap the longer ID to 32 bits with a table or other structure. Alternatively a new"]
6365    #[doc = " extra_codec_tag + size could be added but for this a clear advantage must be demonstrated"]
6366    #[doc = " first."]
6367    #[doc = " - encoding: Set by user, if not then the default based on codec_id will be used."]
6368    #[doc = " - decoding: Set by user, will be converted to uppercase by libavcodec during init."]
6369    pub codec_tag: ::std::os::raw::c_uint,
6370    pub priv_data: *mut ::std::os::raw::c_void,
6371    #[doc = " Private context used for internal data."]
6372    #[doc = ""]
6373    #[doc = " Unlike priv_data, this is not codec-specific. It is used in general"]
6374    #[doc = " libavcodec functions."]
6375    pub internal: *mut AVCodecInternal,
6376    #[doc = " Private data of the user, can be used to carry app specific stuff."]
6377    #[doc = " - encoding: Set by user."]
6378    #[doc = " - decoding: Set by user."]
6379    pub opaque: *mut ::std::os::raw::c_void,
6380    #[doc = " the average bitrate"]
6381    #[doc = " - encoding: Set by user; unused for constant quantizer encoding."]
6382    #[doc = " - decoding: Set by user, may be overwritten by libavcodec"]
6383    #[doc = "             if this info is available in the stream"]
6384    pub bit_rate: i64,
6385    #[doc = " number of bits the bitstream is allowed to diverge from the reference."]
6386    #[doc = "           the reference can be CBR (for CBR pass1) or VBR (for pass2)"]
6387    #[doc = " - encoding: Set by user; unused for constant quantizer encoding."]
6388    #[doc = " - decoding: unused"]
6389    pub bit_rate_tolerance: ::std::os::raw::c_int,
6390    #[doc = " Global quality for codecs which cannot change it per frame."]
6391    #[doc = " This should be proportional to MPEG-1/2/4 qscale."]
6392    #[doc = " - encoding: Set by user."]
6393    #[doc = " - decoding: unused"]
6394    pub global_quality: ::std::os::raw::c_int,
6395    #[doc = " - encoding: Set by user."]
6396    #[doc = " - decoding: unused"]
6397    pub compression_level: ::std::os::raw::c_int,
6398    #[doc = " AV_CODEC_FLAG_*."]
6399    #[doc = " - encoding: Set by user."]
6400    #[doc = " - decoding: Set by user."]
6401    pub flags: ::std::os::raw::c_int,
6402    #[doc = " AV_CODEC_FLAG2_*"]
6403    #[doc = " - encoding: Set by user."]
6404    #[doc = " - decoding: Set by user."]
6405    pub flags2: ::std::os::raw::c_int,
6406    #[doc = " some codecs need / can use extradata like Huffman tables."]
6407    #[doc = " MJPEG: Huffman tables"]
6408    #[doc = " rv10: additional flags"]
6409    #[doc = " MPEG-4: global headers (they can be in the bitstream or here)"]
6410    #[doc = " The allocated memory should be AV_INPUT_BUFFER_PADDING_SIZE bytes larger"]
6411    #[doc = " than extradata_size to avoid problems if it is read with the bitstream reader."]
6412    #[doc = " The bytewise contents of extradata must not depend on the architecture or CPU endianness."]
6413    #[doc = " Must be allocated with the av_malloc() family of functions."]
6414    #[doc = " - encoding: Set/allocated/freed by libavcodec."]
6415    #[doc = " - decoding: Set/allocated/freed by user."]
6416    pub extradata: *mut u8,
6417    pub extradata_size: ::std::os::raw::c_int,
6418    #[doc = " This is the fundamental unit of time (in seconds) in terms"]
6419    #[doc = " of which frame timestamps are represented. For fixed-fps content,"]
6420    #[doc = " timebase should be 1/framerate and timestamp increments should be"]
6421    #[doc = " identically 1."]
6422    #[doc = " This often, but not always is the inverse of the frame rate or field rate"]
6423    #[doc = " for video. 1/time_base is not the average frame rate if the frame rate is not"]
6424    #[doc = " constant."]
6425    #[doc = ""]
6426    #[doc = " Like containers, elementary streams also can store timestamps, 1/time_base"]
6427    #[doc = " is the unit in which these timestamps are specified."]
6428    #[doc = " As example of such codec time base see ISO/IEC 14496-2:2001(E)"]
6429    #[doc = " vop_time_increment_resolution and fixed_vop_rate"]
6430    #[doc = " (fixed_vop_rate == 0 implies that it is different from the framerate)"]
6431    #[doc = ""]
6432    #[doc = " - encoding: MUST be set by user."]
6433    #[doc = " - decoding: the use of this field for decoding is deprecated."]
6434    #[doc = "             Use framerate instead."]
6435    pub time_base: AVRational,
6436    #[doc = " For some codecs, the time base is closer to the field rate than the frame rate."]
6437    #[doc = " Most notably, H.264 and MPEG-2 specify time_base as half of frame duration"]
6438    #[doc = " if no telecine is used ..."]
6439    #[doc = ""]
6440    #[doc = " Set to time_base ticks per frame. Default 1, e.g., H.264/MPEG-2 set it to 2."]
6441    pub ticks_per_frame: ::std::os::raw::c_int,
6442    #[doc = " Codec delay."]
6443    #[doc = ""]
6444    #[doc = " Encoding: Number of frames delay there will be from the encoder input to"]
6445    #[doc = "           the decoder output. (we assume the decoder matches the spec)"]
6446    #[doc = " Decoding: Number of frames delay in addition to what a standard decoder"]
6447    #[doc = "           as specified in the spec would produce."]
6448    #[doc = ""]
6449    #[doc = " Video:"]
6450    #[doc = "   Number of frames the decoded output will be delayed relative to the"]
6451    #[doc = "   encoded input."]
6452    #[doc = ""]
6453    #[doc = " Audio:"]
6454    #[doc = "   For encoding, this field is unused (see initial_padding)."]
6455    #[doc = ""]
6456    #[doc = "   For decoding, this is the number of samples the decoder needs to"]
6457    #[doc = "   output before the decoder\'s output is valid. When seeking, you should"]
6458    #[doc = "   start decoding this many samples prior to your desired seek point."]
6459    #[doc = ""]
6460    #[doc = " - encoding: Set by libavcodec."]
6461    #[doc = " - decoding: Set by libavcodec."]
6462    pub delay: ::std::os::raw::c_int,
6463    #[doc = " picture width / height."]
6464    #[doc = ""]
6465    #[doc = " @note Those fields may not match the values of the last"]
6466    #[doc = " AVFrame output by avcodec_decode_video2 due frame"]
6467    #[doc = " reordering."]
6468    #[doc = ""]
6469    #[doc = " - encoding: MUST be set by user."]
6470    #[doc = " - decoding: May be set by the user before opening the decoder if known e.g."]
6471    #[doc = "             from the container. Some decoders will require the dimensions"]
6472    #[doc = "             to be set by the caller. During decoding, the decoder may"]
6473    #[doc = "             overwrite those values as required while parsing the data."]
6474    pub width: ::std::os::raw::c_int,
6475    #[doc = " picture width / height."]
6476    #[doc = ""]
6477    #[doc = " @note Those fields may not match the values of the last"]
6478    #[doc = " AVFrame output by avcodec_decode_video2 due frame"]
6479    #[doc = " reordering."]
6480    #[doc = ""]
6481    #[doc = " - encoding: MUST be set by user."]
6482    #[doc = " - decoding: May be set by the user before opening the decoder if known e.g."]
6483    #[doc = "             from the container. Some decoders will require the dimensions"]
6484    #[doc = "             to be set by the caller. During decoding, the decoder may"]
6485    #[doc = "             overwrite those values as required while parsing the data."]
6486    pub height: ::std::os::raw::c_int,
6487    #[doc = " Bitstream width / height, may be different from width/height e.g. when"]
6488    #[doc = " the decoded frame is cropped before being output or lowres is enabled."]
6489    #[doc = ""]
6490    #[doc = " @note Those field may not match the value of the last"]
6491    #[doc = " AVFrame output by avcodec_receive_frame() due frame"]
6492    #[doc = " reordering."]
6493    #[doc = ""]
6494    #[doc = " - encoding: unused"]
6495    #[doc = " - decoding: May be set by the user before opening the decoder if known"]
6496    #[doc = "             e.g. from the container. During decoding, the decoder may"]
6497    #[doc = "             overwrite those values as required while parsing the data."]
6498    pub coded_width: ::std::os::raw::c_int,
6499    #[doc = " Bitstream width / height, may be different from width/height e.g. when"]
6500    #[doc = " the decoded frame is cropped before being output or lowres is enabled."]
6501    #[doc = ""]
6502    #[doc = " @note Those field may not match the value of the last"]
6503    #[doc = " AVFrame output by avcodec_receive_frame() due frame"]
6504    #[doc = " reordering."]
6505    #[doc = ""]
6506    #[doc = " - encoding: unused"]
6507    #[doc = " - decoding: May be set by the user before opening the decoder if known"]
6508    #[doc = "             e.g. from the container. During decoding, the decoder may"]
6509    #[doc = "             overwrite those values as required while parsing the data."]
6510    pub coded_height: ::std::os::raw::c_int,
6511    #[doc = " the number of pictures in a group of pictures, or 0 for intra_only"]
6512    #[doc = " - encoding: Set by user."]
6513    #[doc = " - decoding: unused"]
6514    pub gop_size: ::std::os::raw::c_int,
6515    #[doc = " Pixel format, see AV_PIX_FMT_xxx."]
6516    #[doc = " May be set by the demuxer if known from headers."]
6517    #[doc = " May be overridden by the decoder if it knows better."]
6518    #[doc = ""]
6519    #[doc = " @note This field may not match the value of the last"]
6520    #[doc = " AVFrame output by avcodec_receive_frame() due frame"]
6521    #[doc = " reordering."]
6522    #[doc = ""]
6523    #[doc = " - encoding: Set by user."]
6524    #[doc = " - decoding: Set by user if known, overridden by libavcodec while"]
6525    #[doc = "             parsing the data."]
6526    pub pix_fmt: AVPixelFormat,
6527    #[doc = " If non NULL, \'draw_horiz_band\' is called by the libavcodec"]
6528    #[doc = " decoder to draw a horizontal band. It improves cache usage. Not"]
6529    #[doc = " all codecs can do that. You must check the codec capabilities"]
6530    #[doc = " beforehand."]
6531    #[doc = " When multithreading is used, it may be called from multiple threads"]
6532    #[doc = " at the same time; threads might draw different parts of the same AVFrame,"]
6533    #[doc = " or multiple AVFrames, and there is no guarantee that slices will be drawn"]
6534    #[doc = " in order."]
6535    #[doc = " The function is also used by hardware acceleration APIs."]
6536    #[doc = " It is called at least once during frame decoding to pass"]
6537    #[doc = " the data needed for hardware render."]
6538    #[doc = " In that mode instead of pixel data, AVFrame points to"]
6539    #[doc = " a structure specific to the acceleration API. The application"]
6540    #[doc = " reads the structure and can change some fields to indicate progress"]
6541    #[doc = " or mark state."]
6542    #[doc = " - encoding: unused"]
6543    #[doc = " - decoding: Set by user."]
6544    #[doc = " @param height the height of the slice"]
6545    #[doc = " @param y the y position of the slice"]
6546    #[doc = " @param type 1->top field, 2->bottom field, 3->frame"]
6547    #[doc = " @param offset offset into the AVFrame.data from which the slice should be read"]
6548    pub draw_horiz_band: ::std::option::Option<
6549        unsafe extern "C" fn(
6550            s: *mut AVCodecContext,
6551            src: *const AVFrame,
6552            offset: *mut ::std::os::raw::c_int,
6553            y: ::std::os::raw::c_int,
6554            type_: ::std::os::raw::c_int,
6555            height: ::std::os::raw::c_int,
6556        ),
6557    >,
6558    #[doc = " callback to negotiate the pixelFormat"]
6559    #[doc = " @param fmt is the list of formats which are supported by the codec,"]
6560    #[doc = " it is terminated by -1 as 0 is a valid format, the formats are ordered by quality."]
6561    #[doc = " The first is always the native one."]
6562    #[doc = " @note The callback may be called again immediately if initialization for"]
6563    #[doc = " the selected (hardware-accelerated) pixel format failed."]
6564    #[doc = " @warning Behavior is undefined if the callback returns a value not"]
6565    #[doc = " in the fmt list of formats."]
6566    #[doc = " @return the chosen format"]
6567    #[doc = " - encoding: unused"]
6568    #[doc = " - decoding: Set by user, if not set the native format will be chosen."]
6569    pub get_format: ::std::option::Option<
6570        unsafe extern "C" fn(s: *mut AVCodecContext, fmt: *const AVPixelFormat) -> AVPixelFormat,
6571    >,
6572    #[doc = " maximum number of B-frames between non-B-frames"]
6573    #[doc = " Note: The output will be delayed by max_b_frames+1 relative to the input."]
6574    #[doc = " - encoding: Set by user."]
6575    #[doc = " - decoding: unused"]
6576    pub max_b_frames: ::std::os::raw::c_int,
6577    #[doc = " qscale factor between IP and B-frames"]
6578    #[doc = " If > 0 then the last P-frame quantizer will be used (q= lastp_q*factor+offset)."]
6579    #[doc = " If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset)."]
6580    #[doc = " - encoding: Set by user."]
6581    #[doc = " - decoding: unused"]
6582    pub b_quant_factor: f32,
6583    #[doc = " @deprecated use encoder private options instead"]
6584    pub b_frame_strategy: ::std::os::raw::c_int,
6585    #[doc = " qscale offset between IP and B-frames"]
6586    #[doc = " - encoding: Set by user."]
6587    #[doc = " - decoding: unused"]
6588    pub b_quant_offset: f32,
6589    #[doc = " Size of the frame reordering buffer in the decoder."]
6590    #[doc = " For MPEG-2 it is 1 IPB or 0 low delay IP."]
6591    #[doc = " - encoding: Set by libavcodec."]
6592    #[doc = " - decoding: Set by libavcodec."]
6593    pub has_b_frames: ::std::os::raw::c_int,
6594    #[doc = " @deprecated use encoder private options instead"]
6595    pub mpeg_quant: ::std::os::raw::c_int,
6596    #[doc = " qscale factor between P- and I-frames"]
6597    #[doc = " If > 0 then the last P-frame quantizer will be used (q = lastp_q * factor + offset)."]
6598    #[doc = " If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset)."]
6599    #[doc = " - encoding: Set by user."]
6600    #[doc = " - decoding: unused"]
6601    pub i_quant_factor: f32,
6602    #[doc = " qscale offset between P and I-frames"]
6603    #[doc = " - encoding: Set by user."]
6604    #[doc = " - decoding: unused"]
6605    pub i_quant_offset: f32,
6606    #[doc = " luminance masking (0-> disabled)"]
6607    #[doc = " - encoding: Set by user."]
6608    #[doc = " - decoding: unused"]
6609    pub lumi_masking: f32,
6610    #[doc = " temporary complexity masking (0-> disabled)"]
6611    #[doc = " - encoding: Set by user."]
6612    #[doc = " - decoding: unused"]
6613    pub temporal_cplx_masking: f32,
6614    #[doc = " spatial complexity masking (0-> disabled)"]
6615    #[doc = " - encoding: Set by user."]
6616    #[doc = " - decoding: unused"]
6617    pub spatial_cplx_masking: f32,
6618    #[doc = " p block masking (0-> disabled)"]
6619    #[doc = " - encoding: Set by user."]
6620    #[doc = " - decoding: unused"]
6621    pub p_masking: f32,
6622    #[doc = " darkness masking (0-> disabled)"]
6623    #[doc = " - encoding: Set by user."]
6624    #[doc = " - decoding: unused"]
6625    pub dark_masking: f32,
6626    #[doc = " slice count"]
6627    #[doc = " - encoding: Set by libavcodec."]
6628    #[doc = " - decoding: Set by user (or 0)."]
6629    pub slice_count: ::std::os::raw::c_int,
6630    #[doc = " @deprecated use encoder private options instead"]
6631    pub prediction_method: ::std::os::raw::c_int,
6632    #[doc = " slice offsets in the frame in bytes"]
6633    #[doc = " - encoding: Set/allocated by libavcodec."]
6634    #[doc = " - decoding: Set/allocated by user (or NULL)."]
6635    pub slice_offset: *mut ::std::os::raw::c_int,
6636    #[doc = " sample aspect ratio (0 if unknown)"]
6637    #[doc = " That is the width of a pixel divided by the height of the pixel."]
6638    #[doc = " Numerator and denominator must be relatively prime and smaller than 256 for some video standards."]
6639    #[doc = " - encoding: Set by user."]
6640    #[doc = " - decoding: Set by libavcodec."]
6641    pub sample_aspect_ratio: AVRational,
6642    #[doc = " motion estimation comparison function"]
6643    #[doc = " - encoding: Set by user."]
6644    #[doc = " - decoding: unused"]
6645    pub me_cmp: ::std::os::raw::c_int,
6646    #[doc = " subpixel motion estimation comparison function"]
6647    #[doc = " - encoding: Set by user."]
6648    #[doc = " - decoding: unused"]
6649    pub me_sub_cmp: ::std::os::raw::c_int,
6650    #[doc = " macroblock comparison function (not supported yet)"]
6651    #[doc = " - encoding: Set by user."]
6652    #[doc = " - decoding: unused"]
6653    pub mb_cmp: ::std::os::raw::c_int,
6654    #[doc = " interlaced DCT comparison function"]
6655    #[doc = " - encoding: Set by user."]
6656    #[doc = " - decoding: unused"]
6657    pub ildct_cmp: ::std::os::raw::c_int,
6658    #[doc = " ME diamond size & shape"]
6659    #[doc = " - encoding: Set by user."]
6660    #[doc = " - decoding: unused"]
6661    pub dia_size: ::std::os::raw::c_int,
6662    #[doc = " amount of previous MV predictors (2a+1 x 2a+1 square)"]
6663    #[doc = " - encoding: Set by user."]
6664    #[doc = " - decoding: unused"]
6665    pub last_predictor_count: ::std::os::raw::c_int,
6666    #[doc = " @deprecated use encoder private options instead"]
6667    pub pre_me: ::std::os::raw::c_int,
6668    #[doc = " motion estimation prepass comparison function"]
6669    #[doc = " - encoding: Set by user."]
6670    #[doc = " - decoding: unused"]
6671    pub me_pre_cmp: ::std::os::raw::c_int,
6672    #[doc = " ME prepass diamond size & shape"]
6673    #[doc = " - encoding: Set by user."]
6674    #[doc = " - decoding: unused"]
6675    pub pre_dia_size: ::std::os::raw::c_int,
6676    #[doc = " subpel ME quality"]
6677    #[doc = " - encoding: Set by user."]
6678    #[doc = " - decoding: unused"]
6679    pub me_subpel_quality: ::std::os::raw::c_int,
6680    #[doc = " maximum motion estimation search range in subpel units"]
6681    #[doc = " If 0 then no limit."]
6682    #[doc = ""]
6683    #[doc = " - encoding: Set by user."]
6684    #[doc = " - decoding: unused"]
6685    pub me_range: ::std::os::raw::c_int,
6686    #[doc = " slice flags"]
6687    #[doc = " - encoding: unused"]
6688    #[doc = " - decoding: Set by user."]
6689    pub slice_flags: ::std::os::raw::c_int,
6690    #[doc = " macroblock decision mode"]
6691    #[doc = " - encoding: Set by user."]
6692    #[doc = " - decoding: unused"]
6693    pub mb_decision: ::std::os::raw::c_int,
6694    #[doc = " custom intra quantization matrix"]
6695    #[doc = " - encoding: Set by user, can be NULL."]
6696    #[doc = " - decoding: Set by libavcodec."]
6697    pub intra_matrix: *mut u16,
6698    #[doc = " custom inter quantization matrix"]
6699    #[doc = " - encoding: Set by user, can be NULL."]
6700    #[doc = " - decoding: Set by libavcodec."]
6701    pub inter_matrix: *mut u16,
6702    #[doc = " @deprecated use encoder private options instead"]
6703    pub scenechange_threshold: ::std::os::raw::c_int,
6704    #[doc = " @deprecated use encoder private options instead"]
6705    pub noise_reduction: ::std::os::raw::c_int,
6706    #[doc = " precision of the intra DC coefficient - 8"]
6707    #[doc = " - encoding: Set by user."]
6708    #[doc = " - decoding: Set by libavcodec"]
6709    pub intra_dc_precision: ::std::os::raw::c_int,
6710    #[doc = " Number of macroblock rows at the top which are skipped."]
6711    #[doc = " - encoding: unused"]
6712    #[doc = " - decoding: Set by user."]
6713    pub skip_top: ::std::os::raw::c_int,
6714    #[doc = " Number of macroblock rows at the bottom which are skipped."]
6715    #[doc = " - encoding: unused"]
6716    #[doc = " - decoding: Set by user."]
6717    pub skip_bottom: ::std::os::raw::c_int,
6718    #[doc = " minimum MB Lagrange multiplier"]
6719    #[doc = " - encoding: Set by user."]
6720    #[doc = " - decoding: unused"]
6721    pub mb_lmin: ::std::os::raw::c_int,
6722    #[doc = " maximum MB Lagrange multiplier"]
6723    #[doc = " - encoding: Set by user."]
6724    #[doc = " - decoding: unused"]
6725    pub mb_lmax: ::std::os::raw::c_int,
6726    #[doc = " @deprecated use encoder private options instead"]
6727    pub me_penalty_compensation: ::std::os::raw::c_int,
6728    #[doc = " - encoding: Set by user."]
6729    #[doc = " - decoding: unused"]
6730    pub bidir_refine: ::std::os::raw::c_int,
6731    #[doc = " @deprecated use encoder private options instead"]
6732    pub brd_scale: ::std::os::raw::c_int,
6733    #[doc = " minimum GOP size"]
6734    #[doc = " - encoding: Set by user."]
6735    #[doc = " - decoding: unused"]
6736    pub keyint_min: ::std::os::raw::c_int,
6737    #[doc = " number of reference frames"]
6738    #[doc = " - encoding: Set by user."]
6739    #[doc = " - decoding: Set by lavc."]
6740    pub refs: ::std::os::raw::c_int,
6741    #[doc = " @deprecated use encoder private options instead"]
6742    pub chromaoffset: ::std::os::raw::c_int,
6743    #[doc = " Note: Value depends upon the compare function used for fullpel ME."]
6744    #[doc = " - encoding: Set by user."]
6745    #[doc = " - decoding: unused"]
6746    pub mv0_threshold: ::std::os::raw::c_int,
6747    #[doc = " @deprecated use encoder private options instead"]
6748    pub b_sensitivity: ::std::os::raw::c_int,
6749    #[doc = " Chromaticity coordinates of the source primaries."]
6750    #[doc = " - encoding: Set by user"]
6751    #[doc = " - decoding: Set by libavcodec"]
6752    pub color_primaries: AVColorPrimaries,
6753    #[doc = " Color Transfer Characteristic."]
6754    #[doc = " - encoding: Set by user"]
6755    #[doc = " - decoding: Set by libavcodec"]
6756    pub color_trc: AVColorTransferCharacteristic,
6757    #[doc = " YUV colorspace type."]
6758    #[doc = " - encoding: Set by user"]
6759    #[doc = " - decoding: Set by libavcodec"]
6760    pub colorspace: AVColorSpace,
6761    #[doc = " MPEG vs JPEG YUV range."]
6762    #[doc = " - encoding: Set by user"]
6763    #[doc = " - decoding: Set by libavcodec"]
6764    pub color_range: AVColorRange,
6765    #[doc = " This defines the location of chroma samples."]
6766    #[doc = " - encoding: Set by user"]
6767    #[doc = " - decoding: Set by libavcodec"]
6768    pub chroma_sample_location: AVChromaLocation,
6769    #[doc = " Number of slices."]
6770    #[doc = " Indicates number of picture subdivisions. Used for parallelized"]
6771    #[doc = " decoding."]
6772    #[doc = " - encoding: Set by user"]
6773    #[doc = " - decoding: unused"]
6774    pub slices: ::std::os::raw::c_int,
6775    #[doc = " Field order"]
6776    #[doc = " - encoding: set by libavcodec"]
6777    #[doc = " - decoding: Set by user."]
6778    pub field_order: AVFieldOrder,
6779    #[doc = "< samples per second"]
6780    pub sample_rate: ::std::os::raw::c_int,
6781    #[doc = "< number of audio channels"]
6782    pub channels: ::std::os::raw::c_int,
6783    #[doc = "< sample format"]
6784    pub sample_fmt: AVSampleFormat,
6785    #[doc = " Number of samples per channel in an audio frame."]
6786    #[doc = ""]
6787    #[doc = " - encoding: set by libavcodec in avcodec_open2(). Each submitted frame"]
6788    #[doc = "   except the last must contain exactly frame_size samples per channel."]
6789    #[doc = "   May be 0 when the codec has AV_CODEC_CAP_VARIABLE_FRAME_SIZE set, then the"]
6790    #[doc = "   frame size is not restricted."]
6791    #[doc = " - decoding: may be set by some decoders to indicate constant frame size"]
6792    pub frame_size: ::std::os::raw::c_int,
6793    #[doc = " Frame counter, set by libavcodec."]
6794    #[doc = ""]
6795    #[doc = " - decoding: total number of frames returned from the decoder so far."]
6796    #[doc = " - encoding: total number of frames passed to the encoder so far."]
6797    #[doc = ""]
6798    #[doc = "   @note the counter is not incremented if encoding/decoding resulted in"]
6799    #[doc = "   an error."]
6800    pub frame_number: ::std::os::raw::c_int,
6801    #[doc = " number of bytes per packet if constant and known or 0"]
6802    #[doc = " Used by some WAV based audio codecs."]
6803    pub block_align: ::std::os::raw::c_int,
6804    #[doc = " Audio cutoff bandwidth (0 means \"automatic\")"]
6805    #[doc = " - encoding: Set by user."]
6806    #[doc = " - decoding: unused"]
6807    pub cutoff: ::std::os::raw::c_int,
6808    #[doc = " Audio channel layout."]
6809    #[doc = " - encoding: set by user."]
6810    #[doc = " - decoding: set by user, may be overwritten by libavcodec."]
6811    pub channel_layout: u64,
6812    #[doc = " Request decoder to use this channel layout if it can (0 for default)"]
6813    #[doc = " - encoding: unused"]
6814    #[doc = " - decoding: Set by user."]
6815    pub request_channel_layout: u64,
6816    #[doc = " Type of service that the audio stream conveys."]
6817    #[doc = " - encoding: Set by user."]
6818    #[doc = " - decoding: Set by libavcodec."]
6819    pub audio_service_type: AVAudioServiceType,
6820    #[doc = " desired sample format"]
6821    #[doc = " - encoding: Not used."]
6822    #[doc = " - decoding: Set by user."]
6823    #[doc = " Decoder will decode to this format if it can."]
6824    pub request_sample_fmt: AVSampleFormat,
6825    #[doc = " This callback is called at the beginning of each frame to get data"]
6826    #[doc = " buffer(s) for it. There may be one contiguous buffer for all the data or"]
6827    #[doc = " there may be a buffer per each data plane or anything in between. What"]
6828    #[doc = " this means is, you may set however many entries in buf[] you feel necessary."]
6829    #[doc = " Each buffer must be reference-counted using the AVBuffer API (see description"]
6830    #[doc = " of buf[] below)."]
6831    #[doc = ""]
6832    #[doc = " The following fields will be set in the frame before this callback is"]
6833    #[doc = " called:"]
6834    #[doc = " - format"]
6835    #[doc = " - width, height (video only)"]
6836    #[doc = " - sample_rate, channel_layout, nb_samples (audio only)"]
6837    #[doc = " Their values may differ from the corresponding values in"]
6838    #[doc = " AVCodecContext. This callback must use the frame values, not the codec"]
6839    #[doc = " context values, to calculate the required buffer size."]
6840    #[doc = ""]
6841    #[doc = " This callback must fill the following fields in the frame:"]
6842    #[doc = " - data[]"]
6843    #[doc = " - linesize[]"]
6844    #[doc = " - extended_data:"]
6845    #[doc = "   * if the data is planar audio with more than 8 channels, then this"]
6846    #[doc = "     callback must allocate and fill extended_data to contain all pointers"]
6847    #[doc = "     to all data planes. data[] must hold as many pointers as it can."]
6848    #[doc = "     extended_data must be allocated with av_malloc() and will be freed in"]
6849    #[doc = "     av_frame_unref()."]
6850    #[doc = "   * otherwise extended_data must point to data"]
6851    #[doc = " - buf[] must contain one or more pointers to AVBufferRef structures. Each of"]
6852    #[doc = "   the frame\'s data and extended_data pointers must be contained in these. That"]
6853    #[doc = "   is, one AVBufferRef for each allocated chunk of memory, not necessarily one"]
6854    #[doc = "   AVBufferRef per data[] entry. See: av_buffer_create(), av_buffer_alloc(),"]
6855    #[doc = "   and av_buffer_ref()."]
6856    #[doc = " - extended_buf and nb_extended_buf must be allocated with av_malloc() by"]
6857    #[doc = "   this callback and filled with the extra buffers if there are more"]
6858    #[doc = "   buffers than buf[] can hold. extended_buf will be freed in"]
6859    #[doc = "   av_frame_unref()."]
6860    #[doc = ""]
6861    #[doc = " If AV_CODEC_CAP_DR1 is not set then get_buffer2() must call"]
6862    #[doc = " avcodec_default_get_buffer2() instead of providing buffers allocated by"]
6863    #[doc = " some other means."]
6864    #[doc = ""]
6865    #[doc = " Each data plane must be aligned to the maximum required by the target"]
6866    #[doc = " CPU."]
6867    #[doc = ""]
6868    #[doc = " @see avcodec_default_get_buffer2()"]
6869    #[doc = ""]
6870    #[doc = " Video:"]
6871    #[doc = ""]
6872    #[doc = " If AV_GET_BUFFER_FLAG_REF is set in flags then the frame may be reused"]
6873    #[doc = " (read and/or written to if it is writable) later by libavcodec."]
6874    #[doc = ""]
6875    #[doc = " avcodec_align_dimensions2() should be used to find the required width and"]
6876    #[doc = " height, as they normally need to be rounded up to the next multiple of 16."]
6877    #[doc = ""]
6878    #[doc = " Some decoders do not support linesizes changing between frames."]
6879    #[doc = ""]
6880    #[doc = " If frame multithreading is used and thread_safe_callbacks is set,"]
6881    #[doc = " this callback may be called from a different thread, but not from more"]
6882    #[doc = " than one at once. Does not need to be reentrant."]
6883    #[doc = ""]
6884    #[doc = " @see avcodec_align_dimensions2()"]
6885    #[doc = ""]
6886    #[doc = " Audio:"]
6887    #[doc = ""]
6888    #[doc = " Decoders request a buffer of a particular size by setting"]
6889    #[doc = " AVFrame.nb_samples prior to calling get_buffer2(). The decoder may,"]
6890    #[doc = " however, utilize only part of the buffer by setting AVFrame.nb_samples"]
6891    #[doc = " to a smaller value in the output frame."]
6892    #[doc = ""]
6893    #[doc = " As a convenience, av_samples_get_buffer_size() and"]
6894    #[doc = " av_samples_fill_arrays() in libavutil may be used by custom get_buffer2()"]
6895    #[doc = " functions to find the required data size and to fill data pointers and"]
6896    #[doc = " linesize. In AVFrame.linesize, only linesize[0] may be set for audio"]
6897    #[doc = " since all planes must be the same size."]
6898    #[doc = ""]
6899    #[doc = " @see av_samples_get_buffer_size(), av_samples_fill_arrays()"]
6900    #[doc = ""]
6901    #[doc = " - encoding: unused"]
6902    #[doc = " - decoding: Set by libavcodec, user can override."]
6903    pub get_buffer2: ::std::option::Option<
6904        unsafe extern "C" fn(
6905            s: *mut AVCodecContext,
6906            frame: *mut AVFrame,
6907            flags: ::std::os::raw::c_int,
6908        ) -> ::std::os::raw::c_int,
6909    >,
6910    #[doc = " If non-zero, the decoded audio and video frames returned from"]
6911    #[doc = " avcodec_decode_video2() and avcodec_decode_audio4() are reference-counted"]
6912    #[doc = " and are valid indefinitely. The caller must free them with"]
6913    #[doc = " av_frame_unref() when they are not needed anymore."]
6914    #[doc = " Otherwise, the decoded frames must not be freed by the caller and are"]
6915    #[doc = " only valid until the next decode call."]
6916    #[doc = ""]
6917    #[doc = " This is always automatically enabled if avcodec_receive_frame() is used."]
6918    #[doc = ""]
6919    #[doc = " - encoding: unused"]
6920    #[doc = " - decoding: set by the caller before avcodec_open2()."]
6921    pub refcounted_frames: ::std::os::raw::c_int,
6922    #[doc = "< amount of qscale change between easy & hard scenes (0.0-1.0)"]
6923    pub qcompress: f32,
6924    #[doc = "< amount of qscale smoothing over time (0.0-1.0)"]
6925    pub qblur: f32,
6926    #[doc = " minimum quantizer"]
6927    #[doc = " - encoding: Set by user."]
6928    #[doc = " - decoding: unused"]
6929    pub qmin: ::std::os::raw::c_int,
6930    #[doc = " maximum quantizer"]
6931    #[doc = " - encoding: Set by user."]
6932    #[doc = " - decoding: unused"]
6933    pub qmax: ::std::os::raw::c_int,
6934    #[doc = " maximum quantizer difference between frames"]
6935    #[doc = " - encoding: Set by user."]
6936    #[doc = " - decoding: unused"]
6937    pub max_qdiff: ::std::os::raw::c_int,
6938    #[doc = " decoder bitstream buffer size"]
6939    #[doc = " - encoding: Set by user."]
6940    #[doc = " - decoding: unused"]
6941    pub rc_buffer_size: ::std::os::raw::c_int,
6942    #[doc = " ratecontrol override, see RcOverride"]
6943    #[doc = " - encoding: Allocated/set/freed by user."]
6944    #[doc = " - decoding: unused"]
6945    pub rc_override_count: ::std::os::raw::c_int,
6946    pub rc_override: *mut RcOverride,
6947    #[doc = " maximum bitrate"]
6948    #[doc = " - encoding: Set by user."]
6949    #[doc = " - decoding: Set by user, may be overwritten by libavcodec."]
6950    pub rc_max_rate: i64,
6951    #[doc = " minimum bitrate"]
6952    #[doc = " - encoding: Set by user."]
6953    #[doc = " - decoding: unused"]
6954    pub rc_min_rate: i64,
6955    #[doc = " Ratecontrol attempt to use, at maximum, <value> of what can be used without an underflow."]
6956    #[doc = " - encoding: Set by user."]
6957    #[doc = " - decoding: unused."]
6958    pub rc_max_available_vbv_use: f32,
6959    #[doc = " Ratecontrol attempt to use, at least, <value> times the amount needed to prevent a vbv overflow."]
6960    #[doc = " - encoding: Set by user."]
6961    #[doc = " - decoding: unused."]
6962    pub rc_min_vbv_overflow_use: f32,
6963    #[doc = " Number of bits which should be loaded into the rc buffer before decoding starts."]
6964    #[doc = " - encoding: Set by user."]
6965    #[doc = " - decoding: unused"]
6966    pub rc_initial_buffer_occupancy: ::std::os::raw::c_int,
6967    #[doc = " @deprecated use encoder private options instead"]
6968    pub coder_type: ::std::os::raw::c_int,
6969    #[doc = " @deprecated use encoder private options instead"]
6970    pub context_model: ::std::os::raw::c_int,
6971    #[doc = " @deprecated use encoder private options instead"]
6972    pub frame_skip_threshold: ::std::os::raw::c_int,
6973    #[doc = " @deprecated use encoder private options instead"]
6974    pub frame_skip_factor: ::std::os::raw::c_int,
6975    #[doc = " @deprecated use encoder private options instead"]
6976    pub frame_skip_exp: ::std::os::raw::c_int,
6977    #[doc = " @deprecated use encoder private options instead"]
6978    pub frame_skip_cmp: ::std::os::raw::c_int,
6979    #[doc = " trellis RD quantization"]
6980    #[doc = " - encoding: Set by user."]
6981    #[doc = " - decoding: unused"]
6982    pub trellis: ::std::os::raw::c_int,
6983    #[doc = " @deprecated use encoder private options instead"]
6984    pub min_prediction_order: ::std::os::raw::c_int,
6985    #[doc = " @deprecated use encoder private options instead"]
6986    pub max_prediction_order: ::std::os::raw::c_int,
6987    #[doc = " @deprecated use encoder private options instead"]
6988    pub timecode_frame_start: i64,
6989    #[doc = " @deprecated unused"]
6990    pub rtp_callback: ::std::option::Option<
6991        unsafe extern "C" fn(
6992            avctx: *mut AVCodecContext,
6993            data: *mut ::std::os::raw::c_void,
6994            size: ::std::os::raw::c_int,
6995            mb_nb: ::std::os::raw::c_int,
6996        ),
6997    >,
6998    #[doc = " @deprecated use encoder private options instead"]
6999    pub rtp_payload_size: ::std::os::raw::c_int,
7000    pub mv_bits: ::std::os::raw::c_int,
7001    pub header_bits: ::std::os::raw::c_int,
7002    pub i_tex_bits: ::std::os::raw::c_int,
7003    pub p_tex_bits: ::std::os::raw::c_int,
7004    pub i_count: ::std::os::raw::c_int,
7005    pub p_count: ::std::os::raw::c_int,
7006    pub skip_count: ::std::os::raw::c_int,
7007    pub misc_bits: ::std::os::raw::c_int,
7008    #[doc = " @deprecated this field is unused"]
7009    pub frame_bits: ::std::os::raw::c_int,
7010    #[doc = " pass1 encoding statistics output buffer"]
7011    #[doc = " - encoding: Set by libavcodec."]
7012    #[doc = " - decoding: unused"]
7013    pub stats_out: *mut ::std::os::raw::c_char,
7014    #[doc = " pass2 encoding statistics input buffer"]
7015    #[doc = " Concatenated stuff from stats_out of pass1 should be placed here."]
7016    #[doc = " - encoding: Allocated/set/freed by user."]
7017    #[doc = " - decoding: unused"]
7018    pub stats_in: *mut ::std::os::raw::c_char,
7019    #[doc = " Work around bugs in encoders which sometimes cannot be detected automatically."]
7020    #[doc = " - encoding: Set by user"]
7021    #[doc = " - decoding: Set by user"]
7022    pub workaround_bugs: ::std::os::raw::c_int,
7023    #[doc = " strictly follow the standard (MPEG-4, ...)."]
7024    #[doc = " - encoding: Set by user."]
7025    #[doc = " - decoding: Set by user."]
7026    #[doc = " Setting this to STRICT or higher means the encoder and decoder will"]
7027    #[doc = " generally do stupid things, whereas setting it to unofficial or lower"]
7028    #[doc = " will mean the encoder might produce output that is not supported by all"]
7029    #[doc = " spec-compliant decoders. Decoders don\'t differentiate between normal,"]
7030    #[doc = " unofficial and experimental (that is, they always try to decode things"]
7031    #[doc = " when they can) unless they are explicitly asked to behave stupidly"]
7032    #[doc = " (=strictly conform to the specs)"]
7033    pub strict_std_compliance: ::std::os::raw::c_int,
7034    #[doc = " error concealment flags"]
7035    #[doc = " - encoding: unused"]
7036    #[doc = " - decoding: Set by user."]
7037    pub error_concealment: ::std::os::raw::c_int,
7038    #[doc = " debug"]
7039    #[doc = " - encoding: Set by user."]
7040    #[doc = " - decoding: Set by user."]
7041    pub debug: ::std::os::raw::c_int,
7042    #[doc = " Error recognition; may misdetect some more or less valid parts as errors."]
7043    #[doc = " - encoding: unused"]
7044    #[doc = " - decoding: Set by user."]
7045    pub err_recognition: ::std::os::raw::c_int,
7046    #[doc = " opaque 64-bit number (generally a PTS) that will be reordered and"]
7047    #[doc = " output in AVFrame.reordered_opaque"]
7048    #[doc = " - encoding: unused"]
7049    #[doc = " - decoding: Set by user."]
7050    pub reordered_opaque: i64,
7051    #[doc = " Hardware accelerator in use"]
7052    #[doc = " - encoding: unused."]
7053    #[doc = " - decoding: Set by libavcodec"]
7054    pub hwaccel: *const AVHWAccel,
7055    #[doc = " Hardware accelerator context."]
7056    #[doc = " For some hardware accelerators, a global context needs to be"]
7057    #[doc = " provided by the user. In that case, this holds display-dependent"]
7058    #[doc = " data FFmpeg cannot instantiate itself. Please refer to the"]
7059    #[doc = " FFmpeg HW accelerator documentation to know how to fill this"]
7060    #[doc = " is. e.g. for VA API, this is a struct vaapi_context."]
7061    #[doc = " - encoding: unused"]
7062    #[doc = " - decoding: Set by user"]
7063    pub hwaccel_context: *mut ::std::os::raw::c_void,
7064    #[doc = " error"]
7065    #[doc = " - encoding: Set by libavcodec if flags & AV_CODEC_FLAG_PSNR."]
7066    #[doc = " - decoding: unused"]
7067    pub error: [u64; 8usize],
7068    #[doc = " DCT algorithm, see FF_DCT_* below"]
7069    #[doc = " - encoding: Set by user."]
7070    #[doc = " - decoding: unused"]
7071    pub dct_algo: ::std::os::raw::c_int,
7072    #[doc = " IDCT algorithm, see FF_IDCT_* below."]
7073    #[doc = " - encoding: Set by user."]
7074    #[doc = " - decoding: Set by user."]
7075    pub idct_algo: ::std::os::raw::c_int,
7076    #[doc = " bits per sample/pixel from the demuxer (needed for huffyuv)."]
7077    #[doc = " - encoding: Set by libavcodec."]
7078    #[doc = " - decoding: Set by user."]
7079    pub bits_per_coded_sample: ::std::os::raw::c_int,
7080    #[doc = " Bits per sample/pixel of internal libavcodec pixel/sample format."]
7081    #[doc = " - encoding: set by user."]
7082    #[doc = " - decoding: set by libavcodec."]
7083    pub bits_per_raw_sample: ::std::os::raw::c_int,
7084    #[doc = " low resolution decoding, 1-> 1/2 size, 2->1/4 size"]
7085    #[doc = " - encoding: unused"]
7086    #[doc = " - decoding: Set by user."]
7087    pub lowres: ::std::os::raw::c_int,
7088    #[doc = " the picture in the bitstream"]
7089    #[doc = " - encoding: Set by libavcodec."]
7090    #[doc = " - decoding: unused"]
7091    #[doc = ""]
7092    #[doc = " @deprecated use the quality factor packet side data instead"]
7093    pub coded_frame: *mut AVFrame,
7094    #[doc = " thread count"]
7095    #[doc = " is used to decide how many independent tasks should be passed to execute()"]
7096    #[doc = " - encoding: Set by user."]
7097    #[doc = " - decoding: Set by user."]
7098    pub thread_count: ::std::os::raw::c_int,
7099    #[doc = " Which multithreading methods to use."]
7100    #[doc = " Use of FF_THREAD_FRAME will increase decoding delay by one frame per thread,"]
7101    #[doc = " so clients which cannot provide future frames should not use it."]
7102    #[doc = ""]
7103    #[doc = " - encoding: Set by user, otherwise the default is used."]
7104    #[doc = " - decoding: Set by user, otherwise the default is used."]
7105    pub thread_type: ::std::os::raw::c_int,
7106    #[doc = " Which multithreading methods are in use by the codec."]
7107    #[doc = " - encoding: Set by libavcodec."]
7108    #[doc = " - decoding: Set by libavcodec."]
7109    pub active_thread_type: ::std::os::raw::c_int,
7110    #[doc = " Set by the client if its custom get_buffer() callback can be called"]
7111    #[doc = " synchronously from another thread, which allows faster multithreaded decoding."]
7112    #[doc = " draw_horiz_band() will be called from other threads regardless of this setting."]
7113    #[doc = " Ignored if the default get_buffer() is used."]
7114    #[doc = " - encoding: Set by user."]
7115    #[doc = " - decoding: Set by user."]
7116    pub thread_safe_callbacks: ::std::os::raw::c_int,
7117    #[doc = " The codec may call this to execute several independent things."]
7118    #[doc = " It will return only after finishing all tasks."]
7119    #[doc = " The user may replace this with some multithreaded implementation,"]
7120    #[doc = " the default implementation will execute the parts serially."]
7121    #[doc = " @param count the number of things to execute"]
7122    #[doc = " - encoding: Set by libavcodec, user can override."]
7123    #[doc = " - decoding: Set by libavcodec, user can override."]
7124    pub execute: ::std::option::Option<
7125        unsafe extern "C" fn(
7126            c: *mut AVCodecContext,
7127            func: ::std::option::Option<
7128                unsafe extern "C" fn(
7129                    c2: *mut AVCodecContext,
7130                    arg: *mut ::std::os::raw::c_void,
7131                ) -> ::std::os::raw::c_int,
7132            >,
7133            arg2: *mut ::std::os::raw::c_void,
7134            ret: *mut ::std::os::raw::c_int,
7135            count: ::std::os::raw::c_int,
7136            size: ::std::os::raw::c_int,
7137        ) -> ::std::os::raw::c_int,
7138    >,
7139    #[doc = " The codec may call this to execute several independent things."]
7140    #[doc = " It will return only after finishing all tasks."]
7141    #[doc = " The user may replace this with some multithreaded implementation,"]
7142    #[doc = " the default implementation will execute the parts serially."]
7143    #[doc = " Also see avcodec_thread_init and e.g. the --enable-pthread configure option."]
7144    #[doc = " @param c context passed also to func"]
7145    #[doc = " @param count the number of things to execute"]
7146    #[doc = " @param arg2 argument passed unchanged to func"]
7147    #[doc = " @param ret return values of executed functions, must have space for \"count\" values. May be NULL."]
7148    #[doc = " @param func function that will be called count times, with jobnr from 0 to count-1."]
7149    #[doc = "             threadnr will be in the range 0 to c->thread_count-1 < MAX_THREADS and so that no"]
7150    #[doc = "             two instances of func executing at the same time will have the same threadnr."]
7151    #[doc = " @return always 0 currently, but code should handle a future improvement where when any call to func"]
7152    #[doc = "         returns < 0 no further calls to func may be done and < 0 is returned."]
7153    #[doc = " - encoding: Set by libavcodec, user can override."]
7154    #[doc = " - decoding: Set by libavcodec, user can override."]
7155    pub execute2: ::std::option::Option<
7156        unsafe extern "C" fn(
7157            c: *mut AVCodecContext,
7158            func: ::std::option::Option<
7159                unsafe extern "C" fn(
7160                    c2: *mut AVCodecContext,
7161                    arg: *mut ::std::os::raw::c_void,
7162                    jobnr: ::std::os::raw::c_int,
7163                    threadnr: ::std::os::raw::c_int,
7164                ) -> ::std::os::raw::c_int,
7165            >,
7166            arg2: *mut ::std::os::raw::c_void,
7167            ret: *mut ::std::os::raw::c_int,
7168            count: ::std::os::raw::c_int,
7169        ) -> ::std::os::raw::c_int,
7170    >,
7171    #[doc = " noise vs. sse weight for the nsse comparison function"]
7172    #[doc = " - encoding: Set by user."]
7173    #[doc = " - decoding: unused"]
7174    pub nsse_weight: ::std::os::raw::c_int,
7175    #[doc = " profile"]
7176    #[doc = " - encoding: Set by user."]
7177    #[doc = " - decoding: Set by libavcodec."]
7178    pub profile: ::std::os::raw::c_int,
7179    #[doc = " level"]
7180    #[doc = " - encoding: Set by user."]
7181    #[doc = " - decoding: Set by libavcodec."]
7182    pub level: ::std::os::raw::c_int,
7183    #[doc = " Skip loop filtering for selected frames."]
7184    #[doc = " - encoding: unused"]
7185    #[doc = " - decoding: Set by user."]
7186    pub skip_loop_filter: AVDiscard,
7187    #[doc = " Skip IDCT/dequantization for selected frames."]
7188    #[doc = " - encoding: unused"]
7189    #[doc = " - decoding: Set by user."]
7190    pub skip_idct: AVDiscard,
7191    #[doc = " Skip decoding for selected frames."]
7192    #[doc = " - encoding: unused"]
7193    #[doc = " - decoding: Set by user."]
7194    pub skip_frame: AVDiscard,
7195    #[doc = " Header containing style information for text subtitles."]
7196    #[doc = " For SUBTITLE_ASS subtitle type, it should contain the whole ASS"]
7197    #[doc = " [Script Info] and [V4+ Styles] section, plus the [Events] line and"]
7198    #[doc = " the Format line following. It shouldn\'t include any Dialogue line."]
7199    #[doc = " - encoding: Set/allocated/freed by user (before avcodec_open2())"]
7200    #[doc = " - decoding: Set/allocated/freed by libavcodec (by avcodec_open2())"]
7201    pub subtitle_header: *mut u8,
7202    pub subtitle_header_size: ::std::os::raw::c_int,
7203    #[doc = " VBV delay coded in the last frame (in periods of a 27 MHz clock)."]
7204    #[doc = " Used for compliant TS muxing."]
7205    #[doc = " - encoding: Set by libavcodec."]
7206    #[doc = " - decoding: unused."]
7207    #[doc = " @deprecated this value is now exported as a part of"]
7208    #[doc = " AV_PKT_DATA_CPB_PROPERTIES packet side data"]
7209    pub vbv_delay: u64,
7210    #[doc = " Encoding only and set by default. Allow encoders to output packets"]
7211    #[doc = " that do not contain any encoded data, only side data."]
7212    #[doc = ""]
7213    #[doc = " Some encoders need to output such packets, e.g. to update some stream"]
7214    #[doc = " parameters at the end of encoding."]
7215    #[doc = ""]
7216    #[doc = " @deprecated this field disables the default behaviour and"]
7217    #[doc = "             it is kept only for compatibility."]
7218    pub side_data_only_packets: ::std::os::raw::c_int,
7219    #[doc = " Audio only. The number of \"priming\" samples (padding) inserted by the"]
7220    #[doc = " encoder at the beginning of the audio. I.e. this number of leading"]
7221    #[doc = " decoded samples must be discarded by the caller to get the original audio"]
7222    #[doc = " without leading padding."]
7223    #[doc = ""]
7224    #[doc = " - decoding: unused"]
7225    #[doc = " - encoding: Set by libavcodec. The timestamps on the output packets are"]
7226    #[doc = "             adjusted by the encoder so that they always refer to the"]
7227    #[doc = "             first sample of the data actually contained in the packet,"]
7228    #[doc = "             including any added padding.  E.g. if the timebase is"]
7229    #[doc = "             1/samplerate and the timestamp of the first input sample is"]
7230    #[doc = "             0, the timestamp of the first output packet will be"]
7231    #[doc = "             -initial_padding."]
7232    pub initial_padding: ::std::os::raw::c_int,
7233    #[doc = " - decoding: For codecs that store a framerate value in the compressed"]
7234    #[doc = "             bitstream, the decoder may export it here. { 0, 1} when"]
7235    #[doc = "             unknown."]
7236    #[doc = " - encoding: May be used to signal the framerate of CFR content to an"]
7237    #[doc = "             encoder."]
7238    pub framerate: AVRational,
7239    #[doc = " Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx."]
7240    #[doc = " - encoding: unused."]
7241    #[doc = " - decoding: Set by libavcodec before calling get_format()"]
7242    pub sw_pix_fmt: AVPixelFormat,
7243    #[doc = " Timebase in which pkt_dts/pts and AVPacket.dts/pts are."]
7244    #[doc = " - encoding unused."]
7245    #[doc = " - decoding set by user."]
7246    pub pkt_timebase: AVRational,
7247    #[doc = " AVCodecDescriptor"]
7248    #[doc = " - encoding: unused."]
7249    #[doc = " - decoding: set by libavcodec."]
7250    pub codec_descriptor: *const AVCodecDescriptor,
7251    #[doc = " Current statistics for PTS correction."]
7252    #[doc = " - decoding: maintained and used by libavcodec, not intended to be used by user apps"]
7253    #[doc = " - encoding: unused"]
7254    pub pts_correction_num_faulty_pts: i64,
7255    #[doc = " Number of incorrect PTS values so far"]
7256    pub pts_correction_num_faulty_dts: i64,
7257    #[doc = " Number of incorrect DTS values so far"]
7258    pub pts_correction_last_pts: i64,
7259    #[doc = " PTS of the last frame"]
7260    pub pts_correction_last_dts: i64,
7261    #[doc = " Character encoding of the input subtitles file."]
7262    #[doc = " - decoding: set by user"]
7263    #[doc = " - encoding: unused"]
7264    pub sub_charenc: *mut ::std::os::raw::c_char,
7265    #[doc = " Subtitles character encoding mode. Formats or codecs might be adjusting"]
7266    #[doc = " this setting (if they are doing the conversion themselves for instance)."]
7267    #[doc = " - decoding: set by libavcodec"]
7268    #[doc = " - encoding: unused"]
7269    pub sub_charenc_mode: ::std::os::raw::c_int,
7270    #[doc = " Skip processing alpha if supported by codec."]
7271    #[doc = " Note that if the format uses pre-multiplied alpha (common with VP6,"]
7272    #[doc = " and recommended due to better video quality/compression)"]
7273    #[doc = " the image will look as if alpha-blended onto a black background."]
7274    #[doc = " However for formats that do not use pre-multiplied alpha"]
7275    #[doc = " there might be serious artefacts (though e.g. libswscale currently"]
7276    #[doc = " assumes pre-multiplied alpha anyway)."]
7277    #[doc = ""]
7278    #[doc = " - decoding: set by user"]
7279    #[doc = " - encoding: unused"]
7280    pub skip_alpha: ::std::os::raw::c_int,
7281    #[doc = " Number of samples to skip after a discontinuity"]
7282    #[doc = " - decoding: unused"]
7283    #[doc = " - encoding: set by libavcodec"]
7284    pub seek_preroll: ::std::os::raw::c_int,
7285    #[doc = " debug motion vectors"]
7286    #[doc = " - encoding: Set by user."]
7287    #[doc = " - decoding: Set by user."]
7288    pub debug_mv: ::std::os::raw::c_int,
7289    #[doc = " custom intra quantization matrix"]
7290    #[doc = " - encoding: Set by user, can be NULL."]
7291    #[doc = " - decoding: unused."]
7292    pub chroma_intra_matrix: *mut u16,
7293    #[doc = " dump format separator."]
7294    #[doc = " can be \", \" or \"\\n      \" or anything else"]
7295    #[doc = " - encoding: Set by user."]
7296    #[doc = " - decoding: Set by user."]
7297    pub dump_separator: *mut u8,
7298    #[doc = " \',\' separated list of allowed decoders."]
7299    #[doc = " If NULL then all are allowed"]
7300    #[doc = " - encoding: unused"]
7301    #[doc = " - decoding: set by user"]
7302    pub codec_whitelist: *mut ::std::os::raw::c_char,
7303    #[doc = " Properties of the stream that gets decoded"]
7304    #[doc = " - encoding: unused"]
7305    #[doc = " - decoding: set by libavcodec"]
7306    pub properties: ::std::os::raw::c_uint,
7307    #[doc = " Additional data associated with the entire coded stream."]
7308    #[doc = ""]
7309    #[doc = " - decoding: unused"]
7310    #[doc = " - encoding: may be set by libavcodec after avcodec_open2()."]
7311    pub coded_side_data: *mut AVPacketSideData,
7312    pub nb_coded_side_data: ::std::os::raw::c_int,
7313    #[doc = " A reference to the AVHWFramesContext describing the input (for encoding)"]
7314    #[doc = " or output (decoding) frames. The reference is set by the caller and"]
7315    #[doc = " afterwards owned (and freed) by libavcodec - it should never be read by"]
7316    #[doc = " the caller after being set."]
7317    #[doc = ""]
7318    #[doc = " - decoding: This field should be set by the caller from the get_format()"]
7319    #[doc = "             callback. The previous reference (if any) will always be"]
7320    #[doc = "             unreffed by libavcodec before the get_format() call."]
7321    #[doc = ""]
7322    #[doc = "             If the default get_buffer2() is used with a hwaccel pixel"]
7323    #[doc = "             format, then this AVHWFramesContext will be used for"]
7324    #[doc = "             allocating the frame buffers."]
7325    #[doc = ""]
7326    #[doc = " - encoding: For hardware encoders configured to use a hwaccel pixel"]
7327    #[doc = "             format, this field should be set by the caller to a reference"]
7328    #[doc = "             to the AVHWFramesContext describing input frames."]
7329    #[doc = "             AVHWFramesContext.format must be equal to"]
7330    #[doc = "             AVCodecContext.pix_fmt."]
7331    #[doc = ""]
7332    #[doc = "             This field should be set before avcodec_open2() is called."]
7333    pub hw_frames_ctx: *mut AVBufferRef,
7334    #[doc = " Control the form of AVSubtitle.rects[N]->ass"]
7335    #[doc = " - decoding: set by user"]
7336    #[doc = " - encoding: unused"]
7337    pub sub_text_format: ::std::os::raw::c_int,
7338    #[doc = " Audio only. The amount of padding (in samples) appended by the encoder to"]
7339    #[doc = " the end of the audio. I.e. this number of decoded samples must be"]
7340    #[doc = " discarded by the caller from the end of the stream to get the original"]
7341    #[doc = " audio without any trailing padding."]
7342    #[doc = ""]
7343    #[doc = " - decoding: unused"]
7344    #[doc = " - encoding: unused"]
7345    pub trailing_padding: ::std::os::raw::c_int,
7346    #[doc = " The number of pixels per image to maximally accept."]
7347    #[doc = ""]
7348    #[doc = " - decoding: set by user"]
7349    #[doc = " - encoding: set by user"]
7350    pub max_pixels: i64,
7351    #[doc = " A reference to the AVHWDeviceContext describing the device which will"]
7352    #[doc = " be used by a hardware encoder/decoder.  The reference is set by the"]
7353    #[doc = " caller and afterwards owned (and freed) by libavcodec."]
7354    #[doc = ""]
7355    #[doc = " This should be used if either the codec device does not require"]
7356    #[doc = " hardware frames or any that are used are to be allocated internally by"]
7357    #[doc = " libavcodec.  If the user wishes to supply any of the frames used as"]
7358    #[doc = " encoder input or decoder output then hw_frames_ctx should be used"]
7359    #[doc = " instead.  When hw_frames_ctx is set in get_format() for a decoder, this"]
7360    #[doc = " field will be ignored while decoding the associated stream segment, but"]
7361    #[doc = " may again be used on a following one after another get_format() call."]
7362    #[doc = ""]
7363    #[doc = " For both encoders and decoders this field should be set before"]
7364    #[doc = " avcodec_open2() is called and must not be written to thereafter."]
7365    #[doc = ""]
7366    #[doc = " Note that some decoders may require this field to be set initially in"]
7367    #[doc = " order to support hw_frames_ctx at all - in that case, all frames"]
7368    #[doc = " contexts used must be created on the same device."]
7369    pub hw_device_ctx: *mut AVBufferRef,
7370    #[doc = " Bit set of AV_HWACCEL_FLAG_* flags, which affect hardware accelerated"]
7371    #[doc = " decoding (if active)."]
7372    #[doc = " - encoding: unused"]
7373    #[doc = " - decoding: Set by user (either before avcodec_open2(), or in the"]
7374    #[doc = "             AVCodecContext.get_format callback)"]
7375    pub hwaccel_flags: ::std::os::raw::c_int,
7376    #[doc = " Video decoding only. Certain video codecs support cropping, meaning that"]
7377    #[doc = " only a sub-rectangle of the decoded frame is intended for display.  This"]
7378    #[doc = " option controls how cropping is handled by libavcodec."]
7379    #[doc = ""]
7380    #[doc = " When set to 1 (the default), libavcodec will apply cropping internally."]
7381    #[doc = " I.e. it will modify the output frame width/height fields and offset the"]
7382    #[doc = " data pointers (only by as much as possible while preserving alignment, or"]
7383    #[doc = " by the full amount if the AV_CODEC_FLAG_UNALIGNED flag is set) so that"]
7384    #[doc = " the frames output by the decoder refer only to the cropped area. The"]
7385    #[doc = " crop_* fields of the output frames will be zero."]
7386    #[doc = ""]
7387    #[doc = " When set to 0, the width/height fields of the output frames will be set"]
7388    #[doc = " to the coded dimensions and the crop_* fields will describe the cropping"]
7389    #[doc = " rectangle. Applying the cropping is left to the caller."]
7390    #[doc = ""]
7391    #[doc = " @warning When hardware acceleration with opaque output frames is used,"]
7392    #[doc = " libavcodec is unable to apply cropping from the top/left border."]
7393    #[doc = ""]
7394    #[doc = " @note when this option is set to zero, the width/height fields of the"]
7395    #[doc = " AVCodecContext and output AVFrames have different meanings. The codec"]
7396    #[doc = " context fields store display dimensions (with the coded dimensions in"]
7397    #[doc = " coded_width/height), while the frame fields store the coded dimensions"]
7398    #[doc = " (with the display dimensions being determined by the crop_* fields)."]
7399    pub apply_cropping: ::std::os::raw::c_int,
7400    pub extra_hw_frames: ::std::os::raw::c_int,
7401}
7402extern "C" {
7403    #[doc = " Accessors for some AVCodecContext fields. These used to be provided for ABI"]
7404    #[doc = " compatibility, and do not need to be used anymore."]
7405    pub fn av_codec_get_pkt_timebase(avctx: *const AVCodecContext) -> AVRational;
7406}
7407extern "C" {
7408    pub fn av_codec_set_pkt_timebase(avctx: *mut AVCodecContext, val: AVRational);
7409}
7410extern "C" {
7411    pub fn av_codec_get_codec_descriptor(avctx: *const AVCodecContext) -> *const AVCodecDescriptor;
7412}
7413extern "C" {
7414    pub fn av_codec_set_codec_descriptor(
7415        avctx: *mut AVCodecContext,
7416        desc: *const AVCodecDescriptor,
7417    );
7418}
7419extern "C" {
7420    pub fn av_codec_get_codec_properties(avctx: *const AVCodecContext) -> ::std::os::raw::c_uint;
7421}
7422extern "C" {
7423    pub fn av_codec_get_lowres(avctx: *const AVCodecContext) -> ::std::os::raw::c_int;
7424}
7425extern "C" {
7426    pub fn av_codec_set_lowres(avctx: *mut AVCodecContext, val: ::std::os::raw::c_int);
7427}
7428extern "C" {
7429    pub fn av_codec_get_seek_preroll(avctx: *const AVCodecContext) -> ::std::os::raw::c_int;
7430}
7431extern "C" {
7432    pub fn av_codec_set_seek_preroll(avctx: *mut AVCodecContext, val: ::std::os::raw::c_int);
7433}
7434extern "C" {
7435    pub fn av_codec_get_chroma_intra_matrix(avctx: *const AVCodecContext) -> *mut u16;
7436}
7437extern "C" {
7438    pub fn av_codec_set_chroma_intra_matrix(avctx: *mut AVCodecContext, val: *mut u16);
7439}
7440#[doc = " AVProfile."]
7441#[repr(C)]
7442#[derive(Debug, Copy, Clone)]
7443pub struct AVProfile {
7444    pub profile: ::std::os::raw::c_int,
7445    #[doc = "< short name for the profile"]
7446    pub name: *const ::std::os::raw::c_char,
7447}
7448#[doc = " The codec supports this format via the hw_device_ctx interface."]
7449#[doc = ""]
7450#[doc = " When selecting this format, AVCodecContext.hw_device_ctx should"]
7451#[doc = " have been set to a device of the specified type before calling"]
7452#[doc = " avcodec_open2()."]
7453pub const AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX: _bindgen_ty_4 = 1;
7454#[doc = " The codec supports this format via the hw_frames_ctx interface."]
7455#[doc = ""]
7456#[doc = " When selecting this format for a decoder,"]
7457#[doc = " AVCodecContext.hw_frames_ctx should be set to a suitable frames"]
7458#[doc = " context inside the get_format() callback.  The frames context"]
7459#[doc = " must have been created on a device of the specified type."]
7460pub const AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX: _bindgen_ty_4 = 2;
7461#[doc = " The codec supports this format by some internal method."]
7462#[doc = ""]
7463#[doc = " This format can be selected without any additional configuration -"]
7464#[doc = " no device or frames context is required."]
7465pub const AV_CODEC_HW_CONFIG_METHOD_INTERNAL: _bindgen_ty_4 = 4;
7466#[doc = " The codec supports this format by some ad-hoc method."]
7467#[doc = ""]
7468#[doc = " Additional settings and/or function calls are required.  See the"]
7469#[doc = " codec-specific documentation for details.  (Methods requiring"]
7470#[doc = " this sort of configuration are deprecated and others should be"]
7471#[doc = " used in preference.)"]
7472pub const AV_CODEC_HW_CONFIG_METHOD_AD_HOC: _bindgen_ty_4 = 8;
7473pub type _bindgen_ty_4 = u32;
7474#[repr(C)]
7475#[derive(Debug, Copy, Clone)]
7476pub struct AVCodecHWConfig {
7477    #[doc = " A hardware pixel format which the codec can use."]
7478    pub pix_fmt: AVPixelFormat,
7479    #[doc = " Bit set of AV_CODEC_HW_CONFIG_METHOD_* flags, describing the possible"]
7480    #[doc = " setup methods which can be used with this configuration."]
7481    pub methods: ::std::os::raw::c_int,
7482    #[doc = " The device type associated with the configuration."]
7483    #[doc = ""]
7484    #[doc = " Must be set for AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX and"]
7485    #[doc = " AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX, otherwise unused."]
7486    pub device_type: AVHWDeviceType,
7487}
7488#[repr(C)]
7489#[derive(Debug, Copy, Clone)]
7490pub struct AVCodecDefault {
7491    _unused: [u8; 0],
7492}
7493#[doc = " AVCodec."]
7494#[repr(C)]
7495#[derive(Debug, Copy, Clone)]
7496pub struct AVCodec {
7497    #[doc = " Name of the codec implementation."]
7498    #[doc = " The name is globally unique among encoders and among decoders (but an"]
7499    #[doc = " encoder and a decoder can share the same name)."]
7500    #[doc = " This is the primary way to find a codec from the user perspective."]
7501    pub name: *const ::std::os::raw::c_char,
7502    #[doc = " Descriptive name for the codec, meant to be more human readable than name."]
7503    #[doc = " You should use the NULL_IF_CONFIG_SMALL() macro to define it."]
7504    pub long_name: *const ::std::os::raw::c_char,
7505    pub type_: AVMediaType,
7506    pub id: AVCodecID,
7507    #[doc = " Codec capabilities."]
7508    #[doc = " see AV_CODEC_CAP_*"]
7509    pub capabilities: ::std::os::raw::c_int,
7510    #[doc = "< array of supported framerates, or NULL if any, array is terminated by {0,0}"]
7511    pub supported_framerates: *const AVRational,
7512    #[doc = "< array of supported pixel formats, or NULL if unknown, array is terminated by -1"]
7513    pub pix_fmts: *const AVPixelFormat,
7514    #[doc = "< array of supported audio samplerates, or NULL if unknown, array is terminated by 0"]
7515    pub supported_samplerates: *const ::std::os::raw::c_int,
7516    #[doc = "< array of supported sample formats, or NULL if unknown, array is terminated by -1"]
7517    pub sample_fmts: *const AVSampleFormat,
7518    #[doc = "< array of support channel layouts, or NULL if unknown. array is terminated by 0"]
7519    pub channel_layouts: *const u64,
7520    #[doc = "< maximum value for lowres supported by the decoder"]
7521    pub max_lowres: u8,
7522    #[doc = "< AVClass for the private context"]
7523    pub priv_class: *const AVClass,
7524    #[doc = "< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}"]
7525    pub profiles: *const AVProfile,
7526    #[doc = " Group name of the codec implementation."]
7527    #[doc = " This is a short symbolic name of the wrapper backing this codec. A"]
7528    #[doc = " wrapper uses some kind of external implementation for the codec, such"]
7529    #[doc = " as an external library, or a codec implementation provided by the OS or"]
7530    #[doc = " the hardware."]
7531    #[doc = " If this field is NULL, this is a builtin, libavcodec native codec."]
7532    #[doc = " If non-NULL, this will be the suffix in AVCodec.name in most cases"]
7533    #[doc = " (usually AVCodec.name will be of the form \"<codec_name>_<wrapper_name>\")."]
7534    pub wrapper_name: *const ::std::os::raw::c_char,
7535    #[doc = " No fields below this line are part of the public API. They"]
7536    #[doc = " may not be used outside of libavcodec and can be changed and"]
7537    #[doc = " removed at will."]
7538    #[doc = " New public fields should be added right above."]
7539    #[doc = ""]
7540    pub priv_data_size: ::std::os::raw::c_int,
7541    pub next: *mut AVCodec,
7542    #[doc = " @name Frame-level threading support functions"]
7543    #[doc = " @{"]
7544    #[doc = " If defined, called on thread contexts when they are created."]
7545    #[doc = " If the codec allocates writable tables in init(), re-allocate them here."]
7546    #[doc = " priv_data will be set to a copy of the original."]
7547    pub init_thread_copy: ::std::option::Option<
7548        unsafe extern "C" fn(arg1: *mut AVCodecContext) -> ::std::os::raw::c_int,
7549    >,
7550    #[doc = " Copy necessary context variables from a previous thread context to the current one."]
7551    #[doc = " If not defined, the next thread will start automatically; otherwise, the codec"]
7552    #[doc = " must call ff_thread_finish_setup()."]
7553    #[doc = ""]
7554    #[doc = " dst and src will (rarely) point to the same context, in which case memcpy should be skipped."]
7555    pub update_thread_context: ::std::option::Option<
7556        unsafe extern "C" fn(
7557            dst: *mut AVCodecContext,
7558            src: *const AVCodecContext,
7559        ) -> ::std::os::raw::c_int,
7560    >,
7561    #[doc = " Private codec-specific defaults."]
7562    pub defaults: *const AVCodecDefault,
7563    #[doc = " Initialize codec static data, called from avcodec_register()."]
7564    #[doc = ""]
7565    #[doc = " This is not intended for time consuming operations as it is"]
7566    #[doc = " run for every codec regardless of that codec being used."]
7567    pub init_static_data: ::std::option::Option<unsafe extern "C" fn(codec: *mut AVCodec)>,
7568    pub init: ::std::option::Option<
7569        unsafe extern "C" fn(arg1: *mut AVCodecContext) -> ::std::os::raw::c_int,
7570    >,
7571    pub encode_sub: ::std::option::Option<
7572        unsafe extern "C" fn(
7573            arg1: *mut AVCodecContext,
7574            buf: *mut u8,
7575            buf_size: ::std::os::raw::c_int,
7576            sub: *const AVSubtitle,
7577        ) -> ::std::os::raw::c_int,
7578    >,
7579    #[doc = " Encode data to an AVPacket."]
7580    #[doc = ""]
7581    #[doc = " @param      avctx          codec context"]
7582    #[doc = " @param      avpkt          output AVPacket (may contain a user-provided buffer)"]
7583    #[doc = " @param[in]  frame          AVFrame containing the raw data to be encoded"]
7584    #[doc = " @param[out] got_packet_ptr encoder sets to 0 or 1 to indicate that a"]
7585    #[doc = "                            non-empty packet was returned in avpkt."]
7586    #[doc = " @return 0 on success, negative error code on failure"]
7587    pub encode2: ::std::option::Option<
7588        unsafe extern "C" fn(
7589            avctx: *mut AVCodecContext,
7590            avpkt: *mut AVPacket,
7591            frame: *const AVFrame,
7592            got_packet_ptr: *mut ::std::os::raw::c_int,
7593        ) -> ::std::os::raw::c_int,
7594    >,
7595    pub decode: ::std::option::Option<
7596        unsafe extern "C" fn(
7597            arg1: *mut AVCodecContext,
7598            outdata: *mut ::std::os::raw::c_void,
7599            outdata_size: *mut ::std::os::raw::c_int,
7600            avpkt: *mut AVPacket,
7601        ) -> ::std::os::raw::c_int,
7602    >,
7603    pub close: ::std::option::Option<
7604        unsafe extern "C" fn(arg1: *mut AVCodecContext) -> ::std::os::raw::c_int,
7605    >,
7606    #[doc = " Encode API with decoupled packet/frame dataflow. The API is the"]
7607    #[doc = " same as the avcodec_ prefixed APIs (avcodec_send_frame() etc.), except"]
7608    #[doc = " that:"]
7609    #[doc = " - never called if the codec is closed or the wrong type,"]
7610    #[doc = " - if AV_CODEC_CAP_DELAY is not set, drain frames are never sent,"]
7611    #[doc = " - only one drain frame is ever passed down,"]
7612    pub send_frame: ::std::option::Option<
7613        unsafe extern "C" fn(
7614            avctx: *mut AVCodecContext,
7615            frame: *const AVFrame,
7616        ) -> ::std::os::raw::c_int,
7617    >,
7618    pub receive_packet: ::std::option::Option<
7619        unsafe extern "C" fn(
7620            avctx: *mut AVCodecContext,
7621            avpkt: *mut AVPacket,
7622        ) -> ::std::os::raw::c_int,
7623    >,
7624    #[doc = " Decode API with decoupled packet/frame dataflow. This function is called"]
7625    #[doc = " to get one output frame. It should call ff_decode_get_packet() to obtain"]
7626    #[doc = " input data."]
7627    pub receive_frame: ::std::option::Option<
7628        unsafe extern "C" fn(
7629            avctx: *mut AVCodecContext,
7630            frame: *mut AVFrame,
7631        ) -> ::std::os::raw::c_int,
7632    >,
7633    #[doc = " Flush buffers."]
7634    #[doc = " Will be called when seeking"]
7635    pub flush: ::std::option::Option<unsafe extern "C" fn(arg1: *mut AVCodecContext)>,
7636    #[doc = " Internal codec capabilities."]
7637    #[doc = " See FF_CODEC_CAP_* in internal.h"]
7638    pub caps_internal: ::std::os::raw::c_int,
7639    #[doc = " Decoding only, a comma-separated list of bitstream filters to apply to"]
7640    #[doc = " packets before decoding."]
7641    pub bsfs: *const ::std::os::raw::c_char,
7642    #[doc = " Array of pointers to hardware configurations supported by the codec,"]
7643    #[doc = " or NULL if no hardware supported.  The array is terminated by a NULL"]
7644    #[doc = " pointer."]
7645    #[doc = ""]
7646    #[doc = " The user can only access this field via avcodec_get_hw_config()."]
7647    pub hw_configs: *mut *mut AVCodecHWConfigInternal,
7648}
7649extern "C" {
7650    pub fn av_codec_get_max_lowres(codec: *const AVCodec) -> ::std::os::raw::c_int;
7651}
7652#[repr(C)]
7653#[derive(Debug, Copy, Clone)]
7654pub struct MpegEncContext {
7655    _unused: [u8; 0],
7656}
7657extern "C" {
7658    #[doc = " Retrieve supported hardware configurations for a codec."]
7659    #[doc = ""]
7660    #[doc = " Values of index from zero to some maximum return the indexed configuration"]
7661    #[doc = " descriptor; all other values return NULL.  If the codec does not support"]
7662    #[doc = " any hardware configurations then it will always return NULL."]
7663    pub fn avcodec_get_hw_config(
7664        codec: *const AVCodec,
7665        index: ::std::os::raw::c_int,
7666    ) -> *const AVCodecHWConfig;
7667}
7668#[doc = " @defgroup lavc_hwaccel AVHWAccel"]
7669#[doc = ""]
7670#[doc = " @note  Nothing in this structure should be accessed by the user.  At some"]
7671#[doc = "        point in future it will not be externally visible at all."]
7672#[doc = ""]
7673#[doc = " @{"]
7674#[repr(C)]
7675#[derive(Debug, Copy, Clone)]
7676pub struct AVHWAccel {
7677    #[doc = " Name of the hardware accelerated codec."]
7678    #[doc = " The name is globally unique among encoders and among decoders (but an"]
7679    #[doc = " encoder and a decoder can share the same name)."]
7680    pub name: *const ::std::os::raw::c_char,
7681    #[doc = " Type of codec implemented by the hardware accelerator."]
7682    #[doc = ""]
7683    #[doc = " See AVMEDIA_TYPE_xxx"]
7684    pub type_: AVMediaType,
7685    #[doc = " Codec implemented by the hardware accelerator."]
7686    #[doc = ""]
7687    #[doc = " See AV_CODEC_ID_xxx"]
7688    pub id: AVCodecID,
7689    #[doc = " Supported pixel format."]
7690    #[doc = ""]
7691    #[doc = " Only hardware accelerated formats are supported here."]
7692    pub pix_fmt: AVPixelFormat,
7693    #[doc = " Hardware accelerated codec capabilities."]
7694    #[doc = " see AV_HWACCEL_CODEC_CAP_*"]
7695    pub capabilities: ::std::os::raw::c_int,
7696    #[doc = " Allocate a custom buffer"]
7697    pub alloc_frame: ::std::option::Option<
7698        unsafe extern "C" fn(
7699            avctx: *mut AVCodecContext,
7700            frame: *mut AVFrame,
7701        ) -> ::std::os::raw::c_int,
7702    >,
7703    #[doc = " Called at the beginning of each frame or field picture."]
7704    #[doc = ""]
7705    #[doc = " Meaningful frame information (codec specific) is guaranteed to"]
7706    #[doc = " be parsed at this point. This function is mandatory."]
7707    #[doc = ""]
7708    #[doc = " Note that buf can be NULL along with buf_size set to 0."]
7709    #[doc = " Otherwise, this means the whole frame is available at this point."]
7710    #[doc = ""]
7711    #[doc = " @param avctx the codec context"]
7712    #[doc = " @param buf the frame data buffer base"]
7713    #[doc = " @param buf_size the size of the frame in bytes"]
7714    #[doc = " @return zero if successful, a negative value otherwise"]
7715    pub start_frame: ::std::option::Option<
7716        unsafe extern "C" fn(
7717            avctx: *mut AVCodecContext,
7718            buf: *const u8,
7719            buf_size: u32,
7720        ) -> ::std::os::raw::c_int,
7721    >,
7722    #[doc = " Callback for parameter data (SPS/PPS/VPS etc)."]
7723    #[doc = ""]
7724    #[doc = " Useful for hardware decoders which keep persistent state about the"]
7725    #[doc = " video parameters, and need to receive any changes to update that state."]
7726    #[doc = ""]
7727    #[doc = " @param avctx the codec context"]
7728    #[doc = " @param type the nal unit type"]
7729    #[doc = " @param buf the nal unit data buffer"]
7730    #[doc = " @param buf_size the size of the nal unit in bytes"]
7731    #[doc = " @return zero if successful, a negative value otherwise"]
7732    pub decode_params: ::std::option::Option<
7733        unsafe extern "C" fn(
7734            avctx: *mut AVCodecContext,
7735            type_: ::std::os::raw::c_int,
7736            buf: *const u8,
7737            buf_size: u32,
7738        ) -> ::std::os::raw::c_int,
7739    >,
7740    #[doc = " Callback for each slice."]
7741    #[doc = ""]
7742    #[doc = " Meaningful slice information (codec specific) is guaranteed to"]
7743    #[doc = " be parsed at this point. This function is mandatory."]
7744    #[doc = " The only exception is XvMC, that works on MB level."]
7745    #[doc = ""]
7746    #[doc = " @param avctx the codec context"]
7747    #[doc = " @param buf the slice data buffer base"]
7748    #[doc = " @param buf_size the size of the slice in bytes"]
7749    #[doc = " @return zero if successful, a negative value otherwise"]
7750    pub decode_slice: ::std::option::Option<
7751        unsafe extern "C" fn(
7752            avctx: *mut AVCodecContext,
7753            buf: *const u8,
7754            buf_size: u32,
7755        ) -> ::std::os::raw::c_int,
7756    >,
7757    #[doc = " Called at the end of each frame or field picture."]
7758    #[doc = ""]
7759    #[doc = " The whole picture is parsed at this point and can now be sent"]
7760    #[doc = " to the hardware accelerator. This function is mandatory."]
7761    #[doc = ""]
7762    #[doc = " @param avctx the codec context"]
7763    #[doc = " @return zero if successful, a negative value otherwise"]
7764    pub end_frame: ::std::option::Option<
7765        unsafe extern "C" fn(avctx: *mut AVCodecContext) -> ::std::os::raw::c_int,
7766    >,
7767    #[doc = " Size of per-frame hardware accelerator private data."]
7768    #[doc = ""]
7769    #[doc = " Private data is allocated with av_mallocz() before"]
7770    #[doc = " AVCodecContext.get_buffer() and deallocated after"]
7771    #[doc = " AVCodecContext.release_buffer()."]
7772    pub frame_priv_data_size: ::std::os::raw::c_int,
7773    #[doc = " Called for every Macroblock in a slice."]
7774    #[doc = ""]
7775    #[doc = " XvMC uses it to replace the ff_mpv_reconstruct_mb()."]
7776    #[doc = " Instead of decoding to raw picture, MB parameters are"]
7777    #[doc = " stored in an array provided by the video driver."]
7778    #[doc = ""]
7779    #[doc = " @param s the mpeg context"]
7780    pub decode_mb: ::std::option::Option<unsafe extern "C" fn(s: *mut MpegEncContext)>,
7781    #[doc = " Initialize the hwaccel private data."]
7782    #[doc = ""]
7783    #[doc = " This will be called from ff_get_format(), after hwaccel and"]
7784    #[doc = " hwaccel_context are set and the hwaccel private data in AVCodecInternal"]
7785    #[doc = " is allocated."]
7786    pub init: ::std::option::Option<
7787        unsafe extern "C" fn(avctx: *mut AVCodecContext) -> ::std::os::raw::c_int,
7788    >,
7789    #[doc = " Uninitialize the hwaccel private data."]
7790    #[doc = ""]
7791    #[doc = " This will be called from get_format() or avcodec_close(), after hwaccel"]
7792    #[doc = " and hwaccel_context are already uninitialized."]
7793    pub uninit: ::std::option::Option<
7794        unsafe extern "C" fn(avctx: *mut AVCodecContext) -> ::std::os::raw::c_int,
7795    >,
7796    #[doc = " Size of the private data to allocate in"]
7797    #[doc = " AVCodecInternal.hwaccel_priv_data."]
7798    pub priv_data_size: ::std::os::raw::c_int,
7799    #[doc = " Internal hwaccel capabilities."]
7800    pub caps_internal: ::std::os::raw::c_int,
7801    #[doc = " Fill the given hw_frames context with current codec parameters. Called"]
7802    #[doc = " from get_format. Refer to avcodec_get_hw_frames_parameters() for"]
7803    #[doc = " details."]
7804    #[doc = ""]
7805    #[doc = " This CAN be called before AVHWAccel.init is called, and you must assume"]
7806    #[doc = " that avctx->hwaccel_priv_data is invalid."]
7807    pub frame_params: ::std::option::Option<
7808        unsafe extern "C" fn(
7809            avctx: *mut AVCodecContext,
7810            hw_frames_ctx: *mut AVBufferRef,
7811        ) -> ::std::os::raw::c_int,
7812    >,
7813}
7814#[doc = " Picture data structure."]
7815#[doc = ""]
7816#[doc = " Up to four components can be stored into it, the last component is"]
7817#[doc = " alpha."]
7818#[doc = " @deprecated use AVFrame or imgutils functions instead"]
7819#[repr(C)]
7820#[derive(Debug, Copy, Clone)]
7821pub struct AVPicture {
7822    #[doc = "< pointers to the image data planes"]
7823    pub data: [*mut u8; 8usize],
7824    #[doc = "< number of bytes per line"]
7825    pub linesize: [::std::os::raw::c_int; 8usize],
7826}
7827pub const AVSubtitleType_SUBTITLE_NONE: AVSubtitleType = 0;
7828#[doc = "< A bitmap, pict will be set"]
7829pub const AVSubtitleType_SUBTITLE_BITMAP: AVSubtitleType = 1;
7830#[doc = " Plain text, the text field must be set by the decoder and is"]
7831#[doc = " authoritative. ass and pict fields may contain approximations."]
7832pub const AVSubtitleType_SUBTITLE_TEXT: AVSubtitleType = 2;
7833#[doc = " Formatted text, the ass field must be set by the decoder and is"]
7834#[doc = " authoritative. pict and text fields may contain approximations."]
7835pub const AVSubtitleType_SUBTITLE_ASS: AVSubtitleType = 3;
7836pub type AVSubtitleType = u32;
7837#[repr(C)]
7838#[derive(Debug, Copy, Clone)]
7839pub struct AVSubtitleRect {
7840    #[doc = "< top left corner  of pict, undefined when pict is not set"]
7841    pub x: ::std::os::raw::c_int,
7842    #[doc = "< top left corner  of pict, undefined when pict is not set"]
7843    pub y: ::std::os::raw::c_int,
7844    #[doc = "< width            of pict, undefined when pict is not set"]
7845    pub w: ::std::os::raw::c_int,
7846    #[doc = "< height           of pict, undefined when pict is not set"]
7847    pub h: ::std::os::raw::c_int,
7848    #[doc = "< number of colors in pict, undefined when pict is not set"]
7849    pub nb_colors: ::std::os::raw::c_int,
7850    #[doc = " @deprecated unused"]
7851    pub pict: AVPicture,
7852    #[doc = " data+linesize for the bitmap of this subtitle."]
7853    #[doc = " Can be set for text/ass as well once they are rendered."]
7854    pub data: [*mut u8; 4usize],
7855    pub linesize: [::std::os::raw::c_int; 4usize],
7856    pub type_: AVSubtitleType,
7857    #[doc = "< 0 terminated plain UTF-8 text"]
7858    pub text: *mut ::std::os::raw::c_char,
7859    #[doc = " 0 terminated ASS/SSA compatible event line."]
7860    #[doc = " The presentation of this is unaffected by the other values in this"]
7861    #[doc = " struct."]
7862    pub ass: *mut ::std::os::raw::c_char,
7863    pub flags: ::std::os::raw::c_int,
7864}
7865#[repr(C)]
7866#[derive(Debug, Copy, Clone)]
7867pub struct AVSubtitle {
7868    pub format: u16,
7869    pub start_display_time: u32,
7870    pub end_display_time: u32,
7871    pub num_rects: ::std::os::raw::c_uint,
7872    pub rects: *mut *mut AVSubtitleRect,
7873    #[doc = "< Same as packet pts, in AV_TIME_BASE"]
7874    pub pts: i64,
7875}
7876#[doc = " This struct describes the properties of an encoded stream."]
7877#[doc = ""]
7878#[doc = " sizeof(AVCodecParameters) is not a part of the public ABI, this struct must"]
7879#[doc = " be allocated with avcodec_parameters_alloc() and freed with"]
7880#[doc = " avcodec_parameters_free()."]
7881#[repr(C)]
7882#[derive(Debug, Copy, Clone)]
7883pub struct AVCodecParameters {
7884    #[doc = " General type of the encoded data."]
7885    pub codec_type: AVMediaType,
7886    #[doc = " Specific type of the encoded data (the codec used)."]
7887    pub codec_id: AVCodecID,
7888    #[doc = " Additional information about the codec (corresponds to the AVI FOURCC)."]
7889    pub codec_tag: u32,
7890    #[doc = " Extra binary data needed for initializing the decoder, codec-dependent."]
7891    #[doc = ""]
7892    #[doc = " Must be allocated with av_malloc() and will be freed by"]
7893    #[doc = " avcodec_parameters_free(). The allocated size of extradata must be at"]
7894    #[doc = " least extradata_size + AV_INPUT_BUFFER_PADDING_SIZE, with the padding"]
7895    #[doc = " bytes zeroed."]
7896    pub extradata: *mut u8,
7897    #[doc = " Size of the extradata content in bytes."]
7898    pub extradata_size: ::std::os::raw::c_int,
7899    #[doc = " - video: the pixel format, the value corresponds to enum AVPixelFormat."]
7900    #[doc = " - audio: the sample format, the value corresponds to enum AVSampleFormat."]
7901    pub format: ::std::os::raw::c_int,
7902    #[doc = " The average bitrate of the encoded data (in bits per second)."]
7903    pub bit_rate: i64,
7904    #[doc = " The number of bits per sample in the codedwords."]
7905    #[doc = ""]
7906    #[doc = " This is basically the bitrate per sample. It is mandatory for a bunch of"]
7907    #[doc = " formats to actually decode them. It\'s the number of bits for one sample in"]
7908    #[doc = " the actual coded bitstream."]
7909    #[doc = ""]
7910    #[doc = " This could be for example 4 for ADPCM"]
7911    #[doc = " For PCM formats this matches bits_per_raw_sample"]
7912    #[doc = " Can be 0"]
7913    pub bits_per_coded_sample: ::std::os::raw::c_int,
7914    #[doc = " This is the number of valid bits in each output sample. If the"]
7915    #[doc = " sample format has more bits, the least significant bits are additional"]
7916    #[doc = " padding bits, which are always 0. Use right shifts to reduce the sample"]
7917    #[doc = " to its actual size. For example, audio formats with 24 bit samples will"]
7918    #[doc = " have bits_per_raw_sample set to 24, and format set to AV_SAMPLE_FMT_S32."]
7919    #[doc = " To get the original sample use \"(int32_t)sample >> 8\".\""]
7920    #[doc = ""]
7921    #[doc = " For ADPCM this might be 12 or 16 or similar"]
7922    #[doc = " Can be 0"]
7923    pub bits_per_raw_sample: ::std::os::raw::c_int,
7924    #[doc = " Codec-specific bitstream restrictions that the stream conforms to."]
7925    pub profile: ::std::os::raw::c_int,
7926    pub level: ::std::os::raw::c_int,
7927    #[doc = " Video only. The dimensions of the video frame in pixels."]
7928    pub width: ::std::os::raw::c_int,
7929    pub height: ::std::os::raw::c_int,
7930    #[doc = " Video only. The aspect ratio (width / height) which a single pixel"]
7931    #[doc = " should have when displayed."]
7932    #[doc = ""]
7933    #[doc = " When the aspect ratio is unknown / undefined, the numerator should be"]
7934    #[doc = " set to 0 (the denominator may have any value)."]
7935    pub sample_aspect_ratio: AVRational,
7936    #[doc = " Video only. The order of the fields in interlaced video."]
7937    pub field_order: AVFieldOrder,
7938    #[doc = " Video only. Additional colorspace characteristics."]
7939    pub color_range: AVColorRange,
7940    pub color_primaries: AVColorPrimaries,
7941    pub color_trc: AVColorTransferCharacteristic,
7942    pub color_space: AVColorSpace,
7943    pub chroma_location: AVChromaLocation,
7944    #[doc = " Video only. Number of delayed frames."]
7945    pub video_delay: ::std::os::raw::c_int,
7946    #[doc = " Audio only. The channel layout bitmask. May be 0 if the channel layout is"]
7947    #[doc = " unknown or unspecified, otherwise the number of bits set must be equal to"]
7948    #[doc = " the channels field."]
7949    pub channel_layout: u64,
7950    #[doc = " Audio only. The number of audio channels."]
7951    pub channels: ::std::os::raw::c_int,
7952    #[doc = " Audio only. The number of audio samples per second."]
7953    pub sample_rate: ::std::os::raw::c_int,
7954    #[doc = " Audio only. The number of bytes per coded audio frame, required by some"]
7955    #[doc = " formats."]
7956    #[doc = ""]
7957    #[doc = " Corresponds to nBlockAlign in WAVEFORMATEX."]
7958    pub block_align: ::std::os::raw::c_int,
7959    #[doc = " Audio only. Audio frame size, if known. Required by some formats to be static."]
7960    pub frame_size: ::std::os::raw::c_int,
7961    #[doc = " Audio only. The amount of padding (in samples) inserted by the encoder at"]
7962    #[doc = " the beginning of the audio. I.e. this number of leading decoded samples"]
7963    #[doc = " must be discarded by the caller to get the original audio without leading"]
7964    #[doc = " padding."]
7965    pub initial_padding: ::std::os::raw::c_int,
7966    #[doc = " Audio only. The amount of padding (in samples) appended by the encoder to"]
7967    #[doc = " the end of the audio. I.e. this number of decoded samples must be"]
7968    #[doc = " discarded by the caller from the end of the stream to get the original"]
7969    #[doc = " audio without any trailing padding."]
7970    pub trailing_padding: ::std::os::raw::c_int,
7971    #[doc = " Audio only. Number of samples to skip after a discontinuity."]
7972    pub seek_preroll: ::std::os::raw::c_int,
7973}
7974extern "C" {
7975    #[doc = " Iterate over all registered codecs."]
7976    #[doc = ""]
7977    #[doc = " @param opaque a pointer where libavcodec will store the iteration state. Must"]
7978    #[doc = "               point to NULL to start the iteration."]
7979    #[doc = ""]
7980    #[doc = " @return the next registered codec or NULL when the iteration is"]
7981    #[doc = "         finished"]
7982    pub fn av_codec_iterate(opaque: *mut *mut ::std::os::raw::c_void) -> *const AVCodec;
7983}
7984extern "C" {
7985    #[doc = " If c is NULL, returns the first registered codec,"]
7986    #[doc = " if c is non-NULL, returns the next registered codec after c,"]
7987    #[doc = " or NULL if c is the last one."]
7988    pub fn av_codec_next(c: *const AVCodec) -> *mut AVCodec;
7989}
7990extern "C" {
7991    #[doc = " Return the LIBAVCODEC_VERSION_INT constant."]
7992    pub fn avcodec_version() -> ::std::os::raw::c_uint;
7993}
7994extern "C" {
7995    #[doc = " Return the libavcodec build-time configuration."]
7996    pub fn avcodec_configuration() -> *const ::std::os::raw::c_char;
7997}
7998extern "C" {
7999    #[doc = " Return the libavcodec license."]
8000    pub fn avcodec_license() -> *const ::std::os::raw::c_char;
8001}
8002extern "C" {
8003    #[doc = " Register the codec codec and initialize libavcodec."]
8004    #[doc = ""]
8005    #[doc = " @warning either this function or avcodec_register_all() must be called"]
8006    #[doc = " before any other libavcodec functions."]
8007    #[doc = ""]
8008    #[doc = " @see avcodec_register_all()"]
8009    pub fn avcodec_register(codec: *mut AVCodec);
8010}
8011extern "C" {
8012    #[doc = " Register all the codecs, parsers and bitstream filters which were enabled at"]
8013    #[doc = " configuration time. If you do not call this function you can select exactly"]
8014    #[doc = " which formats you want to support, by using the individual registration"]
8015    #[doc = " functions."]
8016    #[doc = ""]
8017    #[doc = " @see avcodec_register"]
8018    #[doc = " @see av_register_codec_parser"]
8019    #[doc = " @see av_register_bitstream_filter"]
8020    pub fn avcodec_register_all();
8021}
8022extern "C" {
8023    #[doc = " Allocate an AVCodecContext and set its fields to default values. The"]
8024    #[doc = " resulting struct should be freed with avcodec_free_context()."]
8025    #[doc = ""]
8026    #[doc = " @param codec if non-NULL, allocate private data and initialize defaults"]
8027    #[doc = "              for the given codec. It is illegal to then call avcodec_open2()"]
8028    #[doc = "              with a different codec."]
8029    #[doc = "              If NULL, then the codec-specific defaults won\'t be initialized,"]
8030    #[doc = "              which may result in suboptimal default settings (this is"]
8031    #[doc = "              important mainly for encoders, e.g. libx264)."]
8032    #[doc = ""]
8033    #[doc = " @return An AVCodecContext filled with default values or NULL on failure."]
8034    pub fn avcodec_alloc_context3(codec: *const AVCodec) -> *mut AVCodecContext;
8035}
8036extern "C" {
8037    #[doc = " Free the codec context and everything associated with it and write NULL to"]
8038    #[doc = " the provided pointer."]
8039    pub fn avcodec_free_context(avctx: *mut *mut AVCodecContext);
8040}
8041extern "C" {
8042    #[doc = " @deprecated This function should not be used, as closing and opening a codec"]
8043    #[doc = " context multiple time is not supported. A new codec context should be"]
8044    #[doc = " allocated for each new use."]
8045    pub fn avcodec_get_context_defaults3(
8046        s: *mut AVCodecContext,
8047        codec: *const AVCodec,
8048    ) -> ::std::os::raw::c_int;
8049}
8050extern "C" {
8051    #[doc = " Get the AVClass for AVCodecContext. It can be used in combination with"]
8052    #[doc = " AV_OPT_SEARCH_FAKE_OBJ for examining options."]
8053    #[doc = ""]
8054    #[doc = " @see av_opt_find()."]
8055    pub fn avcodec_get_class() -> *const AVClass;
8056}
8057extern "C" {
8058    #[doc = " Get the AVClass for AVFrame. It can be used in combination with"]
8059    #[doc = " AV_OPT_SEARCH_FAKE_OBJ for examining options."]
8060    #[doc = ""]
8061    #[doc = " @see av_opt_find()."]
8062    pub fn avcodec_get_frame_class() -> *const AVClass;
8063}
8064extern "C" {
8065    #[doc = " Get the AVClass for AVSubtitleRect. It can be used in combination with"]
8066    #[doc = " AV_OPT_SEARCH_FAKE_OBJ for examining options."]
8067    #[doc = ""]
8068    #[doc = " @see av_opt_find()."]
8069    pub fn avcodec_get_subtitle_rect_class() -> *const AVClass;
8070}
8071extern "C" {
8072    #[doc = " Copy the settings of the source AVCodecContext into the destination"]
8073    #[doc = " AVCodecContext. The resulting destination codec context will be"]
8074    #[doc = " unopened, i.e. you are required to call avcodec_open2() before you"]
8075    #[doc = " can use this AVCodecContext to decode/encode video/audio data."]
8076    #[doc = ""]
8077    #[doc = " @param dest target codec context, should be initialized with"]
8078    #[doc = "             avcodec_alloc_context3(NULL), but otherwise uninitialized"]
8079    #[doc = " @param src source codec context"]
8080    #[doc = " @return AVERROR() on error (e.g. memory allocation error), 0 on success"]
8081    #[doc = ""]
8082    #[doc = " @deprecated The semantics of this function are ill-defined and it should not"]
8083    #[doc = " be used. If you need to transfer the stream parameters from one codec context"]
8084    #[doc = " to another, use an intermediate AVCodecParameters instance and the"]
8085    #[doc = " avcodec_parameters_from_context() / avcodec_parameters_to_context()"]
8086    #[doc = " functions."]
8087    pub fn avcodec_copy_context(
8088        dest: *mut AVCodecContext,
8089        src: *const AVCodecContext,
8090    ) -> ::std::os::raw::c_int;
8091}
8092extern "C" {
8093    #[doc = " Allocate a new AVCodecParameters and set its fields to default values"]
8094    #[doc = " (unknown/invalid/0). The returned struct must be freed with"]
8095    #[doc = " avcodec_parameters_free()."]
8096    pub fn avcodec_parameters_alloc() -> *mut AVCodecParameters;
8097}
8098extern "C" {
8099    #[doc = " Free an AVCodecParameters instance and everything associated with it and"]
8100    #[doc = " write NULL to the supplied pointer."]
8101    pub fn avcodec_parameters_free(par: *mut *mut AVCodecParameters);
8102}
8103extern "C" {
8104    #[doc = " Copy the contents of src to dst. Any allocated fields in dst are freed and"]
8105    #[doc = " replaced with newly allocated duplicates of the corresponding fields in src."]
8106    #[doc = ""]
8107    #[doc = " @return >= 0 on success, a negative AVERROR code on failure."]
8108    pub fn avcodec_parameters_copy(
8109        dst: *mut AVCodecParameters,
8110        src: *const AVCodecParameters,
8111    ) -> ::std::os::raw::c_int;
8112}
8113extern "C" {
8114    #[doc = " Fill the parameters struct based on the values from the supplied codec"]
8115    #[doc = " context. Any allocated fields in par are freed and replaced with duplicates"]
8116    #[doc = " of the corresponding fields in codec."]
8117    #[doc = ""]
8118    #[doc = " @return >= 0 on success, a negative AVERROR code on failure"]
8119    pub fn avcodec_parameters_from_context(
8120        par: *mut AVCodecParameters,
8121        codec: *const AVCodecContext,
8122    ) -> ::std::os::raw::c_int;
8123}
8124extern "C" {
8125    #[doc = " Fill the codec context based on the values from the supplied codec"]
8126    #[doc = " parameters. Any allocated fields in codec that have a corresponding field in"]
8127    #[doc = " par are freed and replaced with duplicates of the corresponding field in par."]
8128    #[doc = " Fields in codec that do not have a counterpart in par are not touched."]
8129    #[doc = ""]
8130    #[doc = " @return >= 0 on success, a negative AVERROR code on failure."]
8131    pub fn avcodec_parameters_to_context(
8132        codec: *mut AVCodecContext,
8133        par: *const AVCodecParameters,
8134    ) -> ::std::os::raw::c_int;
8135}
8136extern "C" {
8137    #[doc = " Initialize the AVCodecContext to use the given AVCodec. Prior to using this"]
8138    #[doc = " function the context has to be allocated with avcodec_alloc_context3()."]
8139    #[doc = ""]
8140    #[doc = " The functions avcodec_find_decoder_by_name(), avcodec_find_encoder_by_name(),"]
8141    #[doc = " avcodec_find_decoder() and avcodec_find_encoder() provide an easy way for"]
8142    #[doc = " retrieving a codec."]
8143    #[doc = ""]
8144    #[doc = " @warning This function is not thread safe!"]
8145    #[doc = ""]
8146    #[doc = " @note Always call this function before using decoding routines (such as"]
8147    #[doc = " @ref avcodec_receive_frame())."]
8148    #[doc = ""]
8149    #[doc = " @code"]
8150    #[doc = " avcodec_register_all();"]
8151    #[doc = " av_dict_set(&opts, \"b\", \"2.5M\", 0);"]
8152    #[doc = " codec = avcodec_find_decoder(AV_CODEC_ID_H264);"]
8153    #[doc = " if (!codec)"]
8154    #[doc = "     exit(1);"]
8155    #[doc = ""]
8156    #[doc = " context = avcodec_alloc_context3(codec);"]
8157    #[doc = ""]
8158    #[doc = " if (avcodec_open2(context, codec, opts) < 0)"]
8159    #[doc = "     exit(1);"]
8160    #[doc = " @endcode"]
8161    #[doc = ""]
8162    #[doc = " @param avctx The context to initialize."]
8163    #[doc = " @param codec The codec to open this context for. If a non-NULL codec has been"]
8164    #[doc = "              previously passed to avcodec_alloc_context3() or"]
8165    #[doc = "              for this context, then this parameter MUST be either NULL or"]
8166    #[doc = "              equal to the previously passed codec."]
8167    #[doc = " @param options A dictionary filled with AVCodecContext and codec-private options."]
8168    #[doc = "                On return this object will be filled with options that were not found."]
8169    #[doc = ""]
8170    #[doc = " @return zero on success, a negative value on error"]
8171    #[doc = " @see avcodec_alloc_context3(), avcodec_find_decoder(), avcodec_find_encoder(),"]
8172    #[doc = "      av_dict_set(), av_opt_find()."]
8173    pub fn avcodec_open2(
8174        avctx: *mut AVCodecContext,
8175        codec: *const AVCodec,
8176        options: *mut *mut AVDictionary,
8177    ) -> ::std::os::raw::c_int;
8178}
8179extern "C" {
8180    #[doc = " Close a given AVCodecContext and free all the data associated with it"]
8181    #[doc = " (but not the AVCodecContext itself)."]
8182    #[doc = ""]
8183    #[doc = " Calling this function on an AVCodecContext that hasn\'t been opened will free"]
8184    #[doc = " the codec-specific data allocated in avcodec_alloc_context3() with a non-NULL"]
8185    #[doc = " codec. Subsequent calls will do nothing."]
8186    #[doc = ""]
8187    #[doc = " @note Do not use this function. Use avcodec_free_context() to destroy a"]
8188    #[doc = " codec context (either open or closed). Opening and closing a codec context"]
8189    #[doc = " multiple times is not supported anymore -- use multiple codec contexts"]
8190    #[doc = " instead."]
8191    pub fn avcodec_close(avctx: *mut AVCodecContext) -> ::std::os::raw::c_int;
8192}
8193extern "C" {
8194    #[doc = " Free all allocated data in the given subtitle struct."]
8195    #[doc = ""]
8196    #[doc = " @param sub AVSubtitle to free."]
8197    pub fn avsubtitle_free(sub: *mut AVSubtitle);
8198}
8199extern "C" {
8200    #[doc = " Allocate an AVPacket and set its fields to default values.  The resulting"]
8201    #[doc = " struct must be freed using av_packet_free()."]
8202    #[doc = ""]
8203    #[doc = " @return An AVPacket filled with default values or NULL on failure."]
8204    #[doc = ""]
8205    #[doc = " @note this only allocates the AVPacket itself, not the data buffers. Those"]
8206    #[doc = " must be allocated through other means such as av_new_packet."]
8207    #[doc = ""]
8208    #[doc = " @see av_new_packet"]
8209    pub fn av_packet_alloc() -> *mut AVPacket;
8210}
8211extern "C" {
8212    #[doc = " Create a new packet that references the same data as src."]
8213    #[doc = ""]
8214    #[doc = " This is a shortcut for av_packet_alloc()+av_packet_ref()."]
8215    #[doc = ""]
8216    #[doc = " @return newly created AVPacket on success, NULL on error."]
8217    #[doc = ""]
8218    #[doc = " @see av_packet_alloc"]
8219    #[doc = " @see av_packet_ref"]
8220    pub fn av_packet_clone(src: *const AVPacket) -> *mut AVPacket;
8221}
8222extern "C" {
8223    #[doc = " Free the packet, if the packet is reference counted, it will be"]
8224    #[doc = " unreferenced first."]
8225    #[doc = ""]
8226    #[doc = " @param pkt packet to be freed. The pointer will be set to NULL."]
8227    #[doc = " @note passing NULL is a no-op."]
8228    pub fn av_packet_free(pkt: *mut *mut AVPacket);
8229}
8230extern "C" {
8231    #[doc = " Initialize optional fields of a packet with default values."]
8232    #[doc = ""]
8233    #[doc = " Note, this does not touch the data and size members, which have to be"]
8234    #[doc = " initialized separately."]
8235    #[doc = ""]
8236    #[doc = " @param pkt packet"]
8237    pub fn av_init_packet(pkt: *mut AVPacket);
8238}
8239extern "C" {
8240    #[doc = " Allocate the payload of a packet and initialize its fields with"]
8241    #[doc = " default values."]
8242    #[doc = ""]
8243    #[doc = " @param pkt packet"]
8244    #[doc = " @param size wanted payload size"]
8245    #[doc = " @return 0 if OK, AVERROR_xxx otherwise"]
8246    pub fn av_new_packet(pkt: *mut AVPacket, size: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8247}
8248extern "C" {
8249    #[doc = " Reduce packet size, correctly zeroing padding"]
8250    #[doc = ""]
8251    #[doc = " @param pkt packet"]
8252    #[doc = " @param size new size"]
8253    pub fn av_shrink_packet(pkt: *mut AVPacket, size: ::std::os::raw::c_int);
8254}
8255extern "C" {
8256    #[doc = " Increase packet size, correctly zeroing padding"]
8257    #[doc = ""]
8258    #[doc = " @param pkt packet"]
8259    #[doc = " @param grow_by number of bytes by which to increase the size of the packet"]
8260    pub fn av_grow_packet(
8261        pkt: *mut AVPacket,
8262        grow_by: ::std::os::raw::c_int,
8263    ) -> ::std::os::raw::c_int;
8264}
8265extern "C" {
8266    #[doc = " Initialize a reference-counted packet from av_malloc()ed data."]
8267    #[doc = ""]
8268    #[doc = " @param pkt packet to be initialized. This function will set the data, size,"]
8269    #[doc = "        buf and destruct fields, all others are left untouched."]
8270    #[doc = " @param data Data allocated by av_malloc() to be used as packet data. If this"]
8271    #[doc = "        function returns successfully, the data is owned by the underlying AVBuffer."]
8272    #[doc = "        The caller may not access the data through other means."]
8273    #[doc = " @param size size of data in bytes, without the padding. I.e. the full buffer"]
8274    #[doc = "        size is assumed to be size + AV_INPUT_BUFFER_PADDING_SIZE."]
8275    #[doc = ""]
8276    #[doc = " @return 0 on success, a negative AVERROR on error"]
8277    pub fn av_packet_from_data(
8278        pkt: *mut AVPacket,
8279        data: *mut u8,
8280        size: ::std::os::raw::c_int,
8281    ) -> ::std::os::raw::c_int;
8282}
8283extern "C" {
8284    #[doc = " @warning This is a hack - the packet memory allocation stuff is broken. The"]
8285    #[doc = " packet is allocated if it was not really allocated."]
8286    #[doc = ""]
8287    #[doc = " @deprecated Use av_packet_ref or av_packet_make_refcounted"]
8288    pub fn av_dup_packet(pkt: *mut AVPacket) -> ::std::os::raw::c_int;
8289}
8290extern "C" {
8291    #[doc = " Copy packet, including contents"]
8292    #[doc = ""]
8293    #[doc = " @return 0 on success, negative AVERROR on fail"]
8294    #[doc = ""]
8295    #[doc = " @deprecated Use av_packet_ref"]
8296    pub fn av_copy_packet(dst: *mut AVPacket, src: *const AVPacket) -> ::std::os::raw::c_int;
8297}
8298extern "C" {
8299    #[doc = " Copy packet side data"]
8300    #[doc = ""]
8301    #[doc = " @return 0 on success, negative AVERROR on fail"]
8302    #[doc = ""]
8303    #[doc = " @deprecated Use av_packet_copy_props"]
8304    pub fn av_copy_packet_side_data(
8305        dst: *mut AVPacket,
8306        src: *const AVPacket,
8307    ) -> ::std::os::raw::c_int;
8308}
8309extern "C" {
8310    #[doc = " Free a packet."]
8311    #[doc = ""]
8312    #[doc = " @deprecated Use av_packet_unref"]
8313    #[doc = ""]
8314    #[doc = " @param pkt packet to free"]
8315    pub fn av_free_packet(pkt: *mut AVPacket);
8316}
8317extern "C" {
8318    #[doc = " Allocate new information of a packet."]
8319    #[doc = ""]
8320    #[doc = " @param pkt packet"]
8321    #[doc = " @param type side information type"]
8322    #[doc = " @param size side information size"]
8323    #[doc = " @return pointer to fresh allocated data or NULL otherwise"]
8324    pub fn av_packet_new_side_data(
8325        pkt: *mut AVPacket,
8326        type_: AVPacketSideDataType,
8327        size: ::std::os::raw::c_int,
8328    ) -> *mut u8;
8329}
8330extern "C" {
8331    #[doc = " Wrap an existing array as a packet side data."]
8332    #[doc = ""]
8333    #[doc = " @param pkt packet"]
8334    #[doc = " @param type side information type"]
8335    #[doc = " @param data the side data array. It must be allocated with the av_malloc()"]
8336    #[doc = "             family of functions. The ownership of the data is transferred to"]
8337    #[doc = "             pkt."]
8338    #[doc = " @param size side information size"]
8339    #[doc = " @return a non-negative number on success, a negative AVERROR code on"]
8340    #[doc = "         failure. On failure, the packet is unchanged and the data remains"]
8341    #[doc = "         owned by the caller."]
8342    pub fn av_packet_add_side_data(
8343        pkt: *mut AVPacket,
8344        type_: AVPacketSideDataType,
8345        data: *mut u8,
8346        size: usize,
8347    ) -> ::std::os::raw::c_int;
8348}
8349extern "C" {
8350    #[doc = " Shrink the already allocated side data buffer"]
8351    #[doc = ""]
8352    #[doc = " @param pkt packet"]
8353    #[doc = " @param type side information type"]
8354    #[doc = " @param size new side information size"]
8355    #[doc = " @return 0 on success, < 0 on failure"]
8356    pub fn av_packet_shrink_side_data(
8357        pkt: *mut AVPacket,
8358        type_: AVPacketSideDataType,
8359        size: ::std::os::raw::c_int,
8360    ) -> ::std::os::raw::c_int;
8361}
8362extern "C" {
8363    #[doc = " Get side information from packet."]
8364    #[doc = ""]
8365    #[doc = " @param pkt packet"]
8366    #[doc = " @param type desired side information type"]
8367    #[doc = " @param size pointer for side information size to store (optional)"]
8368    #[doc = " @return pointer to data if present or NULL otherwise"]
8369    pub fn av_packet_get_side_data(
8370        pkt: *const AVPacket,
8371        type_: AVPacketSideDataType,
8372        size: *mut ::std::os::raw::c_int,
8373    ) -> *mut u8;
8374}
8375extern "C" {
8376    pub fn av_packet_merge_side_data(pkt: *mut AVPacket) -> ::std::os::raw::c_int;
8377}
8378extern "C" {
8379    pub fn av_packet_split_side_data(pkt: *mut AVPacket) -> ::std::os::raw::c_int;
8380}
8381extern "C" {
8382    pub fn av_packet_side_data_name(type_: AVPacketSideDataType) -> *const ::std::os::raw::c_char;
8383}
8384extern "C" {
8385    #[doc = " Pack a dictionary for use in side_data."]
8386    #[doc = ""]
8387    #[doc = " @param dict The dictionary to pack."]
8388    #[doc = " @param size pointer to store the size of the returned data"]
8389    #[doc = " @return pointer to data if successful, NULL otherwise"]
8390    pub fn av_packet_pack_dictionary(
8391        dict: *mut AVDictionary,
8392        size: *mut ::std::os::raw::c_int,
8393    ) -> *mut u8;
8394}
8395extern "C" {
8396    #[doc = " Unpack a dictionary from side_data."]
8397    #[doc = ""]
8398    #[doc = " @param data data from side_data"]
8399    #[doc = " @param size size of the data"]
8400    #[doc = " @param dict the metadata storage dictionary"]
8401    #[doc = " @return 0 on success, < 0 on failure"]
8402    pub fn av_packet_unpack_dictionary(
8403        data: *const u8,
8404        size: ::std::os::raw::c_int,
8405        dict: *mut *mut AVDictionary,
8406    ) -> ::std::os::raw::c_int;
8407}
8408extern "C" {
8409    #[doc = " Convenience function to free all the side data stored."]
8410    #[doc = " All the other fields stay untouched."]
8411    #[doc = ""]
8412    #[doc = " @param pkt packet"]
8413    pub fn av_packet_free_side_data(pkt: *mut AVPacket);
8414}
8415extern "C" {
8416    #[doc = " Setup a new reference to the data described by a given packet"]
8417    #[doc = ""]
8418    #[doc = " If src is reference-counted, setup dst as a new reference to the"]
8419    #[doc = " buffer in src. Otherwise allocate a new buffer in dst and copy the"]
8420    #[doc = " data from src into it."]
8421    #[doc = ""]
8422    #[doc = " All the other fields are copied from src."]
8423    #[doc = ""]
8424    #[doc = " @see av_packet_unref"]
8425    #[doc = ""]
8426    #[doc = " @param dst Destination packet"]
8427    #[doc = " @param src Source packet"]
8428    #[doc = ""]
8429    #[doc = " @return 0 on success, a negative AVERROR on error."]
8430    pub fn av_packet_ref(dst: *mut AVPacket, src: *const AVPacket) -> ::std::os::raw::c_int;
8431}
8432extern "C" {
8433    #[doc = " Wipe the packet."]
8434    #[doc = ""]
8435    #[doc = " Unreference the buffer referenced by the packet and reset the"]
8436    #[doc = " remaining packet fields to their default values."]
8437    #[doc = ""]
8438    #[doc = " @param pkt The packet to be unreferenced."]
8439    pub fn av_packet_unref(pkt: *mut AVPacket);
8440}
8441extern "C" {
8442    #[doc = " Move every field in src to dst and reset src."]
8443    #[doc = ""]
8444    #[doc = " @see av_packet_unref"]
8445    #[doc = ""]
8446    #[doc = " @param src Source packet, will be reset"]
8447    #[doc = " @param dst Destination packet"]
8448    pub fn av_packet_move_ref(dst: *mut AVPacket, src: *mut AVPacket);
8449}
8450extern "C" {
8451    #[doc = " Copy only \"properties\" fields from src to dst."]
8452    #[doc = ""]
8453    #[doc = " Properties for the purpose of this function are all the fields"]
8454    #[doc = " beside those related to the packet data (buf, data, size)"]
8455    #[doc = ""]
8456    #[doc = " @param dst Destination packet"]
8457    #[doc = " @param src Source packet"]
8458    #[doc = ""]
8459    #[doc = " @return 0 on success AVERROR on failure."]
8460    pub fn av_packet_copy_props(dst: *mut AVPacket, src: *const AVPacket) -> ::std::os::raw::c_int;
8461}
8462extern "C" {
8463    #[doc = " Ensure the data described by a given packet is reference counted."]
8464    #[doc = ""]
8465    #[doc = " @note This function does not ensure that the reference will be writable."]
8466    #[doc = "       Use av_packet_make_writable instead for that purpose."]
8467    #[doc = ""]
8468    #[doc = " @see av_packet_ref"]
8469    #[doc = " @see av_packet_make_writable"]
8470    #[doc = ""]
8471    #[doc = " @param pkt packet whose data should be made reference counted."]
8472    #[doc = ""]
8473    #[doc = " @return 0 on success, a negative AVERROR on error. On failure, the"]
8474    #[doc = "         packet is unchanged."]
8475    pub fn av_packet_make_refcounted(pkt: *mut AVPacket) -> ::std::os::raw::c_int;
8476}
8477extern "C" {
8478    #[doc = " Create a writable reference for the data described by a given packet,"]
8479    #[doc = " avoiding data copy if possible."]
8480    #[doc = ""]
8481    #[doc = " @param pkt Packet whose data should be made writable."]
8482    #[doc = ""]
8483    #[doc = " @return 0 on success, a negative AVERROR on failure. On failure, the"]
8484    #[doc = "         packet is unchanged."]
8485    pub fn av_packet_make_writable(pkt: *mut AVPacket) -> ::std::os::raw::c_int;
8486}
8487extern "C" {
8488    #[doc = " Convert valid timing fields (timestamps / durations) in a packet from one"]
8489    #[doc = " timebase to another. Timestamps with unknown values (AV_NOPTS_VALUE) will be"]
8490    #[doc = " ignored."]
8491    #[doc = ""]
8492    #[doc = " @param pkt packet on which the conversion will be performed"]
8493    #[doc = " @param tb_src source timebase, in which the timing fields in pkt are"]
8494    #[doc = "               expressed"]
8495    #[doc = " @param tb_dst destination timebase, to which the timing fields will be"]
8496    #[doc = "               converted"]
8497    pub fn av_packet_rescale_ts(pkt: *mut AVPacket, tb_src: AVRational, tb_dst: AVRational);
8498}
8499extern "C" {
8500    #[doc = " Find a registered decoder with a matching codec ID."]
8501    #[doc = ""]
8502    #[doc = " @param id AVCodecID of the requested decoder"]
8503    #[doc = " @return A decoder if one was found, NULL otherwise."]
8504    pub fn avcodec_find_decoder(id: AVCodecID) -> *mut AVCodec;
8505}
8506extern "C" {
8507    #[doc = " Find a registered decoder with the specified name."]
8508    #[doc = ""]
8509    #[doc = " @param name name of the requested decoder"]
8510    #[doc = " @return A decoder if one was found, NULL otherwise."]
8511    pub fn avcodec_find_decoder_by_name(name: *const ::std::os::raw::c_char) -> *mut AVCodec;
8512}
8513extern "C" {
8514    #[doc = " The default callback for AVCodecContext.get_buffer2(). It is made public so"]
8515    #[doc = " it can be called by custom get_buffer2() implementations for decoders without"]
8516    #[doc = " AV_CODEC_CAP_DR1 set."]
8517    pub fn avcodec_default_get_buffer2(
8518        s: *mut AVCodecContext,
8519        frame: *mut AVFrame,
8520        flags: ::std::os::raw::c_int,
8521    ) -> ::std::os::raw::c_int;
8522}
8523extern "C" {
8524    #[doc = " Modify width and height values so that they will result in a memory"]
8525    #[doc = " buffer that is acceptable for the codec if you do not use any horizontal"]
8526    #[doc = " padding."]
8527    #[doc = ""]
8528    #[doc = " May only be used if a codec with AV_CODEC_CAP_DR1 has been opened."]
8529    pub fn avcodec_align_dimensions(
8530        s: *mut AVCodecContext,
8531        width: *mut ::std::os::raw::c_int,
8532        height: *mut ::std::os::raw::c_int,
8533    );
8534}
8535extern "C" {
8536    #[doc = " Modify width and height values so that they will result in a memory"]
8537    #[doc = " buffer that is acceptable for the codec if you also ensure that all"]
8538    #[doc = " line sizes are a multiple of the respective linesize_align[i]."]
8539    #[doc = ""]
8540    #[doc = " May only be used if a codec with AV_CODEC_CAP_DR1 has been opened."]
8541    pub fn avcodec_align_dimensions2(
8542        s: *mut AVCodecContext,
8543        width: *mut ::std::os::raw::c_int,
8544        height: *mut ::std::os::raw::c_int,
8545        linesize_align: *mut ::std::os::raw::c_int,
8546    );
8547}
8548extern "C" {
8549    #[doc = " Converts AVChromaLocation to swscale x/y chroma position."]
8550    #[doc = ""]
8551    #[doc = " The positions represent the chroma (0,0) position in a coordinates system"]
8552    #[doc = " with luma (0,0) representing the origin and luma(1,1) representing 256,256"]
8553    #[doc = ""]
8554    #[doc = " @param xpos  horizontal chroma sample position"]
8555    #[doc = " @param ypos  vertical   chroma sample position"]
8556    pub fn avcodec_enum_to_chroma_pos(
8557        xpos: *mut ::std::os::raw::c_int,
8558        ypos: *mut ::std::os::raw::c_int,
8559        pos: AVChromaLocation,
8560    ) -> ::std::os::raw::c_int;
8561}
8562extern "C" {
8563    #[doc = " Converts swscale x/y chroma position to AVChromaLocation."]
8564    #[doc = ""]
8565    #[doc = " The positions represent the chroma (0,0) position in a coordinates system"]
8566    #[doc = " with luma (0,0) representing the origin and luma(1,1) representing 256,256"]
8567    #[doc = ""]
8568    #[doc = " @param xpos  horizontal chroma sample position"]
8569    #[doc = " @param ypos  vertical   chroma sample position"]
8570    pub fn avcodec_chroma_pos_to_enum(
8571        xpos: ::std::os::raw::c_int,
8572        ypos: ::std::os::raw::c_int,
8573    ) -> AVChromaLocation;
8574}
8575extern "C" {
8576    #[doc = " Decode the audio frame of size avpkt->size from avpkt->data into frame."]
8577    #[doc = ""]
8578    #[doc = " Some decoders may support multiple frames in a single AVPacket. Such"]
8579    #[doc = " decoders would then just decode the first frame and the return value would be"]
8580    #[doc = " less than the packet size. In this case, avcodec_decode_audio4 has to be"]
8581    #[doc = " called again with an AVPacket containing the remaining data in order to"]
8582    #[doc = " decode the second frame, etc...  Even if no frames are returned, the packet"]
8583    #[doc = " needs to be fed to the decoder with remaining data until it is completely"]
8584    #[doc = " consumed or an error occurs."]
8585    #[doc = ""]
8586    #[doc = " Some decoders (those marked with AV_CODEC_CAP_DELAY) have a delay between input"]
8587    #[doc = " and output. This means that for some packets they will not immediately"]
8588    #[doc = " produce decoded output and need to be flushed at the end of decoding to get"]
8589    #[doc = " all the decoded data. Flushing is done by calling this function with packets"]
8590    #[doc = " with avpkt->data set to NULL and avpkt->size set to 0 until it stops"]
8591    #[doc = " returning samples. It is safe to flush even those decoders that are not"]
8592    #[doc = " marked with AV_CODEC_CAP_DELAY, then no samples will be returned."]
8593    #[doc = ""]
8594    #[doc = " @warning The input buffer, avpkt->data must be AV_INPUT_BUFFER_PADDING_SIZE"]
8595    #[doc = "          larger than the actual read bytes because some optimized bitstream"]
8596    #[doc = "          readers read 32 or 64 bits at once and could read over the end."]
8597    #[doc = ""]
8598    #[doc = " @note The AVCodecContext MUST have been opened with @ref avcodec_open2()"]
8599    #[doc = " before packets may be fed to the decoder."]
8600    #[doc = ""]
8601    #[doc = " @param      avctx the codec context"]
8602    #[doc = " @param[out] frame The AVFrame in which to store decoded audio samples."]
8603    #[doc = "                   The decoder will allocate a buffer for the decoded frame by"]
8604    #[doc = "                   calling the AVCodecContext.get_buffer2() callback."]
8605    #[doc = "                   When AVCodecContext.refcounted_frames is set to 1, the frame is"]
8606    #[doc = "                   reference counted and the returned reference belongs to the"]
8607    #[doc = "                   caller. The caller must release the frame using av_frame_unref()"]
8608    #[doc = "                   when the frame is no longer needed. The caller may safely write"]
8609    #[doc = "                   to the frame if av_frame_is_writable() returns 1."]
8610    #[doc = "                   When AVCodecContext.refcounted_frames is set to 0, the returned"]
8611    #[doc = "                   reference belongs to the decoder and is valid only until the"]
8612    #[doc = "                   next call to this function or until closing or flushing the"]
8613    #[doc = "                   decoder. The caller may not write to it."]
8614    #[doc = " @param[out] got_frame_ptr Zero if no frame could be decoded, otherwise it is"]
8615    #[doc = "                           non-zero. Note that this field being set to zero"]
8616    #[doc = "                           does not mean that an error has occurred. For"]
8617    #[doc = "                           decoders with AV_CODEC_CAP_DELAY set, no given decode"]
8618    #[doc = "                           call is guaranteed to produce a frame."]
8619    #[doc = " @param[in]  avpkt The input AVPacket containing the input buffer."]
8620    #[doc = "                   At least avpkt->data and avpkt->size should be set. Some"]
8621    #[doc = "                   decoders might also require additional fields to be set."]
8622    #[doc = " @return A negative error code is returned if an error occurred during"]
8623    #[doc = "         decoding, otherwise the number of bytes consumed from the input"]
8624    #[doc = "         AVPacket is returned."]
8625    #[doc = ""]
8626    #[doc = " @deprecated Use avcodec_send_packet() and avcodec_receive_frame()."]
8627    pub fn avcodec_decode_audio4(
8628        avctx: *mut AVCodecContext,
8629        frame: *mut AVFrame,
8630        got_frame_ptr: *mut ::std::os::raw::c_int,
8631        avpkt: *const AVPacket,
8632    ) -> ::std::os::raw::c_int;
8633}
8634extern "C" {
8635    #[doc = " Decode the video frame of size avpkt->size from avpkt->data into picture."]
8636    #[doc = " Some decoders may support multiple frames in a single AVPacket, such"]
8637    #[doc = " decoders would then just decode the first frame."]
8638    #[doc = ""]
8639    #[doc = " @warning The input buffer must be AV_INPUT_BUFFER_PADDING_SIZE larger than"]
8640    #[doc = " the actual read bytes because some optimized bitstream readers read 32 or 64"]
8641    #[doc = " bits at once and could read over the end."]
8642    #[doc = ""]
8643    #[doc = " @warning The end of the input buffer buf should be set to 0 to ensure that"]
8644    #[doc = " no overreading happens for damaged MPEG streams."]
8645    #[doc = ""]
8646    #[doc = " @note Codecs which have the AV_CODEC_CAP_DELAY capability set have a delay"]
8647    #[doc = " between input and output, these need to be fed with avpkt->data=NULL,"]
8648    #[doc = " avpkt->size=0 at the end to return the remaining frames."]
8649    #[doc = ""]
8650    #[doc = " @note The AVCodecContext MUST have been opened with @ref avcodec_open2()"]
8651    #[doc = " before packets may be fed to the decoder."]
8652    #[doc = ""]
8653    #[doc = " @param avctx the codec context"]
8654    #[doc = " @param[out] picture The AVFrame in which the decoded video frame will be stored."]
8655    #[doc = "             Use av_frame_alloc() to get an AVFrame. The codec will"]
8656    #[doc = "             allocate memory for the actual bitmap by calling the"]
8657    #[doc = "             AVCodecContext.get_buffer2() callback."]
8658    #[doc = "             When AVCodecContext.refcounted_frames is set to 1, the frame is"]
8659    #[doc = "             reference counted and the returned reference belongs to the"]
8660    #[doc = "             caller. The caller must release the frame using av_frame_unref()"]
8661    #[doc = "             when the frame is no longer needed. The caller may safely write"]
8662    #[doc = "             to the frame if av_frame_is_writable() returns 1."]
8663    #[doc = "             When AVCodecContext.refcounted_frames is set to 0, the returned"]
8664    #[doc = "             reference belongs to the decoder and is valid only until the"]
8665    #[doc = "             next call to this function or until closing or flushing the"]
8666    #[doc = "             decoder. The caller may not write to it."]
8667    #[doc = ""]
8668    #[doc = " @param[in] avpkt The input AVPacket containing the input buffer."]
8669    #[doc = "            You can create such packet with av_init_packet() and by then setting"]
8670    #[doc = "            data and size, some decoders might in addition need other fields like"]
8671    #[doc = "            flags&AV_PKT_FLAG_KEY. All decoders are designed to use the least"]
8672    #[doc = "            fields possible."]
8673    #[doc = " @param[in,out] got_picture_ptr Zero if no frame could be decompressed, otherwise, it is nonzero."]
8674    #[doc = " @return On error a negative value is returned, otherwise the number of bytes"]
8675    #[doc = " used or zero if no frame could be decompressed."]
8676    #[doc = ""]
8677    #[doc = " @deprecated Use avcodec_send_packet() and avcodec_receive_frame()."]
8678    pub fn avcodec_decode_video2(
8679        avctx: *mut AVCodecContext,
8680        picture: *mut AVFrame,
8681        got_picture_ptr: *mut ::std::os::raw::c_int,
8682        avpkt: *const AVPacket,
8683    ) -> ::std::os::raw::c_int;
8684}
8685extern "C" {
8686    #[doc = " Decode a subtitle message."]
8687    #[doc = " Return a negative value on error, otherwise return the number of bytes used."]
8688    #[doc = " If no subtitle could be decompressed, got_sub_ptr is zero."]
8689    #[doc = " Otherwise, the subtitle is stored in *sub."]
8690    #[doc = " Note that AV_CODEC_CAP_DR1 is not available for subtitle codecs. This is for"]
8691    #[doc = " simplicity, because the performance difference is expect to be negligible"]
8692    #[doc = " and reusing a get_buffer written for video codecs would probably perform badly"]
8693    #[doc = " due to a potentially very different allocation pattern."]
8694    #[doc = ""]
8695    #[doc = " Some decoders (those marked with AV_CODEC_CAP_DELAY) have a delay between input"]
8696    #[doc = " and output. This means that for some packets they will not immediately"]
8697    #[doc = " produce decoded output and need to be flushed at the end of decoding to get"]
8698    #[doc = " all the decoded data. Flushing is done by calling this function with packets"]
8699    #[doc = " with avpkt->data set to NULL and avpkt->size set to 0 until it stops"]
8700    #[doc = " returning subtitles. It is safe to flush even those decoders that are not"]
8701    #[doc = " marked with AV_CODEC_CAP_DELAY, then no subtitles will be returned."]
8702    #[doc = ""]
8703    #[doc = " @note The AVCodecContext MUST have been opened with @ref avcodec_open2()"]
8704    #[doc = " before packets may be fed to the decoder."]
8705    #[doc = ""]
8706    #[doc = " @param avctx the codec context"]
8707    #[doc = " @param[out] sub The Preallocated AVSubtitle in which the decoded subtitle will be stored,"]
8708    #[doc = "                 must be freed with avsubtitle_free if *got_sub_ptr is set."]
8709    #[doc = " @param[in,out] got_sub_ptr Zero if no subtitle could be decompressed, otherwise, it is nonzero."]
8710    #[doc = " @param[in] avpkt The input AVPacket containing the input buffer."]
8711    pub fn avcodec_decode_subtitle2(
8712        avctx: *mut AVCodecContext,
8713        sub: *mut AVSubtitle,
8714        got_sub_ptr: *mut ::std::os::raw::c_int,
8715        avpkt: *mut AVPacket,
8716    ) -> ::std::os::raw::c_int;
8717}
8718extern "C" {
8719    #[doc = " Supply raw packet data as input to a decoder."]
8720    #[doc = ""]
8721    #[doc = " Internally, this call will copy relevant AVCodecContext fields, which can"]
8722    #[doc = " influence decoding per-packet, and apply them when the packet is actually"]
8723    #[doc = " decoded. (For example AVCodecContext.skip_frame, which might direct the"]
8724    #[doc = " decoder to drop the frame contained by the packet sent with this function.)"]
8725    #[doc = ""]
8726    #[doc = " @warning The input buffer, avpkt->data must be AV_INPUT_BUFFER_PADDING_SIZE"]
8727    #[doc = "          larger than the actual read bytes because some optimized bitstream"]
8728    #[doc = "          readers read 32 or 64 bits at once and could read over the end."]
8729    #[doc = ""]
8730    #[doc = " @warning Do not mix this API with the legacy API (like avcodec_decode_video2())"]
8731    #[doc = "          on the same AVCodecContext. It will return unexpected results now"]
8732    #[doc = "          or in future libavcodec versions."]
8733    #[doc = ""]
8734    #[doc = " @note The AVCodecContext MUST have been opened with @ref avcodec_open2()"]
8735    #[doc = "       before packets may be fed to the decoder."]
8736    #[doc = ""]
8737    #[doc = " @param avctx codec context"]
8738    #[doc = " @param[in] avpkt The input AVPacket. Usually, this will be a single video"]
8739    #[doc = "                  frame, or several complete audio frames."]
8740    #[doc = "                  Ownership of the packet remains with the caller, and the"]
8741    #[doc = "                  decoder will not write to the packet. The decoder may create"]
8742    #[doc = "                  a reference to the packet data (or copy it if the packet is"]
8743    #[doc = "                  not reference-counted)."]
8744    #[doc = "                  Unlike with older APIs, the packet is always fully consumed,"]
8745    #[doc = "                  and if it contains multiple frames (e.g. some audio codecs),"]
8746    #[doc = "                  will require you to call avcodec_receive_frame() multiple"]
8747    #[doc = "                  times afterwards before you can send a new packet."]
8748    #[doc = "                  It can be NULL (or an AVPacket with data set to NULL and"]
8749    #[doc = "                  size set to 0); in this case, it is considered a flush"]
8750    #[doc = "                  packet, which signals the end of the stream. Sending the"]
8751    #[doc = "                  first flush packet will return success. Subsequent ones are"]
8752    #[doc = "                  unnecessary and will return AVERROR_EOF. If the decoder"]
8753    #[doc = "                  still has frames buffered, it will return them after sending"]
8754    #[doc = "                  a flush packet."]
8755    #[doc = ""]
8756    #[doc = " @return 0 on success, otherwise negative error code:"]
8757    #[doc = "      AVERROR(EAGAIN):   input is not accepted in the current state - user"]
8758    #[doc = "                         must read output with avcodec_receive_frame() (once"]
8759    #[doc = "                         all output is read, the packet should be resent, and"]
8760    #[doc = "                         the call will not fail with EAGAIN)."]
8761    #[doc = "      AVERROR_EOF:       the decoder has been flushed, and no new packets can"]
8762    #[doc = "                         be sent to it (also returned if more than 1 flush"]
8763    #[doc = "                         packet is sent)"]
8764    #[doc = "      AVERROR(EINVAL):   codec not opened, it is an encoder, or requires flush"]
8765    #[doc = "      AVERROR(ENOMEM):   failed to add packet to internal queue, or similar"]
8766    #[doc = "      other errors: legitimate decoding errors"]
8767    pub fn avcodec_send_packet(
8768        avctx: *mut AVCodecContext,
8769        avpkt: *const AVPacket,
8770    ) -> ::std::os::raw::c_int;
8771}
8772extern "C" {
8773    #[doc = " Return decoded output data from a decoder."]
8774    #[doc = ""]
8775    #[doc = " @param avctx codec context"]
8776    #[doc = " @param frame This will be set to a reference-counted video or audio"]
8777    #[doc = "              frame (depending on the decoder type) allocated by the"]
8778    #[doc = "              decoder. Note that the function will always call"]
8779    #[doc = "              av_frame_unref(frame) before doing anything else."]
8780    #[doc = ""]
8781    #[doc = " @return"]
8782    #[doc = "      0:                 success, a frame was returned"]
8783    #[doc = "      AVERROR(EAGAIN):   output is not available in this state - user must try"]
8784    #[doc = "                         to send new input"]
8785    #[doc = "      AVERROR_EOF:       the decoder has been fully flushed, and there will be"]
8786    #[doc = "                         no more output frames"]
8787    #[doc = "      AVERROR(EINVAL):   codec not opened, or it is an encoder"]
8788    #[doc = "      other negative values: legitimate decoding errors"]
8789    pub fn avcodec_receive_frame(
8790        avctx: *mut AVCodecContext,
8791        frame: *mut AVFrame,
8792    ) -> ::std::os::raw::c_int;
8793}
8794extern "C" {
8795    #[doc = " Supply a raw video or audio frame to the encoder. Use avcodec_receive_packet()"]
8796    #[doc = " to retrieve buffered output packets."]
8797    #[doc = ""]
8798    #[doc = " @param avctx     codec context"]
8799    #[doc = " @param[in] frame AVFrame containing the raw audio or video frame to be encoded."]
8800    #[doc = "                  Ownership of the frame remains with the caller, and the"]
8801    #[doc = "                  encoder will not write to the frame. The encoder may create"]
8802    #[doc = "                  a reference to the frame data (or copy it if the frame is"]
8803    #[doc = "                  not reference-counted)."]
8804    #[doc = "                  It can be NULL, in which case it is considered a flush"]
8805    #[doc = "                  packet.  This signals the end of the stream. If the encoder"]
8806    #[doc = "                  still has packets buffered, it will return them after this"]
8807    #[doc = "                  call. Once flushing mode has been entered, additional flush"]
8808    #[doc = "                  packets are ignored, and sending frames will return"]
8809    #[doc = "                  AVERROR_EOF."]
8810    #[doc = ""]
8811    #[doc = "                  For audio:"]
8812    #[doc = "                  If AV_CODEC_CAP_VARIABLE_FRAME_SIZE is set, then each frame"]
8813    #[doc = "                  can have any number of samples."]
8814    #[doc = "                  If it is not set, frame->nb_samples must be equal to"]
8815    #[doc = "                  avctx->frame_size for all frames except the last."]
8816    #[doc = "                  The final frame may be smaller than avctx->frame_size."]
8817    #[doc = " @return 0 on success, otherwise negative error code:"]
8818    #[doc = "      AVERROR(EAGAIN):   input is not accepted in the current state - user"]
8819    #[doc = "                         must read output with avcodec_receive_packet() (once"]
8820    #[doc = "                         all output is read, the packet should be resent, and"]
8821    #[doc = "                         the call will not fail with EAGAIN)."]
8822    #[doc = "      AVERROR_EOF:       the encoder has been flushed, and no new frames can"]
8823    #[doc = "                         be sent to it"]
8824    #[doc = "      AVERROR(EINVAL):   codec not opened, refcounted_frames not set, it is a"]
8825    #[doc = "                         decoder, or requires flush"]
8826    #[doc = "      AVERROR(ENOMEM):   failed to add packet to internal queue, or similar"]
8827    #[doc = "      other errors: legitimate decoding errors"]
8828    pub fn avcodec_send_frame(
8829        avctx: *mut AVCodecContext,
8830        frame: *const AVFrame,
8831    ) -> ::std::os::raw::c_int;
8832}
8833extern "C" {
8834    #[doc = " Read encoded data from the encoder."]
8835    #[doc = ""]
8836    #[doc = " @param avctx codec context"]
8837    #[doc = " @param avpkt This will be set to a reference-counted packet allocated by the"]
8838    #[doc = "              encoder. Note that the function will always call"]
8839    #[doc = "              av_frame_unref(frame) before doing anything else."]
8840    #[doc = " @return 0 on success, otherwise negative error code:"]
8841    #[doc = "      AVERROR(EAGAIN):   output is not available in the current state - user"]
8842    #[doc = "                         must try to send input"]
8843    #[doc = "      AVERROR_EOF:       the encoder has been fully flushed, and there will be"]
8844    #[doc = "                         no more output packets"]
8845    #[doc = "      AVERROR(EINVAL):   codec not opened, or it is an encoder"]
8846    #[doc = "      other errors: legitimate decoding errors"]
8847    pub fn avcodec_receive_packet(
8848        avctx: *mut AVCodecContext,
8849        avpkt: *mut AVPacket,
8850    ) -> ::std::os::raw::c_int;
8851}
8852extern "C" {
8853    #[doc = " Create and return a AVHWFramesContext with values adequate for hardware"]
8854    #[doc = " decoding. This is meant to get called from the get_format callback, and is"]
8855    #[doc = " a helper for preparing a AVHWFramesContext for AVCodecContext.hw_frames_ctx."]
8856    #[doc = " This API is for decoding with certain hardware acceleration modes/APIs only."]
8857    #[doc = ""]
8858    #[doc = " The returned AVHWFramesContext is not initialized. The caller must do this"]
8859    #[doc = " with av_hwframe_ctx_init()."]
8860    #[doc = ""]
8861    #[doc = " Calling this function is not a requirement, but makes it simpler to avoid"]
8862    #[doc = " codec or hardware API specific details when manually allocating frames."]
8863    #[doc = ""]
8864    #[doc = " Alternatively to this, an API user can set AVCodecContext.hw_device_ctx,"]
8865    #[doc = " which sets up AVCodecContext.hw_frames_ctx fully automatically, and makes"]
8866    #[doc = " it unnecessary to call this function or having to care about"]
8867    #[doc = " AVHWFramesContext initialization at all."]
8868    #[doc = ""]
8869    #[doc = " There are a number of requirements for calling this function:"]
8870    #[doc = ""]
8871    #[doc = " - It must be called from get_format with the same avctx parameter that was"]
8872    #[doc = "   passed to get_format. Calling it outside of get_format is not allowed, and"]
8873    #[doc = "   can trigger undefined behavior."]
8874    #[doc = " - The function is not always supported (see description of return values)."]
8875    #[doc = "   Even if this function returns successfully, hwaccel initialization could"]
8876    #[doc = "   fail later. (The degree to which implementations check whether the stream"]
8877    #[doc = "   is actually supported varies. Some do this check only after the user\'s"]
8878    #[doc = "   get_format callback returns.)"]
8879    #[doc = " - The hw_pix_fmt must be one of the choices suggested by get_format. If the"]
8880    #[doc = "   user decides to use a AVHWFramesContext prepared with this API function,"]
8881    #[doc = "   the user must return the same hw_pix_fmt from get_format."]
8882    #[doc = " - The device_ref passed to this function must support the given hw_pix_fmt."]
8883    #[doc = " - After calling this API function, it is the user\'s responsibility to"]
8884    #[doc = "   initialize the AVHWFramesContext (returned by the out_frames_ref parameter),"]
8885    #[doc = "   and to set AVCodecContext.hw_frames_ctx to it. If done, this must be done"]
8886    #[doc = "   before returning from get_format (this is implied by the normal"]
8887    #[doc = "   AVCodecContext.hw_frames_ctx API rules)."]
8888    #[doc = " - The AVHWFramesContext parameters may change every time time get_format is"]
8889    #[doc = "   called. Also, AVCodecContext.hw_frames_ctx is reset before get_format. So"]
8890    #[doc = "   you are inherently required to go through this process again on every"]
8891    #[doc = "   get_format call."]
8892    #[doc = " - It is perfectly possible to call this function without actually using"]
8893    #[doc = "   the resulting AVHWFramesContext. One use-case might be trying to reuse a"]
8894    #[doc = "   previously initialized AVHWFramesContext, and calling this API function"]
8895    #[doc = "   only to test whether the required frame parameters have changed."]
8896    #[doc = " - Fields that use dynamically allocated values of any kind must not be set"]
8897    #[doc = "   by the user unless setting them is explicitly allowed by the documentation."]
8898    #[doc = "   If the user sets AVHWFramesContext.free and AVHWFramesContext.user_opaque,"]
8899    #[doc = "   the new free callback must call the potentially set previous free callback."]
8900    #[doc = "   This API call may set any dynamically allocated fields, including the free"]
8901    #[doc = "   callback."]
8902    #[doc = ""]
8903    #[doc = " The function will set at least the following fields on AVHWFramesContext"]
8904    #[doc = " (potentially more, depending on hwaccel API):"]
8905    #[doc = ""]
8906    #[doc = " - All fields set by av_hwframe_ctx_alloc()."]
8907    #[doc = " - Set the format field to hw_pix_fmt."]
8908    #[doc = " - Set the sw_format field to the most suited and most versatile format. (An"]
8909    #[doc = "   implication is that this will prefer generic formats over opaque formats"]
8910    #[doc = "   with arbitrary restrictions, if possible.)"]
8911    #[doc = " - Set the width/height fields to the coded frame size, rounded up to the"]
8912    #[doc = "   API-specific minimum alignment."]
8913    #[doc = " - Only _if_ the hwaccel requires a pre-allocated pool: set the initial_pool_size"]
8914    #[doc = "   field to the number of maximum reference surfaces possible with the codec,"]
8915    #[doc = "   plus 1 surface for the user to work (meaning the user can safely reference"]
8916    #[doc = "   at most 1 decoded surface at a time), plus additional buffering introduced"]
8917    #[doc = "   by frame threading. If the hwaccel does not require pre-allocation, the"]
8918    #[doc = "   field is left to 0, and the decoder will allocate new surfaces on demand"]
8919    #[doc = "   during decoding."]
8920    #[doc = " - Possibly AVHWFramesContext.hwctx fields, depending on the underlying"]
8921    #[doc = "   hardware API."]
8922    #[doc = ""]
8923    #[doc = " Essentially, out_frames_ref returns the same as av_hwframe_ctx_alloc(), but"]
8924    #[doc = " with basic frame parameters set."]
8925    #[doc = ""]
8926    #[doc = " The function is stateless, and does not change the AVCodecContext or the"]
8927    #[doc = " device_ref AVHWDeviceContext."]
8928    #[doc = ""]
8929    #[doc = " @param avctx The context which is currently calling get_format, and which"]
8930    #[doc = "              implicitly contains all state needed for filling the returned"]
8931    #[doc = "              AVHWFramesContext properly."]
8932    #[doc = " @param device_ref A reference to the AVHWDeviceContext describing the device"]
8933    #[doc = "                   which will be used by the hardware decoder."]
8934    #[doc = " @param hw_pix_fmt The hwaccel format you are going to return from get_format."]
8935    #[doc = " @param out_frames_ref On success, set to a reference to an _uninitialized_"]
8936    #[doc = "                       AVHWFramesContext, created from the given device_ref."]
8937    #[doc = "                       Fields will be set to values required for decoding."]
8938    #[doc = "                       Not changed if an error is returned."]
8939    #[doc = " @return zero on success, a negative value on error. The following error codes"]
8940    #[doc = "         have special semantics:"]
8941    #[doc = "      AVERROR(ENOENT): the decoder does not support this functionality. Setup"]
8942    #[doc = "                       is always manual, or it is a decoder which does not"]
8943    #[doc = "                       support setting AVCodecContext.hw_frames_ctx at all,"]
8944    #[doc = "                       or it is a software format."]
8945    #[doc = "      AVERROR(EINVAL): it is known that hardware decoding is not supported for"]
8946    #[doc = "                       this configuration, or the device_ref is not supported"]
8947    #[doc = "                       for the hwaccel referenced by hw_pix_fmt."]
8948    pub fn avcodec_get_hw_frames_parameters(
8949        avctx: *mut AVCodecContext,
8950        device_ref: *mut AVBufferRef,
8951        hw_pix_fmt: AVPixelFormat,
8952        out_frames_ref: *mut *mut AVBufferRef,
8953    ) -> ::std::os::raw::c_int;
8954}
8955pub const AVPictureStructure_AV_PICTURE_STRUCTURE_UNKNOWN: AVPictureStructure = 0;
8956pub const AVPictureStructure_AV_PICTURE_STRUCTURE_TOP_FIELD: AVPictureStructure = 1;
8957pub const AVPictureStructure_AV_PICTURE_STRUCTURE_BOTTOM_FIELD: AVPictureStructure = 2;
8958pub const AVPictureStructure_AV_PICTURE_STRUCTURE_FRAME: AVPictureStructure = 3;
8959#[doc = " @defgroup lavc_parsing Frame parsing"]
8960#[doc = " @{"]
8961pub type AVPictureStructure = u32;
8962#[repr(C)]
8963#[derive(Debug, Copy, Clone)]
8964pub struct AVCodecParserContext {
8965    pub priv_data: *mut ::std::os::raw::c_void,
8966    pub parser: *mut AVCodecParser,
8967    pub frame_offset: i64,
8968    pub cur_offset: i64,
8969    pub next_frame_offset: i64,
8970    pub pict_type: ::std::os::raw::c_int,
8971    #[doc = " This field is used for proper frame duration computation in lavf."]
8972    #[doc = " It signals, how much longer the frame duration of the current frame"]
8973    #[doc = " is compared to normal frame duration."]
8974    #[doc = ""]
8975    #[doc = " frame_duration = (1 + repeat_pict) * time_base"]
8976    #[doc = ""]
8977    #[doc = " It is used by codecs like H.264 to display telecined material."]
8978    pub repeat_pict: ::std::os::raw::c_int,
8979    pub pts: i64,
8980    pub dts: i64,
8981    pub last_pts: i64,
8982    pub last_dts: i64,
8983    pub fetch_timestamp: ::std::os::raw::c_int,
8984    pub cur_frame_start_index: ::std::os::raw::c_int,
8985    pub cur_frame_offset: [i64; 4usize],
8986    pub cur_frame_pts: [i64; 4usize],
8987    pub cur_frame_dts: [i64; 4usize],
8988    pub flags: ::std::os::raw::c_int,
8989    #[doc = "< byte offset from starting packet start"]
8990    pub offset: i64,
8991    pub cur_frame_end: [i64; 4usize],
8992    #[doc = " Set by parser to 1 for key frames and 0 for non-key frames."]
8993    #[doc = " It is initialized to -1, so if the parser doesn\'t set this flag,"]
8994    #[doc = " old-style fallback using AV_PICTURE_TYPE_I picture type as key frames"]
8995    #[doc = " will be used."]
8996    pub key_frame: ::std::os::raw::c_int,
8997    #[doc = " @deprecated unused"]
8998    pub convergence_duration: i64,
8999    #[doc = " Synchronization point for start of timestamp generation."]
9000    #[doc = ""]
9001    #[doc = " Set to >0 for sync point, 0 for no sync point and <0 for undefined"]
9002    #[doc = " (default)."]
9003    #[doc = ""]
9004    #[doc = " For example, this corresponds to presence of H.264 buffering period"]
9005    #[doc = " SEI message."]
9006    pub dts_sync_point: ::std::os::raw::c_int,
9007    #[doc = " Offset of the current timestamp against last timestamp sync point in"]
9008    #[doc = " units of AVCodecContext.time_base."]
9009    #[doc = ""]
9010    #[doc = " Set to INT_MIN when dts_sync_point unused. Otherwise, it must"]
9011    #[doc = " contain a valid timestamp offset."]
9012    #[doc = ""]
9013    #[doc = " Note that the timestamp of sync point has usually a nonzero"]
9014    #[doc = " dts_ref_dts_delta, which refers to the previous sync point. Offset of"]
9015    #[doc = " the next frame after timestamp sync point will be usually 1."]
9016    #[doc = ""]
9017    #[doc = " For example, this corresponds to H.264 cpb_removal_delay."]
9018    pub dts_ref_dts_delta: ::std::os::raw::c_int,
9019    #[doc = " Presentation delay of current frame in units of AVCodecContext.time_base."]
9020    #[doc = ""]
9021    #[doc = " Set to INT_MIN when dts_sync_point unused. Otherwise, it must"]
9022    #[doc = " contain valid non-negative timestamp delta (presentation time of a frame"]
9023    #[doc = " must not lie in the past)."]
9024    #[doc = ""]
9025    #[doc = " This delay represents the difference between decoding and presentation"]
9026    #[doc = " time of the frame."]
9027    #[doc = ""]
9028    #[doc = " For example, this corresponds to H.264 dpb_output_delay."]
9029    pub pts_dts_delta: ::std::os::raw::c_int,
9030    #[doc = " Position of the packet in file."]
9031    #[doc = ""]
9032    #[doc = " Analogous to cur_frame_pts/dts"]
9033    pub cur_frame_pos: [i64; 4usize],
9034    #[doc = " Byte position of currently parsed frame in stream."]
9035    pub pos: i64,
9036    #[doc = " Previous frame byte position."]
9037    pub last_pos: i64,
9038    #[doc = " Duration of the current frame."]
9039    #[doc = " For audio, this is in units of 1 / AVCodecContext.sample_rate."]
9040    #[doc = " For all other types, this is in units of AVCodecContext.time_base."]
9041    pub duration: ::std::os::raw::c_int,
9042    pub field_order: AVFieldOrder,
9043    #[doc = " Indicate whether a picture is coded as a frame, top field or bottom field."]
9044    #[doc = ""]
9045    #[doc = " For example, H.264 field_pic_flag equal to 0 corresponds to"]
9046    #[doc = " AV_PICTURE_STRUCTURE_FRAME. An H.264 picture with field_pic_flag"]
9047    #[doc = " equal to 1 and bottom_field_flag equal to 0 corresponds to"]
9048    #[doc = " AV_PICTURE_STRUCTURE_TOP_FIELD."]
9049    pub picture_structure: AVPictureStructure,
9050    #[doc = " Picture number incremented in presentation or output order."]
9051    #[doc = " This field may be reinitialized at the first picture of a new sequence."]
9052    #[doc = ""]
9053    #[doc = " For example, this corresponds to H.264 PicOrderCnt."]
9054    pub output_picture_number: ::std::os::raw::c_int,
9055    #[doc = " Dimensions of the decoded video intended for presentation."]
9056    pub width: ::std::os::raw::c_int,
9057    pub height: ::std::os::raw::c_int,
9058    #[doc = " Dimensions of the coded video."]
9059    pub coded_width: ::std::os::raw::c_int,
9060    pub coded_height: ::std::os::raw::c_int,
9061    #[doc = " The format of the coded data, corresponds to enum AVPixelFormat for video"]
9062    #[doc = " and for enum AVSampleFormat for audio."]
9063    #[doc = ""]
9064    #[doc = " Note that a decoder can have considerable freedom in how exactly it"]
9065    #[doc = " decodes the data, so the format reported here might be different from the"]
9066    #[doc = " one returned by a decoder."]
9067    pub format: ::std::os::raw::c_int,
9068}
9069#[repr(C)]
9070#[derive(Debug, Copy, Clone)]
9071pub struct AVCodecParser {
9072    pub codec_ids: [::std::os::raw::c_int; 5usize],
9073    pub priv_data_size: ::std::os::raw::c_int,
9074    pub parser_init: ::std::option::Option<
9075        unsafe extern "C" fn(s: *mut AVCodecParserContext) -> ::std::os::raw::c_int,
9076    >,
9077    pub parser_parse: ::std::option::Option<
9078        unsafe extern "C" fn(
9079            s: *mut AVCodecParserContext,
9080            avctx: *mut AVCodecContext,
9081            poutbuf: *mut *const u8,
9082            poutbuf_size: *mut ::std::os::raw::c_int,
9083            buf: *const u8,
9084            buf_size: ::std::os::raw::c_int,
9085        ) -> ::std::os::raw::c_int,
9086    >,
9087    pub parser_close: ::std::option::Option<unsafe extern "C" fn(s: *mut AVCodecParserContext)>,
9088    pub split: ::std::option::Option<
9089        unsafe extern "C" fn(
9090            avctx: *mut AVCodecContext,
9091            buf: *const u8,
9092            buf_size: ::std::os::raw::c_int,
9093        ) -> ::std::os::raw::c_int,
9094    >,
9095    pub next: *mut AVCodecParser,
9096}
9097extern "C" {
9098    #[doc = " Iterate over all registered codec parsers."]
9099    #[doc = ""]
9100    #[doc = " @param opaque a pointer where libavcodec will store the iteration state. Must"]
9101    #[doc = "               point to NULL to start the iteration."]
9102    #[doc = ""]
9103    #[doc = " @return the next registered codec parser or NULL when the iteration is"]
9104    #[doc = "         finished"]
9105    pub fn av_parser_iterate(opaque: *mut *mut ::std::os::raw::c_void) -> *const AVCodecParser;
9106}
9107extern "C" {
9108    pub fn av_parser_next(c: *const AVCodecParser) -> *mut AVCodecParser;
9109}
9110extern "C" {
9111    pub fn av_register_codec_parser(parser: *mut AVCodecParser);
9112}
9113extern "C" {
9114    pub fn av_parser_init(codec_id: ::std::os::raw::c_int) -> *mut AVCodecParserContext;
9115}
9116extern "C" {
9117    #[doc = " Parse a packet."]
9118    #[doc = ""]
9119    #[doc = " @param s             parser context."]
9120    #[doc = " @param avctx         codec context."]
9121    #[doc = " @param poutbuf       set to pointer to parsed buffer or NULL if not yet finished."]
9122    #[doc = " @param poutbuf_size  set to size of parsed buffer or zero if not yet finished."]
9123    #[doc = " @param buf           input buffer."]
9124    #[doc = " @param buf_size      buffer size in bytes without the padding. I.e. the full buffer"]
9125    #[doc = "size is assumed to be buf_size + AV_INPUT_BUFFER_PADDING_SIZE."]
9126    #[doc = "To signal EOF, this should be 0 (so that the last frame"]
9127    #[doc = "can be output)."]
9128    #[doc = " @param pts           input presentation timestamp."]
9129    #[doc = " @param dts           input decoding timestamp."]
9130    #[doc = " @param pos           input byte position in stream."]
9131    #[doc = " @return the number of bytes of the input bitstream used."]
9132    #[doc = ""]
9133    #[doc = " Example:"]
9134    #[doc = " @code"]
9135    #[doc = "   while(in_len){"]
9136    #[doc = "       len = av_parser_parse2(myparser, AVCodecContext, &data, &size,"]
9137    #[doc = "                                        in_data, in_len,"]
9138    #[doc = "                                        pts, dts, pos);"]
9139    #[doc = "       in_data += len;"]
9140    #[doc = "       in_len  -= len;"]
9141    #[doc = ""]
9142    #[doc = "       if(size)"]
9143    #[doc = "          decode_frame(data, size);"]
9144    #[doc = "   }"]
9145    #[doc = " @endcode"]
9146    pub fn av_parser_parse2(
9147        s: *mut AVCodecParserContext,
9148        avctx: *mut AVCodecContext,
9149        poutbuf: *mut *mut u8,
9150        poutbuf_size: *mut ::std::os::raw::c_int,
9151        buf: *const u8,
9152        buf_size: ::std::os::raw::c_int,
9153        pts: i64,
9154        dts: i64,
9155        pos: i64,
9156    ) -> ::std::os::raw::c_int;
9157}
9158extern "C" {
9159    #[doc = " @return 0 if the output buffer is a subset of the input, 1 if it is allocated and must be freed"]
9160    #[doc = " @deprecated use AVBitStreamFilter"]
9161    pub fn av_parser_change(
9162        s: *mut AVCodecParserContext,
9163        avctx: *mut AVCodecContext,
9164        poutbuf: *mut *mut u8,
9165        poutbuf_size: *mut ::std::os::raw::c_int,
9166        buf: *const u8,
9167        buf_size: ::std::os::raw::c_int,
9168        keyframe: ::std::os::raw::c_int,
9169    ) -> ::std::os::raw::c_int;
9170}
9171extern "C" {
9172    pub fn av_parser_close(s: *mut AVCodecParserContext);
9173}
9174extern "C" {
9175    #[doc = " Find a registered encoder with a matching codec ID."]
9176    #[doc = ""]
9177    #[doc = " @param id AVCodecID of the requested encoder"]
9178    #[doc = " @return An encoder if one was found, NULL otherwise."]
9179    pub fn avcodec_find_encoder(id: AVCodecID) -> *mut AVCodec;
9180}
9181extern "C" {
9182    #[doc = " Find a registered encoder with the specified name."]
9183    #[doc = ""]
9184    #[doc = " @param name name of the requested encoder"]
9185    #[doc = " @return An encoder if one was found, NULL otherwise."]
9186    pub fn avcodec_find_encoder_by_name(name: *const ::std::os::raw::c_char) -> *mut AVCodec;
9187}
9188extern "C" {
9189    #[doc = " Encode a frame of audio."]
9190    #[doc = ""]
9191    #[doc = " Takes input samples from frame and writes the next output packet, if"]
9192    #[doc = " available, to avpkt. The output packet does not necessarily contain data for"]
9193    #[doc = " the most recent frame, as encoders can delay, split, and combine input frames"]
9194    #[doc = " internally as needed."]
9195    #[doc = ""]
9196    #[doc = " @param avctx     codec context"]
9197    #[doc = " @param avpkt     output AVPacket."]
9198    #[doc = "                  The user can supply an output buffer by setting"]
9199    #[doc = "                  avpkt->data and avpkt->size prior to calling the"]
9200    #[doc = "                  function, but if the size of the user-provided data is not"]
9201    #[doc = "                  large enough, encoding will fail. If avpkt->data and"]
9202    #[doc = "                  avpkt->size are set, avpkt->destruct must also be set. All"]
9203    #[doc = "                  other AVPacket fields will be reset by the encoder using"]
9204    #[doc = "                  av_init_packet(). If avpkt->data is NULL, the encoder will"]
9205    #[doc = "                  allocate it. The encoder will set avpkt->size to the size"]
9206    #[doc = "                  of the output packet."]
9207    #[doc = ""]
9208    #[doc = "                  If this function fails or produces no output, avpkt will be"]
9209    #[doc = "                  freed using av_packet_unref()."]
9210    #[doc = " @param[in] frame AVFrame containing the raw audio data to be encoded."]
9211    #[doc = "                  May be NULL when flushing an encoder that has the"]
9212    #[doc = "                  AV_CODEC_CAP_DELAY capability set."]
9213    #[doc = "                  If AV_CODEC_CAP_VARIABLE_FRAME_SIZE is set, then each frame"]
9214    #[doc = "                  can have any number of samples."]
9215    #[doc = "                  If it is not set, frame->nb_samples must be equal to"]
9216    #[doc = "                  avctx->frame_size for all frames except the last."]
9217    #[doc = "                  The final frame may be smaller than avctx->frame_size."]
9218    #[doc = " @param[out] got_packet_ptr This field is set to 1 by libavcodec if the"]
9219    #[doc = "                            output packet is non-empty, and to 0 if it is"]
9220    #[doc = "                            empty. If the function returns an error, the"]
9221    #[doc = "                            packet can be assumed to be invalid, and the"]
9222    #[doc = "                            value of got_packet_ptr is undefined and should"]
9223    #[doc = "                            not be used."]
9224    #[doc = " @return          0 on success, negative error code on failure"]
9225    #[doc = ""]
9226    #[doc = " @deprecated use avcodec_send_frame()/avcodec_receive_packet() instead"]
9227    pub fn avcodec_encode_audio2(
9228        avctx: *mut AVCodecContext,
9229        avpkt: *mut AVPacket,
9230        frame: *const AVFrame,
9231        got_packet_ptr: *mut ::std::os::raw::c_int,
9232    ) -> ::std::os::raw::c_int;
9233}
9234extern "C" {
9235    #[doc = " Encode a frame of video."]
9236    #[doc = ""]
9237    #[doc = " Takes input raw video data from frame and writes the next output packet, if"]
9238    #[doc = " available, to avpkt. The output packet does not necessarily contain data for"]
9239    #[doc = " the most recent frame, as encoders can delay and reorder input frames"]
9240    #[doc = " internally as needed."]
9241    #[doc = ""]
9242    #[doc = " @param avctx     codec context"]
9243    #[doc = " @param avpkt     output AVPacket."]
9244    #[doc = "                  The user can supply an output buffer by setting"]
9245    #[doc = "                  avpkt->data and avpkt->size prior to calling the"]
9246    #[doc = "                  function, but if the size of the user-provided data is not"]
9247    #[doc = "                  large enough, encoding will fail. All other AVPacket fields"]
9248    #[doc = "                  will be reset by the encoder using av_init_packet(). If"]
9249    #[doc = "                  avpkt->data is NULL, the encoder will allocate it."]
9250    #[doc = "                  The encoder will set avpkt->size to the size of the"]
9251    #[doc = "                  output packet. The returned data (if any) belongs to the"]
9252    #[doc = "                  caller, he is responsible for freeing it."]
9253    #[doc = ""]
9254    #[doc = "                  If this function fails or produces no output, avpkt will be"]
9255    #[doc = "                  freed using av_packet_unref()."]
9256    #[doc = " @param[in] frame AVFrame containing the raw video data to be encoded."]
9257    #[doc = "                  May be NULL when flushing an encoder that has the"]
9258    #[doc = "                  AV_CODEC_CAP_DELAY capability set."]
9259    #[doc = " @param[out] got_packet_ptr This field is set to 1 by libavcodec if the"]
9260    #[doc = "                            output packet is non-empty, and to 0 if it is"]
9261    #[doc = "                            empty. If the function returns an error, the"]
9262    #[doc = "                            packet can be assumed to be invalid, and the"]
9263    #[doc = "                            value of got_packet_ptr is undefined and should"]
9264    #[doc = "                            not be used."]
9265    #[doc = " @return          0 on success, negative error code on failure"]
9266    #[doc = ""]
9267    #[doc = " @deprecated use avcodec_send_frame()/avcodec_receive_packet() instead"]
9268    pub fn avcodec_encode_video2(
9269        avctx: *mut AVCodecContext,
9270        avpkt: *mut AVPacket,
9271        frame: *const AVFrame,
9272        got_packet_ptr: *mut ::std::os::raw::c_int,
9273    ) -> ::std::os::raw::c_int;
9274}
9275extern "C" {
9276    pub fn avcodec_encode_subtitle(
9277        avctx: *mut AVCodecContext,
9278        buf: *mut u8,
9279        buf_size: ::std::os::raw::c_int,
9280        sub: *const AVSubtitle,
9281    ) -> ::std::os::raw::c_int;
9282}
9283extern "C" {
9284    #[doc = " @deprecated unused"]
9285    pub fn avpicture_alloc(
9286        picture: *mut AVPicture,
9287        pix_fmt: AVPixelFormat,
9288        width: ::std::os::raw::c_int,
9289        height: ::std::os::raw::c_int,
9290    ) -> ::std::os::raw::c_int;
9291}
9292extern "C" {
9293    #[doc = " @deprecated unused"]
9294    pub fn avpicture_free(picture: *mut AVPicture);
9295}
9296extern "C" {
9297    #[doc = " @deprecated use av_image_fill_arrays() instead."]
9298    pub fn avpicture_fill(
9299        picture: *mut AVPicture,
9300        ptr: *const u8,
9301        pix_fmt: AVPixelFormat,
9302        width: ::std::os::raw::c_int,
9303        height: ::std::os::raw::c_int,
9304    ) -> ::std::os::raw::c_int;
9305}
9306extern "C" {
9307    #[doc = " @deprecated use av_image_copy_to_buffer() instead."]
9308    pub fn avpicture_layout(
9309        src: *const AVPicture,
9310        pix_fmt: AVPixelFormat,
9311        width: ::std::os::raw::c_int,
9312        height: ::std::os::raw::c_int,
9313        dest: *mut ::std::os::raw::c_uchar,
9314        dest_size: ::std::os::raw::c_int,
9315    ) -> ::std::os::raw::c_int;
9316}
9317extern "C" {
9318    #[doc = " @deprecated use av_image_get_buffer_size() instead."]
9319    pub fn avpicture_get_size(
9320        pix_fmt: AVPixelFormat,
9321        width: ::std::os::raw::c_int,
9322        height: ::std::os::raw::c_int,
9323    ) -> ::std::os::raw::c_int;
9324}
9325extern "C" {
9326    #[doc = " @deprecated av_image_copy() instead."]
9327    pub fn av_picture_copy(
9328        dst: *mut AVPicture,
9329        src: *const AVPicture,
9330        pix_fmt: AVPixelFormat,
9331        width: ::std::os::raw::c_int,
9332        height: ::std::os::raw::c_int,
9333    );
9334}
9335extern "C" {
9336    #[doc = " @deprecated unused"]
9337    pub fn av_picture_crop(
9338        dst: *mut AVPicture,
9339        src: *const AVPicture,
9340        pix_fmt: AVPixelFormat,
9341        top_band: ::std::os::raw::c_int,
9342        left_band: ::std::os::raw::c_int,
9343    ) -> ::std::os::raw::c_int;
9344}
9345extern "C" {
9346    #[doc = " @deprecated unused"]
9347    pub fn av_picture_pad(
9348        dst: *mut AVPicture,
9349        src: *const AVPicture,
9350        height: ::std::os::raw::c_int,
9351        width: ::std::os::raw::c_int,
9352        pix_fmt: AVPixelFormat,
9353        padtop: ::std::os::raw::c_int,
9354        padbottom: ::std::os::raw::c_int,
9355        padleft: ::std::os::raw::c_int,
9356        padright: ::std::os::raw::c_int,
9357        color: *mut ::std::os::raw::c_int,
9358    ) -> ::std::os::raw::c_int;
9359}
9360extern "C" {
9361    #[doc = " @deprecated Use av_pix_fmt_get_chroma_sub_sample"]
9362    pub fn avcodec_get_chroma_sub_sample(
9363        pix_fmt: AVPixelFormat,
9364        h_shift: *mut ::std::os::raw::c_int,
9365        v_shift: *mut ::std::os::raw::c_int,
9366    );
9367}
9368extern "C" {
9369    #[doc = " Return a value representing the fourCC code associated to the"]
9370    #[doc = " pixel format pix_fmt, or 0 if no associated fourCC code can be"]
9371    #[doc = " found."]
9372    pub fn avcodec_pix_fmt_to_codec_tag(pix_fmt: AVPixelFormat) -> ::std::os::raw::c_uint;
9373}
9374extern "C" {
9375    #[doc = " @deprecated see av_get_pix_fmt_loss()"]
9376    pub fn avcodec_get_pix_fmt_loss(
9377        dst_pix_fmt: AVPixelFormat,
9378        src_pix_fmt: AVPixelFormat,
9379        has_alpha: ::std::os::raw::c_int,
9380    ) -> ::std::os::raw::c_int;
9381}
9382extern "C" {
9383    #[doc = " Find the best pixel format to convert to given a certain source pixel"]
9384    #[doc = " format.  When converting from one pixel format to another, information loss"]
9385    #[doc = " may occur.  For example, when converting from RGB24 to GRAY, the color"]
9386    #[doc = " information will be lost. Similarly, other losses occur when converting from"]
9387    #[doc = " some formats to other formats. avcodec_find_best_pix_fmt_of_2() searches which of"]
9388    #[doc = " the given pixel formats should be used to suffer the least amount of loss."]
9389    #[doc = " The pixel formats from which it chooses one, are determined by the"]
9390    #[doc = " pix_fmt_list parameter."]
9391    #[doc = ""]
9392    #[doc = ""]
9393    #[doc = " @param[in] pix_fmt_list AV_PIX_FMT_NONE terminated array of pixel formats to choose from"]
9394    #[doc = " @param[in] src_pix_fmt source pixel format"]
9395    #[doc = " @param[in] has_alpha Whether the source pixel format alpha channel is used."]
9396    #[doc = " @param[out] loss_ptr Combination of flags informing you what kind of losses will occur."]
9397    #[doc = " @return The best pixel format to convert to or -1 if none was found."]
9398    pub fn avcodec_find_best_pix_fmt_of_list(
9399        pix_fmt_list: *const AVPixelFormat,
9400        src_pix_fmt: AVPixelFormat,
9401        has_alpha: ::std::os::raw::c_int,
9402        loss_ptr: *mut ::std::os::raw::c_int,
9403    ) -> AVPixelFormat;
9404}
9405extern "C" {
9406    #[doc = " @deprecated see av_find_best_pix_fmt_of_2()"]
9407    pub fn avcodec_find_best_pix_fmt_of_2(
9408        dst_pix_fmt1: AVPixelFormat,
9409        dst_pix_fmt2: AVPixelFormat,
9410        src_pix_fmt: AVPixelFormat,
9411        has_alpha: ::std::os::raw::c_int,
9412        loss_ptr: *mut ::std::os::raw::c_int,
9413    ) -> AVPixelFormat;
9414}
9415extern "C" {
9416    pub fn avcodec_find_best_pix_fmt2(
9417        dst_pix_fmt1: AVPixelFormat,
9418        dst_pix_fmt2: AVPixelFormat,
9419        src_pix_fmt: AVPixelFormat,
9420        has_alpha: ::std::os::raw::c_int,
9421        loss_ptr: *mut ::std::os::raw::c_int,
9422    ) -> AVPixelFormat;
9423}
9424extern "C" {
9425    pub fn avcodec_default_get_format(
9426        s: *mut AVCodecContext,
9427        fmt: *const AVPixelFormat,
9428    ) -> AVPixelFormat;
9429}
9430extern "C" {
9431    #[doc = " Put a string representing the codec tag codec_tag in buf."]
9432    #[doc = ""]
9433    #[doc = " @param buf       buffer to place codec tag in"]
9434    #[doc = " @param buf_size size in bytes of buf"]
9435    #[doc = " @param codec_tag codec tag to assign"]
9436    #[doc = " @return the length of the string that would have been generated if"]
9437    #[doc = " enough space had been available, excluding the trailing null"]
9438    #[doc = ""]
9439    #[doc = " @deprecated see av_fourcc_make_string() and av_fourcc2str()."]
9440    pub fn av_get_codec_tag_string(
9441        buf: *mut ::std::os::raw::c_char,
9442        buf_size: usize,
9443        codec_tag: ::std::os::raw::c_uint,
9444    ) -> usize;
9445}
9446extern "C" {
9447    pub fn avcodec_string(
9448        buf: *mut ::std::os::raw::c_char,
9449        buf_size: ::std::os::raw::c_int,
9450        enc: *mut AVCodecContext,
9451        encode: ::std::os::raw::c_int,
9452    );
9453}
9454extern "C" {
9455    #[doc = " Return a name for the specified profile, if available."]
9456    #[doc = ""]
9457    #[doc = " @param codec the codec that is searched for the given profile"]
9458    #[doc = " @param profile the profile value for which a name is requested"]
9459    #[doc = " @return A name for the profile if found, NULL otherwise."]
9460    pub fn av_get_profile_name(
9461        codec: *const AVCodec,
9462        profile: ::std::os::raw::c_int,
9463    ) -> *const ::std::os::raw::c_char;
9464}
9465extern "C" {
9466    #[doc = " Return a name for the specified profile, if available."]
9467    #[doc = ""]
9468    #[doc = " @param codec_id the ID of the codec to which the requested profile belongs"]
9469    #[doc = " @param profile the profile value for which a name is requested"]
9470    #[doc = " @return A name for the profile if found, NULL otherwise."]
9471    #[doc = ""]
9472    #[doc = " @note unlike av_get_profile_name(), which searches a list of profiles"]
9473    #[doc = "       supported by a specific decoder or encoder implementation, this"]
9474    #[doc = "       function searches the list of profiles from the AVCodecDescriptor"]
9475    pub fn avcodec_profile_name(
9476        codec_id: AVCodecID,
9477        profile: ::std::os::raw::c_int,
9478    ) -> *const ::std::os::raw::c_char;
9479}
9480extern "C" {
9481    pub fn avcodec_default_execute(
9482        c: *mut AVCodecContext,
9483        func: ::std::option::Option<
9484            unsafe extern "C" fn(
9485                c: *mut AVCodecContext,
9486                func: *mut ::std::os::raw::c_void,
9487            ) -> ::std::os::raw::c_int,
9488        >,
9489        arg: *mut ::std::os::raw::c_void,
9490        ret: *mut ::std::os::raw::c_int,
9491        count: ::std::os::raw::c_int,
9492        size: ::std::os::raw::c_int,
9493    ) -> ::std::os::raw::c_int;
9494}
9495extern "C" {
9496    pub fn avcodec_default_execute2(
9497        c: *mut AVCodecContext,
9498        func: ::std::option::Option<
9499            unsafe extern "C" fn(
9500                c: *mut AVCodecContext,
9501                func: *mut ::std::os::raw::c_void,
9502                arg: ::std::os::raw::c_int,
9503                ret: ::std::os::raw::c_int,
9504            ) -> ::std::os::raw::c_int,
9505        >,
9506        arg: *mut ::std::os::raw::c_void,
9507        ret: *mut ::std::os::raw::c_int,
9508        count: ::std::os::raw::c_int,
9509    ) -> ::std::os::raw::c_int;
9510}
9511extern "C" {
9512    #[doc = " Fill AVFrame audio data and linesize pointers."]
9513    #[doc = ""]
9514    #[doc = " The buffer buf must be a preallocated buffer with a size big enough"]
9515    #[doc = " to contain the specified samples amount. The filled AVFrame data"]
9516    #[doc = " pointers will point to this buffer."]
9517    #[doc = ""]
9518    #[doc = " AVFrame extended_data channel pointers are allocated if necessary for"]
9519    #[doc = " planar audio."]
9520    #[doc = ""]
9521    #[doc = " @param frame       the AVFrame"]
9522    #[doc = "                    frame->nb_samples must be set prior to calling the"]
9523    #[doc = "                    function. This function fills in frame->data,"]
9524    #[doc = "                    frame->extended_data, frame->linesize[0]."]
9525    #[doc = " @param nb_channels channel count"]
9526    #[doc = " @param sample_fmt  sample format"]
9527    #[doc = " @param buf         buffer to use for frame data"]
9528    #[doc = " @param buf_size    size of buffer"]
9529    #[doc = " @param align       plane size sample alignment (0 = default)"]
9530    #[doc = " @return            >=0 on success, negative error code on failure"]
9531    #[doc = " @todo return the size in bytes required to store the samples in"]
9532    #[doc = " case of success, at the next libavutil bump"]
9533    pub fn avcodec_fill_audio_frame(
9534        frame: *mut AVFrame,
9535        nb_channels: ::std::os::raw::c_int,
9536        sample_fmt: AVSampleFormat,
9537        buf: *const u8,
9538        buf_size: ::std::os::raw::c_int,
9539        align: ::std::os::raw::c_int,
9540    ) -> ::std::os::raw::c_int;
9541}
9542extern "C" {
9543    #[doc = " Reset the internal decoder state / flush internal buffers. Should be called"]
9544    #[doc = " e.g. when seeking or when switching to a different stream."]
9545    #[doc = ""]
9546    #[doc = " @note when refcounted frames are not used (i.e. avctx->refcounted_frames is 0),"]
9547    #[doc = " this invalidates the frames previously returned from the decoder. When"]
9548    #[doc = " refcounted frames are used, the decoder just releases any references it might"]
9549    #[doc = " keep internally, but the caller\'s reference remains valid."]
9550    pub fn avcodec_flush_buffers(avctx: *mut AVCodecContext);
9551}
9552extern "C" {
9553    #[doc = " Return codec bits per sample."]
9554    #[doc = ""]
9555    #[doc = " @param[in] codec_id the codec"]
9556    #[doc = " @return Number of bits per sample or zero if unknown for the given codec."]
9557    pub fn av_get_bits_per_sample(codec_id: AVCodecID) -> ::std::os::raw::c_int;
9558}
9559extern "C" {
9560    #[doc = " Return the PCM codec associated with a sample format."]
9561    #[doc = " @param be  endianness, 0 for little, 1 for big,"]
9562    #[doc = "            -1 (or anything else) for native"]
9563    #[doc = " @return  AV_CODEC_ID_PCM_* or AV_CODEC_ID_NONE"]
9564    pub fn av_get_pcm_codec(fmt: AVSampleFormat, be: ::std::os::raw::c_int) -> AVCodecID;
9565}
9566extern "C" {
9567    #[doc = " Return codec bits per sample."]
9568    #[doc = " Only return non-zero if the bits per sample is exactly correct, not an"]
9569    #[doc = " approximation."]
9570    #[doc = ""]
9571    #[doc = " @param[in] codec_id the codec"]
9572    #[doc = " @return Number of bits per sample or zero if unknown for the given codec."]
9573    pub fn av_get_exact_bits_per_sample(codec_id: AVCodecID) -> ::std::os::raw::c_int;
9574}
9575extern "C" {
9576    #[doc = " Return audio frame duration."]
9577    #[doc = ""]
9578    #[doc = " @param avctx        codec context"]
9579    #[doc = " @param frame_bytes  size of the frame, or 0 if unknown"]
9580    #[doc = " @return             frame duration, in samples, if known. 0 if not able to"]
9581    #[doc = "                     determine."]
9582    pub fn av_get_audio_frame_duration(
9583        avctx: *mut AVCodecContext,
9584        frame_bytes: ::std::os::raw::c_int,
9585    ) -> ::std::os::raw::c_int;
9586}
9587extern "C" {
9588    #[doc = " This function is the same as av_get_audio_frame_duration(), except it works"]
9589    #[doc = " with AVCodecParameters instead of an AVCodecContext."]
9590    pub fn av_get_audio_frame_duration2(
9591        par: *mut AVCodecParameters,
9592        frame_bytes: ::std::os::raw::c_int,
9593    ) -> ::std::os::raw::c_int;
9594}
9595#[repr(C)]
9596#[derive(Debug, Copy, Clone)]
9597pub struct AVBitStreamFilterContext {
9598    pub priv_data: *mut ::std::os::raw::c_void,
9599    pub filter: *const AVBitStreamFilter,
9600    pub parser: *mut AVCodecParserContext,
9601    pub next: *mut AVBitStreamFilterContext,
9602    #[doc = " Internal default arguments, used if NULL is passed to av_bitstream_filter_filter()."]
9603    #[doc = " Not for access by library users."]
9604    pub args: *mut ::std::os::raw::c_char,
9605}
9606#[repr(C)]
9607#[derive(Debug, Copy, Clone)]
9608pub struct AVBSFInternal {
9609    _unused: [u8; 0],
9610}
9611#[doc = " The bitstream filter state."]
9612#[doc = ""]
9613#[doc = " This struct must be allocated with av_bsf_alloc() and freed with"]
9614#[doc = " av_bsf_free()."]
9615#[doc = ""]
9616#[doc = " The fields in the struct will only be changed (by the caller or by the"]
9617#[doc = " filter) as described in their documentation, and are to be considered"]
9618#[doc = " immutable otherwise."]
9619#[repr(C)]
9620#[derive(Debug, Copy, Clone)]
9621pub struct AVBSFContext {
9622    #[doc = " A class for logging and AVOptions"]
9623    pub av_class: *const AVClass,
9624    #[doc = " The bitstream filter this context is an instance of."]
9625    pub filter: *const AVBitStreamFilter,
9626    #[doc = " Opaque libavcodec internal data. Must not be touched by the caller in any"]
9627    #[doc = " way."]
9628    pub internal: *mut AVBSFInternal,
9629    #[doc = " Opaque filter-specific private data. If filter->priv_class is non-NULL,"]
9630    #[doc = " this is an AVOptions-enabled struct."]
9631    pub priv_data: *mut ::std::os::raw::c_void,
9632    #[doc = " Parameters of the input stream. This field is allocated in"]
9633    #[doc = " av_bsf_alloc(), it needs to be filled by the caller before"]
9634    #[doc = " av_bsf_init()."]
9635    pub par_in: *mut AVCodecParameters,
9636    #[doc = " Parameters of the output stream. This field is allocated in"]
9637    #[doc = " av_bsf_alloc(), it is set by the filter in av_bsf_init()."]
9638    pub par_out: *mut AVCodecParameters,
9639    #[doc = " The timebase used for the timestamps of the input packets. Set by the"]
9640    #[doc = " caller before av_bsf_init()."]
9641    pub time_base_in: AVRational,
9642    #[doc = " The timebase used for the timestamps of the output packets. Set by the"]
9643    #[doc = " filter in av_bsf_init()."]
9644    pub time_base_out: AVRational,
9645}
9646#[repr(C)]
9647#[derive(Debug, Copy, Clone)]
9648pub struct AVBitStreamFilter {
9649    pub name: *const ::std::os::raw::c_char,
9650    #[doc = " A list of codec ids supported by the filter, terminated by"]
9651    #[doc = " AV_CODEC_ID_NONE."]
9652    #[doc = " May be NULL, in that case the bitstream filter works with any codec id."]
9653    pub codec_ids: *const AVCodecID,
9654    #[doc = " A class for the private data, used to declare bitstream filter private"]
9655    #[doc = " AVOptions. This field is NULL for bitstream filters that do not declare"]
9656    #[doc = " any options."]
9657    #[doc = ""]
9658    #[doc = " If this field is non-NULL, the first member of the filter private data"]
9659    #[doc = " must be a pointer to AVClass, which will be set by libavcodec generic"]
9660    #[doc = " code to this class."]
9661    pub priv_class: *const AVClass,
9662    #[doc = " No fields below this line are part of the public API. They"]
9663    #[doc = " may not be used outside of libavcodec and can be changed and"]
9664    #[doc = " removed at will."]
9665    #[doc = " New public fields should be added right above."]
9666    #[doc = ""]
9667    pub priv_data_size: ::std::os::raw::c_int,
9668    pub init: ::std::option::Option<
9669        unsafe extern "C" fn(ctx: *mut AVBSFContext) -> ::std::os::raw::c_int,
9670    >,
9671    pub filter: ::std::option::Option<
9672        unsafe extern "C" fn(ctx: *mut AVBSFContext, pkt: *mut AVPacket) -> ::std::os::raw::c_int,
9673    >,
9674    pub close: ::std::option::Option<unsafe extern "C" fn(ctx: *mut AVBSFContext)>,
9675    pub flush: ::std::option::Option<unsafe extern "C" fn(ctx: *mut AVBSFContext)>,
9676}
9677extern "C" {
9678    #[doc = " @deprecated the old bitstream filtering API (using AVBitStreamFilterContext)"]
9679    #[doc = " is deprecated. Use the new bitstream filtering API (using AVBSFContext)."]
9680    pub fn av_register_bitstream_filter(bsf: *mut AVBitStreamFilter);
9681}
9682extern "C" {
9683    #[doc = " @deprecated the old bitstream filtering API (using AVBitStreamFilterContext)"]
9684    #[doc = " is deprecated. Use av_bsf_get_by_name(), av_bsf_alloc(), and av_bsf_init()"]
9685    #[doc = " from the new bitstream filtering API (using AVBSFContext)."]
9686    pub fn av_bitstream_filter_init(
9687        name: *const ::std::os::raw::c_char,
9688    ) -> *mut AVBitStreamFilterContext;
9689}
9690extern "C" {
9691    #[doc = " @deprecated the old bitstream filtering API (using AVBitStreamFilterContext)"]
9692    #[doc = " is deprecated. Use av_bsf_send_packet() and av_bsf_receive_packet() from the"]
9693    #[doc = " new bitstream filtering API (using AVBSFContext)."]
9694    pub fn av_bitstream_filter_filter(
9695        bsfc: *mut AVBitStreamFilterContext,
9696        avctx: *mut AVCodecContext,
9697        args: *const ::std::os::raw::c_char,
9698        poutbuf: *mut *mut u8,
9699        poutbuf_size: *mut ::std::os::raw::c_int,
9700        buf: *const u8,
9701        buf_size: ::std::os::raw::c_int,
9702        keyframe: ::std::os::raw::c_int,
9703    ) -> ::std::os::raw::c_int;
9704}
9705extern "C" {
9706    #[doc = " @deprecated the old bitstream filtering API (using AVBitStreamFilterContext)"]
9707    #[doc = " is deprecated. Use av_bsf_free() from the new bitstream filtering API (using"]
9708    #[doc = " AVBSFContext)."]
9709    pub fn av_bitstream_filter_close(bsf: *mut AVBitStreamFilterContext);
9710}
9711extern "C" {
9712    #[doc = " @deprecated the old bitstream filtering API (using AVBitStreamFilterContext)"]
9713    #[doc = " is deprecated. Use av_bsf_iterate() from the new bitstream filtering API (using"]
9714    #[doc = " AVBSFContext)."]
9715    pub fn av_bitstream_filter_next(f: *const AVBitStreamFilter) -> *const AVBitStreamFilter;
9716}
9717extern "C" {
9718    #[doc = " @return a bitstream filter with the specified name or NULL if no such"]
9719    #[doc = "         bitstream filter exists."]
9720    pub fn av_bsf_get_by_name(name: *const ::std::os::raw::c_char) -> *const AVBitStreamFilter;
9721}
9722extern "C" {
9723    #[doc = " Iterate over all registered bitstream filters."]
9724    #[doc = ""]
9725    #[doc = " @param opaque a pointer where libavcodec will store the iteration state. Must"]
9726    #[doc = "               point to NULL to start the iteration."]
9727    #[doc = ""]
9728    #[doc = " @return the next registered bitstream filter or NULL when the iteration is"]
9729    #[doc = "         finished"]
9730    pub fn av_bsf_iterate(opaque: *mut *mut ::std::os::raw::c_void) -> *const AVBitStreamFilter;
9731}
9732extern "C" {
9733    pub fn av_bsf_next(opaque: *mut *mut ::std::os::raw::c_void) -> *const AVBitStreamFilter;
9734}
9735extern "C" {
9736    #[doc = " Allocate a context for a given bitstream filter. The caller must fill in the"]
9737    #[doc = " context parameters as described in the documentation and then call"]
9738    #[doc = " av_bsf_init() before sending any data to the filter."]
9739    #[doc = ""]
9740    #[doc = " @param filter the filter for which to allocate an instance."]
9741    #[doc = " @param ctx a pointer into which the pointer to the newly-allocated context"]
9742    #[doc = "            will be written. It must be freed with av_bsf_free() after the"]
9743    #[doc = "            filtering is done."]
9744    #[doc = ""]
9745    #[doc = " @return 0 on success, a negative AVERROR code on failure"]
9746    pub fn av_bsf_alloc(
9747        filter: *const AVBitStreamFilter,
9748        ctx: *mut *mut AVBSFContext,
9749    ) -> ::std::os::raw::c_int;
9750}
9751extern "C" {
9752    #[doc = " Prepare the filter for use, after all the parameters and options have been"]
9753    #[doc = " set."]
9754    pub fn av_bsf_init(ctx: *mut AVBSFContext) -> ::std::os::raw::c_int;
9755}
9756extern "C" {
9757    #[doc = " Submit a packet for filtering."]
9758    #[doc = ""]
9759    #[doc = " After sending each packet, the filter must be completely drained by calling"]
9760    #[doc = " av_bsf_receive_packet() repeatedly until it returns AVERROR(EAGAIN) or"]
9761    #[doc = " AVERROR_EOF."]
9762    #[doc = ""]
9763    #[doc = " @param pkt the packet to filter. The bitstream filter will take ownership of"]
9764    #[doc = " the packet and reset the contents of pkt. pkt is not touched if an error occurs."]
9765    #[doc = " This parameter may be NULL, which signals the end of the stream (i.e. no more"]
9766    #[doc = " packets will be sent). That will cause the filter to output any packets it"]
9767    #[doc = " may have buffered internally."]
9768    #[doc = ""]
9769    #[doc = " @return 0 on success, a negative AVERROR on error."]
9770    pub fn av_bsf_send_packet(ctx: *mut AVBSFContext, pkt: *mut AVPacket) -> ::std::os::raw::c_int;
9771}
9772extern "C" {
9773    #[doc = " Retrieve a filtered packet."]
9774    #[doc = ""]
9775    #[doc = " @param[out] pkt this struct will be filled with the contents of the filtered"]
9776    #[doc = "                 packet. It is owned by the caller and must be freed using"]
9777    #[doc = "                 av_packet_unref() when it is no longer needed."]
9778    #[doc = "                 This parameter should be \"clean\" (i.e. freshly allocated"]
9779    #[doc = "                 with av_packet_alloc() or unreffed with av_packet_unref())"]
9780    #[doc = "                 when this function is called. If this function returns"]
9781    #[doc = "                 successfully, the contents of pkt will be completely"]
9782    #[doc = "                 overwritten by the returned data. On failure, pkt is not"]
9783    #[doc = "                 touched."]
9784    #[doc = ""]
9785    #[doc = " @return 0 on success. AVERROR(EAGAIN) if more packets need to be sent to the"]
9786    #[doc = " filter (using av_bsf_send_packet()) to get more output. AVERROR_EOF if there"]
9787    #[doc = " will be no further output from the filter. Another negative AVERROR value if"]
9788    #[doc = " an error occurs."]
9789    #[doc = ""]
9790    #[doc = " @note one input packet may result in several output packets, so after sending"]
9791    #[doc = " a packet with av_bsf_send_packet(), this function needs to be called"]
9792    #[doc = " repeatedly until it stops returning 0. It is also possible for a filter to"]
9793    #[doc = " output fewer packets than were sent to it, so this function may return"]
9794    #[doc = " AVERROR(EAGAIN) immediately after a successful av_bsf_send_packet() call."]
9795    pub fn av_bsf_receive_packet(
9796        ctx: *mut AVBSFContext,
9797        pkt: *mut AVPacket,
9798    ) -> ::std::os::raw::c_int;
9799}
9800extern "C" {
9801    #[doc = " Reset the internal bitstream filter state / flush internal buffers."]
9802    pub fn av_bsf_flush(ctx: *mut AVBSFContext);
9803}
9804extern "C" {
9805    #[doc = " Free a bitstream filter context and everything associated with it; write NULL"]
9806    #[doc = " into the supplied pointer."]
9807    pub fn av_bsf_free(ctx: *mut *mut AVBSFContext);
9808}
9809extern "C" {
9810    #[doc = " Get the AVClass for AVBSFContext. It can be used in combination with"]
9811    #[doc = " AV_OPT_SEARCH_FAKE_OBJ for examining options."]
9812    #[doc = ""]
9813    #[doc = " @see av_opt_find()."]
9814    pub fn av_bsf_get_class() -> *const AVClass;
9815}
9816#[repr(C)]
9817#[derive(Debug, Copy, Clone)]
9818pub struct AVBSFList {
9819    _unused: [u8; 0],
9820}
9821extern "C" {
9822    #[doc = " Allocate empty list of bitstream filters."]
9823    #[doc = " The list must be later freed by av_bsf_list_free()"]
9824    #[doc = " or finalized by av_bsf_list_finalize()."]
9825    #[doc = ""]
9826    #[doc = " @return Pointer to @ref AVBSFList on success, NULL in case of failure"]
9827    pub fn av_bsf_list_alloc() -> *mut AVBSFList;
9828}
9829extern "C" {
9830    #[doc = " Free list of bitstream filters."]
9831    #[doc = ""]
9832    #[doc = " @param lst Pointer to pointer returned by av_bsf_list_alloc()"]
9833    pub fn av_bsf_list_free(lst: *mut *mut AVBSFList);
9834}
9835extern "C" {
9836    #[doc = " Append bitstream filter to the list of bitstream filters."]
9837    #[doc = ""]
9838    #[doc = " @param lst List to append to"]
9839    #[doc = " @param bsf Filter context to be appended"]
9840    #[doc = ""]
9841    #[doc = " @return >=0 on success, negative AVERROR in case of failure"]
9842    pub fn av_bsf_list_append(lst: *mut AVBSFList, bsf: *mut AVBSFContext)
9843        -> ::std::os::raw::c_int;
9844}
9845extern "C" {
9846    #[doc = " Construct new bitstream filter context given it\'s name and options"]
9847    #[doc = " and append it to the list of bitstream filters."]
9848    #[doc = ""]
9849    #[doc = " @param lst      List to append to"]
9850    #[doc = " @param bsf_name Name of the bitstream filter"]
9851    #[doc = " @param options  Options for the bitstream filter, can be set to NULL"]
9852    #[doc = ""]
9853    #[doc = " @return >=0 on success, negative AVERROR in case of failure"]
9854    pub fn av_bsf_list_append2(
9855        lst: *mut AVBSFList,
9856        bsf_name: *const ::std::os::raw::c_char,
9857        options: *mut *mut AVDictionary,
9858    ) -> ::std::os::raw::c_int;
9859}
9860extern "C" {
9861    #[doc = " Finalize list of bitstream filters."]
9862    #[doc = ""]
9863    #[doc = " This function will transform @ref AVBSFList to single @ref AVBSFContext,"]
9864    #[doc = " so the whole chain of bitstream filters can be treated as single filter"]
9865    #[doc = " freshly allocated by av_bsf_alloc()."]
9866    #[doc = " If the call is successful, @ref AVBSFList structure is freed and lst"]
9867    #[doc = " will be set to NULL. In case of failure, caller is responsible for"]
9868    #[doc = " freeing the structure by av_bsf_list_free()"]
9869    #[doc = ""]
9870    #[doc = " @param      lst Filter list structure to be transformed"]
9871    #[doc = " @param[out] bsf Pointer to be set to newly created @ref AVBSFContext structure"]
9872    #[doc = "                 representing the chain of bitstream filters"]
9873    #[doc = ""]
9874    #[doc = " @return >=0 on success, negative AVERROR in case of failure"]
9875    pub fn av_bsf_list_finalize(
9876        lst: *mut *mut AVBSFList,
9877        bsf: *mut *mut AVBSFContext,
9878    ) -> ::std::os::raw::c_int;
9879}
9880extern "C" {
9881    #[doc = " Parse string describing list of bitstream filters and create single"]
9882    #[doc = " @ref AVBSFContext describing the whole chain of bitstream filters."]
9883    #[doc = " Resulting @ref AVBSFContext can be treated as any other @ref AVBSFContext freshly"]
9884    #[doc = " allocated by av_bsf_alloc()."]
9885    #[doc = ""]
9886    #[doc = " @param      str String describing chain of bitstream filters in format"]
9887    #[doc = "                 `bsf1[=opt1=val1:opt2=val2][,bsf2]`"]
9888    #[doc = " @param[out] bsf Pointer to be set to newly created @ref AVBSFContext structure"]
9889    #[doc = "                 representing the chain of bitstream filters"]
9890    #[doc = ""]
9891    #[doc = " @return >=0 on success, negative AVERROR in case of failure"]
9892    pub fn av_bsf_list_parse_str(
9893        str: *const ::std::os::raw::c_char,
9894        bsf: *mut *mut AVBSFContext,
9895    ) -> ::std::os::raw::c_int;
9896}
9897extern "C" {
9898    #[doc = " Get null/pass-through bitstream filter."]
9899    #[doc = ""]
9900    #[doc = " @param[out] bsf Pointer to be set to new instance of pass-through bitstream filter"]
9901    #[doc = ""]
9902    #[doc = " @return"]
9903    pub fn av_bsf_get_null_filter(bsf: *mut *mut AVBSFContext) -> ::std::os::raw::c_int;
9904}
9905extern "C" {
9906    #[doc = " Same behaviour av_fast_malloc but the buffer has additional"]
9907    #[doc = " AV_INPUT_BUFFER_PADDING_SIZE at the end which will always be 0."]
9908    #[doc = ""]
9909    #[doc = " In addition the whole buffer will initially and after resizes"]
9910    #[doc = " be 0-initialized so that no uninitialized data will ever appear."]
9911    pub fn av_fast_padded_malloc(
9912        ptr: *mut ::std::os::raw::c_void,
9913        size: *mut ::std::os::raw::c_uint,
9914        min_size: usize,
9915    );
9916}
9917extern "C" {
9918    #[doc = " Same behaviour av_fast_padded_malloc except that buffer will always"]
9919    #[doc = " be 0-initialized after call."]
9920    pub fn av_fast_padded_mallocz(
9921        ptr: *mut ::std::os::raw::c_void,
9922        size: *mut ::std::os::raw::c_uint,
9923        min_size: usize,
9924    );
9925}
9926extern "C" {
9927    #[doc = " Encode extradata length to a buffer. Used by xiph codecs."]
9928    #[doc = ""]
9929    #[doc = " @param s buffer to write to; must be at least (v/255+1) bytes long"]
9930    #[doc = " @param v size of extradata in bytes"]
9931    #[doc = " @return number of bytes written to the buffer."]
9932    pub fn av_xiphlacing(
9933        s: *mut ::std::os::raw::c_uchar,
9934        v: ::std::os::raw::c_uint,
9935    ) -> ::std::os::raw::c_uint;
9936}
9937extern "C" {
9938    #[doc = " Register the hardware accelerator hwaccel."]
9939    #[doc = ""]
9940    #[doc = " @deprecated  This function doesn\'t do anything."]
9941    pub fn av_register_hwaccel(hwaccel: *mut AVHWAccel);
9942}
9943extern "C" {
9944    #[doc = " If hwaccel is NULL, returns the first registered hardware accelerator,"]
9945    #[doc = " if hwaccel is non-NULL, returns the next registered hardware accelerator"]
9946    #[doc = " after hwaccel, or NULL if hwaccel is the last one."]
9947    #[doc = ""]
9948    #[doc = " @deprecated  AVHWaccel structures contain no user-serviceable parts, so"]
9949    #[doc = "              this function should not be used."]
9950    pub fn av_hwaccel_next(hwaccel: *const AVHWAccel) -> *mut AVHWAccel;
9951}
9952#[doc = "< Create a mutex"]
9953pub const AVLockOp_AV_LOCK_CREATE: AVLockOp = 0;
9954#[doc = "< Lock the mutex"]
9955pub const AVLockOp_AV_LOCK_OBTAIN: AVLockOp = 1;
9956#[doc = "< Unlock the mutex"]
9957pub const AVLockOp_AV_LOCK_RELEASE: AVLockOp = 2;
9958#[doc = "< Free mutex resources"]
9959pub const AVLockOp_AV_LOCK_DESTROY: AVLockOp = 3;
9960#[doc = " Lock operation used by lockmgr"]
9961#[doc = ""]
9962#[doc = " @deprecated Deprecated together with av_lockmgr_register()."]
9963pub type AVLockOp = u32;
9964extern "C" {
9965    #[doc = " Register a user provided lock manager supporting the operations"]
9966    #[doc = " specified by AVLockOp. The \"mutex\" argument to the function points"]
9967    #[doc = " to a (void *) where the lockmgr should store/get a pointer to a user"]
9968    #[doc = " allocated mutex. It is NULL upon AV_LOCK_CREATE and equal to the"]
9969    #[doc = " value left by the last call for all other ops. If the lock manager is"]
9970    #[doc = " unable to perform the op then it should leave the mutex in the same"]
9971    #[doc = " state as when it was called and return a non-zero value. However,"]
9972    #[doc = " when called with AV_LOCK_DESTROY the mutex will always be assumed to"]
9973    #[doc = " have been successfully destroyed. If av_lockmgr_register succeeds"]
9974    #[doc = " it will return a non-negative value, if it fails it will return a"]
9975    #[doc = " negative value and destroy all mutex and unregister all callbacks."]
9976    #[doc = " av_lockmgr_register is not thread-safe, it must be called from a"]
9977    #[doc = " single thread before any calls which make use of locking are used."]
9978    #[doc = ""]
9979    #[doc = " @param cb User defined callback. av_lockmgr_register invokes calls"]
9980    #[doc = "           to this callback and the previously registered callback."]
9981    #[doc = "           The callback will be used to create more than one mutex"]
9982    #[doc = "           each of which must be backed by its own underlying locking"]
9983    #[doc = "           mechanism (i.e. do not use a single static object to"]
9984    #[doc = "           implement your lock manager). If cb is set to NULL the"]
9985    #[doc = "           lockmgr will be unregistered."]
9986    #[doc = ""]
9987    #[doc = " @deprecated This function does nothing, and always returns 0. Be sure to"]
9988    #[doc = "             build with thread support to get basic thread safety."]
9989    pub fn av_lockmgr_register(
9990        cb: ::std::option::Option<
9991            unsafe extern "C" fn(
9992                cb: *mut *mut ::std::os::raw::c_void,
9993                arg1: AVLockOp,
9994            ) -> ::std::os::raw::c_int,
9995        >,
9996    ) -> ::std::os::raw::c_int;
9997}
9998extern "C" {
9999    #[doc = " Get the type of the given codec."]
10000    pub fn avcodec_get_type(codec_id: AVCodecID) -> AVMediaType;
10001}
10002extern "C" {
10003    #[doc = " Get the name of a codec."]
10004    #[doc = " @return  a static string identifying the codec; never NULL"]
10005    pub fn avcodec_get_name(id: AVCodecID) -> *const ::std::os::raw::c_char;
10006}
10007extern "C" {
10008    #[doc = " @return a positive value if s is open (i.e. avcodec_open2() was called on it"]
10009    #[doc = " with no corresponding avcodec_close()), 0 otherwise."]
10010    pub fn avcodec_is_open(s: *mut AVCodecContext) -> ::std::os::raw::c_int;
10011}
10012extern "C" {
10013    #[doc = " @return a non-zero number if codec is an encoder, zero otherwise"]
10014    pub fn av_codec_is_encoder(codec: *const AVCodec) -> ::std::os::raw::c_int;
10015}
10016extern "C" {
10017    #[doc = " @return a non-zero number if codec is a decoder, zero otherwise"]
10018    pub fn av_codec_is_decoder(codec: *const AVCodec) -> ::std::os::raw::c_int;
10019}
10020extern "C" {
10021    #[doc = " @return descriptor for given codec ID or NULL if no descriptor exists."]
10022    pub fn avcodec_descriptor_get(id: AVCodecID) -> *const AVCodecDescriptor;
10023}
10024extern "C" {
10025    #[doc = " Iterate over all codec descriptors known to libavcodec."]
10026    #[doc = ""]
10027    #[doc = " @param prev previous descriptor. NULL to get the first descriptor."]
10028    #[doc = ""]
10029    #[doc = " @return next descriptor or NULL after the last descriptor"]
10030    pub fn avcodec_descriptor_next(prev: *const AVCodecDescriptor) -> *const AVCodecDescriptor;
10031}
10032extern "C" {
10033    #[doc = " @return codec descriptor with the given name or NULL if no such descriptor"]
10034    #[doc = "         exists."]
10035    pub fn avcodec_descriptor_get_by_name(
10036        name: *const ::std::os::raw::c_char,
10037    ) -> *const AVCodecDescriptor;
10038}
10039extern "C" {
10040    #[doc = " Allocate a CPB properties structure and initialize its fields to default"]
10041    #[doc = " values."]
10042    #[doc = ""]
10043    #[doc = " @param size if non-NULL, the size of the allocated struct will be written"]
10044    #[doc = "             here. This is useful for embedding it in side data."]
10045    #[doc = ""]
10046    #[doc = " @return the newly allocated struct or NULL on failure"]
10047    pub fn av_cpb_properties_alloc(size: *mut usize) -> *mut AVCPBProperties;
10048}
10049pub type __builtin_va_list = [__va_list_tag; 1usize];
10050#[repr(C)]
10051#[derive(Debug, Copy, Clone)]
10052pub struct __va_list_tag {
10053    pub gp_offset: ::std::os::raw::c_uint,
10054    pub fp_offset: ::std::os::raw::c_uint,
10055    pub overflow_arg_area: *mut ::std::os::raw::c_void,
10056    pub reg_save_area: *mut ::std::os::raw::c_void,
10057}
10058#[repr(C)]
10059#[derive(Debug, Copy, Clone)]
10060pub struct __locale_data {
10061    pub _address: u8,
10062}
10063#[repr(C)]
10064#[derive(Debug, Copy, Clone)]
10065pub struct AVOption {
10066    pub _address: u8,
10067}
10068#[doc = " Array of pointers to hardware configurations supported by the codec,"]
10069#[doc = " or NULL if no hardware supported.  The array is terminated by a NULL"]
10070#[doc = " pointer."]
10071#[doc = ""]
10072#[doc = " The user can only access this field via avcodec_get_hw_config()."]
10073#[repr(C)]
10074#[derive(Debug, Copy, Clone)]
10075pub struct AVCodecHWConfigInternal {
10076    pub _address: u8,
10077}