caldera_bindings/avformat/
mod.rs

1/* automatically generated by rust-bindgen */
2
3#[link(name = "avformat")] extern {}
4
5#[repr(C)]
6#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
7pub struct __BindgenBitfieldUnit<Storage, Align>
8where
9    Storage: AsRef<[u8]> + AsMut<[u8]>,
10{
11    storage: Storage,
12    align: [Align; 0],
13}
14impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align>
15where
16    Storage: AsRef<[u8]> + AsMut<[u8]>,
17{
18    #[inline]
19    pub fn new(storage: Storage) -> Self {
20        Self { storage, align: [] }
21    }
22    #[inline]
23    pub fn get_bit(&self, index: usize) -> bool {
24        debug_assert!(index / 8 < self.storage.as_ref().len());
25        let byte_index = index / 8;
26        let byte = self.storage.as_ref()[byte_index];
27        let bit_index = if cfg!(target_endian = "big") {
28            7 - (index % 8)
29        } else {
30            index % 8
31        };
32        let mask = 1 << bit_index;
33        byte & mask == mask
34    }
35    #[inline]
36    pub fn set_bit(&mut self, index: usize, val: bool) {
37        debug_assert!(index / 8 < self.storage.as_ref().len());
38        let byte_index = index / 8;
39        let byte = &mut self.storage.as_mut()[byte_index];
40        let bit_index = if cfg!(target_endian = "big") {
41            7 - (index % 8)
42        } else {
43            index % 8
44        };
45        let mask = 1 << bit_index;
46        if val {
47            *byte |= mask;
48        } else {
49            *byte &= !mask;
50        }
51    }
52    #[inline]
53    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
54        debug_assert!(bit_width <= 64);
55        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
56        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
57        let mut val = 0;
58        for i in 0..(bit_width as usize) {
59            if self.get_bit(i + bit_offset) {
60                let index = if cfg!(target_endian = "big") {
61                    bit_width as usize - 1 - i
62                } else {
63                    i
64                };
65                val |= 1 << index;
66            }
67        }
68        val
69    }
70    #[inline]
71    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
72        debug_assert!(bit_width <= 64);
73        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
74        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
75        for i in 0..(bit_width as usize) {
76            let mask = 1 << i;
77            let val_bit_is_set = val & mask == mask;
78            let index = if cfg!(target_endian = "big") {
79                bit_width as usize - 1 - i
80            } else {
81                i
82            };
83            self.set_bit(index + bit_offset, val_bit_is_set);
84        }
85    }
86}
87pub const _TIME_H: u32 = 1;
88pub const _FEATURES_H: u32 = 1;
89pub const _DEFAULT_SOURCE: u32 = 1;
90pub const __USE_ISOC11: u32 = 1;
91pub const __USE_ISOC99: u32 = 1;
92pub const __USE_ISOC95: u32 = 1;
93pub const __USE_POSIX_IMPLICITLY: u32 = 1;
94pub const _POSIX_SOURCE: u32 = 1;
95pub const _POSIX_C_SOURCE: u32 = 200809;
96pub const __USE_POSIX: u32 = 1;
97pub const __USE_POSIX2: u32 = 1;
98pub const __USE_POSIX199309: u32 = 1;
99pub const __USE_POSIX199506: u32 = 1;
100pub const __USE_XOPEN2K: u32 = 1;
101pub const __USE_XOPEN2K8: u32 = 1;
102pub const _ATFILE_SOURCE: u32 = 1;
103pub const __USE_MISC: u32 = 1;
104pub const __USE_ATFILE: u32 = 1;
105pub const __USE_FORTIFY_LEVEL: u32 = 0;
106pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
107pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
108pub const _STDC_PREDEF_H: u32 = 1;
109pub const __STDC_IEC_559__: u32 = 1;
110pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
111pub const __STDC_ISO_10646__: u32 = 201706;
112pub const __GNU_LIBRARY__: u32 = 6;
113pub const __GLIBC__: u32 = 2;
114pub const __GLIBC_MINOR__: u32 = 29;
115pub const _SYS_CDEFS_H: u32 = 1;
116pub const __glibc_c99_flexarr_available: u32 = 1;
117pub const __WORDSIZE: u32 = 64;
118pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
119pub const __SYSCALL_WORDSIZE: u32 = 64;
120pub const __HAVE_GENERIC_SELECTION: u32 = 1;
121pub const _BITS_TIME_H: u32 = 1;
122pub const _BITS_TYPES_H: u32 = 1;
123pub const __TIMESIZE: u32 = 64;
124pub const _BITS_TYPESIZES_H: u32 = 1;
125pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
126pub const __INO_T_MATCHES_INO64_T: u32 = 1;
127pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
128pub const __FD_SETSIZE: u32 = 1024;
129pub const _BITS_TIME64_H: u32 = 1;
130pub const CLOCK_REALTIME: u32 = 0;
131pub const CLOCK_MONOTONIC: u32 = 1;
132pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2;
133pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3;
134pub const CLOCK_MONOTONIC_RAW: u32 = 4;
135pub const CLOCK_REALTIME_COARSE: u32 = 5;
136pub const CLOCK_MONOTONIC_COARSE: u32 = 6;
137pub const CLOCK_BOOTTIME: u32 = 7;
138pub const CLOCK_REALTIME_ALARM: u32 = 8;
139pub const CLOCK_BOOTTIME_ALARM: u32 = 9;
140pub const CLOCK_TAI: u32 = 11;
141pub const TIMER_ABSTIME: u32 = 1;
142pub const __clock_t_defined: u32 = 1;
143pub const __time_t_defined: u32 = 1;
144pub const __struct_tm_defined: u32 = 1;
145pub const _STRUCT_TIMESPEC: u32 = 1;
146pub const __clockid_t_defined: u32 = 1;
147pub const __timer_t_defined: u32 = 1;
148pub const __itimerspec_defined: u32 = 1;
149pub const _BITS_TYPES_LOCALE_T_H: u32 = 1;
150pub const _BITS_TYPES___LOCALE_T_H: u32 = 1;
151pub const TIME_UTC: u32 = 1;
152pub const _STDIO_H: u32 = 1;
153pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
154pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
155pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
156pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
157pub const __GNUC_VA_LIST: u32 = 1;
158pub const _____fpos_t_defined: u32 = 1;
159pub const ____mbstate_t_defined: u32 = 1;
160pub const _____fpos64_t_defined: u32 = 1;
161pub const ____FILE_defined: u32 = 1;
162pub const __FILE_defined: u32 = 1;
163pub const __struct_FILE_defined: u32 = 1;
164pub const _IO_EOF_SEEN: u32 = 16;
165pub const _IO_ERR_SEEN: u32 = 32;
166pub const _IO_USER_LOCK: u32 = 32768;
167pub const _IOFBF: u32 = 0;
168pub const _IOLBF: u32 = 1;
169pub const _IONBF: u32 = 2;
170pub const BUFSIZ: u32 = 8192;
171pub const EOF: i32 = -1;
172pub const SEEK_SET: u32 = 0;
173pub const SEEK_CUR: u32 = 1;
174pub const SEEK_END: u32 = 2;
175pub const P_tmpdir: &'static [u8; 5usize] = b"/tmp\0";
176pub const _BITS_STDIO_LIM_H: u32 = 1;
177pub const L_tmpnam: u32 = 20;
178pub const TMP_MAX: u32 = 238328;
179pub const FILENAME_MAX: u32 = 4096;
180pub const L_ctermid: u32 = 9;
181pub const FOPEN_MAX: u32 = 16;
182pub const _ERRNO_H: u32 = 1;
183pub const _BITS_ERRNO_H: u32 = 1;
184pub const EPERM: u32 = 1;
185pub const ENOENT: u32 = 2;
186pub const ESRCH: u32 = 3;
187pub const EINTR: u32 = 4;
188pub const EIO: u32 = 5;
189pub const ENXIO: u32 = 6;
190pub const E2BIG: u32 = 7;
191pub const ENOEXEC: u32 = 8;
192pub const EBADF: u32 = 9;
193pub const ECHILD: u32 = 10;
194pub const EAGAIN: u32 = 11;
195pub const ENOMEM: u32 = 12;
196pub const EACCES: u32 = 13;
197pub const EFAULT: u32 = 14;
198pub const ENOTBLK: u32 = 15;
199pub const EBUSY: u32 = 16;
200pub const EEXIST: u32 = 17;
201pub const EXDEV: u32 = 18;
202pub const ENODEV: u32 = 19;
203pub const ENOTDIR: u32 = 20;
204pub const EISDIR: u32 = 21;
205pub const EINVAL: u32 = 22;
206pub const ENFILE: u32 = 23;
207pub const EMFILE: u32 = 24;
208pub const ENOTTY: u32 = 25;
209pub const ETXTBSY: u32 = 26;
210pub const EFBIG: u32 = 27;
211pub const ENOSPC: u32 = 28;
212pub const ESPIPE: u32 = 29;
213pub const EROFS: u32 = 30;
214pub const EMLINK: u32 = 31;
215pub const EPIPE: u32 = 32;
216pub const EDOM: u32 = 33;
217pub const ERANGE: u32 = 34;
218pub const EDEADLK: u32 = 35;
219pub const ENAMETOOLONG: u32 = 36;
220pub const ENOLCK: u32 = 37;
221pub const ENOSYS: u32 = 38;
222pub const ENOTEMPTY: u32 = 39;
223pub const ELOOP: u32 = 40;
224pub const EWOULDBLOCK: u32 = 11;
225pub const ENOMSG: u32 = 42;
226pub const EIDRM: u32 = 43;
227pub const ECHRNG: u32 = 44;
228pub const EL2NSYNC: u32 = 45;
229pub const EL3HLT: u32 = 46;
230pub const EL3RST: u32 = 47;
231pub const ELNRNG: u32 = 48;
232pub const EUNATCH: u32 = 49;
233pub const ENOCSI: u32 = 50;
234pub const EL2HLT: u32 = 51;
235pub const EBADE: u32 = 52;
236pub const EBADR: u32 = 53;
237pub const EXFULL: u32 = 54;
238pub const ENOANO: u32 = 55;
239pub const EBADRQC: u32 = 56;
240pub const EBADSLT: u32 = 57;
241pub const EDEADLOCK: u32 = 35;
242pub const EBFONT: u32 = 59;
243pub const ENOSTR: u32 = 60;
244pub const ENODATA: u32 = 61;
245pub const ETIME: u32 = 62;
246pub const ENOSR: u32 = 63;
247pub const ENONET: u32 = 64;
248pub const ENOPKG: u32 = 65;
249pub const EREMOTE: u32 = 66;
250pub const ENOLINK: u32 = 67;
251pub const EADV: u32 = 68;
252pub const ESRMNT: u32 = 69;
253pub const ECOMM: u32 = 70;
254pub const EPROTO: u32 = 71;
255pub const EMULTIHOP: u32 = 72;
256pub const EDOTDOT: u32 = 73;
257pub const EBADMSG: u32 = 74;
258pub const EOVERFLOW: u32 = 75;
259pub const ENOTUNIQ: u32 = 76;
260pub const EBADFD: u32 = 77;
261pub const EREMCHG: u32 = 78;
262pub const ELIBACC: u32 = 79;
263pub const ELIBBAD: u32 = 80;
264pub const ELIBSCN: u32 = 81;
265pub const ELIBMAX: u32 = 82;
266pub const ELIBEXEC: u32 = 83;
267pub const EILSEQ: u32 = 84;
268pub const ERESTART: u32 = 85;
269pub const ESTRPIPE: u32 = 86;
270pub const EUSERS: u32 = 87;
271pub const ENOTSOCK: u32 = 88;
272pub const EDESTADDRREQ: u32 = 89;
273pub const EMSGSIZE: u32 = 90;
274pub const EPROTOTYPE: u32 = 91;
275pub const ENOPROTOOPT: u32 = 92;
276pub const EPROTONOSUPPORT: u32 = 93;
277pub const ESOCKTNOSUPPORT: u32 = 94;
278pub const EOPNOTSUPP: u32 = 95;
279pub const EPFNOSUPPORT: u32 = 96;
280pub const EAFNOSUPPORT: u32 = 97;
281pub const EADDRINUSE: u32 = 98;
282pub const EADDRNOTAVAIL: u32 = 99;
283pub const ENETDOWN: u32 = 100;
284pub const ENETUNREACH: u32 = 101;
285pub const ENETRESET: u32 = 102;
286pub const ECONNABORTED: u32 = 103;
287pub const ECONNRESET: u32 = 104;
288pub const ENOBUFS: u32 = 105;
289pub const EISCONN: u32 = 106;
290pub const ENOTCONN: u32 = 107;
291pub const ESHUTDOWN: u32 = 108;
292pub const ETOOMANYREFS: u32 = 109;
293pub const ETIMEDOUT: u32 = 110;
294pub const ECONNREFUSED: u32 = 111;
295pub const EHOSTDOWN: u32 = 112;
296pub const EHOSTUNREACH: u32 = 113;
297pub const EALREADY: u32 = 114;
298pub const EINPROGRESS: u32 = 115;
299pub const ESTALE: u32 = 116;
300pub const EUCLEAN: u32 = 117;
301pub const ENOTNAM: u32 = 118;
302pub const ENAVAIL: u32 = 119;
303pub const EISNAM: u32 = 120;
304pub const EREMOTEIO: u32 = 121;
305pub const EDQUOT: u32 = 122;
306pub const ENOMEDIUM: u32 = 123;
307pub const EMEDIUMTYPE: u32 = 124;
308pub const ECANCELED: u32 = 125;
309pub const ENOKEY: u32 = 126;
310pub const EKEYEXPIRED: u32 = 127;
311pub const EKEYREVOKED: u32 = 128;
312pub const EKEYREJECTED: u32 = 129;
313pub const EOWNERDEAD: u32 = 130;
314pub const ENOTRECOVERABLE: u32 = 131;
315pub const ERFKILL: u32 = 132;
316pub const EHWPOISON: u32 = 133;
317pub const ENOTSUP: u32 = 95;
318pub const _STDINT_H: u32 = 1;
319pub const _BITS_WCHAR_H: u32 = 1;
320pub const _BITS_STDINT_INTN_H: u32 = 1;
321pub const _BITS_STDINT_UINTN_H: u32 = 1;
322pub const INT8_MIN: i32 = -128;
323pub const INT16_MIN: i32 = -32768;
324pub const INT32_MIN: i32 = -2147483648;
325pub const INT8_MAX: u32 = 127;
326pub const INT16_MAX: u32 = 32767;
327pub const INT32_MAX: u32 = 2147483647;
328pub const UINT8_MAX: u32 = 255;
329pub const UINT16_MAX: u32 = 65535;
330pub const UINT32_MAX: u32 = 4294967295;
331pub const INT_LEAST8_MIN: i32 = -128;
332pub const INT_LEAST16_MIN: i32 = -32768;
333pub const INT_LEAST32_MIN: i32 = -2147483648;
334pub const INT_LEAST8_MAX: u32 = 127;
335pub const INT_LEAST16_MAX: u32 = 32767;
336pub const INT_LEAST32_MAX: u32 = 2147483647;
337pub const UINT_LEAST8_MAX: u32 = 255;
338pub const UINT_LEAST16_MAX: u32 = 65535;
339pub const UINT_LEAST32_MAX: u32 = 4294967295;
340pub const INT_FAST8_MIN: i32 = -128;
341pub const INT_FAST16_MIN: i64 = -9223372036854775808;
342pub const INT_FAST32_MIN: i64 = -9223372036854775808;
343pub const INT_FAST8_MAX: u32 = 127;
344pub const INT_FAST16_MAX: u64 = 9223372036854775807;
345pub const INT_FAST32_MAX: u64 = 9223372036854775807;
346pub const UINT_FAST8_MAX: u32 = 255;
347pub const UINT_FAST16_MAX: i32 = -1;
348pub const UINT_FAST32_MAX: i32 = -1;
349pub const INTPTR_MIN: i64 = -9223372036854775808;
350pub const INTPTR_MAX: u64 = 9223372036854775807;
351pub const UINTPTR_MAX: i32 = -1;
352pub const PTRDIFF_MIN: i64 = -9223372036854775808;
353pub const PTRDIFF_MAX: u64 = 9223372036854775807;
354pub const SIG_ATOMIC_MIN: i32 = -2147483648;
355pub const SIG_ATOMIC_MAX: u32 = 2147483647;
356pub const SIZE_MAX: i32 = -1;
357pub const WINT_MIN: u32 = 0;
358pub const WINT_MAX: u32 = 4294967295;
359pub const FF_LAMBDA_SHIFT: u32 = 7;
360pub const FF_LAMBDA_SCALE: u32 = 128;
361pub const FF_QP2LAMBDA: u32 = 118;
362pub const FF_LAMBDA_MAX: u32 = 32767;
363pub const FF_QUALITY_SCALE: u32 = 128;
364pub const AV_TIME_BASE: u32 = 1000000;
365pub const _INTTYPES_H: u32 = 1;
366pub const ____gwchar_t_defined: u32 = 1;
367pub const __PRI64_PREFIX: &'static [u8; 2usize] = b"l\0";
368pub const __PRIPTR_PREFIX: &'static [u8; 2usize] = b"l\0";
369pub const PRId8: &'static [u8; 2usize] = b"d\0";
370pub const PRId16: &'static [u8; 2usize] = b"d\0";
371pub const PRId32: &'static [u8; 2usize] = b"d\0";
372pub const PRId64: &'static [u8; 3usize] = b"ld\0";
373pub const PRIdLEAST8: &'static [u8; 2usize] = b"d\0";
374pub const PRIdLEAST16: &'static [u8; 2usize] = b"d\0";
375pub const PRIdLEAST32: &'static [u8; 2usize] = b"d\0";
376pub const PRIdLEAST64: &'static [u8; 3usize] = b"ld\0";
377pub const PRIdFAST8: &'static [u8; 2usize] = b"d\0";
378pub const PRIdFAST16: &'static [u8; 3usize] = b"ld\0";
379pub const PRIdFAST32: &'static [u8; 3usize] = b"ld\0";
380pub const PRIdFAST64: &'static [u8; 3usize] = b"ld\0";
381pub const PRIi8: &'static [u8; 2usize] = b"i\0";
382pub const PRIi16: &'static [u8; 2usize] = b"i\0";
383pub const PRIi32: &'static [u8; 2usize] = b"i\0";
384pub const PRIi64: &'static [u8; 3usize] = b"li\0";
385pub const PRIiLEAST8: &'static [u8; 2usize] = b"i\0";
386pub const PRIiLEAST16: &'static [u8; 2usize] = b"i\0";
387pub const PRIiLEAST32: &'static [u8; 2usize] = b"i\0";
388pub const PRIiLEAST64: &'static [u8; 3usize] = b"li\0";
389pub const PRIiFAST8: &'static [u8; 2usize] = b"i\0";
390pub const PRIiFAST16: &'static [u8; 3usize] = b"li\0";
391pub const PRIiFAST32: &'static [u8; 3usize] = b"li\0";
392pub const PRIiFAST64: &'static [u8; 3usize] = b"li\0";
393pub const PRIo8: &'static [u8; 2usize] = b"o\0";
394pub const PRIo16: &'static [u8; 2usize] = b"o\0";
395pub const PRIo32: &'static [u8; 2usize] = b"o\0";
396pub const PRIo64: &'static [u8; 3usize] = b"lo\0";
397pub const PRIoLEAST8: &'static [u8; 2usize] = b"o\0";
398pub const PRIoLEAST16: &'static [u8; 2usize] = b"o\0";
399pub const PRIoLEAST32: &'static [u8; 2usize] = b"o\0";
400pub const PRIoLEAST64: &'static [u8; 3usize] = b"lo\0";
401pub const PRIoFAST8: &'static [u8; 2usize] = b"o\0";
402pub const PRIoFAST16: &'static [u8; 3usize] = b"lo\0";
403pub const PRIoFAST32: &'static [u8; 3usize] = b"lo\0";
404pub const PRIoFAST64: &'static [u8; 3usize] = b"lo\0";
405pub const PRIu8: &'static [u8; 2usize] = b"u\0";
406pub const PRIu16: &'static [u8; 2usize] = b"u\0";
407pub const PRIu32: &'static [u8; 2usize] = b"u\0";
408pub const PRIu64: &'static [u8; 3usize] = b"lu\0";
409pub const PRIuLEAST8: &'static [u8; 2usize] = b"u\0";
410pub const PRIuLEAST16: &'static [u8; 2usize] = b"u\0";
411pub const PRIuLEAST32: &'static [u8; 2usize] = b"u\0";
412pub const PRIuLEAST64: &'static [u8; 3usize] = b"lu\0";
413pub const PRIuFAST8: &'static [u8; 2usize] = b"u\0";
414pub const PRIuFAST16: &'static [u8; 3usize] = b"lu\0";
415pub const PRIuFAST32: &'static [u8; 3usize] = b"lu\0";
416pub const PRIuFAST64: &'static [u8; 3usize] = b"lu\0";
417pub const PRIx8: &'static [u8; 2usize] = b"x\0";
418pub const PRIx16: &'static [u8; 2usize] = b"x\0";
419pub const PRIx32: &'static [u8; 2usize] = b"x\0";
420pub const PRIx64: &'static [u8; 3usize] = b"lx\0";
421pub const PRIxLEAST8: &'static [u8; 2usize] = b"x\0";
422pub const PRIxLEAST16: &'static [u8; 2usize] = b"x\0";
423pub const PRIxLEAST32: &'static [u8; 2usize] = b"x\0";
424pub const PRIxLEAST64: &'static [u8; 3usize] = b"lx\0";
425pub const PRIxFAST8: &'static [u8; 2usize] = b"x\0";
426pub const PRIxFAST16: &'static [u8; 3usize] = b"lx\0";
427pub const PRIxFAST32: &'static [u8; 3usize] = b"lx\0";
428pub const PRIxFAST64: &'static [u8; 3usize] = b"lx\0";
429pub const PRIX8: &'static [u8; 2usize] = b"X\0";
430pub const PRIX16: &'static [u8; 2usize] = b"X\0";
431pub const PRIX32: &'static [u8; 2usize] = b"X\0";
432pub const PRIX64: &'static [u8; 3usize] = b"lX\0";
433pub const PRIXLEAST8: &'static [u8; 2usize] = b"X\0";
434pub const PRIXLEAST16: &'static [u8; 2usize] = b"X\0";
435pub const PRIXLEAST32: &'static [u8; 2usize] = b"X\0";
436pub const PRIXLEAST64: &'static [u8; 3usize] = b"lX\0";
437pub const PRIXFAST8: &'static [u8; 2usize] = b"X\0";
438pub const PRIXFAST16: &'static [u8; 3usize] = b"lX\0";
439pub const PRIXFAST32: &'static [u8; 3usize] = b"lX\0";
440pub const PRIXFAST64: &'static [u8; 3usize] = b"lX\0";
441pub const PRIdMAX: &'static [u8; 3usize] = b"ld\0";
442pub const PRIiMAX: &'static [u8; 3usize] = b"li\0";
443pub const PRIoMAX: &'static [u8; 3usize] = b"lo\0";
444pub const PRIuMAX: &'static [u8; 3usize] = b"lu\0";
445pub const PRIxMAX: &'static [u8; 3usize] = b"lx\0";
446pub const PRIXMAX: &'static [u8; 3usize] = b"lX\0";
447pub const PRIdPTR: &'static [u8; 3usize] = b"ld\0";
448pub const PRIiPTR: &'static [u8; 3usize] = b"li\0";
449pub const PRIoPTR: &'static [u8; 3usize] = b"lo\0";
450pub const PRIuPTR: &'static [u8; 3usize] = b"lu\0";
451pub const PRIxPTR: &'static [u8; 3usize] = b"lx\0";
452pub const PRIXPTR: &'static [u8; 3usize] = b"lX\0";
453pub const SCNd8: &'static [u8; 4usize] = b"hhd\0";
454pub const SCNd16: &'static [u8; 3usize] = b"hd\0";
455pub const SCNd32: &'static [u8; 2usize] = b"d\0";
456pub const SCNd64: &'static [u8; 3usize] = b"ld\0";
457pub const SCNdLEAST8: &'static [u8; 4usize] = b"hhd\0";
458pub const SCNdLEAST16: &'static [u8; 3usize] = b"hd\0";
459pub const SCNdLEAST32: &'static [u8; 2usize] = b"d\0";
460pub const SCNdLEAST64: &'static [u8; 3usize] = b"ld\0";
461pub const SCNdFAST8: &'static [u8; 4usize] = b"hhd\0";
462pub const SCNdFAST16: &'static [u8; 3usize] = b"ld\0";
463pub const SCNdFAST32: &'static [u8; 3usize] = b"ld\0";
464pub const SCNdFAST64: &'static [u8; 3usize] = b"ld\0";
465pub const SCNi8: &'static [u8; 4usize] = b"hhi\0";
466pub const SCNi16: &'static [u8; 3usize] = b"hi\0";
467pub const SCNi32: &'static [u8; 2usize] = b"i\0";
468pub const SCNi64: &'static [u8; 3usize] = b"li\0";
469pub const SCNiLEAST8: &'static [u8; 4usize] = b"hhi\0";
470pub const SCNiLEAST16: &'static [u8; 3usize] = b"hi\0";
471pub const SCNiLEAST32: &'static [u8; 2usize] = b"i\0";
472pub const SCNiLEAST64: &'static [u8; 3usize] = b"li\0";
473pub const SCNiFAST8: &'static [u8; 4usize] = b"hhi\0";
474pub const SCNiFAST16: &'static [u8; 3usize] = b"li\0";
475pub const SCNiFAST32: &'static [u8; 3usize] = b"li\0";
476pub const SCNiFAST64: &'static [u8; 3usize] = b"li\0";
477pub const SCNu8: &'static [u8; 4usize] = b"hhu\0";
478pub const SCNu16: &'static [u8; 3usize] = b"hu\0";
479pub const SCNu32: &'static [u8; 2usize] = b"u\0";
480pub const SCNu64: &'static [u8; 3usize] = b"lu\0";
481pub const SCNuLEAST8: &'static [u8; 4usize] = b"hhu\0";
482pub const SCNuLEAST16: &'static [u8; 3usize] = b"hu\0";
483pub const SCNuLEAST32: &'static [u8; 2usize] = b"u\0";
484pub const SCNuLEAST64: &'static [u8; 3usize] = b"lu\0";
485pub const SCNuFAST8: &'static [u8; 4usize] = b"hhu\0";
486pub const SCNuFAST16: &'static [u8; 3usize] = b"lu\0";
487pub const SCNuFAST32: &'static [u8; 3usize] = b"lu\0";
488pub const SCNuFAST64: &'static [u8; 3usize] = b"lu\0";
489pub const SCNo8: &'static [u8; 4usize] = b"hho\0";
490pub const SCNo16: &'static [u8; 3usize] = b"ho\0";
491pub const SCNo32: &'static [u8; 2usize] = b"o\0";
492pub const SCNo64: &'static [u8; 3usize] = b"lo\0";
493pub const SCNoLEAST8: &'static [u8; 4usize] = b"hho\0";
494pub const SCNoLEAST16: &'static [u8; 3usize] = b"ho\0";
495pub const SCNoLEAST32: &'static [u8; 2usize] = b"o\0";
496pub const SCNoLEAST64: &'static [u8; 3usize] = b"lo\0";
497pub const SCNoFAST8: &'static [u8; 4usize] = b"hho\0";
498pub const SCNoFAST16: &'static [u8; 3usize] = b"lo\0";
499pub const SCNoFAST32: &'static [u8; 3usize] = b"lo\0";
500pub const SCNoFAST64: &'static [u8; 3usize] = b"lo\0";
501pub const SCNx8: &'static [u8; 4usize] = b"hhx\0";
502pub const SCNx16: &'static [u8; 3usize] = b"hx\0";
503pub const SCNx32: &'static [u8; 2usize] = b"x\0";
504pub const SCNx64: &'static [u8; 3usize] = b"lx\0";
505pub const SCNxLEAST8: &'static [u8; 4usize] = b"hhx\0";
506pub const SCNxLEAST16: &'static [u8; 3usize] = b"hx\0";
507pub const SCNxLEAST32: &'static [u8; 2usize] = b"x\0";
508pub const SCNxLEAST64: &'static [u8; 3usize] = b"lx\0";
509pub const SCNxFAST8: &'static [u8; 4usize] = b"hhx\0";
510pub const SCNxFAST16: &'static [u8; 3usize] = b"lx\0";
511pub const SCNxFAST32: &'static [u8; 3usize] = b"lx\0";
512pub const SCNxFAST64: &'static [u8; 3usize] = b"lx\0";
513pub const SCNdMAX: &'static [u8; 3usize] = b"ld\0";
514pub const SCNiMAX: &'static [u8; 3usize] = b"li\0";
515pub const SCNoMAX: &'static [u8; 3usize] = b"lo\0";
516pub const SCNuMAX: &'static [u8; 3usize] = b"lu\0";
517pub const SCNxMAX: &'static [u8; 3usize] = b"lx\0";
518pub const SCNdPTR: &'static [u8; 3usize] = b"ld\0";
519pub const SCNiPTR: &'static [u8; 3usize] = b"li\0";
520pub const SCNoPTR: &'static [u8; 3usize] = b"lo\0";
521pub const SCNuPTR: &'static [u8; 3usize] = b"lu\0";
522pub const SCNxPTR: &'static [u8; 3usize] = b"lx\0";
523pub const _LIBC_LIMITS_H_: u32 = 1;
524pub const MB_LEN_MAX: u32 = 16;
525pub const _BITS_POSIX1_LIM_H: u32 = 1;
526pub const _POSIX_AIO_LISTIO_MAX: u32 = 2;
527pub const _POSIX_AIO_MAX: u32 = 1;
528pub const _POSIX_ARG_MAX: u32 = 4096;
529pub const _POSIX_CHILD_MAX: u32 = 25;
530pub const _POSIX_DELAYTIMER_MAX: u32 = 32;
531pub const _POSIX_HOST_NAME_MAX: u32 = 255;
532pub const _POSIX_LINK_MAX: u32 = 8;
533pub const _POSIX_LOGIN_NAME_MAX: u32 = 9;
534pub const _POSIX_MAX_CANON: u32 = 255;
535pub const _POSIX_MAX_INPUT: u32 = 255;
536pub const _POSIX_MQ_OPEN_MAX: u32 = 8;
537pub const _POSIX_MQ_PRIO_MAX: u32 = 32;
538pub const _POSIX_NAME_MAX: u32 = 14;
539pub const _POSIX_NGROUPS_MAX: u32 = 8;
540pub const _POSIX_OPEN_MAX: u32 = 20;
541pub const _POSIX_PATH_MAX: u32 = 256;
542pub const _POSIX_PIPE_BUF: u32 = 512;
543pub const _POSIX_RE_DUP_MAX: u32 = 255;
544pub const _POSIX_RTSIG_MAX: u32 = 8;
545pub const _POSIX_SEM_NSEMS_MAX: u32 = 256;
546pub const _POSIX_SEM_VALUE_MAX: u32 = 32767;
547pub const _POSIX_SIGQUEUE_MAX: u32 = 32;
548pub const _POSIX_SSIZE_MAX: u32 = 32767;
549pub const _POSIX_STREAM_MAX: u32 = 8;
550pub const _POSIX_SYMLINK_MAX: u32 = 255;
551pub const _POSIX_SYMLOOP_MAX: u32 = 8;
552pub const _POSIX_TIMER_MAX: u32 = 32;
553pub const _POSIX_TTY_NAME_MAX: u32 = 9;
554pub const _POSIX_TZNAME_MAX: u32 = 6;
555pub const _POSIX_CLOCKRES_MIN: u32 = 20000000;
556pub const NR_OPEN: u32 = 1024;
557pub const NGROUPS_MAX: u32 = 65536;
558pub const ARG_MAX: u32 = 131072;
559pub const LINK_MAX: u32 = 127;
560pub const MAX_CANON: u32 = 255;
561pub const MAX_INPUT: u32 = 255;
562pub const NAME_MAX: u32 = 255;
563pub const PATH_MAX: u32 = 4096;
564pub const PIPE_BUF: u32 = 4096;
565pub const XATTR_NAME_MAX: u32 = 255;
566pub const XATTR_SIZE_MAX: u32 = 65536;
567pub const XATTR_LIST_MAX: u32 = 65536;
568pub const RTSIG_MAX: u32 = 32;
569pub const _POSIX_THREAD_KEYS_MAX: u32 = 128;
570pub const PTHREAD_KEYS_MAX: u32 = 1024;
571pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4;
572pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4;
573pub const _POSIX_THREAD_THREADS_MAX: u32 = 64;
574pub const AIO_PRIO_DELTA_MAX: u32 = 20;
575pub const PTHREAD_STACK_MIN: u32 = 16384;
576pub const DELAYTIMER_MAX: u32 = 2147483647;
577pub const TTY_NAME_MAX: u32 = 32;
578pub const LOGIN_NAME_MAX: u32 = 256;
579pub const HOST_NAME_MAX: u32 = 64;
580pub const MQ_PRIO_MAX: u32 = 32768;
581pub const SEM_VALUE_MAX: u32 = 2147483647;
582pub const _BITS_POSIX2_LIM_H: u32 = 1;
583pub const _POSIX2_BC_BASE_MAX: u32 = 99;
584pub const _POSIX2_BC_DIM_MAX: u32 = 2048;
585pub const _POSIX2_BC_SCALE_MAX: u32 = 99;
586pub const _POSIX2_BC_STRING_MAX: u32 = 1000;
587pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2;
588pub const _POSIX2_EXPR_NEST_MAX: u32 = 32;
589pub const _POSIX2_LINE_MAX: u32 = 2048;
590pub const _POSIX2_RE_DUP_MAX: u32 = 255;
591pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14;
592pub const BC_BASE_MAX: u32 = 99;
593pub const BC_DIM_MAX: u32 = 2048;
594pub const BC_SCALE_MAX: u32 = 99;
595pub const BC_STRING_MAX: u32 = 1000;
596pub const COLL_WEIGHTS_MAX: u32 = 255;
597pub const EXPR_NEST_MAX: u32 = 32;
598pub const LINE_MAX: u32 = 2048;
599pub const CHARCLASS_NAME_MAX: u32 = 2048;
600pub const RE_DUP_MAX: u32 = 32767;
601pub const _MATH_H: u32 = 1;
602pub const _BITS_LIBM_SIMD_DECL_STUBS_H: u32 = 1;
603pub const __HAVE_FLOAT128: u32 = 0;
604pub const __HAVE_DISTINCT_FLOAT128: u32 = 0;
605pub const __HAVE_FLOAT64X: u32 = 1;
606pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1;
607pub const __HAVE_FLOAT16: u32 = 0;
608pub const __HAVE_FLOAT32: u32 = 1;
609pub const __HAVE_FLOAT64: u32 = 1;
610pub const __HAVE_FLOAT32X: u32 = 1;
611pub const __HAVE_FLOAT128X: u32 = 0;
612pub const __HAVE_DISTINCT_FLOAT16: u32 = 0;
613pub const __HAVE_DISTINCT_FLOAT32: u32 = 0;
614pub const __HAVE_DISTINCT_FLOAT64: u32 = 0;
615pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0;
616pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0;
617pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0;
618pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0;
619pub const __FP_LOGB0_IS_MIN: u32 = 1;
620pub const __FP_LOGBNAN_IS_MIN: u32 = 1;
621pub const FP_ILOGB0: i32 = -2147483648;
622pub const FP_ILOGBNAN: i32 = -2147483648;
623pub const __MATH_DECLARING_DOUBLE: u32 = 1;
624pub const __MATH_DECLARING_FLOATN: u32 = 0;
625pub const __MATH_DECLARE_LDOUBLE: u32 = 1;
626pub const FP_NAN: u32 = 0;
627pub const FP_INFINITE: u32 = 1;
628pub const FP_ZERO: u32 = 2;
629pub const FP_SUBNORMAL: u32 = 3;
630pub const FP_NORMAL: u32 = 4;
631pub const MATH_ERRNO: u32 = 1;
632pub const MATH_ERREXCEPT: u32 = 2;
633pub const math_errhandling: u32 = 3;
634pub const M_E: f64 = 2.718281828459045;
635pub const M_LOG2E: f64 = 1.4426950408889634;
636pub const M_LOG10E: f64 = 0.4342944819032518;
637pub const M_LN2: f64 = 0.6931471805599453;
638pub const M_LN10: f64 = 2.302585092994046;
639pub const M_PI: f64 = 3.141592653589793;
640pub const M_PI_2: f64 = 1.5707963267948966;
641pub const M_PI_4: f64 = 0.7853981633974483;
642pub const M_1_PI: f64 = 0.3183098861837907;
643pub const M_2_PI: f64 = 0.6366197723675814;
644pub const M_2_SQRTPI: f64 = 1.1283791670955126;
645pub const M_SQRT2: f64 = 1.4142135623730951;
646pub const M_SQRT1_2: f64 = 0.7071067811865476;
647pub const _STDLIB_H: u32 = 1;
648pub const WNOHANG: u32 = 1;
649pub const WUNTRACED: u32 = 2;
650pub const WSTOPPED: u32 = 2;
651pub const WEXITED: u32 = 4;
652pub const WCONTINUED: u32 = 8;
653pub const WNOWAIT: u32 = 16777216;
654pub const __WNOTHREAD: u32 = 536870912;
655pub const __WALL: u32 = 1073741824;
656pub const __WCLONE: u32 = 2147483648;
657pub const __W_CONTINUED: u32 = 65535;
658pub const __WCOREFLAG: u32 = 128;
659pub const __ldiv_t_defined: u32 = 1;
660pub const __lldiv_t_defined: u32 = 1;
661pub const RAND_MAX: u32 = 2147483647;
662pub const EXIT_FAILURE: u32 = 1;
663pub const EXIT_SUCCESS: u32 = 0;
664pub const _SYS_TYPES_H: u32 = 1;
665pub const __BIT_TYPES_DEFINED__: u32 = 1;
666pub const _ENDIAN_H: u32 = 1;
667pub const __LITTLE_ENDIAN: u32 = 1234;
668pub const __BIG_ENDIAN: u32 = 4321;
669pub const __PDP_ENDIAN: u32 = 3412;
670pub const __BYTE_ORDER: u32 = 1234;
671pub const __FLOAT_WORD_ORDER: u32 = 1234;
672pub const LITTLE_ENDIAN: u32 = 1234;
673pub const BIG_ENDIAN: u32 = 4321;
674pub const PDP_ENDIAN: u32 = 3412;
675pub const BYTE_ORDER: u32 = 1234;
676pub const _BITS_BYTESWAP_H: u32 = 1;
677pub const _BITS_UINTN_IDENTITY_H: u32 = 1;
678pub const _SYS_SELECT_H: u32 = 1;
679pub const __FD_ZERO_STOS: &'static [u8; 6usize] = b"stosq\0";
680pub const __sigset_t_defined: u32 = 1;
681pub const __timeval_defined: u32 = 1;
682pub const FD_SETSIZE: u32 = 1024;
683pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1;
684pub const _THREAD_SHARED_TYPES_H: u32 = 1;
685pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1;
686pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40;
687pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56;
688pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56;
689pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32;
690pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4;
691pub const __SIZEOF_PTHREAD_COND_T: u32 = 48;
692pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4;
693pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8;
694pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4;
695pub const __PTHREAD_MUTEX_LOCK_ELISION: u32 = 1;
696pub const __PTHREAD_MUTEX_NUSERS_AFTER_KIND: u32 = 0;
697pub const __PTHREAD_MUTEX_USE_UNION: u32 = 0;
698pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED: u32 = 1;
699pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1;
700pub const __have_pthread_attr_t: u32 = 1;
701pub const _ALLOCA_H: u32 = 1;
702pub const _STRING_H: u32 = 1;
703pub const _STRINGS_H: u32 = 1;
704pub const LIBAVUTIL_VERSION_MAJOR: u32 = 56;
705pub const LIBAVUTIL_VERSION_MINOR: u32 = 22;
706pub const LIBAVUTIL_VERSION_MICRO: u32 = 100;
707pub const AV_HAVE_BIGENDIAN: u32 = 0;
708pub const AV_HAVE_FAST_UNALIGNED: u32 = 1;
709pub const AVERROR_EXPERIMENTAL: i32 = -733130664;
710pub const AVERROR_INPUT_CHANGED: i32 = -1668179713;
711pub const AVERROR_OUTPUT_CHANGED: i32 = -1668179714;
712pub const AV_ERROR_MAX_STRING_SIZE: u32 = 64;
713pub const M_LOG2_10: f64 = 3.321928094887362;
714pub const M_PHI: f64 = 1.618033988749895;
715pub const AV_LOG_QUIET: i32 = -8;
716pub const AV_LOG_PANIC: u32 = 0;
717pub const AV_LOG_FATAL: u32 = 8;
718pub const AV_LOG_ERROR: u32 = 16;
719pub const AV_LOG_WARNING: u32 = 24;
720pub const AV_LOG_INFO: u32 = 32;
721pub const AV_LOG_VERBOSE: u32 = 40;
722pub const AV_LOG_DEBUG: u32 = 48;
723pub const AV_LOG_TRACE: u32 = 56;
724pub const AV_LOG_MAX_OFFSET: u32 = 64;
725pub const AV_LOG_SKIP_REPEATED: u32 = 1;
726pub const AV_LOG_PRINT_LEVEL: u32 = 2;
727pub const AVPALETTE_SIZE: u32 = 1024;
728pub const AVPALETTE_COUNT: u32 = 256;
729pub const AV_FOURCC_MAX_STRING_SIZE: u32 = 32;
730pub const AV_BUFFER_FLAG_READONLY: u32 = 1;
731pub const AV_CPU_FLAG_FORCE: u32 = 2147483648;
732pub const AV_CPU_FLAG_MMX: u32 = 1;
733pub const AV_CPU_FLAG_MMXEXT: u32 = 2;
734pub const AV_CPU_FLAG_MMX2: u32 = 2;
735pub const AV_CPU_FLAG_3DNOW: u32 = 4;
736pub const AV_CPU_FLAG_SSE: u32 = 8;
737pub const AV_CPU_FLAG_SSE2: u32 = 16;
738pub const AV_CPU_FLAG_SSE2SLOW: u32 = 1073741824;
739pub const AV_CPU_FLAG_3DNOWEXT: u32 = 32;
740pub const AV_CPU_FLAG_SSE3: u32 = 64;
741pub const AV_CPU_FLAG_SSE3SLOW: u32 = 536870912;
742pub const AV_CPU_FLAG_SSSE3: u32 = 128;
743pub const AV_CPU_FLAG_SSSE3SLOW: u32 = 67108864;
744pub const AV_CPU_FLAG_ATOM: u32 = 268435456;
745pub const AV_CPU_FLAG_SSE4: u32 = 256;
746pub const AV_CPU_FLAG_SSE42: u32 = 512;
747pub const AV_CPU_FLAG_AESNI: u32 = 524288;
748pub const AV_CPU_FLAG_AVX: u32 = 16384;
749pub const AV_CPU_FLAG_AVXSLOW: u32 = 134217728;
750pub const AV_CPU_FLAG_XOP: u32 = 1024;
751pub const AV_CPU_FLAG_FMA4: u32 = 2048;
752pub const AV_CPU_FLAG_CMOV: u32 = 4096;
753pub const AV_CPU_FLAG_AVX2: u32 = 32768;
754pub const AV_CPU_FLAG_FMA3: u32 = 65536;
755pub const AV_CPU_FLAG_BMI1: u32 = 131072;
756pub const AV_CPU_FLAG_BMI2: u32 = 262144;
757pub const AV_CPU_FLAG_AVX512: u32 = 1048576;
758pub const AV_CPU_FLAG_ALTIVEC: u32 = 1;
759pub const AV_CPU_FLAG_VSX: u32 = 2;
760pub const AV_CPU_FLAG_POWER8: u32 = 4;
761pub const AV_CPU_FLAG_ARMV5TE: u32 = 1;
762pub const AV_CPU_FLAG_ARMV6: u32 = 2;
763pub const AV_CPU_FLAG_ARMV6T2: u32 = 4;
764pub const AV_CPU_FLAG_VFP: u32 = 8;
765pub const AV_CPU_FLAG_VFPV3: u32 = 16;
766pub const AV_CPU_FLAG_NEON: u32 = 32;
767pub const AV_CPU_FLAG_ARMV8: u32 = 64;
768pub const AV_CPU_FLAG_VFP_VM: u32 = 128;
769pub const AV_CPU_FLAG_SETEND: u32 = 65536;
770pub const AV_CH_FRONT_LEFT: u32 = 1;
771pub const AV_CH_FRONT_RIGHT: u32 = 2;
772pub const AV_CH_FRONT_CENTER: u32 = 4;
773pub const AV_CH_LOW_FREQUENCY: u32 = 8;
774pub const AV_CH_BACK_LEFT: u32 = 16;
775pub const AV_CH_BACK_RIGHT: u32 = 32;
776pub const AV_CH_FRONT_LEFT_OF_CENTER: u32 = 64;
777pub const AV_CH_FRONT_RIGHT_OF_CENTER: u32 = 128;
778pub const AV_CH_BACK_CENTER: u32 = 256;
779pub const AV_CH_SIDE_LEFT: u32 = 512;
780pub const AV_CH_SIDE_RIGHT: u32 = 1024;
781pub const AV_CH_TOP_CENTER: u32 = 2048;
782pub const AV_CH_TOP_FRONT_LEFT: u32 = 4096;
783pub const AV_CH_TOP_FRONT_CENTER: u32 = 8192;
784pub const AV_CH_TOP_FRONT_RIGHT: u32 = 16384;
785pub const AV_CH_TOP_BACK_LEFT: u32 = 32768;
786pub const AV_CH_TOP_BACK_CENTER: u32 = 65536;
787pub const AV_CH_TOP_BACK_RIGHT: u32 = 131072;
788pub const AV_CH_STEREO_LEFT: u32 = 536870912;
789pub const AV_CH_STEREO_RIGHT: u32 = 1073741824;
790pub const AV_CH_WIDE_LEFT: u32 = 2147483648;
791pub const AV_CH_WIDE_RIGHT: u64 = 4294967296;
792pub const AV_CH_SURROUND_DIRECT_LEFT: u64 = 8589934592;
793pub const AV_CH_SURROUND_DIRECT_RIGHT: u64 = 17179869184;
794pub const AV_CH_LOW_FREQUENCY_2: u64 = 34359738368;
795pub const AV_CH_LAYOUT_NATIVE: i64 = -9223372036854775808;
796pub const AV_CH_LAYOUT_MONO: u32 = 4;
797pub const AV_CH_LAYOUT_STEREO: u32 = 3;
798pub const AV_CH_LAYOUT_2POINT1: u32 = 11;
799pub const AV_CH_LAYOUT_2_1: u32 = 259;
800pub const AV_CH_LAYOUT_SURROUND: u32 = 7;
801pub const AV_CH_LAYOUT_3POINT1: u32 = 15;
802pub const AV_CH_LAYOUT_4POINT0: u32 = 263;
803pub const AV_CH_LAYOUT_4POINT1: u32 = 271;
804pub const AV_CH_LAYOUT_2_2: u32 = 1539;
805pub const AV_CH_LAYOUT_QUAD: u32 = 51;
806pub const AV_CH_LAYOUT_5POINT0: u32 = 1543;
807pub const AV_CH_LAYOUT_5POINT1: u32 = 1551;
808pub const AV_CH_LAYOUT_5POINT0_BACK: u32 = 55;
809pub const AV_CH_LAYOUT_5POINT1_BACK: u32 = 63;
810pub const AV_CH_LAYOUT_6POINT0: u32 = 1799;
811pub const AV_CH_LAYOUT_6POINT0_FRONT: u32 = 1731;
812pub const AV_CH_LAYOUT_HEXAGONAL: u32 = 311;
813pub const AV_CH_LAYOUT_6POINT1: u32 = 1807;
814pub const AV_CH_LAYOUT_6POINT1_BACK: u32 = 319;
815pub const AV_CH_LAYOUT_6POINT1_FRONT: u32 = 1739;
816pub const AV_CH_LAYOUT_7POINT0: u32 = 1591;
817pub const AV_CH_LAYOUT_7POINT0_FRONT: u32 = 1735;
818pub const AV_CH_LAYOUT_7POINT1: u32 = 1599;
819pub const AV_CH_LAYOUT_7POINT1_WIDE: u32 = 1743;
820pub const AV_CH_LAYOUT_7POINT1_WIDE_BACK: u32 = 255;
821pub const AV_CH_LAYOUT_OCTAGONAL: u32 = 1847;
822pub const AV_CH_LAYOUT_HEXADECAGONAL: u64 = 6442710839;
823pub const AV_CH_LAYOUT_STEREO_DOWNMIX: u32 = 1610612736;
824pub const AV_DICT_MATCH_CASE: u32 = 1;
825pub const AV_DICT_IGNORE_SUFFIX: u32 = 2;
826pub const AV_DICT_DONT_STRDUP_KEY: u32 = 4;
827pub const AV_DICT_DONT_STRDUP_VAL: u32 = 8;
828pub const AV_DICT_DONT_OVERWRITE: u32 = 16;
829pub const AV_DICT_APPEND: u32 = 32;
830pub const AV_DICT_MULTIKEY: u32 = 64;
831pub const AV_NUM_DATA_POINTERS: u32 = 8;
832pub const AV_FRAME_FLAG_CORRUPT: u32 = 1;
833pub const AV_FRAME_FLAG_DISCARD: u32 = 4;
834pub const FF_DECODE_ERROR_INVALID_BITSTREAM: u32 = 1;
835pub const FF_DECODE_ERROR_MISSING_REFERENCE: u32 = 2;
836pub const LIBAVCODEC_VERSION_MAJOR: u32 = 58;
837pub const LIBAVCODEC_VERSION_MINOR: u32 = 35;
838pub const LIBAVCODEC_VERSION_MICRO: u32 = 100;
839pub const AV_CODEC_PROP_INTRA_ONLY: u32 = 1;
840pub const AV_CODEC_PROP_LOSSY: u32 = 2;
841pub const AV_CODEC_PROP_LOSSLESS: u32 = 4;
842pub const AV_CODEC_PROP_REORDER: u32 = 8;
843pub const AV_CODEC_PROP_BITMAP_SUB: u32 = 65536;
844pub const AV_CODEC_PROP_TEXT_SUB: u32 = 131072;
845pub const AV_INPUT_BUFFER_PADDING_SIZE: u32 = 64;
846pub const AV_INPUT_BUFFER_MIN_SIZE: u32 = 16384;
847pub const AV_CODEC_FLAG_UNALIGNED: u32 = 1;
848pub const AV_CODEC_FLAG_QSCALE: u32 = 2;
849pub const AV_CODEC_FLAG_4MV: u32 = 4;
850pub const AV_CODEC_FLAG_OUTPUT_CORRUPT: u32 = 8;
851pub const AV_CODEC_FLAG_QPEL: u32 = 16;
852pub const AV_CODEC_FLAG_PASS1: u32 = 512;
853pub const AV_CODEC_FLAG_PASS2: u32 = 1024;
854pub const AV_CODEC_FLAG_LOOP_FILTER: u32 = 2048;
855pub const AV_CODEC_FLAG_GRAY: u32 = 8192;
856pub const AV_CODEC_FLAG_PSNR: u32 = 32768;
857pub const AV_CODEC_FLAG_TRUNCATED: u32 = 65536;
858pub const AV_CODEC_FLAG_INTERLACED_DCT: u32 = 262144;
859pub const AV_CODEC_FLAG_LOW_DELAY: u32 = 524288;
860pub const AV_CODEC_FLAG_GLOBAL_HEADER: u32 = 4194304;
861pub const AV_CODEC_FLAG_BITEXACT: u32 = 8388608;
862pub const AV_CODEC_FLAG_AC_PRED: u32 = 16777216;
863pub const AV_CODEC_FLAG_INTERLACED_ME: u32 = 536870912;
864pub const AV_CODEC_FLAG_CLOSED_GOP: u32 = 2147483648;
865pub const AV_CODEC_FLAG2_FAST: u32 = 1;
866pub const AV_CODEC_FLAG2_NO_OUTPUT: u32 = 4;
867pub const AV_CODEC_FLAG2_LOCAL_HEADER: u32 = 8;
868pub const AV_CODEC_FLAG2_DROP_FRAME_TIMECODE: u32 = 8192;
869pub const AV_CODEC_FLAG2_CHUNKS: u32 = 32768;
870pub const AV_CODEC_FLAG2_IGNORE_CROP: u32 = 65536;
871pub const AV_CODEC_FLAG2_SHOW_ALL: u32 = 4194304;
872pub const AV_CODEC_FLAG2_EXPORT_MVS: u32 = 268435456;
873pub const AV_CODEC_FLAG2_SKIP_MANUAL: u32 = 536870912;
874pub const AV_CODEC_FLAG2_RO_FLUSH_NOOP: u32 = 1073741824;
875pub const AV_CODEC_CAP_DRAW_HORIZ_BAND: u32 = 1;
876pub const AV_CODEC_CAP_DR1: u32 = 2;
877pub const AV_CODEC_CAP_TRUNCATED: u32 = 8;
878pub const AV_CODEC_CAP_DELAY: u32 = 32;
879pub const AV_CODEC_CAP_SMALL_LAST_FRAME: u32 = 64;
880pub const AV_CODEC_CAP_SUBFRAMES: u32 = 256;
881pub const AV_CODEC_CAP_EXPERIMENTAL: u32 = 512;
882pub const AV_CODEC_CAP_CHANNEL_CONF: u32 = 1024;
883pub const AV_CODEC_CAP_FRAME_THREADS: u32 = 4096;
884pub const AV_CODEC_CAP_SLICE_THREADS: u32 = 8192;
885pub const AV_CODEC_CAP_PARAM_CHANGE: u32 = 16384;
886pub const AV_CODEC_CAP_AUTO_THREADS: u32 = 32768;
887pub const AV_CODEC_CAP_VARIABLE_FRAME_SIZE: u32 = 65536;
888pub const AV_CODEC_CAP_AVOID_PROBING: u32 = 131072;
889pub const AV_CODEC_CAP_INTRA_ONLY: u32 = 1073741824;
890pub const AV_CODEC_CAP_LOSSLESS: u32 = 2147483648;
891pub const AV_CODEC_CAP_HARDWARE: u32 = 262144;
892pub const AV_CODEC_CAP_HYBRID: u32 = 524288;
893pub const AV_GET_BUFFER_FLAG_REF: u32 = 1;
894pub const AV_PKT_FLAG_KEY: u32 = 1;
895pub const AV_PKT_FLAG_CORRUPT: u32 = 2;
896pub const AV_PKT_FLAG_DISCARD: u32 = 4;
897pub const AV_PKT_FLAG_TRUSTED: u32 = 8;
898pub const AV_PKT_FLAG_DISPOSABLE: u32 = 16;
899pub const FF_COMPRESSION_DEFAULT: i32 = -1;
900pub const FF_PRED_LEFT: u32 = 0;
901pub const FF_PRED_PLANE: u32 = 1;
902pub const FF_PRED_MEDIAN: u32 = 2;
903pub const FF_CMP_SAD: u32 = 0;
904pub const FF_CMP_SSE: u32 = 1;
905pub const FF_CMP_SATD: u32 = 2;
906pub const FF_CMP_DCT: u32 = 3;
907pub const FF_CMP_PSNR: u32 = 4;
908pub const FF_CMP_BIT: u32 = 5;
909pub const FF_CMP_RD: u32 = 6;
910pub const FF_CMP_ZERO: u32 = 7;
911pub const FF_CMP_VSAD: u32 = 8;
912pub const FF_CMP_VSSE: u32 = 9;
913pub const FF_CMP_NSSE: u32 = 10;
914pub const FF_CMP_W53: u32 = 11;
915pub const FF_CMP_W97: u32 = 12;
916pub const FF_CMP_DCTMAX: u32 = 13;
917pub const FF_CMP_DCT264: u32 = 14;
918pub const FF_CMP_MEDIAN_SAD: u32 = 15;
919pub const FF_CMP_CHROMA: u32 = 256;
920pub const SLICE_FLAG_CODED_ORDER: u32 = 1;
921pub const SLICE_FLAG_ALLOW_FIELD: u32 = 2;
922pub const SLICE_FLAG_ALLOW_PLANE: u32 = 4;
923pub const FF_MB_DECISION_SIMPLE: u32 = 0;
924pub const FF_MB_DECISION_BITS: u32 = 1;
925pub const FF_MB_DECISION_RD: u32 = 2;
926pub const FF_CODER_TYPE_VLC: u32 = 0;
927pub const FF_CODER_TYPE_AC: u32 = 1;
928pub const FF_CODER_TYPE_RAW: u32 = 2;
929pub const FF_CODER_TYPE_RLE: u32 = 3;
930pub const FF_BUG_AUTODETECT: u32 = 1;
931pub const FF_BUG_XVID_ILACE: u32 = 4;
932pub const FF_BUG_UMP4: u32 = 8;
933pub const FF_BUG_NO_PADDING: u32 = 16;
934pub const FF_BUG_AMV: u32 = 32;
935pub const FF_BUG_QPEL_CHROMA: u32 = 64;
936pub const FF_BUG_STD_QPEL: u32 = 128;
937pub const FF_BUG_QPEL_CHROMA2: u32 = 256;
938pub const FF_BUG_DIRECT_BLOCKSIZE: u32 = 512;
939pub const FF_BUG_EDGE: u32 = 1024;
940pub const FF_BUG_HPEL_CHROMA: u32 = 2048;
941pub const FF_BUG_DC_CLIP: u32 = 4096;
942pub const FF_BUG_MS: u32 = 8192;
943pub const FF_BUG_TRUNCATED: u32 = 16384;
944pub const FF_BUG_IEDGE: u32 = 32768;
945pub const FF_COMPLIANCE_VERY_STRICT: u32 = 2;
946pub const FF_COMPLIANCE_STRICT: u32 = 1;
947pub const FF_COMPLIANCE_NORMAL: u32 = 0;
948pub const FF_COMPLIANCE_UNOFFICIAL: i32 = -1;
949pub const FF_COMPLIANCE_EXPERIMENTAL: i32 = -2;
950pub const FF_EC_GUESS_MVS: u32 = 1;
951pub const FF_EC_DEBLOCK: u32 = 2;
952pub const FF_EC_FAVOR_INTER: u32 = 256;
953pub const FF_DEBUG_PICT_INFO: u32 = 1;
954pub const FF_DEBUG_RC: u32 = 2;
955pub const FF_DEBUG_BITSTREAM: u32 = 4;
956pub const FF_DEBUG_MB_TYPE: u32 = 8;
957pub const FF_DEBUG_QP: u32 = 16;
958pub const FF_DEBUG_DCT_COEFF: u32 = 64;
959pub const FF_DEBUG_SKIP: u32 = 128;
960pub const FF_DEBUG_STARTCODE: u32 = 256;
961pub const FF_DEBUG_ER: u32 = 1024;
962pub const FF_DEBUG_MMCO: u32 = 2048;
963pub const FF_DEBUG_BUGS: u32 = 4096;
964pub const FF_DEBUG_BUFFERS: u32 = 32768;
965pub const FF_DEBUG_THREADS: u32 = 65536;
966pub const FF_DEBUG_GREEN_MD: u32 = 8388608;
967pub const FF_DEBUG_NOMC: u32 = 16777216;
968pub const AV_EF_CRCCHECK: u32 = 1;
969pub const AV_EF_BITSTREAM: u32 = 2;
970pub const AV_EF_BUFFER: u32 = 4;
971pub const AV_EF_EXPLODE: u32 = 8;
972pub const AV_EF_IGNORE_ERR: u32 = 32768;
973pub const AV_EF_CAREFUL: u32 = 65536;
974pub const AV_EF_COMPLIANT: u32 = 131072;
975pub const AV_EF_AGGRESSIVE: u32 = 262144;
976pub const FF_DCT_AUTO: u32 = 0;
977pub const FF_DCT_FASTINT: u32 = 1;
978pub const FF_DCT_INT: u32 = 2;
979pub const FF_DCT_MMX: u32 = 3;
980pub const FF_DCT_ALTIVEC: u32 = 5;
981pub const FF_DCT_FAAN: u32 = 6;
982pub const FF_IDCT_AUTO: u32 = 0;
983pub const FF_IDCT_INT: u32 = 1;
984pub const FF_IDCT_SIMPLE: u32 = 2;
985pub const FF_IDCT_SIMPLEMMX: u32 = 3;
986pub const FF_IDCT_ARM: u32 = 7;
987pub const FF_IDCT_ALTIVEC: u32 = 8;
988pub const FF_IDCT_SIMPLEARM: u32 = 10;
989pub const FF_IDCT_XVID: u32 = 14;
990pub const FF_IDCT_SIMPLEARMV5TE: u32 = 16;
991pub const FF_IDCT_SIMPLEARMV6: u32 = 17;
992pub const FF_IDCT_FAAN: u32 = 20;
993pub const FF_IDCT_SIMPLENEON: u32 = 22;
994pub const FF_IDCT_NONE: u32 = 24;
995pub const FF_IDCT_SIMPLEAUTO: u32 = 128;
996pub const FF_THREAD_FRAME: u32 = 1;
997pub const FF_THREAD_SLICE: u32 = 2;
998pub const FF_PROFILE_UNKNOWN: i32 = -99;
999pub const FF_PROFILE_RESERVED: i32 = -100;
1000pub const FF_PROFILE_AAC_MAIN: u32 = 0;
1001pub const FF_PROFILE_AAC_LOW: u32 = 1;
1002pub const FF_PROFILE_AAC_SSR: u32 = 2;
1003pub const FF_PROFILE_AAC_LTP: u32 = 3;
1004pub const FF_PROFILE_AAC_HE: u32 = 4;
1005pub const FF_PROFILE_AAC_HE_V2: u32 = 28;
1006pub const FF_PROFILE_AAC_LD: u32 = 22;
1007pub const FF_PROFILE_AAC_ELD: u32 = 38;
1008pub const FF_PROFILE_MPEG2_AAC_LOW: u32 = 128;
1009pub const FF_PROFILE_MPEG2_AAC_HE: u32 = 131;
1010pub const FF_PROFILE_DNXHD: u32 = 0;
1011pub const FF_PROFILE_DNXHR_LB: u32 = 1;
1012pub const FF_PROFILE_DNXHR_SQ: u32 = 2;
1013pub const FF_PROFILE_DNXHR_HQ: u32 = 3;
1014pub const FF_PROFILE_DNXHR_HQX: u32 = 4;
1015pub const FF_PROFILE_DNXHR_444: u32 = 5;
1016pub const FF_PROFILE_DTS: u32 = 20;
1017pub const FF_PROFILE_DTS_ES: u32 = 30;
1018pub const FF_PROFILE_DTS_96_24: u32 = 40;
1019pub const FF_PROFILE_DTS_HD_HRA: u32 = 50;
1020pub const FF_PROFILE_DTS_HD_MA: u32 = 60;
1021pub const FF_PROFILE_DTS_EXPRESS: u32 = 70;
1022pub const FF_PROFILE_MPEG2_422: u32 = 0;
1023pub const FF_PROFILE_MPEG2_HIGH: u32 = 1;
1024pub const FF_PROFILE_MPEG2_SS: u32 = 2;
1025pub const FF_PROFILE_MPEG2_SNR_SCALABLE: u32 = 3;
1026pub const FF_PROFILE_MPEG2_MAIN: u32 = 4;
1027pub const FF_PROFILE_MPEG2_SIMPLE: u32 = 5;
1028pub const FF_PROFILE_H264_CONSTRAINED: u32 = 512;
1029pub const FF_PROFILE_H264_INTRA: u32 = 2048;
1030pub const FF_PROFILE_H264_BASELINE: u32 = 66;
1031pub const FF_PROFILE_H264_CONSTRAINED_BASELINE: u32 = 578;
1032pub const FF_PROFILE_H264_MAIN: u32 = 77;
1033pub const FF_PROFILE_H264_EXTENDED: u32 = 88;
1034pub const FF_PROFILE_H264_HIGH: u32 = 100;
1035pub const FF_PROFILE_H264_HIGH_10: u32 = 110;
1036pub const FF_PROFILE_H264_HIGH_10_INTRA: u32 = 2158;
1037pub const FF_PROFILE_H264_MULTIVIEW_HIGH: u32 = 118;
1038pub const FF_PROFILE_H264_HIGH_422: u32 = 122;
1039pub const FF_PROFILE_H264_HIGH_422_INTRA: u32 = 2170;
1040pub const FF_PROFILE_H264_STEREO_HIGH: u32 = 128;
1041pub const FF_PROFILE_H264_HIGH_444: u32 = 144;
1042pub const FF_PROFILE_H264_HIGH_444_PREDICTIVE: u32 = 244;
1043pub const FF_PROFILE_H264_HIGH_444_INTRA: u32 = 2292;
1044pub const FF_PROFILE_H264_CAVLC_444: u32 = 44;
1045pub const FF_PROFILE_VC1_SIMPLE: u32 = 0;
1046pub const FF_PROFILE_VC1_MAIN: u32 = 1;
1047pub const FF_PROFILE_VC1_COMPLEX: u32 = 2;
1048pub const FF_PROFILE_VC1_ADVANCED: u32 = 3;
1049pub const FF_PROFILE_MPEG4_SIMPLE: u32 = 0;
1050pub const FF_PROFILE_MPEG4_SIMPLE_SCALABLE: u32 = 1;
1051pub const FF_PROFILE_MPEG4_CORE: u32 = 2;
1052pub const FF_PROFILE_MPEG4_MAIN: u32 = 3;
1053pub const FF_PROFILE_MPEG4_N_BIT: u32 = 4;
1054pub const FF_PROFILE_MPEG4_SCALABLE_TEXTURE: u32 = 5;
1055pub const FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION: u32 = 6;
1056pub const FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE: u32 = 7;
1057pub const FF_PROFILE_MPEG4_HYBRID: u32 = 8;
1058pub const FF_PROFILE_MPEG4_ADVANCED_REAL_TIME: u32 = 9;
1059pub const FF_PROFILE_MPEG4_CORE_SCALABLE: u32 = 10;
1060pub const FF_PROFILE_MPEG4_ADVANCED_CODING: u32 = 11;
1061pub const FF_PROFILE_MPEG4_ADVANCED_CORE: u32 = 12;
1062pub const FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE: u32 = 13;
1063pub const FF_PROFILE_MPEG4_SIMPLE_STUDIO: u32 = 14;
1064pub const FF_PROFILE_MPEG4_ADVANCED_SIMPLE: u32 = 15;
1065pub const FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0: u32 = 1;
1066pub const FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1: u32 = 2;
1067pub const FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION: u32 = 32768;
1068pub const FF_PROFILE_JPEG2000_DCINEMA_2K: u32 = 3;
1069pub const FF_PROFILE_JPEG2000_DCINEMA_4K: u32 = 4;
1070pub const FF_PROFILE_VP9_0: u32 = 0;
1071pub const FF_PROFILE_VP9_1: u32 = 1;
1072pub const FF_PROFILE_VP9_2: u32 = 2;
1073pub const FF_PROFILE_VP9_3: u32 = 3;
1074pub const FF_PROFILE_HEVC_MAIN: u32 = 1;
1075pub const FF_PROFILE_HEVC_MAIN_10: u32 = 2;
1076pub const FF_PROFILE_HEVC_MAIN_STILL_PICTURE: u32 = 3;
1077pub const FF_PROFILE_HEVC_REXT: u32 = 4;
1078pub const FF_PROFILE_AV1_MAIN: u32 = 0;
1079pub const FF_PROFILE_AV1_HIGH: u32 = 1;
1080pub const FF_PROFILE_AV1_PROFESSIONAL: u32 = 2;
1081pub const FF_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT: u32 = 192;
1082pub const FF_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT: u32 = 193;
1083pub const FF_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT: u32 = 194;
1084pub const FF_PROFILE_MJPEG_HUFFMAN_LOSSLESS: u32 = 195;
1085pub const FF_PROFILE_MJPEG_JPEG_LS: u32 = 247;
1086pub const FF_PROFILE_SBC_MSBC: u32 = 1;
1087pub const FF_LEVEL_UNKNOWN: i32 = -99;
1088pub const FF_SUB_CHARENC_MODE_DO_NOTHING: i32 = -1;
1089pub const FF_SUB_CHARENC_MODE_AUTOMATIC: u32 = 0;
1090pub const FF_SUB_CHARENC_MODE_PRE_DECODER: u32 = 1;
1091pub const FF_SUB_CHARENC_MODE_IGNORE: u32 = 2;
1092pub const FF_DEBUG_VIS_MV_P_FOR: u32 = 1;
1093pub const FF_DEBUG_VIS_MV_B_FOR: u32 = 2;
1094pub const FF_DEBUG_VIS_MV_B_BACK: u32 = 4;
1095pub const FF_CODEC_PROPERTY_LOSSLESS: u32 = 1;
1096pub const FF_CODEC_PROPERTY_CLOSED_CAPTIONS: u32 = 2;
1097pub const FF_SUB_TEXT_FMT_ASS: u32 = 0;
1098pub const FF_SUB_TEXT_FMT_ASS_WITH_TIMINGS: u32 = 1;
1099pub const AV_HWACCEL_CODEC_CAP_EXPERIMENTAL: u32 = 512;
1100pub const AV_HWACCEL_FLAG_IGNORE_LEVEL: u32 = 1;
1101pub const AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH: u32 = 2;
1102pub const AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH: u32 = 4;
1103pub const AV_SUBTITLE_FLAG_FORCED: u32 = 1;
1104pub const AV_PARSER_PTS_NB: u32 = 4;
1105pub const PARSER_FLAG_COMPLETE_FRAMES: u32 = 1;
1106pub const PARSER_FLAG_ONCE: u32 = 2;
1107pub const PARSER_FLAG_FETCHED_OFFSET: u32 = 4;
1108pub const PARSER_FLAG_USE_CODEC_TS: u32 = 4096;
1109pub const LIBAVFORMAT_VERSION_MAJOR: u32 = 58;
1110pub const LIBAVFORMAT_VERSION_MINOR: u32 = 20;
1111pub const LIBAVFORMAT_VERSION_MICRO: u32 = 100;
1112pub const FF_API_R_FRAME_RATE: u32 = 1;
1113pub const AVIO_SEEKABLE_NORMAL: u32 = 1;
1114pub const AVIO_SEEKABLE_TIME: u32 = 2;
1115pub const AVSEEK_SIZE: u32 = 65536;
1116pub const AVSEEK_FORCE: u32 = 131072;
1117pub const AVIO_FLAG_READ: u32 = 1;
1118pub const AVIO_FLAG_WRITE: u32 = 2;
1119pub const AVIO_FLAG_READ_WRITE: u32 = 3;
1120pub const AVIO_FLAG_NONBLOCK: u32 = 8;
1121pub const AVIO_FLAG_DIRECT: u32 = 32768;
1122pub const AVPROBE_SCORE_EXTENSION: u32 = 50;
1123pub const AVPROBE_SCORE_MIME: u32 = 75;
1124pub const AVPROBE_SCORE_MAX: u32 = 100;
1125pub const AVPROBE_PADDING_SIZE: u32 = 32;
1126pub const AVFMT_NOFILE: u32 = 1;
1127pub const AVFMT_NEEDNUMBER: u32 = 2;
1128pub const AVFMT_SHOW_IDS: u32 = 8;
1129pub const AVFMT_GLOBALHEADER: u32 = 64;
1130pub const AVFMT_NOTIMESTAMPS: u32 = 128;
1131pub const AVFMT_GENERIC_INDEX: u32 = 256;
1132pub const AVFMT_TS_DISCONT: u32 = 512;
1133pub const AVFMT_VARIABLE_FPS: u32 = 1024;
1134pub const AVFMT_NODIMENSIONS: u32 = 2048;
1135pub const AVFMT_NOSTREAMS: u32 = 4096;
1136pub const AVFMT_NOBINSEARCH: u32 = 8192;
1137pub const AVFMT_NOGENSEARCH: u32 = 16384;
1138pub const AVFMT_NO_BYTE_SEEK: u32 = 32768;
1139pub const AVFMT_ALLOW_FLUSH: u32 = 65536;
1140pub const AVFMT_TS_NONSTRICT: u32 = 131072;
1141pub const AVFMT_TS_NEGATIVE: u32 = 262144;
1142pub const AVFMT_SEEK_TO_PTS: u32 = 67108864;
1143pub const AVINDEX_KEYFRAME: u32 = 1;
1144pub const AVINDEX_DISCARD_FRAME: u32 = 2;
1145pub const AV_DISPOSITION_DEFAULT: u32 = 1;
1146pub const AV_DISPOSITION_DUB: u32 = 2;
1147pub const AV_DISPOSITION_ORIGINAL: u32 = 4;
1148pub const AV_DISPOSITION_COMMENT: u32 = 8;
1149pub const AV_DISPOSITION_LYRICS: u32 = 16;
1150pub const AV_DISPOSITION_KARAOKE: u32 = 32;
1151pub const AV_DISPOSITION_FORCED: u32 = 64;
1152pub const AV_DISPOSITION_HEARING_IMPAIRED: u32 = 128;
1153pub const AV_DISPOSITION_VISUAL_IMPAIRED: u32 = 256;
1154pub const AV_DISPOSITION_CLEAN_EFFECTS: u32 = 512;
1155pub const AV_DISPOSITION_ATTACHED_PIC: u32 = 1024;
1156pub const AV_DISPOSITION_TIMED_THUMBNAILS: u32 = 2048;
1157pub const AV_DISPOSITION_CAPTIONS: u32 = 65536;
1158pub const AV_DISPOSITION_DESCRIPTIONS: u32 = 131072;
1159pub const AV_DISPOSITION_METADATA: u32 = 262144;
1160pub const AV_DISPOSITION_DEPENDENT: u32 = 524288;
1161pub const AV_DISPOSITION_STILL_IMAGE: u32 = 1048576;
1162pub const AV_PTS_WRAP_IGNORE: u32 = 0;
1163pub const AV_PTS_WRAP_ADD_OFFSET: u32 = 1;
1164pub const AV_PTS_WRAP_SUB_OFFSET: i32 = -1;
1165pub const AVSTREAM_EVENT_FLAG_METADATA_UPDATED: u32 = 1;
1166pub const MAX_STD_TIMEBASES: u32 = 399;
1167pub const MAX_REORDER_DELAY: u32 = 16;
1168pub const AV_PROGRAM_RUNNING: u32 = 1;
1169pub const AVFMTCTX_NOHEADER: u32 = 1;
1170pub const AVFMTCTX_UNSEEKABLE: u32 = 2;
1171pub const AVFMT_FLAG_GENPTS: u32 = 1;
1172pub const AVFMT_FLAG_IGNIDX: u32 = 2;
1173pub const AVFMT_FLAG_NONBLOCK: u32 = 4;
1174pub const AVFMT_FLAG_IGNDTS: u32 = 8;
1175pub const AVFMT_FLAG_NOFILLIN: u32 = 16;
1176pub const AVFMT_FLAG_NOPARSE: u32 = 32;
1177pub const AVFMT_FLAG_NOBUFFER: u32 = 64;
1178pub const AVFMT_FLAG_CUSTOM_IO: u32 = 128;
1179pub const AVFMT_FLAG_DISCARD_CORRUPT: u32 = 256;
1180pub const AVFMT_FLAG_FLUSH_PACKETS: u32 = 512;
1181pub const AVFMT_FLAG_BITEXACT: u32 = 1024;
1182pub const AVFMT_FLAG_MP4A_LATM: u32 = 32768;
1183pub const AVFMT_FLAG_SORT_DTS: u32 = 65536;
1184pub const AVFMT_FLAG_PRIV_OPT: u32 = 131072;
1185pub const AVFMT_FLAG_KEEP_SIDE_DATA: u32 = 262144;
1186pub const AVFMT_FLAG_FAST_SEEK: u32 = 524288;
1187pub const AVFMT_FLAG_SHORTEST: u32 = 1048576;
1188pub const AVFMT_FLAG_AUTO_BSF: u32 = 2097152;
1189pub const FF_FDEBUG_TS: u32 = 1;
1190pub const AVFMT_EVENT_FLAG_METADATA_UPDATED: u32 = 1;
1191pub const AVFMT_AVOID_NEG_TS_AUTO: i32 = -1;
1192pub const AVFMT_AVOID_NEG_TS_MAKE_NON_NEGATIVE: u32 = 1;
1193pub const AVFMT_AVOID_NEG_TS_MAKE_ZERO: u32 = 2;
1194pub const AVSEEK_FLAG_BACKWARD: u32 = 1;
1195pub const AVSEEK_FLAG_BYTE: u32 = 2;
1196pub const AVSEEK_FLAG_ANY: u32 = 4;
1197pub const AVSEEK_FLAG_FRAME: u32 = 8;
1198pub const AVSTREAM_INIT_IN_WRITE_HEADER: u32 = 0;
1199pub const AVSTREAM_INIT_IN_INIT_OUTPUT: u32 = 1;
1200pub const AV_FRAME_FILENAME_FLAGS_MULTIPLE: u32 = 1;
1201pub type __u_char = ::std::os::raw::c_uchar;
1202pub type __u_short = ::std::os::raw::c_ushort;
1203pub type __u_int = ::std::os::raw::c_uint;
1204pub type __u_long = ::std::os::raw::c_ulong;
1205pub type __int8_t = ::std::os::raw::c_schar;
1206pub type __uint8_t = ::std::os::raw::c_uchar;
1207pub type __int16_t = ::std::os::raw::c_short;
1208pub type __uint16_t = ::std::os::raw::c_ushort;
1209pub type __int32_t = ::std::os::raw::c_int;
1210pub type __uint32_t = ::std::os::raw::c_uint;
1211pub type __int64_t = ::std::os::raw::c_long;
1212pub type __uint64_t = ::std::os::raw::c_ulong;
1213pub type __int_least8_t = __int8_t;
1214pub type __uint_least8_t = __uint8_t;
1215pub type __int_least16_t = __int16_t;
1216pub type __uint_least16_t = __uint16_t;
1217pub type __int_least32_t = __int32_t;
1218pub type __uint_least32_t = __uint32_t;
1219pub type __int_least64_t = __int64_t;
1220pub type __uint_least64_t = __uint64_t;
1221pub type __quad_t = ::std::os::raw::c_long;
1222pub type __u_quad_t = ::std::os::raw::c_ulong;
1223pub type __intmax_t = ::std::os::raw::c_long;
1224pub type __uintmax_t = ::std::os::raw::c_ulong;
1225pub type __dev_t = ::std::os::raw::c_ulong;
1226pub type __uid_t = ::std::os::raw::c_uint;
1227pub type __gid_t = ::std::os::raw::c_uint;
1228pub type __ino_t = ::std::os::raw::c_ulong;
1229pub type __ino64_t = ::std::os::raw::c_ulong;
1230pub type __mode_t = ::std::os::raw::c_uint;
1231pub type __nlink_t = ::std::os::raw::c_ulong;
1232pub type __off_t = ::std::os::raw::c_long;
1233pub type __off64_t = ::std::os::raw::c_long;
1234pub type __pid_t = ::std::os::raw::c_int;
1235#[repr(C)]
1236#[derive(Debug, Copy, Clone)]
1237pub struct __fsid_t {
1238    pub __val: [::std::os::raw::c_int; 2usize],
1239}
1240pub type __clock_t = ::std::os::raw::c_long;
1241pub type __rlim_t = ::std::os::raw::c_ulong;
1242pub type __rlim64_t = ::std::os::raw::c_ulong;
1243pub type __id_t = ::std::os::raw::c_uint;
1244pub type __time_t = ::std::os::raw::c_long;
1245pub type __useconds_t = ::std::os::raw::c_uint;
1246pub type __suseconds_t = ::std::os::raw::c_long;
1247pub type __daddr_t = ::std::os::raw::c_int;
1248pub type __key_t = ::std::os::raw::c_int;
1249pub type __clockid_t = ::std::os::raw::c_int;
1250pub type __timer_t = *mut ::std::os::raw::c_void;
1251pub type __blksize_t = ::std::os::raw::c_long;
1252pub type __blkcnt_t = ::std::os::raw::c_long;
1253pub type __blkcnt64_t = ::std::os::raw::c_long;
1254pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
1255pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
1256pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
1257pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
1258pub type __fsword_t = ::std::os::raw::c_long;
1259pub type __ssize_t = ::std::os::raw::c_long;
1260pub type __syscall_slong_t = ::std::os::raw::c_long;
1261pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
1262pub type __loff_t = __off64_t;
1263pub type __caddr_t = *mut ::std::os::raw::c_char;
1264pub type __intptr_t = ::std::os::raw::c_long;
1265pub type __socklen_t = ::std::os::raw::c_uint;
1266pub type __sig_atomic_t = ::std::os::raw::c_int;
1267pub type clock_t = __clock_t;
1268pub type time_t = __time_t;
1269#[repr(C)]
1270#[derive(Debug, Copy, Clone)]
1271pub struct tm {
1272    pub tm_sec: ::std::os::raw::c_int,
1273    pub tm_min: ::std::os::raw::c_int,
1274    pub tm_hour: ::std::os::raw::c_int,
1275    pub tm_mday: ::std::os::raw::c_int,
1276    pub tm_mon: ::std::os::raw::c_int,
1277    pub tm_year: ::std::os::raw::c_int,
1278    pub tm_wday: ::std::os::raw::c_int,
1279    pub tm_yday: ::std::os::raw::c_int,
1280    pub tm_isdst: ::std::os::raw::c_int,
1281    pub tm_gmtoff: ::std::os::raw::c_long,
1282    pub tm_zone: *const ::std::os::raw::c_char,
1283}
1284#[repr(C)]
1285#[derive(Debug, Copy, Clone)]
1286pub struct timespec {
1287    pub tv_sec: __time_t,
1288    pub tv_nsec: __syscall_slong_t,
1289}
1290pub type clockid_t = __clockid_t;
1291pub type timer_t = __timer_t;
1292#[repr(C)]
1293#[derive(Debug, Copy, Clone)]
1294pub struct itimerspec {
1295    pub it_interval: timespec,
1296    pub it_value: timespec,
1297}
1298#[repr(C)]
1299#[derive(Debug, Copy, Clone)]
1300pub struct sigevent {
1301    _unused: [u8; 0],
1302}
1303pub type pid_t = __pid_t;
1304#[repr(C)]
1305#[derive(Debug, Copy, Clone)]
1306pub struct __locale_struct {
1307    pub __locales: [*mut __locale_data; 13usize],
1308    pub __ctype_b: *const ::std::os::raw::c_ushort,
1309    pub __ctype_tolower: *const ::std::os::raw::c_int,
1310    pub __ctype_toupper: *const ::std::os::raw::c_int,
1311    pub __names: [*const ::std::os::raw::c_char; 13usize],
1312}
1313pub type __locale_t = *mut __locale_struct;
1314pub type locale_t = __locale_t;
1315extern "C" {
1316    pub fn clock() -> clock_t;
1317}
1318extern "C" {
1319    pub fn time(__timer: *mut time_t) -> time_t;
1320}
1321extern "C" {
1322    pub fn difftime(__time1: time_t, __time0: time_t) -> f64;
1323}
1324extern "C" {
1325    pub fn mktime(__tp: *mut tm) -> time_t;
1326}
1327extern "C" {
1328    pub fn strftime(
1329        __s: *mut ::std::os::raw::c_char,
1330        __maxsize: usize,
1331        __format: *const ::std::os::raw::c_char,
1332        __tp: *const tm,
1333    ) -> usize;
1334}
1335extern "C" {
1336    pub fn strftime_l(
1337        __s: *mut ::std::os::raw::c_char,
1338        __maxsize: usize,
1339        __format: *const ::std::os::raw::c_char,
1340        __tp: *const tm,
1341        __loc: locale_t,
1342    ) -> usize;
1343}
1344extern "C" {
1345    pub fn gmtime(__timer: *const time_t) -> *mut tm;
1346}
1347extern "C" {
1348    pub fn localtime(__timer: *const time_t) -> *mut tm;
1349}
1350extern "C" {
1351    pub fn gmtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm;
1352}
1353extern "C" {
1354    pub fn localtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm;
1355}
1356extern "C" {
1357    pub fn asctime(__tp: *const tm) -> *mut ::std::os::raw::c_char;
1358}
1359extern "C" {
1360    pub fn ctime(__timer: *const time_t) -> *mut ::std::os::raw::c_char;
1361}
1362extern "C" {
1363    pub fn asctime_r(
1364        __tp: *const tm,
1365        __buf: *mut ::std::os::raw::c_char,
1366    ) -> *mut ::std::os::raw::c_char;
1367}
1368extern "C" {
1369    pub fn ctime_r(
1370        __timer: *const time_t,
1371        __buf: *mut ::std::os::raw::c_char,
1372    ) -> *mut ::std::os::raw::c_char;
1373}
1374extern "C" {
1375    #[link_name = "\u{1}__tzname"]
1376    pub static mut __tzname: [*mut ::std::os::raw::c_char; 2usize];
1377}
1378extern "C" {
1379    #[link_name = "\u{1}__daylight"]
1380    pub static mut __daylight: ::std::os::raw::c_int;
1381}
1382extern "C" {
1383    #[link_name = "\u{1}__timezone"]
1384    pub static mut __timezone: ::std::os::raw::c_long;
1385}
1386extern "C" {
1387    #[link_name = "\u{1}tzname"]
1388    pub static mut tzname: [*mut ::std::os::raw::c_char; 2usize];
1389}
1390extern "C" {
1391    pub fn tzset();
1392}
1393extern "C" {
1394    #[link_name = "\u{1}daylight"]
1395    pub static mut daylight: ::std::os::raw::c_int;
1396}
1397extern "C" {
1398    #[link_name = "\u{1}timezone"]
1399    pub static mut timezone: ::std::os::raw::c_long;
1400}
1401extern "C" {
1402    pub fn stime(__when: *const time_t) -> ::std::os::raw::c_int;
1403}
1404extern "C" {
1405    pub fn timegm(__tp: *mut tm) -> time_t;
1406}
1407extern "C" {
1408    pub fn timelocal(__tp: *mut tm) -> time_t;
1409}
1410extern "C" {
1411    pub fn dysize(__year: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
1412}
1413extern "C" {
1414    pub fn nanosleep(
1415        __requested_time: *const timespec,
1416        __remaining: *mut timespec,
1417    ) -> ::std::os::raw::c_int;
1418}
1419extern "C" {
1420    pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec) -> ::std::os::raw::c_int;
1421}
1422extern "C" {
1423    pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> ::std::os::raw::c_int;
1424}
1425extern "C" {
1426    pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec) -> ::std::os::raw::c_int;
1427}
1428extern "C" {
1429    pub fn clock_nanosleep(
1430        __clock_id: clockid_t,
1431        __flags: ::std::os::raw::c_int,
1432        __req: *const timespec,
1433        __rem: *mut timespec,
1434    ) -> ::std::os::raw::c_int;
1435}
1436extern "C" {
1437    pub fn clock_getcpuclockid(__pid: pid_t, __clock_id: *mut clockid_t) -> ::std::os::raw::c_int;
1438}
1439extern "C" {
1440    pub fn timer_create(
1441        __clock_id: clockid_t,
1442        __evp: *mut sigevent,
1443        __timerid: *mut timer_t,
1444    ) -> ::std::os::raw::c_int;
1445}
1446extern "C" {
1447    pub fn timer_delete(__timerid: timer_t) -> ::std::os::raw::c_int;
1448}
1449extern "C" {
1450    pub fn timer_settime(
1451        __timerid: timer_t,
1452        __flags: ::std::os::raw::c_int,
1453        __value: *const itimerspec,
1454        __ovalue: *mut itimerspec,
1455    ) -> ::std::os::raw::c_int;
1456}
1457extern "C" {
1458    pub fn timer_gettime(__timerid: timer_t, __value: *mut itimerspec) -> ::std::os::raw::c_int;
1459}
1460extern "C" {
1461    pub fn timer_getoverrun(__timerid: timer_t) -> ::std::os::raw::c_int;
1462}
1463extern "C" {
1464    pub fn timespec_get(
1465        __ts: *mut timespec,
1466        __base: ::std::os::raw::c_int,
1467    ) -> ::std::os::raw::c_int;
1468}
1469pub type va_list = __builtin_va_list;
1470pub type __gnuc_va_list = __builtin_va_list;
1471#[repr(C)]
1472#[derive(Copy, Clone)]
1473pub struct __mbstate_t {
1474    pub __count: ::std::os::raw::c_int,
1475    pub __value: __mbstate_t__bindgen_ty_1,
1476}
1477#[repr(C)]
1478#[derive(Copy, Clone)]
1479pub union __mbstate_t__bindgen_ty_1 {
1480    pub __wch: ::std::os::raw::c_uint,
1481    pub __wchb: [::std::os::raw::c_char; 4usize],
1482    _bindgen_union_align: u32,
1483}
1484#[repr(C)]
1485#[derive(Copy, Clone)]
1486pub struct _G_fpos_t {
1487    pub __pos: __off_t,
1488    pub __state: __mbstate_t,
1489}
1490pub type __fpos_t = _G_fpos_t;
1491#[repr(C)]
1492#[derive(Copy, Clone)]
1493pub struct _G_fpos64_t {
1494    pub __pos: __off64_t,
1495    pub __state: __mbstate_t,
1496}
1497pub type __fpos64_t = _G_fpos64_t;
1498pub type __FILE = _IO_FILE;
1499pub type FILE = _IO_FILE;
1500#[repr(C)]
1501#[derive(Debug, Copy, Clone)]
1502pub struct _IO_marker {
1503    _unused: [u8; 0],
1504}
1505#[repr(C)]
1506#[derive(Debug, Copy, Clone)]
1507pub struct _IO_codecvt {
1508    _unused: [u8; 0],
1509}
1510#[repr(C)]
1511#[derive(Debug, Copy, Clone)]
1512pub struct _IO_wide_data {
1513    _unused: [u8; 0],
1514}
1515pub type _IO_lock_t = ::std::os::raw::c_void;
1516#[repr(C)]
1517#[derive(Debug, Copy, Clone)]
1518pub struct _IO_FILE {
1519    pub _flags: ::std::os::raw::c_int,
1520    pub _IO_read_ptr: *mut ::std::os::raw::c_char,
1521    pub _IO_read_end: *mut ::std::os::raw::c_char,
1522    pub _IO_read_base: *mut ::std::os::raw::c_char,
1523    pub _IO_write_base: *mut ::std::os::raw::c_char,
1524    pub _IO_write_ptr: *mut ::std::os::raw::c_char,
1525    pub _IO_write_end: *mut ::std::os::raw::c_char,
1526    pub _IO_buf_base: *mut ::std::os::raw::c_char,
1527    pub _IO_buf_end: *mut ::std::os::raw::c_char,
1528    pub _IO_save_base: *mut ::std::os::raw::c_char,
1529    pub _IO_backup_base: *mut ::std::os::raw::c_char,
1530    pub _IO_save_end: *mut ::std::os::raw::c_char,
1531    pub _markers: *mut _IO_marker,
1532    pub _chain: *mut _IO_FILE,
1533    pub _fileno: ::std::os::raw::c_int,
1534    pub _flags2: ::std::os::raw::c_int,
1535    pub _old_offset: __off_t,
1536    pub _cur_column: ::std::os::raw::c_ushort,
1537    pub _vtable_offset: ::std::os::raw::c_schar,
1538    pub _shortbuf: [::std::os::raw::c_char; 1usize],
1539    pub _lock: *mut _IO_lock_t,
1540    pub _offset: __off64_t,
1541    pub _codecvt: *mut _IO_codecvt,
1542    pub _wide_data: *mut _IO_wide_data,
1543    pub _freeres_list: *mut _IO_FILE,
1544    pub _freeres_buf: *mut ::std::os::raw::c_void,
1545    pub __pad5: usize,
1546    pub _mode: ::std::os::raw::c_int,
1547    pub _unused2: [::std::os::raw::c_char; 20usize],
1548}
1549pub type off_t = __off_t;
1550pub type fpos_t = __fpos_t;
1551extern "C" {
1552    #[link_name = "\u{1}stdin"]
1553    pub static mut stdin: *mut FILE;
1554}
1555extern "C" {
1556    #[link_name = "\u{1}stdout"]
1557    pub static mut stdout: *mut FILE;
1558}
1559extern "C" {
1560    #[link_name = "\u{1}stderr"]
1561    pub static mut stderr: *mut FILE;
1562}
1563extern "C" {
1564    pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
1565}
1566extern "C" {
1567    pub fn rename(
1568        __old: *const ::std::os::raw::c_char,
1569        __new: *const ::std::os::raw::c_char,
1570    ) -> ::std::os::raw::c_int;
1571}
1572extern "C" {
1573    pub fn renameat(
1574        __oldfd: ::std::os::raw::c_int,
1575        __old: *const ::std::os::raw::c_char,
1576        __newfd: ::std::os::raw::c_int,
1577        __new: *const ::std::os::raw::c_char,
1578    ) -> ::std::os::raw::c_int;
1579}
1580extern "C" {
1581    pub fn tmpfile() -> *mut FILE;
1582}
1583extern "C" {
1584    pub fn tmpnam(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
1585}
1586extern "C" {
1587    pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
1588}
1589extern "C" {
1590    pub fn tempnam(
1591        __dir: *const ::std::os::raw::c_char,
1592        __pfx: *const ::std::os::raw::c_char,
1593    ) -> *mut ::std::os::raw::c_char;
1594}
1595extern "C" {
1596    pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
1597}
1598extern "C" {
1599    pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int;
1600}
1601extern "C" {
1602    pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
1603}
1604extern "C" {
1605    pub fn fopen(
1606        __filename: *const ::std::os::raw::c_char,
1607        __modes: *const ::std::os::raw::c_char,
1608    ) -> *mut FILE;
1609}
1610extern "C" {
1611    pub fn freopen(
1612        __filename: *const ::std::os::raw::c_char,
1613        __modes: *const ::std::os::raw::c_char,
1614        __stream: *mut FILE,
1615    ) -> *mut FILE;
1616}
1617extern "C" {
1618    pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char)
1619        -> *mut FILE;
1620}
1621extern "C" {
1622    pub fn fmemopen(
1623        __s: *mut ::std::os::raw::c_void,
1624        __len: usize,
1625        __modes: *const ::std::os::raw::c_char,
1626    ) -> *mut FILE;
1627}
1628extern "C" {
1629    pub fn open_memstream(
1630        __bufloc: *mut *mut ::std::os::raw::c_char,
1631        __sizeloc: *mut usize,
1632    ) -> *mut FILE;
1633}
1634extern "C" {
1635    pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char);
1636}
1637extern "C" {
1638    pub fn setvbuf(
1639        __stream: *mut FILE,
1640        __buf: *mut ::std::os::raw::c_char,
1641        __modes: ::std::os::raw::c_int,
1642        __n: usize,
1643    ) -> ::std::os::raw::c_int;
1644}
1645extern "C" {
1646    pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize);
1647}
1648extern "C" {
1649    pub fn setlinebuf(__stream: *mut FILE);
1650}
1651extern "C" {
1652    pub fn fprintf(
1653        __stream: *mut FILE,
1654        __format: *const ::std::os::raw::c_char,
1655        ...
1656    ) -> ::std::os::raw::c_int;
1657}
1658extern "C" {
1659    pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
1660}
1661extern "C" {
1662    pub fn sprintf(
1663        __s: *mut ::std::os::raw::c_char,
1664        __format: *const ::std::os::raw::c_char,
1665        ...
1666    ) -> ::std::os::raw::c_int;
1667}
1668extern "C" {
1669    pub fn vfprintf(
1670        __s: *mut FILE,
1671        __format: *const ::std::os::raw::c_char,
1672        __arg: *mut __va_list_tag,
1673    ) -> ::std::os::raw::c_int;
1674}
1675extern "C" {
1676    pub fn vprintf(
1677        __format: *const ::std::os::raw::c_char,
1678        __arg: *mut __va_list_tag,
1679    ) -> ::std::os::raw::c_int;
1680}
1681extern "C" {
1682    pub fn vsprintf(
1683        __s: *mut ::std::os::raw::c_char,
1684        __format: *const ::std::os::raw::c_char,
1685        __arg: *mut __va_list_tag,
1686    ) -> ::std::os::raw::c_int;
1687}
1688extern "C" {
1689    pub fn snprintf(
1690        __s: *mut ::std::os::raw::c_char,
1691        __maxlen: ::std::os::raw::c_ulong,
1692        __format: *const ::std::os::raw::c_char,
1693        ...
1694    ) -> ::std::os::raw::c_int;
1695}
1696extern "C" {
1697    pub fn vsnprintf(
1698        __s: *mut ::std::os::raw::c_char,
1699        __maxlen: ::std::os::raw::c_ulong,
1700        __format: *const ::std::os::raw::c_char,
1701        __arg: *mut __va_list_tag,
1702    ) -> ::std::os::raw::c_int;
1703}
1704extern "C" {
1705    pub fn vdprintf(
1706        __fd: ::std::os::raw::c_int,
1707        __fmt: *const ::std::os::raw::c_char,
1708        __arg: *mut __va_list_tag,
1709    ) -> ::std::os::raw::c_int;
1710}
1711extern "C" {
1712    pub fn dprintf(
1713        __fd: ::std::os::raw::c_int,
1714        __fmt: *const ::std::os::raw::c_char,
1715        ...
1716    ) -> ::std::os::raw::c_int;
1717}
1718extern "C" {
1719    pub fn fscanf(
1720        __stream: *mut FILE,
1721        __format: *const ::std::os::raw::c_char,
1722        ...
1723    ) -> ::std::os::raw::c_int;
1724}
1725extern "C" {
1726    pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
1727}
1728extern "C" {
1729    pub fn sscanf(
1730        __s: *const ::std::os::raw::c_char,
1731        __format: *const ::std::os::raw::c_char,
1732        ...
1733    ) -> ::std::os::raw::c_int;
1734}
1735extern "C" {
1736    #[link_name = "\u{1}__isoc99_fscanf"]
1737    pub fn fscanf1(
1738        __stream: *mut FILE,
1739        __format: *const ::std::os::raw::c_char,
1740        ...
1741    ) -> ::std::os::raw::c_int;
1742}
1743extern "C" {
1744    #[link_name = "\u{1}__isoc99_scanf"]
1745    pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
1746}
1747extern "C" {
1748    #[link_name = "\u{1}__isoc99_sscanf"]
1749    pub fn sscanf1(
1750        __s: *const ::std::os::raw::c_char,
1751        __format: *const ::std::os::raw::c_char,
1752        ...
1753    ) -> ::std::os::raw::c_int;
1754}
1755extern "C" {
1756    pub fn vfscanf(
1757        __s: *mut FILE,
1758        __format: *const ::std::os::raw::c_char,
1759        __arg: *mut __va_list_tag,
1760    ) -> ::std::os::raw::c_int;
1761}
1762extern "C" {
1763    pub fn vscanf(
1764        __format: *const ::std::os::raw::c_char,
1765        __arg: *mut __va_list_tag,
1766    ) -> ::std::os::raw::c_int;
1767}
1768extern "C" {
1769    pub fn vsscanf(
1770        __s: *const ::std::os::raw::c_char,
1771        __format: *const ::std::os::raw::c_char,
1772        __arg: *mut __va_list_tag,
1773    ) -> ::std::os::raw::c_int;
1774}
1775extern "C" {
1776    #[link_name = "\u{1}__isoc99_vfscanf"]
1777    pub fn vfscanf1(
1778        __s: *mut FILE,
1779        __format: *const ::std::os::raw::c_char,
1780        __arg: *mut __va_list_tag,
1781    ) -> ::std::os::raw::c_int;
1782}
1783extern "C" {
1784    #[link_name = "\u{1}__isoc99_vscanf"]
1785    pub fn vscanf1(
1786        __format: *const ::std::os::raw::c_char,
1787        __arg: *mut __va_list_tag,
1788    ) -> ::std::os::raw::c_int;
1789}
1790extern "C" {
1791    #[link_name = "\u{1}__isoc99_vsscanf"]
1792    pub fn vsscanf1(
1793        __s: *const ::std::os::raw::c_char,
1794        __format: *const ::std::os::raw::c_char,
1795        __arg: *mut __va_list_tag,
1796    ) -> ::std::os::raw::c_int;
1797}
1798extern "C" {
1799    pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int;
1800}
1801extern "C" {
1802    pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int;
1803}
1804extern "C" {
1805    pub fn getchar() -> ::std::os::raw::c_int;
1806}
1807extern "C" {
1808    pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
1809}
1810extern "C" {
1811    pub fn getchar_unlocked() -> ::std::os::raw::c_int;
1812}
1813extern "C" {
1814    pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
1815}
1816extern "C" {
1817    pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
1818}
1819extern "C" {
1820    pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
1821}
1822extern "C" {
1823    pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
1824}
1825extern "C" {
1826    pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE)
1827        -> ::std::os::raw::c_int;
1828}
1829extern "C" {
1830    pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
1831}
1832extern "C" {
1833    pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
1834}
1835extern "C" {
1836    pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int;
1837}
1838extern "C" {
1839    pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
1840}
1841extern "C" {
1842    pub fn fgets(
1843        __s: *mut ::std::os::raw::c_char,
1844        __n: ::std::os::raw::c_int,
1845        __stream: *mut FILE,
1846    ) -> *mut ::std::os::raw::c_char;
1847}
1848extern "C" {
1849    pub fn __getdelim(
1850        __lineptr: *mut *mut ::std::os::raw::c_char,
1851        __n: *mut usize,
1852        __delimiter: ::std::os::raw::c_int,
1853        __stream: *mut FILE,
1854    ) -> __ssize_t;
1855}
1856extern "C" {
1857    pub fn getdelim(
1858        __lineptr: *mut *mut ::std::os::raw::c_char,
1859        __n: *mut usize,
1860        __delimiter: ::std::os::raw::c_int,
1861        __stream: *mut FILE,
1862    ) -> __ssize_t;
1863}
1864extern "C" {
1865    pub fn getline(
1866        __lineptr: *mut *mut ::std::os::raw::c_char,
1867        __n: *mut usize,
1868        __stream: *mut FILE,
1869    ) -> __ssize_t;
1870}
1871extern "C" {
1872    pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int;
1873}
1874extern "C" {
1875    pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
1876}
1877extern "C" {
1878    pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
1879}
1880extern "C" {
1881    pub fn fread(
1882        __ptr: *mut ::std::os::raw::c_void,
1883        __size: ::std::os::raw::c_ulong,
1884        __n: ::std::os::raw::c_ulong,
1885        __stream: *mut FILE,
1886    ) -> ::std::os::raw::c_ulong;
1887}
1888extern "C" {
1889    pub fn fwrite(
1890        __ptr: *const ::std::os::raw::c_void,
1891        __size: ::std::os::raw::c_ulong,
1892        __n: ::std::os::raw::c_ulong,
1893        __s: *mut FILE,
1894    ) -> ::std::os::raw::c_ulong;
1895}
1896extern "C" {
1897    pub fn fread_unlocked(
1898        __ptr: *mut ::std::os::raw::c_void,
1899        __size: usize,
1900        __n: usize,
1901        __stream: *mut FILE,
1902    ) -> usize;
1903}
1904extern "C" {
1905    pub fn fwrite_unlocked(
1906        __ptr: *const ::std::os::raw::c_void,
1907        __size: usize,
1908        __n: usize,
1909        __stream: *mut FILE,
1910    ) -> usize;
1911}
1912extern "C" {
1913    pub fn fseek(
1914        __stream: *mut FILE,
1915        __off: ::std::os::raw::c_long,
1916        __whence: ::std::os::raw::c_int,
1917    ) -> ::std::os::raw::c_int;
1918}
1919extern "C" {
1920    pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long;
1921}
1922extern "C" {
1923    pub fn rewind(__stream: *mut FILE);
1924}
1925extern "C" {
1926    pub fn fseeko(
1927        __stream: *mut FILE,
1928        __off: __off_t,
1929        __whence: ::std::os::raw::c_int,
1930    ) -> ::std::os::raw::c_int;
1931}
1932extern "C" {
1933    pub fn ftello(__stream: *mut FILE) -> __off_t;
1934}
1935extern "C" {
1936    pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int;
1937}
1938extern "C" {
1939    pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int;
1940}
1941extern "C" {
1942    pub fn clearerr(__stream: *mut FILE);
1943}
1944extern "C" {
1945    pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int;
1946}
1947extern "C" {
1948    pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int;
1949}
1950extern "C" {
1951    pub fn clearerr_unlocked(__stream: *mut FILE);
1952}
1953extern "C" {
1954    pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
1955}
1956extern "C" {
1957    pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
1958}
1959extern "C" {
1960    pub fn perror(__s: *const ::std::os::raw::c_char);
1961}
1962extern "C" {
1963    #[link_name = "\u{1}sys_nerr"]
1964    pub static mut sys_nerr: ::std::os::raw::c_int;
1965}
1966extern "C" {
1967    #[link_name = "\u{1}sys_errlist"]
1968    pub static mut sys_errlist: [*const ::std::os::raw::c_char; 0usize];
1969}
1970extern "C" {
1971    pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int;
1972}
1973extern "C" {
1974    pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
1975}
1976extern "C" {
1977    pub fn popen(
1978        __command: *const ::std::os::raw::c_char,
1979        __modes: *const ::std::os::raw::c_char,
1980    ) -> *mut FILE;
1981}
1982extern "C" {
1983    pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
1984}
1985extern "C" {
1986    pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
1987}
1988extern "C" {
1989    pub fn flockfile(__stream: *mut FILE);
1990}
1991extern "C" {
1992    pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int;
1993}
1994extern "C" {
1995    pub fn funlockfile(__stream: *mut FILE);
1996}
1997extern "C" {
1998    pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int;
1999}
2000extern "C" {
2001    pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2002}
2003extern "C" {
2004    pub fn __errno_location() -> *mut ::std::os::raw::c_int;
2005}
2006pub type int_least8_t = __int_least8_t;
2007pub type int_least16_t = __int_least16_t;
2008pub type int_least32_t = __int_least32_t;
2009pub type int_least64_t = __int_least64_t;
2010pub type uint_least8_t = __uint_least8_t;
2011pub type uint_least16_t = __uint_least16_t;
2012pub type uint_least32_t = __uint_least32_t;
2013pub type uint_least64_t = __uint_least64_t;
2014pub type int_fast8_t = ::std::os::raw::c_schar;
2015pub type int_fast16_t = ::std::os::raw::c_long;
2016pub type int_fast32_t = ::std::os::raw::c_long;
2017pub type int_fast64_t = ::std::os::raw::c_long;
2018pub type uint_fast8_t = ::std::os::raw::c_uchar;
2019pub type uint_fast16_t = ::std::os::raw::c_ulong;
2020pub type uint_fast32_t = ::std::os::raw::c_ulong;
2021pub type uint_fast64_t = ::std::os::raw::c_ulong;
2022pub type intmax_t = __intmax_t;
2023pub type uintmax_t = __uintmax_t;
2024extern "C" {
2025    pub fn avutil_version() -> ::std::os::raw::c_uint;
2026}
2027extern "C" {
2028    pub fn av_version_info() -> *const ::std::os::raw::c_char;
2029}
2030extern "C" {
2031    pub fn avutil_configuration() -> *const ::std::os::raw::c_char;
2032}
2033extern "C" {
2034    pub fn avutil_license() -> *const ::std::os::raw::c_char;
2035}
2036pub const AVMediaType_AVMEDIA_TYPE_UNKNOWN: AVMediaType = -1;
2037pub const AVMediaType_AVMEDIA_TYPE_VIDEO: AVMediaType = 0;
2038pub const AVMediaType_AVMEDIA_TYPE_AUDIO: AVMediaType = 1;
2039pub const AVMediaType_AVMEDIA_TYPE_DATA: AVMediaType = 2;
2040pub const AVMediaType_AVMEDIA_TYPE_SUBTITLE: AVMediaType = 3;
2041pub const AVMediaType_AVMEDIA_TYPE_ATTACHMENT: AVMediaType = 4;
2042pub const AVMediaType_AVMEDIA_TYPE_NB: AVMediaType = 5;
2043pub type AVMediaType = i32;
2044extern "C" {
2045    pub fn av_get_media_type_string(media_type: AVMediaType) -> *const ::std::os::raw::c_char;
2046}
2047pub const AVPictureType_AV_PICTURE_TYPE_NONE: AVPictureType = 0;
2048pub const AVPictureType_AV_PICTURE_TYPE_I: AVPictureType = 1;
2049pub const AVPictureType_AV_PICTURE_TYPE_P: AVPictureType = 2;
2050pub const AVPictureType_AV_PICTURE_TYPE_B: AVPictureType = 3;
2051pub const AVPictureType_AV_PICTURE_TYPE_S: AVPictureType = 4;
2052pub const AVPictureType_AV_PICTURE_TYPE_SI: AVPictureType = 5;
2053pub const AVPictureType_AV_PICTURE_TYPE_SP: AVPictureType = 6;
2054pub const AVPictureType_AV_PICTURE_TYPE_BI: AVPictureType = 7;
2055pub type AVPictureType = u32;
2056extern "C" {
2057    pub fn av_get_picture_type_char(pict_type: AVPictureType) -> ::std::os::raw::c_char;
2058}
2059pub type __gwchar_t = ::std::os::raw::c_int;
2060#[repr(C)]
2061#[derive(Debug, Copy, Clone)]
2062pub struct imaxdiv_t {
2063    pub quot: ::std::os::raw::c_long,
2064    pub rem: ::std::os::raw::c_long,
2065}
2066extern "C" {
2067    pub fn imaxabs(__n: intmax_t) -> intmax_t;
2068}
2069extern "C" {
2070    pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t;
2071}
2072extern "C" {
2073    pub fn strtoimax(
2074        __nptr: *const ::std::os::raw::c_char,
2075        __endptr: *mut *mut ::std::os::raw::c_char,
2076        __base: ::std::os::raw::c_int,
2077    ) -> intmax_t;
2078}
2079extern "C" {
2080    pub fn strtoumax(
2081        __nptr: *const ::std::os::raw::c_char,
2082        __endptr: *mut *mut ::std::os::raw::c_char,
2083        __base: ::std::os::raw::c_int,
2084    ) -> uintmax_t;
2085}
2086extern "C" {
2087    pub fn wcstoimax(
2088        __nptr: *const __gwchar_t,
2089        __endptr: *mut *mut __gwchar_t,
2090        __base: ::std::os::raw::c_int,
2091    ) -> intmax_t;
2092}
2093extern "C" {
2094    pub fn wcstoumax(
2095        __nptr: *const __gwchar_t,
2096        __endptr: *mut *mut __gwchar_t,
2097        __base: ::std::os::raw::c_int,
2098    ) -> uintmax_t;
2099}
2100pub type _Float32 = f32;
2101pub type _Float64 = f64;
2102pub type _Float32x = f64;
2103pub type _Float64x = u128;
2104pub type float_t = f32;
2105pub type double_t = f64;
2106extern "C" {
2107    pub fn __fpclassify(__value: f64) -> ::std::os::raw::c_int;
2108}
2109extern "C" {
2110    pub fn __signbit(__value: f64) -> ::std::os::raw::c_int;
2111}
2112extern "C" {
2113    pub fn __isinf(__value: f64) -> ::std::os::raw::c_int;
2114}
2115extern "C" {
2116    pub fn __finite(__value: f64) -> ::std::os::raw::c_int;
2117}
2118extern "C" {
2119    pub fn __isnan(__value: f64) -> ::std::os::raw::c_int;
2120}
2121extern "C" {
2122    pub fn __iseqsig(__x: f64, __y: f64) -> ::std::os::raw::c_int;
2123}
2124extern "C" {
2125    pub fn __issignaling(__value: f64) -> ::std::os::raw::c_int;
2126}
2127extern "C" {
2128    pub fn acos(__x: f64) -> f64;
2129}
2130extern "C" {
2131    pub fn __acos(__x: f64) -> f64;
2132}
2133extern "C" {
2134    pub fn asin(__x: f64) -> f64;
2135}
2136extern "C" {
2137    pub fn __asin(__x: f64) -> f64;
2138}
2139extern "C" {
2140    pub fn atan(__x: f64) -> f64;
2141}
2142extern "C" {
2143    pub fn __atan(__x: f64) -> f64;
2144}
2145extern "C" {
2146    pub fn atan2(__y: f64, __x: f64) -> f64;
2147}
2148extern "C" {
2149    pub fn __atan2(__y: f64, __x: f64) -> f64;
2150}
2151extern "C" {
2152    pub fn cos(__x: f64) -> f64;
2153}
2154extern "C" {
2155    pub fn __cos(__x: f64) -> f64;
2156}
2157extern "C" {
2158    pub fn sin(__x: f64) -> f64;
2159}
2160extern "C" {
2161    pub fn __sin(__x: f64) -> f64;
2162}
2163extern "C" {
2164    pub fn tan(__x: f64) -> f64;
2165}
2166extern "C" {
2167    pub fn __tan(__x: f64) -> f64;
2168}
2169extern "C" {
2170    pub fn cosh(__x: f64) -> f64;
2171}
2172extern "C" {
2173    pub fn __cosh(__x: f64) -> f64;
2174}
2175extern "C" {
2176    pub fn sinh(__x: f64) -> f64;
2177}
2178extern "C" {
2179    pub fn __sinh(__x: f64) -> f64;
2180}
2181extern "C" {
2182    pub fn tanh(__x: f64) -> f64;
2183}
2184extern "C" {
2185    pub fn __tanh(__x: f64) -> f64;
2186}
2187extern "C" {
2188    pub fn acosh(__x: f64) -> f64;
2189}
2190extern "C" {
2191    pub fn __acosh(__x: f64) -> f64;
2192}
2193extern "C" {
2194    pub fn asinh(__x: f64) -> f64;
2195}
2196extern "C" {
2197    pub fn __asinh(__x: f64) -> f64;
2198}
2199extern "C" {
2200    pub fn atanh(__x: f64) -> f64;
2201}
2202extern "C" {
2203    pub fn __atanh(__x: f64) -> f64;
2204}
2205extern "C" {
2206    pub fn exp(__x: f64) -> f64;
2207}
2208extern "C" {
2209    pub fn __exp(__x: f64) -> f64;
2210}
2211extern "C" {
2212    pub fn frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64;
2213}
2214extern "C" {
2215    pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64;
2216}
2217extern "C" {
2218    pub fn ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64;
2219}
2220extern "C" {
2221    pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64;
2222}
2223extern "C" {
2224    pub fn log(__x: f64) -> f64;
2225}
2226extern "C" {
2227    pub fn __log(__x: f64) -> f64;
2228}
2229extern "C" {
2230    pub fn log10(__x: f64) -> f64;
2231}
2232extern "C" {
2233    pub fn __log10(__x: f64) -> f64;
2234}
2235extern "C" {
2236    pub fn modf(__x: f64, __iptr: *mut f64) -> f64;
2237}
2238extern "C" {
2239    pub fn __modf(__x: f64, __iptr: *mut f64) -> f64;
2240}
2241extern "C" {
2242    pub fn expm1(__x: f64) -> f64;
2243}
2244extern "C" {
2245    pub fn __expm1(__x: f64) -> f64;
2246}
2247extern "C" {
2248    pub fn log1p(__x: f64) -> f64;
2249}
2250extern "C" {
2251    pub fn __log1p(__x: f64) -> f64;
2252}
2253extern "C" {
2254    pub fn logb(__x: f64) -> f64;
2255}
2256extern "C" {
2257    pub fn __logb(__x: f64) -> f64;
2258}
2259extern "C" {
2260    pub fn exp2(__x: f64) -> f64;
2261}
2262extern "C" {
2263    pub fn __exp2(__x: f64) -> f64;
2264}
2265extern "C" {
2266    pub fn log2(__x: f64) -> f64;
2267}
2268extern "C" {
2269    pub fn __log2(__x: f64) -> f64;
2270}
2271extern "C" {
2272    pub fn pow(__x: f64, __y: f64) -> f64;
2273}
2274extern "C" {
2275    pub fn __pow(__x: f64, __y: f64) -> f64;
2276}
2277extern "C" {
2278    pub fn sqrt(__x: f64) -> f64;
2279}
2280extern "C" {
2281    pub fn __sqrt(__x: f64) -> f64;
2282}
2283extern "C" {
2284    pub fn hypot(__x: f64, __y: f64) -> f64;
2285}
2286extern "C" {
2287    pub fn __hypot(__x: f64, __y: f64) -> f64;
2288}
2289extern "C" {
2290    pub fn cbrt(__x: f64) -> f64;
2291}
2292extern "C" {
2293    pub fn __cbrt(__x: f64) -> f64;
2294}
2295extern "C" {
2296    pub fn ceil(__x: f64) -> f64;
2297}
2298extern "C" {
2299    pub fn __ceil(__x: f64) -> f64;
2300}
2301extern "C" {
2302    pub fn fabs(__x: f64) -> f64;
2303}
2304extern "C" {
2305    pub fn __fabs(__x: f64) -> f64;
2306}
2307extern "C" {
2308    pub fn floor(__x: f64) -> f64;
2309}
2310extern "C" {
2311    pub fn __floor(__x: f64) -> f64;
2312}
2313extern "C" {
2314    pub fn fmod(__x: f64, __y: f64) -> f64;
2315}
2316extern "C" {
2317    pub fn __fmod(__x: f64, __y: f64) -> f64;
2318}
2319extern "C" {
2320    pub fn isinf(__value: f64) -> ::std::os::raw::c_int;
2321}
2322extern "C" {
2323    pub fn finite(__value: f64) -> ::std::os::raw::c_int;
2324}
2325extern "C" {
2326    pub fn drem(__x: f64, __y: f64) -> f64;
2327}
2328extern "C" {
2329    pub fn __drem(__x: f64, __y: f64) -> f64;
2330}
2331extern "C" {
2332    pub fn significand(__x: f64) -> f64;
2333}
2334extern "C" {
2335    pub fn __significand(__x: f64) -> f64;
2336}
2337extern "C" {
2338    pub fn copysign(__x: f64, __y: f64) -> f64;
2339}
2340extern "C" {
2341    pub fn __copysign(__x: f64, __y: f64) -> f64;
2342}
2343extern "C" {
2344    pub fn nan(__tagb: *const ::std::os::raw::c_char) -> f64;
2345}
2346extern "C" {
2347    pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64;
2348}
2349extern "C" {
2350    pub fn isnan(__value: f64) -> ::std::os::raw::c_int;
2351}
2352extern "C" {
2353    pub fn j0(arg1: f64) -> f64;
2354}
2355extern "C" {
2356    pub fn __j0(arg1: f64) -> f64;
2357}
2358extern "C" {
2359    pub fn j1(arg1: f64) -> f64;
2360}
2361extern "C" {
2362    pub fn __j1(arg1: f64) -> f64;
2363}
2364extern "C" {
2365    pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
2366}
2367extern "C" {
2368    pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
2369}
2370extern "C" {
2371    pub fn y0(arg1: f64) -> f64;
2372}
2373extern "C" {
2374    pub fn __y0(arg1: f64) -> f64;
2375}
2376extern "C" {
2377    pub fn y1(arg1: f64) -> f64;
2378}
2379extern "C" {
2380    pub fn __y1(arg1: f64) -> f64;
2381}
2382extern "C" {
2383    pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
2384}
2385extern "C" {
2386    pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
2387}
2388extern "C" {
2389    pub fn erf(arg1: f64) -> f64;
2390}
2391extern "C" {
2392    pub fn __erf(arg1: f64) -> f64;
2393}
2394extern "C" {
2395    pub fn erfc(arg1: f64) -> f64;
2396}
2397extern "C" {
2398    pub fn __erfc(arg1: f64) -> f64;
2399}
2400extern "C" {
2401    pub fn lgamma(arg1: f64) -> f64;
2402}
2403extern "C" {
2404    pub fn __lgamma(arg1: f64) -> f64;
2405}
2406extern "C" {
2407    pub fn tgamma(arg1: f64) -> f64;
2408}
2409extern "C" {
2410    pub fn __tgamma(arg1: f64) -> f64;
2411}
2412extern "C" {
2413    pub fn gamma(arg1: f64) -> f64;
2414}
2415extern "C" {
2416    pub fn __gamma(arg1: f64) -> f64;
2417}
2418extern "C" {
2419    pub fn lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64;
2420}
2421extern "C" {
2422    pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64;
2423}
2424extern "C" {
2425    pub fn rint(__x: f64) -> f64;
2426}
2427extern "C" {
2428    pub fn __rint(__x: f64) -> f64;
2429}
2430extern "C" {
2431    pub fn nextafter(__x: f64, __y: f64) -> f64;
2432}
2433extern "C" {
2434    pub fn __nextafter(__x: f64, __y: f64) -> f64;
2435}
2436extern "C" {
2437    pub fn nexttoward(__x: f64, __y: u128) -> f64;
2438}
2439extern "C" {
2440    pub fn __nexttoward(__x: f64, __y: u128) -> f64;
2441}
2442extern "C" {
2443    pub fn remainder(__x: f64, __y: f64) -> f64;
2444}
2445extern "C" {
2446    pub fn __remainder(__x: f64, __y: f64) -> f64;
2447}
2448extern "C" {
2449    pub fn scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64;
2450}
2451extern "C" {
2452    pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64;
2453}
2454extern "C" {
2455    pub fn ilogb(__x: f64) -> ::std::os::raw::c_int;
2456}
2457extern "C" {
2458    pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int;
2459}
2460extern "C" {
2461    pub fn scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64;
2462}
2463extern "C" {
2464    pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64;
2465}
2466extern "C" {
2467    pub fn nearbyint(__x: f64) -> f64;
2468}
2469extern "C" {
2470    pub fn __nearbyint(__x: f64) -> f64;
2471}
2472extern "C" {
2473    pub fn round(__x: f64) -> f64;
2474}
2475extern "C" {
2476    pub fn __round(__x: f64) -> f64;
2477}
2478extern "C" {
2479    pub fn trunc(__x: f64) -> f64;
2480}
2481extern "C" {
2482    pub fn __trunc(__x: f64) -> f64;
2483}
2484extern "C" {
2485    pub fn remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64;
2486}
2487extern "C" {
2488    pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64;
2489}
2490extern "C" {
2491    pub fn lrint(__x: f64) -> ::std::os::raw::c_long;
2492}
2493extern "C" {
2494    pub fn __lrint(__x: f64) -> ::std::os::raw::c_long;
2495}
2496extern "C" {
2497    pub fn llrint(__x: f64) -> ::std::os::raw::c_longlong;
2498}
2499extern "C" {
2500    pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong;
2501}
2502extern "C" {
2503    pub fn lround(__x: f64) -> ::std::os::raw::c_long;
2504}
2505extern "C" {
2506    pub fn __lround(__x: f64) -> ::std::os::raw::c_long;
2507}
2508extern "C" {
2509    pub fn llround(__x: f64) -> ::std::os::raw::c_longlong;
2510}
2511extern "C" {
2512    pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong;
2513}
2514extern "C" {
2515    pub fn fdim(__x: f64, __y: f64) -> f64;
2516}
2517extern "C" {
2518    pub fn __fdim(__x: f64, __y: f64) -> f64;
2519}
2520extern "C" {
2521    pub fn fmax(__x: f64, __y: f64) -> f64;
2522}
2523extern "C" {
2524    pub fn __fmax(__x: f64, __y: f64) -> f64;
2525}
2526extern "C" {
2527    pub fn fmin(__x: f64, __y: f64) -> f64;
2528}
2529extern "C" {
2530    pub fn __fmin(__x: f64, __y: f64) -> f64;
2531}
2532extern "C" {
2533    pub fn fma(__x: f64, __y: f64, __z: f64) -> f64;
2534}
2535extern "C" {
2536    pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64;
2537}
2538extern "C" {
2539    pub fn scalb(__x: f64, __n: f64) -> f64;
2540}
2541extern "C" {
2542    pub fn __scalb(__x: f64, __n: f64) -> f64;
2543}
2544extern "C" {
2545    pub fn __fpclassifyf(__value: f32) -> ::std::os::raw::c_int;
2546}
2547extern "C" {
2548    pub fn __signbitf(__value: f32) -> ::std::os::raw::c_int;
2549}
2550extern "C" {
2551    pub fn __isinff(__value: f32) -> ::std::os::raw::c_int;
2552}
2553extern "C" {
2554    pub fn __finitef(__value: f32) -> ::std::os::raw::c_int;
2555}
2556extern "C" {
2557    pub fn __isnanf(__value: f32) -> ::std::os::raw::c_int;
2558}
2559extern "C" {
2560    pub fn __iseqsigf(__x: f32, __y: f32) -> ::std::os::raw::c_int;
2561}
2562extern "C" {
2563    pub fn __issignalingf(__value: f32) -> ::std::os::raw::c_int;
2564}
2565extern "C" {
2566    pub fn acosf(__x: f32) -> f32;
2567}
2568extern "C" {
2569    pub fn __acosf(__x: f32) -> f32;
2570}
2571extern "C" {
2572    pub fn asinf(__x: f32) -> f32;
2573}
2574extern "C" {
2575    pub fn __asinf(__x: f32) -> f32;
2576}
2577extern "C" {
2578    pub fn atanf(__x: f32) -> f32;
2579}
2580extern "C" {
2581    pub fn __atanf(__x: f32) -> f32;
2582}
2583extern "C" {
2584    pub fn atan2f(__y: f32, __x: f32) -> f32;
2585}
2586extern "C" {
2587    pub fn __atan2f(__y: f32, __x: f32) -> f32;
2588}
2589extern "C" {
2590    pub fn cosf(__x: f32) -> f32;
2591}
2592extern "C" {
2593    pub fn __cosf(__x: f32) -> f32;
2594}
2595extern "C" {
2596    pub fn sinf(__x: f32) -> f32;
2597}
2598extern "C" {
2599    pub fn __sinf(__x: f32) -> f32;
2600}
2601extern "C" {
2602    pub fn tanf(__x: f32) -> f32;
2603}
2604extern "C" {
2605    pub fn __tanf(__x: f32) -> f32;
2606}
2607extern "C" {
2608    pub fn coshf(__x: f32) -> f32;
2609}
2610extern "C" {
2611    pub fn __coshf(__x: f32) -> f32;
2612}
2613extern "C" {
2614    pub fn sinhf(__x: f32) -> f32;
2615}
2616extern "C" {
2617    pub fn __sinhf(__x: f32) -> f32;
2618}
2619extern "C" {
2620    pub fn tanhf(__x: f32) -> f32;
2621}
2622extern "C" {
2623    pub fn __tanhf(__x: f32) -> f32;
2624}
2625extern "C" {
2626    pub fn acoshf(__x: f32) -> f32;
2627}
2628extern "C" {
2629    pub fn __acoshf(__x: f32) -> f32;
2630}
2631extern "C" {
2632    pub fn asinhf(__x: f32) -> f32;
2633}
2634extern "C" {
2635    pub fn __asinhf(__x: f32) -> f32;
2636}
2637extern "C" {
2638    pub fn atanhf(__x: f32) -> f32;
2639}
2640extern "C" {
2641    pub fn __atanhf(__x: f32) -> f32;
2642}
2643extern "C" {
2644    pub fn expf(__x: f32) -> f32;
2645}
2646extern "C" {
2647    pub fn __expf(__x: f32) -> f32;
2648}
2649extern "C" {
2650    pub fn frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32;
2651}
2652extern "C" {
2653    pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32;
2654}
2655extern "C" {
2656    pub fn ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32;
2657}
2658extern "C" {
2659    pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32;
2660}
2661extern "C" {
2662    pub fn logf(__x: f32) -> f32;
2663}
2664extern "C" {
2665    pub fn __logf(__x: f32) -> f32;
2666}
2667extern "C" {
2668    pub fn log10f(__x: f32) -> f32;
2669}
2670extern "C" {
2671    pub fn __log10f(__x: f32) -> f32;
2672}
2673extern "C" {
2674    pub fn modff(__x: f32, __iptr: *mut f32) -> f32;
2675}
2676extern "C" {
2677    pub fn __modff(__x: f32, __iptr: *mut f32) -> f32;
2678}
2679extern "C" {
2680    pub fn expm1f(__x: f32) -> f32;
2681}
2682extern "C" {
2683    pub fn __expm1f(__x: f32) -> f32;
2684}
2685extern "C" {
2686    pub fn log1pf(__x: f32) -> f32;
2687}
2688extern "C" {
2689    pub fn __log1pf(__x: f32) -> f32;
2690}
2691extern "C" {
2692    pub fn logbf(__x: f32) -> f32;
2693}
2694extern "C" {
2695    pub fn __logbf(__x: f32) -> f32;
2696}
2697extern "C" {
2698    pub fn exp2f(__x: f32) -> f32;
2699}
2700extern "C" {
2701    pub fn __exp2f(__x: f32) -> f32;
2702}
2703extern "C" {
2704    pub fn log2f(__x: f32) -> f32;
2705}
2706extern "C" {
2707    pub fn __log2f(__x: f32) -> f32;
2708}
2709extern "C" {
2710    pub fn powf(__x: f32, __y: f32) -> f32;
2711}
2712extern "C" {
2713    pub fn __powf(__x: f32, __y: f32) -> f32;
2714}
2715extern "C" {
2716    pub fn sqrtf(__x: f32) -> f32;
2717}
2718extern "C" {
2719    pub fn __sqrtf(__x: f32) -> f32;
2720}
2721extern "C" {
2722    pub fn hypotf(__x: f32, __y: f32) -> f32;
2723}
2724extern "C" {
2725    pub fn __hypotf(__x: f32, __y: f32) -> f32;
2726}
2727extern "C" {
2728    pub fn cbrtf(__x: f32) -> f32;
2729}
2730extern "C" {
2731    pub fn __cbrtf(__x: f32) -> f32;
2732}
2733extern "C" {
2734    pub fn ceilf(__x: f32) -> f32;
2735}
2736extern "C" {
2737    pub fn __ceilf(__x: f32) -> f32;
2738}
2739extern "C" {
2740    pub fn fabsf(__x: f32) -> f32;
2741}
2742extern "C" {
2743    pub fn __fabsf(__x: f32) -> f32;
2744}
2745extern "C" {
2746    pub fn floorf(__x: f32) -> f32;
2747}
2748extern "C" {
2749    pub fn __floorf(__x: f32) -> f32;
2750}
2751extern "C" {
2752    pub fn fmodf(__x: f32, __y: f32) -> f32;
2753}
2754extern "C" {
2755    pub fn __fmodf(__x: f32, __y: f32) -> f32;
2756}
2757extern "C" {
2758    pub fn isinff(__value: f32) -> ::std::os::raw::c_int;
2759}
2760extern "C" {
2761    pub fn finitef(__value: f32) -> ::std::os::raw::c_int;
2762}
2763extern "C" {
2764    pub fn dremf(__x: f32, __y: f32) -> f32;
2765}
2766extern "C" {
2767    pub fn __dremf(__x: f32, __y: f32) -> f32;
2768}
2769extern "C" {
2770    pub fn significandf(__x: f32) -> f32;
2771}
2772extern "C" {
2773    pub fn __significandf(__x: f32) -> f32;
2774}
2775extern "C" {
2776    pub fn copysignf(__x: f32, __y: f32) -> f32;
2777}
2778extern "C" {
2779    pub fn __copysignf(__x: f32, __y: f32) -> f32;
2780}
2781extern "C" {
2782    pub fn nanf(__tagb: *const ::std::os::raw::c_char) -> f32;
2783}
2784extern "C" {
2785    pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32;
2786}
2787extern "C" {
2788    pub fn isnanf(__value: f32) -> ::std::os::raw::c_int;
2789}
2790extern "C" {
2791    pub fn j0f(arg1: f32) -> f32;
2792}
2793extern "C" {
2794    pub fn __j0f(arg1: f32) -> f32;
2795}
2796extern "C" {
2797    pub fn j1f(arg1: f32) -> f32;
2798}
2799extern "C" {
2800    pub fn __j1f(arg1: f32) -> f32;
2801}
2802extern "C" {
2803    pub fn jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
2804}
2805extern "C" {
2806    pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
2807}
2808extern "C" {
2809    pub fn y0f(arg1: f32) -> f32;
2810}
2811extern "C" {
2812    pub fn __y0f(arg1: f32) -> f32;
2813}
2814extern "C" {
2815    pub fn y1f(arg1: f32) -> f32;
2816}
2817extern "C" {
2818    pub fn __y1f(arg1: f32) -> f32;
2819}
2820extern "C" {
2821    pub fn ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
2822}
2823extern "C" {
2824    pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
2825}
2826extern "C" {
2827    pub fn erff(arg1: f32) -> f32;
2828}
2829extern "C" {
2830    pub fn __erff(arg1: f32) -> f32;
2831}
2832extern "C" {
2833    pub fn erfcf(arg1: f32) -> f32;
2834}
2835extern "C" {
2836    pub fn __erfcf(arg1: f32) -> f32;
2837}
2838extern "C" {
2839    pub fn lgammaf(arg1: f32) -> f32;
2840}
2841extern "C" {
2842    pub fn __lgammaf(arg1: f32) -> f32;
2843}
2844extern "C" {
2845    pub fn tgammaf(arg1: f32) -> f32;
2846}
2847extern "C" {
2848    pub fn __tgammaf(arg1: f32) -> f32;
2849}
2850extern "C" {
2851    pub fn gammaf(arg1: f32) -> f32;
2852}
2853extern "C" {
2854    pub fn __gammaf(arg1: f32) -> f32;
2855}
2856extern "C" {
2857    pub fn lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32;
2858}
2859extern "C" {
2860    pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32;
2861}
2862extern "C" {
2863    pub fn rintf(__x: f32) -> f32;
2864}
2865extern "C" {
2866    pub fn __rintf(__x: f32) -> f32;
2867}
2868extern "C" {
2869    pub fn nextafterf(__x: f32, __y: f32) -> f32;
2870}
2871extern "C" {
2872    pub fn __nextafterf(__x: f32, __y: f32) -> f32;
2873}
2874extern "C" {
2875    pub fn nexttowardf(__x: f32, __y: u128) -> f32;
2876}
2877extern "C" {
2878    pub fn __nexttowardf(__x: f32, __y: u128) -> f32;
2879}
2880extern "C" {
2881    pub fn remainderf(__x: f32, __y: f32) -> f32;
2882}
2883extern "C" {
2884    pub fn __remainderf(__x: f32, __y: f32) -> f32;
2885}
2886extern "C" {
2887    pub fn scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32;
2888}
2889extern "C" {
2890    pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32;
2891}
2892extern "C" {
2893    pub fn ilogbf(__x: f32) -> ::std::os::raw::c_int;
2894}
2895extern "C" {
2896    pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int;
2897}
2898extern "C" {
2899    pub fn scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32;
2900}
2901extern "C" {
2902    pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32;
2903}
2904extern "C" {
2905    pub fn nearbyintf(__x: f32) -> f32;
2906}
2907extern "C" {
2908    pub fn __nearbyintf(__x: f32) -> f32;
2909}
2910extern "C" {
2911    pub fn roundf(__x: f32) -> f32;
2912}
2913extern "C" {
2914    pub fn __roundf(__x: f32) -> f32;
2915}
2916extern "C" {
2917    pub fn truncf(__x: f32) -> f32;
2918}
2919extern "C" {
2920    pub fn __truncf(__x: f32) -> f32;
2921}
2922extern "C" {
2923    pub fn remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32;
2924}
2925extern "C" {
2926    pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32;
2927}
2928extern "C" {
2929    pub fn lrintf(__x: f32) -> ::std::os::raw::c_long;
2930}
2931extern "C" {
2932    pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long;
2933}
2934extern "C" {
2935    pub fn llrintf(__x: f32) -> ::std::os::raw::c_longlong;
2936}
2937extern "C" {
2938    pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong;
2939}
2940extern "C" {
2941    pub fn lroundf(__x: f32) -> ::std::os::raw::c_long;
2942}
2943extern "C" {
2944    pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long;
2945}
2946extern "C" {
2947    pub fn llroundf(__x: f32) -> ::std::os::raw::c_longlong;
2948}
2949extern "C" {
2950    pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong;
2951}
2952extern "C" {
2953    pub fn fdimf(__x: f32, __y: f32) -> f32;
2954}
2955extern "C" {
2956    pub fn __fdimf(__x: f32, __y: f32) -> f32;
2957}
2958extern "C" {
2959    pub fn fmaxf(__x: f32, __y: f32) -> f32;
2960}
2961extern "C" {
2962    pub fn __fmaxf(__x: f32, __y: f32) -> f32;
2963}
2964extern "C" {
2965    pub fn fminf(__x: f32, __y: f32) -> f32;
2966}
2967extern "C" {
2968    pub fn __fminf(__x: f32, __y: f32) -> f32;
2969}
2970extern "C" {
2971    pub fn fmaf(__x: f32, __y: f32, __z: f32) -> f32;
2972}
2973extern "C" {
2974    pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32;
2975}
2976extern "C" {
2977    pub fn scalbf(__x: f32, __n: f32) -> f32;
2978}
2979extern "C" {
2980    pub fn __scalbf(__x: f32, __n: f32) -> f32;
2981}
2982extern "C" {
2983    pub fn __fpclassifyl(__value: u128) -> ::std::os::raw::c_int;
2984}
2985extern "C" {
2986    pub fn __signbitl(__value: u128) -> ::std::os::raw::c_int;
2987}
2988extern "C" {
2989    pub fn __isinfl(__value: u128) -> ::std::os::raw::c_int;
2990}
2991extern "C" {
2992    pub fn __finitel(__value: u128) -> ::std::os::raw::c_int;
2993}
2994extern "C" {
2995    pub fn __isnanl(__value: u128) -> ::std::os::raw::c_int;
2996}
2997extern "C" {
2998    pub fn __iseqsigl(__x: u128, __y: u128) -> ::std::os::raw::c_int;
2999}
3000extern "C" {
3001    pub fn __issignalingl(__value: u128) -> ::std::os::raw::c_int;
3002}
3003extern "C" {
3004    pub fn acosl(__x: u128) -> u128;
3005}
3006extern "C" {
3007    pub fn __acosl(__x: u128) -> u128;
3008}
3009extern "C" {
3010    pub fn asinl(__x: u128) -> u128;
3011}
3012extern "C" {
3013    pub fn __asinl(__x: u128) -> u128;
3014}
3015extern "C" {
3016    pub fn atanl(__x: u128) -> u128;
3017}
3018extern "C" {
3019    pub fn __atanl(__x: u128) -> u128;
3020}
3021extern "C" {
3022    pub fn atan2l(__y: u128, __x: u128) -> u128;
3023}
3024extern "C" {
3025    pub fn __atan2l(__y: u128, __x: u128) -> u128;
3026}
3027extern "C" {
3028    pub fn cosl(__x: u128) -> u128;
3029}
3030extern "C" {
3031    pub fn __cosl(__x: u128) -> u128;
3032}
3033extern "C" {
3034    pub fn sinl(__x: u128) -> u128;
3035}
3036extern "C" {
3037    pub fn __sinl(__x: u128) -> u128;
3038}
3039extern "C" {
3040    pub fn tanl(__x: u128) -> u128;
3041}
3042extern "C" {
3043    pub fn __tanl(__x: u128) -> u128;
3044}
3045extern "C" {
3046    pub fn coshl(__x: u128) -> u128;
3047}
3048extern "C" {
3049    pub fn __coshl(__x: u128) -> u128;
3050}
3051extern "C" {
3052    pub fn sinhl(__x: u128) -> u128;
3053}
3054extern "C" {
3055    pub fn __sinhl(__x: u128) -> u128;
3056}
3057extern "C" {
3058    pub fn tanhl(__x: u128) -> u128;
3059}
3060extern "C" {
3061    pub fn __tanhl(__x: u128) -> u128;
3062}
3063extern "C" {
3064    pub fn acoshl(__x: u128) -> u128;
3065}
3066extern "C" {
3067    pub fn __acoshl(__x: u128) -> u128;
3068}
3069extern "C" {
3070    pub fn asinhl(__x: u128) -> u128;
3071}
3072extern "C" {
3073    pub fn __asinhl(__x: u128) -> u128;
3074}
3075extern "C" {
3076    pub fn atanhl(__x: u128) -> u128;
3077}
3078extern "C" {
3079    pub fn __atanhl(__x: u128) -> u128;
3080}
3081extern "C" {
3082    pub fn expl(__x: u128) -> u128;
3083}
3084extern "C" {
3085    pub fn __expl(__x: u128) -> u128;
3086}
3087extern "C" {
3088    pub fn frexpl(__x: u128, __exponent: *mut ::std::os::raw::c_int) -> u128;
3089}
3090extern "C" {
3091    pub fn __frexpl(__x: u128, __exponent: *mut ::std::os::raw::c_int) -> u128;
3092}
3093extern "C" {
3094    pub fn ldexpl(__x: u128, __exponent: ::std::os::raw::c_int) -> u128;
3095}
3096extern "C" {
3097    pub fn __ldexpl(__x: u128, __exponent: ::std::os::raw::c_int) -> u128;
3098}
3099extern "C" {
3100    pub fn logl(__x: u128) -> u128;
3101}
3102extern "C" {
3103    pub fn __logl(__x: u128) -> u128;
3104}
3105extern "C" {
3106    pub fn log10l(__x: u128) -> u128;
3107}
3108extern "C" {
3109    pub fn __log10l(__x: u128) -> u128;
3110}
3111extern "C" {
3112    pub fn modfl(__x: u128, __iptr: *mut u128) -> u128;
3113}
3114extern "C" {
3115    pub fn __modfl(__x: u128, __iptr: *mut u128) -> u128;
3116}
3117extern "C" {
3118    pub fn expm1l(__x: u128) -> u128;
3119}
3120extern "C" {
3121    pub fn __expm1l(__x: u128) -> u128;
3122}
3123extern "C" {
3124    pub fn log1pl(__x: u128) -> u128;
3125}
3126extern "C" {
3127    pub fn __log1pl(__x: u128) -> u128;
3128}
3129extern "C" {
3130    pub fn logbl(__x: u128) -> u128;
3131}
3132extern "C" {
3133    pub fn __logbl(__x: u128) -> u128;
3134}
3135extern "C" {
3136    pub fn exp2l(__x: u128) -> u128;
3137}
3138extern "C" {
3139    pub fn __exp2l(__x: u128) -> u128;
3140}
3141extern "C" {
3142    pub fn log2l(__x: u128) -> u128;
3143}
3144extern "C" {
3145    pub fn __log2l(__x: u128) -> u128;
3146}
3147extern "C" {
3148    pub fn powl(__x: u128, __y: u128) -> u128;
3149}
3150extern "C" {
3151    pub fn __powl(__x: u128, __y: u128) -> u128;
3152}
3153extern "C" {
3154    pub fn sqrtl(__x: u128) -> u128;
3155}
3156extern "C" {
3157    pub fn __sqrtl(__x: u128) -> u128;
3158}
3159extern "C" {
3160    pub fn hypotl(__x: u128, __y: u128) -> u128;
3161}
3162extern "C" {
3163    pub fn __hypotl(__x: u128, __y: u128) -> u128;
3164}
3165extern "C" {
3166    pub fn cbrtl(__x: u128) -> u128;
3167}
3168extern "C" {
3169    pub fn __cbrtl(__x: u128) -> u128;
3170}
3171extern "C" {
3172    pub fn ceill(__x: u128) -> u128;
3173}
3174extern "C" {
3175    pub fn __ceill(__x: u128) -> u128;
3176}
3177extern "C" {
3178    pub fn fabsl(__x: u128) -> u128;
3179}
3180extern "C" {
3181    pub fn __fabsl(__x: u128) -> u128;
3182}
3183extern "C" {
3184    pub fn floorl(__x: u128) -> u128;
3185}
3186extern "C" {
3187    pub fn __floorl(__x: u128) -> u128;
3188}
3189extern "C" {
3190    pub fn fmodl(__x: u128, __y: u128) -> u128;
3191}
3192extern "C" {
3193    pub fn __fmodl(__x: u128, __y: u128) -> u128;
3194}
3195extern "C" {
3196    pub fn isinfl(__value: u128) -> ::std::os::raw::c_int;
3197}
3198extern "C" {
3199    pub fn finitel(__value: u128) -> ::std::os::raw::c_int;
3200}
3201extern "C" {
3202    pub fn dreml(__x: u128, __y: u128) -> u128;
3203}
3204extern "C" {
3205    pub fn __dreml(__x: u128, __y: u128) -> u128;
3206}
3207extern "C" {
3208    pub fn significandl(__x: u128) -> u128;
3209}
3210extern "C" {
3211    pub fn __significandl(__x: u128) -> u128;
3212}
3213extern "C" {
3214    pub fn copysignl(__x: u128, __y: u128) -> u128;
3215}
3216extern "C" {
3217    pub fn __copysignl(__x: u128, __y: u128) -> u128;
3218}
3219extern "C" {
3220    pub fn nanl(__tagb: *const ::std::os::raw::c_char) -> u128;
3221}
3222extern "C" {
3223    pub fn __nanl(__tagb: *const ::std::os::raw::c_char) -> u128;
3224}
3225extern "C" {
3226    pub fn isnanl(__value: u128) -> ::std::os::raw::c_int;
3227}
3228extern "C" {
3229    pub fn j0l(arg1: u128) -> u128;
3230}
3231extern "C" {
3232    pub fn __j0l(arg1: u128) -> u128;
3233}
3234extern "C" {
3235    pub fn j1l(arg1: u128) -> u128;
3236}
3237extern "C" {
3238    pub fn __j1l(arg1: u128) -> u128;
3239}
3240extern "C" {
3241    pub fn jnl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128;
3242}
3243extern "C" {
3244    pub fn __jnl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128;
3245}
3246extern "C" {
3247    pub fn y0l(arg1: u128) -> u128;
3248}
3249extern "C" {
3250    pub fn __y0l(arg1: u128) -> u128;
3251}
3252extern "C" {
3253    pub fn y1l(arg1: u128) -> u128;
3254}
3255extern "C" {
3256    pub fn __y1l(arg1: u128) -> u128;
3257}
3258extern "C" {
3259    pub fn ynl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128;
3260}
3261extern "C" {
3262    pub fn __ynl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128;
3263}
3264extern "C" {
3265    pub fn erfl(arg1: u128) -> u128;
3266}
3267extern "C" {
3268    pub fn __erfl(arg1: u128) -> u128;
3269}
3270extern "C" {
3271    pub fn erfcl(arg1: u128) -> u128;
3272}
3273extern "C" {
3274    pub fn __erfcl(arg1: u128) -> u128;
3275}
3276extern "C" {
3277    pub fn lgammal(arg1: u128) -> u128;
3278}
3279extern "C" {
3280    pub fn __lgammal(arg1: u128) -> u128;
3281}
3282extern "C" {
3283    pub fn tgammal(arg1: u128) -> u128;
3284}
3285extern "C" {
3286    pub fn __tgammal(arg1: u128) -> u128;
3287}
3288extern "C" {
3289    pub fn gammal(arg1: u128) -> u128;
3290}
3291extern "C" {
3292    pub fn __gammal(arg1: u128) -> u128;
3293}
3294extern "C" {
3295    pub fn lgammal_r(arg1: u128, __signgamp: *mut ::std::os::raw::c_int) -> u128;
3296}
3297extern "C" {
3298    pub fn __lgammal_r(arg1: u128, __signgamp: *mut ::std::os::raw::c_int) -> u128;
3299}
3300extern "C" {
3301    pub fn rintl(__x: u128) -> u128;
3302}
3303extern "C" {
3304    pub fn __rintl(__x: u128) -> u128;
3305}
3306extern "C" {
3307    pub fn nextafterl(__x: u128, __y: u128) -> u128;
3308}
3309extern "C" {
3310    pub fn __nextafterl(__x: u128, __y: u128) -> u128;
3311}
3312extern "C" {
3313    pub fn nexttowardl(__x: u128, __y: u128) -> u128;
3314}
3315extern "C" {
3316    pub fn __nexttowardl(__x: u128, __y: u128) -> u128;
3317}
3318extern "C" {
3319    pub fn remainderl(__x: u128, __y: u128) -> u128;
3320}
3321extern "C" {
3322    pub fn __remainderl(__x: u128, __y: u128) -> u128;
3323}
3324extern "C" {
3325    pub fn scalbnl(__x: u128, __n: ::std::os::raw::c_int) -> u128;
3326}
3327extern "C" {
3328    pub fn __scalbnl(__x: u128, __n: ::std::os::raw::c_int) -> u128;
3329}
3330extern "C" {
3331    pub fn ilogbl(__x: u128) -> ::std::os::raw::c_int;
3332}
3333extern "C" {
3334    pub fn __ilogbl(__x: u128) -> ::std::os::raw::c_int;
3335}
3336extern "C" {
3337    pub fn scalblnl(__x: u128, __n: ::std::os::raw::c_long) -> u128;
3338}
3339extern "C" {
3340    pub fn __scalblnl(__x: u128, __n: ::std::os::raw::c_long) -> u128;
3341}
3342extern "C" {
3343    pub fn nearbyintl(__x: u128) -> u128;
3344}
3345extern "C" {
3346    pub fn __nearbyintl(__x: u128) -> u128;
3347}
3348extern "C" {
3349    pub fn roundl(__x: u128) -> u128;
3350}
3351extern "C" {
3352    pub fn __roundl(__x: u128) -> u128;
3353}
3354extern "C" {
3355    pub fn truncl(__x: u128) -> u128;
3356}
3357extern "C" {
3358    pub fn __truncl(__x: u128) -> u128;
3359}
3360extern "C" {
3361    pub fn remquol(__x: u128, __y: u128, __quo: *mut ::std::os::raw::c_int) -> u128;
3362}
3363extern "C" {
3364    pub fn __remquol(__x: u128, __y: u128, __quo: *mut ::std::os::raw::c_int) -> u128;
3365}
3366extern "C" {
3367    pub fn lrintl(__x: u128) -> ::std::os::raw::c_long;
3368}
3369extern "C" {
3370    pub fn __lrintl(__x: u128) -> ::std::os::raw::c_long;
3371}
3372extern "C" {
3373    pub fn llrintl(__x: u128) -> ::std::os::raw::c_longlong;
3374}
3375extern "C" {
3376    pub fn __llrintl(__x: u128) -> ::std::os::raw::c_longlong;
3377}
3378extern "C" {
3379    pub fn lroundl(__x: u128) -> ::std::os::raw::c_long;
3380}
3381extern "C" {
3382    pub fn __lroundl(__x: u128) -> ::std::os::raw::c_long;
3383}
3384extern "C" {
3385    pub fn llroundl(__x: u128) -> ::std::os::raw::c_longlong;
3386}
3387extern "C" {
3388    pub fn __llroundl(__x: u128) -> ::std::os::raw::c_longlong;
3389}
3390extern "C" {
3391    pub fn fdiml(__x: u128, __y: u128) -> u128;
3392}
3393extern "C" {
3394    pub fn __fdiml(__x: u128, __y: u128) -> u128;
3395}
3396extern "C" {
3397    pub fn fmaxl(__x: u128, __y: u128) -> u128;
3398}
3399extern "C" {
3400    pub fn __fmaxl(__x: u128, __y: u128) -> u128;
3401}
3402extern "C" {
3403    pub fn fminl(__x: u128, __y: u128) -> u128;
3404}
3405extern "C" {
3406    pub fn __fminl(__x: u128, __y: u128) -> u128;
3407}
3408extern "C" {
3409    pub fn fmal(__x: u128, __y: u128, __z: u128) -> u128;
3410}
3411extern "C" {
3412    pub fn __fmal(__x: u128, __y: u128, __z: u128) -> u128;
3413}
3414extern "C" {
3415    pub fn scalbl(__x: u128, __n: u128) -> u128;
3416}
3417extern "C" {
3418    pub fn __scalbl(__x: u128, __n: u128) -> u128;
3419}
3420extern "C" {
3421    #[link_name = "\u{1}signgam"]
3422    pub static mut signgam: ::std::os::raw::c_int;
3423}
3424pub type wchar_t = ::std::os::raw::c_int;
3425#[repr(C)]
3426#[derive(Debug, Copy, Clone)]
3427pub struct div_t {
3428    pub quot: ::std::os::raw::c_int,
3429    pub rem: ::std::os::raw::c_int,
3430}
3431#[repr(C)]
3432#[derive(Debug, Copy, Clone)]
3433pub struct ldiv_t {
3434    pub quot: ::std::os::raw::c_long,
3435    pub rem: ::std::os::raw::c_long,
3436}
3437#[repr(C)]
3438#[derive(Debug, Copy, Clone)]
3439pub struct lldiv_t {
3440    pub quot: ::std::os::raw::c_longlong,
3441    pub rem: ::std::os::raw::c_longlong,
3442}
3443extern "C" {
3444    pub fn __ctype_get_mb_cur_max() -> usize;
3445}
3446extern "C" {
3447    pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64;
3448}
3449extern "C" {
3450    pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3451}
3452extern "C" {
3453    pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
3454}
3455extern "C" {
3456    pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
3457}
3458extern "C" {
3459    pub fn strtod(
3460        __nptr: *const ::std::os::raw::c_char,
3461        __endptr: *mut *mut ::std::os::raw::c_char,
3462    ) -> f64;
3463}
3464extern "C" {
3465    pub fn strtof(
3466        __nptr: *const ::std::os::raw::c_char,
3467        __endptr: *mut *mut ::std::os::raw::c_char,
3468    ) -> f32;
3469}
3470extern "C" {
3471    pub fn strtold(
3472        __nptr: *const ::std::os::raw::c_char,
3473        __endptr: *mut *mut ::std::os::raw::c_char,
3474    ) -> u128;
3475}
3476extern "C" {
3477    pub fn strtol(
3478        __nptr: *const ::std::os::raw::c_char,
3479        __endptr: *mut *mut ::std::os::raw::c_char,
3480        __base: ::std::os::raw::c_int,
3481    ) -> ::std::os::raw::c_long;
3482}
3483extern "C" {
3484    pub fn strtoul(
3485        __nptr: *const ::std::os::raw::c_char,
3486        __endptr: *mut *mut ::std::os::raw::c_char,
3487        __base: ::std::os::raw::c_int,
3488    ) -> ::std::os::raw::c_ulong;
3489}
3490extern "C" {
3491    pub fn strtoq(
3492        __nptr: *const ::std::os::raw::c_char,
3493        __endptr: *mut *mut ::std::os::raw::c_char,
3494        __base: ::std::os::raw::c_int,
3495    ) -> ::std::os::raw::c_longlong;
3496}
3497extern "C" {
3498    pub fn strtouq(
3499        __nptr: *const ::std::os::raw::c_char,
3500        __endptr: *mut *mut ::std::os::raw::c_char,
3501        __base: ::std::os::raw::c_int,
3502    ) -> ::std::os::raw::c_ulonglong;
3503}
3504extern "C" {
3505    pub fn strtoll(
3506        __nptr: *const ::std::os::raw::c_char,
3507        __endptr: *mut *mut ::std::os::raw::c_char,
3508        __base: ::std::os::raw::c_int,
3509    ) -> ::std::os::raw::c_longlong;
3510}
3511extern "C" {
3512    pub fn strtoull(
3513        __nptr: *const ::std::os::raw::c_char,
3514        __endptr: *mut *mut ::std::os::raw::c_char,
3515        __base: ::std::os::raw::c_int,
3516    ) -> ::std::os::raw::c_ulonglong;
3517}
3518extern "C" {
3519    pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char;
3520}
3521extern "C" {
3522    pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
3523}
3524pub type u_char = __u_char;
3525pub type u_short = __u_short;
3526pub type u_int = __u_int;
3527pub type u_long = __u_long;
3528pub type quad_t = __quad_t;
3529pub type u_quad_t = __u_quad_t;
3530pub type fsid_t = __fsid_t;
3531pub type loff_t = __loff_t;
3532pub type ino_t = __ino_t;
3533pub type dev_t = __dev_t;
3534pub type gid_t = __gid_t;
3535pub type mode_t = __mode_t;
3536pub type nlink_t = __nlink_t;
3537pub type uid_t = __uid_t;
3538pub type id_t = __id_t;
3539pub type daddr_t = __daddr_t;
3540pub type caddr_t = __caddr_t;
3541pub type key_t = __key_t;
3542pub type ulong = ::std::os::raw::c_ulong;
3543pub type ushort = ::std::os::raw::c_ushort;
3544pub type uint = ::std::os::raw::c_uint;
3545pub type u_int8_t = ::std::os::raw::c_uchar;
3546pub type u_int16_t = ::std::os::raw::c_ushort;
3547pub type u_int32_t = ::std::os::raw::c_uint;
3548pub type u_int64_t = ::std::os::raw::c_ulong;
3549pub type register_t = ::std::os::raw::c_long;
3550#[repr(C)]
3551#[derive(Debug, Copy, Clone)]
3552pub struct __sigset_t {
3553    pub __val: [::std::os::raw::c_ulong; 16usize],
3554}
3555pub type sigset_t = __sigset_t;
3556#[repr(C)]
3557#[derive(Debug, Copy, Clone)]
3558pub struct timeval {
3559    pub tv_sec: __time_t,
3560    pub tv_usec: __suseconds_t,
3561}
3562pub type suseconds_t = __suseconds_t;
3563pub type __fd_mask = ::std::os::raw::c_long;
3564#[repr(C)]
3565#[derive(Debug, Copy, Clone)]
3566pub struct fd_set {
3567    pub __fds_bits: [__fd_mask; 16usize],
3568}
3569pub type fd_mask = __fd_mask;
3570extern "C" {
3571    pub fn select(
3572        __nfds: ::std::os::raw::c_int,
3573        __readfds: *mut fd_set,
3574        __writefds: *mut fd_set,
3575        __exceptfds: *mut fd_set,
3576        __timeout: *mut timeval,
3577    ) -> ::std::os::raw::c_int;
3578}
3579extern "C" {
3580    pub fn pselect(
3581        __nfds: ::std::os::raw::c_int,
3582        __readfds: *mut fd_set,
3583        __writefds: *mut fd_set,
3584        __exceptfds: *mut fd_set,
3585        __timeout: *const timespec,
3586        __sigmask: *const __sigset_t,
3587    ) -> ::std::os::raw::c_int;
3588}
3589pub type blksize_t = __blksize_t;
3590pub type blkcnt_t = __blkcnt_t;
3591pub type fsblkcnt_t = __fsblkcnt_t;
3592pub type fsfilcnt_t = __fsfilcnt_t;
3593#[repr(C)]
3594#[derive(Debug, Copy, Clone)]
3595pub struct __pthread_rwlock_arch_t {
3596    pub __readers: ::std::os::raw::c_uint,
3597    pub __writers: ::std::os::raw::c_uint,
3598    pub __wrphase_futex: ::std::os::raw::c_uint,
3599    pub __writers_futex: ::std::os::raw::c_uint,
3600    pub __pad3: ::std::os::raw::c_uint,
3601    pub __pad4: ::std::os::raw::c_uint,
3602    pub __cur_writer: ::std::os::raw::c_int,
3603    pub __shared: ::std::os::raw::c_int,
3604    pub __rwelision: ::std::os::raw::c_schar,
3605    pub __pad1: [::std::os::raw::c_uchar; 7usize],
3606    pub __pad2: ::std::os::raw::c_ulong,
3607    pub __flags: ::std::os::raw::c_uint,
3608}
3609#[repr(C)]
3610#[derive(Debug, Copy, Clone)]
3611pub struct __pthread_internal_list {
3612    pub __prev: *mut __pthread_internal_list,
3613    pub __next: *mut __pthread_internal_list,
3614}
3615pub type __pthread_list_t = __pthread_internal_list;
3616#[repr(C)]
3617#[derive(Debug, Copy, Clone)]
3618pub struct __pthread_mutex_s {
3619    pub __lock: ::std::os::raw::c_int,
3620    pub __count: ::std::os::raw::c_uint,
3621    pub __owner: ::std::os::raw::c_int,
3622    pub __nusers: ::std::os::raw::c_uint,
3623    pub __kind: ::std::os::raw::c_int,
3624    pub __spins: ::std::os::raw::c_short,
3625    pub __elision: ::std::os::raw::c_short,
3626    pub __list: __pthread_list_t,
3627}
3628#[repr(C)]
3629#[derive(Copy, Clone)]
3630pub struct __pthread_cond_s {
3631    pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1,
3632    pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2,
3633    pub __g_refs: [::std::os::raw::c_uint; 2usize],
3634    pub __g_size: [::std::os::raw::c_uint; 2usize],
3635    pub __g1_orig_size: ::std::os::raw::c_uint,
3636    pub __wrefs: ::std::os::raw::c_uint,
3637    pub __g_signals: [::std::os::raw::c_uint; 2usize],
3638}
3639#[repr(C)]
3640#[derive(Copy, Clone)]
3641pub union __pthread_cond_s__bindgen_ty_1 {
3642    pub __wseq: ::std::os::raw::c_ulonglong,
3643    pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1,
3644    _bindgen_union_align: u64,
3645}
3646#[repr(C)]
3647#[derive(Debug, Copy, Clone)]
3648pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 {
3649    pub __low: ::std::os::raw::c_uint,
3650    pub __high: ::std::os::raw::c_uint,
3651}
3652#[repr(C)]
3653#[derive(Copy, Clone)]
3654pub union __pthread_cond_s__bindgen_ty_2 {
3655    pub __g1_start: ::std::os::raw::c_ulonglong,
3656    pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1,
3657    _bindgen_union_align: u64,
3658}
3659#[repr(C)]
3660#[derive(Debug, Copy, Clone)]
3661pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 {
3662    pub __low: ::std::os::raw::c_uint,
3663    pub __high: ::std::os::raw::c_uint,
3664}
3665pub type pthread_t = ::std::os::raw::c_ulong;
3666#[repr(C)]
3667#[derive(Copy, Clone)]
3668pub union pthread_mutexattr_t {
3669    pub __size: [::std::os::raw::c_char; 4usize],
3670    pub __align: ::std::os::raw::c_int,
3671    _bindgen_union_align: u32,
3672}
3673#[repr(C)]
3674#[derive(Copy, Clone)]
3675pub union pthread_condattr_t {
3676    pub __size: [::std::os::raw::c_char; 4usize],
3677    pub __align: ::std::os::raw::c_int,
3678    _bindgen_union_align: u32,
3679}
3680pub type pthread_key_t = ::std::os::raw::c_uint;
3681pub type pthread_once_t = ::std::os::raw::c_int;
3682#[repr(C)]
3683#[derive(Copy, Clone)]
3684pub union pthread_attr_t {
3685    pub __size: [::std::os::raw::c_char; 56usize],
3686    pub __align: ::std::os::raw::c_long,
3687    _bindgen_union_align: [u64; 7usize],
3688}
3689#[repr(C)]
3690#[derive(Copy, Clone)]
3691pub union pthread_mutex_t {
3692    pub __data: __pthread_mutex_s,
3693    pub __size: [::std::os::raw::c_char; 40usize],
3694    pub __align: ::std::os::raw::c_long,
3695    _bindgen_union_align: [u64; 5usize],
3696}
3697#[repr(C)]
3698#[derive(Copy, Clone)]
3699pub union pthread_cond_t {
3700    pub __data: __pthread_cond_s,
3701    pub __size: [::std::os::raw::c_char; 48usize],
3702    pub __align: ::std::os::raw::c_longlong,
3703    _bindgen_union_align: [u64; 6usize],
3704}
3705#[repr(C)]
3706#[derive(Copy, Clone)]
3707pub union pthread_rwlock_t {
3708    pub __data: __pthread_rwlock_arch_t,
3709    pub __size: [::std::os::raw::c_char; 56usize],
3710    pub __align: ::std::os::raw::c_long,
3711    _bindgen_union_align: [u64; 7usize],
3712}
3713#[repr(C)]
3714#[derive(Copy, Clone)]
3715pub union pthread_rwlockattr_t {
3716    pub __size: [::std::os::raw::c_char; 8usize],
3717    pub __align: ::std::os::raw::c_long,
3718    _bindgen_union_align: u64,
3719}
3720pub type pthread_spinlock_t = ::std::os::raw::c_int;
3721#[repr(C)]
3722#[derive(Copy, Clone)]
3723pub union pthread_barrier_t {
3724    pub __size: [::std::os::raw::c_char; 32usize],
3725    pub __align: ::std::os::raw::c_long,
3726    _bindgen_union_align: [u64; 4usize],
3727}
3728#[repr(C)]
3729#[derive(Copy, Clone)]
3730pub union pthread_barrierattr_t {
3731    pub __size: [::std::os::raw::c_char; 4usize],
3732    pub __align: ::std::os::raw::c_int,
3733    _bindgen_union_align: u32,
3734}
3735extern "C" {
3736    pub fn random() -> ::std::os::raw::c_long;
3737}
3738extern "C" {
3739    pub fn srandom(__seed: ::std::os::raw::c_uint);
3740}
3741extern "C" {
3742    pub fn initstate(
3743        __seed: ::std::os::raw::c_uint,
3744        __statebuf: *mut ::std::os::raw::c_char,
3745        __statelen: usize,
3746    ) -> *mut ::std::os::raw::c_char;
3747}
3748extern "C" {
3749    pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3750}
3751#[repr(C)]
3752#[derive(Debug, Copy, Clone)]
3753pub struct random_data {
3754    pub fptr: *mut i32,
3755    pub rptr: *mut i32,
3756    pub state: *mut i32,
3757    pub rand_type: ::std::os::raw::c_int,
3758    pub rand_deg: ::std::os::raw::c_int,
3759    pub rand_sep: ::std::os::raw::c_int,
3760    pub end_ptr: *mut i32,
3761}
3762extern "C" {
3763    pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int;
3764}
3765extern "C" {
3766    pub fn srandom_r(
3767        __seed: ::std::os::raw::c_uint,
3768        __buf: *mut random_data,
3769    ) -> ::std::os::raw::c_int;
3770}
3771extern "C" {
3772    pub fn initstate_r(
3773        __seed: ::std::os::raw::c_uint,
3774        __statebuf: *mut ::std::os::raw::c_char,
3775        __statelen: usize,
3776        __buf: *mut random_data,
3777    ) -> ::std::os::raw::c_int;
3778}
3779extern "C" {
3780    pub fn setstate_r(
3781        __statebuf: *mut ::std::os::raw::c_char,
3782        __buf: *mut random_data,
3783    ) -> ::std::os::raw::c_int;
3784}
3785extern "C" {
3786    pub fn rand() -> ::std::os::raw::c_int;
3787}
3788extern "C" {
3789    pub fn srand(__seed: ::std::os::raw::c_uint);
3790}
3791extern "C" {
3792    pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
3793}
3794extern "C" {
3795    pub fn drand48() -> f64;
3796}
3797extern "C" {
3798    pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64;
3799}
3800extern "C" {
3801    pub fn lrand48() -> ::std::os::raw::c_long;
3802}
3803extern "C" {
3804    pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
3805}
3806extern "C" {
3807    pub fn mrand48() -> ::std::os::raw::c_long;
3808}
3809extern "C" {
3810    pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
3811}
3812extern "C" {
3813    pub fn srand48(__seedval: ::std::os::raw::c_long);
3814}
3815extern "C" {
3816    pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort;
3817}
3818extern "C" {
3819    pub fn lcong48(__param: *mut ::std::os::raw::c_ushort);
3820}
3821#[repr(C)]
3822#[derive(Debug, Copy, Clone)]
3823pub struct drand48_data {
3824    pub __x: [::std::os::raw::c_ushort; 3usize],
3825    pub __old_x: [::std::os::raw::c_ushort; 3usize],
3826    pub __c: ::std::os::raw::c_ushort,
3827    pub __init: ::std::os::raw::c_ushort,
3828    pub __a: ::std::os::raw::c_ulonglong,
3829}
3830extern "C" {
3831    pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int;
3832}
3833extern "C" {
3834    pub fn erand48_r(
3835        __xsubi: *mut ::std::os::raw::c_ushort,
3836        __buffer: *mut drand48_data,
3837        __result: *mut f64,
3838    ) -> ::std::os::raw::c_int;
3839}
3840extern "C" {
3841    pub fn lrand48_r(
3842        __buffer: *mut drand48_data,
3843        __result: *mut ::std::os::raw::c_long,
3844    ) -> ::std::os::raw::c_int;
3845}
3846extern "C" {
3847    pub fn nrand48_r(
3848        __xsubi: *mut ::std::os::raw::c_ushort,
3849        __buffer: *mut drand48_data,
3850        __result: *mut ::std::os::raw::c_long,
3851    ) -> ::std::os::raw::c_int;
3852}
3853extern "C" {
3854    pub fn mrand48_r(
3855        __buffer: *mut drand48_data,
3856        __result: *mut ::std::os::raw::c_long,
3857    ) -> ::std::os::raw::c_int;
3858}
3859extern "C" {
3860    pub fn jrand48_r(
3861        __xsubi: *mut ::std::os::raw::c_ushort,
3862        __buffer: *mut drand48_data,
3863        __result: *mut ::std::os::raw::c_long,
3864    ) -> ::std::os::raw::c_int;
3865}
3866extern "C" {
3867    pub fn srand48_r(
3868        __seedval: ::std::os::raw::c_long,
3869        __buffer: *mut drand48_data,
3870    ) -> ::std::os::raw::c_int;
3871}
3872extern "C" {
3873    pub fn seed48_r(
3874        __seed16v: *mut ::std::os::raw::c_ushort,
3875        __buffer: *mut drand48_data,
3876    ) -> ::std::os::raw::c_int;
3877}
3878extern "C" {
3879    pub fn lcong48_r(
3880        __param: *mut ::std::os::raw::c_ushort,
3881        __buffer: *mut drand48_data,
3882    ) -> ::std::os::raw::c_int;
3883}
3884extern "C" {
3885    pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
3886}
3887extern "C" {
3888    pub fn calloc(
3889        __nmemb: ::std::os::raw::c_ulong,
3890        __size: ::std::os::raw::c_ulong,
3891    ) -> *mut ::std::os::raw::c_void;
3892}
3893extern "C" {
3894    pub fn realloc(
3895        __ptr: *mut ::std::os::raw::c_void,
3896        __size: ::std::os::raw::c_ulong,
3897    ) -> *mut ::std::os::raw::c_void;
3898}
3899extern "C" {
3900    pub fn reallocarray(
3901        __ptr: *mut ::std::os::raw::c_void,
3902        __nmemb: usize,
3903        __size: usize,
3904    ) -> *mut ::std::os::raw::c_void;
3905}
3906extern "C" {
3907    pub fn free(__ptr: *mut ::std::os::raw::c_void);
3908}
3909extern "C" {
3910    pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
3911}
3912extern "C" {
3913    pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void;
3914}
3915extern "C" {
3916    pub fn posix_memalign(
3917        __memptr: *mut *mut ::std::os::raw::c_void,
3918        __alignment: usize,
3919        __size: usize,
3920    ) -> ::std::os::raw::c_int;
3921}
3922extern "C" {
3923    pub fn aligned_alloc(__alignment: usize, __size: usize) -> *mut ::std::os::raw::c_void;
3924}
3925extern "C" {
3926    pub fn abort();
3927}
3928extern "C" {
3929    pub fn atexit(__func: ::std::option::Option<unsafe extern "C" fn()>) -> ::std::os::raw::c_int;
3930}
3931extern "C" {
3932    pub fn at_quick_exit(
3933        __func: ::std::option::Option<unsafe extern "C" fn()>,
3934    ) -> ::std::os::raw::c_int;
3935}
3936extern "C" {
3937    pub fn on_exit(
3938        __func: ::std::option::Option<
3939            unsafe extern "C" fn(__func: ::std::os::raw::c_int, __arg: *mut ::std::os::raw::c_void),
3940        >,
3941        __arg: *mut ::std::os::raw::c_void,
3942    ) -> ::std::os::raw::c_int;
3943}
3944extern "C" {
3945    pub fn exit(__status: ::std::os::raw::c_int);
3946}
3947extern "C" {
3948    pub fn quick_exit(__status: ::std::os::raw::c_int);
3949}
3950extern "C" {
3951    pub fn _Exit(__status: ::std::os::raw::c_int);
3952}
3953extern "C" {
3954    pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3955}
3956extern "C" {
3957    pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3958}
3959extern "C" {
3960    pub fn setenv(
3961        __name: *const ::std::os::raw::c_char,
3962        __value: *const ::std::os::raw::c_char,
3963        __replace: ::std::os::raw::c_int,
3964    ) -> ::std::os::raw::c_int;
3965}
3966extern "C" {
3967    pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3968}
3969extern "C" {
3970    pub fn clearenv() -> ::std::os::raw::c_int;
3971}
3972extern "C" {
3973    pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3974}
3975extern "C" {
3976    pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3977}
3978extern "C" {
3979    pub fn mkstemps(
3980        __template: *mut ::std::os::raw::c_char,
3981        __suffixlen: ::std::os::raw::c_int,
3982    ) -> ::std::os::raw::c_int;
3983}
3984extern "C" {
3985    pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3986}
3987extern "C" {
3988    pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3989}
3990extern "C" {
3991    pub fn realpath(
3992        __name: *const ::std::os::raw::c_char,
3993        __resolved: *mut ::std::os::raw::c_char,
3994    ) -> *mut ::std::os::raw::c_char;
3995}
3996pub type __compar_fn_t = ::std::option::Option<
3997    unsafe extern "C" fn(
3998        arg1: *const ::std::os::raw::c_void,
3999        arg2: *const ::std::os::raw::c_void,
4000    ) -> ::std::os::raw::c_int,
4001>;
4002extern "C" {
4003    pub fn bsearch(
4004        __key: *const ::std::os::raw::c_void,
4005        __base: *const ::std::os::raw::c_void,
4006        __nmemb: usize,
4007        __size: usize,
4008        __compar: __compar_fn_t,
4009    ) -> *mut ::std::os::raw::c_void;
4010}
4011extern "C" {
4012    pub fn qsort(
4013        __base: *mut ::std::os::raw::c_void,
4014        __nmemb: usize,
4015        __size: usize,
4016        __compar: __compar_fn_t,
4017    );
4018}
4019extern "C" {
4020    pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4021}
4022extern "C" {
4023    pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
4024}
4025extern "C" {
4026    pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
4027}
4028extern "C" {
4029    pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t;
4030}
4031extern "C" {
4032    pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t;
4033}
4034extern "C" {
4035    pub fn lldiv(
4036        __numer: ::std::os::raw::c_longlong,
4037        __denom: ::std::os::raw::c_longlong,
4038    ) -> lldiv_t;
4039}
4040extern "C" {
4041    pub fn ecvt(
4042        __value: f64,
4043        __ndigit: ::std::os::raw::c_int,
4044        __decpt: *mut ::std::os::raw::c_int,
4045        __sign: *mut ::std::os::raw::c_int,
4046    ) -> *mut ::std::os::raw::c_char;
4047}
4048extern "C" {
4049    pub fn fcvt(
4050        __value: f64,
4051        __ndigit: ::std::os::raw::c_int,
4052        __decpt: *mut ::std::os::raw::c_int,
4053        __sign: *mut ::std::os::raw::c_int,
4054    ) -> *mut ::std::os::raw::c_char;
4055}
4056extern "C" {
4057    pub fn gcvt(
4058        __value: f64,
4059        __ndigit: ::std::os::raw::c_int,
4060        __buf: *mut ::std::os::raw::c_char,
4061    ) -> *mut ::std::os::raw::c_char;
4062}
4063extern "C" {
4064    pub fn qecvt(
4065        __value: u128,
4066        __ndigit: ::std::os::raw::c_int,
4067        __decpt: *mut ::std::os::raw::c_int,
4068        __sign: *mut ::std::os::raw::c_int,
4069    ) -> *mut ::std::os::raw::c_char;
4070}
4071extern "C" {
4072    pub fn qfcvt(
4073        __value: u128,
4074        __ndigit: ::std::os::raw::c_int,
4075        __decpt: *mut ::std::os::raw::c_int,
4076        __sign: *mut ::std::os::raw::c_int,
4077    ) -> *mut ::std::os::raw::c_char;
4078}
4079extern "C" {
4080    pub fn qgcvt(
4081        __value: u128,
4082        __ndigit: ::std::os::raw::c_int,
4083        __buf: *mut ::std::os::raw::c_char,
4084    ) -> *mut ::std::os::raw::c_char;
4085}
4086extern "C" {
4087    pub fn ecvt_r(
4088        __value: f64,
4089        __ndigit: ::std::os::raw::c_int,
4090        __decpt: *mut ::std::os::raw::c_int,
4091        __sign: *mut ::std::os::raw::c_int,
4092        __buf: *mut ::std::os::raw::c_char,
4093        __len: usize,
4094    ) -> ::std::os::raw::c_int;
4095}
4096extern "C" {
4097    pub fn fcvt_r(
4098        __value: f64,
4099        __ndigit: ::std::os::raw::c_int,
4100        __decpt: *mut ::std::os::raw::c_int,
4101        __sign: *mut ::std::os::raw::c_int,
4102        __buf: *mut ::std::os::raw::c_char,
4103        __len: usize,
4104    ) -> ::std::os::raw::c_int;
4105}
4106extern "C" {
4107    pub fn qecvt_r(
4108        __value: u128,
4109        __ndigit: ::std::os::raw::c_int,
4110        __decpt: *mut ::std::os::raw::c_int,
4111        __sign: *mut ::std::os::raw::c_int,
4112        __buf: *mut ::std::os::raw::c_char,
4113        __len: usize,
4114    ) -> ::std::os::raw::c_int;
4115}
4116extern "C" {
4117    pub fn qfcvt_r(
4118        __value: u128,
4119        __ndigit: ::std::os::raw::c_int,
4120        __decpt: *mut ::std::os::raw::c_int,
4121        __sign: *mut ::std::os::raw::c_int,
4122        __buf: *mut ::std::os::raw::c_char,
4123        __len: usize,
4124    ) -> ::std::os::raw::c_int;
4125}
4126extern "C" {
4127    pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int;
4128}
4129extern "C" {
4130    pub fn mbtowc(
4131        __pwc: *mut wchar_t,
4132        __s: *const ::std::os::raw::c_char,
4133        __n: usize,
4134    ) -> ::std::os::raw::c_int;
4135}
4136extern "C" {
4137    pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int;
4138}
4139extern "C" {
4140    pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize;
4141}
4142extern "C" {
4143    pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize;
4144}
4145extern "C" {
4146    pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
4147}
4148extern "C" {
4149    pub fn getsubopt(
4150        __optionp: *mut *mut ::std::os::raw::c_char,
4151        __tokens: *const *mut ::std::os::raw::c_char,
4152        __valuep: *mut *mut ::std::os::raw::c_char,
4153    ) -> ::std::os::raw::c_int;
4154}
4155extern "C" {
4156    pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int)
4157        -> ::std::os::raw::c_int;
4158}
4159extern "C" {
4160    pub fn memcpy(
4161        __dest: *mut ::std::os::raw::c_void,
4162        __src: *const ::std::os::raw::c_void,
4163        __n: ::std::os::raw::c_ulong,
4164    ) -> *mut ::std::os::raw::c_void;
4165}
4166extern "C" {
4167    pub fn memmove(
4168        __dest: *mut ::std::os::raw::c_void,
4169        __src: *const ::std::os::raw::c_void,
4170        __n: ::std::os::raw::c_ulong,
4171    ) -> *mut ::std::os::raw::c_void;
4172}
4173extern "C" {
4174    pub fn memccpy(
4175        __dest: *mut ::std::os::raw::c_void,
4176        __src: *const ::std::os::raw::c_void,
4177        __c: ::std::os::raw::c_int,
4178        __n: usize,
4179    ) -> *mut ::std::os::raw::c_void;
4180}
4181extern "C" {
4182    pub fn memset(
4183        __s: *mut ::std::os::raw::c_void,
4184        __c: ::std::os::raw::c_int,
4185        __n: ::std::os::raw::c_ulong,
4186    ) -> *mut ::std::os::raw::c_void;
4187}
4188extern "C" {
4189    pub fn memcmp(
4190        __s1: *const ::std::os::raw::c_void,
4191        __s2: *const ::std::os::raw::c_void,
4192        __n: ::std::os::raw::c_ulong,
4193    ) -> ::std::os::raw::c_int;
4194}
4195extern "C" {
4196    pub fn memchr(
4197        __s: *const ::std::os::raw::c_void,
4198        __c: ::std::os::raw::c_int,
4199        __n: ::std::os::raw::c_ulong,
4200    ) -> *mut ::std::os::raw::c_void;
4201}
4202extern "C" {
4203    pub fn strcpy(
4204        __dest: *mut ::std::os::raw::c_char,
4205        __src: *const ::std::os::raw::c_char,
4206    ) -> *mut ::std::os::raw::c_char;
4207}
4208extern "C" {
4209    pub fn strncpy(
4210        __dest: *mut ::std::os::raw::c_char,
4211        __src: *const ::std::os::raw::c_char,
4212        __n: ::std::os::raw::c_ulong,
4213    ) -> *mut ::std::os::raw::c_char;
4214}
4215extern "C" {
4216    pub fn strcat(
4217        __dest: *mut ::std::os::raw::c_char,
4218        __src: *const ::std::os::raw::c_char,
4219    ) -> *mut ::std::os::raw::c_char;
4220}
4221extern "C" {
4222    pub fn strncat(
4223        __dest: *mut ::std::os::raw::c_char,
4224        __src: *const ::std::os::raw::c_char,
4225        __n: ::std::os::raw::c_ulong,
4226    ) -> *mut ::std::os::raw::c_char;
4227}
4228extern "C" {
4229    pub fn strcmp(
4230        __s1: *const ::std::os::raw::c_char,
4231        __s2: *const ::std::os::raw::c_char,
4232    ) -> ::std::os::raw::c_int;
4233}
4234extern "C" {
4235    pub fn strncmp(
4236        __s1: *const ::std::os::raw::c_char,
4237        __s2: *const ::std::os::raw::c_char,
4238        __n: ::std::os::raw::c_ulong,
4239    ) -> ::std::os::raw::c_int;
4240}
4241extern "C" {
4242    pub fn strcoll(
4243        __s1: *const ::std::os::raw::c_char,
4244        __s2: *const ::std::os::raw::c_char,
4245    ) -> ::std::os::raw::c_int;
4246}
4247extern "C" {
4248    pub fn strxfrm(
4249        __dest: *mut ::std::os::raw::c_char,
4250        __src: *const ::std::os::raw::c_char,
4251        __n: ::std::os::raw::c_ulong,
4252    ) -> ::std::os::raw::c_ulong;
4253}
4254extern "C" {
4255    pub fn strcoll_l(
4256        __s1: *const ::std::os::raw::c_char,
4257        __s2: *const ::std::os::raw::c_char,
4258        __l: locale_t,
4259    ) -> ::std::os::raw::c_int;
4260}
4261extern "C" {
4262    pub fn strxfrm_l(
4263        __dest: *mut ::std::os::raw::c_char,
4264        __src: *const ::std::os::raw::c_char,
4265        __n: usize,
4266        __l: locale_t,
4267    ) -> usize;
4268}
4269extern "C" {
4270    pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
4271}
4272extern "C" {
4273    pub fn strndup(
4274        __string: *const ::std::os::raw::c_char,
4275        __n: ::std::os::raw::c_ulong,
4276    ) -> *mut ::std::os::raw::c_char;
4277}
4278extern "C" {
4279    pub fn strchr(
4280        __s: *const ::std::os::raw::c_char,
4281        __c: ::std::os::raw::c_int,
4282    ) -> *mut ::std::os::raw::c_char;
4283}
4284extern "C" {
4285    pub fn strrchr(
4286        __s: *const ::std::os::raw::c_char,
4287        __c: ::std::os::raw::c_int,
4288    ) -> *mut ::std::os::raw::c_char;
4289}
4290extern "C" {
4291    pub fn strcspn(
4292        __s: *const ::std::os::raw::c_char,
4293        __reject: *const ::std::os::raw::c_char,
4294    ) -> ::std::os::raw::c_ulong;
4295}
4296extern "C" {
4297    pub fn strspn(
4298        __s: *const ::std::os::raw::c_char,
4299        __accept: *const ::std::os::raw::c_char,
4300    ) -> ::std::os::raw::c_ulong;
4301}
4302extern "C" {
4303    pub fn strpbrk(
4304        __s: *const ::std::os::raw::c_char,
4305        __accept: *const ::std::os::raw::c_char,
4306    ) -> *mut ::std::os::raw::c_char;
4307}
4308extern "C" {
4309    pub fn strstr(
4310        __haystack: *const ::std::os::raw::c_char,
4311        __needle: *const ::std::os::raw::c_char,
4312    ) -> *mut ::std::os::raw::c_char;
4313}
4314extern "C" {
4315    pub fn strtok(
4316        __s: *mut ::std::os::raw::c_char,
4317        __delim: *const ::std::os::raw::c_char,
4318    ) -> *mut ::std::os::raw::c_char;
4319}
4320extern "C" {
4321    pub fn __strtok_r(
4322        __s: *mut ::std::os::raw::c_char,
4323        __delim: *const ::std::os::raw::c_char,
4324        __save_ptr: *mut *mut ::std::os::raw::c_char,
4325    ) -> *mut ::std::os::raw::c_char;
4326}
4327extern "C" {
4328    pub fn strtok_r(
4329        __s: *mut ::std::os::raw::c_char,
4330        __delim: *const ::std::os::raw::c_char,
4331        __save_ptr: *mut *mut ::std::os::raw::c_char,
4332    ) -> *mut ::std::os::raw::c_char;
4333}
4334extern "C" {
4335    pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong;
4336}
4337extern "C" {
4338    pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize;
4339}
4340extern "C" {
4341    pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
4342}
4343extern "C" {
4344    #[link_name = "\u{1}__xpg_strerror_r"]
4345    pub fn strerror_r(
4346        __errnum: ::std::os::raw::c_int,
4347        __buf: *mut ::std::os::raw::c_char,
4348        __buflen: usize,
4349    ) -> ::std::os::raw::c_int;
4350}
4351extern "C" {
4352    pub fn strerror_l(
4353        __errnum: ::std::os::raw::c_int,
4354        __l: locale_t,
4355    ) -> *mut ::std::os::raw::c_char;
4356}
4357extern "C" {
4358    pub fn bcmp(
4359        __s1: *const ::std::os::raw::c_void,
4360        __s2: *const ::std::os::raw::c_void,
4361        __n: usize,
4362    ) -> ::std::os::raw::c_int;
4363}
4364extern "C" {
4365    pub fn bcopy(
4366        __src: *const ::std::os::raw::c_void,
4367        __dest: *mut ::std::os::raw::c_void,
4368        __n: usize,
4369    );
4370}
4371extern "C" {
4372    pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong);
4373}
4374extern "C" {
4375    pub fn index(
4376        __s: *const ::std::os::raw::c_char,
4377        __c: ::std::os::raw::c_int,
4378    ) -> *mut ::std::os::raw::c_char;
4379}
4380extern "C" {
4381    pub fn rindex(
4382        __s: *const ::std::os::raw::c_char,
4383        __c: ::std::os::raw::c_int,
4384    ) -> *mut ::std::os::raw::c_char;
4385}
4386extern "C" {
4387    pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4388}
4389extern "C" {
4390    pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
4391}
4392extern "C" {
4393    pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int;
4394}
4395extern "C" {
4396    pub fn strcasecmp(
4397        __s1: *const ::std::os::raw::c_char,
4398        __s2: *const ::std::os::raw::c_char,
4399    ) -> ::std::os::raw::c_int;
4400}
4401extern "C" {
4402    pub fn strncasecmp(
4403        __s1: *const ::std::os::raw::c_char,
4404        __s2: *const ::std::os::raw::c_char,
4405        __n: ::std::os::raw::c_ulong,
4406    ) -> ::std::os::raw::c_int;
4407}
4408extern "C" {
4409    pub fn strcasecmp_l(
4410        __s1: *const ::std::os::raw::c_char,
4411        __s2: *const ::std::os::raw::c_char,
4412        __loc: locale_t,
4413    ) -> ::std::os::raw::c_int;
4414}
4415extern "C" {
4416    pub fn strncasecmp_l(
4417        __s1: *const ::std::os::raw::c_char,
4418        __s2: *const ::std::os::raw::c_char,
4419        __n: usize,
4420        __loc: locale_t,
4421    ) -> ::std::os::raw::c_int;
4422}
4423extern "C" {
4424    pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize);
4425}
4426extern "C" {
4427    pub fn strsep(
4428        __stringp: *mut *mut ::std::os::raw::c_char,
4429        __delim: *const ::std::os::raw::c_char,
4430    ) -> *mut ::std::os::raw::c_char;
4431}
4432extern "C" {
4433    pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
4434}
4435extern "C" {
4436    pub fn __stpcpy(
4437        __dest: *mut ::std::os::raw::c_char,
4438        __src: *const ::std::os::raw::c_char,
4439    ) -> *mut ::std::os::raw::c_char;
4440}
4441extern "C" {
4442    pub fn stpcpy(
4443        __dest: *mut ::std::os::raw::c_char,
4444        __src: *const ::std::os::raw::c_char,
4445    ) -> *mut ::std::os::raw::c_char;
4446}
4447extern "C" {
4448    pub fn __stpncpy(
4449        __dest: *mut ::std::os::raw::c_char,
4450        __src: *const ::std::os::raw::c_char,
4451        __n: usize,
4452    ) -> *mut ::std::os::raw::c_char;
4453}
4454extern "C" {
4455    pub fn stpncpy(
4456        __dest: *mut ::std::os::raw::c_char,
4457        __src: *const ::std::os::raw::c_char,
4458        __n: ::std::os::raw::c_ulong,
4459    ) -> *mut ::std::os::raw::c_char;
4460}
4461extern "C" {
4462    pub fn av_log2(v: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
4463}
4464extern "C" {
4465    pub fn av_log2_16bit(v: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
4466}
4467#[repr(C)]
4468#[repr(align(16))]
4469#[derive(Debug, Copy, Clone)]
4470pub struct max_align_t {
4471    pub __clang_max_align_nonce1: ::std::os::raw::c_longlong,
4472    pub __bindgen_padding_0: u64,
4473    pub __clang_max_align_nonce2: u128,
4474}
4475extern "C" {
4476    pub fn av_strerror(
4477        errnum: ::std::os::raw::c_int,
4478        errbuf: *mut ::std::os::raw::c_char,
4479        errbuf_size: usize,
4480    ) -> ::std::os::raw::c_int;
4481}
4482extern "C" {
4483    pub fn av_malloc(size: usize) -> *mut ::std::os::raw::c_void;
4484}
4485extern "C" {
4486    pub fn av_mallocz(size: usize) -> *mut ::std::os::raw::c_void;
4487}
4488extern "C" {
4489    pub fn av_malloc_array(nmemb: usize, size: usize) -> *mut ::std::os::raw::c_void;
4490}
4491extern "C" {
4492    pub fn av_mallocz_array(nmemb: usize, size: usize) -> *mut ::std::os::raw::c_void;
4493}
4494extern "C" {
4495    pub fn av_calloc(nmemb: usize, size: usize) -> *mut ::std::os::raw::c_void;
4496}
4497extern "C" {
4498    pub fn av_realloc(ptr: *mut ::std::os::raw::c_void, size: usize)
4499        -> *mut ::std::os::raw::c_void;
4500}
4501extern "C" {
4502    pub fn av_reallocp(ptr: *mut ::std::os::raw::c_void, size: usize) -> ::std::os::raw::c_int;
4503}
4504extern "C" {
4505    pub fn av_realloc_f(
4506        ptr: *mut ::std::os::raw::c_void,
4507        nelem: usize,
4508        elsize: usize,
4509    ) -> *mut ::std::os::raw::c_void;
4510}
4511extern "C" {
4512    pub fn av_realloc_array(
4513        ptr: *mut ::std::os::raw::c_void,
4514        nmemb: usize,
4515        size: usize,
4516    ) -> *mut ::std::os::raw::c_void;
4517}
4518extern "C" {
4519    pub fn av_reallocp_array(
4520        ptr: *mut ::std::os::raw::c_void,
4521        nmemb: usize,
4522        size: usize,
4523    ) -> ::std::os::raw::c_int;
4524}
4525extern "C" {
4526    pub fn av_fast_realloc(
4527        ptr: *mut ::std::os::raw::c_void,
4528        size: *mut ::std::os::raw::c_uint,
4529        min_size: usize,
4530    ) -> *mut ::std::os::raw::c_void;
4531}
4532extern "C" {
4533    pub fn av_fast_malloc(
4534        ptr: *mut ::std::os::raw::c_void,
4535        size: *mut ::std::os::raw::c_uint,
4536        min_size: usize,
4537    );
4538}
4539extern "C" {
4540    pub fn av_fast_mallocz(
4541        ptr: *mut ::std::os::raw::c_void,
4542        size: *mut ::std::os::raw::c_uint,
4543        min_size: usize,
4544    );
4545}
4546extern "C" {
4547    pub fn av_free(ptr: *mut ::std::os::raw::c_void);
4548}
4549extern "C" {
4550    pub fn av_freep(ptr: *mut ::std::os::raw::c_void);
4551}
4552extern "C" {
4553    pub fn av_strdup(s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
4554}
4555extern "C" {
4556    pub fn av_strndup(s: *const ::std::os::raw::c_char, len: usize) -> *mut ::std::os::raw::c_char;
4557}
4558extern "C" {
4559    pub fn av_memdup(p: *const ::std::os::raw::c_void, size: usize) -> *mut ::std::os::raw::c_void;
4560}
4561extern "C" {
4562    pub fn av_memcpy_backptr(dst: *mut u8, back: ::std::os::raw::c_int, cnt: ::std::os::raw::c_int);
4563}
4564extern "C" {
4565    pub fn av_dynarray_add(
4566        tab_ptr: *mut ::std::os::raw::c_void,
4567        nb_ptr: *mut ::std::os::raw::c_int,
4568        elem: *mut ::std::os::raw::c_void,
4569    );
4570}
4571extern "C" {
4572    pub fn av_dynarray_add_nofree(
4573        tab_ptr: *mut ::std::os::raw::c_void,
4574        nb_ptr: *mut ::std::os::raw::c_int,
4575        elem: *mut ::std::os::raw::c_void,
4576    ) -> ::std::os::raw::c_int;
4577}
4578extern "C" {
4579    pub fn av_dynarray2_add(
4580        tab_ptr: *mut *mut ::std::os::raw::c_void,
4581        nb_ptr: *mut ::std::os::raw::c_int,
4582        elem_size: usize,
4583        elem_data: *const u8,
4584    ) -> *mut ::std::os::raw::c_void;
4585}
4586extern "C" {
4587    pub fn av_max_alloc(max: usize);
4588}
4589#[repr(C)]
4590#[derive(Debug, Copy, Clone)]
4591pub struct AVRational {
4592    pub num: ::std::os::raw::c_int,
4593    pub den: ::std::os::raw::c_int,
4594}
4595extern "C" {
4596    pub fn av_reduce(
4597        dst_num: *mut ::std::os::raw::c_int,
4598        dst_den: *mut ::std::os::raw::c_int,
4599        num: i64,
4600        den: i64,
4601        max: i64,
4602    ) -> ::std::os::raw::c_int;
4603}
4604extern "C" {
4605    pub fn av_mul_q(b: AVRational, c: AVRational) -> AVRational;
4606}
4607extern "C" {
4608    pub fn av_div_q(b: AVRational, c: AVRational) -> AVRational;
4609}
4610extern "C" {
4611    pub fn av_add_q(b: AVRational, c: AVRational) -> AVRational;
4612}
4613extern "C" {
4614    pub fn av_sub_q(b: AVRational, c: AVRational) -> AVRational;
4615}
4616extern "C" {
4617    pub fn av_d2q(d: f64, max: ::std::os::raw::c_int) -> AVRational;
4618}
4619extern "C" {
4620    pub fn av_nearer_q(q: AVRational, q1: AVRational, q2: AVRational) -> ::std::os::raw::c_int;
4621}
4622extern "C" {
4623    pub fn av_find_nearest_q_idx(q: AVRational, q_list: *const AVRational)
4624        -> ::std::os::raw::c_int;
4625}
4626extern "C" {
4627    pub fn av_q2intfloat(q: AVRational) -> u32;
4628}
4629#[repr(C)]
4630#[derive(Copy, Clone)]
4631pub union av_intfloat32 {
4632    pub i: u32,
4633    pub f: f32,
4634    _bindgen_union_align: u32,
4635}
4636#[repr(C)]
4637#[derive(Copy, Clone)]
4638pub union av_intfloat64 {
4639    pub i: u64,
4640    pub f: f64,
4641    _bindgen_union_align: u64,
4642}
4643pub const AVRounding_AV_ROUND_ZERO: AVRounding = 0;
4644pub const AVRounding_AV_ROUND_INF: AVRounding = 1;
4645pub const AVRounding_AV_ROUND_DOWN: AVRounding = 2;
4646pub const AVRounding_AV_ROUND_UP: AVRounding = 3;
4647pub const AVRounding_AV_ROUND_NEAR_INF: AVRounding = 5;
4648pub const AVRounding_AV_ROUND_PASS_MINMAX: AVRounding = 8192;
4649pub type AVRounding = u32;
4650extern "C" {
4651    pub fn av_gcd(a: i64, b: i64) -> i64;
4652}
4653extern "C" {
4654    pub fn av_rescale(a: i64, b: i64, c: i64) -> i64;
4655}
4656extern "C" {
4657    pub fn av_rescale_rnd(a: i64, b: i64, c: i64, rnd: AVRounding) -> i64;
4658}
4659extern "C" {
4660    pub fn av_rescale_q(a: i64, bq: AVRational, cq: AVRational) -> i64;
4661}
4662extern "C" {
4663    pub fn av_rescale_q_rnd(a: i64, bq: AVRational, cq: AVRational, rnd: AVRounding) -> i64;
4664}
4665extern "C" {
4666    pub fn av_compare_ts(
4667        ts_a: i64,
4668        tb_a: AVRational,
4669        ts_b: i64,
4670        tb_b: AVRational,
4671    ) -> ::std::os::raw::c_int;
4672}
4673extern "C" {
4674    pub fn av_compare_mod(a: u64, b: u64, mod_: u64) -> i64;
4675}
4676extern "C" {
4677    pub fn av_rescale_delta(
4678        in_tb: AVRational,
4679        in_ts: i64,
4680        fs_tb: AVRational,
4681        duration: ::std::os::raw::c_int,
4682        last: *mut i64,
4683        out_tb: AVRational,
4684    ) -> i64;
4685}
4686extern "C" {
4687    pub fn av_add_stable(ts_tb: AVRational, ts: i64, inc_tb: AVRational, inc: i64) -> i64;
4688}
4689pub const AVClassCategory_AV_CLASS_CATEGORY_NA: AVClassCategory = 0;
4690pub const AVClassCategory_AV_CLASS_CATEGORY_INPUT: AVClassCategory = 1;
4691pub const AVClassCategory_AV_CLASS_CATEGORY_OUTPUT: AVClassCategory = 2;
4692pub const AVClassCategory_AV_CLASS_CATEGORY_MUXER: AVClassCategory = 3;
4693pub const AVClassCategory_AV_CLASS_CATEGORY_DEMUXER: AVClassCategory = 4;
4694pub const AVClassCategory_AV_CLASS_CATEGORY_ENCODER: AVClassCategory = 5;
4695pub const AVClassCategory_AV_CLASS_CATEGORY_DECODER: AVClassCategory = 6;
4696pub const AVClassCategory_AV_CLASS_CATEGORY_FILTER: AVClassCategory = 7;
4697pub const AVClassCategory_AV_CLASS_CATEGORY_BITSTREAM_FILTER: AVClassCategory = 8;
4698pub const AVClassCategory_AV_CLASS_CATEGORY_SWSCALER: AVClassCategory = 9;
4699pub const AVClassCategory_AV_CLASS_CATEGORY_SWRESAMPLER: AVClassCategory = 10;
4700pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT: AVClassCategory = 40;
4701pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT: AVClassCategory = 41;
4702pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT: AVClassCategory = 42;
4703pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT: AVClassCategory = 43;
4704pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_OUTPUT: AVClassCategory = 44;
4705pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_INPUT: AVClassCategory = 45;
4706pub const AVClassCategory_AV_CLASS_CATEGORY_NB: AVClassCategory = 46;
4707pub type AVClassCategory = u32;
4708#[repr(C)]
4709#[derive(Debug, Copy, Clone)]
4710pub struct AVOptionRanges {
4711    _unused: [u8; 0],
4712}
4713#[repr(C)]
4714#[derive(Debug, Copy, Clone)]
4715pub struct AVClass {
4716    pub class_name: *const ::std::os::raw::c_char,
4717    pub item_name: ::std::option::Option<
4718        unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> *const ::std::os::raw::c_char,
4719    >,
4720    pub option: *mut AVOption,
4721    pub version: ::std::os::raw::c_int,
4722    pub log_level_offset_offset: ::std::os::raw::c_int,
4723    pub parent_log_context_offset: ::std::os::raw::c_int,
4724    pub child_next: ::std::option::Option<
4725        unsafe extern "C" fn(
4726            obj: *mut ::std::os::raw::c_void,
4727            prev: *mut ::std::os::raw::c_void,
4728        ) -> *mut ::std::os::raw::c_void,
4729    >,
4730    pub child_class_next:
4731        ::std::option::Option<unsafe extern "C" fn(prev: *const AVClass) -> *const AVClass>,
4732    pub category: AVClassCategory,
4733    pub get_category: ::std::option::Option<
4734        unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> AVClassCategory,
4735    >,
4736    pub query_ranges: ::std::option::Option<
4737        unsafe extern "C" fn(
4738            arg1: *mut *mut AVOptionRanges,
4739            obj: *mut ::std::os::raw::c_void,
4740            key: *const ::std::os::raw::c_char,
4741            flags: ::std::os::raw::c_int,
4742        ) -> ::std::os::raw::c_int,
4743    >,
4744}
4745extern "C" {
4746    pub fn av_log(
4747        avcl: *mut ::std::os::raw::c_void,
4748        level: ::std::os::raw::c_int,
4749        fmt: *const ::std::os::raw::c_char,
4750        ...
4751    );
4752}
4753extern "C" {
4754    pub fn av_vlog(
4755        avcl: *mut ::std::os::raw::c_void,
4756        level: ::std::os::raw::c_int,
4757        fmt: *const ::std::os::raw::c_char,
4758        vl: *mut __va_list_tag,
4759    );
4760}
4761extern "C" {
4762    pub fn av_log_get_level() -> ::std::os::raw::c_int;
4763}
4764extern "C" {
4765    pub fn av_log_set_level(level: ::std::os::raw::c_int);
4766}
4767extern "C" {
4768    pub fn av_log_set_callback(
4769        callback: ::std::option::Option<
4770            unsafe extern "C" fn(
4771                callback: *mut ::std::os::raw::c_void,
4772                arg1: ::std::os::raw::c_int,
4773                arg2: *const ::std::os::raw::c_char,
4774                arg3: *mut __va_list_tag,
4775            ),
4776        >,
4777    );
4778}
4779extern "C" {
4780    pub fn av_log_default_callback(
4781        avcl: *mut ::std::os::raw::c_void,
4782        level: ::std::os::raw::c_int,
4783        fmt: *const ::std::os::raw::c_char,
4784        vl: *mut __va_list_tag,
4785    );
4786}
4787extern "C" {
4788    pub fn av_default_item_name(ctx: *mut ::std::os::raw::c_void) -> *const ::std::os::raw::c_char;
4789}
4790extern "C" {
4791    pub fn av_default_get_category(ptr: *mut ::std::os::raw::c_void) -> AVClassCategory;
4792}
4793extern "C" {
4794    pub fn av_log_format_line(
4795        ptr: *mut ::std::os::raw::c_void,
4796        level: ::std::os::raw::c_int,
4797        fmt: *const ::std::os::raw::c_char,
4798        vl: *mut __va_list_tag,
4799        line: *mut ::std::os::raw::c_char,
4800        line_size: ::std::os::raw::c_int,
4801        print_prefix: *mut ::std::os::raw::c_int,
4802    );
4803}
4804extern "C" {
4805    pub fn av_log_format_line2(
4806        ptr: *mut ::std::os::raw::c_void,
4807        level: ::std::os::raw::c_int,
4808        fmt: *const ::std::os::raw::c_char,
4809        vl: *mut __va_list_tag,
4810        line: *mut ::std::os::raw::c_char,
4811        line_size: ::std::os::raw::c_int,
4812        print_prefix: *mut ::std::os::raw::c_int,
4813    ) -> ::std::os::raw::c_int;
4814}
4815extern "C" {
4816    pub fn av_log_set_flags(arg: ::std::os::raw::c_int);
4817}
4818extern "C" {
4819    pub fn av_log_get_flags() -> ::std::os::raw::c_int;
4820}
4821pub const AVPixelFormat_AV_PIX_FMT_NONE: AVPixelFormat = -1;
4822pub const AVPixelFormat_AV_PIX_FMT_YUV420P: AVPixelFormat = 0;
4823pub const AVPixelFormat_AV_PIX_FMT_YUYV422: AVPixelFormat = 1;
4824pub const AVPixelFormat_AV_PIX_FMT_RGB24: AVPixelFormat = 2;
4825pub const AVPixelFormat_AV_PIX_FMT_BGR24: AVPixelFormat = 3;
4826pub const AVPixelFormat_AV_PIX_FMT_YUV422P: AVPixelFormat = 4;
4827pub const AVPixelFormat_AV_PIX_FMT_YUV444P: AVPixelFormat = 5;
4828pub const AVPixelFormat_AV_PIX_FMT_YUV410P: AVPixelFormat = 6;
4829pub const AVPixelFormat_AV_PIX_FMT_YUV411P: AVPixelFormat = 7;
4830pub const AVPixelFormat_AV_PIX_FMT_GRAY8: AVPixelFormat = 8;
4831pub const AVPixelFormat_AV_PIX_FMT_MONOWHITE: AVPixelFormat = 9;
4832pub const AVPixelFormat_AV_PIX_FMT_MONOBLACK: AVPixelFormat = 10;
4833pub const AVPixelFormat_AV_PIX_FMT_PAL8: AVPixelFormat = 11;
4834pub const AVPixelFormat_AV_PIX_FMT_YUVJ420P: AVPixelFormat = 12;
4835pub const AVPixelFormat_AV_PIX_FMT_YUVJ422P: AVPixelFormat = 13;
4836pub const AVPixelFormat_AV_PIX_FMT_YUVJ444P: AVPixelFormat = 14;
4837pub const AVPixelFormat_AV_PIX_FMT_UYVY422: AVPixelFormat = 15;
4838pub const AVPixelFormat_AV_PIX_FMT_UYYVYY411: AVPixelFormat = 16;
4839pub const AVPixelFormat_AV_PIX_FMT_BGR8: AVPixelFormat = 17;
4840pub const AVPixelFormat_AV_PIX_FMT_BGR4: AVPixelFormat = 18;
4841pub const AVPixelFormat_AV_PIX_FMT_BGR4_BYTE: AVPixelFormat = 19;
4842pub const AVPixelFormat_AV_PIX_FMT_RGB8: AVPixelFormat = 20;
4843pub const AVPixelFormat_AV_PIX_FMT_RGB4: AVPixelFormat = 21;
4844pub const AVPixelFormat_AV_PIX_FMT_RGB4_BYTE: AVPixelFormat = 22;
4845pub const AVPixelFormat_AV_PIX_FMT_NV12: AVPixelFormat = 23;
4846pub const AVPixelFormat_AV_PIX_FMT_NV21: AVPixelFormat = 24;
4847pub const AVPixelFormat_AV_PIX_FMT_ARGB: AVPixelFormat = 25;
4848pub const AVPixelFormat_AV_PIX_FMT_RGBA: AVPixelFormat = 26;
4849pub const AVPixelFormat_AV_PIX_FMT_ABGR: AVPixelFormat = 27;
4850pub const AVPixelFormat_AV_PIX_FMT_BGRA: AVPixelFormat = 28;
4851pub const AVPixelFormat_AV_PIX_FMT_GRAY16BE: AVPixelFormat = 29;
4852pub const AVPixelFormat_AV_PIX_FMT_GRAY16LE: AVPixelFormat = 30;
4853pub const AVPixelFormat_AV_PIX_FMT_YUV440P: AVPixelFormat = 31;
4854pub const AVPixelFormat_AV_PIX_FMT_YUVJ440P: AVPixelFormat = 32;
4855pub const AVPixelFormat_AV_PIX_FMT_YUVA420P: AVPixelFormat = 33;
4856pub const AVPixelFormat_AV_PIX_FMT_RGB48BE: AVPixelFormat = 34;
4857pub const AVPixelFormat_AV_PIX_FMT_RGB48LE: AVPixelFormat = 35;
4858pub const AVPixelFormat_AV_PIX_FMT_RGB565BE: AVPixelFormat = 36;
4859pub const AVPixelFormat_AV_PIX_FMT_RGB565LE: AVPixelFormat = 37;
4860pub const AVPixelFormat_AV_PIX_FMT_RGB555BE: AVPixelFormat = 38;
4861pub const AVPixelFormat_AV_PIX_FMT_RGB555LE: AVPixelFormat = 39;
4862pub const AVPixelFormat_AV_PIX_FMT_BGR565BE: AVPixelFormat = 40;
4863pub const AVPixelFormat_AV_PIX_FMT_BGR565LE: AVPixelFormat = 41;
4864pub const AVPixelFormat_AV_PIX_FMT_BGR555BE: AVPixelFormat = 42;
4865pub const AVPixelFormat_AV_PIX_FMT_BGR555LE: AVPixelFormat = 43;
4866pub const AVPixelFormat_AV_PIX_FMT_VAAPI_MOCO: AVPixelFormat = 44;
4867pub const AVPixelFormat_AV_PIX_FMT_VAAPI_IDCT: AVPixelFormat = 45;
4868pub const AVPixelFormat_AV_PIX_FMT_VAAPI_VLD: AVPixelFormat = 46;
4869pub const AVPixelFormat_AV_PIX_FMT_VAAPI: AVPixelFormat = 46;
4870pub const AVPixelFormat_AV_PIX_FMT_YUV420P16LE: AVPixelFormat = 47;
4871pub const AVPixelFormat_AV_PIX_FMT_YUV420P16BE: AVPixelFormat = 48;
4872pub const AVPixelFormat_AV_PIX_FMT_YUV422P16LE: AVPixelFormat = 49;
4873pub const AVPixelFormat_AV_PIX_FMT_YUV422P16BE: AVPixelFormat = 50;
4874pub const AVPixelFormat_AV_PIX_FMT_YUV444P16LE: AVPixelFormat = 51;
4875pub const AVPixelFormat_AV_PIX_FMT_YUV444P16BE: AVPixelFormat = 52;
4876pub const AVPixelFormat_AV_PIX_FMT_DXVA2_VLD: AVPixelFormat = 53;
4877pub const AVPixelFormat_AV_PIX_FMT_RGB444LE: AVPixelFormat = 54;
4878pub const AVPixelFormat_AV_PIX_FMT_RGB444BE: AVPixelFormat = 55;
4879pub const AVPixelFormat_AV_PIX_FMT_BGR444LE: AVPixelFormat = 56;
4880pub const AVPixelFormat_AV_PIX_FMT_BGR444BE: AVPixelFormat = 57;
4881pub const AVPixelFormat_AV_PIX_FMT_YA8: AVPixelFormat = 58;
4882pub const AVPixelFormat_AV_PIX_FMT_Y400A: AVPixelFormat = 58;
4883pub const AVPixelFormat_AV_PIX_FMT_GRAY8A: AVPixelFormat = 58;
4884pub const AVPixelFormat_AV_PIX_FMT_BGR48BE: AVPixelFormat = 59;
4885pub const AVPixelFormat_AV_PIX_FMT_BGR48LE: AVPixelFormat = 60;
4886pub const AVPixelFormat_AV_PIX_FMT_YUV420P9BE: AVPixelFormat = 61;
4887pub const AVPixelFormat_AV_PIX_FMT_YUV420P9LE: AVPixelFormat = 62;
4888pub const AVPixelFormat_AV_PIX_FMT_YUV420P10BE: AVPixelFormat = 63;
4889pub const AVPixelFormat_AV_PIX_FMT_YUV420P10LE: AVPixelFormat = 64;
4890pub const AVPixelFormat_AV_PIX_FMT_YUV422P10BE: AVPixelFormat = 65;
4891pub const AVPixelFormat_AV_PIX_FMT_YUV422P10LE: AVPixelFormat = 66;
4892pub const AVPixelFormat_AV_PIX_FMT_YUV444P9BE: AVPixelFormat = 67;
4893pub const AVPixelFormat_AV_PIX_FMT_YUV444P9LE: AVPixelFormat = 68;
4894pub const AVPixelFormat_AV_PIX_FMT_YUV444P10BE: AVPixelFormat = 69;
4895pub const AVPixelFormat_AV_PIX_FMT_YUV444P10LE: AVPixelFormat = 70;
4896pub const AVPixelFormat_AV_PIX_FMT_YUV422P9BE: AVPixelFormat = 71;
4897pub const AVPixelFormat_AV_PIX_FMT_YUV422P9LE: AVPixelFormat = 72;
4898pub const AVPixelFormat_AV_PIX_FMT_GBRP: AVPixelFormat = 73;
4899pub const AVPixelFormat_AV_PIX_FMT_GBR24P: AVPixelFormat = 73;
4900pub const AVPixelFormat_AV_PIX_FMT_GBRP9BE: AVPixelFormat = 74;
4901pub const AVPixelFormat_AV_PIX_FMT_GBRP9LE: AVPixelFormat = 75;
4902pub const AVPixelFormat_AV_PIX_FMT_GBRP10BE: AVPixelFormat = 76;
4903pub const AVPixelFormat_AV_PIX_FMT_GBRP10LE: AVPixelFormat = 77;
4904pub const AVPixelFormat_AV_PIX_FMT_GBRP16BE: AVPixelFormat = 78;
4905pub const AVPixelFormat_AV_PIX_FMT_GBRP16LE: AVPixelFormat = 79;
4906pub const AVPixelFormat_AV_PIX_FMT_YUVA422P: AVPixelFormat = 80;
4907pub const AVPixelFormat_AV_PIX_FMT_YUVA444P: AVPixelFormat = 81;
4908pub const AVPixelFormat_AV_PIX_FMT_YUVA420P9BE: AVPixelFormat = 82;
4909pub const AVPixelFormat_AV_PIX_FMT_YUVA420P9LE: AVPixelFormat = 83;
4910pub const AVPixelFormat_AV_PIX_FMT_YUVA422P9BE: AVPixelFormat = 84;
4911pub const AVPixelFormat_AV_PIX_FMT_YUVA422P9LE: AVPixelFormat = 85;
4912pub const AVPixelFormat_AV_PIX_FMT_YUVA444P9BE: AVPixelFormat = 86;
4913pub const AVPixelFormat_AV_PIX_FMT_YUVA444P9LE: AVPixelFormat = 87;
4914pub const AVPixelFormat_AV_PIX_FMT_YUVA420P10BE: AVPixelFormat = 88;
4915pub const AVPixelFormat_AV_PIX_FMT_YUVA420P10LE: AVPixelFormat = 89;
4916pub const AVPixelFormat_AV_PIX_FMT_YUVA422P10BE: AVPixelFormat = 90;
4917pub const AVPixelFormat_AV_PIX_FMT_YUVA422P10LE: AVPixelFormat = 91;
4918pub const AVPixelFormat_AV_PIX_FMT_YUVA444P10BE: AVPixelFormat = 92;
4919pub const AVPixelFormat_AV_PIX_FMT_YUVA444P10LE: AVPixelFormat = 93;
4920pub const AVPixelFormat_AV_PIX_FMT_YUVA420P16BE: AVPixelFormat = 94;
4921pub const AVPixelFormat_AV_PIX_FMT_YUVA420P16LE: AVPixelFormat = 95;
4922pub const AVPixelFormat_AV_PIX_FMT_YUVA422P16BE: AVPixelFormat = 96;
4923pub const AVPixelFormat_AV_PIX_FMT_YUVA422P16LE: AVPixelFormat = 97;
4924pub const AVPixelFormat_AV_PIX_FMT_YUVA444P16BE: AVPixelFormat = 98;
4925pub const AVPixelFormat_AV_PIX_FMT_YUVA444P16LE: AVPixelFormat = 99;
4926pub const AVPixelFormat_AV_PIX_FMT_VDPAU: AVPixelFormat = 100;
4927pub const AVPixelFormat_AV_PIX_FMT_XYZ12LE: AVPixelFormat = 101;
4928pub const AVPixelFormat_AV_PIX_FMT_XYZ12BE: AVPixelFormat = 102;
4929pub const AVPixelFormat_AV_PIX_FMT_NV16: AVPixelFormat = 103;
4930pub const AVPixelFormat_AV_PIX_FMT_NV20LE: AVPixelFormat = 104;
4931pub const AVPixelFormat_AV_PIX_FMT_NV20BE: AVPixelFormat = 105;
4932pub const AVPixelFormat_AV_PIX_FMT_RGBA64BE: AVPixelFormat = 106;
4933pub const AVPixelFormat_AV_PIX_FMT_RGBA64LE: AVPixelFormat = 107;
4934pub const AVPixelFormat_AV_PIX_FMT_BGRA64BE: AVPixelFormat = 108;
4935pub const AVPixelFormat_AV_PIX_FMT_BGRA64LE: AVPixelFormat = 109;
4936pub const AVPixelFormat_AV_PIX_FMT_YVYU422: AVPixelFormat = 110;
4937pub const AVPixelFormat_AV_PIX_FMT_YA16BE: AVPixelFormat = 111;
4938pub const AVPixelFormat_AV_PIX_FMT_YA16LE: AVPixelFormat = 112;
4939pub const AVPixelFormat_AV_PIX_FMT_GBRAP: AVPixelFormat = 113;
4940pub const AVPixelFormat_AV_PIX_FMT_GBRAP16BE: AVPixelFormat = 114;
4941pub const AVPixelFormat_AV_PIX_FMT_GBRAP16LE: AVPixelFormat = 115;
4942pub const AVPixelFormat_AV_PIX_FMT_QSV: AVPixelFormat = 116;
4943pub const AVPixelFormat_AV_PIX_FMT_MMAL: AVPixelFormat = 117;
4944pub const AVPixelFormat_AV_PIX_FMT_D3D11VA_VLD: AVPixelFormat = 118;
4945pub const AVPixelFormat_AV_PIX_FMT_CUDA: AVPixelFormat = 119;
4946pub const AVPixelFormat_AV_PIX_FMT_0RGB: AVPixelFormat = 120;
4947pub const AVPixelFormat_AV_PIX_FMT_RGB0: AVPixelFormat = 121;
4948pub const AVPixelFormat_AV_PIX_FMT_0BGR: AVPixelFormat = 122;
4949pub const AVPixelFormat_AV_PIX_FMT_BGR0: AVPixelFormat = 123;
4950pub const AVPixelFormat_AV_PIX_FMT_YUV420P12BE: AVPixelFormat = 124;
4951pub const AVPixelFormat_AV_PIX_FMT_YUV420P12LE: AVPixelFormat = 125;
4952pub const AVPixelFormat_AV_PIX_FMT_YUV420P14BE: AVPixelFormat = 126;
4953pub const AVPixelFormat_AV_PIX_FMT_YUV420P14LE: AVPixelFormat = 127;
4954pub const AVPixelFormat_AV_PIX_FMT_YUV422P12BE: AVPixelFormat = 128;
4955pub const AVPixelFormat_AV_PIX_FMT_YUV422P12LE: AVPixelFormat = 129;
4956pub const AVPixelFormat_AV_PIX_FMT_YUV422P14BE: AVPixelFormat = 130;
4957pub const AVPixelFormat_AV_PIX_FMT_YUV422P14LE: AVPixelFormat = 131;
4958pub const AVPixelFormat_AV_PIX_FMT_YUV444P12BE: AVPixelFormat = 132;
4959pub const AVPixelFormat_AV_PIX_FMT_YUV444P12LE: AVPixelFormat = 133;
4960pub const AVPixelFormat_AV_PIX_FMT_YUV444P14BE: AVPixelFormat = 134;
4961pub const AVPixelFormat_AV_PIX_FMT_YUV444P14LE: AVPixelFormat = 135;
4962pub const AVPixelFormat_AV_PIX_FMT_GBRP12BE: AVPixelFormat = 136;
4963pub const AVPixelFormat_AV_PIX_FMT_GBRP12LE: AVPixelFormat = 137;
4964pub const AVPixelFormat_AV_PIX_FMT_GBRP14BE: AVPixelFormat = 138;
4965pub const AVPixelFormat_AV_PIX_FMT_GBRP14LE: AVPixelFormat = 139;
4966pub const AVPixelFormat_AV_PIX_FMT_YUVJ411P: AVPixelFormat = 140;
4967pub const AVPixelFormat_AV_PIX_FMT_BAYER_BGGR8: AVPixelFormat = 141;
4968pub const AVPixelFormat_AV_PIX_FMT_BAYER_RGGB8: AVPixelFormat = 142;
4969pub const AVPixelFormat_AV_PIX_FMT_BAYER_GBRG8: AVPixelFormat = 143;
4970pub const AVPixelFormat_AV_PIX_FMT_BAYER_GRBG8: AVPixelFormat = 144;
4971pub const AVPixelFormat_AV_PIX_FMT_BAYER_BGGR16LE: AVPixelFormat = 145;
4972pub const AVPixelFormat_AV_PIX_FMT_BAYER_BGGR16BE: AVPixelFormat = 146;
4973pub const AVPixelFormat_AV_PIX_FMT_BAYER_RGGB16LE: AVPixelFormat = 147;
4974pub const AVPixelFormat_AV_PIX_FMT_BAYER_RGGB16BE: AVPixelFormat = 148;
4975pub const AVPixelFormat_AV_PIX_FMT_BAYER_GBRG16LE: AVPixelFormat = 149;
4976pub const AVPixelFormat_AV_PIX_FMT_BAYER_GBRG16BE: AVPixelFormat = 150;
4977pub const AVPixelFormat_AV_PIX_FMT_BAYER_GRBG16LE: AVPixelFormat = 151;
4978pub const AVPixelFormat_AV_PIX_FMT_BAYER_GRBG16BE: AVPixelFormat = 152;
4979pub const AVPixelFormat_AV_PIX_FMT_XVMC: AVPixelFormat = 153;
4980pub const AVPixelFormat_AV_PIX_FMT_YUV440P10LE: AVPixelFormat = 154;
4981pub const AVPixelFormat_AV_PIX_FMT_YUV440P10BE: AVPixelFormat = 155;
4982pub const AVPixelFormat_AV_PIX_FMT_YUV440P12LE: AVPixelFormat = 156;
4983pub const AVPixelFormat_AV_PIX_FMT_YUV440P12BE: AVPixelFormat = 157;
4984pub const AVPixelFormat_AV_PIX_FMT_AYUV64LE: AVPixelFormat = 158;
4985pub const AVPixelFormat_AV_PIX_FMT_AYUV64BE: AVPixelFormat = 159;
4986pub const AVPixelFormat_AV_PIX_FMT_VIDEOTOOLBOX: AVPixelFormat = 160;
4987pub const AVPixelFormat_AV_PIX_FMT_P010LE: AVPixelFormat = 161;
4988pub const AVPixelFormat_AV_PIX_FMT_P010BE: AVPixelFormat = 162;
4989pub const AVPixelFormat_AV_PIX_FMT_GBRAP12BE: AVPixelFormat = 163;
4990pub const AVPixelFormat_AV_PIX_FMT_GBRAP12LE: AVPixelFormat = 164;
4991pub const AVPixelFormat_AV_PIX_FMT_GBRAP10BE: AVPixelFormat = 165;
4992pub const AVPixelFormat_AV_PIX_FMT_GBRAP10LE: AVPixelFormat = 166;
4993pub const AVPixelFormat_AV_PIX_FMT_MEDIACODEC: AVPixelFormat = 167;
4994pub const AVPixelFormat_AV_PIX_FMT_GRAY12BE: AVPixelFormat = 168;
4995pub const AVPixelFormat_AV_PIX_FMT_GRAY12LE: AVPixelFormat = 169;
4996pub const AVPixelFormat_AV_PIX_FMT_GRAY10BE: AVPixelFormat = 170;
4997pub const AVPixelFormat_AV_PIX_FMT_GRAY10LE: AVPixelFormat = 171;
4998pub const AVPixelFormat_AV_PIX_FMT_P016LE: AVPixelFormat = 172;
4999pub const AVPixelFormat_AV_PIX_FMT_P016BE: AVPixelFormat = 173;
5000pub const AVPixelFormat_AV_PIX_FMT_D3D11: AVPixelFormat = 174;
5001pub const AVPixelFormat_AV_PIX_FMT_GRAY9BE: AVPixelFormat = 175;
5002pub const AVPixelFormat_AV_PIX_FMT_GRAY9LE: AVPixelFormat = 176;
5003pub const AVPixelFormat_AV_PIX_FMT_GBRPF32BE: AVPixelFormat = 177;
5004pub const AVPixelFormat_AV_PIX_FMT_GBRPF32LE: AVPixelFormat = 178;
5005pub const AVPixelFormat_AV_PIX_FMT_GBRAPF32BE: AVPixelFormat = 179;
5006pub const AVPixelFormat_AV_PIX_FMT_GBRAPF32LE: AVPixelFormat = 180;
5007pub const AVPixelFormat_AV_PIX_FMT_DRM_PRIME: AVPixelFormat = 181;
5008pub const AVPixelFormat_AV_PIX_FMT_OPENCL: AVPixelFormat = 182;
5009pub const AVPixelFormat_AV_PIX_FMT_GRAY14BE: AVPixelFormat = 183;
5010pub const AVPixelFormat_AV_PIX_FMT_GRAY14LE: AVPixelFormat = 184;
5011pub const AVPixelFormat_AV_PIX_FMT_GRAYF32BE: AVPixelFormat = 185;
5012pub const AVPixelFormat_AV_PIX_FMT_GRAYF32LE: AVPixelFormat = 186;
5013pub const AVPixelFormat_AV_PIX_FMT_NB: AVPixelFormat = 187;
5014pub type AVPixelFormat = i32;
5015pub const AVColorPrimaries_AVCOL_PRI_RESERVED0: AVColorPrimaries = 0;
5016pub const AVColorPrimaries_AVCOL_PRI_BT709: AVColorPrimaries = 1;
5017pub const AVColorPrimaries_AVCOL_PRI_UNSPECIFIED: AVColorPrimaries = 2;
5018pub const AVColorPrimaries_AVCOL_PRI_RESERVED: AVColorPrimaries = 3;
5019pub const AVColorPrimaries_AVCOL_PRI_BT470M: AVColorPrimaries = 4;
5020pub const AVColorPrimaries_AVCOL_PRI_BT470BG: AVColorPrimaries = 5;
5021pub const AVColorPrimaries_AVCOL_PRI_SMPTE170M: AVColorPrimaries = 6;
5022pub const AVColorPrimaries_AVCOL_PRI_SMPTE240M: AVColorPrimaries = 7;
5023pub const AVColorPrimaries_AVCOL_PRI_FILM: AVColorPrimaries = 8;
5024pub const AVColorPrimaries_AVCOL_PRI_BT2020: AVColorPrimaries = 9;
5025pub const AVColorPrimaries_AVCOL_PRI_SMPTE428: AVColorPrimaries = 10;
5026pub const AVColorPrimaries_AVCOL_PRI_SMPTEST428_1: AVColorPrimaries = 10;
5027pub const AVColorPrimaries_AVCOL_PRI_SMPTE431: AVColorPrimaries = 11;
5028pub const AVColorPrimaries_AVCOL_PRI_SMPTE432: AVColorPrimaries = 12;
5029pub const AVColorPrimaries_AVCOL_PRI_JEDEC_P22: AVColorPrimaries = 22;
5030pub const AVColorPrimaries_AVCOL_PRI_NB: AVColorPrimaries = 23;
5031pub type AVColorPrimaries = u32;
5032pub const AVColorTransferCharacteristic_AVCOL_TRC_RESERVED0: AVColorTransferCharacteristic = 0;
5033pub const AVColorTransferCharacteristic_AVCOL_TRC_BT709: AVColorTransferCharacteristic = 1;
5034pub const AVColorTransferCharacteristic_AVCOL_TRC_UNSPECIFIED: AVColorTransferCharacteristic = 2;
5035pub const AVColorTransferCharacteristic_AVCOL_TRC_RESERVED: AVColorTransferCharacteristic = 3;
5036pub const AVColorTransferCharacteristic_AVCOL_TRC_GAMMA22: AVColorTransferCharacteristic = 4;
5037pub const AVColorTransferCharacteristic_AVCOL_TRC_GAMMA28: AVColorTransferCharacteristic = 5;
5038pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTE170M: AVColorTransferCharacteristic = 6;
5039pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTE240M: AVColorTransferCharacteristic = 7;
5040pub const AVColorTransferCharacteristic_AVCOL_TRC_LINEAR: AVColorTransferCharacteristic = 8;
5041pub const AVColorTransferCharacteristic_AVCOL_TRC_LOG: AVColorTransferCharacteristic = 9;
5042pub const AVColorTransferCharacteristic_AVCOL_TRC_LOG_SQRT: AVColorTransferCharacteristic = 10;
5043pub const AVColorTransferCharacteristic_AVCOL_TRC_IEC61966_2_4: AVColorTransferCharacteristic = 11;
5044pub const AVColorTransferCharacteristic_AVCOL_TRC_BT1361_ECG: AVColorTransferCharacteristic = 12;
5045pub const AVColorTransferCharacteristic_AVCOL_TRC_IEC61966_2_1: AVColorTransferCharacteristic = 13;
5046pub const AVColorTransferCharacteristic_AVCOL_TRC_BT2020_10: AVColorTransferCharacteristic = 14;
5047pub const AVColorTransferCharacteristic_AVCOL_TRC_BT2020_12: AVColorTransferCharacteristic = 15;
5048pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTE2084: AVColorTransferCharacteristic = 16;
5049pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTEST2084: AVColorTransferCharacteristic = 16;
5050pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTE428: AVColorTransferCharacteristic = 17;
5051pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTEST428_1: AVColorTransferCharacteristic = 17;
5052pub const AVColorTransferCharacteristic_AVCOL_TRC_ARIB_STD_B67: AVColorTransferCharacteristic = 18;
5053pub const AVColorTransferCharacteristic_AVCOL_TRC_NB: AVColorTransferCharacteristic = 19;
5054pub type AVColorTransferCharacteristic = u32;
5055pub const AVColorSpace_AVCOL_SPC_RGB: AVColorSpace = 0;
5056pub const AVColorSpace_AVCOL_SPC_BT709: AVColorSpace = 1;
5057pub const AVColorSpace_AVCOL_SPC_UNSPECIFIED: AVColorSpace = 2;
5058pub const AVColorSpace_AVCOL_SPC_RESERVED: AVColorSpace = 3;
5059pub const AVColorSpace_AVCOL_SPC_FCC: AVColorSpace = 4;
5060pub const AVColorSpace_AVCOL_SPC_BT470BG: AVColorSpace = 5;
5061pub const AVColorSpace_AVCOL_SPC_SMPTE170M: AVColorSpace = 6;
5062pub const AVColorSpace_AVCOL_SPC_SMPTE240M: AVColorSpace = 7;
5063pub const AVColorSpace_AVCOL_SPC_YCGCO: AVColorSpace = 8;
5064pub const AVColorSpace_AVCOL_SPC_YCOCG: AVColorSpace = 8;
5065pub const AVColorSpace_AVCOL_SPC_BT2020_NCL: AVColorSpace = 9;
5066pub const AVColorSpace_AVCOL_SPC_BT2020_CL: AVColorSpace = 10;
5067pub const AVColorSpace_AVCOL_SPC_SMPTE2085: AVColorSpace = 11;
5068pub const AVColorSpace_AVCOL_SPC_CHROMA_DERIVED_NCL: AVColorSpace = 12;
5069pub const AVColorSpace_AVCOL_SPC_CHROMA_DERIVED_CL: AVColorSpace = 13;
5070pub const AVColorSpace_AVCOL_SPC_ICTCP: AVColorSpace = 14;
5071pub const AVColorSpace_AVCOL_SPC_NB: AVColorSpace = 15;
5072pub type AVColorSpace = u32;
5073pub const AVColorRange_AVCOL_RANGE_UNSPECIFIED: AVColorRange = 0;
5074pub const AVColorRange_AVCOL_RANGE_MPEG: AVColorRange = 1;
5075pub const AVColorRange_AVCOL_RANGE_JPEG: AVColorRange = 2;
5076pub const AVColorRange_AVCOL_RANGE_NB: AVColorRange = 3;
5077pub type AVColorRange = u32;
5078pub const AVChromaLocation_AVCHROMA_LOC_UNSPECIFIED: AVChromaLocation = 0;
5079pub const AVChromaLocation_AVCHROMA_LOC_LEFT: AVChromaLocation = 1;
5080pub const AVChromaLocation_AVCHROMA_LOC_CENTER: AVChromaLocation = 2;
5081pub const AVChromaLocation_AVCHROMA_LOC_TOPLEFT: AVChromaLocation = 3;
5082pub const AVChromaLocation_AVCHROMA_LOC_TOP: AVChromaLocation = 4;
5083pub const AVChromaLocation_AVCHROMA_LOC_BOTTOMLEFT: AVChromaLocation = 5;
5084pub const AVChromaLocation_AVCHROMA_LOC_BOTTOM: AVChromaLocation = 6;
5085pub const AVChromaLocation_AVCHROMA_LOC_NB: AVChromaLocation = 7;
5086pub type AVChromaLocation = u32;
5087extern "C" {
5088    pub fn av_int_list_length_for_size(
5089        elsize: ::std::os::raw::c_uint,
5090        list: *const ::std::os::raw::c_void,
5091        term: u64,
5092    ) -> ::std::os::raw::c_uint;
5093}
5094extern "C" {
5095    pub fn av_fopen_utf8(
5096        path: *const ::std::os::raw::c_char,
5097        mode: *const ::std::os::raw::c_char,
5098    ) -> *mut FILE;
5099}
5100extern "C" {
5101    pub fn av_get_time_base_q() -> AVRational;
5102}
5103extern "C" {
5104    pub fn av_fourcc_make_string(
5105        buf: *mut ::std::os::raw::c_char,
5106        fourcc: u32,
5107    ) -> *mut ::std::os::raw::c_char;
5108}
5109pub const AVSampleFormat_AV_SAMPLE_FMT_NONE: AVSampleFormat = -1;
5110pub const AVSampleFormat_AV_SAMPLE_FMT_U8: AVSampleFormat = 0;
5111pub const AVSampleFormat_AV_SAMPLE_FMT_S16: AVSampleFormat = 1;
5112pub const AVSampleFormat_AV_SAMPLE_FMT_S32: AVSampleFormat = 2;
5113pub const AVSampleFormat_AV_SAMPLE_FMT_FLT: AVSampleFormat = 3;
5114pub const AVSampleFormat_AV_SAMPLE_FMT_DBL: AVSampleFormat = 4;
5115pub const AVSampleFormat_AV_SAMPLE_FMT_U8P: AVSampleFormat = 5;
5116pub const AVSampleFormat_AV_SAMPLE_FMT_S16P: AVSampleFormat = 6;
5117pub const AVSampleFormat_AV_SAMPLE_FMT_S32P: AVSampleFormat = 7;
5118pub const AVSampleFormat_AV_SAMPLE_FMT_FLTP: AVSampleFormat = 8;
5119pub const AVSampleFormat_AV_SAMPLE_FMT_DBLP: AVSampleFormat = 9;
5120pub const AVSampleFormat_AV_SAMPLE_FMT_S64: AVSampleFormat = 10;
5121pub const AVSampleFormat_AV_SAMPLE_FMT_S64P: AVSampleFormat = 11;
5122pub const AVSampleFormat_AV_SAMPLE_FMT_NB: AVSampleFormat = 12;
5123pub type AVSampleFormat = i32;
5124extern "C" {
5125    pub fn av_get_sample_fmt_name(sample_fmt: AVSampleFormat) -> *const ::std::os::raw::c_char;
5126}
5127extern "C" {
5128    pub fn av_get_sample_fmt(name: *const ::std::os::raw::c_char) -> AVSampleFormat;
5129}
5130extern "C" {
5131    pub fn av_get_alt_sample_fmt(
5132        sample_fmt: AVSampleFormat,
5133        planar: ::std::os::raw::c_int,
5134    ) -> AVSampleFormat;
5135}
5136extern "C" {
5137    pub fn av_get_packed_sample_fmt(sample_fmt: AVSampleFormat) -> AVSampleFormat;
5138}
5139extern "C" {
5140    pub fn av_get_planar_sample_fmt(sample_fmt: AVSampleFormat) -> AVSampleFormat;
5141}
5142extern "C" {
5143    pub fn av_get_sample_fmt_string(
5144        buf: *mut ::std::os::raw::c_char,
5145        buf_size: ::std::os::raw::c_int,
5146        sample_fmt: AVSampleFormat,
5147    ) -> *mut ::std::os::raw::c_char;
5148}
5149extern "C" {
5150    pub fn av_get_bytes_per_sample(sample_fmt: AVSampleFormat) -> ::std::os::raw::c_int;
5151}
5152extern "C" {
5153    pub fn av_sample_fmt_is_planar(sample_fmt: AVSampleFormat) -> ::std::os::raw::c_int;
5154}
5155extern "C" {
5156    pub fn av_samples_get_buffer_size(
5157        linesize: *mut ::std::os::raw::c_int,
5158        nb_channels: ::std::os::raw::c_int,
5159        nb_samples: ::std::os::raw::c_int,
5160        sample_fmt: AVSampleFormat,
5161        align: ::std::os::raw::c_int,
5162    ) -> ::std::os::raw::c_int;
5163}
5164extern "C" {
5165    pub fn av_samples_fill_arrays(
5166        audio_data: *mut *mut u8,
5167        linesize: *mut ::std::os::raw::c_int,
5168        buf: *const u8,
5169        nb_channels: ::std::os::raw::c_int,
5170        nb_samples: ::std::os::raw::c_int,
5171        sample_fmt: AVSampleFormat,
5172        align: ::std::os::raw::c_int,
5173    ) -> ::std::os::raw::c_int;
5174}
5175extern "C" {
5176    pub fn av_samples_alloc(
5177        audio_data: *mut *mut u8,
5178        linesize: *mut ::std::os::raw::c_int,
5179        nb_channels: ::std::os::raw::c_int,
5180        nb_samples: ::std::os::raw::c_int,
5181        sample_fmt: AVSampleFormat,
5182        align: ::std::os::raw::c_int,
5183    ) -> ::std::os::raw::c_int;
5184}
5185extern "C" {
5186    pub fn av_samples_alloc_array_and_samples(
5187        audio_data: *mut *mut *mut u8,
5188        linesize: *mut ::std::os::raw::c_int,
5189        nb_channels: ::std::os::raw::c_int,
5190        nb_samples: ::std::os::raw::c_int,
5191        sample_fmt: AVSampleFormat,
5192        align: ::std::os::raw::c_int,
5193    ) -> ::std::os::raw::c_int;
5194}
5195extern "C" {
5196    pub fn av_samples_copy(
5197        dst: *mut *mut u8,
5198        src: *const *mut u8,
5199        dst_offset: ::std::os::raw::c_int,
5200        src_offset: ::std::os::raw::c_int,
5201        nb_samples: ::std::os::raw::c_int,
5202        nb_channels: ::std::os::raw::c_int,
5203        sample_fmt: AVSampleFormat,
5204    ) -> ::std::os::raw::c_int;
5205}
5206extern "C" {
5207    pub fn av_samples_set_silence(
5208        audio_data: *mut *mut u8,
5209        offset: ::std::os::raw::c_int,
5210        nb_samples: ::std::os::raw::c_int,
5211        nb_channels: ::std::os::raw::c_int,
5212        sample_fmt: AVSampleFormat,
5213    ) -> ::std::os::raw::c_int;
5214}
5215#[repr(C)]
5216#[derive(Debug, Copy, Clone)]
5217pub struct AVBuffer {
5218    _unused: [u8; 0],
5219}
5220#[repr(C)]
5221#[derive(Debug, Copy, Clone)]
5222pub struct AVBufferRef {
5223    pub buffer: *mut AVBuffer,
5224    pub data: *mut u8,
5225    pub size: ::std::os::raw::c_int,
5226}
5227extern "C" {
5228    pub fn av_buffer_alloc(size: ::std::os::raw::c_int) -> *mut AVBufferRef;
5229}
5230extern "C" {
5231    pub fn av_buffer_allocz(size: ::std::os::raw::c_int) -> *mut AVBufferRef;
5232}
5233extern "C" {
5234    pub fn av_buffer_create(
5235        data: *mut u8,
5236        size: ::std::os::raw::c_int,
5237        free: ::std::option::Option<
5238            unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, size: *mut u8),
5239        >,
5240        opaque: *mut ::std::os::raw::c_void,
5241        flags: ::std::os::raw::c_int,
5242    ) -> *mut AVBufferRef;
5243}
5244extern "C" {
5245    pub fn av_buffer_default_free(opaque: *mut ::std::os::raw::c_void, data: *mut u8);
5246}
5247extern "C" {
5248    pub fn av_buffer_ref(buf: *mut AVBufferRef) -> *mut AVBufferRef;
5249}
5250extern "C" {
5251    pub fn av_buffer_unref(buf: *mut *mut AVBufferRef);
5252}
5253extern "C" {
5254    pub fn av_buffer_is_writable(buf: *const AVBufferRef) -> ::std::os::raw::c_int;
5255}
5256extern "C" {
5257    pub fn av_buffer_get_opaque(buf: *const AVBufferRef) -> *mut ::std::os::raw::c_void;
5258}
5259extern "C" {
5260    pub fn av_buffer_get_ref_count(buf: *const AVBufferRef) -> ::std::os::raw::c_int;
5261}
5262extern "C" {
5263    pub fn av_buffer_make_writable(buf: *mut *mut AVBufferRef) -> ::std::os::raw::c_int;
5264}
5265extern "C" {
5266    pub fn av_buffer_realloc(
5267        buf: *mut *mut AVBufferRef,
5268        size: ::std::os::raw::c_int,
5269    ) -> ::std::os::raw::c_int;
5270}
5271#[repr(C)]
5272#[derive(Debug, Copy, Clone)]
5273pub struct AVBufferPool {
5274    _unused: [u8; 0],
5275}
5276extern "C" {
5277    pub fn av_buffer_pool_init(
5278        size: ::std::os::raw::c_int,
5279        alloc: ::std::option::Option<
5280            unsafe extern "C" fn(size: ::std::os::raw::c_int) -> *mut AVBufferRef,
5281        >,
5282    ) -> *mut AVBufferPool;
5283}
5284extern "C" {
5285    pub fn av_buffer_pool_init2(
5286        size: ::std::os::raw::c_int,
5287        opaque: *mut ::std::os::raw::c_void,
5288        alloc: ::std::option::Option<
5289            unsafe extern "C" fn(
5290                size: *mut ::std::os::raw::c_void,
5291                opaque: ::std::os::raw::c_int,
5292            ) -> *mut AVBufferRef,
5293        >,
5294        pool_free: ::std::option::Option<unsafe extern "C" fn(size: *mut ::std::os::raw::c_void)>,
5295    ) -> *mut AVBufferPool;
5296}
5297extern "C" {
5298    pub fn av_buffer_pool_uninit(pool: *mut *mut AVBufferPool);
5299}
5300extern "C" {
5301    pub fn av_buffer_pool_get(pool: *mut AVBufferPool) -> *mut AVBufferRef;
5302}
5303extern "C" {
5304    pub fn av_get_cpu_flags() -> ::std::os::raw::c_int;
5305}
5306extern "C" {
5307    pub fn av_force_cpu_flags(flags: ::std::os::raw::c_int);
5308}
5309extern "C" {
5310    pub fn av_set_cpu_flags_mask(mask: ::std::os::raw::c_int);
5311}
5312extern "C" {
5313    pub fn av_parse_cpu_flags(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
5314}
5315extern "C" {
5316    pub fn av_parse_cpu_caps(
5317        flags: *mut ::std::os::raw::c_uint,
5318        s: *const ::std::os::raw::c_char,
5319    ) -> ::std::os::raw::c_int;
5320}
5321extern "C" {
5322    pub fn av_cpu_count() -> ::std::os::raw::c_int;
5323}
5324extern "C" {
5325    pub fn av_cpu_max_align() -> usize;
5326}
5327pub const AVMatrixEncoding_AV_MATRIX_ENCODING_NONE: AVMatrixEncoding = 0;
5328pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DOLBY: AVMatrixEncoding = 1;
5329pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DPLII: AVMatrixEncoding = 2;
5330pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DPLIIX: AVMatrixEncoding = 3;
5331pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DPLIIZ: AVMatrixEncoding = 4;
5332pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DOLBYEX: AVMatrixEncoding = 5;
5333pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DOLBYHEADPHONE: AVMatrixEncoding = 6;
5334pub const AVMatrixEncoding_AV_MATRIX_ENCODING_NB: AVMatrixEncoding = 7;
5335pub type AVMatrixEncoding = u32;
5336extern "C" {
5337    pub fn av_get_channel_layout(name: *const ::std::os::raw::c_char) -> u64;
5338}
5339extern "C" {
5340    pub fn av_get_extended_channel_layout(
5341        name: *const ::std::os::raw::c_char,
5342        channel_layout: *mut u64,
5343        nb_channels: *mut ::std::os::raw::c_int,
5344    ) -> ::std::os::raw::c_int;
5345}
5346extern "C" {
5347    pub fn av_get_channel_layout_string(
5348        buf: *mut ::std::os::raw::c_char,
5349        buf_size: ::std::os::raw::c_int,
5350        nb_channels: ::std::os::raw::c_int,
5351        channel_layout: u64,
5352    );
5353}
5354#[repr(C)]
5355#[derive(Debug, Copy, Clone)]
5356pub struct AVBPrint {
5357    _unused: [u8; 0],
5358}
5359extern "C" {
5360    pub fn av_bprint_channel_layout(
5361        bp: *mut AVBPrint,
5362        nb_channels: ::std::os::raw::c_int,
5363        channel_layout: u64,
5364    );
5365}
5366extern "C" {
5367    pub fn av_get_channel_layout_nb_channels(channel_layout: u64) -> ::std::os::raw::c_int;
5368}
5369extern "C" {
5370    pub fn av_get_default_channel_layout(nb_channels: ::std::os::raw::c_int) -> i64;
5371}
5372extern "C" {
5373    pub fn av_get_channel_layout_channel_index(
5374        channel_layout: u64,
5375        channel: u64,
5376    ) -> ::std::os::raw::c_int;
5377}
5378extern "C" {
5379    pub fn av_channel_layout_extract_channel(
5380        channel_layout: u64,
5381        index: ::std::os::raw::c_int,
5382    ) -> u64;
5383}
5384extern "C" {
5385    pub fn av_get_channel_name(channel: u64) -> *const ::std::os::raw::c_char;
5386}
5387extern "C" {
5388    pub fn av_get_channel_description(channel: u64) -> *const ::std::os::raw::c_char;
5389}
5390extern "C" {
5391    pub fn av_get_standard_channel_layout(
5392        index: ::std::os::raw::c_uint,
5393        layout: *mut u64,
5394        name: *mut *const ::std::os::raw::c_char,
5395    ) -> ::std::os::raw::c_int;
5396}
5397#[repr(C)]
5398#[derive(Debug, Copy, Clone)]
5399pub struct AVDictionaryEntry {
5400    pub key: *mut ::std::os::raw::c_char,
5401    pub value: *mut ::std::os::raw::c_char,
5402}
5403#[repr(C)]
5404#[derive(Debug, Copy, Clone)]
5405pub struct AVDictionary {
5406    _unused: [u8; 0],
5407}
5408extern "C" {
5409    pub fn av_dict_get(
5410        m: *const AVDictionary,
5411        key: *const ::std::os::raw::c_char,
5412        prev: *const AVDictionaryEntry,
5413        flags: ::std::os::raw::c_int,
5414    ) -> *mut AVDictionaryEntry;
5415}
5416extern "C" {
5417    pub fn av_dict_count(m: *const AVDictionary) -> ::std::os::raw::c_int;
5418}
5419extern "C" {
5420    pub fn av_dict_set(
5421        pm: *mut *mut AVDictionary,
5422        key: *const ::std::os::raw::c_char,
5423        value: *const ::std::os::raw::c_char,
5424        flags: ::std::os::raw::c_int,
5425    ) -> ::std::os::raw::c_int;
5426}
5427extern "C" {
5428    pub fn av_dict_set_int(
5429        pm: *mut *mut AVDictionary,
5430        key: *const ::std::os::raw::c_char,
5431        value: i64,
5432        flags: ::std::os::raw::c_int,
5433    ) -> ::std::os::raw::c_int;
5434}
5435extern "C" {
5436    pub fn av_dict_parse_string(
5437        pm: *mut *mut AVDictionary,
5438        str: *const ::std::os::raw::c_char,
5439        key_val_sep: *const ::std::os::raw::c_char,
5440        pairs_sep: *const ::std::os::raw::c_char,
5441        flags: ::std::os::raw::c_int,
5442    ) -> ::std::os::raw::c_int;
5443}
5444extern "C" {
5445    pub fn av_dict_copy(
5446        dst: *mut *mut AVDictionary,
5447        src: *const AVDictionary,
5448        flags: ::std::os::raw::c_int,
5449    ) -> ::std::os::raw::c_int;
5450}
5451extern "C" {
5452    pub fn av_dict_free(m: *mut *mut AVDictionary);
5453}
5454extern "C" {
5455    pub fn av_dict_get_string(
5456        m: *const AVDictionary,
5457        buffer: *mut *mut ::std::os::raw::c_char,
5458        key_val_sep: ::std::os::raw::c_char,
5459        pairs_sep: ::std::os::raw::c_char,
5460    ) -> ::std::os::raw::c_int;
5461}
5462pub const AVFrameSideDataType_AV_FRAME_DATA_PANSCAN: AVFrameSideDataType = 0;
5463pub const AVFrameSideDataType_AV_FRAME_DATA_A53_CC: AVFrameSideDataType = 1;
5464pub const AVFrameSideDataType_AV_FRAME_DATA_STEREO3D: AVFrameSideDataType = 2;
5465pub const AVFrameSideDataType_AV_FRAME_DATA_MATRIXENCODING: AVFrameSideDataType = 3;
5466pub const AVFrameSideDataType_AV_FRAME_DATA_DOWNMIX_INFO: AVFrameSideDataType = 4;
5467pub const AVFrameSideDataType_AV_FRAME_DATA_REPLAYGAIN: AVFrameSideDataType = 5;
5468pub const AVFrameSideDataType_AV_FRAME_DATA_DISPLAYMATRIX: AVFrameSideDataType = 6;
5469pub const AVFrameSideDataType_AV_FRAME_DATA_AFD: AVFrameSideDataType = 7;
5470pub const AVFrameSideDataType_AV_FRAME_DATA_MOTION_VECTORS: AVFrameSideDataType = 8;
5471pub const AVFrameSideDataType_AV_FRAME_DATA_SKIP_SAMPLES: AVFrameSideDataType = 9;
5472pub const AVFrameSideDataType_AV_FRAME_DATA_AUDIO_SERVICE_TYPE: AVFrameSideDataType = 10;
5473pub const AVFrameSideDataType_AV_FRAME_DATA_MASTERING_DISPLAY_METADATA: AVFrameSideDataType = 11;
5474pub const AVFrameSideDataType_AV_FRAME_DATA_GOP_TIMECODE: AVFrameSideDataType = 12;
5475pub const AVFrameSideDataType_AV_FRAME_DATA_SPHERICAL: AVFrameSideDataType = 13;
5476pub const AVFrameSideDataType_AV_FRAME_DATA_CONTENT_LIGHT_LEVEL: AVFrameSideDataType = 14;
5477pub const AVFrameSideDataType_AV_FRAME_DATA_ICC_PROFILE: AVFrameSideDataType = 15;
5478pub const AVFrameSideDataType_AV_FRAME_DATA_QP_TABLE_PROPERTIES: AVFrameSideDataType = 16;
5479pub const AVFrameSideDataType_AV_FRAME_DATA_QP_TABLE_DATA: AVFrameSideDataType = 17;
5480pub const AVFrameSideDataType_AV_FRAME_DATA_S12M_TIMECODE: AVFrameSideDataType = 18;
5481pub type AVFrameSideDataType = u32;
5482pub const AVActiveFormatDescription_AV_AFD_SAME: AVActiveFormatDescription = 8;
5483pub const AVActiveFormatDescription_AV_AFD_4_3: AVActiveFormatDescription = 9;
5484pub const AVActiveFormatDescription_AV_AFD_16_9: AVActiveFormatDescription = 10;
5485pub const AVActiveFormatDescription_AV_AFD_14_9: AVActiveFormatDescription = 11;
5486pub const AVActiveFormatDescription_AV_AFD_4_3_SP_14_9: AVActiveFormatDescription = 13;
5487pub const AVActiveFormatDescription_AV_AFD_16_9_SP_14_9: AVActiveFormatDescription = 14;
5488pub const AVActiveFormatDescription_AV_AFD_SP_4_3: AVActiveFormatDescription = 15;
5489pub type AVActiveFormatDescription = u32;
5490#[repr(C)]
5491#[derive(Debug, Copy, Clone)]
5492pub struct AVFrameSideData {
5493    pub type_: AVFrameSideDataType,
5494    pub data: *mut u8,
5495    pub size: ::std::os::raw::c_int,
5496    pub metadata: *mut AVDictionary,
5497    pub buf: *mut AVBufferRef,
5498}
5499#[repr(C)]
5500#[derive(Debug, Copy, Clone)]
5501pub struct AVFrame {
5502    pub data: [*mut u8; 8usize],
5503    pub linesize: [::std::os::raw::c_int; 8usize],
5504    pub extended_data: *mut *mut u8,
5505    pub width: ::std::os::raw::c_int,
5506    pub height: ::std::os::raw::c_int,
5507    pub nb_samples: ::std::os::raw::c_int,
5508    pub format: ::std::os::raw::c_int,
5509    pub key_frame: ::std::os::raw::c_int,
5510    pub pict_type: AVPictureType,
5511    pub sample_aspect_ratio: AVRational,
5512    pub pts: i64,
5513    pub pkt_pts: i64,
5514    pub pkt_dts: i64,
5515    pub coded_picture_number: ::std::os::raw::c_int,
5516    pub display_picture_number: ::std::os::raw::c_int,
5517    pub quality: ::std::os::raw::c_int,
5518    pub opaque: *mut ::std::os::raw::c_void,
5519    pub error: [u64; 8usize],
5520    pub repeat_pict: ::std::os::raw::c_int,
5521    pub interlaced_frame: ::std::os::raw::c_int,
5522    pub top_field_first: ::std::os::raw::c_int,
5523    pub palette_has_changed: ::std::os::raw::c_int,
5524    pub reordered_opaque: i64,
5525    pub sample_rate: ::std::os::raw::c_int,
5526    pub channel_layout: u64,
5527    pub buf: [*mut AVBufferRef; 8usize],
5528    pub extended_buf: *mut *mut AVBufferRef,
5529    pub nb_extended_buf: ::std::os::raw::c_int,
5530    pub side_data: *mut *mut AVFrameSideData,
5531    pub nb_side_data: ::std::os::raw::c_int,
5532    pub flags: ::std::os::raw::c_int,
5533    pub color_range: AVColorRange,
5534    pub color_primaries: AVColorPrimaries,
5535    pub color_trc: AVColorTransferCharacteristic,
5536    pub colorspace: AVColorSpace,
5537    pub chroma_location: AVChromaLocation,
5538    pub best_effort_timestamp: i64,
5539    pub pkt_pos: i64,
5540    pub pkt_duration: i64,
5541    pub metadata: *mut AVDictionary,
5542    pub decode_error_flags: ::std::os::raw::c_int,
5543    pub channels: ::std::os::raw::c_int,
5544    pub pkt_size: ::std::os::raw::c_int,
5545    pub qscale_table: *mut i8,
5546    pub qstride: ::std::os::raw::c_int,
5547    pub qscale_type: ::std::os::raw::c_int,
5548    pub qp_table_buf: *mut AVBufferRef,
5549    pub hw_frames_ctx: *mut AVBufferRef,
5550    pub opaque_ref: *mut AVBufferRef,
5551    pub crop_top: usize,
5552    pub crop_bottom: usize,
5553    pub crop_left: usize,
5554    pub crop_right: usize,
5555    pub private_ref: *mut AVBufferRef,
5556}
5557extern "C" {
5558    pub fn av_frame_get_best_effort_timestamp(frame: *const AVFrame) -> i64;
5559}
5560extern "C" {
5561    pub fn av_frame_set_best_effort_timestamp(frame: *mut AVFrame, val: i64);
5562}
5563extern "C" {
5564    pub fn av_frame_get_pkt_duration(frame: *const AVFrame) -> i64;
5565}
5566extern "C" {
5567    pub fn av_frame_set_pkt_duration(frame: *mut AVFrame, val: i64);
5568}
5569extern "C" {
5570    pub fn av_frame_get_pkt_pos(frame: *const AVFrame) -> i64;
5571}
5572extern "C" {
5573    pub fn av_frame_set_pkt_pos(frame: *mut AVFrame, val: i64);
5574}
5575extern "C" {
5576    pub fn av_frame_get_channel_layout(frame: *const AVFrame) -> i64;
5577}
5578extern "C" {
5579    pub fn av_frame_set_channel_layout(frame: *mut AVFrame, val: i64);
5580}
5581extern "C" {
5582    pub fn av_frame_get_channels(frame: *const AVFrame) -> ::std::os::raw::c_int;
5583}
5584extern "C" {
5585    pub fn av_frame_set_channels(frame: *mut AVFrame, val: ::std::os::raw::c_int);
5586}
5587extern "C" {
5588    pub fn av_frame_get_sample_rate(frame: *const AVFrame) -> ::std::os::raw::c_int;
5589}
5590extern "C" {
5591    pub fn av_frame_set_sample_rate(frame: *mut AVFrame, val: ::std::os::raw::c_int);
5592}
5593extern "C" {
5594    pub fn av_frame_get_metadata(frame: *const AVFrame) -> *mut AVDictionary;
5595}
5596extern "C" {
5597    pub fn av_frame_set_metadata(frame: *mut AVFrame, val: *mut AVDictionary);
5598}
5599extern "C" {
5600    pub fn av_frame_get_decode_error_flags(frame: *const AVFrame) -> ::std::os::raw::c_int;
5601}
5602extern "C" {
5603    pub fn av_frame_set_decode_error_flags(frame: *mut AVFrame, val: ::std::os::raw::c_int);
5604}
5605extern "C" {
5606    pub fn av_frame_get_pkt_size(frame: *const AVFrame) -> ::std::os::raw::c_int;
5607}
5608extern "C" {
5609    pub fn av_frame_set_pkt_size(frame: *mut AVFrame, val: ::std::os::raw::c_int);
5610}
5611extern "C" {
5612    pub fn av_frame_get_qp_table(
5613        f: *mut AVFrame,
5614        stride: *mut ::std::os::raw::c_int,
5615        type_: *mut ::std::os::raw::c_int,
5616    ) -> *mut i8;
5617}
5618extern "C" {
5619    pub fn av_frame_set_qp_table(
5620        f: *mut AVFrame,
5621        buf: *mut AVBufferRef,
5622        stride: ::std::os::raw::c_int,
5623        type_: ::std::os::raw::c_int,
5624    ) -> ::std::os::raw::c_int;
5625}
5626extern "C" {
5627    pub fn av_frame_get_colorspace(frame: *const AVFrame) -> AVColorSpace;
5628}
5629extern "C" {
5630    pub fn av_frame_set_colorspace(frame: *mut AVFrame, val: AVColorSpace);
5631}
5632extern "C" {
5633    pub fn av_frame_get_color_range(frame: *const AVFrame) -> AVColorRange;
5634}
5635extern "C" {
5636    pub fn av_frame_set_color_range(frame: *mut AVFrame, val: AVColorRange);
5637}
5638extern "C" {
5639    pub fn av_get_colorspace_name(val: AVColorSpace) -> *const ::std::os::raw::c_char;
5640}
5641extern "C" {
5642    pub fn av_frame_alloc() -> *mut AVFrame;
5643}
5644extern "C" {
5645    pub fn av_frame_free(frame: *mut *mut AVFrame);
5646}
5647extern "C" {
5648    pub fn av_frame_ref(dst: *mut AVFrame, src: *const AVFrame) -> ::std::os::raw::c_int;
5649}
5650extern "C" {
5651    pub fn av_frame_clone(src: *const AVFrame) -> *mut AVFrame;
5652}
5653extern "C" {
5654    pub fn av_frame_unref(frame: *mut AVFrame);
5655}
5656extern "C" {
5657    pub fn av_frame_move_ref(dst: *mut AVFrame, src: *mut AVFrame);
5658}
5659extern "C" {
5660    pub fn av_frame_get_buffer(
5661        frame: *mut AVFrame,
5662        align: ::std::os::raw::c_int,
5663    ) -> ::std::os::raw::c_int;
5664}
5665extern "C" {
5666    pub fn av_frame_is_writable(frame: *mut AVFrame) -> ::std::os::raw::c_int;
5667}
5668extern "C" {
5669    pub fn av_frame_make_writable(frame: *mut AVFrame) -> ::std::os::raw::c_int;
5670}
5671extern "C" {
5672    pub fn av_frame_copy(dst: *mut AVFrame, src: *const AVFrame) -> ::std::os::raw::c_int;
5673}
5674extern "C" {
5675    pub fn av_frame_copy_props(dst: *mut AVFrame, src: *const AVFrame) -> ::std::os::raw::c_int;
5676}
5677extern "C" {
5678    pub fn av_frame_get_plane_buffer(
5679        frame: *mut AVFrame,
5680        plane: ::std::os::raw::c_int,
5681    ) -> *mut AVBufferRef;
5682}
5683extern "C" {
5684    pub fn av_frame_new_side_data(
5685        frame: *mut AVFrame,
5686        type_: AVFrameSideDataType,
5687        size: ::std::os::raw::c_int,
5688    ) -> *mut AVFrameSideData;
5689}
5690extern "C" {
5691    pub fn av_frame_new_side_data_from_buf(
5692        frame: *mut AVFrame,
5693        type_: AVFrameSideDataType,
5694        buf: *mut AVBufferRef,
5695    ) -> *mut AVFrameSideData;
5696}
5697extern "C" {
5698    pub fn av_frame_get_side_data(
5699        frame: *const AVFrame,
5700        type_: AVFrameSideDataType,
5701    ) -> *mut AVFrameSideData;
5702}
5703extern "C" {
5704    pub fn av_frame_remove_side_data(frame: *mut AVFrame, type_: AVFrameSideDataType);
5705}
5706pub const AV_FRAME_CROP_UNALIGNED: _bindgen_ty_2 = 1;
5707pub type _bindgen_ty_2 = u32;
5708extern "C" {
5709    pub fn av_frame_apply_cropping(
5710        frame: *mut AVFrame,
5711        flags: ::std::os::raw::c_int,
5712    ) -> ::std::os::raw::c_int;
5713}
5714extern "C" {
5715    pub fn av_frame_side_data_name(type_: AVFrameSideDataType) -> *const ::std::os::raw::c_char;
5716}
5717pub const AVHWDeviceType_AV_HWDEVICE_TYPE_NONE: AVHWDeviceType = 0;
5718pub const AVHWDeviceType_AV_HWDEVICE_TYPE_VDPAU: AVHWDeviceType = 1;
5719pub const AVHWDeviceType_AV_HWDEVICE_TYPE_CUDA: AVHWDeviceType = 2;
5720pub const AVHWDeviceType_AV_HWDEVICE_TYPE_VAAPI: AVHWDeviceType = 3;
5721pub const AVHWDeviceType_AV_HWDEVICE_TYPE_DXVA2: AVHWDeviceType = 4;
5722pub const AVHWDeviceType_AV_HWDEVICE_TYPE_QSV: AVHWDeviceType = 5;
5723pub const AVHWDeviceType_AV_HWDEVICE_TYPE_VIDEOTOOLBOX: AVHWDeviceType = 6;
5724pub const AVHWDeviceType_AV_HWDEVICE_TYPE_D3D11VA: AVHWDeviceType = 7;
5725pub const AVHWDeviceType_AV_HWDEVICE_TYPE_DRM: AVHWDeviceType = 8;
5726pub const AVHWDeviceType_AV_HWDEVICE_TYPE_OPENCL: AVHWDeviceType = 9;
5727pub const AVHWDeviceType_AV_HWDEVICE_TYPE_MEDIACODEC: AVHWDeviceType = 10;
5728pub type AVHWDeviceType = u32;
5729#[repr(C)]
5730#[derive(Debug, Copy, Clone)]
5731pub struct AVHWDeviceInternal {
5732    _unused: [u8; 0],
5733}
5734#[repr(C)]
5735#[derive(Debug, Copy, Clone)]
5736pub struct AVHWDeviceContext {
5737    pub av_class: *const AVClass,
5738    pub internal: *mut AVHWDeviceInternal,
5739    pub type_: AVHWDeviceType,
5740    pub hwctx: *mut ::std::os::raw::c_void,
5741    pub free: ::std::option::Option<unsafe extern "C" fn(ctx: *mut AVHWDeviceContext)>,
5742    pub user_opaque: *mut ::std::os::raw::c_void,
5743}
5744#[repr(C)]
5745#[derive(Debug, Copy, Clone)]
5746pub struct AVHWFramesInternal {
5747    _unused: [u8; 0],
5748}
5749#[repr(C)]
5750#[derive(Debug, Copy, Clone)]
5751pub struct AVHWFramesContext {
5752    pub av_class: *const AVClass,
5753    pub internal: *mut AVHWFramesInternal,
5754    pub device_ref: *mut AVBufferRef,
5755    pub device_ctx: *mut AVHWDeviceContext,
5756    pub hwctx: *mut ::std::os::raw::c_void,
5757    pub free: ::std::option::Option<unsafe extern "C" fn(ctx: *mut AVHWFramesContext)>,
5758    pub user_opaque: *mut ::std::os::raw::c_void,
5759    pub pool: *mut AVBufferPool,
5760    pub initial_pool_size: ::std::os::raw::c_int,
5761    pub format: AVPixelFormat,
5762    pub sw_format: AVPixelFormat,
5763    pub width: ::std::os::raw::c_int,
5764    pub height: ::std::os::raw::c_int,
5765}
5766extern "C" {
5767    pub fn av_hwdevice_find_type_by_name(name: *const ::std::os::raw::c_char) -> AVHWDeviceType;
5768}
5769extern "C" {
5770    pub fn av_hwdevice_get_type_name(type_: AVHWDeviceType) -> *const ::std::os::raw::c_char;
5771}
5772extern "C" {
5773    pub fn av_hwdevice_iterate_types(prev: AVHWDeviceType) -> AVHWDeviceType;
5774}
5775extern "C" {
5776    pub fn av_hwdevice_ctx_alloc(type_: AVHWDeviceType) -> *mut AVBufferRef;
5777}
5778extern "C" {
5779    pub fn av_hwdevice_ctx_init(ref_: *mut AVBufferRef) -> ::std::os::raw::c_int;
5780}
5781extern "C" {
5782    pub fn av_hwdevice_ctx_create(
5783        device_ctx: *mut *mut AVBufferRef,
5784        type_: AVHWDeviceType,
5785        device: *const ::std::os::raw::c_char,
5786        opts: *mut AVDictionary,
5787        flags: ::std::os::raw::c_int,
5788    ) -> ::std::os::raw::c_int;
5789}
5790extern "C" {
5791    pub fn av_hwdevice_ctx_create_derived(
5792        dst_ctx: *mut *mut AVBufferRef,
5793        type_: AVHWDeviceType,
5794        src_ctx: *mut AVBufferRef,
5795        flags: ::std::os::raw::c_int,
5796    ) -> ::std::os::raw::c_int;
5797}
5798extern "C" {
5799    pub fn av_hwframe_ctx_alloc(device_ctx: *mut AVBufferRef) -> *mut AVBufferRef;
5800}
5801extern "C" {
5802    pub fn av_hwframe_ctx_init(ref_: *mut AVBufferRef) -> ::std::os::raw::c_int;
5803}
5804extern "C" {
5805    pub fn av_hwframe_get_buffer(
5806        hwframe_ctx: *mut AVBufferRef,
5807        frame: *mut AVFrame,
5808        flags: ::std::os::raw::c_int,
5809    ) -> ::std::os::raw::c_int;
5810}
5811extern "C" {
5812    pub fn av_hwframe_transfer_data(
5813        dst: *mut AVFrame,
5814        src: *const AVFrame,
5815        flags: ::std::os::raw::c_int,
5816    ) -> ::std::os::raw::c_int;
5817}
5818pub const AVHWFrameTransferDirection_AV_HWFRAME_TRANSFER_DIRECTION_FROM:
5819    AVHWFrameTransferDirection = 0;
5820pub const AVHWFrameTransferDirection_AV_HWFRAME_TRANSFER_DIRECTION_TO: AVHWFrameTransferDirection =
5821    1;
5822pub type AVHWFrameTransferDirection = u32;
5823extern "C" {
5824    pub fn av_hwframe_transfer_get_formats(
5825        hwframe_ctx: *mut AVBufferRef,
5826        dir: AVHWFrameTransferDirection,
5827        formats: *mut *mut AVPixelFormat,
5828        flags: ::std::os::raw::c_int,
5829    ) -> ::std::os::raw::c_int;
5830}
5831#[repr(C)]
5832#[derive(Debug, Copy, Clone)]
5833pub struct AVHWFramesConstraints {
5834    pub valid_hw_formats: *mut AVPixelFormat,
5835    pub valid_sw_formats: *mut AVPixelFormat,
5836    pub min_width: ::std::os::raw::c_int,
5837    pub min_height: ::std::os::raw::c_int,
5838    pub max_width: ::std::os::raw::c_int,
5839    pub max_height: ::std::os::raw::c_int,
5840}
5841extern "C" {
5842    pub fn av_hwdevice_hwconfig_alloc(device_ctx: *mut AVBufferRef) -> *mut ::std::os::raw::c_void;
5843}
5844extern "C" {
5845    pub fn av_hwdevice_get_hwframe_constraints(
5846        ref_: *mut AVBufferRef,
5847        hwconfig: *const ::std::os::raw::c_void,
5848    ) -> *mut AVHWFramesConstraints;
5849}
5850extern "C" {
5851    pub fn av_hwframe_constraints_free(constraints: *mut *mut AVHWFramesConstraints);
5852}
5853pub const AV_HWFRAME_MAP_READ: _bindgen_ty_3 = 1;
5854pub const AV_HWFRAME_MAP_WRITE: _bindgen_ty_3 = 2;
5855pub const AV_HWFRAME_MAP_OVERWRITE: _bindgen_ty_3 = 4;
5856pub const AV_HWFRAME_MAP_DIRECT: _bindgen_ty_3 = 8;
5857pub type _bindgen_ty_3 = u32;
5858extern "C" {
5859    pub fn av_hwframe_map(
5860        dst: *mut AVFrame,
5861        src: *const AVFrame,
5862        flags: ::std::os::raw::c_int,
5863    ) -> ::std::os::raw::c_int;
5864}
5865extern "C" {
5866    pub fn av_hwframe_ctx_create_derived(
5867        derived_frame_ctx: *mut *mut AVBufferRef,
5868        format: AVPixelFormat,
5869        derived_device_ctx: *mut AVBufferRef,
5870        source_frame_ctx: *mut AVBufferRef,
5871        flags: ::std::os::raw::c_int,
5872    ) -> ::std::os::raw::c_int;
5873}
5874pub const AVCodecID_AV_CODEC_ID_NONE: AVCodecID = 0;
5875pub const AVCodecID_AV_CODEC_ID_MPEG1VIDEO: AVCodecID = 1;
5876pub const AVCodecID_AV_CODEC_ID_MPEG2VIDEO: AVCodecID = 2;
5877pub const AVCodecID_AV_CODEC_ID_H261: AVCodecID = 3;
5878pub const AVCodecID_AV_CODEC_ID_H263: AVCodecID = 4;
5879pub const AVCodecID_AV_CODEC_ID_RV10: AVCodecID = 5;
5880pub const AVCodecID_AV_CODEC_ID_RV20: AVCodecID = 6;
5881pub const AVCodecID_AV_CODEC_ID_MJPEG: AVCodecID = 7;
5882pub const AVCodecID_AV_CODEC_ID_MJPEGB: AVCodecID = 8;
5883pub const AVCodecID_AV_CODEC_ID_LJPEG: AVCodecID = 9;
5884pub const AVCodecID_AV_CODEC_ID_SP5X: AVCodecID = 10;
5885pub const AVCodecID_AV_CODEC_ID_JPEGLS: AVCodecID = 11;
5886pub const AVCodecID_AV_CODEC_ID_MPEG4: AVCodecID = 12;
5887pub const AVCodecID_AV_CODEC_ID_RAWVIDEO: AVCodecID = 13;
5888pub const AVCodecID_AV_CODEC_ID_MSMPEG4V1: AVCodecID = 14;
5889pub const AVCodecID_AV_CODEC_ID_MSMPEG4V2: AVCodecID = 15;
5890pub const AVCodecID_AV_CODEC_ID_MSMPEG4V3: AVCodecID = 16;
5891pub const AVCodecID_AV_CODEC_ID_WMV1: AVCodecID = 17;
5892pub const AVCodecID_AV_CODEC_ID_WMV2: AVCodecID = 18;
5893pub const AVCodecID_AV_CODEC_ID_H263P: AVCodecID = 19;
5894pub const AVCodecID_AV_CODEC_ID_H263I: AVCodecID = 20;
5895pub const AVCodecID_AV_CODEC_ID_FLV1: AVCodecID = 21;
5896pub const AVCodecID_AV_CODEC_ID_SVQ1: AVCodecID = 22;
5897pub const AVCodecID_AV_CODEC_ID_SVQ3: AVCodecID = 23;
5898pub const AVCodecID_AV_CODEC_ID_DVVIDEO: AVCodecID = 24;
5899pub const AVCodecID_AV_CODEC_ID_HUFFYUV: AVCodecID = 25;
5900pub const AVCodecID_AV_CODEC_ID_CYUV: AVCodecID = 26;
5901pub const AVCodecID_AV_CODEC_ID_H264: AVCodecID = 27;
5902pub const AVCodecID_AV_CODEC_ID_INDEO3: AVCodecID = 28;
5903pub const AVCodecID_AV_CODEC_ID_VP3: AVCodecID = 29;
5904pub const AVCodecID_AV_CODEC_ID_THEORA: AVCodecID = 30;
5905pub const AVCodecID_AV_CODEC_ID_ASV1: AVCodecID = 31;
5906pub const AVCodecID_AV_CODEC_ID_ASV2: AVCodecID = 32;
5907pub const AVCodecID_AV_CODEC_ID_FFV1: AVCodecID = 33;
5908pub const AVCodecID_AV_CODEC_ID_4XM: AVCodecID = 34;
5909pub const AVCodecID_AV_CODEC_ID_VCR1: AVCodecID = 35;
5910pub const AVCodecID_AV_CODEC_ID_CLJR: AVCodecID = 36;
5911pub const AVCodecID_AV_CODEC_ID_MDEC: AVCodecID = 37;
5912pub const AVCodecID_AV_CODEC_ID_ROQ: AVCodecID = 38;
5913pub const AVCodecID_AV_CODEC_ID_INTERPLAY_VIDEO: AVCodecID = 39;
5914pub const AVCodecID_AV_CODEC_ID_XAN_WC3: AVCodecID = 40;
5915pub const AVCodecID_AV_CODEC_ID_XAN_WC4: AVCodecID = 41;
5916pub const AVCodecID_AV_CODEC_ID_RPZA: AVCodecID = 42;
5917pub const AVCodecID_AV_CODEC_ID_CINEPAK: AVCodecID = 43;
5918pub const AVCodecID_AV_CODEC_ID_WS_VQA: AVCodecID = 44;
5919pub const AVCodecID_AV_CODEC_ID_MSRLE: AVCodecID = 45;
5920pub const AVCodecID_AV_CODEC_ID_MSVIDEO1: AVCodecID = 46;
5921pub const AVCodecID_AV_CODEC_ID_IDCIN: AVCodecID = 47;
5922pub const AVCodecID_AV_CODEC_ID_8BPS: AVCodecID = 48;
5923pub const AVCodecID_AV_CODEC_ID_SMC: AVCodecID = 49;
5924pub const AVCodecID_AV_CODEC_ID_FLIC: AVCodecID = 50;
5925pub const AVCodecID_AV_CODEC_ID_TRUEMOTION1: AVCodecID = 51;
5926pub const AVCodecID_AV_CODEC_ID_VMDVIDEO: AVCodecID = 52;
5927pub const AVCodecID_AV_CODEC_ID_MSZH: AVCodecID = 53;
5928pub const AVCodecID_AV_CODEC_ID_ZLIB: AVCodecID = 54;
5929pub const AVCodecID_AV_CODEC_ID_QTRLE: AVCodecID = 55;
5930pub const AVCodecID_AV_CODEC_ID_TSCC: AVCodecID = 56;
5931pub const AVCodecID_AV_CODEC_ID_ULTI: AVCodecID = 57;
5932pub const AVCodecID_AV_CODEC_ID_QDRAW: AVCodecID = 58;
5933pub const AVCodecID_AV_CODEC_ID_VIXL: AVCodecID = 59;
5934pub const AVCodecID_AV_CODEC_ID_QPEG: AVCodecID = 60;
5935pub const AVCodecID_AV_CODEC_ID_PNG: AVCodecID = 61;
5936pub const AVCodecID_AV_CODEC_ID_PPM: AVCodecID = 62;
5937pub const AVCodecID_AV_CODEC_ID_PBM: AVCodecID = 63;
5938pub const AVCodecID_AV_CODEC_ID_PGM: AVCodecID = 64;
5939pub const AVCodecID_AV_CODEC_ID_PGMYUV: AVCodecID = 65;
5940pub const AVCodecID_AV_CODEC_ID_PAM: AVCodecID = 66;
5941pub const AVCodecID_AV_CODEC_ID_FFVHUFF: AVCodecID = 67;
5942pub const AVCodecID_AV_CODEC_ID_RV30: AVCodecID = 68;
5943pub const AVCodecID_AV_CODEC_ID_RV40: AVCodecID = 69;
5944pub const AVCodecID_AV_CODEC_ID_VC1: AVCodecID = 70;
5945pub const AVCodecID_AV_CODEC_ID_WMV3: AVCodecID = 71;
5946pub const AVCodecID_AV_CODEC_ID_LOCO: AVCodecID = 72;
5947pub const AVCodecID_AV_CODEC_ID_WNV1: AVCodecID = 73;
5948pub const AVCodecID_AV_CODEC_ID_AASC: AVCodecID = 74;
5949pub const AVCodecID_AV_CODEC_ID_INDEO2: AVCodecID = 75;
5950pub const AVCodecID_AV_CODEC_ID_FRAPS: AVCodecID = 76;
5951pub const AVCodecID_AV_CODEC_ID_TRUEMOTION2: AVCodecID = 77;
5952pub const AVCodecID_AV_CODEC_ID_BMP: AVCodecID = 78;
5953pub const AVCodecID_AV_CODEC_ID_CSCD: AVCodecID = 79;
5954pub const AVCodecID_AV_CODEC_ID_MMVIDEO: AVCodecID = 80;
5955pub const AVCodecID_AV_CODEC_ID_ZMBV: AVCodecID = 81;
5956pub const AVCodecID_AV_CODEC_ID_AVS: AVCodecID = 82;
5957pub const AVCodecID_AV_CODEC_ID_SMACKVIDEO: AVCodecID = 83;
5958pub const AVCodecID_AV_CODEC_ID_NUV: AVCodecID = 84;
5959pub const AVCodecID_AV_CODEC_ID_KMVC: AVCodecID = 85;
5960pub const AVCodecID_AV_CODEC_ID_FLASHSV: AVCodecID = 86;
5961pub const AVCodecID_AV_CODEC_ID_CAVS: AVCodecID = 87;
5962pub const AVCodecID_AV_CODEC_ID_JPEG2000: AVCodecID = 88;
5963pub const AVCodecID_AV_CODEC_ID_VMNC: AVCodecID = 89;
5964pub const AVCodecID_AV_CODEC_ID_VP5: AVCodecID = 90;
5965pub const AVCodecID_AV_CODEC_ID_VP6: AVCodecID = 91;
5966pub const AVCodecID_AV_CODEC_ID_VP6F: AVCodecID = 92;
5967pub const AVCodecID_AV_CODEC_ID_TARGA: AVCodecID = 93;
5968pub const AVCodecID_AV_CODEC_ID_DSICINVIDEO: AVCodecID = 94;
5969pub const AVCodecID_AV_CODEC_ID_TIERTEXSEQVIDEO: AVCodecID = 95;
5970pub const AVCodecID_AV_CODEC_ID_TIFF: AVCodecID = 96;
5971pub const AVCodecID_AV_CODEC_ID_GIF: AVCodecID = 97;
5972pub const AVCodecID_AV_CODEC_ID_DXA: AVCodecID = 98;
5973pub const AVCodecID_AV_CODEC_ID_DNXHD: AVCodecID = 99;
5974pub const AVCodecID_AV_CODEC_ID_THP: AVCodecID = 100;
5975pub const AVCodecID_AV_CODEC_ID_SGI: AVCodecID = 101;
5976pub const AVCodecID_AV_CODEC_ID_C93: AVCodecID = 102;
5977pub const AVCodecID_AV_CODEC_ID_BETHSOFTVID: AVCodecID = 103;
5978pub const AVCodecID_AV_CODEC_ID_PTX: AVCodecID = 104;
5979pub const AVCodecID_AV_CODEC_ID_TXD: AVCodecID = 105;
5980pub const AVCodecID_AV_CODEC_ID_VP6A: AVCodecID = 106;
5981pub const AVCodecID_AV_CODEC_ID_AMV: AVCodecID = 107;
5982pub const AVCodecID_AV_CODEC_ID_VB: AVCodecID = 108;
5983pub const AVCodecID_AV_CODEC_ID_PCX: AVCodecID = 109;
5984pub const AVCodecID_AV_CODEC_ID_SUNRAST: AVCodecID = 110;
5985pub const AVCodecID_AV_CODEC_ID_INDEO4: AVCodecID = 111;
5986pub const AVCodecID_AV_CODEC_ID_INDEO5: AVCodecID = 112;
5987pub const AVCodecID_AV_CODEC_ID_MIMIC: AVCodecID = 113;
5988pub const AVCodecID_AV_CODEC_ID_RL2: AVCodecID = 114;
5989pub const AVCodecID_AV_CODEC_ID_ESCAPE124: AVCodecID = 115;
5990pub const AVCodecID_AV_CODEC_ID_DIRAC: AVCodecID = 116;
5991pub const AVCodecID_AV_CODEC_ID_BFI: AVCodecID = 117;
5992pub const AVCodecID_AV_CODEC_ID_CMV: AVCodecID = 118;
5993pub const AVCodecID_AV_CODEC_ID_MOTIONPIXELS: AVCodecID = 119;
5994pub const AVCodecID_AV_CODEC_ID_TGV: AVCodecID = 120;
5995pub const AVCodecID_AV_CODEC_ID_TGQ: AVCodecID = 121;
5996pub const AVCodecID_AV_CODEC_ID_TQI: AVCodecID = 122;
5997pub const AVCodecID_AV_CODEC_ID_AURA: AVCodecID = 123;
5998pub const AVCodecID_AV_CODEC_ID_AURA2: AVCodecID = 124;
5999pub const AVCodecID_AV_CODEC_ID_V210X: AVCodecID = 125;
6000pub const AVCodecID_AV_CODEC_ID_TMV: AVCodecID = 126;
6001pub const AVCodecID_AV_CODEC_ID_V210: AVCodecID = 127;
6002pub const AVCodecID_AV_CODEC_ID_DPX: AVCodecID = 128;
6003pub const AVCodecID_AV_CODEC_ID_MAD: AVCodecID = 129;
6004pub const AVCodecID_AV_CODEC_ID_FRWU: AVCodecID = 130;
6005pub const AVCodecID_AV_CODEC_ID_FLASHSV2: AVCodecID = 131;
6006pub const AVCodecID_AV_CODEC_ID_CDGRAPHICS: AVCodecID = 132;
6007pub const AVCodecID_AV_CODEC_ID_R210: AVCodecID = 133;
6008pub const AVCodecID_AV_CODEC_ID_ANM: AVCodecID = 134;
6009pub const AVCodecID_AV_CODEC_ID_BINKVIDEO: AVCodecID = 135;
6010pub const AVCodecID_AV_CODEC_ID_IFF_ILBM: AVCodecID = 136;
6011pub const AVCodecID_AV_CODEC_ID_KGV1: AVCodecID = 137;
6012pub const AVCodecID_AV_CODEC_ID_YOP: AVCodecID = 138;
6013pub const AVCodecID_AV_CODEC_ID_VP8: AVCodecID = 139;
6014pub const AVCodecID_AV_CODEC_ID_PICTOR: AVCodecID = 140;
6015pub const AVCodecID_AV_CODEC_ID_ANSI: AVCodecID = 141;
6016pub const AVCodecID_AV_CODEC_ID_A64_MULTI: AVCodecID = 142;
6017pub const AVCodecID_AV_CODEC_ID_A64_MULTI5: AVCodecID = 143;
6018pub const AVCodecID_AV_CODEC_ID_R10K: AVCodecID = 144;
6019pub const AVCodecID_AV_CODEC_ID_MXPEG: AVCodecID = 145;
6020pub const AVCodecID_AV_CODEC_ID_LAGARITH: AVCodecID = 146;
6021pub const AVCodecID_AV_CODEC_ID_PRORES: AVCodecID = 147;
6022pub const AVCodecID_AV_CODEC_ID_JV: AVCodecID = 148;
6023pub const AVCodecID_AV_CODEC_ID_DFA: AVCodecID = 149;
6024pub const AVCodecID_AV_CODEC_ID_WMV3IMAGE: AVCodecID = 150;
6025pub const AVCodecID_AV_CODEC_ID_VC1IMAGE: AVCodecID = 151;
6026pub const AVCodecID_AV_CODEC_ID_UTVIDEO: AVCodecID = 152;
6027pub const AVCodecID_AV_CODEC_ID_BMV_VIDEO: AVCodecID = 153;
6028pub const AVCodecID_AV_CODEC_ID_VBLE: AVCodecID = 154;
6029pub const AVCodecID_AV_CODEC_ID_DXTORY: AVCodecID = 155;
6030pub const AVCodecID_AV_CODEC_ID_V410: AVCodecID = 156;
6031pub const AVCodecID_AV_CODEC_ID_XWD: AVCodecID = 157;
6032pub const AVCodecID_AV_CODEC_ID_CDXL: AVCodecID = 158;
6033pub const AVCodecID_AV_CODEC_ID_XBM: AVCodecID = 159;
6034pub const AVCodecID_AV_CODEC_ID_ZEROCODEC: AVCodecID = 160;
6035pub const AVCodecID_AV_CODEC_ID_MSS1: AVCodecID = 161;
6036pub const AVCodecID_AV_CODEC_ID_MSA1: AVCodecID = 162;
6037pub const AVCodecID_AV_CODEC_ID_TSCC2: AVCodecID = 163;
6038pub const AVCodecID_AV_CODEC_ID_MTS2: AVCodecID = 164;
6039pub const AVCodecID_AV_CODEC_ID_CLLC: AVCodecID = 165;
6040pub const AVCodecID_AV_CODEC_ID_MSS2: AVCodecID = 166;
6041pub const AVCodecID_AV_CODEC_ID_VP9: AVCodecID = 167;
6042pub const AVCodecID_AV_CODEC_ID_AIC: AVCodecID = 168;
6043pub const AVCodecID_AV_CODEC_ID_ESCAPE130: AVCodecID = 169;
6044pub const AVCodecID_AV_CODEC_ID_G2M: AVCodecID = 170;
6045pub const AVCodecID_AV_CODEC_ID_WEBP: AVCodecID = 171;
6046pub const AVCodecID_AV_CODEC_ID_HNM4_VIDEO: AVCodecID = 172;
6047pub const AVCodecID_AV_CODEC_ID_HEVC: AVCodecID = 173;
6048pub const AVCodecID_AV_CODEC_ID_FIC: AVCodecID = 174;
6049pub const AVCodecID_AV_CODEC_ID_ALIAS_PIX: AVCodecID = 175;
6050pub const AVCodecID_AV_CODEC_ID_BRENDER_PIX: AVCodecID = 176;
6051pub const AVCodecID_AV_CODEC_ID_PAF_VIDEO: AVCodecID = 177;
6052pub const AVCodecID_AV_CODEC_ID_EXR: AVCodecID = 178;
6053pub const AVCodecID_AV_CODEC_ID_VP7: AVCodecID = 179;
6054pub const AVCodecID_AV_CODEC_ID_SANM: AVCodecID = 180;
6055pub const AVCodecID_AV_CODEC_ID_SGIRLE: AVCodecID = 181;
6056pub const AVCodecID_AV_CODEC_ID_MVC1: AVCodecID = 182;
6057pub const AVCodecID_AV_CODEC_ID_MVC2: AVCodecID = 183;
6058pub const AVCodecID_AV_CODEC_ID_HQX: AVCodecID = 184;
6059pub const AVCodecID_AV_CODEC_ID_TDSC: AVCodecID = 185;
6060pub const AVCodecID_AV_CODEC_ID_HQ_HQA: AVCodecID = 186;
6061pub const AVCodecID_AV_CODEC_ID_HAP: AVCodecID = 187;
6062pub const AVCodecID_AV_CODEC_ID_DDS: AVCodecID = 188;
6063pub const AVCodecID_AV_CODEC_ID_DXV: AVCodecID = 189;
6064pub const AVCodecID_AV_CODEC_ID_SCREENPRESSO: AVCodecID = 190;
6065pub const AVCodecID_AV_CODEC_ID_RSCC: AVCodecID = 191;
6066pub const AVCodecID_AV_CODEC_ID_AVS2: AVCodecID = 192;
6067pub const AVCodecID_AV_CODEC_ID_Y41P: AVCodecID = 32768;
6068pub const AVCodecID_AV_CODEC_ID_AVRP: AVCodecID = 32769;
6069pub const AVCodecID_AV_CODEC_ID_012V: AVCodecID = 32770;
6070pub const AVCodecID_AV_CODEC_ID_AVUI: AVCodecID = 32771;
6071pub const AVCodecID_AV_CODEC_ID_AYUV: AVCodecID = 32772;
6072pub const AVCodecID_AV_CODEC_ID_TARGA_Y216: AVCodecID = 32773;
6073pub const AVCodecID_AV_CODEC_ID_V308: AVCodecID = 32774;
6074pub const AVCodecID_AV_CODEC_ID_V408: AVCodecID = 32775;
6075pub const AVCodecID_AV_CODEC_ID_YUV4: AVCodecID = 32776;
6076pub const AVCodecID_AV_CODEC_ID_AVRN: AVCodecID = 32777;
6077pub const AVCodecID_AV_CODEC_ID_CPIA: AVCodecID = 32778;
6078pub const AVCodecID_AV_CODEC_ID_XFACE: AVCodecID = 32779;
6079pub const AVCodecID_AV_CODEC_ID_SNOW: AVCodecID = 32780;
6080pub const AVCodecID_AV_CODEC_ID_SMVJPEG: AVCodecID = 32781;
6081pub const AVCodecID_AV_CODEC_ID_APNG: AVCodecID = 32782;
6082pub const AVCodecID_AV_CODEC_ID_DAALA: AVCodecID = 32783;
6083pub const AVCodecID_AV_CODEC_ID_CFHD: AVCodecID = 32784;
6084pub const AVCodecID_AV_CODEC_ID_TRUEMOTION2RT: AVCodecID = 32785;
6085pub const AVCodecID_AV_CODEC_ID_M101: AVCodecID = 32786;
6086pub const AVCodecID_AV_CODEC_ID_MAGICYUV: AVCodecID = 32787;
6087pub const AVCodecID_AV_CODEC_ID_SHEERVIDEO: AVCodecID = 32788;
6088pub const AVCodecID_AV_CODEC_ID_YLC: AVCodecID = 32789;
6089pub const AVCodecID_AV_CODEC_ID_PSD: AVCodecID = 32790;
6090pub const AVCodecID_AV_CODEC_ID_PIXLET: AVCodecID = 32791;
6091pub const AVCodecID_AV_CODEC_ID_SPEEDHQ: AVCodecID = 32792;
6092pub const AVCodecID_AV_CODEC_ID_FMVC: AVCodecID = 32793;
6093pub const AVCodecID_AV_CODEC_ID_SCPR: AVCodecID = 32794;
6094pub const AVCodecID_AV_CODEC_ID_CLEARVIDEO: AVCodecID = 32795;
6095pub const AVCodecID_AV_CODEC_ID_XPM: AVCodecID = 32796;
6096pub const AVCodecID_AV_CODEC_ID_AV1: AVCodecID = 32797;
6097pub const AVCodecID_AV_CODEC_ID_BITPACKED: AVCodecID = 32798;
6098pub const AVCodecID_AV_CODEC_ID_MSCC: AVCodecID = 32799;
6099pub const AVCodecID_AV_CODEC_ID_SRGC: AVCodecID = 32800;
6100pub const AVCodecID_AV_CODEC_ID_SVG: AVCodecID = 32801;
6101pub const AVCodecID_AV_CODEC_ID_GDV: AVCodecID = 32802;
6102pub const AVCodecID_AV_CODEC_ID_FITS: AVCodecID = 32803;
6103pub const AVCodecID_AV_CODEC_ID_IMM4: AVCodecID = 32804;
6104pub const AVCodecID_AV_CODEC_ID_PROSUMER: AVCodecID = 32805;
6105pub const AVCodecID_AV_CODEC_ID_MWSC: AVCodecID = 32806;
6106pub const AVCodecID_AV_CODEC_ID_WCMV: AVCodecID = 32807;
6107pub const AVCodecID_AV_CODEC_ID_RASC: AVCodecID = 32808;
6108pub const AVCodecID_AV_CODEC_ID_FIRST_AUDIO: AVCodecID = 65536;
6109pub const AVCodecID_AV_CODEC_ID_PCM_S16LE: AVCodecID = 65536;
6110pub const AVCodecID_AV_CODEC_ID_PCM_S16BE: AVCodecID = 65537;
6111pub const AVCodecID_AV_CODEC_ID_PCM_U16LE: AVCodecID = 65538;
6112pub const AVCodecID_AV_CODEC_ID_PCM_U16BE: AVCodecID = 65539;
6113pub const AVCodecID_AV_CODEC_ID_PCM_S8: AVCodecID = 65540;
6114pub const AVCodecID_AV_CODEC_ID_PCM_U8: AVCodecID = 65541;
6115pub const AVCodecID_AV_CODEC_ID_PCM_MULAW: AVCodecID = 65542;
6116pub const AVCodecID_AV_CODEC_ID_PCM_ALAW: AVCodecID = 65543;
6117pub const AVCodecID_AV_CODEC_ID_PCM_S32LE: AVCodecID = 65544;
6118pub const AVCodecID_AV_CODEC_ID_PCM_S32BE: AVCodecID = 65545;
6119pub const AVCodecID_AV_CODEC_ID_PCM_U32LE: AVCodecID = 65546;
6120pub const AVCodecID_AV_CODEC_ID_PCM_U32BE: AVCodecID = 65547;
6121pub const AVCodecID_AV_CODEC_ID_PCM_S24LE: AVCodecID = 65548;
6122pub const AVCodecID_AV_CODEC_ID_PCM_S24BE: AVCodecID = 65549;
6123pub const AVCodecID_AV_CODEC_ID_PCM_U24LE: AVCodecID = 65550;
6124pub const AVCodecID_AV_CODEC_ID_PCM_U24BE: AVCodecID = 65551;
6125pub const AVCodecID_AV_CODEC_ID_PCM_S24DAUD: AVCodecID = 65552;
6126pub const AVCodecID_AV_CODEC_ID_PCM_ZORK: AVCodecID = 65553;
6127pub const AVCodecID_AV_CODEC_ID_PCM_S16LE_PLANAR: AVCodecID = 65554;
6128pub const AVCodecID_AV_CODEC_ID_PCM_DVD: AVCodecID = 65555;
6129pub const AVCodecID_AV_CODEC_ID_PCM_F32BE: AVCodecID = 65556;
6130pub const AVCodecID_AV_CODEC_ID_PCM_F32LE: AVCodecID = 65557;
6131pub const AVCodecID_AV_CODEC_ID_PCM_F64BE: AVCodecID = 65558;
6132pub const AVCodecID_AV_CODEC_ID_PCM_F64LE: AVCodecID = 65559;
6133pub const AVCodecID_AV_CODEC_ID_PCM_BLURAY: AVCodecID = 65560;
6134pub const AVCodecID_AV_CODEC_ID_PCM_LXF: AVCodecID = 65561;
6135pub const AVCodecID_AV_CODEC_ID_S302M: AVCodecID = 65562;
6136pub const AVCodecID_AV_CODEC_ID_PCM_S8_PLANAR: AVCodecID = 65563;
6137pub const AVCodecID_AV_CODEC_ID_PCM_S24LE_PLANAR: AVCodecID = 65564;
6138pub const AVCodecID_AV_CODEC_ID_PCM_S32LE_PLANAR: AVCodecID = 65565;
6139pub const AVCodecID_AV_CODEC_ID_PCM_S16BE_PLANAR: AVCodecID = 65566;
6140pub const AVCodecID_AV_CODEC_ID_PCM_S64LE: AVCodecID = 67584;
6141pub const AVCodecID_AV_CODEC_ID_PCM_S64BE: AVCodecID = 67585;
6142pub const AVCodecID_AV_CODEC_ID_PCM_F16LE: AVCodecID = 67586;
6143pub const AVCodecID_AV_CODEC_ID_PCM_F24LE: AVCodecID = 67587;
6144pub const AVCodecID_AV_CODEC_ID_PCM_VIDC: AVCodecID = 67588;
6145pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_QT: AVCodecID = 69632;
6146pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_WAV: AVCodecID = 69633;
6147pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_DK3: AVCodecID = 69634;
6148pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_DK4: AVCodecID = 69635;
6149pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_WS: AVCodecID = 69636;
6150pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_SMJPEG: AVCodecID = 69637;
6151pub const AVCodecID_AV_CODEC_ID_ADPCM_MS: AVCodecID = 69638;
6152pub const AVCodecID_AV_CODEC_ID_ADPCM_4XM: AVCodecID = 69639;
6153pub const AVCodecID_AV_CODEC_ID_ADPCM_XA: AVCodecID = 69640;
6154pub const AVCodecID_AV_CODEC_ID_ADPCM_ADX: AVCodecID = 69641;
6155pub const AVCodecID_AV_CODEC_ID_ADPCM_EA: AVCodecID = 69642;
6156pub const AVCodecID_AV_CODEC_ID_ADPCM_G726: AVCodecID = 69643;
6157pub const AVCodecID_AV_CODEC_ID_ADPCM_CT: AVCodecID = 69644;
6158pub const AVCodecID_AV_CODEC_ID_ADPCM_SWF: AVCodecID = 69645;
6159pub const AVCodecID_AV_CODEC_ID_ADPCM_YAMAHA: AVCodecID = 69646;
6160pub const AVCodecID_AV_CODEC_ID_ADPCM_SBPRO_4: AVCodecID = 69647;
6161pub const AVCodecID_AV_CODEC_ID_ADPCM_SBPRO_3: AVCodecID = 69648;
6162pub const AVCodecID_AV_CODEC_ID_ADPCM_SBPRO_2: AVCodecID = 69649;
6163pub const AVCodecID_AV_CODEC_ID_ADPCM_THP: AVCodecID = 69650;
6164pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_AMV: AVCodecID = 69651;
6165pub const AVCodecID_AV_CODEC_ID_ADPCM_EA_R1: AVCodecID = 69652;
6166pub const AVCodecID_AV_CODEC_ID_ADPCM_EA_R3: AVCodecID = 69653;
6167pub const AVCodecID_AV_CODEC_ID_ADPCM_EA_R2: AVCodecID = 69654;
6168pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_EA_SEAD: AVCodecID = 69655;
6169pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_EA_EACS: AVCodecID = 69656;
6170pub const AVCodecID_AV_CODEC_ID_ADPCM_EA_XAS: AVCodecID = 69657;
6171pub const AVCodecID_AV_CODEC_ID_ADPCM_EA_MAXIS_XA: AVCodecID = 69658;
6172pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_ISS: AVCodecID = 69659;
6173pub const AVCodecID_AV_CODEC_ID_ADPCM_G722: AVCodecID = 69660;
6174pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_APC: AVCodecID = 69661;
6175pub const AVCodecID_AV_CODEC_ID_ADPCM_VIMA: AVCodecID = 69662;
6176pub const AVCodecID_AV_CODEC_ID_ADPCM_AFC: AVCodecID = 71680;
6177pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_OKI: AVCodecID = 71681;
6178pub const AVCodecID_AV_CODEC_ID_ADPCM_DTK: AVCodecID = 71682;
6179pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_RAD: AVCodecID = 71683;
6180pub const AVCodecID_AV_CODEC_ID_ADPCM_G726LE: AVCodecID = 71684;
6181pub const AVCodecID_AV_CODEC_ID_ADPCM_THP_LE: AVCodecID = 71685;
6182pub const AVCodecID_AV_CODEC_ID_ADPCM_PSX: AVCodecID = 71686;
6183pub const AVCodecID_AV_CODEC_ID_ADPCM_AICA: AVCodecID = 71687;
6184pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_DAT4: AVCodecID = 71688;
6185pub const AVCodecID_AV_CODEC_ID_ADPCM_MTAF: AVCodecID = 71689;
6186pub const AVCodecID_AV_CODEC_ID_AMR_NB: AVCodecID = 73728;
6187pub const AVCodecID_AV_CODEC_ID_AMR_WB: AVCodecID = 73729;
6188pub const AVCodecID_AV_CODEC_ID_RA_144: AVCodecID = 77824;
6189pub const AVCodecID_AV_CODEC_ID_RA_288: AVCodecID = 77825;
6190pub const AVCodecID_AV_CODEC_ID_ROQ_DPCM: AVCodecID = 81920;
6191pub const AVCodecID_AV_CODEC_ID_INTERPLAY_DPCM: AVCodecID = 81921;
6192pub const AVCodecID_AV_CODEC_ID_XAN_DPCM: AVCodecID = 81922;
6193pub const AVCodecID_AV_CODEC_ID_SOL_DPCM: AVCodecID = 81923;
6194pub const AVCodecID_AV_CODEC_ID_SDX2_DPCM: AVCodecID = 83968;
6195pub const AVCodecID_AV_CODEC_ID_GREMLIN_DPCM: AVCodecID = 83969;
6196pub const AVCodecID_AV_CODEC_ID_MP2: AVCodecID = 86016;
6197pub const AVCodecID_AV_CODEC_ID_MP3: AVCodecID = 86017;
6198pub const AVCodecID_AV_CODEC_ID_AAC: AVCodecID = 86018;
6199pub const AVCodecID_AV_CODEC_ID_AC3: AVCodecID = 86019;
6200pub const AVCodecID_AV_CODEC_ID_DTS: AVCodecID = 86020;
6201pub const AVCodecID_AV_CODEC_ID_VORBIS: AVCodecID = 86021;
6202pub const AVCodecID_AV_CODEC_ID_DVAUDIO: AVCodecID = 86022;
6203pub const AVCodecID_AV_CODEC_ID_WMAV1: AVCodecID = 86023;
6204pub const AVCodecID_AV_CODEC_ID_WMAV2: AVCodecID = 86024;
6205pub const AVCodecID_AV_CODEC_ID_MACE3: AVCodecID = 86025;
6206pub const AVCodecID_AV_CODEC_ID_MACE6: AVCodecID = 86026;
6207pub const AVCodecID_AV_CODEC_ID_VMDAUDIO: AVCodecID = 86027;
6208pub const AVCodecID_AV_CODEC_ID_FLAC: AVCodecID = 86028;
6209pub const AVCodecID_AV_CODEC_ID_MP3ADU: AVCodecID = 86029;
6210pub const AVCodecID_AV_CODEC_ID_MP3ON4: AVCodecID = 86030;
6211pub const AVCodecID_AV_CODEC_ID_SHORTEN: AVCodecID = 86031;
6212pub const AVCodecID_AV_CODEC_ID_ALAC: AVCodecID = 86032;
6213pub const AVCodecID_AV_CODEC_ID_WESTWOOD_SND1: AVCodecID = 86033;
6214pub const AVCodecID_AV_CODEC_ID_GSM: AVCodecID = 86034;
6215pub const AVCodecID_AV_CODEC_ID_QDM2: AVCodecID = 86035;
6216pub const AVCodecID_AV_CODEC_ID_COOK: AVCodecID = 86036;
6217pub const AVCodecID_AV_CODEC_ID_TRUESPEECH: AVCodecID = 86037;
6218pub const AVCodecID_AV_CODEC_ID_TTA: AVCodecID = 86038;
6219pub const AVCodecID_AV_CODEC_ID_SMACKAUDIO: AVCodecID = 86039;
6220pub const AVCodecID_AV_CODEC_ID_QCELP: AVCodecID = 86040;
6221pub const AVCodecID_AV_CODEC_ID_WAVPACK: AVCodecID = 86041;
6222pub const AVCodecID_AV_CODEC_ID_DSICINAUDIO: AVCodecID = 86042;
6223pub const AVCodecID_AV_CODEC_ID_IMC: AVCodecID = 86043;
6224pub const AVCodecID_AV_CODEC_ID_MUSEPACK7: AVCodecID = 86044;
6225pub const AVCodecID_AV_CODEC_ID_MLP: AVCodecID = 86045;
6226pub const AVCodecID_AV_CODEC_ID_GSM_MS: AVCodecID = 86046;
6227pub const AVCodecID_AV_CODEC_ID_ATRAC3: AVCodecID = 86047;
6228pub const AVCodecID_AV_CODEC_ID_APE: AVCodecID = 86048;
6229pub const AVCodecID_AV_CODEC_ID_NELLYMOSER: AVCodecID = 86049;
6230pub const AVCodecID_AV_CODEC_ID_MUSEPACK8: AVCodecID = 86050;
6231pub const AVCodecID_AV_CODEC_ID_SPEEX: AVCodecID = 86051;
6232pub const AVCodecID_AV_CODEC_ID_WMAVOICE: AVCodecID = 86052;
6233pub const AVCodecID_AV_CODEC_ID_WMAPRO: AVCodecID = 86053;
6234pub const AVCodecID_AV_CODEC_ID_WMALOSSLESS: AVCodecID = 86054;
6235pub const AVCodecID_AV_CODEC_ID_ATRAC3P: AVCodecID = 86055;
6236pub const AVCodecID_AV_CODEC_ID_EAC3: AVCodecID = 86056;
6237pub const AVCodecID_AV_CODEC_ID_SIPR: AVCodecID = 86057;
6238pub const AVCodecID_AV_CODEC_ID_MP1: AVCodecID = 86058;
6239pub const AVCodecID_AV_CODEC_ID_TWINVQ: AVCodecID = 86059;
6240pub const AVCodecID_AV_CODEC_ID_TRUEHD: AVCodecID = 86060;
6241pub const AVCodecID_AV_CODEC_ID_MP4ALS: AVCodecID = 86061;
6242pub const AVCodecID_AV_CODEC_ID_ATRAC1: AVCodecID = 86062;
6243pub const AVCodecID_AV_CODEC_ID_BINKAUDIO_RDFT: AVCodecID = 86063;
6244pub const AVCodecID_AV_CODEC_ID_BINKAUDIO_DCT: AVCodecID = 86064;
6245pub const AVCodecID_AV_CODEC_ID_AAC_LATM: AVCodecID = 86065;
6246pub const AVCodecID_AV_CODEC_ID_QDMC: AVCodecID = 86066;
6247pub const AVCodecID_AV_CODEC_ID_CELT: AVCodecID = 86067;
6248pub const AVCodecID_AV_CODEC_ID_G723_1: AVCodecID = 86068;
6249pub const AVCodecID_AV_CODEC_ID_G729: AVCodecID = 86069;
6250pub const AVCodecID_AV_CODEC_ID_8SVX_EXP: AVCodecID = 86070;
6251pub const AVCodecID_AV_CODEC_ID_8SVX_FIB: AVCodecID = 86071;
6252pub const AVCodecID_AV_CODEC_ID_BMV_AUDIO: AVCodecID = 86072;
6253pub const AVCodecID_AV_CODEC_ID_RALF: AVCodecID = 86073;
6254pub const AVCodecID_AV_CODEC_ID_IAC: AVCodecID = 86074;
6255pub const AVCodecID_AV_CODEC_ID_ILBC: AVCodecID = 86075;
6256pub const AVCodecID_AV_CODEC_ID_OPUS: AVCodecID = 86076;
6257pub const AVCodecID_AV_CODEC_ID_COMFORT_NOISE: AVCodecID = 86077;
6258pub const AVCodecID_AV_CODEC_ID_TAK: AVCodecID = 86078;
6259pub const AVCodecID_AV_CODEC_ID_METASOUND: AVCodecID = 86079;
6260pub const AVCodecID_AV_CODEC_ID_PAF_AUDIO: AVCodecID = 86080;
6261pub const AVCodecID_AV_CODEC_ID_ON2AVC: AVCodecID = 86081;
6262pub const AVCodecID_AV_CODEC_ID_DSS_SP: AVCodecID = 86082;
6263pub const AVCodecID_AV_CODEC_ID_CODEC2: AVCodecID = 86083;
6264pub const AVCodecID_AV_CODEC_ID_FFWAVESYNTH: AVCodecID = 88064;
6265pub const AVCodecID_AV_CODEC_ID_SONIC: AVCodecID = 88065;
6266pub const AVCodecID_AV_CODEC_ID_SONIC_LS: AVCodecID = 88066;
6267pub const AVCodecID_AV_CODEC_ID_EVRC: AVCodecID = 88067;
6268pub const AVCodecID_AV_CODEC_ID_SMV: AVCodecID = 88068;
6269pub const AVCodecID_AV_CODEC_ID_DSD_LSBF: AVCodecID = 88069;
6270pub const AVCodecID_AV_CODEC_ID_DSD_MSBF: AVCodecID = 88070;
6271pub const AVCodecID_AV_CODEC_ID_DSD_LSBF_PLANAR: AVCodecID = 88071;
6272pub const AVCodecID_AV_CODEC_ID_DSD_MSBF_PLANAR: AVCodecID = 88072;
6273pub const AVCodecID_AV_CODEC_ID_4GV: AVCodecID = 88073;
6274pub const AVCodecID_AV_CODEC_ID_INTERPLAY_ACM: AVCodecID = 88074;
6275pub const AVCodecID_AV_CODEC_ID_XMA1: AVCodecID = 88075;
6276pub const AVCodecID_AV_CODEC_ID_XMA2: AVCodecID = 88076;
6277pub const AVCodecID_AV_CODEC_ID_DST: AVCodecID = 88077;
6278pub const AVCodecID_AV_CODEC_ID_ATRAC3AL: AVCodecID = 88078;
6279pub const AVCodecID_AV_CODEC_ID_ATRAC3PAL: AVCodecID = 88079;
6280pub const AVCodecID_AV_CODEC_ID_DOLBY_E: AVCodecID = 88080;
6281pub const AVCodecID_AV_CODEC_ID_APTX: AVCodecID = 88081;
6282pub const AVCodecID_AV_CODEC_ID_APTX_HD: AVCodecID = 88082;
6283pub const AVCodecID_AV_CODEC_ID_SBC: AVCodecID = 88083;
6284pub const AVCodecID_AV_CODEC_ID_ATRAC9: AVCodecID = 88084;
6285pub const AVCodecID_AV_CODEC_ID_FIRST_SUBTITLE: AVCodecID = 94208;
6286pub const AVCodecID_AV_CODEC_ID_DVD_SUBTITLE: AVCodecID = 94208;
6287pub const AVCodecID_AV_CODEC_ID_DVB_SUBTITLE: AVCodecID = 94209;
6288pub const AVCodecID_AV_CODEC_ID_TEXT: AVCodecID = 94210;
6289pub const AVCodecID_AV_CODEC_ID_XSUB: AVCodecID = 94211;
6290pub const AVCodecID_AV_CODEC_ID_SSA: AVCodecID = 94212;
6291pub const AVCodecID_AV_CODEC_ID_MOV_TEXT: AVCodecID = 94213;
6292pub const AVCodecID_AV_CODEC_ID_HDMV_PGS_SUBTITLE: AVCodecID = 94214;
6293pub const AVCodecID_AV_CODEC_ID_DVB_TELETEXT: AVCodecID = 94215;
6294pub const AVCodecID_AV_CODEC_ID_SRT: AVCodecID = 94216;
6295pub const AVCodecID_AV_CODEC_ID_MICRODVD: AVCodecID = 96256;
6296pub const AVCodecID_AV_CODEC_ID_EIA_608: AVCodecID = 96257;
6297pub const AVCodecID_AV_CODEC_ID_JACOSUB: AVCodecID = 96258;
6298pub const AVCodecID_AV_CODEC_ID_SAMI: AVCodecID = 96259;
6299pub const AVCodecID_AV_CODEC_ID_REALTEXT: AVCodecID = 96260;
6300pub const AVCodecID_AV_CODEC_ID_STL: AVCodecID = 96261;
6301pub const AVCodecID_AV_CODEC_ID_SUBVIEWER1: AVCodecID = 96262;
6302pub const AVCodecID_AV_CODEC_ID_SUBVIEWER: AVCodecID = 96263;
6303pub const AVCodecID_AV_CODEC_ID_SUBRIP: AVCodecID = 96264;
6304pub const AVCodecID_AV_CODEC_ID_WEBVTT: AVCodecID = 96265;
6305pub const AVCodecID_AV_CODEC_ID_MPL2: AVCodecID = 96266;
6306pub const AVCodecID_AV_CODEC_ID_VPLAYER: AVCodecID = 96267;
6307pub const AVCodecID_AV_CODEC_ID_PJS: AVCodecID = 96268;
6308pub const AVCodecID_AV_CODEC_ID_ASS: AVCodecID = 96269;
6309pub const AVCodecID_AV_CODEC_ID_HDMV_TEXT_SUBTITLE: AVCodecID = 96270;
6310pub const AVCodecID_AV_CODEC_ID_TTML: AVCodecID = 96271;
6311pub const AVCodecID_AV_CODEC_ID_FIRST_UNKNOWN: AVCodecID = 98304;
6312pub const AVCodecID_AV_CODEC_ID_TTF: AVCodecID = 98304;
6313pub const AVCodecID_AV_CODEC_ID_SCTE_35: AVCodecID = 98305;
6314pub const AVCodecID_AV_CODEC_ID_BINTEXT: AVCodecID = 100352;
6315pub const AVCodecID_AV_CODEC_ID_XBIN: AVCodecID = 100353;
6316pub const AVCodecID_AV_CODEC_ID_IDF: AVCodecID = 100354;
6317pub const AVCodecID_AV_CODEC_ID_OTF: AVCodecID = 100355;
6318pub const AVCodecID_AV_CODEC_ID_SMPTE_KLV: AVCodecID = 100356;
6319pub const AVCodecID_AV_CODEC_ID_DVD_NAV: AVCodecID = 100357;
6320pub const AVCodecID_AV_CODEC_ID_TIMED_ID3: AVCodecID = 100358;
6321pub const AVCodecID_AV_CODEC_ID_BIN_DATA: AVCodecID = 100359;
6322pub const AVCodecID_AV_CODEC_ID_PROBE: AVCodecID = 102400;
6323pub const AVCodecID_AV_CODEC_ID_MPEG2TS: AVCodecID = 131072;
6324pub const AVCodecID_AV_CODEC_ID_MPEG4SYSTEMS: AVCodecID = 131073;
6325pub const AVCodecID_AV_CODEC_ID_FFMETADATA: AVCodecID = 135168;
6326pub const AVCodecID_AV_CODEC_ID_WRAPPED_AVFRAME: AVCodecID = 135169;
6327pub type AVCodecID = u32;
6328#[repr(C)]
6329#[derive(Debug, Copy, Clone)]
6330pub struct AVCodecDescriptor {
6331    pub id: AVCodecID,
6332    pub type_: AVMediaType,
6333    pub name: *const ::std::os::raw::c_char,
6334    pub long_name: *const ::std::os::raw::c_char,
6335    pub props: ::std::os::raw::c_int,
6336    pub mime_types: *const *const ::std::os::raw::c_char,
6337    pub profiles: *const AVProfile,
6338}
6339pub const AVDiscard_AVDISCARD_NONE: AVDiscard = -16;
6340pub const AVDiscard_AVDISCARD_DEFAULT: AVDiscard = 0;
6341pub const AVDiscard_AVDISCARD_NONREF: AVDiscard = 8;
6342pub const AVDiscard_AVDISCARD_BIDIR: AVDiscard = 16;
6343pub const AVDiscard_AVDISCARD_NONINTRA: AVDiscard = 24;
6344pub const AVDiscard_AVDISCARD_NONKEY: AVDiscard = 32;
6345pub const AVDiscard_AVDISCARD_ALL: AVDiscard = 48;
6346pub type AVDiscard = i32;
6347pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_MAIN: AVAudioServiceType = 0;
6348pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_EFFECTS: AVAudioServiceType = 1;
6349pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED: AVAudioServiceType = 2;
6350pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED: AVAudioServiceType = 3;
6351pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_DIALOGUE: AVAudioServiceType = 4;
6352pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_COMMENTARY: AVAudioServiceType = 5;
6353pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_EMERGENCY: AVAudioServiceType = 6;
6354pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_VOICE_OVER: AVAudioServiceType = 7;
6355pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_KARAOKE: AVAudioServiceType = 8;
6356pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_NB: AVAudioServiceType = 9;
6357pub type AVAudioServiceType = u32;
6358#[repr(C)]
6359#[derive(Debug, Copy, Clone)]
6360pub struct RcOverride {
6361    pub start_frame: ::std::os::raw::c_int,
6362    pub end_frame: ::std::os::raw::c_int,
6363    pub qscale: ::std::os::raw::c_int,
6364    pub quality_factor: f32,
6365}
6366#[repr(C)]
6367#[derive(Debug, Copy, Clone)]
6368pub struct AVPanScan {
6369    pub id: ::std::os::raw::c_int,
6370    pub width: ::std::os::raw::c_int,
6371    pub height: ::std::os::raw::c_int,
6372    pub position: [[i16; 2usize]; 3usize],
6373}
6374#[repr(C)]
6375#[derive(Debug, Copy, Clone)]
6376pub struct AVCPBProperties {
6377    pub max_bitrate: ::std::os::raw::c_int,
6378    pub min_bitrate: ::std::os::raw::c_int,
6379    pub avg_bitrate: ::std::os::raw::c_int,
6380    pub buffer_size: ::std::os::raw::c_int,
6381    pub vbv_delay: u64,
6382}
6383pub const AVPacketSideDataType_AV_PKT_DATA_PALETTE: AVPacketSideDataType = 0;
6384pub const AVPacketSideDataType_AV_PKT_DATA_NEW_EXTRADATA: AVPacketSideDataType = 1;
6385pub const AVPacketSideDataType_AV_PKT_DATA_PARAM_CHANGE: AVPacketSideDataType = 2;
6386pub const AVPacketSideDataType_AV_PKT_DATA_H263_MB_INFO: AVPacketSideDataType = 3;
6387pub const AVPacketSideDataType_AV_PKT_DATA_REPLAYGAIN: AVPacketSideDataType = 4;
6388pub const AVPacketSideDataType_AV_PKT_DATA_DISPLAYMATRIX: AVPacketSideDataType = 5;
6389pub const AVPacketSideDataType_AV_PKT_DATA_STEREO3D: AVPacketSideDataType = 6;
6390pub const AVPacketSideDataType_AV_PKT_DATA_AUDIO_SERVICE_TYPE: AVPacketSideDataType = 7;
6391pub const AVPacketSideDataType_AV_PKT_DATA_QUALITY_STATS: AVPacketSideDataType = 8;
6392pub const AVPacketSideDataType_AV_PKT_DATA_FALLBACK_TRACK: AVPacketSideDataType = 9;
6393pub const AVPacketSideDataType_AV_PKT_DATA_CPB_PROPERTIES: AVPacketSideDataType = 10;
6394pub const AVPacketSideDataType_AV_PKT_DATA_SKIP_SAMPLES: AVPacketSideDataType = 11;
6395pub const AVPacketSideDataType_AV_PKT_DATA_JP_DUALMONO: AVPacketSideDataType = 12;
6396pub const AVPacketSideDataType_AV_PKT_DATA_STRINGS_METADATA: AVPacketSideDataType = 13;
6397pub const AVPacketSideDataType_AV_PKT_DATA_SUBTITLE_POSITION: AVPacketSideDataType = 14;
6398pub const AVPacketSideDataType_AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL: AVPacketSideDataType = 15;
6399pub const AVPacketSideDataType_AV_PKT_DATA_WEBVTT_IDENTIFIER: AVPacketSideDataType = 16;
6400pub const AVPacketSideDataType_AV_PKT_DATA_WEBVTT_SETTINGS: AVPacketSideDataType = 17;
6401pub const AVPacketSideDataType_AV_PKT_DATA_METADATA_UPDATE: AVPacketSideDataType = 18;
6402pub const AVPacketSideDataType_AV_PKT_DATA_MPEGTS_STREAM_ID: AVPacketSideDataType = 19;
6403pub const AVPacketSideDataType_AV_PKT_DATA_MASTERING_DISPLAY_METADATA: AVPacketSideDataType = 20;
6404pub const AVPacketSideDataType_AV_PKT_DATA_SPHERICAL: AVPacketSideDataType = 21;
6405pub const AVPacketSideDataType_AV_PKT_DATA_CONTENT_LIGHT_LEVEL: AVPacketSideDataType = 22;
6406pub const AVPacketSideDataType_AV_PKT_DATA_A53_CC: AVPacketSideDataType = 23;
6407pub const AVPacketSideDataType_AV_PKT_DATA_ENCRYPTION_INIT_INFO: AVPacketSideDataType = 24;
6408pub const AVPacketSideDataType_AV_PKT_DATA_ENCRYPTION_INFO: AVPacketSideDataType = 25;
6409pub const AVPacketSideDataType_AV_PKT_DATA_AFD: AVPacketSideDataType = 26;
6410pub const AVPacketSideDataType_AV_PKT_DATA_NB: AVPacketSideDataType = 27;
6411pub type AVPacketSideDataType = u32;
6412#[repr(C)]
6413#[derive(Debug, Copy, Clone)]
6414pub struct AVPacketSideData {
6415    pub data: *mut u8,
6416    pub size: ::std::os::raw::c_int,
6417    pub type_: AVPacketSideDataType,
6418}
6419#[repr(C)]
6420#[derive(Debug, Copy, Clone)]
6421pub struct AVPacket {
6422    pub buf: *mut AVBufferRef,
6423    pub pts: i64,
6424    pub dts: i64,
6425    pub data: *mut u8,
6426    pub size: ::std::os::raw::c_int,
6427    pub stream_index: ::std::os::raw::c_int,
6428    pub flags: ::std::os::raw::c_int,
6429    pub side_data: *mut AVPacketSideData,
6430    pub side_data_elems: ::std::os::raw::c_int,
6431    pub duration: i64,
6432    pub pos: i64,
6433    pub convergence_duration: i64,
6434}
6435pub const AVSideDataParamChangeFlags_AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT:
6436    AVSideDataParamChangeFlags = 1;
6437pub const AVSideDataParamChangeFlags_AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT:
6438    AVSideDataParamChangeFlags = 2;
6439pub const AVSideDataParamChangeFlags_AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE:
6440    AVSideDataParamChangeFlags = 4;
6441pub const AVSideDataParamChangeFlags_AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS:
6442    AVSideDataParamChangeFlags = 8;
6443pub type AVSideDataParamChangeFlags = u32;
6444#[repr(C)]
6445#[derive(Debug, Copy, Clone)]
6446pub struct AVCodecInternal {
6447    _unused: [u8; 0],
6448}
6449pub const AVFieldOrder_AV_FIELD_UNKNOWN: AVFieldOrder = 0;
6450pub const AVFieldOrder_AV_FIELD_PROGRESSIVE: AVFieldOrder = 1;
6451pub const AVFieldOrder_AV_FIELD_TT: AVFieldOrder = 2;
6452pub const AVFieldOrder_AV_FIELD_BB: AVFieldOrder = 3;
6453pub const AVFieldOrder_AV_FIELD_TB: AVFieldOrder = 4;
6454pub const AVFieldOrder_AV_FIELD_BT: AVFieldOrder = 5;
6455pub type AVFieldOrder = u32;
6456#[repr(C)]
6457#[derive(Debug, Copy, Clone)]
6458pub struct AVCodecContext {
6459    pub av_class: *const AVClass,
6460    pub log_level_offset: ::std::os::raw::c_int,
6461    pub codec_type: AVMediaType,
6462    pub codec: *const AVCodec,
6463    pub codec_id: AVCodecID,
6464    pub codec_tag: ::std::os::raw::c_uint,
6465    pub priv_data: *mut ::std::os::raw::c_void,
6466    pub internal: *mut AVCodecInternal,
6467    pub opaque: *mut ::std::os::raw::c_void,
6468    pub bit_rate: i64,
6469    pub bit_rate_tolerance: ::std::os::raw::c_int,
6470    pub global_quality: ::std::os::raw::c_int,
6471    pub compression_level: ::std::os::raw::c_int,
6472    pub flags: ::std::os::raw::c_int,
6473    pub flags2: ::std::os::raw::c_int,
6474    pub extradata: *mut u8,
6475    pub extradata_size: ::std::os::raw::c_int,
6476    pub time_base: AVRational,
6477    pub ticks_per_frame: ::std::os::raw::c_int,
6478    pub delay: ::std::os::raw::c_int,
6479    pub width: ::std::os::raw::c_int,
6480    pub height: ::std::os::raw::c_int,
6481    pub coded_width: ::std::os::raw::c_int,
6482    pub coded_height: ::std::os::raw::c_int,
6483    pub gop_size: ::std::os::raw::c_int,
6484    pub pix_fmt: AVPixelFormat,
6485    pub draw_horiz_band: ::std::option::Option<
6486        unsafe extern "C" fn(
6487            s: *mut AVCodecContext,
6488            src: *const AVFrame,
6489            offset: *mut ::std::os::raw::c_int,
6490            y: ::std::os::raw::c_int,
6491            type_: ::std::os::raw::c_int,
6492            height: ::std::os::raw::c_int,
6493        ),
6494    >,
6495    pub get_format: ::std::option::Option<
6496        unsafe extern "C" fn(s: *mut AVCodecContext, fmt: *const AVPixelFormat) -> AVPixelFormat,
6497    >,
6498    pub max_b_frames: ::std::os::raw::c_int,
6499    pub b_quant_factor: f32,
6500    pub b_frame_strategy: ::std::os::raw::c_int,
6501    pub b_quant_offset: f32,
6502    pub has_b_frames: ::std::os::raw::c_int,
6503    pub mpeg_quant: ::std::os::raw::c_int,
6504    pub i_quant_factor: f32,
6505    pub i_quant_offset: f32,
6506    pub lumi_masking: f32,
6507    pub temporal_cplx_masking: f32,
6508    pub spatial_cplx_masking: f32,
6509    pub p_masking: f32,
6510    pub dark_masking: f32,
6511    pub slice_count: ::std::os::raw::c_int,
6512    pub prediction_method: ::std::os::raw::c_int,
6513    pub slice_offset: *mut ::std::os::raw::c_int,
6514    pub sample_aspect_ratio: AVRational,
6515    pub me_cmp: ::std::os::raw::c_int,
6516    pub me_sub_cmp: ::std::os::raw::c_int,
6517    pub mb_cmp: ::std::os::raw::c_int,
6518    pub ildct_cmp: ::std::os::raw::c_int,
6519    pub dia_size: ::std::os::raw::c_int,
6520    pub last_predictor_count: ::std::os::raw::c_int,
6521    pub pre_me: ::std::os::raw::c_int,
6522    pub me_pre_cmp: ::std::os::raw::c_int,
6523    pub pre_dia_size: ::std::os::raw::c_int,
6524    pub me_subpel_quality: ::std::os::raw::c_int,
6525    pub me_range: ::std::os::raw::c_int,
6526    pub slice_flags: ::std::os::raw::c_int,
6527    pub mb_decision: ::std::os::raw::c_int,
6528    pub intra_matrix: *mut u16,
6529    pub inter_matrix: *mut u16,
6530    pub scenechange_threshold: ::std::os::raw::c_int,
6531    pub noise_reduction: ::std::os::raw::c_int,
6532    pub intra_dc_precision: ::std::os::raw::c_int,
6533    pub skip_top: ::std::os::raw::c_int,
6534    pub skip_bottom: ::std::os::raw::c_int,
6535    pub mb_lmin: ::std::os::raw::c_int,
6536    pub mb_lmax: ::std::os::raw::c_int,
6537    pub me_penalty_compensation: ::std::os::raw::c_int,
6538    pub bidir_refine: ::std::os::raw::c_int,
6539    pub brd_scale: ::std::os::raw::c_int,
6540    pub keyint_min: ::std::os::raw::c_int,
6541    pub refs: ::std::os::raw::c_int,
6542    pub chromaoffset: ::std::os::raw::c_int,
6543    pub mv0_threshold: ::std::os::raw::c_int,
6544    pub b_sensitivity: ::std::os::raw::c_int,
6545    pub color_primaries: AVColorPrimaries,
6546    pub color_trc: AVColorTransferCharacteristic,
6547    pub colorspace: AVColorSpace,
6548    pub color_range: AVColorRange,
6549    pub chroma_sample_location: AVChromaLocation,
6550    pub slices: ::std::os::raw::c_int,
6551    pub field_order: AVFieldOrder,
6552    pub sample_rate: ::std::os::raw::c_int,
6553    pub channels: ::std::os::raw::c_int,
6554    pub sample_fmt: AVSampleFormat,
6555    pub frame_size: ::std::os::raw::c_int,
6556    pub frame_number: ::std::os::raw::c_int,
6557    pub block_align: ::std::os::raw::c_int,
6558    pub cutoff: ::std::os::raw::c_int,
6559    pub channel_layout: u64,
6560    pub request_channel_layout: u64,
6561    pub audio_service_type: AVAudioServiceType,
6562    pub request_sample_fmt: AVSampleFormat,
6563    pub get_buffer2: ::std::option::Option<
6564        unsafe extern "C" fn(
6565            s: *mut AVCodecContext,
6566            frame: *mut AVFrame,
6567            flags: ::std::os::raw::c_int,
6568        ) -> ::std::os::raw::c_int,
6569    >,
6570    pub refcounted_frames: ::std::os::raw::c_int,
6571    pub qcompress: f32,
6572    pub qblur: f32,
6573    pub qmin: ::std::os::raw::c_int,
6574    pub qmax: ::std::os::raw::c_int,
6575    pub max_qdiff: ::std::os::raw::c_int,
6576    pub rc_buffer_size: ::std::os::raw::c_int,
6577    pub rc_override_count: ::std::os::raw::c_int,
6578    pub rc_override: *mut RcOverride,
6579    pub rc_max_rate: i64,
6580    pub rc_min_rate: i64,
6581    pub rc_max_available_vbv_use: f32,
6582    pub rc_min_vbv_overflow_use: f32,
6583    pub rc_initial_buffer_occupancy: ::std::os::raw::c_int,
6584    pub coder_type: ::std::os::raw::c_int,
6585    pub context_model: ::std::os::raw::c_int,
6586    pub frame_skip_threshold: ::std::os::raw::c_int,
6587    pub frame_skip_factor: ::std::os::raw::c_int,
6588    pub frame_skip_exp: ::std::os::raw::c_int,
6589    pub frame_skip_cmp: ::std::os::raw::c_int,
6590    pub trellis: ::std::os::raw::c_int,
6591    pub min_prediction_order: ::std::os::raw::c_int,
6592    pub max_prediction_order: ::std::os::raw::c_int,
6593    pub timecode_frame_start: i64,
6594    pub rtp_callback: ::std::option::Option<
6595        unsafe extern "C" fn(
6596            avctx: *mut AVCodecContext,
6597            data: *mut ::std::os::raw::c_void,
6598            size: ::std::os::raw::c_int,
6599            mb_nb: ::std::os::raw::c_int,
6600        ),
6601    >,
6602    pub rtp_payload_size: ::std::os::raw::c_int,
6603    pub mv_bits: ::std::os::raw::c_int,
6604    pub header_bits: ::std::os::raw::c_int,
6605    pub i_tex_bits: ::std::os::raw::c_int,
6606    pub p_tex_bits: ::std::os::raw::c_int,
6607    pub i_count: ::std::os::raw::c_int,
6608    pub p_count: ::std::os::raw::c_int,
6609    pub skip_count: ::std::os::raw::c_int,
6610    pub misc_bits: ::std::os::raw::c_int,
6611    pub frame_bits: ::std::os::raw::c_int,
6612    pub stats_out: *mut ::std::os::raw::c_char,
6613    pub stats_in: *mut ::std::os::raw::c_char,
6614    pub workaround_bugs: ::std::os::raw::c_int,
6615    pub strict_std_compliance: ::std::os::raw::c_int,
6616    pub error_concealment: ::std::os::raw::c_int,
6617    pub debug: ::std::os::raw::c_int,
6618    pub err_recognition: ::std::os::raw::c_int,
6619    pub reordered_opaque: i64,
6620    pub hwaccel: *const AVHWAccel,
6621    pub hwaccel_context: *mut ::std::os::raw::c_void,
6622    pub error: [u64; 8usize],
6623    pub dct_algo: ::std::os::raw::c_int,
6624    pub idct_algo: ::std::os::raw::c_int,
6625    pub bits_per_coded_sample: ::std::os::raw::c_int,
6626    pub bits_per_raw_sample: ::std::os::raw::c_int,
6627    pub lowres: ::std::os::raw::c_int,
6628    pub coded_frame: *mut AVFrame,
6629    pub thread_count: ::std::os::raw::c_int,
6630    pub thread_type: ::std::os::raw::c_int,
6631    pub active_thread_type: ::std::os::raw::c_int,
6632    pub thread_safe_callbacks: ::std::os::raw::c_int,
6633    pub execute: ::std::option::Option<
6634        unsafe extern "C" fn(
6635            c: *mut AVCodecContext,
6636            func: ::std::option::Option<
6637                unsafe extern "C" fn(
6638                    c2: *mut AVCodecContext,
6639                    arg: *mut ::std::os::raw::c_void,
6640                ) -> ::std::os::raw::c_int,
6641            >,
6642            arg2: *mut ::std::os::raw::c_void,
6643            ret: *mut ::std::os::raw::c_int,
6644            count: ::std::os::raw::c_int,
6645            size: ::std::os::raw::c_int,
6646        ) -> ::std::os::raw::c_int,
6647    >,
6648    pub execute2: ::std::option::Option<
6649        unsafe extern "C" fn(
6650            c: *mut AVCodecContext,
6651            func: ::std::option::Option<
6652                unsafe extern "C" fn(
6653                    c2: *mut AVCodecContext,
6654                    arg: *mut ::std::os::raw::c_void,
6655                    jobnr: ::std::os::raw::c_int,
6656                    threadnr: ::std::os::raw::c_int,
6657                ) -> ::std::os::raw::c_int,
6658            >,
6659            arg2: *mut ::std::os::raw::c_void,
6660            ret: *mut ::std::os::raw::c_int,
6661            count: ::std::os::raw::c_int,
6662        ) -> ::std::os::raw::c_int,
6663    >,
6664    pub nsse_weight: ::std::os::raw::c_int,
6665    pub profile: ::std::os::raw::c_int,
6666    pub level: ::std::os::raw::c_int,
6667    pub skip_loop_filter: AVDiscard,
6668    pub skip_idct: AVDiscard,
6669    pub skip_frame: AVDiscard,
6670    pub subtitle_header: *mut u8,
6671    pub subtitle_header_size: ::std::os::raw::c_int,
6672    pub vbv_delay: u64,
6673    pub side_data_only_packets: ::std::os::raw::c_int,
6674    pub initial_padding: ::std::os::raw::c_int,
6675    pub framerate: AVRational,
6676    pub sw_pix_fmt: AVPixelFormat,
6677    pub pkt_timebase: AVRational,
6678    pub codec_descriptor: *const AVCodecDescriptor,
6679    pub pts_correction_num_faulty_pts: i64,
6680    pub pts_correction_num_faulty_dts: i64,
6681    pub pts_correction_last_pts: i64,
6682    pub pts_correction_last_dts: i64,
6683    pub sub_charenc: *mut ::std::os::raw::c_char,
6684    pub sub_charenc_mode: ::std::os::raw::c_int,
6685    pub skip_alpha: ::std::os::raw::c_int,
6686    pub seek_preroll: ::std::os::raw::c_int,
6687    pub debug_mv: ::std::os::raw::c_int,
6688    pub chroma_intra_matrix: *mut u16,
6689    pub dump_separator: *mut u8,
6690    pub codec_whitelist: *mut ::std::os::raw::c_char,
6691    pub properties: ::std::os::raw::c_uint,
6692    pub coded_side_data: *mut AVPacketSideData,
6693    pub nb_coded_side_data: ::std::os::raw::c_int,
6694    pub hw_frames_ctx: *mut AVBufferRef,
6695    pub sub_text_format: ::std::os::raw::c_int,
6696    pub trailing_padding: ::std::os::raw::c_int,
6697    pub max_pixels: i64,
6698    pub hw_device_ctx: *mut AVBufferRef,
6699    pub hwaccel_flags: ::std::os::raw::c_int,
6700    pub apply_cropping: ::std::os::raw::c_int,
6701    pub extra_hw_frames: ::std::os::raw::c_int,
6702}
6703extern "C" {
6704    pub fn av_codec_get_pkt_timebase(avctx: *const AVCodecContext) -> AVRational;
6705}
6706extern "C" {
6707    pub fn av_codec_set_pkt_timebase(avctx: *mut AVCodecContext, val: AVRational);
6708}
6709extern "C" {
6710    pub fn av_codec_get_codec_descriptor(avctx: *const AVCodecContext) -> *const AVCodecDescriptor;
6711}
6712extern "C" {
6713    pub fn av_codec_set_codec_descriptor(
6714        avctx: *mut AVCodecContext,
6715        desc: *const AVCodecDescriptor,
6716    );
6717}
6718extern "C" {
6719    pub fn av_codec_get_codec_properties(avctx: *const AVCodecContext) -> ::std::os::raw::c_uint;
6720}
6721extern "C" {
6722    pub fn av_codec_get_lowres(avctx: *const AVCodecContext) -> ::std::os::raw::c_int;
6723}
6724extern "C" {
6725    pub fn av_codec_set_lowres(avctx: *mut AVCodecContext, val: ::std::os::raw::c_int);
6726}
6727extern "C" {
6728    pub fn av_codec_get_seek_preroll(avctx: *const AVCodecContext) -> ::std::os::raw::c_int;
6729}
6730extern "C" {
6731    pub fn av_codec_set_seek_preroll(avctx: *mut AVCodecContext, val: ::std::os::raw::c_int);
6732}
6733extern "C" {
6734    pub fn av_codec_get_chroma_intra_matrix(avctx: *const AVCodecContext) -> *mut u16;
6735}
6736extern "C" {
6737    pub fn av_codec_set_chroma_intra_matrix(avctx: *mut AVCodecContext, val: *mut u16);
6738}
6739#[repr(C)]
6740#[derive(Debug, Copy, Clone)]
6741pub struct AVProfile {
6742    pub profile: ::std::os::raw::c_int,
6743    pub name: *const ::std::os::raw::c_char,
6744}
6745pub const AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX: _bindgen_ty_4 = 1;
6746pub const AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX: _bindgen_ty_4 = 2;
6747pub const AV_CODEC_HW_CONFIG_METHOD_INTERNAL: _bindgen_ty_4 = 4;
6748pub const AV_CODEC_HW_CONFIG_METHOD_AD_HOC: _bindgen_ty_4 = 8;
6749pub type _bindgen_ty_4 = u32;
6750#[repr(C)]
6751#[derive(Debug, Copy, Clone)]
6752pub struct AVCodecHWConfig {
6753    pub pix_fmt: AVPixelFormat,
6754    pub methods: ::std::os::raw::c_int,
6755    pub device_type: AVHWDeviceType,
6756}
6757#[repr(C)]
6758#[derive(Debug, Copy, Clone)]
6759pub struct AVCodecDefault {
6760    _unused: [u8; 0],
6761}
6762#[repr(C)]
6763#[derive(Debug, Copy, Clone)]
6764pub struct AVCodec {
6765    pub name: *const ::std::os::raw::c_char,
6766    pub long_name: *const ::std::os::raw::c_char,
6767    pub type_: AVMediaType,
6768    pub id: AVCodecID,
6769    pub capabilities: ::std::os::raw::c_int,
6770    pub supported_framerates: *const AVRational,
6771    pub pix_fmts: *const AVPixelFormat,
6772    pub supported_samplerates: *const ::std::os::raw::c_int,
6773    pub sample_fmts: *const AVSampleFormat,
6774    pub channel_layouts: *const u64,
6775    pub max_lowres: u8,
6776    pub priv_class: *const AVClass,
6777    pub profiles: *const AVProfile,
6778    pub wrapper_name: *const ::std::os::raw::c_char,
6779    pub priv_data_size: ::std::os::raw::c_int,
6780    pub next: *mut AVCodec,
6781    pub init_thread_copy: ::std::option::Option<
6782        unsafe extern "C" fn(arg1: *mut AVCodecContext) -> ::std::os::raw::c_int,
6783    >,
6784    pub update_thread_context: ::std::option::Option<
6785        unsafe extern "C" fn(
6786            dst: *mut AVCodecContext,
6787            src: *const AVCodecContext,
6788        ) -> ::std::os::raw::c_int,
6789    >,
6790    pub defaults: *const AVCodecDefault,
6791    pub init_static_data: ::std::option::Option<unsafe extern "C" fn(codec: *mut AVCodec)>,
6792    pub init: ::std::option::Option<
6793        unsafe extern "C" fn(arg1: *mut AVCodecContext) -> ::std::os::raw::c_int,
6794    >,
6795    pub encode_sub: ::std::option::Option<
6796        unsafe extern "C" fn(
6797            arg1: *mut AVCodecContext,
6798            buf: *mut u8,
6799            buf_size: ::std::os::raw::c_int,
6800            sub: *const AVSubtitle,
6801        ) -> ::std::os::raw::c_int,
6802    >,
6803    pub encode2: ::std::option::Option<
6804        unsafe extern "C" fn(
6805            avctx: *mut AVCodecContext,
6806            avpkt: *mut AVPacket,
6807            frame: *const AVFrame,
6808            got_packet_ptr: *mut ::std::os::raw::c_int,
6809        ) -> ::std::os::raw::c_int,
6810    >,
6811    pub decode: ::std::option::Option<
6812        unsafe extern "C" fn(
6813            arg1: *mut AVCodecContext,
6814            outdata: *mut ::std::os::raw::c_void,
6815            outdata_size: *mut ::std::os::raw::c_int,
6816            avpkt: *mut AVPacket,
6817        ) -> ::std::os::raw::c_int,
6818    >,
6819    pub close: ::std::option::Option<
6820        unsafe extern "C" fn(arg1: *mut AVCodecContext) -> ::std::os::raw::c_int,
6821    >,
6822    pub send_frame: ::std::option::Option<
6823        unsafe extern "C" fn(
6824            avctx: *mut AVCodecContext,
6825            frame: *const AVFrame,
6826        ) -> ::std::os::raw::c_int,
6827    >,
6828    pub receive_packet: ::std::option::Option<
6829        unsafe extern "C" fn(
6830            avctx: *mut AVCodecContext,
6831            avpkt: *mut AVPacket,
6832        ) -> ::std::os::raw::c_int,
6833    >,
6834    pub receive_frame: ::std::option::Option<
6835        unsafe extern "C" fn(
6836            avctx: *mut AVCodecContext,
6837            frame: *mut AVFrame,
6838        ) -> ::std::os::raw::c_int,
6839    >,
6840    pub flush: ::std::option::Option<unsafe extern "C" fn(arg1: *mut AVCodecContext)>,
6841    pub caps_internal: ::std::os::raw::c_int,
6842    pub bsfs: *const ::std::os::raw::c_char,
6843    pub hw_configs: *mut *mut AVCodecHWConfigInternal,
6844}
6845extern "C" {
6846    pub fn av_codec_get_max_lowres(codec: *const AVCodec) -> ::std::os::raw::c_int;
6847}
6848#[repr(C)]
6849#[derive(Debug, Copy, Clone)]
6850pub struct MpegEncContext {
6851    _unused: [u8; 0],
6852}
6853extern "C" {
6854    pub fn avcodec_get_hw_config(
6855        codec: *const AVCodec,
6856        index: ::std::os::raw::c_int,
6857    ) -> *const AVCodecHWConfig;
6858}
6859#[repr(C)]
6860#[derive(Debug, Copy, Clone)]
6861pub struct AVHWAccel {
6862    pub name: *const ::std::os::raw::c_char,
6863    pub type_: AVMediaType,
6864    pub id: AVCodecID,
6865    pub pix_fmt: AVPixelFormat,
6866    pub capabilities: ::std::os::raw::c_int,
6867    pub alloc_frame: ::std::option::Option<
6868        unsafe extern "C" fn(
6869            avctx: *mut AVCodecContext,
6870            frame: *mut AVFrame,
6871        ) -> ::std::os::raw::c_int,
6872    >,
6873    pub start_frame: ::std::option::Option<
6874        unsafe extern "C" fn(
6875            avctx: *mut AVCodecContext,
6876            buf: *const u8,
6877            buf_size: u32,
6878        ) -> ::std::os::raw::c_int,
6879    >,
6880    pub decode_params: ::std::option::Option<
6881        unsafe extern "C" fn(
6882            avctx: *mut AVCodecContext,
6883            type_: ::std::os::raw::c_int,
6884            buf: *const u8,
6885            buf_size: u32,
6886        ) -> ::std::os::raw::c_int,
6887    >,
6888    pub decode_slice: ::std::option::Option<
6889        unsafe extern "C" fn(
6890            avctx: *mut AVCodecContext,
6891            buf: *const u8,
6892            buf_size: u32,
6893        ) -> ::std::os::raw::c_int,
6894    >,
6895    pub end_frame: ::std::option::Option<
6896        unsafe extern "C" fn(avctx: *mut AVCodecContext) -> ::std::os::raw::c_int,
6897    >,
6898    pub frame_priv_data_size: ::std::os::raw::c_int,
6899    pub decode_mb: ::std::option::Option<unsafe extern "C" fn(s: *mut MpegEncContext)>,
6900    pub init: ::std::option::Option<
6901        unsafe extern "C" fn(avctx: *mut AVCodecContext) -> ::std::os::raw::c_int,
6902    >,
6903    pub uninit: ::std::option::Option<
6904        unsafe extern "C" fn(avctx: *mut AVCodecContext) -> ::std::os::raw::c_int,
6905    >,
6906    pub priv_data_size: ::std::os::raw::c_int,
6907    pub caps_internal: ::std::os::raw::c_int,
6908    pub frame_params: ::std::option::Option<
6909        unsafe extern "C" fn(
6910            avctx: *mut AVCodecContext,
6911            hw_frames_ctx: *mut AVBufferRef,
6912        ) -> ::std::os::raw::c_int,
6913    >,
6914}
6915#[repr(C)]
6916#[derive(Debug, Copy, Clone)]
6917pub struct AVPicture {
6918    pub data: [*mut u8; 8usize],
6919    pub linesize: [::std::os::raw::c_int; 8usize],
6920}
6921pub const AVSubtitleType_SUBTITLE_NONE: AVSubtitleType = 0;
6922pub const AVSubtitleType_SUBTITLE_BITMAP: AVSubtitleType = 1;
6923pub const AVSubtitleType_SUBTITLE_TEXT: AVSubtitleType = 2;
6924pub const AVSubtitleType_SUBTITLE_ASS: AVSubtitleType = 3;
6925pub type AVSubtitleType = u32;
6926#[repr(C)]
6927#[derive(Debug, Copy, Clone)]
6928pub struct AVSubtitleRect {
6929    pub x: ::std::os::raw::c_int,
6930    pub y: ::std::os::raw::c_int,
6931    pub w: ::std::os::raw::c_int,
6932    pub h: ::std::os::raw::c_int,
6933    pub nb_colors: ::std::os::raw::c_int,
6934    pub pict: AVPicture,
6935    pub data: [*mut u8; 4usize],
6936    pub linesize: [::std::os::raw::c_int; 4usize],
6937    pub type_: AVSubtitleType,
6938    pub text: *mut ::std::os::raw::c_char,
6939    pub ass: *mut ::std::os::raw::c_char,
6940    pub flags: ::std::os::raw::c_int,
6941}
6942#[repr(C)]
6943#[derive(Debug, Copy, Clone)]
6944pub struct AVSubtitle {
6945    pub format: u16,
6946    pub start_display_time: u32,
6947    pub end_display_time: u32,
6948    pub num_rects: ::std::os::raw::c_uint,
6949    pub rects: *mut *mut AVSubtitleRect,
6950    pub pts: i64,
6951}
6952#[repr(C)]
6953#[derive(Debug, Copy, Clone)]
6954pub struct AVCodecParameters {
6955    pub codec_type: AVMediaType,
6956    pub codec_id: AVCodecID,
6957    pub codec_tag: u32,
6958    pub extradata: *mut u8,
6959    pub extradata_size: ::std::os::raw::c_int,
6960    pub format: ::std::os::raw::c_int,
6961    pub bit_rate: i64,
6962    pub bits_per_coded_sample: ::std::os::raw::c_int,
6963    pub bits_per_raw_sample: ::std::os::raw::c_int,
6964    pub profile: ::std::os::raw::c_int,
6965    pub level: ::std::os::raw::c_int,
6966    pub width: ::std::os::raw::c_int,
6967    pub height: ::std::os::raw::c_int,
6968    pub sample_aspect_ratio: AVRational,
6969    pub field_order: AVFieldOrder,
6970    pub color_range: AVColorRange,
6971    pub color_primaries: AVColorPrimaries,
6972    pub color_trc: AVColorTransferCharacteristic,
6973    pub color_space: AVColorSpace,
6974    pub chroma_location: AVChromaLocation,
6975    pub video_delay: ::std::os::raw::c_int,
6976    pub channel_layout: u64,
6977    pub channels: ::std::os::raw::c_int,
6978    pub sample_rate: ::std::os::raw::c_int,
6979    pub block_align: ::std::os::raw::c_int,
6980    pub frame_size: ::std::os::raw::c_int,
6981    pub initial_padding: ::std::os::raw::c_int,
6982    pub trailing_padding: ::std::os::raw::c_int,
6983    pub seek_preroll: ::std::os::raw::c_int,
6984}
6985extern "C" {
6986    pub fn av_codec_iterate(opaque: *mut *mut ::std::os::raw::c_void) -> *const AVCodec;
6987}
6988extern "C" {
6989    pub fn av_codec_next(c: *const AVCodec) -> *mut AVCodec;
6990}
6991extern "C" {
6992    pub fn avcodec_version() -> ::std::os::raw::c_uint;
6993}
6994extern "C" {
6995    pub fn avcodec_configuration() -> *const ::std::os::raw::c_char;
6996}
6997extern "C" {
6998    pub fn avcodec_license() -> *const ::std::os::raw::c_char;
6999}
7000extern "C" {
7001    pub fn avcodec_register(codec: *mut AVCodec);
7002}
7003extern "C" {
7004    pub fn avcodec_register_all();
7005}
7006extern "C" {
7007    pub fn avcodec_alloc_context3(codec: *const AVCodec) -> *mut AVCodecContext;
7008}
7009extern "C" {
7010    pub fn avcodec_free_context(avctx: *mut *mut AVCodecContext);
7011}
7012extern "C" {
7013    pub fn avcodec_get_context_defaults3(
7014        s: *mut AVCodecContext,
7015        codec: *const AVCodec,
7016    ) -> ::std::os::raw::c_int;
7017}
7018extern "C" {
7019    pub fn avcodec_get_class() -> *const AVClass;
7020}
7021extern "C" {
7022    pub fn avcodec_get_frame_class() -> *const AVClass;
7023}
7024extern "C" {
7025    pub fn avcodec_get_subtitle_rect_class() -> *const AVClass;
7026}
7027extern "C" {
7028    pub fn avcodec_copy_context(
7029        dest: *mut AVCodecContext,
7030        src: *const AVCodecContext,
7031    ) -> ::std::os::raw::c_int;
7032}
7033extern "C" {
7034    pub fn avcodec_parameters_alloc() -> *mut AVCodecParameters;
7035}
7036extern "C" {
7037    pub fn avcodec_parameters_free(par: *mut *mut AVCodecParameters);
7038}
7039extern "C" {
7040    pub fn avcodec_parameters_copy(
7041        dst: *mut AVCodecParameters,
7042        src: *const AVCodecParameters,
7043    ) -> ::std::os::raw::c_int;
7044}
7045extern "C" {
7046    pub fn avcodec_parameters_from_context(
7047        par: *mut AVCodecParameters,
7048        codec: *const AVCodecContext,
7049    ) -> ::std::os::raw::c_int;
7050}
7051extern "C" {
7052    pub fn avcodec_parameters_to_context(
7053        codec: *mut AVCodecContext,
7054        par: *const AVCodecParameters,
7055    ) -> ::std::os::raw::c_int;
7056}
7057extern "C" {
7058    pub fn avcodec_open2(
7059        avctx: *mut AVCodecContext,
7060        codec: *const AVCodec,
7061        options: *mut *mut AVDictionary,
7062    ) -> ::std::os::raw::c_int;
7063}
7064extern "C" {
7065    pub fn avcodec_close(avctx: *mut AVCodecContext) -> ::std::os::raw::c_int;
7066}
7067extern "C" {
7068    pub fn avsubtitle_free(sub: *mut AVSubtitle);
7069}
7070extern "C" {
7071    pub fn av_packet_alloc() -> *mut AVPacket;
7072}
7073extern "C" {
7074    pub fn av_packet_clone(src: *const AVPacket) -> *mut AVPacket;
7075}
7076extern "C" {
7077    pub fn av_packet_free(pkt: *mut *mut AVPacket);
7078}
7079extern "C" {
7080    pub fn av_init_packet(pkt: *mut AVPacket);
7081}
7082extern "C" {
7083    pub fn av_new_packet(pkt: *mut AVPacket, size: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7084}
7085extern "C" {
7086    pub fn av_shrink_packet(pkt: *mut AVPacket, size: ::std::os::raw::c_int);
7087}
7088extern "C" {
7089    pub fn av_grow_packet(
7090        pkt: *mut AVPacket,
7091        grow_by: ::std::os::raw::c_int,
7092    ) -> ::std::os::raw::c_int;
7093}
7094extern "C" {
7095    pub fn av_packet_from_data(
7096        pkt: *mut AVPacket,
7097        data: *mut u8,
7098        size: ::std::os::raw::c_int,
7099    ) -> ::std::os::raw::c_int;
7100}
7101extern "C" {
7102    pub fn av_dup_packet(pkt: *mut AVPacket) -> ::std::os::raw::c_int;
7103}
7104extern "C" {
7105    pub fn av_copy_packet(dst: *mut AVPacket, src: *const AVPacket) -> ::std::os::raw::c_int;
7106}
7107extern "C" {
7108    pub fn av_copy_packet_side_data(
7109        dst: *mut AVPacket,
7110        src: *const AVPacket,
7111    ) -> ::std::os::raw::c_int;
7112}
7113extern "C" {
7114    pub fn av_free_packet(pkt: *mut AVPacket);
7115}
7116extern "C" {
7117    pub fn av_packet_new_side_data(
7118        pkt: *mut AVPacket,
7119        type_: AVPacketSideDataType,
7120        size: ::std::os::raw::c_int,
7121    ) -> *mut u8;
7122}
7123extern "C" {
7124    pub fn av_packet_add_side_data(
7125        pkt: *mut AVPacket,
7126        type_: AVPacketSideDataType,
7127        data: *mut u8,
7128        size: usize,
7129    ) -> ::std::os::raw::c_int;
7130}
7131extern "C" {
7132    pub fn av_packet_shrink_side_data(
7133        pkt: *mut AVPacket,
7134        type_: AVPacketSideDataType,
7135        size: ::std::os::raw::c_int,
7136    ) -> ::std::os::raw::c_int;
7137}
7138extern "C" {
7139    pub fn av_packet_get_side_data(
7140        pkt: *const AVPacket,
7141        type_: AVPacketSideDataType,
7142        size: *mut ::std::os::raw::c_int,
7143    ) -> *mut u8;
7144}
7145extern "C" {
7146    pub fn av_packet_merge_side_data(pkt: *mut AVPacket) -> ::std::os::raw::c_int;
7147}
7148extern "C" {
7149    pub fn av_packet_split_side_data(pkt: *mut AVPacket) -> ::std::os::raw::c_int;
7150}
7151extern "C" {
7152    pub fn av_packet_side_data_name(type_: AVPacketSideDataType) -> *const ::std::os::raw::c_char;
7153}
7154extern "C" {
7155    pub fn av_packet_pack_dictionary(
7156        dict: *mut AVDictionary,
7157        size: *mut ::std::os::raw::c_int,
7158    ) -> *mut u8;
7159}
7160extern "C" {
7161    pub fn av_packet_unpack_dictionary(
7162        data: *const u8,
7163        size: ::std::os::raw::c_int,
7164        dict: *mut *mut AVDictionary,
7165    ) -> ::std::os::raw::c_int;
7166}
7167extern "C" {
7168    pub fn av_packet_free_side_data(pkt: *mut AVPacket);
7169}
7170extern "C" {
7171    pub fn av_packet_ref(dst: *mut AVPacket, src: *const AVPacket) -> ::std::os::raw::c_int;
7172}
7173extern "C" {
7174    pub fn av_packet_unref(pkt: *mut AVPacket);
7175}
7176extern "C" {
7177    pub fn av_packet_move_ref(dst: *mut AVPacket, src: *mut AVPacket);
7178}
7179extern "C" {
7180    pub fn av_packet_copy_props(dst: *mut AVPacket, src: *const AVPacket) -> ::std::os::raw::c_int;
7181}
7182extern "C" {
7183    pub fn av_packet_make_refcounted(pkt: *mut AVPacket) -> ::std::os::raw::c_int;
7184}
7185extern "C" {
7186    pub fn av_packet_make_writable(pkt: *mut AVPacket) -> ::std::os::raw::c_int;
7187}
7188extern "C" {
7189    pub fn av_packet_rescale_ts(pkt: *mut AVPacket, tb_src: AVRational, tb_dst: AVRational);
7190}
7191extern "C" {
7192    pub fn avcodec_find_decoder(id: AVCodecID) -> *mut AVCodec;
7193}
7194extern "C" {
7195    pub fn avcodec_find_decoder_by_name(name: *const ::std::os::raw::c_char) -> *mut AVCodec;
7196}
7197extern "C" {
7198    pub fn avcodec_default_get_buffer2(
7199        s: *mut AVCodecContext,
7200        frame: *mut AVFrame,
7201        flags: ::std::os::raw::c_int,
7202    ) -> ::std::os::raw::c_int;
7203}
7204extern "C" {
7205    pub fn avcodec_align_dimensions(
7206        s: *mut AVCodecContext,
7207        width: *mut ::std::os::raw::c_int,
7208        height: *mut ::std::os::raw::c_int,
7209    );
7210}
7211extern "C" {
7212    pub fn avcodec_align_dimensions2(
7213        s: *mut AVCodecContext,
7214        width: *mut ::std::os::raw::c_int,
7215        height: *mut ::std::os::raw::c_int,
7216        linesize_align: *mut ::std::os::raw::c_int,
7217    );
7218}
7219extern "C" {
7220    pub fn avcodec_enum_to_chroma_pos(
7221        xpos: *mut ::std::os::raw::c_int,
7222        ypos: *mut ::std::os::raw::c_int,
7223        pos: AVChromaLocation,
7224    ) -> ::std::os::raw::c_int;
7225}
7226extern "C" {
7227    pub fn avcodec_chroma_pos_to_enum(
7228        xpos: ::std::os::raw::c_int,
7229        ypos: ::std::os::raw::c_int,
7230    ) -> AVChromaLocation;
7231}
7232extern "C" {
7233    pub fn avcodec_decode_audio4(
7234        avctx: *mut AVCodecContext,
7235        frame: *mut AVFrame,
7236        got_frame_ptr: *mut ::std::os::raw::c_int,
7237        avpkt: *const AVPacket,
7238    ) -> ::std::os::raw::c_int;
7239}
7240extern "C" {
7241    pub fn avcodec_decode_video2(
7242        avctx: *mut AVCodecContext,
7243        picture: *mut AVFrame,
7244        got_picture_ptr: *mut ::std::os::raw::c_int,
7245        avpkt: *const AVPacket,
7246    ) -> ::std::os::raw::c_int;
7247}
7248extern "C" {
7249    pub fn avcodec_decode_subtitle2(
7250        avctx: *mut AVCodecContext,
7251        sub: *mut AVSubtitle,
7252        got_sub_ptr: *mut ::std::os::raw::c_int,
7253        avpkt: *mut AVPacket,
7254    ) -> ::std::os::raw::c_int;
7255}
7256extern "C" {
7257    pub fn avcodec_send_packet(
7258        avctx: *mut AVCodecContext,
7259        avpkt: *const AVPacket,
7260    ) -> ::std::os::raw::c_int;
7261}
7262extern "C" {
7263    pub fn avcodec_receive_frame(
7264        avctx: *mut AVCodecContext,
7265        frame: *mut AVFrame,
7266    ) -> ::std::os::raw::c_int;
7267}
7268extern "C" {
7269    pub fn avcodec_send_frame(
7270        avctx: *mut AVCodecContext,
7271        frame: *const AVFrame,
7272    ) -> ::std::os::raw::c_int;
7273}
7274extern "C" {
7275    pub fn avcodec_receive_packet(
7276        avctx: *mut AVCodecContext,
7277        avpkt: *mut AVPacket,
7278    ) -> ::std::os::raw::c_int;
7279}
7280extern "C" {
7281    pub fn avcodec_get_hw_frames_parameters(
7282        avctx: *mut AVCodecContext,
7283        device_ref: *mut AVBufferRef,
7284        hw_pix_fmt: AVPixelFormat,
7285        out_frames_ref: *mut *mut AVBufferRef,
7286    ) -> ::std::os::raw::c_int;
7287}
7288pub const AVPictureStructure_AV_PICTURE_STRUCTURE_UNKNOWN: AVPictureStructure = 0;
7289pub const AVPictureStructure_AV_PICTURE_STRUCTURE_TOP_FIELD: AVPictureStructure = 1;
7290pub const AVPictureStructure_AV_PICTURE_STRUCTURE_BOTTOM_FIELD: AVPictureStructure = 2;
7291pub const AVPictureStructure_AV_PICTURE_STRUCTURE_FRAME: AVPictureStructure = 3;
7292pub type AVPictureStructure = u32;
7293#[repr(C)]
7294#[derive(Debug, Copy, Clone)]
7295pub struct AVCodecParserContext {
7296    pub priv_data: *mut ::std::os::raw::c_void,
7297    pub parser: *mut AVCodecParser,
7298    pub frame_offset: i64,
7299    pub cur_offset: i64,
7300    pub next_frame_offset: i64,
7301    pub pict_type: ::std::os::raw::c_int,
7302    pub repeat_pict: ::std::os::raw::c_int,
7303    pub pts: i64,
7304    pub dts: i64,
7305    pub last_pts: i64,
7306    pub last_dts: i64,
7307    pub fetch_timestamp: ::std::os::raw::c_int,
7308    pub cur_frame_start_index: ::std::os::raw::c_int,
7309    pub cur_frame_offset: [i64; 4usize],
7310    pub cur_frame_pts: [i64; 4usize],
7311    pub cur_frame_dts: [i64; 4usize],
7312    pub flags: ::std::os::raw::c_int,
7313    pub offset: i64,
7314    pub cur_frame_end: [i64; 4usize],
7315    pub key_frame: ::std::os::raw::c_int,
7316    pub convergence_duration: i64,
7317    pub dts_sync_point: ::std::os::raw::c_int,
7318    pub dts_ref_dts_delta: ::std::os::raw::c_int,
7319    pub pts_dts_delta: ::std::os::raw::c_int,
7320    pub cur_frame_pos: [i64; 4usize],
7321    pub pos: i64,
7322    pub last_pos: i64,
7323    pub duration: ::std::os::raw::c_int,
7324    pub field_order: AVFieldOrder,
7325    pub picture_structure: AVPictureStructure,
7326    pub output_picture_number: ::std::os::raw::c_int,
7327    pub width: ::std::os::raw::c_int,
7328    pub height: ::std::os::raw::c_int,
7329    pub coded_width: ::std::os::raw::c_int,
7330    pub coded_height: ::std::os::raw::c_int,
7331    pub format: ::std::os::raw::c_int,
7332}
7333#[repr(C)]
7334#[derive(Debug, Copy, Clone)]
7335pub struct AVCodecParser {
7336    pub codec_ids: [::std::os::raw::c_int; 5usize],
7337    pub priv_data_size: ::std::os::raw::c_int,
7338    pub parser_init: ::std::option::Option<
7339        unsafe extern "C" fn(s: *mut AVCodecParserContext) -> ::std::os::raw::c_int,
7340    >,
7341    pub parser_parse: ::std::option::Option<
7342        unsafe extern "C" fn(
7343            s: *mut AVCodecParserContext,
7344            avctx: *mut AVCodecContext,
7345            poutbuf: *mut *const u8,
7346            poutbuf_size: *mut ::std::os::raw::c_int,
7347            buf: *const u8,
7348            buf_size: ::std::os::raw::c_int,
7349        ) -> ::std::os::raw::c_int,
7350    >,
7351    pub parser_close: ::std::option::Option<unsafe extern "C" fn(s: *mut AVCodecParserContext)>,
7352    pub split: ::std::option::Option<
7353        unsafe extern "C" fn(
7354            avctx: *mut AVCodecContext,
7355            buf: *const u8,
7356            buf_size: ::std::os::raw::c_int,
7357        ) -> ::std::os::raw::c_int,
7358    >,
7359    pub next: *mut AVCodecParser,
7360}
7361extern "C" {
7362    pub fn av_parser_iterate(opaque: *mut *mut ::std::os::raw::c_void) -> *const AVCodecParser;
7363}
7364extern "C" {
7365    pub fn av_parser_next(c: *const AVCodecParser) -> *mut AVCodecParser;
7366}
7367extern "C" {
7368    pub fn av_register_codec_parser(parser: *mut AVCodecParser);
7369}
7370extern "C" {
7371    pub fn av_parser_init(codec_id: ::std::os::raw::c_int) -> *mut AVCodecParserContext;
7372}
7373extern "C" {
7374    pub fn av_parser_parse2(
7375        s: *mut AVCodecParserContext,
7376        avctx: *mut AVCodecContext,
7377        poutbuf: *mut *mut u8,
7378        poutbuf_size: *mut ::std::os::raw::c_int,
7379        buf: *const u8,
7380        buf_size: ::std::os::raw::c_int,
7381        pts: i64,
7382        dts: i64,
7383        pos: i64,
7384    ) -> ::std::os::raw::c_int;
7385}
7386extern "C" {
7387    pub fn av_parser_change(
7388        s: *mut AVCodecParserContext,
7389        avctx: *mut AVCodecContext,
7390        poutbuf: *mut *mut u8,
7391        poutbuf_size: *mut ::std::os::raw::c_int,
7392        buf: *const u8,
7393        buf_size: ::std::os::raw::c_int,
7394        keyframe: ::std::os::raw::c_int,
7395    ) -> ::std::os::raw::c_int;
7396}
7397extern "C" {
7398    pub fn av_parser_close(s: *mut AVCodecParserContext);
7399}
7400extern "C" {
7401    pub fn avcodec_find_encoder(id: AVCodecID) -> *mut AVCodec;
7402}
7403extern "C" {
7404    pub fn avcodec_find_encoder_by_name(name: *const ::std::os::raw::c_char) -> *mut AVCodec;
7405}
7406extern "C" {
7407    pub fn avcodec_encode_audio2(
7408        avctx: *mut AVCodecContext,
7409        avpkt: *mut AVPacket,
7410        frame: *const AVFrame,
7411        got_packet_ptr: *mut ::std::os::raw::c_int,
7412    ) -> ::std::os::raw::c_int;
7413}
7414extern "C" {
7415    pub fn avcodec_encode_video2(
7416        avctx: *mut AVCodecContext,
7417        avpkt: *mut AVPacket,
7418        frame: *const AVFrame,
7419        got_packet_ptr: *mut ::std::os::raw::c_int,
7420    ) -> ::std::os::raw::c_int;
7421}
7422extern "C" {
7423    pub fn avcodec_encode_subtitle(
7424        avctx: *mut AVCodecContext,
7425        buf: *mut u8,
7426        buf_size: ::std::os::raw::c_int,
7427        sub: *const AVSubtitle,
7428    ) -> ::std::os::raw::c_int;
7429}
7430extern "C" {
7431    pub fn avpicture_alloc(
7432        picture: *mut AVPicture,
7433        pix_fmt: AVPixelFormat,
7434        width: ::std::os::raw::c_int,
7435        height: ::std::os::raw::c_int,
7436    ) -> ::std::os::raw::c_int;
7437}
7438extern "C" {
7439    pub fn avpicture_free(picture: *mut AVPicture);
7440}
7441extern "C" {
7442    pub fn avpicture_fill(
7443        picture: *mut AVPicture,
7444        ptr: *const u8,
7445        pix_fmt: AVPixelFormat,
7446        width: ::std::os::raw::c_int,
7447        height: ::std::os::raw::c_int,
7448    ) -> ::std::os::raw::c_int;
7449}
7450extern "C" {
7451    pub fn avpicture_layout(
7452        src: *const AVPicture,
7453        pix_fmt: AVPixelFormat,
7454        width: ::std::os::raw::c_int,
7455        height: ::std::os::raw::c_int,
7456        dest: *mut ::std::os::raw::c_uchar,
7457        dest_size: ::std::os::raw::c_int,
7458    ) -> ::std::os::raw::c_int;
7459}
7460extern "C" {
7461    pub fn avpicture_get_size(
7462        pix_fmt: AVPixelFormat,
7463        width: ::std::os::raw::c_int,
7464        height: ::std::os::raw::c_int,
7465    ) -> ::std::os::raw::c_int;
7466}
7467extern "C" {
7468    pub fn av_picture_copy(
7469        dst: *mut AVPicture,
7470        src: *const AVPicture,
7471        pix_fmt: AVPixelFormat,
7472        width: ::std::os::raw::c_int,
7473        height: ::std::os::raw::c_int,
7474    );
7475}
7476extern "C" {
7477    pub fn av_picture_crop(
7478        dst: *mut AVPicture,
7479        src: *const AVPicture,
7480        pix_fmt: AVPixelFormat,
7481        top_band: ::std::os::raw::c_int,
7482        left_band: ::std::os::raw::c_int,
7483    ) -> ::std::os::raw::c_int;
7484}
7485extern "C" {
7486    pub fn av_picture_pad(
7487        dst: *mut AVPicture,
7488        src: *const AVPicture,
7489        height: ::std::os::raw::c_int,
7490        width: ::std::os::raw::c_int,
7491        pix_fmt: AVPixelFormat,
7492        padtop: ::std::os::raw::c_int,
7493        padbottom: ::std::os::raw::c_int,
7494        padleft: ::std::os::raw::c_int,
7495        padright: ::std::os::raw::c_int,
7496        color: *mut ::std::os::raw::c_int,
7497    ) -> ::std::os::raw::c_int;
7498}
7499extern "C" {
7500    pub fn avcodec_get_chroma_sub_sample(
7501        pix_fmt: AVPixelFormat,
7502        h_shift: *mut ::std::os::raw::c_int,
7503        v_shift: *mut ::std::os::raw::c_int,
7504    );
7505}
7506extern "C" {
7507    pub fn avcodec_pix_fmt_to_codec_tag(pix_fmt: AVPixelFormat) -> ::std::os::raw::c_uint;
7508}
7509extern "C" {
7510    pub fn avcodec_get_pix_fmt_loss(
7511        dst_pix_fmt: AVPixelFormat,
7512        src_pix_fmt: AVPixelFormat,
7513        has_alpha: ::std::os::raw::c_int,
7514    ) -> ::std::os::raw::c_int;
7515}
7516extern "C" {
7517    pub fn avcodec_find_best_pix_fmt_of_list(
7518        pix_fmt_list: *const AVPixelFormat,
7519        src_pix_fmt: AVPixelFormat,
7520        has_alpha: ::std::os::raw::c_int,
7521        loss_ptr: *mut ::std::os::raw::c_int,
7522    ) -> AVPixelFormat;
7523}
7524extern "C" {
7525    pub fn avcodec_find_best_pix_fmt_of_2(
7526        dst_pix_fmt1: AVPixelFormat,
7527        dst_pix_fmt2: AVPixelFormat,
7528        src_pix_fmt: AVPixelFormat,
7529        has_alpha: ::std::os::raw::c_int,
7530        loss_ptr: *mut ::std::os::raw::c_int,
7531    ) -> AVPixelFormat;
7532}
7533extern "C" {
7534    pub fn avcodec_find_best_pix_fmt2(
7535        dst_pix_fmt1: AVPixelFormat,
7536        dst_pix_fmt2: AVPixelFormat,
7537        src_pix_fmt: AVPixelFormat,
7538        has_alpha: ::std::os::raw::c_int,
7539        loss_ptr: *mut ::std::os::raw::c_int,
7540    ) -> AVPixelFormat;
7541}
7542extern "C" {
7543    pub fn avcodec_default_get_format(
7544        s: *mut AVCodecContext,
7545        fmt: *const AVPixelFormat,
7546    ) -> AVPixelFormat;
7547}
7548extern "C" {
7549    pub fn av_get_codec_tag_string(
7550        buf: *mut ::std::os::raw::c_char,
7551        buf_size: usize,
7552        codec_tag: ::std::os::raw::c_uint,
7553    ) -> usize;
7554}
7555extern "C" {
7556    pub fn avcodec_string(
7557        buf: *mut ::std::os::raw::c_char,
7558        buf_size: ::std::os::raw::c_int,
7559        enc: *mut AVCodecContext,
7560        encode: ::std::os::raw::c_int,
7561    );
7562}
7563extern "C" {
7564    pub fn av_get_profile_name(
7565        codec: *const AVCodec,
7566        profile: ::std::os::raw::c_int,
7567    ) -> *const ::std::os::raw::c_char;
7568}
7569extern "C" {
7570    pub fn avcodec_profile_name(
7571        codec_id: AVCodecID,
7572        profile: ::std::os::raw::c_int,
7573    ) -> *const ::std::os::raw::c_char;
7574}
7575extern "C" {
7576    pub fn avcodec_default_execute(
7577        c: *mut AVCodecContext,
7578        func: ::std::option::Option<
7579            unsafe extern "C" fn(
7580                c: *mut AVCodecContext,
7581                func: *mut ::std::os::raw::c_void,
7582            ) -> ::std::os::raw::c_int,
7583        >,
7584        arg: *mut ::std::os::raw::c_void,
7585        ret: *mut ::std::os::raw::c_int,
7586        count: ::std::os::raw::c_int,
7587        size: ::std::os::raw::c_int,
7588    ) -> ::std::os::raw::c_int;
7589}
7590extern "C" {
7591    pub fn avcodec_default_execute2(
7592        c: *mut AVCodecContext,
7593        func: ::std::option::Option<
7594            unsafe extern "C" fn(
7595                c: *mut AVCodecContext,
7596                func: *mut ::std::os::raw::c_void,
7597                arg: ::std::os::raw::c_int,
7598                ret: ::std::os::raw::c_int,
7599            ) -> ::std::os::raw::c_int,
7600        >,
7601        arg: *mut ::std::os::raw::c_void,
7602        ret: *mut ::std::os::raw::c_int,
7603        count: ::std::os::raw::c_int,
7604    ) -> ::std::os::raw::c_int;
7605}
7606extern "C" {
7607    pub fn avcodec_fill_audio_frame(
7608        frame: *mut AVFrame,
7609        nb_channels: ::std::os::raw::c_int,
7610        sample_fmt: AVSampleFormat,
7611        buf: *const u8,
7612        buf_size: ::std::os::raw::c_int,
7613        align: ::std::os::raw::c_int,
7614    ) -> ::std::os::raw::c_int;
7615}
7616extern "C" {
7617    pub fn avcodec_flush_buffers(avctx: *mut AVCodecContext);
7618}
7619extern "C" {
7620    pub fn av_get_bits_per_sample(codec_id: AVCodecID) -> ::std::os::raw::c_int;
7621}
7622extern "C" {
7623    pub fn av_get_pcm_codec(fmt: AVSampleFormat, be: ::std::os::raw::c_int) -> AVCodecID;
7624}
7625extern "C" {
7626    pub fn av_get_exact_bits_per_sample(codec_id: AVCodecID) -> ::std::os::raw::c_int;
7627}
7628extern "C" {
7629    pub fn av_get_audio_frame_duration(
7630        avctx: *mut AVCodecContext,
7631        frame_bytes: ::std::os::raw::c_int,
7632    ) -> ::std::os::raw::c_int;
7633}
7634extern "C" {
7635    pub fn av_get_audio_frame_duration2(
7636        par: *mut AVCodecParameters,
7637        frame_bytes: ::std::os::raw::c_int,
7638    ) -> ::std::os::raw::c_int;
7639}
7640#[repr(C)]
7641#[derive(Debug, Copy, Clone)]
7642pub struct AVBitStreamFilterContext {
7643    pub priv_data: *mut ::std::os::raw::c_void,
7644    pub filter: *const AVBitStreamFilter,
7645    pub parser: *mut AVCodecParserContext,
7646    pub next: *mut AVBitStreamFilterContext,
7647    pub args: *mut ::std::os::raw::c_char,
7648}
7649#[repr(C)]
7650#[derive(Debug, Copy, Clone)]
7651pub struct AVBSFInternal {
7652    _unused: [u8; 0],
7653}
7654#[repr(C)]
7655#[derive(Debug, Copy, Clone)]
7656pub struct AVBSFContext {
7657    pub av_class: *const AVClass,
7658    pub filter: *const AVBitStreamFilter,
7659    pub internal: *mut AVBSFInternal,
7660    pub priv_data: *mut ::std::os::raw::c_void,
7661    pub par_in: *mut AVCodecParameters,
7662    pub par_out: *mut AVCodecParameters,
7663    pub time_base_in: AVRational,
7664    pub time_base_out: AVRational,
7665}
7666#[repr(C)]
7667#[derive(Debug, Copy, Clone)]
7668pub struct AVBitStreamFilter {
7669    pub name: *const ::std::os::raw::c_char,
7670    pub codec_ids: *const AVCodecID,
7671    pub priv_class: *const AVClass,
7672    pub priv_data_size: ::std::os::raw::c_int,
7673    pub init: ::std::option::Option<
7674        unsafe extern "C" fn(ctx: *mut AVBSFContext) -> ::std::os::raw::c_int,
7675    >,
7676    pub filter: ::std::option::Option<
7677        unsafe extern "C" fn(ctx: *mut AVBSFContext, pkt: *mut AVPacket) -> ::std::os::raw::c_int,
7678    >,
7679    pub close: ::std::option::Option<unsafe extern "C" fn(ctx: *mut AVBSFContext)>,
7680    pub flush: ::std::option::Option<unsafe extern "C" fn(ctx: *mut AVBSFContext)>,
7681}
7682extern "C" {
7683    pub fn av_register_bitstream_filter(bsf: *mut AVBitStreamFilter);
7684}
7685extern "C" {
7686    pub fn av_bitstream_filter_init(
7687        name: *const ::std::os::raw::c_char,
7688    ) -> *mut AVBitStreamFilterContext;
7689}
7690extern "C" {
7691    pub fn av_bitstream_filter_filter(
7692        bsfc: *mut AVBitStreamFilterContext,
7693        avctx: *mut AVCodecContext,
7694        args: *const ::std::os::raw::c_char,
7695        poutbuf: *mut *mut u8,
7696        poutbuf_size: *mut ::std::os::raw::c_int,
7697        buf: *const u8,
7698        buf_size: ::std::os::raw::c_int,
7699        keyframe: ::std::os::raw::c_int,
7700    ) -> ::std::os::raw::c_int;
7701}
7702extern "C" {
7703    pub fn av_bitstream_filter_close(bsf: *mut AVBitStreamFilterContext);
7704}
7705extern "C" {
7706    pub fn av_bitstream_filter_next(f: *const AVBitStreamFilter) -> *const AVBitStreamFilter;
7707}
7708extern "C" {
7709    pub fn av_bsf_get_by_name(name: *const ::std::os::raw::c_char) -> *const AVBitStreamFilter;
7710}
7711extern "C" {
7712    pub fn av_bsf_iterate(opaque: *mut *mut ::std::os::raw::c_void) -> *const AVBitStreamFilter;
7713}
7714extern "C" {
7715    pub fn av_bsf_next(opaque: *mut *mut ::std::os::raw::c_void) -> *const AVBitStreamFilter;
7716}
7717extern "C" {
7718    pub fn av_bsf_alloc(
7719        filter: *const AVBitStreamFilter,
7720        ctx: *mut *mut AVBSFContext,
7721    ) -> ::std::os::raw::c_int;
7722}
7723extern "C" {
7724    pub fn av_bsf_init(ctx: *mut AVBSFContext) -> ::std::os::raw::c_int;
7725}
7726extern "C" {
7727    pub fn av_bsf_send_packet(ctx: *mut AVBSFContext, pkt: *mut AVPacket) -> ::std::os::raw::c_int;
7728}
7729extern "C" {
7730    pub fn av_bsf_receive_packet(
7731        ctx: *mut AVBSFContext,
7732        pkt: *mut AVPacket,
7733    ) -> ::std::os::raw::c_int;
7734}
7735extern "C" {
7736    pub fn av_bsf_flush(ctx: *mut AVBSFContext);
7737}
7738extern "C" {
7739    pub fn av_bsf_free(ctx: *mut *mut AVBSFContext);
7740}
7741extern "C" {
7742    pub fn av_bsf_get_class() -> *const AVClass;
7743}
7744#[repr(C)]
7745#[derive(Debug, Copy, Clone)]
7746pub struct AVBSFList {
7747    _unused: [u8; 0],
7748}
7749extern "C" {
7750    pub fn av_bsf_list_alloc() -> *mut AVBSFList;
7751}
7752extern "C" {
7753    pub fn av_bsf_list_free(lst: *mut *mut AVBSFList);
7754}
7755extern "C" {
7756    pub fn av_bsf_list_append(lst: *mut AVBSFList, bsf: *mut AVBSFContext)
7757        -> ::std::os::raw::c_int;
7758}
7759extern "C" {
7760    pub fn av_bsf_list_append2(
7761        lst: *mut AVBSFList,
7762        bsf_name: *const ::std::os::raw::c_char,
7763        options: *mut *mut AVDictionary,
7764    ) -> ::std::os::raw::c_int;
7765}
7766extern "C" {
7767    pub fn av_bsf_list_finalize(
7768        lst: *mut *mut AVBSFList,
7769        bsf: *mut *mut AVBSFContext,
7770    ) -> ::std::os::raw::c_int;
7771}
7772extern "C" {
7773    pub fn av_bsf_list_parse_str(
7774        str: *const ::std::os::raw::c_char,
7775        bsf: *mut *mut AVBSFContext,
7776    ) -> ::std::os::raw::c_int;
7777}
7778extern "C" {
7779    pub fn av_bsf_get_null_filter(bsf: *mut *mut AVBSFContext) -> ::std::os::raw::c_int;
7780}
7781extern "C" {
7782    pub fn av_fast_padded_malloc(
7783        ptr: *mut ::std::os::raw::c_void,
7784        size: *mut ::std::os::raw::c_uint,
7785        min_size: usize,
7786    );
7787}
7788extern "C" {
7789    pub fn av_fast_padded_mallocz(
7790        ptr: *mut ::std::os::raw::c_void,
7791        size: *mut ::std::os::raw::c_uint,
7792        min_size: usize,
7793    );
7794}
7795extern "C" {
7796    pub fn av_xiphlacing(
7797        s: *mut ::std::os::raw::c_uchar,
7798        v: ::std::os::raw::c_uint,
7799    ) -> ::std::os::raw::c_uint;
7800}
7801extern "C" {
7802    pub fn av_register_hwaccel(hwaccel: *mut AVHWAccel);
7803}
7804extern "C" {
7805    pub fn av_hwaccel_next(hwaccel: *const AVHWAccel) -> *mut AVHWAccel;
7806}
7807pub const AVLockOp_AV_LOCK_CREATE: AVLockOp = 0;
7808pub const AVLockOp_AV_LOCK_OBTAIN: AVLockOp = 1;
7809pub const AVLockOp_AV_LOCK_RELEASE: AVLockOp = 2;
7810pub const AVLockOp_AV_LOCK_DESTROY: AVLockOp = 3;
7811pub type AVLockOp = u32;
7812extern "C" {
7813    pub fn av_lockmgr_register(
7814        cb: ::std::option::Option<
7815            unsafe extern "C" fn(
7816                cb: *mut *mut ::std::os::raw::c_void,
7817                arg1: AVLockOp,
7818            ) -> ::std::os::raw::c_int,
7819        >,
7820    ) -> ::std::os::raw::c_int;
7821}
7822extern "C" {
7823    pub fn avcodec_get_type(codec_id: AVCodecID) -> AVMediaType;
7824}
7825extern "C" {
7826    pub fn avcodec_get_name(id: AVCodecID) -> *const ::std::os::raw::c_char;
7827}
7828extern "C" {
7829    pub fn avcodec_is_open(s: *mut AVCodecContext) -> ::std::os::raw::c_int;
7830}
7831extern "C" {
7832    pub fn av_codec_is_encoder(codec: *const AVCodec) -> ::std::os::raw::c_int;
7833}
7834extern "C" {
7835    pub fn av_codec_is_decoder(codec: *const AVCodec) -> ::std::os::raw::c_int;
7836}
7837extern "C" {
7838    pub fn avcodec_descriptor_get(id: AVCodecID) -> *const AVCodecDescriptor;
7839}
7840extern "C" {
7841    pub fn avcodec_descriptor_next(prev: *const AVCodecDescriptor) -> *const AVCodecDescriptor;
7842}
7843extern "C" {
7844    pub fn avcodec_descriptor_get_by_name(
7845        name: *const ::std::os::raw::c_char,
7846    ) -> *const AVCodecDescriptor;
7847}
7848extern "C" {
7849    pub fn av_cpb_properties_alloc(size: *mut usize) -> *mut AVCPBProperties;
7850}
7851#[doc = " Callback for checking whether to abort blocking functions."]
7852#[doc = " AVERROR_EXIT is returned in this case by the interrupted"]
7853#[doc = " function. During blocking operations, callback is called with"]
7854#[doc = " opaque as parameter. If the callback returns 1, the"]
7855#[doc = " blocking operation will be aborted."]
7856#[doc = ""]
7857#[doc = " No members can be added to this struct without a major bump, if"]
7858#[doc = " new elements have been added after this struct in AVFormatContext"]
7859#[doc = " or AVIOContext."]
7860#[repr(C)]
7861#[derive(Debug, Copy, Clone)]
7862pub struct AVIOInterruptCB {
7863    pub callback: ::std::option::Option<
7864        unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
7865    >,
7866    pub opaque: *mut ::std::os::raw::c_void,
7867}
7868pub const AVIODirEntryType_AVIO_ENTRY_UNKNOWN: AVIODirEntryType = 0;
7869pub const AVIODirEntryType_AVIO_ENTRY_BLOCK_DEVICE: AVIODirEntryType = 1;
7870pub const AVIODirEntryType_AVIO_ENTRY_CHARACTER_DEVICE: AVIODirEntryType = 2;
7871pub const AVIODirEntryType_AVIO_ENTRY_DIRECTORY: AVIODirEntryType = 3;
7872pub const AVIODirEntryType_AVIO_ENTRY_NAMED_PIPE: AVIODirEntryType = 4;
7873pub const AVIODirEntryType_AVIO_ENTRY_SYMBOLIC_LINK: AVIODirEntryType = 5;
7874pub const AVIODirEntryType_AVIO_ENTRY_SOCKET: AVIODirEntryType = 6;
7875pub const AVIODirEntryType_AVIO_ENTRY_FILE: AVIODirEntryType = 7;
7876pub const AVIODirEntryType_AVIO_ENTRY_SERVER: AVIODirEntryType = 8;
7877pub const AVIODirEntryType_AVIO_ENTRY_SHARE: AVIODirEntryType = 9;
7878pub const AVIODirEntryType_AVIO_ENTRY_WORKGROUP: AVIODirEntryType = 10;
7879#[doc = " Directory entry types."]
7880pub type AVIODirEntryType = u32;
7881#[doc = " Describes single entry of the directory."]
7882#[doc = ""]
7883#[doc = " Only name and type fields are guaranteed be set."]
7884#[doc = " Rest of fields are protocol or/and platform dependent and might be unknown."]
7885#[repr(C)]
7886#[derive(Debug, Copy, Clone)]
7887pub struct AVIODirEntry {
7888    #[doc = "< Filename"]
7889    pub name: *mut ::std::os::raw::c_char,
7890    #[doc = "< Type of the entry"]
7891    pub type_: ::std::os::raw::c_int,
7892    #[doc = "< Set to 1 when name is encoded with UTF-8, 0 otherwise."]
7893    #[doc = "Name can be encoded with UTF-8 even though 0 is set."]
7894    pub utf8: ::std::os::raw::c_int,
7895    #[doc = "< File size in bytes, -1 if unknown."]
7896    pub size: i64,
7897    #[doc = "< Time of last modification in microseconds since unix"]
7898    #[doc = "epoch, -1 if unknown."]
7899    pub modification_timestamp: i64,
7900    #[doc = "< Time of last access in microseconds since unix epoch,"]
7901    #[doc = "-1 if unknown."]
7902    pub access_timestamp: i64,
7903    #[doc = "< Time of last status change in microseconds since unix"]
7904    #[doc = "epoch, -1 if unknown."]
7905    pub status_change_timestamp: i64,
7906    #[doc = "< User ID of owner, -1 if unknown."]
7907    pub user_id: i64,
7908    #[doc = "< Group ID of owner, -1 if unknown."]
7909    pub group_id: i64,
7910    #[doc = "< Unix file mode, -1 if unknown."]
7911    pub filemode: i64,
7912}
7913#[repr(C)]
7914#[derive(Debug, Copy, Clone)]
7915pub struct AVIODirContext {
7916    pub url_context: *mut URLContext,
7917}
7918#[doc = " Header data; this needs to be present for the stream to be decodeable."]
7919pub const AVIODataMarkerType_AVIO_DATA_MARKER_HEADER: AVIODataMarkerType = 0;
7920#[doc = " A point in the output bytestream where a decoder can start decoding"]
7921#[doc = " (i.e. a keyframe). A demuxer/decoder given the data flagged with"]
7922#[doc = " AVIO_DATA_MARKER_HEADER, followed by any AVIO_DATA_MARKER_SYNC_POINT,"]
7923#[doc = " should give decodeable results."]
7924pub const AVIODataMarkerType_AVIO_DATA_MARKER_SYNC_POINT: AVIODataMarkerType = 1;
7925#[doc = " A point in the output bytestream where a demuxer can start parsing"]
7926#[doc = " (for non self synchronizing bytestream formats). That is, any"]
7927#[doc = " non-keyframe packet start point."]
7928pub const AVIODataMarkerType_AVIO_DATA_MARKER_BOUNDARY_POINT: AVIODataMarkerType = 2;
7929#[doc = " This is any, unlabelled data. It can either be a muxer not marking"]
7930#[doc = " any positions at all, it can be an actual boundary/sync point"]
7931#[doc = " that the muxer chooses not to mark, or a later part of a packet/fragment"]
7932#[doc = " that is cut into multiple write callbacks due to limited IO buffer size."]
7933pub const AVIODataMarkerType_AVIO_DATA_MARKER_UNKNOWN: AVIODataMarkerType = 3;
7934#[doc = " Trailer data, which doesn\'t contain actual content, but only for"]
7935#[doc = " finalizing the output file."]
7936pub const AVIODataMarkerType_AVIO_DATA_MARKER_TRAILER: AVIODataMarkerType = 4;
7937#[doc = " A point in the output bytestream where the underlying AVIOContext might"]
7938#[doc = " flush the buffer depending on latency or buffering requirements. Typically"]
7939#[doc = " means the end of a packet."]
7940pub const AVIODataMarkerType_AVIO_DATA_MARKER_FLUSH_POINT: AVIODataMarkerType = 5;
7941#[doc = " Different data types that can be returned via the AVIO"]
7942#[doc = " write_data_type callback."]
7943pub type AVIODataMarkerType = u32;
7944#[doc = " Bytestream IO Context."]
7945#[doc = " New fields can be added to the end with minor version bumps."]
7946#[doc = " Removal, reordering and changes to existing fields require a major"]
7947#[doc = " version bump."]
7948#[doc = " sizeof(AVIOContext) must not be used outside libav*."]
7949#[doc = ""]
7950#[doc = " @note None of the function pointers in AVIOContext should be called"]
7951#[doc = "       directly, they should only be set by the client application"]
7952#[doc = "       when implementing custom I/O. Normally these are set to the"]
7953#[doc = "       function pointers specified in avio_alloc_context()"]
7954#[repr(C)]
7955#[derive(Debug, Copy, Clone)]
7956pub struct AVIOContext {
7957    #[doc = " A class for private options."]
7958    #[doc = ""]
7959    #[doc = " If this AVIOContext is created by avio_open2(), av_class is set and"]
7960    #[doc = " passes the options down to protocols."]
7961    #[doc = ""]
7962    #[doc = " If this AVIOContext is manually allocated, then av_class may be set by"]
7963    #[doc = " the caller."]
7964    #[doc = ""]
7965    #[doc = " warning -- this field can be NULL, be sure to not pass this AVIOContext"]
7966    #[doc = " to any av_opt_* functions in that case."]
7967    pub av_class: *const AVClass,
7968    #[doc = "< Start of the buffer."]
7969    pub buffer: *mut ::std::os::raw::c_uchar,
7970    #[doc = "< Maximum buffer size"]
7971    pub buffer_size: ::std::os::raw::c_int,
7972    #[doc = "< Current position in the buffer"]
7973    pub buf_ptr: *mut ::std::os::raw::c_uchar,
7974    #[doc = "< End of the data, may be less than"]
7975    #[doc = "buffer+buffer_size if the read function returned"]
7976    #[doc = "less data than requested, e.g. for streams where"]
7977    #[doc = "no more data has been received yet."]
7978    pub buf_end: *mut ::std::os::raw::c_uchar,
7979    #[doc = "< A private pointer, passed to the read/write/seek/..."]
7980    #[doc = "functions."]
7981    pub opaque: *mut ::std::os::raw::c_void,
7982    pub read_packet: ::std::option::Option<
7983        unsafe extern "C" fn(
7984            opaque: *mut ::std::os::raw::c_void,
7985            buf: *mut u8,
7986            buf_size: ::std::os::raw::c_int,
7987        ) -> ::std::os::raw::c_int,
7988    >,
7989    pub write_packet: ::std::option::Option<
7990        unsafe extern "C" fn(
7991            opaque: *mut ::std::os::raw::c_void,
7992            buf: *mut u8,
7993            buf_size: ::std::os::raw::c_int,
7994        ) -> ::std::os::raw::c_int,
7995    >,
7996    pub seek: ::std::option::Option<
7997        unsafe extern "C" fn(
7998            opaque: *mut ::std::os::raw::c_void,
7999            offset: i64,
8000            whence: ::std::os::raw::c_int,
8001        ) -> i64,
8002    >,
8003    #[doc = "< position in the file of the current buffer"]
8004    pub pos: i64,
8005    #[doc = "< true if eof reached"]
8006    pub eof_reached: ::std::os::raw::c_int,
8007    #[doc = "< true if open for writing"]
8008    pub write_flag: ::std::os::raw::c_int,
8009    pub max_packet_size: ::std::os::raw::c_int,
8010    pub checksum: ::std::os::raw::c_ulong,
8011    pub checksum_ptr: *mut ::std::os::raw::c_uchar,
8012    pub update_checksum: ::std::option::Option<
8013        unsafe extern "C" fn(
8014            checksum: ::std::os::raw::c_ulong,
8015            buf: *const u8,
8016            size: ::std::os::raw::c_uint,
8017        ) -> ::std::os::raw::c_ulong,
8018    >,
8019    #[doc = "< contains the error code or 0 if no error happened"]
8020    pub error: ::std::os::raw::c_int,
8021    #[doc = " Pause or resume playback for network streaming protocols - e.g. MMS."]
8022    pub read_pause: ::std::option::Option<
8023        unsafe extern "C" fn(
8024            opaque: *mut ::std::os::raw::c_void,
8025            pause: ::std::os::raw::c_int,
8026        ) -> ::std::os::raw::c_int,
8027    >,
8028    #[doc = " Seek to a given timestamp in stream with the specified stream_index."]
8029    #[doc = " Needed for some network streaming protocols which don\'t support seeking"]
8030    #[doc = " to byte position."]
8031    pub read_seek: ::std::option::Option<
8032        unsafe extern "C" fn(
8033            opaque: *mut ::std::os::raw::c_void,
8034            stream_index: ::std::os::raw::c_int,
8035            timestamp: i64,
8036            flags: ::std::os::raw::c_int,
8037        ) -> i64,
8038    >,
8039    #[doc = " A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable."]
8040    pub seekable: ::std::os::raw::c_int,
8041    #[doc = " max filesize, used to limit allocations"]
8042    #[doc = " This field is internal to libavformat and access from outside is not allowed."]
8043    pub maxsize: i64,
8044    #[doc = " avio_read and avio_write should if possible be satisfied directly"]
8045    #[doc = " instead of going through a buffer, and avio_seek will always"]
8046    #[doc = " call the underlying seek function directly."]
8047    pub direct: ::std::os::raw::c_int,
8048    #[doc = " Bytes read statistic"]
8049    #[doc = " This field is internal to libavformat and access from outside is not allowed."]
8050    pub bytes_read: i64,
8051    #[doc = " seek statistic"]
8052    #[doc = " This field is internal to libavformat and access from outside is not allowed."]
8053    pub seek_count: ::std::os::raw::c_int,
8054    #[doc = " writeout statistic"]
8055    #[doc = " This field is internal to libavformat and access from outside is not allowed."]
8056    pub writeout_count: ::std::os::raw::c_int,
8057    #[doc = " Original buffer size"]
8058    #[doc = " used internally after probing and ensure seekback to reset the buffer size"]
8059    #[doc = " This field is internal to libavformat and access from outside is not allowed."]
8060    pub orig_buffer_size: ::std::os::raw::c_int,
8061    #[doc = " Threshold to favor readahead over seek."]
8062    #[doc = " This is current internal only, do not use from outside."]
8063    pub short_seek_threshold: ::std::os::raw::c_int,
8064    #[doc = " \',\' separated list of allowed protocols."]
8065    pub protocol_whitelist: *const ::std::os::raw::c_char,
8066    #[doc = " \',\' separated list of disallowed protocols."]
8067    pub protocol_blacklist: *const ::std::os::raw::c_char,
8068    #[doc = " A callback that is used instead of write_packet."]
8069    pub write_data_type: ::std::option::Option<
8070        unsafe extern "C" fn(
8071            opaque: *mut ::std::os::raw::c_void,
8072            buf: *mut u8,
8073            buf_size: ::std::os::raw::c_int,
8074            type_: AVIODataMarkerType,
8075            time: i64,
8076        ) -> ::std::os::raw::c_int,
8077    >,
8078    #[doc = " If set, don\'t call write_data_type separately for AVIO_DATA_MARKER_BOUNDARY_POINT,"]
8079    #[doc = " but ignore them and treat them as AVIO_DATA_MARKER_UNKNOWN (to avoid needlessly"]
8080    #[doc = " small chunks of data returned from the callback)."]
8081    pub ignore_boundary_point: ::std::os::raw::c_int,
8082    #[doc = " Internal, not meant to be used from outside of AVIOContext."]
8083    pub current_type: AVIODataMarkerType,
8084    pub last_time: i64,
8085    #[doc = " A callback that is used instead of short_seek_threshold."]
8086    #[doc = " This is current internal only, do not use from outside."]
8087    pub short_seek_get: ::std::option::Option<
8088        unsafe extern "C" fn(opaque: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
8089    >,
8090    pub written: i64,
8091    #[doc = " Maximum reached position before a backward seek in the write buffer,"]
8092    #[doc = " used keeping track of already written data for a later flush."]
8093    pub buf_ptr_max: *mut ::std::os::raw::c_uchar,
8094    #[doc = " Try to buffer at least this amount of data before flushing it"]
8095    pub min_packet_size: ::std::os::raw::c_int,
8096}
8097extern "C" {
8098    #[doc = " Return the name of the protocol that will handle the passed URL."]
8099    #[doc = ""]
8100    #[doc = " NULL is returned if no protocol could be found for the given URL."]
8101    #[doc = ""]
8102    #[doc = " @return Name of the protocol or NULL."]
8103    pub fn avio_find_protocol_name(
8104        url: *const ::std::os::raw::c_char,
8105    ) -> *const ::std::os::raw::c_char;
8106}
8107extern "C" {
8108    #[doc = " Return AVIO_FLAG_* access flags corresponding to the access permissions"]
8109    #[doc = " of the resource in url, or a negative value corresponding to an"]
8110    #[doc = " AVERROR code in case of failure. The returned access flags are"]
8111    #[doc = " masked by the value in flags."]
8112    #[doc = ""]
8113    #[doc = " @note This function is intrinsically unsafe, in the sense that the"]
8114    #[doc = " checked resource may change its existence or permission status from"]
8115    #[doc = " one call to another. Thus you should not trust the returned value,"]
8116    #[doc = " unless you are sure that no other processes are accessing the"]
8117    #[doc = " checked resource."]
8118    pub fn avio_check(
8119        url: *const ::std::os::raw::c_char,
8120        flags: ::std::os::raw::c_int,
8121    ) -> ::std::os::raw::c_int;
8122}
8123extern "C" {
8124    #[doc = " Move or rename a resource."]
8125    #[doc = ""]
8126    #[doc = " @note url_src and url_dst should share the same protocol and authority."]
8127    #[doc = ""]
8128    #[doc = " @param url_src url to resource to be moved"]
8129    #[doc = " @param url_dst new url to resource if the operation succeeded"]
8130    #[doc = " @return >=0 on success or negative on error."]
8131    pub fn avpriv_io_move(
8132        url_src: *const ::std::os::raw::c_char,
8133        url_dst: *const ::std::os::raw::c_char,
8134    ) -> ::std::os::raw::c_int;
8135}
8136extern "C" {
8137    #[doc = " Delete a resource."]
8138    #[doc = ""]
8139    #[doc = " @param url resource to be deleted."]
8140    #[doc = " @return >=0 on success or negative on error."]
8141    pub fn avpriv_io_delete(url: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
8142}
8143extern "C" {
8144    #[doc = " Open directory for reading."]
8145    #[doc = ""]
8146    #[doc = " @param s       directory read context. Pointer to a NULL pointer must be passed."]
8147    #[doc = " @param url     directory to be listed."]
8148    #[doc = " @param options A dictionary filled with protocol-private options. On return"]
8149    #[doc = "                this parameter will be destroyed and replaced with a dictionary"]
8150    #[doc = "                containing options that were not found. May be NULL."]
8151    #[doc = " @return >=0 on success or negative on error."]
8152    pub fn avio_open_dir(
8153        s: *mut *mut AVIODirContext,
8154        url: *const ::std::os::raw::c_char,
8155        options: *mut *mut AVDictionary,
8156    ) -> ::std::os::raw::c_int;
8157}
8158extern "C" {
8159    #[doc = " Get next directory entry."]
8160    #[doc = ""]
8161    #[doc = " Returned entry must be freed with avio_free_directory_entry(). In particular"]
8162    #[doc = " it may outlive AVIODirContext."]
8163    #[doc = ""]
8164    #[doc = " @param s         directory read context."]
8165    #[doc = " @param[out] next next entry or NULL when no more entries."]
8166    #[doc = " @return >=0 on success or negative on error. End of list is not considered an"]
8167    #[doc = "             error."]
8168    pub fn avio_read_dir(
8169        s: *mut AVIODirContext,
8170        next: *mut *mut AVIODirEntry,
8171    ) -> ::std::os::raw::c_int;
8172}
8173extern "C" {
8174    #[doc = " Close directory."]
8175    #[doc = ""]
8176    #[doc = " @note Entries created using avio_read_dir() are not deleted and must be"]
8177    #[doc = " freeded with avio_free_directory_entry()."]
8178    #[doc = ""]
8179    #[doc = " @param s         directory read context."]
8180    #[doc = " @return >=0 on success or negative on error."]
8181    pub fn avio_close_dir(s: *mut *mut AVIODirContext) -> ::std::os::raw::c_int;
8182}
8183extern "C" {
8184    #[doc = " Free entry allocated by avio_read_dir()."]
8185    #[doc = ""]
8186    #[doc = " @param entry entry to be freed."]
8187    pub fn avio_free_directory_entry(entry: *mut *mut AVIODirEntry);
8188}
8189extern "C" {
8190    #[doc = " Allocate and initialize an AVIOContext for buffered I/O. It must be later"]
8191    #[doc = " freed with avio_context_free()."]
8192    #[doc = ""]
8193    #[doc = " @param buffer Memory block for input/output operations via AVIOContext."]
8194    #[doc = "        The buffer must be allocated with av_malloc() and friends."]
8195    #[doc = "        It may be freed and replaced with a new buffer by libavformat."]
8196    #[doc = "        AVIOContext.buffer holds the buffer currently in use,"]
8197    #[doc = "        which must be later freed with av_free()."]
8198    #[doc = " @param buffer_size The buffer size is very important for performance."]
8199    #[doc = "        For protocols with fixed blocksize it should be set to this blocksize."]
8200    #[doc = "        For others a typical size is a cache page, e.g. 4kb."]
8201    #[doc = " @param write_flag Set to 1 if the buffer should be writable, 0 otherwise."]
8202    #[doc = " @param opaque An opaque pointer to user-specific data."]
8203    #[doc = " @param read_packet  A function for refilling the buffer, may be NULL."]
8204    #[doc = "                     For stream protocols, must never return 0 but rather"]
8205    #[doc = "                     a proper AVERROR code."]
8206    #[doc = " @param write_packet A function for writing the buffer contents, may be NULL."]
8207    #[doc = "        The function may not change the input buffers content."]
8208    #[doc = " @param seek A function for seeking to specified byte position, may be NULL."]
8209    #[doc = ""]
8210    #[doc = " @return Allocated AVIOContext or NULL on failure."]
8211    pub fn avio_alloc_context(
8212        buffer: *mut ::std::os::raw::c_uchar,
8213        buffer_size: ::std::os::raw::c_int,
8214        write_flag: ::std::os::raw::c_int,
8215        opaque: *mut ::std::os::raw::c_void,
8216        read_packet: ::std::option::Option<
8217            unsafe extern "C" fn(
8218                buffer: *mut ::std::os::raw::c_void,
8219                buffer_size: *mut u8,
8220                write_flag: ::std::os::raw::c_int,
8221            ) -> ::std::os::raw::c_int,
8222        >,
8223        write_packet: ::std::option::Option<
8224            unsafe extern "C" fn(
8225                buffer: *mut ::std::os::raw::c_void,
8226                buffer_size: *mut u8,
8227                write_flag: ::std::os::raw::c_int,
8228            ) -> ::std::os::raw::c_int,
8229        >,
8230        seek: ::std::option::Option<
8231            unsafe extern "C" fn(
8232                buffer: *mut ::std::os::raw::c_void,
8233                buffer_size: i64,
8234                write_flag: ::std::os::raw::c_int,
8235            ) -> i64,
8236        >,
8237    ) -> *mut AVIOContext;
8238}
8239extern "C" {
8240    #[doc = " Free the supplied IO context and everything associated with it."]
8241    #[doc = ""]
8242    #[doc = " @param s Double pointer to the IO context. This function will write NULL"]
8243    #[doc = " into s."]
8244    pub fn avio_context_free(s: *mut *mut AVIOContext);
8245}
8246extern "C" {
8247    pub fn avio_w8(s: *mut AVIOContext, b: ::std::os::raw::c_int);
8248}
8249extern "C" {
8250    pub fn avio_write(
8251        s: *mut AVIOContext,
8252        buf: *const ::std::os::raw::c_uchar,
8253        size: ::std::os::raw::c_int,
8254    );
8255}
8256extern "C" {
8257    pub fn avio_wl64(s: *mut AVIOContext, val: u64);
8258}
8259extern "C" {
8260    pub fn avio_wb64(s: *mut AVIOContext, val: u64);
8261}
8262extern "C" {
8263    pub fn avio_wl32(s: *mut AVIOContext, val: ::std::os::raw::c_uint);
8264}
8265extern "C" {
8266    pub fn avio_wb32(s: *mut AVIOContext, val: ::std::os::raw::c_uint);
8267}
8268extern "C" {
8269    pub fn avio_wl24(s: *mut AVIOContext, val: ::std::os::raw::c_uint);
8270}
8271extern "C" {
8272    pub fn avio_wb24(s: *mut AVIOContext, val: ::std::os::raw::c_uint);
8273}
8274extern "C" {
8275    pub fn avio_wl16(s: *mut AVIOContext, val: ::std::os::raw::c_uint);
8276}
8277extern "C" {
8278    pub fn avio_wb16(s: *mut AVIOContext, val: ::std::os::raw::c_uint);
8279}
8280extern "C" {
8281    #[doc = " Write a NULL-terminated string."]
8282    #[doc = " @return number of bytes written."]
8283    pub fn avio_put_str(
8284        s: *mut AVIOContext,
8285        str: *const ::std::os::raw::c_char,
8286    ) -> ::std::os::raw::c_int;
8287}
8288extern "C" {
8289    #[doc = " Convert an UTF-8 string to UTF-16LE and write it."]
8290    #[doc = " @param s the AVIOContext"]
8291    #[doc = " @param str NULL-terminated UTF-8 string"]
8292    #[doc = ""]
8293    #[doc = " @return number of bytes written."]
8294    pub fn avio_put_str16le(
8295        s: *mut AVIOContext,
8296        str: *const ::std::os::raw::c_char,
8297    ) -> ::std::os::raw::c_int;
8298}
8299extern "C" {
8300    #[doc = " Convert an UTF-8 string to UTF-16BE and write it."]
8301    #[doc = " @param s the AVIOContext"]
8302    #[doc = " @param str NULL-terminated UTF-8 string"]
8303    #[doc = ""]
8304    #[doc = " @return number of bytes written."]
8305    pub fn avio_put_str16be(
8306        s: *mut AVIOContext,
8307        str: *const ::std::os::raw::c_char,
8308    ) -> ::std::os::raw::c_int;
8309}
8310extern "C" {
8311    #[doc = " Mark the written bytestream as a specific type."]
8312    #[doc = ""]
8313    #[doc = " Zero-length ranges are omitted from the output."]
8314    #[doc = ""]
8315    #[doc = " @param time the stream time the current bytestream pos corresponds to"]
8316    #[doc = "             (in AV_TIME_BASE units), or AV_NOPTS_VALUE if unknown or not"]
8317    #[doc = "             applicable"]
8318    #[doc = " @param type the kind of data written starting at the current pos"]
8319    pub fn avio_write_marker(s: *mut AVIOContext, time: i64, type_: AVIODataMarkerType);
8320}
8321extern "C" {
8322    #[doc = " fseek() equivalent for AVIOContext."]
8323    #[doc = " @return new position or AVERROR."]
8324    pub fn avio_seek(s: *mut AVIOContext, offset: i64, whence: ::std::os::raw::c_int) -> i64;
8325}
8326extern "C" {
8327    #[doc = " Skip given number of bytes forward"]
8328    #[doc = " @return new position or AVERROR."]
8329    pub fn avio_skip(s: *mut AVIOContext, offset: i64) -> i64;
8330}
8331extern "C" {
8332    #[doc = " Get the filesize."]
8333    #[doc = " @return filesize or AVERROR"]
8334    pub fn avio_size(s: *mut AVIOContext) -> i64;
8335}
8336extern "C" {
8337    #[doc = " feof() equivalent for AVIOContext."]
8338    #[doc = " @return non zero if and only if end of file"]
8339    pub fn avio_feof(s: *mut AVIOContext) -> ::std::os::raw::c_int;
8340}
8341extern "C" {
8342    #[doc = " @warning Writes up to 4 KiB per call"]
8343    pub fn avio_printf(
8344        s: *mut AVIOContext,
8345        fmt: *const ::std::os::raw::c_char,
8346        ...
8347    ) -> ::std::os::raw::c_int;
8348}
8349extern "C" {
8350    #[doc = " Force flushing of buffered data."]
8351    #[doc = ""]
8352    #[doc = " For write streams, force the buffered data to be immediately written to the output,"]
8353    #[doc = " without to wait to fill the internal buffer."]
8354    #[doc = ""]
8355    #[doc = " For read streams, discard all currently buffered data, and advance the"]
8356    #[doc = " reported file position to that of the underlying stream. This does not"]
8357    #[doc = " read new data, and does not perform any seeks."]
8358    pub fn avio_flush(s: *mut AVIOContext);
8359}
8360extern "C" {
8361    #[doc = " Read size bytes from AVIOContext into buf."]
8362    #[doc = " @return number of bytes read or AVERROR"]
8363    pub fn avio_read(
8364        s: *mut AVIOContext,
8365        buf: *mut ::std::os::raw::c_uchar,
8366        size: ::std::os::raw::c_int,
8367    ) -> ::std::os::raw::c_int;
8368}
8369extern "C" {
8370    #[doc = " Read size bytes from AVIOContext into buf. Unlike avio_read(), this is allowed"]
8371    #[doc = " to read fewer bytes than requested. The missing bytes can be read in the next"]
8372    #[doc = " call. This always tries to read at least 1 byte."]
8373    #[doc = " Useful to reduce latency in certain cases."]
8374    #[doc = " @return number of bytes read or AVERROR"]
8375    pub fn avio_read_partial(
8376        s: *mut AVIOContext,
8377        buf: *mut ::std::os::raw::c_uchar,
8378        size: ::std::os::raw::c_int,
8379    ) -> ::std::os::raw::c_int;
8380}
8381extern "C" {
8382    #[doc = " @name Functions for reading from AVIOContext"]
8383    #[doc = " @{"]
8384    #[doc = ""]
8385    #[doc = " @note return 0 if EOF, so you cannot use it if EOF handling is"]
8386    #[doc = "       necessary"]
8387    pub fn avio_r8(s: *mut AVIOContext) -> ::std::os::raw::c_int;
8388}
8389extern "C" {
8390    pub fn avio_rl16(s: *mut AVIOContext) -> ::std::os::raw::c_uint;
8391}
8392extern "C" {
8393    pub fn avio_rl24(s: *mut AVIOContext) -> ::std::os::raw::c_uint;
8394}
8395extern "C" {
8396    pub fn avio_rl32(s: *mut AVIOContext) -> ::std::os::raw::c_uint;
8397}
8398extern "C" {
8399    pub fn avio_rl64(s: *mut AVIOContext) -> u64;
8400}
8401extern "C" {
8402    pub fn avio_rb16(s: *mut AVIOContext) -> ::std::os::raw::c_uint;
8403}
8404extern "C" {
8405    pub fn avio_rb24(s: *mut AVIOContext) -> ::std::os::raw::c_uint;
8406}
8407extern "C" {
8408    pub fn avio_rb32(s: *mut AVIOContext) -> ::std::os::raw::c_uint;
8409}
8410extern "C" {
8411    pub fn avio_rb64(s: *mut AVIOContext) -> u64;
8412}
8413extern "C" {
8414    #[doc = " Read a string from pb into buf. The reading will terminate when either"]
8415    #[doc = " a NULL character was encountered, maxlen bytes have been read, or nothing"]
8416    #[doc = " more can be read from pb. The result is guaranteed to be NULL-terminated, it"]
8417    #[doc = " will be truncated if buf is too small."]
8418    #[doc = " Note that the string is not interpreted or validated in any way, it"]
8419    #[doc = " might get truncated in the middle of a sequence for multi-byte encodings."]
8420    #[doc = ""]
8421    #[doc = " @return number of bytes read (is always <= maxlen)."]
8422    #[doc = " If reading ends on EOF or error, the return value will be one more than"]
8423    #[doc = " bytes actually read."]
8424    pub fn avio_get_str(
8425        pb: *mut AVIOContext,
8426        maxlen: ::std::os::raw::c_int,
8427        buf: *mut ::std::os::raw::c_char,
8428        buflen: ::std::os::raw::c_int,
8429    ) -> ::std::os::raw::c_int;
8430}
8431extern "C" {
8432    #[doc = " Read a UTF-16 string from pb and convert it to UTF-8."]
8433    #[doc = " The reading will terminate when either a null or invalid character was"]
8434    #[doc = " encountered or maxlen bytes have been read."]
8435    #[doc = " @return number of bytes read (is always <= maxlen)"]
8436    pub fn avio_get_str16le(
8437        pb: *mut AVIOContext,
8438        maxlen: ::std::os::raw::c_int,
8439        buf: *mut ::std::os::raw::c_char,
8440        buflen: ::std::os::raw::c_int,
8441    ) -> ::std::os::raw::c_int;
8442}
8443extern "C" {
8444    pub fn avio_get_str16be(
8445        pb: *mut AVIOContext,
8446        maxlen: ::std::os::raw::c_int,
8447        buf: *mut ::std::os::raw::c_char,
8448        buflen: ::std::os::raw::c_int,
8449    ) -> ::std::os::raw::c_int;
8450}
8451extern "C" {
8452    #[doc = " Create and initialize a AVIOContext for accessing the"]
8453    #[doc = " resource indicated by url."]
8454    #[doc = " @note When the resource indicated by url has been opened in"]
8455    #[doc = " read+write mode, the AVIOContext can be used only for writing."]
8456    #[doc = ""]
8457    #[doc = " @param s Used to return the pointer to the created AVIOContext."]
8458    #[doc = " In case of failure the pointed to value is set to NULL."]
8459    #[doc = " @param url resource to access"]
8460    #[doc = " @param flags flags which control how the resource indicated by url"]
8461    #[doc = " is to be opened"]
8462    #[doc = " @return >= 0 in case of success, a negative value corresponding to an"]
8463    #[doc = " AVERROR code in case of failure"]
8464    pub fn avio_open(
8465        s: *mut *mut AVIOContext,
8466        url: *const ::std::os::raw::c_char,
8467        flags: ::std::os::raw::c_int,
8468    ) -> ::std::os::raw::c_int;
8469}
8470extern "C" {
8471    #[doc = " Create and initialize a AVIOContext for accessing the"]
8472    #[doc = " resource indicated by url."]
8473    #[doc = " @note When the resource indicated by url has been opened in"]
8474    #[doc = " read+write mode, the AVIOContext can be used only for writing."]
8475    #[doc = ""]
8476    #[doc = " @param s Used to return the pointer to the created AVIOContext."]
8477    #[doc = " In case of failure the pointed to value is set to NULL."]
8478    #[doc = " @param url resource to access"]
8479    #[doc = " @param flags flags which control how the resource indicated by url"]
8480    #[doc = " is to be opened"]
8481    #[doc = " @param int_cb an interrupt callback to be used at the protocols level"]
8482    #[doc = " @param options  A dictionary filled with protocol-private options. On return"]
8483    #[doc = " this parameter will be destroyed and replaced with a dict containing options"]
8484    #[doc = " that were not found. May be NULL."]
8485    #[doc = " @return >= 0 in case of success, a negative value corresponding to an"]
8486    #[doc = " AVERROR code in case of failure"]
8487    pub fn avio_open2(
8488        s: *mut *mut AVIOContext,
8489        url: *const ::std::os::raw::c_char,
8490        flags: ::std::os::raw::c_int,
8491        int_cb: *const AVIOInterruptCB,
8492        options: *mut *mut AVDictionary,
8493    ) -> ::std::os::raw::c_int;
8494}
8495extern "C" {
8496    #[doc = " Close the resource accessed by the AVIOContext s and free it."]
8497    #[doc = " This function can only be used if s was opened by avio_open()."]
8498    #[doc = ""]
8499    #[doc = " The internal buffer is automatically flushed before closing the"]
8500    #[doc = " resource."]
8501    #[doc = ""]
8502    #[doc = " @return 0 on success, an AVERROR < 0 on error."]
8503    #[doc = " @see avio_closep"]
8504    pub fn avio_close(s: *mut AVIOContext) -> ::std::os::raw::c_int;
8505}
8506extern "C" {
8507    #[doc = " Close the resource accessed by the AVIOContext *s, free it"]
8508    #[doc = " and set the pointer pointing to it to NULL."]
8509    #[doc = " This function can only be used if s was opened by avio_open()."]
8510    #[doc = ""]
8511    #[doc = " The internal buffer is automatically flushed before closing the"]
8512    #[doc = " resource."]
8513    #[doc = ""]
8514    #[doc = " @return 0 on success, an AVERROR < 0 on error."]
8515    #[doc = " @see avio_close"]
8516    pub fn avio_closep(s: *mut *mut AVIOContext) -> ::std::os::raw::c_int;
8517}
8518extern "C" {
8519    #[doc = " Open a write only memory stream."]
8520    #[doc = ""]
8521    #[doc = " @param s new IO context"]
8522    #[doc = " @return zero if no error."]
8523    pub fn avio_open_dyn_buf(s: *mut *mut AVIOContext) -> ::std::os::raw::c_int;
8524}
8525extern "C" {
8526    #[doc = " Return the written size and a pointer to the buffer."]
8527    #[doc = " The AVIOContext stream is left intact."]
8528    #[doc = " The buffer must NOT be freed."]
8529    #[doc = " No padding is added to the buffer."]
8530    #[doc = ""]
8531    #[doc = " @param s IO context"]
8532    #[doc = " @param pbuffer pointer to a byte buffer"]
8533    #[doc = " @return the length of the byte buffer"]
8534    pub fn avio_get_dyn_buf(s: *mut AVIOContext, pbuffer: *mut *mut u8) -> ::std::os::raw::c_int;
8535}
8536extern "C" {
8537    #[doc = " Return the written size and a pointer to the buffer. The buffer"]
8538    #[doc = " must be freed with av_free()."]
8539    #[doc = " Padding of AV_INPUT_BUFFER_PADDING_SIZE is added to the buffer."]
8540    #[doc = ""]
8541    #[doc = " @param s IO context"]
8542    #[doc = " @param pbuffer pointer to a byte buffer"]
8543    #[doc = " @return the length of the byte buffer"]
8544    pub fn avio_close_dyn_buf(s: *mut AVIOContext, pbuffer: *mut *mut u8) -> ::std::os::raw::c_int;
8545}
8546extern "C" {
8547    #[doc = " Iterate through names of available protocols."]
8548    #[doc = ""]
8549    #[doc = " @param opaque A private pointer representing current protocol."]
8550    #[doc = "        It must be a pointer to NULL on first iteration and will"]
8551    #[doc = "        be updated by successive calls to avio_enum_protocols."]
8552    #[doc = " @param output If set to 1, iterate over output protocols,"]
8553    #[doc = "               otherwise over input protocols."]
8554    #[doc = ""]
8555    #[doc = " @return A static string containing the name of current protocol or NULL"]
8556    pub fn avio_enum_protocols(
8557        opaque: *mut *mut ::std::os::raw::c_void,
8558        output: ::std::os::raw::c_int,
8559    ) -> *const ::std::os::raw::c_char;
8560}
8561extern "C" {
8562    #[doc = " Pause and resume playing - only meaningful if using a network streaming"]
8563    #[doc = " protocol (e.g. MMS)."]
8564    #[doc = ""]
8565    #[doc = " @param h     IO context from which to call the read_pause function pointer"]
8566    #[doc = " @param pause 1 for pause, 0 for resume"]
8567    pub fn avio_pause(h: *mut AVIOContext, pause: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8568}
8569extern "C" {
8570    #[doc = " Seek to a given timestamp relative to some component stream."]
8571    #[doc = " Only meaningful if using a network streaming protocol (e.g. MMS.)."]
8572    #[doc = ""]
8573    #[doc = " @param h IO context from which to call the seek function pointers"]
8574    #[doc = " @param stream_index The stream index that the timestamp is relative to."]
8575    #[doc = "        If stream_index is (-1) the timestamp should be in AV_TIME_BASE"]
8576    #[doc = "        units from the beginning of the presentation."]
8577    #[doc = "        If a stream_index >= 0 is used and the protocol does not support"]
8578    #[doc = "        seeking based on component streams, the call will fail."]
8579    #[doc = " @param timestamp timestamp in AVStream.time_base units"]
8580    #[doc = "        or if there is no stream specified then in AV_TIME_BASE units."]
8581    #[doc = " @param flags Optional combination of AVSEEK_FLAG_BACKWARD, AVSEEK_FLAG_BYTE"]
8582    #[doc = "        and AVSEEK_FLAG_ANY. The protocol may silently ignore"]
8583    #[doc = "        AVSEEK_FLAG_BACKWARD and AVSEEK_FLAG_ANY, but AVSEEK_FLAG_BYTE will"]
8584    #[doc = "        fail if used and not supported."]
8585    #[doc = " @return >= 0 on success"]
8586    #[doc = " @see AVInputFormat::read_seek"]
8587    pub fn avio_seek_time(
8588        h: *mut AVIOContext,
8589        stream_index: ::std::os::raw::c_int,
8590        timestamp: i64,
8591        flags: ::std::os::raw::c_int,
8592    ) -> i64;
8593}
8594extern "C" {
8595    #[doc = " Read contents of h into print buffer, up to max_size bytes, or up to EOF."]
8596    #[doc = ""]
8597    #[doc = " @return 0 for success (max_size bytes read or EOF reached), negative error"]
8598    #[doc = " code otherwise"]
8599    pub fn avio_read_to_bprint(
8600        h: *mut AVIOContext,
8601        pb: *mut AVBPrint,
8602        max_size: usize,
8603    ) -> ::std::os::raw::c_int;
8604}
8605extern "C" {
8606    #[doc = " Accept and allocate a client context on a server context."]
8607    #[doc = " @param  s the server context"]
8608    #[doc = " @param  c the client context, must be unallocated"]
8609    #[doc = " @return   >= 0 on success or a negative value corresponding"]
8610    #[doc = "           to an AVERROR on failure"]
8611    pub fn avio_accept(s: *mut AVIOContext, c: *mut *mut AVIOContext) -> ::std::os::raw::c_int;
8612}
8613extern "C" {
8614    #[doc = " Perform one step of the protocol handshake to accept a new client."]
8615    #[doc = " This function must be called on a client returned by avio_accept() before"]
8616    #[doc = " using it as a read/write context."]
8617    #[doc = " It is separate from avio_accept() because it may block."]
8618    #[doc = " A step of the handshake is defined by places where the application may"]
8619    #[doc = " decide to change the proceedings."]
8620    #[doc = " For example, on a protocol with a request header and a reply header, each"]
8621    #[doc = " one can constitute a step because the application may use the parameters"]
8622    #[doc = " from the request to change parameters in the reply; or each individual"]
8623    #[doc = " chunk of the request can constitute a step."]
8624    #[doc = " If the handshake is already finished, avio_handshake() does nothing and"]
8625    #[doc = " returns 0 immediately."]
8626    #[doc = ""]
8627    #[doc = " @param  c the client context to perform the handshake on"]
8628    #[doc = " @return   0   on a complete and successful handshake"]
8629    #[doc = "           > 0 if the handshake progressed, but is not complete"]
8630    #[doc = "           < 0 for an AVERROR code"]
8631    pub fn avio_handshake(c: *mut AVIOContext) -> ::std::os::raw::c_int;
8632}
8633#[repr(C)]
8634#[derive(Debug, Copy, Clone)]
8635pub struct AVDeviceInfoList {
8636    _unused: [u8; 0],
8637}
8638#[repr(C)]
8639#[derive(Debug, Copy, Clone)]
8640pub struct AVDeviceCapabilitiesQuery {
8641    _unused: [u8; 0],
8642}
8643extern "C" {
8644    #[doc = " Allocate and read the payload of a packet and initialize its"]
8645    #[doc = " fields with default values."]
8646    #[doc = ""]
8647    #[doc = " @param s    associated IO context"]
8648    #[doc = " @param pkt packet"]
8649    #[doc = " @param size desired payload size"]
8650    #[doc = " @return >0 (read size) if OK, AVERROR_xxx otherwise"]
8651    pub fn av_get_packet(
8652        s: *mut AVIOContext,
8653        pkt: *mut AVPacket,
8654        size: ::std::os::raw::c_int,
8655    ) -> ::std::os::raw::c_int;
8656}
8657extern "C" {
8658    #[doc = " Read data and append it to the current content of the AVPacket."]
8659    #[doc = " If pkt->size is 0 this is identical to av_get_packet."]
8660    #[doc = " Note that this uses av_grow_packet and thus involves a realloc"]
8661    #[doc = " which is inefficient. Thus this function should only be used"]
8662    #[doc = " when there is no reasonable way to know (an upper bound of)"]
8663    #[doc = " the final size."]
8664    #[doc = ""]
8665    #[doc = " @param s    associated IO context"]
8666    #[doc = " @param pkt packet"]
8667    #[doc = " @param size amount of data to read"]
8668    #[doc = " @return >0 (read size) if OK, AVERROR_xxx otherwise, previous data"]
8669    #[doc = "         will not be lost even if an error occurs."]
8670    pub fn av_append_packet(
8671        s: *mut AVIOContext,
8672        pkt: *mut AVPacket,
8673        size: ::std::os::raw::c_int,
8674    ) -> ::std::os::raw::c_int;
8675}
8676#[repr(C)]
8677#[derive(Debug, Copy, Clone)]
8678pub struct AVCodecTag {
8679    _unused: [u8; 0],
8680}
8681#[doc = " This structure contains the data a format has to probe a file."]
8682#[repr(C)]
8683#[derive(Debug, Copy, Clone)]
8684pub struct AVProbeData {
8685    pub filename: *const ::std::os::raw::c_char,
8686    #[doc = "< Buffer must have AVPROBE_PADDING_SIZE of extra allocated bytes filled with zero."]
8687    pub buf: *mut ::std::os::raw::c_uchar,
8688    #[doc = "< Size of buf except extra allocated bytes"]
8689    pub buf_size: ::std::os::raw::c_int,
8690    #[doc = "< mime_type, when known."]
8691    pub mime_type: *const ::std::os::raw::c_char,
8692}
8693#[doc = " @addtogroup lavf_encoding"]
8694#[doc = " @{"]
8695#[repr(C)]
8696#[derive(Debug, Copy, Clone)]
8697pub struct AVOutputFormat {
8698    pub name: *const ::std::os::raw::c_char,
8699    #[doc = " Descriptive name for the format, meant to be more human-readable"]
8700    #[doc = " than name. You should use the NULL_IF_CONFIG_SMALL() macro"]
8701    #[doc = " to define it."]
8702    pub long_name: *const ::std::os::raw::c_char,
8703    pub mime_type: *const ::std::os::raw::c_char,
8704    #[doc = "< comma-separated filename extensions"]
8705    pub extensions: *const ::std::os::raw::c_char,
8706    #[doc = "< default audio codec"]
8707    pub audio_codec: AVCodecID,
8708    #[doc = "< default video codec"]
8709    pub video_codec: AVCodecID,
8710    #[doc = "< default subtitle codec"]
8711    pub subtitle_codec: AVCodecID,
8712    #[doc = " can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER,"]
8713    #[doc = " AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS,"]
8714    #[doc = " AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_ALLOW_FLUSH,"]
8715    #[doc = " AVFMT_TS_NONSTRICT, AVFMT_TS_NEGATIVE"]
8716    pub flags: ::std::os::raw::c_int,
8717    #[doc = " List of supported codec_id-codec_tag pairs, ordered by \"better"]
8718    #[doc = " choice first\". The arrays are all terminated by AV_CODEC_ID_NONE."]
8719    pub codec_tag: *const *const AVCodecTag,
8720    #[doc = "< AVClass for the private context"]
8721    pub priv_class: *const AVClass,
8722    #[doc = " No fields below this line are part of the public API. They"]
8723    #[doc = " may not be used outside of libavformat and can be changed and"]
8724    #[doc = " removed at will."]
8725    #[doc = " New public fields should be added right above."]
8726    #[doc = ""]
8727    pub next: *mut AVOutputFormat,
8728    #[doc = " size of private data so that it can be allocated in the wrapper"]
8729    pub priv_data_size: ::std::os::raw::c_int,
8730    pub write_header: ::std::option::Option<
8731        unsafe extern "C" fn(arg1: *mut AVFormatContext) -> ::std::os::raw::c_int,
8732    >,
8733    #[doc = " Write a packet. If AVFMT_ALLOW_FLUSH is set in flags,"]
8734    #[doc = " pkt can be NULL in order to flush data buffered in the muxer."]
8735    #[doc = " When flushing, return 0 if there still is more data to flush,"]
8736    #[doc = " or 1 if everything was flushed and there is no more buffered"]
8737    #[doc = " data."]
8738    pub write_packet: ::std::option::Option<
8739        unsafe extern "C" fn(
8740            arg1: *mut AVFormatContext,
8741            pkt: *mut AVPacket,
8742        ) -> ::std::os::raw::c_int,
8743    >,
8744    pub write_trailer: ::std::option::Option<
8745        unsafe extern "C" fn(arg1: *mut AVFormatContext) -> ::std::os::raw::c_int,
8746    >,
8747    #[doc = " Currently only used to set pixel format if not YUV420P."]
8748    pub interleave_packet: ::std::option::Option<
8749        unsafe extern "C" fn(
8750            arg1: *mut AVFormatContext,
8751            out: *mut AVPacket,
8752            in_: *mut AVPacket,
8753            flush: ::std::os::raw::c_int,
8754        ) -> ::std::os::raw::c_int,
8755    >,
8756    #[doc = " Test if the given codec can be stored in this container."]
8757    #[doc = ""]
8758    #[doc = " @return 1 if the codec is supported, 0 if it is not."]
8759    #[doc = "         A negative number if unknown."]
8760    #[doc = "         MKTAG(\'A\', \'P\', \'I\', \'C\') if the codec is only supported as AV_DISPOSITION_ATTACHED_PIC"]
8761    pub query_codec: ::std::option::Option<
8762        unsafe extern "C" fn(
8763            id: AVCodecID,
8764            std_compliance: ::std::os::raw::c_int,
8765        ) -> ::std::os::raw::c_int,
8766    >,
8767    pub get_output_timestamp: ::std::option::Option<
8768        unsafe extern "C" fn(
8769            s: *mut AVFormatContext,
8770            stream: ::std::os::raw::c_int,
8771            dts: *mut i64,
8772            wall: *mut i64,
8773        ),
8774    >,
8775    #[doc = " Allows sending messages from application to device."]
8776    pub control_message: ::std::option::Option<
8777        unsafe extern "C" fn(
8778            s: *mut AVFormatContext,
8779            type_: ::std::os::raw::c_int,
8780            data: *mut ::std::os::raw::c_void,
8781            data_size: usize,
8782        ) -> ::std::os::raw::c_int,
8783    >,
8784    #[doc = " Write an uncoded AVFrame."]
8785    #[doc = ""]
8786    #[doc = " See av_write_uncoded_frame() for details."]
8787    #[doc = ""]
8788    #[doc = " The library will free *frame afterwards, but the muxer can prevent it"]
8789    #[doc = " by setting the pointer to NULL."]
8790    pub write_uncoded_frame: ::std::option::Option<
8791        unsafe extern "C" fn(
8792            arg1: *mut AVFormatContext,
8793            stream_index: ::std::os::raw::c_int,
8794            frame: *mut *mut AVFrame,
8795            flags: ::std::os::raw::c_uint,
8796        ) -> ::std::os::raw::c_int,
8797    >,
8798    #[doc = " Returns device list with it properties."]
8799    #[doc = " @see avdevice_list_devices() for more details."]
8800    pub get_device_list: ::std::option::Option<
8801        unsafe extern "C" fn(
8802            s: *mut AVFormatContext,
8803            device_list: *mut AVDeviceInfoList,
8804        ) -> ::std::os::raw::c_int,
8805    >,
8806    #[doc = " Initialize device capabilities submodule."]
8807    #[doc = " @see avdevice_capabilities_create() for more details."]
8808    pub create_device_capabilities: ::std::option::Option<
8809        unsafe extern "C" fn(
8810            s: *mut AVFormatContext,
8811            caps: *mut AVDeviceCapabilitiesQuery,
8812        ) -> ::std::os::raw::c_int,
8813    >,
8814    #[doc = " Free device capabilities submodule."]
8815    #[doc = " @see avdevice_capabilities_free() for more details."]
8816    pub free_device_capabilities: ::std::option::Option<
8817        unsafe extern "C" fn(
8818            s: *mut AVFormatContext,
8819            caps: *mut AVDeviceCapabilitiesQuery,
8820        ) -> ::std::os::raw::c_int,
8821    >,
8822    #[doc = "< default data codec"]
8823    pub data_codec: AVCodecID,
8824    #[doc = " Initialize format. May allocate data here, and set any AVFormatContext or"]
8825    #[doc = " AVStream parameters that need to be set before packets are sent."]
8826    #[doc = " This method must not write output."]
8827    #[doc = ""]
8828    #[doc = " Return 0 if streams were fully configured, 1 if not, negative AVERROR on failure"]
8829    #[doc = ""]
8830    #[doc = " Any allocations made here must be freed in deinit()."]
8831    pub init: ::std::option::Option<
8832        unsafe extern "C" fn(arg1: *mut AVFormatContext) -> ::std::os::raw::c_int,
8833    >,
8834    #[doc = " Deinitialize format. If present, this is called whenever the muxer is being"]
8835    #[doc = " destroyed, regardless of whether or not the header has been written."]
8836    #[doc = ""]
8837    #[doc = " If a trailer is being written, this is called after write_trailer()."]
8838    #[doc = ""]
8839    #[doc = " This is called if init() fails as well."]
8840    pub deinit: ::std::option::Option<unsafe extern "C" fn(arg1: *mut AVFormatContext)>,
8841    #[doc = " Set up any necessary bitstream filtering and extract any extra data needed"]
8842    #[doc = " for the global header."]
8843    #[doc = " Return 0 if more packets from this stream must be checked; 1 if not."]
8844    pub check_bitstream: ::std::option::Option<
8845        unsafe extern "C" fn(
8846            arg1: *mut AVFormatContext,
8847            pkt: *const AVPacket,
8848        ) -> ::std::os::raw::c_int,
8849    >,
8850}
8851#[doc = " @addtogroup lavf_decoding"]
8852#[doc = " @{"]
8853#[repr(C)]
8854#[derive(Debug, Copy, Clone)]
8855pub struct AVInputFormat {
8856    #[doc = " A comma separated list of short names for the format. New names"]
8857    #[doc = " may be appended with a minor bump."]
8858    pub name: *const ::std::os::raw::c_char,
8859    #[doc = " Descriptive name for the format, meant to be more human-readable"]
8860    #[doc = " than name. You should use the NULL_IF_CONFIG_SMALL() macro"]
8861    #[doc = " to define it."]
8862    pub long_name: *const ::std::os::raw::c_char,
8863    #[doc = " Can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_SHOW_IDS,"]
8864    #[doc = " AVFMT_GENERIC_INDEX, AVFMT_TS_DISCONT, AVFMT_NOBINSEARCH,"]
8865    #[doc = " AVFMT_NOGENSEARCH, AVFMT_NO_BYTE_SEEK, AVFMT_SEEK_TO_PTS."]
8866    pub flags: ::std::os::raw::c_int,
8867    #[doc = " If extensions are defined, then no probe is done. You should"]
8868    #[doc = " usually not use extension format guessing because it is not"]
8869    #[doc = " reliable enough"]
8870    pub extensions: *const ::std::os::raw::c_char,
8871    pub codec_tag: *const *const AVCodecTag,
8872    #[doc = "< AVClass for the private context"]
8873    pub priv_class: *const AVClass,
8874    #[doc = " Comma-separated list of mime types."]
8875    #[doc = " It is used check for matching mime types while probing."]
8876    #[doc = " @see av_probe_input_format2"]
8877    pub mime_type: *const ::std::os::raw::c_char,
8878    #[doc = " No fields below this line are part of the public API. They"]
8879    #[doc = " may not be used outside of libavformat and can be changed and"]
8880    #[doc = " removed at will."]
8881    #[doc = " New public fields should be added right above."]
8882    #[doc = ""]
8883    pub next: *mut AVInputFormat,
8884    #[doc = " Raw demuxers store their codec ID here."]
8885    pub raw_codec_id: ::std::os::raw::c_int,
8886    #[doc = " Size of private data so that it can be allocated in the wrapper."]
8887    pub priv_data_size: ::std::os::raw::c_int,
8888    #[doc = " Tell if a given file has a chance of being parsed as this format."]
8889    #[doc = " The buffer provided is guaranteed to be AVPROBE_PADDING_SIZE bytes"]
8890    #[doc = " big so you do not have to check for that unless you need more."]
8891    pub read_probe: ::std::option::Option<
8892        unsafe extern "C" fn(arg1: *mut AVProbeData) -> ::std::os::raw::c_int,
8893    >,
8894    #[doc = " Read the format header and initialize the AVFormatContext"]
8895    #[doc = " structure. Return 0 if OK. \'avformat_new_stream\' should be"]
8896    #[doc = " called to create new streams."]
8897    pub read_header: ::std::option::Option<
8898        unsafe extern "C" fn(arg1: *mut AVFormatContext) -> ::std::os::raw::c_int,
8899    >,
8900    #[doc = " Read one packet and put it in \'pkt\'. pts and flags are also"]
8901    #[doc = " set. \'avformat_new_stream\' can be called only if the flag"]
8902    #[doc = " AVFMTCTX_NOHEADER is used and only in the calling thread (not in a"]
8903    #[doc = " background thread)."]
8904    #[doc = " @return 0 on success, < 0 on error."]
8905    #[doc = "         When returning an error, pkt must not have been allocated"]
8906    #[doc = "         or must be freed before returning"]
8907    pub read_packet: ::std::option::Option<
8908        unsafe extern "C" fn(
8909            arg1: *mut AVFormatContext,
8910            pkt: *mut AVPacket,
8911        ) -> ::std::os::raw::c_int,
8912    >,
8913    #[doc = " Close the stream. The AVFormatContext and AVStreams are not"]
8914    #[doc = " freed by this function"]
8915    pub read_close: ::std::option::Option<
8916        unsafe extern "C" fn(arg1: *mut AVFormatContext) -> ::std::os::raw::c_int,
8917    >,
8918    #[doc = " Seek to a given timestamp relative to the frames in"]
8919    #[doc = " stream component stream_index."]
8920    #[doc = " @param stream_index Must not be -1."]
8921    #[doc = " @param flags Selects which direction should be preferred if no exact"]
8922    #[doc = "              match is available."]
8923    #[doc = " @return >= 0 on success (but not necessarily the new offset)"]
8924    pub read_seek: ::std::option::Option<
8925        unsafe extern "C" fn(
8926            arg1: *mut AVFormatContext,
8927            stream_index: ::std::os::raw::c_int,
8928            timestamp: i64,
8929            flags: ::std::os::raw::c_int,
8930        ) -> ::std::os::raw::c_int,
8931    >,
8932    #[doc = " Get the next timestamp in stream[stream_index].time_base units."]
8933    #[doc = " @return the timestamp or AV_NOPTS_VALUE if an error occurred"]
8934    pub read_timestamp: ::std::option::Option<
8935        unsafe extern "C" fn(
8936            s: *mut AVFormatContext,
8937            stream_index: ::std::os::raw::c_int,
8938            pos: *mut i64,
8939            pos_limit: i64,
8940        ) -> i64,
8941    >,
8942    #[doc = " Start/resume playing - only meaningful if using a network-based format"]
8943    #[doc = " (RTSP)."]
8944    pub read_play: ::std::option::Option<
8945        unsafe extern "C" fn(arg1: *mut AVFormatContext) -> ::std::os::raw::c_int,
8946    >,
8947    #[doc = " Pause playing - only meaningful if using a network-based format"]
8948    #[doc = " (RTSP)."]
8949    pub read_pause: ::std::option::Option<
8950        unsafe extern "C" fn(arg1: *mut AVFormatContext) -> ::std::os::raw::c_int,
8951    >,
8952    #[doc = " Seek to timestamp ts."]
8953    #[doc = " Seeking will be done so that the point from which all active streams"]
8954    #[doc = " can be presented successfully will be closest to ts and within min/max_ts."]
8955    #[doc = " Active streams are all streams that have AVStream.discard < AVDISCARD_ALL."]
8956    pub read_seek2: ::std::option::Option<
8957        unsafe extern "C" fn(
8958            s: *mut AVFormatContext,
8959            stream_index: ::std::os::raw::c_int,
8960            min_ts: i64,
8961            ts: i64,
8962            max_ts: i64,
8963            flags: ::std::os::raw::c_int,
8964        ) -> ::std::os::raw::c_int,
8965    >,
8966    #[doc = " Returns device list with it properties."]
8967    #[doc = " @see avdevice_list_devices() for more details."]
8968    pub get_device_list: ::std::option::Option<
8969        unsafe extern "C" fn(
8970            s: *mut AVFormatContext,
8971            device_list: *mut AVDeviceInfoList,
8972        ) -> ::std::os::raw::c_int,
8973    >,
8974    #[doc = " Initialize device capabilities submodule."]
8975    #[doc = " @see avdevice_capabilities_create() for more details."]
8976    pub create_device_capabilities: ::std::option::Option<
8977        unsafe extern "C" fn(
8978            s: *mut AVFormatContext,
8979            caps: *mut AVDeviceCapabilitiesQuery,
8980        ) -> ::std::os::raw::c_int,
8981    >,
8982    #[doc = " Free device capabilities submodule."]
8983    #[doc = " @see avdevice_capabilities_free() for more details."]
8984    pub free_device_capabilities: ::std::option::Option<
8985        unsafe extern "C" fn(
8986            s: *mut AVFormatContext,
8987            caps: *mut AVDeviceCapabilitiesQuery,
8988        ) -> ::std::os::raw::c_int,
8989    >,
8990}
8991pub const AVStreamParseType_AVSTREAM_PARSE_NONE: AVStreamParseType = 0;
8992#[doc = "< full parsing and repack"]
8993pub const AVStreamParseType_AVSTREAM_PARSE_FULL: AVStreamParseType = 1;
8994#[doc = "< Only parse headers, do not repack."]
8995pub const AVStreamParseType_AVSTREAM_PARSE_HEADERS: AVStreamParseType = 2;
8996#[doc = "< full parsing and interpolation of timestamps for frames not starting on a packet boundary"]
8997pub const AVStreamParseType_AVSTREAM_PARSE_TIMESTAMPS: AVStreamParseType = 3;
8998#[doc = "< full parsing and repack of the first frame only, only implemented for H.264 currently"]
8999pub const AVStreamParseType_AVSTREAM_PARSE_FULL_ONCE: AVStreamParseType = 4;
9000#[doc = "< full parsing and repack with timestamp and position generation by parser for raw"]
9001#[doc = "this assumes that each packet in the file contains no demuxer level headers and"]
9002#[doc = "just codec level data, otherwise position generation would fail"]
9003pub const AVStreamParseType_AVSTREAM_PARSE_FULL_RAW: AVStreamParseType = 5;
9004#[doc = " @}"]
9005pub type AVStreamParseType = u32;
9006#[repr(C)]
9007#[derive(Debug, Copy, Clone)]
9008pub struct AVIndexEntry {
9009    pub pos: i64,
9010    #[doc = "<"]
9011    #[doc = " Timestamp in AVStream.time_base units, preferably the time from which on correctly decoded frames are available"]
9012    #[doc = " when seeking to this entry. That means preferable PTS on keyframe based formats."]
9013    #[doc = " But demuxers can choose to store a different timestamp, if it is more convenient for the implementation or nothing better"]
9014    #[doc = " is known"]
9015    pub timestamp: i64,
9016    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
9017    #[doc = "< Minimum distance between this and the previous keyframe, used to avoid unneeded searching."]
9018    pub min_distance: ::std::os::raw::c_int,
9019}
9020impl AVIndexEntry {
9021    #[inline]
9022    pub fn flags(&self) -> ::std::os::raw::c_int {
9023        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) }
9024    }
9025    #[inline]
9026    pub fn set_flags(&mut self, val: ::std::os::raw::c_int) {
9027        unsafe {
9028            let val: u32 = ::std::mem::transmute(val);
9029            self._bitfield_1.set(0usize, 2u8, val as u64)
9030        }
9031    }
9032    #[inline]
9033    pub fn size(&self) -> ::std::os::raw::c_int {
9034        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
9035    }
9036    #[inline]
9037    pub fn set_size(&mut self, val: ::std::os::raw::c_int) {
9038        unsafe {
9039            let val: u32 = ::std::mem::transmute(val);
9040            self._bitfield_1.set(2usize, 30u8, val as u64)
9041        }
9042    }
9043    #[inline]
9044    pub fn new_bitfield_1(
9045        flags: ::std::os::raw::c_int,
9046        size: ::std::os::raw::c_int,
9047    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
9048        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
9049            Default::default();
9050        __bindgen_bitfield_unit.set(0usize, 2u8, {
9051            let flags: u32 = unsafe { ::std::mem::transmute(flags) };
9052            flags as u64
9053        });
9054        __bindgen_bitfield_unit.set(2usize, 30u8, {
9055            let size: u32 = unsafe { ::std::mem::transmute(size) };
9056            size as u64
9057        });
9058        __bindgen_bitfield_unit
9059    }
9060}
9061#[repr(C)]
9062#[derive(Debug, Copy, Clone)]
9063pub struct AVStreamInternal {
9064    _unused: [u8; 0],
9065}
9066#[doc = " Stream structure."]
9067#[doc = " New fields can be added to the end with minor version bumps."]
9068#[doc = " Removal, reordering and changes to existing fields require a major"]
9069#[doc = " version bump."]
9070#[doc = " sizeof(AVStream) must not be used outside libav*."]
9071#[repr(C)]
9072#[derive(Debug, Copy, Clone)]
9073pub struct AVStream {
9074    #[doc = "< stream index in AVFormatContext"]
9075    pub index: ::std::os::raw::c_int,
9076    #[doc = " Format-specific stream ID."]
9077    #[doc = " decoding: set by libavformat"]
9078    #[doc = " encoding: set by the user, replaced by libavformat if left unset"]
9079    pub id: ::std::os::raw::c_int,
9080    #[doc = " @deprecated use the codecpar struct instead"]
9081    pub codec: *mut AVCodecContext,
9082    pub priv_data: *mut ::std::os::raw::c_void,
9083    #[doc = " This is the fundamental unit of time (in seconds) in terms"]
9084    #[doc = " of which frame timestamps are represented."]
9085    #[doc = ""]
9086    #[doc = " decoding: set by libavformat"]
9087    #[doc = " encoding: May be set by the caller before avformat_write_header() to"]
9088    #[doc = "           provide a hint to the muxer about the desired timebase. In"]
9089    #[doc = "           avformat_write_header(), the muxer will overwrite this field"]
9090    #[doc = "           with the timebase that will actually be used for the timestamps"]
9091    #[doc = "           written into the file (which may or may not be related to the"]
9092    #[doc = "           user-provided one, depending on the format)."]
9093    pub time_base: AVRational,
9094    #[doc = " Decoding: pts of the first frame of the stream in presentation order, in stream time base."]
9095    #[doc = " Only set this if you are absolutely 100% sure that the value you set"]
9096    #[doc = " it to really is the pts of the first frame."]
9097    #[doc = " This may be undefined (AV_NOPTS_VALUE)."]
9098    #[doc = " @note The ASF header does NOT contain a correct start_time the ASF"]
9099    #[doc = " demuxer must NOT set this."]
9100    pub start_time: i64,
9101    #[doc = " Decoding: duration of the stream, in stream time base."]
9102    #[doc = " If a source file does not specify a duration, but does specify"]
9103    #[doc = " a bitrate, this value will be estimated from bitrate and file size."]
9104    #[doc = ""]
9105    #[doc = " Encoding: May be set by the caller before avformat_write_header() to"]
9106    #[doc = " provide a hint to the muxer about the estimated duration."]
9107    pub duration: i64,
9108    #[doc = "< number of frames in this stream if known or 0"]
9109    pub nb_frames: i64,
9110    #[doc = "< AV_DISPOSITION_* bit field"]
9111    pub disposition: ::std::os::raw::c_int,
9112    #[doc = "< Selects which packets can be discarded at will and do not need to be demuxed."]
9113    pub discard: AVDiscard,
9114    #[doc = " sample aspect ratio (0 if unknown)"]
9115    #[doc = " - encoding: Set by user."]
9116    #[doc = " - decoding: Set by libavformat."]
9117    pub sample_aspect_ratio: AVRational,
9118    pub metadata: *mut AVDictionary,
9119    #[doc = " Average framerate"]
9120    #[doc = ""]
9121    #[doc = " - demuxing: May be set by libavformat when creating the stream or in"]
9122    #[doc = "             avformat_find_stream_info()."]
9123    #[doc = " - muxing: May be set by the caller before avformat_write_header()."]
9124    pub avg_frame_rate: AVRational,
9125    #[doc = " For streams with AV_DISPOSITION_ATTACHED_PIC disposition, this packet"]
9126    #[doc = " will contain the attached picture."]
9127    #[doc = ""]
9128    #[doc = " decoding: set by libavformat, must not be modified by the caller."]
9129    #[doc = " encoding: unused"]
9130    pub attached_pic: AVPacket,
9131    #[doc = " An array of side data that applies to the whole stream (i.e. the"]
9132    #[doc = " container does not allow it to change between packets)."]
9133    #[doc = ""]
9134    #[doc = " There may be no overlap between the side data in this array and side data"]
9135    #[doc = " in the packets. I.e. a given side data is either exported by the muxer"]
9136    #[doc = " (demuxing) / set by the caller (muxing) in this array, then it never"]
9137    #[doc = " appears in the packets, or the side data is exported / sent through"]
9138    #[doc = " the packets (always in the first packet where the value becomes known or"]
9139    #[doc = " changes), then it does not appear in this array."]
9140    #[doc = ""]
9141    #[doc = " - demuxing: Set by libavformat when the stream is created."]
9142    #[doc = " - muxing: May be set by the caller before avformat_write_header()."]
9143    #[doc = ""]
9144    #[doc = " Freed by libavformat in avformat_free_context()."]
9145    #[doc = ""]
9146    #[doc = " @see av_format_inject_global_side_data()"]
9147    pub side_data: *mut AVPacketSideData,
9148    #[doc = " The number of elements in the AVStream.side_data array."]
9149    pub nb_side_data: ::std::os::raw::c_int,
9150    #[doc = " Flags for the user to detect events happening on the stream. Flags must"]
9151    #[doc = " be cleared by the user once the event has been handled."]
9152    #[doc = " A combination of AVSTREAM_EVENT_FLAG_*."]
9153    pub event_flags: ::std::os::raw::c_int,
9154    #[doc = " Real base framerate of the stream."]
9155    #[doc = " This is the lowest framerate with which all timestamps can be"]
9156    #[doc = " represented accurately (it is the least common multiple of all"]
9157    #[doc = " framerates in the stream). Note, this value is just a guess!"]
9158    #[doc = " For example, if the time base is 1/90000 and all frames have either"]
9159    #[doc = " approximately 3600 or 1800 timer ticks, then r_frame_rate will be 50/1."]
9160    pub r_frame_rate: AVRational,
9161    #[doc = " String containing pairs of key and values describing recommended encoder configuration."]
9162    #[doc = " Pairs are separated by \',\'."]
9163    #[doc = " Keys are separated from values by \'=\'."]
9164    #[doc = ""]
9165    #[doc = " @deprecated unused"]
9166    pub recommended_encoder_configuration: *mut ::std::os::raw::c_char,
9167    #[doc = " Codec parameters associated with this stream. Allocated and freed by"]
9168    #[doc = " libavformat in avformat_new_stream() and avformat_free_context()"]
9169    #[doc = " respectively."]
9170    #[doc = ""]
9171    #[doc = " - demuxing: filled by libavformat on stream creation or in"]
9172    #[doc = "             avformat_find_stream_info()"]
9173    #[doc = " - muxing: filled by the caller before avformat_write_header()"]
9174    pub codecpar: *mut AVCodecParameters,
9175    pub info: *mut AVStream__bindgen_ty_1,
9176    #[doc = "< number of bits in pts (used for wrapping control)"]
9177    pub pts_wrap_bits: ::std::os::raw::c_int,
9178    #[doc = " Timestamp corresponding to the last dts sync point."]
9179    #[doc = ""]
9180    #[doc = " Initialized when AVCodecParserContext.dts_sync_point >= 0 and"]
9181    #[doc = " a DTS is received from the underlying container. Otherwise set to"]
9182    #[doc = " AV_NOPTS_VALUE by default."]
9183    pub first_dts: i64,
9184    pub cur_dts: i64,
9185    pub last_IP_pts: i64,
9186    pub last_IP_duration: ::std::os::raw::c_int,
9187    #[doc = " Number of packets to buffer for codec probing"]
9188    pub probe_packets: ::std::os::raw::c_int,
9189    #[doc = " Number of frames that have been demuxed during avformat_find_stream_info()"]
9190    pub codec_info_nb_frames: ::std::os::raw::c_int,
9191    pub need_parsing: AVStreamParseType,
9192    pub parser: *mut AVCodecParserContext,
9193    #[doc = " last packet in packet_buffer for this stream when muxing."]
9194    pub last_in_packet_buffer: *mut AVPacketList,
9195    pub probe_data: AVProbeData,
9196    pub pts_buffer: [i64; 17usize],
9197    #[doc = "< Only used if the format does not"]
9198    #[doc = "support seeking natively."]
9199    pub index_entries: *mut AVIndexEntry,
9200    pub nb_index_entries: ::std::os::raw::c_int,
9201    pub index_entries_allocated_size: ::std::os::raw::c_uint,
9202    #[doc = " Stream Identifier"]
9203    #[doc = " This is the MPEG-TS stream identifier +1"]
9204    #[doc = " 0 means unknown"]
9205    pub stream_identifier: ::std::os::raw::c_int,
9206    #[doc = " Details of the MPEG-TS program which created this stream."]
9207    pub program_num: ::std::os::raw::c_int,
9208    pub pmt_version: ::std::os::raw::c_int,
9209    pub pmt_stream_idx: ::std::os::raw::c_int,
9210    pub interleaver_chunk_size: i64,
9211    pub interleaver_chunk_duration: i64,
9212    #[doc = " stream probing state"]
9213    #[doc = " -1   -> probing finished"]
9214    #[doc = "  0   -> no probing requested"]
9215    #[doc = " rest -> perform probing with request_probe being the minimum score to accept."]
9216    #[doc = " NOT PART OF PUBLIC API"]
9217    pub request_probe: ::std::os::raw::c_int,
9218    #[doc = " Indicates that everything up to the next keyframe"]
9219    #[doc = " should be discarded."]
9220    pub skip_to_keyframe: ::std::os::raw::c_int,
9221    #[doc = " Number of samples to skip at the start of the frame decoded from the next packet."]
9222    pub skip_samples: ::std::os::raw::c_int,
9223    #[doc = " If not 0, the number of samples that should be skipped from the start of"]
9224    #[doc = " the stream (the samples are removed from packets with pts==0, which also"]
9225    #[doc = " assumes negative timestamps do not happen)."]
9226    #[doc = " Intended for use with formats such as mp3 with ad-hoc gapless audio"]
9227    #[doc = " support."]
9228    pub start_skip_samples: i64,
9229    #[doc = " If not 0, the first audio sample that should be discarded from the stream."]
9230    #[doc = " This is broken by design (needs global sample count), but can\'t be"]
9231    #[doc = " avoided for broken by design formats such as mp3 with ad-hoc gapless"]
9232    #[doc = " audio support."]
9233    pub first_discard_sample: i64,
9234    #[doc = " The sample after last sample that is intended to be discarded after"]
9235    #[doc = " first_discard_sample. Works on frame boundaries only. Used to prevent"]
9236    #[doc = " early EOF if the gapless info is broken (considered concatenated mp3s)."]
9237    pub last_discard_sample: i64,
9238    #[doc = " Number of internally decoded frames, used internally in libavformat, do not access"]
9239    #[doc = " its lifetime differs from info which is why it is not in that structure."]
9240    pub nb_decoded_frames: ::std::os::raw::c_int,
9241    #[doc = " Timestamp offset added to timestamps before muxing"]
9242    #[doc = " NOT PART OF PUBLIC API"]
9243    pub mux_ts_offset: i64,
9244    #[doc = " Internal data to check for wrapping of the time stamp"]
9245    pub pts_wrap_reference: i64,
9246    #[doc = " Options for behavior, when a wrap is detected."]
9247    #[doc = ""]
9248    #[doc = " Defined by AV_PTS_WRAP_ values."]
9249    #[doc = ""]
9250    #[doc = " If correction is enabled, there are two possibilities:"]
9251    #[doc = " If the first time stamp is near the wrap point, the wrap offset"]
9252    #[doc = " will be subtracted, which will create negative time stamps."]
9253    #[doc = " Otherwise the offset will be added."]
9254    pub pts_wrap_behavior: ::std::os::raw::c_int,
9255    #[doc = " Internal data to prevent doing update_initial_durations() twice"]
9256    pub update_initial_durations_done: ::std::os::raw::c_int,
9257    #[doc = " Internal data to generate dts from pts"]
9258    pub pts_reorder_error: [i64; 17usize],
9259    pub pts_reorder_error_count: [u8; 17usize],
9260    #[doc = " Internal data to analyze DTS and detect faulty mpeg streams"]
9261    pub last_dts_for_order_check: i64,
9262    pub dts_ordered: u8,
9263    pub dts_misordered: u8,
9264    #[doc = " Internal data to inject global side data"]
9265    pub inject_global_side_data: ::std::os::raw::c_int,
9266    #[doc = " display aspect ratio (0 if unknown)"]
9267    #[doc = " - encoding: unused"]
9268    #[doc = " - decoding: Set by libavformat to calculate sample_aspect_ratio internally"]
9269    pub display_aspect_ratio: AVRational,
9270    #[doc = " An opaque field for libavformat internal usage."]
9271    #[doc = " Must not be accessed in any way by callers."]
9272    pub internal: *mut AVStreamInternal,
9273}
9274#[doc = " Stream information used internally by avformat_find_stream_info()"]
9275#[repr(C)]
9276#[derive(Debug, Copy, Clone)]
9277pub struct AVStream__bindgen_ty_1 {
9278    pub last_dts: i64,
9279    pub duration_gcd: i64,
9280    pub duration_count: ::std::os::raw::c_int,
9281    pub rfps_duration_sum: i64,
9282    pub duration_error: *mut [[f64; 399usize]; 2usize],
9283    pub codec_info_duration: i64,
9284    pub codec_info_duration_fields: i64,
9285    pub frame_delay_evidence: ::std::os::raw::c_int,
9286    #[doc = " 0  -> decoder has not been searched for yet."]
9287    #[doc = " >0 -> decoder found"]
9288    #[doc = " <0 -> decoder with codec_id == -found_decoder has not been found"]
9289    pub found_decoder: ::std::os::raw::c_int,
9290    pub last_duration: i64,
9291    #[doc = " Those are used for average framerate estimation."]
9292    pub fps_first_dts: i64,
9293    pub fps_first_dts_idx: ::std::os::raw::c_int,
9294    pub fps_last_dts: i64,
9295    pub fps_last_dts_idx: ::std::os::raw::c_int,
9296}
9297extern "C" {
9298    #[doc = " Accessors for some AVStream fields. These used to be provided for ABI"]
9299    #[doc = " compatibility, and do not need to be used anymore."]
9300    pub fn av_stream_get_r_frame_rate(s: *const AVStream) -> AVRational;
9301}
9302extern "C" {
9303    pub fn av_stream_set_r_frame_rate(s: *mut AVStream, r: AVRational);
9304}
9305extern "C" {
9306    pub fn av_stream_get_recommended_encoder_configuration(
9307        s: *const AVStream,
9308    ) -> *mut ::std::os::raw::c_char;
9309}
9310extern "C" {
9311    pub fn av_stream_set_recommended_encoder_configuration(
9312        s: *mut AVStream,
9313        configuration: *mut ::std::os::raw::c_char,
9314    );
9315}
9316extern "C" {
9317    pub fn av_stream_get_parser(s: *const AVStream) -> *mut AVCodecParserContext;
9318}
9319extern "C" {
9320    #[doc = " Returns the pts of the last muxed packet + its duration"]
9321    #[doc = ""]
9322    #[doc = " the retuned value is undefined when used with a demuxer."]
9323    pub fn av_stream_get_end_pts(st: *const AVStream) -> i64;
9324}
9325#[doc = " New fields can be added to the end with minor version bumps."]
9326#[doc = " Removal, reordering and changes to existing fields require a major"]
9327#[doc = " version bump."]
9328#[doc = " sizeof(AVProgram) must not be used outside libav*."]
9329#[repr(C)]
9330#[derive(Debug, Copy, Clone)]
9331pub struct AVProgram {
9332    pub id: ::std::os::raw::c_int,
9333    pub flags: ::std::os::raw::c_int,
9334    #[doc = "< selects which program to discard and which to feed to the caller"]
9335    pub discard: AVDiscard,
9336    pub stream_index: *mut ::std::os::raw::c_uint,
9337    pub nb_stream_indexes: ::std::os::raw::c_uint,
9338    pub metadata: *mut AVDictionary,
9339    pub program_num: ::std::os::raw::c_int,
9340    pub pmt_pid: ::std::os::raw::c_int,
9341    pub pcr_pid: ::std::os::raw::c_int,
9342    pub pmt_version: ::std::os::raw::c_int,
9343    #[doc = " All fields below this line are not part of the public API. They"]
9344    #[doc = " may not be used outside of libavformat and can be changed and"]
9345    #[doc = " removed at will."]
9346    #[doc = " New public fields should be added right above."]
9347    #[doc = ""]
9348    pub start_time: i64,
9349    pub end_time: i64,
9350    #[doc = "< reference dts for wrap detection"]
9351    pub pts_wrap_reference: i64,
9352    #[doc = "< behavior on wrap detection"]
9353    pub pts_wrap_behavior: ::std::os::raw::c_int,
9354}
9355#[repr(C)]
9356#[derive(Debug, Copy, Clone)]
9357pub struct AVChapter {
9358    #[doc = "< unique ID to identify the chapter"]
9359    pub id: ::std::os::raw::c_int,
9360    #[doc = "< time base in which the start/end timestamps are specified"]
9361    pub time_base: AVRational,
9362    #[doc = "< chapter start/end time in time_base units"]
9363    pub start: i64,
9364    #[doc = "< chapter start/end time in time_base units"]
9365    pub end: i64,
9366    pub metadata: *mut AVDictionary,
9367}
9368#[doc = " Callback used by devices to communicate with application."]
9369pub type av_format_control_message = ::std::option::Option<
9370    unsafe extern "C" fn(
9371        s: *mut AVFormatContext,
9372        type_: ::std::os::raw::c_int,
9373        data: *mut ::std::os::raw::c_void,
9374        data_size: usize,
9375    ) -> ::std::os::raw::c_int,
9376>;
9377pub type AVOpenCallback = ::std::option::Option<
9378    unsafe extern "C" fn(
9379        s: *mut AVFormatContext,
9380        pb: *mut *mut AVIOContext,
9381        url: *const ::std::os::raw::c_char,
9382        flags: ::std::os::raw::c_int,
9383        int_cb: *const AVIOInterruptCB,
9384        options: *mut *mut AVDictionary,
9385    ) -> ::std::os::raw::c_int,
9386>;
9387#[doc = "< Duration accurately estimated from PTSes"]
9388pub const AVDurationEstimationMethod_AVFMT_DURATION_FROM_PTS: AVDurationEstimationMethod = 0;
9389#[doc = "< Duration estimated from a stream with a known duration"]
9390pub const AVDurationEstimationMethod_AVFMT_DURATION_FROM_STREAM: AVDurationEstimationMethod = 1;
9391#[doc = "< Duration estimated from bitrate (less accurate)"]
9392pub const AVDurationEstimationMethod_AVFMT_DURATION_FROM_BITRATE: AVDurationEstimationMethod = 2;
9393#[doc = " The duration of a video can be estimated through various ways, and this enum can be used"]
9394#[doc = " to know how the duration was estimated."]
9395pub type AVDurationEstimationMethod = u32;
9396#[repr(C)]
9397#[derive(Debug, Copy, Clone)]
9398pub struct AVFormatInternal {
9399    _unused: [u8; 0],
9400}
9401#[doc = " Format I/O context."]
9402#[doc = " New fields can be added to the end with minor version bumps."]
9403#[doc = " Removal, reordering and changes to existing fields require a major"]
9404#[doc = " version bump."]
9405#[doc = " sizeof(AVFormatContext) must not be used outside libav*, use"]
9406#[doc = " avformat_alloc_context() to create an AVFormatContext."]
9407#[doc = ""]
9408#[doc = " Fields can be accessed through AVOptions (av_opt*),"]
9409#[doc = " the name string used matches the associated command line parameter name and"]
9410#[doc = " can be found in libavformat/options_table.h."]
9411#[doc = " The AVOption/command line parameter names differ in some cases from the C"]
9412#[doc = " structure field names for historic reasons or brevity."]
9413#[repr(C)]
9414#[derive(Copy, Clone)]
9415pub struct AVFormatContext {
9416    #[doc = " A class for logging and @ref avoptions. Set by avformat_alloc_context()."]
9417    #[doc = " Exports (de)muxer private options if they exist."]
9418    pub av_class: *const AVClass,
9419    #[doc = " The input container format."]
9420    #[doc = ""]
9421    #[doc = " Demuxing only, set by avformat_open_input()."]
9422    pub iformat: *mut AVInputFormat,
9423    #[doc = " The output container format."]
9424    #[doc = ""]
9425    #[doc = " Muxing only, must be set by the caller before avformat_write_header()."]
9426    pub oformat: *mut AVOutputFormat,
9427    #[doc = " Format private data. This is an AVOptions-enabled struct"]
9428    #[doc = " if and only if iformat/oformat.priv_class is not NULL."]
9429    #[doc = ""]
9430    #[doc = " - muxing: set by avformat_write_header()"]
9431    #[doc = " - demuxing: set by avformat_open_input()"]
9432    pub priv_data: *mut ::std::os::raw::c_void,
9433    #[doc = " I/O context."]
9434    #[doc = ""]
9435    #[doc = " - demuxing: either set by the user before avformat_open_input() (then"]
9436    #[doc = "             the user must close it manually) or set by avformat_open_input()."]
9437    #[doc = " - muxing: set by the user before avformat_write_header(). The caller must"]
9438    #[doc = "           take care of closing / freeing the IO context."]
9439    #[doc = ""]
9440    #[doc = " Do NOT set this field if AVFMT_NOFILE flag is set in"]
9441    #[doc = " iformat/oformat.flags. In such a case, the (de)muxer will handle"]
9442    #[doc = " I/O in some other way and this field will be NULL."]
9443    pub pb: *mut AVIOContext,
9444    #[doc = " Flags signalling stream properties. A combination of AVFMTCTX_*."]
9445    #[doc = " Set by libavformat."]
9446    pub ctx_flags: ::std::os::raw::c_int,
9447    #[doc = " Number of elements in AVFormatContext.streams."]
9448    #[doc = ""]
9449    #[doc = " Set by avformat_new_stream(), must not be modified by any other code."]
9450    pub nb_streams: ::std::os::raw::c_uint,
9451    #[doc = " A list of all streams in the file. New streams are created with"]
9452    #[doc = " avformat_new_stream()."]
9453    #[doc = ""]
9454    #[doc = " - demuxing: streams are created by libavformat in avformat_open_input()."]
9455    #[doc = "             If AVFMTCTX_NOHEADER is set in ctx_flags, then new streams may also"]
9456    #[doc = "             appear in av_read_frame()."]
9457    #[doc = " - muxing: streams are created by the user before avformat_write_header()."]
9458    #[doc = ""]
9459    #[doc = " Freed by libavformat in avformat_free_context()."]
9460    pub streams: *mut *mut AVStream,
9461    #[doc = " input or output filename"]
9462    #[doc = ""]
9463    #[doc = " - demuxing: set by avformat_open_input()"]
9464    #[doc = " - muxing: may be set by the caller before avformat_write_header()"]
9465    #[doc = ""]
9466    #[doc = " @deprecated Use url instead."]
9467    pub filename: [::std::os::raw::c_char; 1024usize],
9468    #[doc = " input or output URL. Unlike the old filename field, this field has no"]
9469    #[doc = " length restriction."]
9470    #[doc = ""]
9471    #[doc = " - demuxing: set by avformat_open_input(), initialized to an empty"]
9472    #[doc = "             string if url parameter was NULL in avformat_open_input()."]
9473    #[doc = " - muxing: may be set by the caller before calling avformat_write_header()"]
9474    #[doc = "           (or avformat_init_output() if that is called first) to a string"]
9475    #[doc = "           which is freeable by av_free(). Set to an empty string if it"]
9476    #[doc = "           was NULL in avformat_init_output()."]
9477    #[doc = ""]
9478    #[doc = " Freed by libavformat in avformat_free_context()."]
9479    pub url: *mut ::std::os::raw::c_char,
9480    #[doc = " Position of the first frame of the component, in"]
9481    #[doc = " AV_TIME_BASE fractional seconds. NEVER set this value directly:"]
9482    #[doc = " It is deduced from the AVStream values."]
9483    #[doc = ""]
9484    #[doc = " Demuxing only, set by libavformat."]
9485    pub start_time: i64,
9486    #[doc = " Duration of the stream, in AV_TIME_BASE fractional"]
9487    #[doc = " seconds. Only set this value if you know none of the individual stream"]
9488    #[doc = " durations and also do not set any of them. This is deduced from the"]
9489    #[doc = " AVStream values if not set."]
9490    #[doc = ""]
9491    #[doc = " Demuxing only, set by libavformat."]
9492    pub duration: i64,
9493    #[doc = " Total stream bitrate in bit/s, 0 if not"]
9494    #[doc = " available. Never set it directly if the file_size and the"]
9495    #[doc = " duration are known as FFmpeg can compute it automatically."]
9496    pub bit_rate: i64,
9497    pub packet_size: ::std::os::raw::c_uint,
9498    pub max_delay: ::std::os::raw::c_int,
9499    #[doc = " Flags modifying the (de)muxer behaviour. A combination of AVFMT_FLAG_*."]
9500    #[doc = " Set by the user before avformat_open_input() / avformat_write_header()."]
9501    pub flags: ::std::os::raw::c_int,
9502    #[doc = " Maximum size of the data read from input for determining"]
9503    #[doc = " the input container format."]
9504    #[doc = " Demuxing only, set by the caller before avformat_open_input()."]
9505    pub probesize: i64,
9506    #[doc = " Maximum duration (in AV_TIME_BASE units) of the data read"]
9507    #[doc = " from input in avformat_find_stream_info()."]
9508    #[doc = " Demuxing only, set by the caller before avformat_find_stream_info()."]
9509    #[doc = " Can be set to 0 to let avformat choose using a heuristic."]
9510    pub max_analyze_duration: i64,
9511    pub key: *const u8,
9512    pub keylen: ::std::os::raw::c_int,
9513    pub nb_programs: ::std::os::raw::c_uint,
9514    pub programs: *mut *mut AVProgram,
9515    #[doc = " Forced video codec_id."]
9516    #[doc = " Demuxing: Set by user."]
9517    pub video_codec_id: AVCodecID,
9518    #[doc = " Forced audio codec_id."]
9519    #[doc = " Demuxing: Set by user."]
9520    pub audio_codec_id: AVCodecID,
9521    #[doc = " Forced subtitle codec_id."]
9522    #[doc = " Demuxing: Set by user."]
9523    pub subtitle_codec_id: AVCodecID,
9524    #[doc = " Maximum amount of memory in bytes to use for the index of each stream."]
9525    #[doc = " If the index exceeds this size, entries will be discarded as"]
9526    #[doc = " needed to maintain a smaller size. This can lead to slower or less"]
9527    #[doc = " accurate seeking (depends on demuxer)."]
9528    #[doc = " Demuxers for which a full in-memory index is mandatory will ignore"]
9529    #[doc = " this."]
9530    #[doc = " - muxing: unused"]
9531    #[doc = " - demuxing: set by user"]
9532    pub max_index_size: ::std::os::raw::c_uint,
9533    #[doc = " Maximum amount of memory in bytes to use for buffering frames"]
9534    #[doc = " obtained from realtime capture devices."]
9535    pub max_picture_buffer: ::std::os::raw::c_uint,
9536    #[doc = " Number of chapters in AVChapter array."]
9537    #[doc = " When muxing, chapters are normally written in the file header,"]
9538    #[doc = " so nb_chapters should normally be initialized before write_header"]
9539    #[doc = " is called. Some muxers (e.g. mov and mkv) can also write chapters"]
9540    #[doc = " in the trailer.  To write chapters in the trailer, nb_chapters"]
9541    #[doc = " must be zero when write_header is called and non-zero when"]
9542    #[doc = " write_trailer is called."]
9543    #[doc = " - muxing: set by user"]
9544    #[doc = " - demuxing: set by libavformat"]
9545    pub nb_chapters: ::std::os::raw::c_uint,
9546    pub chapters: *mut *mut AVChapter,
9547    #[doc = " Metadata that applies to the whole file."]
9548    #[doc = ""]
9549    #[doc = " - demuxing: set by libavformat in avformat_open_input()"]
9550    #[doc = " - muxing: may be set by the caller before avformat_write_header()"]
9551    #[doc = ""]
9552    #[doc = " Freed by libavformat in avformat_free_context()."]
9553    pub metadata: *mut AVDictionary,
9554    #[doc = " Start time of the stream in real world time, in microseconds"]
9555    #[doc = " since the Unix epoch (00:00 1st January 1970). That is, pts=0 in the"]
9556    #[doc = " stream was captured at this real world time."]
9557    #[doc = " - muxing: Set by the caller before avformat_write_header(). If set to"]
9558    #[doc = "           either 0 or AV_NOPTS_VALUE, then the current wall-time will"]
9559    #[doc = "           be used."]
9560    #[doc = " - demuxing: Set by libavformat. AV_NOPTS_VALUE if unknown. Note that"]
9561    #[doc = "             the value may become known after some number of frames"]
9562    #[doc = "             have been received."]
9563    pub start_time_realtime: i64,
9564    #[doc = " The number of frames used for determining the framerate in"]
9565    #[doc = " avformat_find_stream_info()."]
9566    #[doc = " Demuxing only, set by the caller before avformat_find_stream_info()."]
9567    pub fps_probe_size: ::std::os::raw::c_int,
9568    #[doc = " Error recognition; higher values will detect more errors but may"]
9569    #[doc = " misdetect some more or less valid parts as errors."]
9570    #[doc = " Demuxing only, set by the caller before avformat_open_input()."]
9571    pub error_recognition: ::std::os::raw::c_int,
9572    #[doc = " Custom interrupt callbacks for the I/O layer."]
9573    #[doc = ""]
9574    #[doc = " demuxing: set by the user before avformat_open_input()."]
9575    #[doc = " muxing: set by the user before avformat_write_header()"]
9576    #[doc = " (mainly useful for AVFMT_NOFILE formats). The callback"]
9577    #[doc = " should also be passed to avio_open2() if it\'s used to"]
9578    #[doc = " open the file."]
9579    pub interrupt_callback: AVIOInterruptCB,
9580    #[doc = " Flags to enable debugging."]
9581    pub debug: ::std::os::raw::c_int,
9582    #[doc = " Maximum buffering duration for interleaving."]
9583    #[doc = ""]
9584    #[doc = " To ensure all the streams are interleaved correctly,"]
9585    #[doc = " av_interleaved_write_frame() will wait until it has at least one packet"]
9586    #[doc = " for each stream before actually writing any packets to the output file."]
9587    #[doc = " When some streams are \"sparse\" (i.e. there are large gaps between"]
9588    #[doc = " successive packets), this can result in excessive buffering."]
9589    #[doc = ""]
9590    #[doc = " This field specifies the maximum difference between the timestamps of the"]
9591    #[doc = " first and the last packet in the muxing queue, above which libavformat"]
9592    #[doc = " will output a packet regardless of whether it has queued a packet for all"]
9593    #[doc = " the streams."]
9594    #[doc = ""]
9595    #[doc = " Muxing only, set by the caller before avformat_write_header()."]
9596    pub max_interleave_delta: i64,
9597    #[doc = " Allow non-standard and experimental extension"]
9598    #[doc = " @see AVCodecContext.strict_std_compliance"]
9599    pub strict_std_compliance: ::std::os::raw::c_int,
9600    #[doc = " Flags for the user to detect events happening on the file. Flags must"]
9601    #[doc = " be cleared by the user once the event has been handled."]
9602    #[doc = " A combination of AVFMT_EVENT_FLAG_*."]
9603    pub event_flags: ::std::os::raw::c_int,
9604    #[doc = " Maximum number of packets to read while waiting for the first timestamp."]
9605    #[doc = " Decoding only."]
9606    pub max_ts_probe: ::std::os::raw::c_int,
9607    #[doc = " Avoid negative timestamps during muxing."]
9608    #[doc = " Any value of the AVFMT_AVOID_NEG_TS_* constants."]
9609    #[doc = " Note, this only works when using av_interleaved_write_frame. (interleave_packet_per_dts is in use)"]
9610    #[doc = " - muxing: Set by user"]
9611    #[doc = " - demuxing: unused"]
9612    pub avoid_negative_ts: ::std::os::raw::c_int,
9613    #[doc = " Transport stream id."]
9614    #[doc = " This will be moved into demuxer private options. Thus no API/ABI compatibility"]
9615    pub ts_id: ::std::os::raw::c_int,
9616    #[doc = " Audio preload in microseconds."]
9617    #[doc = " Note, not all formats support this and unpredictable things may happen if it is used when not supported."]
9618    #[doc = " - encoding: Set by user"]
9619    #[doc = " - decoding: unused"]
9620    pub audio_preload: ::std::os::raw::c_int,
9621    #[doc = " Max chunk time in microseconds."]
9622    #[doc = " Note, not all formats support this and unpredictable things may happen if it is used when not supported."]
9623    #[doc = " - encoding: Set by user"]
9624    #[doc = " - decoding: unused"]
9625    pub max_chunk_duration: ::std::os::raw::c_int,
9626    #[doc = " Max chunk size in bytes"]
9627    #[doc = " Note, not all formats support this and unpredictable things may happen if it is used when not supported."]
9628    #[doc = " - encoding: Set by user"]
9629    #[doc = " - decoding: unused"]
9630    pub max_chunk_size: ::std::os::raw::c_int,
9631    #[doc = " forces the use of wallclock timestamps as pts/dts of packets"]
9632    #[doc = " This has undefined results in the presence of B frames."]
9633    #[doc = " - encoding: unused"]
9634    #[doc = " - decoding: Set by user"]
9635    pub use_wallclock_as_timestamps: ::std::os::raw::c_int,
9636    #[doc = " avio flags, used to force AVIO_FLAG_DIRECT."]
9637    #[doc = " - encoding: unused"]
9638    #[doc = " - decoding: Set by user"]
9639    pub avio_flags: ::std::os::raw::c_int,
9640    #[doc = " The duration field can be estimated through various ways, and this field can be used"]
9641    #[doc = " to know how the duration was estimated."]
9642    #[doc = " - encoding: unused"]
9643    #[doc = " - decoding: Read by user"]
9644    pub duration_estimation_method: AVDurationEstimationMethod,
9645    #[doc = " Skip initial bytes when opening stream"]
9646    #[doc = " - encoding: unused"]
9647    #[doc = " - decoding: Set by user"]
9648    pub skip_initial_bytes: i64,
9649    #[doc = " Correct single timestamp overflows"]
9650    #[doc = " - encoding: unused"]
9651    #[doc = " - decoding: Set by user"]
9652    pub correct_ts_overflow: ::std::os::raw::c_uint,
9653    #[doc = " Force seeking to any (also non key) frames."]
9654    #[doc = " - encoding: unused"]
9655    #[doc = " - decoding: Set by user"]
9656    pub seek2any: ::std::os::raw::c_int,
9657    #[doc = " Flush the I/O context after each packet."]
9658    #[doc = " - encoding: Set by user"]
9659    #[doc = " - decoding: unused"]
9660    pub flush_packets: ::std::os::raw::c_int,
9661    #[doc = " format probing score."]
9662    #[doc = " The maximal score is AVPROBE_SCORE_MAX, its set when the demuxer probes"]
9663    #[doc = " the format."]
9664    #[doc = " - encoding: unused"]
9665    #[doc = " - decoding: set by avformat, read by user"]
9666    pub probe_score: ::std::os::raw::c_int,
9667    #[doc = " number of bytes to read maximally to identify format."]
9668    #[doc = " - encoding: unused"]
9669    #[doc = " - decoding: set by user"]
9670    pub format_probesize: ::std::os::raw::c_int,
9671    #[doc = " \',\' separated list of allowed decoders."]
9672    #[doc = " If NULL then all are allowed"]
9673    #[doc = " - encoding: unused"]
9674    #[doc = " - decoding: set by user"]
9675    pub codec_whitelist: *mut ::std::os::raw::c_char,
9676    #[doc = " \',\' separated list of allowed demuxers."]
9677    #[doc = " If NULL then all are allowed"]
9678    #[doc = " - encoding: unused"]
9679    #[doc = " - decoding: set by user"]
9680    pub format_whitelist: *mut ::std::os::raw::c_char,
9681    #[doc = " An opaque field for libavformat internal usage."]
9682    #[doc = " Must not be accessed in any way by callers."]
9683    pub internal: *mut AVFormatInternal,
9684    #[doc = " IO repositioned flag."]
9685    #[doc = " This is set by avformat when the underlaying IO context read pointer"]
9686    #[doc = " is repositioned, for example when doing byte based seeking."]
9687    #[doc = " Demuxers can use the flag to detect such changes."]
9688    pub io_repositioned: ::std::os::raw::c_int,
9689    #[doc = " Forced video codec."]
9690    #[doc = " This allows forcing a specific decoder, even when there are multiple with"]
9691    #[doc = " the same codec_id."]
9692    #[doc = " Demuxing: Set by user"]
9693    pub video_codec: *mut AVCodec,
9694    #[doc = " Forced audio codec."]
9695    #[doc = " This allows forcing a specific decoder, even when there are multiple with"]
9696    #[doc = " the same codec_id."]
9697    #[doc = " Demuxing: Set by user"]
9698    pub audio_codec: *mut AVCodec,
9699    #[doc = " Forced subtitle codec."]
9700    #[doc = " This allows forcing a specific decoder, even when there are multiple with"]
9701    #[doc = " the same codec_id."]
9702    #[doc = " Demuxing: Set by user"]
9703    pub subtitle_codec: *mut AVCodec,
9704    #[doc = " Forced data codec."]
9705    #[doc = " This allows forcing a specific decoder, even when there are multiple with"]
9706    #[doc = " the same codec_id."]
9707    #[doc = " Demuxing: Set by user"]
9708    pub data_codec: *mut AVCodec,
9709    #[doc = " Number of bytes to be written as padding in a metadata header."]
9710    #[doc = " Demuxing: Unused."]
9711    #[doc = " Muxing: Set by user via av_format_set_metadata_header_padding."]
9712    pub metadata_header_padding: ::std::os::raw::c_int,
9713    #[doc = " User data."]
9714    #[doc = " This is a place for some private data of the user."]
9715    pub opaque: *mut ::std::os::raw::c_void,
9716    #[doc = " Callback used by devices to communicate with application."]
9717    pub control_message_cb: av_format_control_message,
9718    #[doc = " Output timestamp offset, in microseconds."]
9719    #[doc = " Muxing: set by user"]
9720    pub output_ts_offset: i64,
9721    #[doc = " dump format separator."]
9722    #[doc = " can be \", \" or \"\\n      \" or anything else"]
9723    #[doc = " - muxing: Set by user."]
9724    #[doc = " - demuxing: Set by user."]
9725    pub dump_separator: *mut u8,
9726    #[doc = " Forced Data codec_id."]
9727    #[doc = " Demuxing: Set by user."]
9728    pub data_codec_id: AVCodecID,
9729    #[doc = " Called to open further IO contexts when needed for demuxing."]
9730    #[doc = ""]
9731    #[doc = " This can be set by the user application to perform security checks on"]
9732    #[doc = " the URLs before opening them."]
9733    #[doc = " The function should behave like avio_open2(), AVFormatContext is provided"]
9734    #[doc = " as contextual information and to reach AVFormatContext.opaque."]
9735    #[doc = ""]
9736    #[doc = " If NULL then some simple checks are used together with avio_open2()."]
9737    #[doc = ""]
9738    #[doc = " Must not be accessed directly from outside avformat."]
9739    #[doc = " @See av_format_set_open_cb()"]
9740    #[doc = ""]
9741    #[doc = " Demuxing: Set by user."]
9742    #[doc = ""]
9743    #[doc = " @deprecated Use io_open and io_close."]
9744    pub open_cb: ::std::option::Option<
9745        unsafe extern "C" fn(
9746            s: *mut AVFormatContext,
9747            p: *mut *mut AVIOContext,
9748            url: *const ::std::os::raw::c_char,
9749            flags: ::std::os::raw::c_int,
9750            int_cb: *const AVIOInterruptCB,
9751            options: *mut *mut AVDictionary,
9752        ) -> ::std::os::raw::c_int,
9753    >,
9754    #[doc = " \',\' separated list of allowed protocols."]
9755    #[doc = " - encoding: unused"]
9756    #[doc = " - decoding: set by user"]
9757    pub protocol_whitelist: *mut ::std::os::raw::c_char,
9758    #[doc = " A callback for opening new IO streams."]
9759    #[doc = ""]
9760    #[doc = " Whenever a muxer or a demuxer needs to open an IO stream (typically from"]
9761    #[doc = " avformat_open_input() for demuxers, but for certain formats can happen at"]
9762    #[doc = " other times as well), it will call this callback to obtain an IO context."]
9763    #[doc = ""]
9764    #[doc = " @param s the format context"]
9765    #[doc = " @param pb on success, the newly opened IO context should be returned here"]
9766    #[doc = " @param url the url to open"]
9767    #[doc = " @param flags a combination of AVIO_FLAG_*"]
9768    #[doc = " @param options a dictionary of additional options, with the same"]
9769    #[doc = "                semantics as in avio_open2()"]
9770    #[doc = " @return 0 on success, a negative AVERROR code on failure"]
9771    #[doc = ""]
9772    #[doc = " @note Certain muxers and demuxers do nesting, i.e. they open one or more"]
9773    #[doc = " additional internal format contexts. Thus the AVFormatContext pointer"]
9774    #[doc = " passed to this callback may be different from the one facing the caller."]
9775    #[doc = " It will, however, have the same \'opaque\' field."]
9776    pub io_open: ::std::option::Option<
9777        unsafe extern "C" fn(
9778            s: *mut AVFormatContext,
9779            pb: *mut *mut AVIOContext,
9780            url: *const ::std::os::raw::c_char,
9781            flags: ::std::os::raw::c_int,
9782            options: *mut *mut AVDictionary,
9783        ) -> ::std::os::raw::c_int,
9784    >,
9785    #[doc = " A callback for closing the streams opened with AVFormatContext.io_open()."]
9786    pub io_close:
9787        ::std::option::Option<unsafe extern "C" fn(s: *mut AVFormatContext, pb: *mut AVIOContext)>,
9788    #[doc = " \',\' separated list of disallowed protocols."]
9789    #[doc = " - encoding: unused"]
9790    #[doc = " - decoding: set by user"]
9791    pub protocol_blacklist: *mut ::std::os::raw::c_char,
9792    #[doc = " The maximum number of streams."]
9793    #[doc = " - encoding: unused"]
9794    #[doc = " - decoding: set by user"]
9795    pub max_streams: ::std::os::raw::c_int,
9796    #[doc = " Skip duration calcuation in estimate_timings_from_pts."]
9797    #[doc = " - encoding: unused"]
9798    #[doc = " - decoding: set by user"]
9799    pub skip_estimate_duration_from_pts: ::std::os::raw::c_int,
9800}
9801extern "C" {
9802    #[doc = " Accessors for some AVFormatContext fields. These used to be provided for ABI"]
9803    #[doc = " compatibility, and do not need to be used anymore."]
9804    pub fn av_format_get_probe_score(s: *const AVFormatContext) -> ::std::os::raw::c_int;
9805}
9806extern "C" {
9807    pub fn av_format_get_video_codec(s: *const AVFormatContext) -> *mut AVCodec;
9808}
9809extern "C" {
9810    pub fn av_format_set_video_codec(s: *mut AVFormatContext, c: *mut AVCodec);
9811}
9812extern "C" {
9813    pub fn av_format_get_audio_codec(s: *const AVFormatContext) -> *mut AVCodec;
9814}
9815extern "C" {
9816    pub fn av_format_set_audio_codec(s: *mut AVFormatContext, c: *mut AVCodec);
9817}
9818extern "C" {
9819    pub fn av_format_get_subtitle_codec(s: *const AVFormatContext) -> *mut AVCodec;
9820}
9821extern "C" {
9822    pub fn av_format_set_subtitle_codec(s: *mut AVFormatContext, c: *mut AVCodec);
9823}
9824extern "C" {
9825    pub fn av_format_get_data_codec(s: *const AVFormatContext) -> *mut AVCodec;
9826}
9827extern "C" {
9828    pub fn av_format_set_data_codec(s: *mut AVFormatContext, c: *mut AVCodec);
9829}
9830extern "C" {
9831    pub fn av_format_get_metadata_header_padding(
9832        s: *const AVFormatContext,
9833    ) -> ::std::os::raw::c_int;
9834}
9835extern "C" {
9836    pub fn av_format_set_metadata_header_padding(s: *mut AVFormatContext, c: ::std::os::raw::c_int);
9837}
9838extern "C" {
9839    pub fn av_format_get_opaque(s: *const AVFormatContext) -> *mut ::std::os::raw::c_void;
9840}
9841extern "C" {
9842    pub fn av_format_set_opaque(s: *mut AVFormatContext, opaque: *mut ::std::os::raw::c_void);
9843}
9844extern "C" {
9845    pub fn av_format_get_control_message_cb(s: *const AVFormatContext)
9846        -> av_format_control_message;
9847}
9848extern "C" {
9849    pub fn av_format_set_control_message_cb(
9850        s: *mut AVFormatContext,
9851        callback: av_format_control_message,
9852    );
9853}
9854extern "C" {
9855    pub fn av_format_get_open_cb(s: *const AVFormatContext) -> AVOpenCallback;
9856}
9857extern "C" {
9858    pub fn av_format_set_open_cb(s: *mut AVFormatContext, callback: AVOpenCallback);
9859}
9860extern "C" {
9861    #[doc = " This function will cause global side data to be injected in the next packet"]
9862    #[doc = " of each stream as well as after any subsequent seek."]
9863    pub fn av_format_inject_global_side_data(s: *mut AVFormatContext);
9864}
9865extern "C" {
9866    #[doc = " Returns the method used to set ctx->duration."]
9867    #[doc = ""]
9868    #[doc = " @return AVFMT_DURATION_FROM_PTS, AVFMT_DURATION_FROM_STREAM, or AVFMT_DURATION_FROM_BITRATE."]
9869    pub fn av_fmt_ctx_get_duration_estimation_method(
9870        ctx: *const AVFormatContext,
9871    ) -> AVDurationEstimationMethod;
9872}
9873#[repr(C)]
9874#[derive(Debug, Copy, Clone)]
9875pub struct AVPacketList {
9876    pub pkt: AVPacket,
9877    pub next: *mut AVPacketList,
9878}
9879extern "C" {
9880    #[doc = " Return the LIBAVFORMAT_VERSION_INT constant."]
9881    pub fn avformat_version() -> ::std::os::raw::c_uint;
9882}
9883extern "C" {
9884    #[doc = " Return the libavformat build-time configuration."]
9885    pub fn avformat_configuration() -> *const ::std::os::raw::c_char;
9886}
9887extern "C" {
9888    #[doc = " Return the libavformat license."]
9889    pub fn avformat_license() -> *const ::std::os::raw::c_char;
9890}
9891extern "C" {
9892    #[doc = " Initialize libavformat and register all the muxers, demuxers and"]
9893    #[doc = " protocols. If you do not call this function, then you can select"]
9894    #[doc = " exactly which formats you want to support."]
9895    #[doc = ""]
9896    #[doc = " @see av_register_input_format()"]
9897    #[doc = " @see av_register_output_format()"]
9898    pub fn av_register_all();
9899}
9900extern "C" {
9901    pub fn av_register_input_format(format: *mut AVInputFormat);
9902}
9903extern "C" {
9904    pub fn av_register_output_format(format: *mut AVOutputFormat);
9905}
9906extern "C" {
9907    #[doc = " Do global initialization of network libraries. This is optional,"]
9908    #[doc = " and not recommended anymore."]
9909    #[doc = ""]
9910    #[doc = " This functions only exists to work around thread-safety issues"]
9911    #[doc = " with older GnuTLS or OpenSSL libraries. If libavformat is linked"]
9912    #[doc = " to newer versions of those libraries, or if you do not use them,"]
9913    #[doc = " calling this function is unnecessary. Otherwise, you need to call"]
9914    #[doc = " this function before any other threads using them are started."]
9915    #[doc = ""]
9916    #[doc = " This function will be deprecated once support for older GnuTLS and"]
9917    #[doc = " OpenSSL libraries is removed, and this function has no purpose"]
9918    #[doc = " anymore."]
9919    pub fn avformat_network_init() -> ::std::os::raw::c_int;
9920}
9921extern "C" {
9922    #[doc = " Undo the initialization done by avformat_network_init. Call it only"]
9923    #[doc = " once for each time you called avformat_network_init."]
9924    pub fn avformat_network_deinit() -> ::std::os::raw::c_int;
9925}
9926extern "C" {
9927    #[doc = " If f is NULL, returns the first registered input format,"]
9928    #[doc = " if f is non-NULL, returns the next registered input format after f"]
9929    #[doc = " or NULL if f is the last one."]
9930    pub fn av_iformat_next(f: *const AVInputFormat) -> *mut AVInputFormat;
9931}
9932extern "C" {
9933    #[doc = " If f is NULL, returns the first registered output format,"]
9934    #[doc = " if f is non-NULL, returns the next registered output format after f"]
9935    #[doc = " or NULL if f is the last one."]
9936    pub fn av_oformat_next(f: *const AVOutputFormat) -> *mut AVOutputFormat;
9937}
9938extern "C" {
9939    #[doc = " Iterate over all registered muxers."]
9940    #[doc = ""]
9941    #[doc = " @param opaque a pointer where libavformat will store the iteration state. Must"]
9942    #[doc = "               point to NULL to start the iteration."]
9943    #[doc = ""]
9944    #[doc = " @return the next registered muxer or NULL when the iteration is"]
9945    #[doc = "         finished"]
9946    pub fn av_muxer_iterate(opaque: *mut *mut ::std::os::raw::c_void) -> *const AVOutputFormat;
9947}
9948extern "C" {
9949    #[doc = " Iterate over all registered demuxers."]
9950    #[doc = ""]
9951    #[doc = " @param opaque a pointer where libavformat will store the iteration state. Must"]
9952    #[doc = "               point to NULL to start the iteration."]
9953    #[doc = ""]
9954    #[doc = " @return the next registered demuxer or NULL when the iteration is"]
9955    #[doc = "         finished"]
9956    pub fn av_demuxer_iterate(opaque: *mut *mut ::std::os::raw::c_void) -> *const AVInputFormat;
9957}
9958extern "C" {
9959    #[doc = " Allocate an AVFormatContext."]
9960    #[doc = " avformat_free_context() can be used to free the context and everything"]
9961    #[doc = " allocated by the framework within it."]
9962    pub fn avformat_alloc_context() -> *mut AVFormatContext;
9963}
9964extern "C" {
9965    #[doc = " Free an AVFormatContext and all its streams."]
9966    #[doc = " @param s context to free"]
9967    pub fn avformat_free_context(s: *mut AVFormatContext);
9968}
9969extern "C" {
9970    #[doc = " Get the AVClass for AVFormatContext. It can be used in combination with"]
9971    #[doc = " AV_OPT_SEARCH_FAKE_OBJ for examining options."]
9972    #[doc = ""]
9973    #[doc = " @see av_opt_find()."]
9974    pub fn avformat_get_class() -> *const AVClass;
9975}
9976extern "C" {
9977    #[doc = " Add a new stream to a media file."]
9978    #[doc = ""]
9979    #[doc = " When demuxing, it is called by the demuxer in read_header(). If the"]
9980    #[doc = " flag AVFMTCTX_NOHEADER is set in s.ctx_flags, then it may also"]
9981    #[doc = " be called in read_packet()."]
9982    #[doc = ""]
9983    #[doc = " When muxing, should be called by the user before avformat_write_header()."]
9984    #[doc = ""]
9985    #[doc = " User is required to call avcodec_close() and avformat_free_context() to"]
9986    #[doc = " clean up the allocation by avformat_new_stream()."]
9987    #[doc = ""]
9988    #[doc = " @param s media file handle"]
9989    #[doc = " @param c If non-NULL, the AVCodecContext corresponding to the new stream"]
9990    #[doc = " will be initialized to use this codec. This is needed for e.g. codec-specific"]
9991    #[doc = " defaults to be set, so codec should be provided if it is known."]
9992    #[doc = ""]
9993    #[doc = " @return newly created stream or NULL on error."]
9994    pub fn avformat_new_stream(s: *mut AVFormatContext, c: *const AVCodec) -> *mut AVStream;
9995}
9996extern "C" {
9997    #[doc = " Wrap an existing array as stream side data."]
9998    #[doc = ""]
9999    #[doc = " @param st stream"]
10000    #[doc = " @param type side information type"]
10001    #[doc = " @param data the side data array. It must be allocated with the av_malloc()"]
10002    #[doc = "             family of functions. The ownership of the data is transferred to"]
10003    #[doc = "             st."]
10004    #[doc = " @param size side information size"]
10005    #[doc = " @return zero on success, a negative AVERROR code on failure. On failure,"]
10006    #[doc = "         the stream is unchanged and the data remains owned by the caller."]
10007    pub fn av_stream_add_side_data(
10008        st: *mut AVStream,
10009        type_: AVPacketSideDataType,
10010        data: *mut u8,
10011        size: usize,
10012    ) -> ::std::os::raw::c_int;
10013}
10014extern "C" {
10015    #[doc = " Allocate new information from stream."]
10016    #[doc = ""]
10017    #[doc = " @param stream stream"]
10018    #[doc = " @param type desired side information type"]
10019    #[doc = " @param size side information size"]
10020    #[doc = " @return pointer to fresh allocated data or NULL otherwise"]
10021    pub fn av_stream_new_side_data(
10022        stream: *mut AVStream,
10023        type_: AVPacketSideDataType,
10024        size: ::std::os::raw::c_int,
10025    ) -> *mut u8;
10026}
10027extern "C" {
10028    #[doc = " Get side information from stream."]
10029    #[doc = ""]
10030    #[doc = " @param stream stream"]
10031    #[doc = " @param type desired side information type"]
10032    #[doc = " @param size pointer for side information size to store (optional)"]
10033    #[doc = " @return pointer to data if present or NULL otherwise"]
10034    pub fn av_stream_get_side_data(
10035        stream: *const AVStream,
10036        type_: AVPacketSideDataType,
10037        size: *mut ::std::os::raw::c_int,
10038    ) -> *mut u8;
10039}
10040extern "C" {
10041    pub fn av_new_program(s: *mut AVFormatContext, id: ::std::os::raw::c_int) -> *mut AVProgram;
10042}
10043extern "C" {
10044    #[doc = " Allocate an AVFormatContext for an output format."]
10045    #[doc = " avformat_free_context() can be used to free the context and"]
10046    #[doc = " everything allocated by the framework within it."]
10047    #[doc = ""]
10048    #[doc = " @param *ctx is set to the created format context, or to NULL in"]
10049    #[doc = " case of failure"]
10050    #[doc = " @param oformat format to use for allocating the context, if NULL"]
10051    #[doc = " format_name and filename are used instead"]
10052    #[doc = " @param format_name the name of output format to use for allocating the"]
10053    #[doc = " context, if NULL filename is used instead"]
10054    #[doc = " @param filename the name of the filename to use for allocating the"]
10055    #[doc = " context, may be NULL"]
10056    #[doc = " @return >= 0 in case of success, a negative AVERROR code in case of"]
10057    #[doc = " failure"]
10058    pub fn avformat_alloc_output_context2(
10059        ctx: *mut *mut AVFormatContext,
10060        oformat: *mut AVOutputFormat,
10061        format_name: *const ::std::os::raw::c_char,
10062        filename: *const ::std::os::raw::c_char,
10063    ) -> ::std::os::raw::c_int;
10064}
10065extern "C" {
10066    #[doc = " Find AVInputFormat based on the short name of the input format."]
10067    pub fn av_find_input_format(short_name: *const ::std::os::raw::c_char) -> *mut AVInputFormat;
10068}
10069extern "C" {
10070    #[doc = " Guess the file format."]
10071    #[doc = ""]
10072    #[doc = " @param pd        data to be probed"]
10073    #[doc = " @param is_opened Whether the file is already opened; determines whether"]
10074    #[doc = "                  demuxers with or without AVFMT_NOFILE are probed."]
10075    pub fn av_probe_input_format(
10076        pd: *mut AVProbeData,
10077        is_opened: ::std::os::raw::c_int,
10078    ) -> *mut AVInputFormat;
10079}
10080extern "C" {
10081    #[doc = " Guess the file format."]
10082    #[doc = ""]
10083    #[doc = " @param pd        data to be probed"]
10084    #[doc = " @param is_opened Whether the file is already opened; determines whether"]
10085    #[doc = "                  demuxers with or without AVFMT_NOFILE are probed."]
10086    #[doc = " @param score_max A probe score larger that this is required to accept a"]
10087    #[doc = "                  detection, the variable is set to the actual detection"]
10088    #[doc = "                  score afterwards."]
10089    #[doc = "                  If the score is <= AVPROBE_SCORE_MAX / 4 it is recommended"]
10090    #[doc = "                  to retry with a larger probe buffer."]
10091    pub fn av_probe_input_format2(
10092        pd: *mut AVProbeData,
10093        is_opened: ::std::os::raw::c_int,
10094        score_max: *mut ::std::os::raw::c_int,
10095    ) -> *mut AVInputFormat;
10096}
10097extern "C" {
10098    #[doc = " Guess the file format."]
10099    #[doc = ""]
10100    #[doc = " @param is_opened Whether the file is already opened; determines whether"]
10101    #[doc = "                  demuxers with or without AVFMT_NOFILE are probed."]
10102    #[doc = " @param score_ret The score of the best detection."]
10103    pub fn av_probe_input_format3(
10104        pd: *mut AVProbeData,
10105        is_opened: ::std::os::raw::c_int,
10106        score_ret: *mut ::std::os::raw::c_int,
10107    ) -> *mut AVInputFormat;
10108}
10109extern "C" {
10110    #[doc = " Probe a bytestream to determine the input format. Each time a probe returns"]
10111    #[doc = " with a score that is too low, the probe buffer size is increased and another"]
10112    #[doc = " attempt is made. When the maximum probe size is reached, the input format"]
10113    #[doc = " with the highest score is returned."]
10114    #[doc = ""]
10115    #[doc = " @param pb the bytestream to probe"]
10116    #[doc = " @param fmt the input format is put here"]
10117    #[doc = " @param url the url of the stream"]
10118    #[doc = " @param logctx the log context"]
10119    #[doc = " @param offset the offset within the bytestream to probe from"]
10120    #[doc = " @param max_probe_size the maximum probe buffer size (zero for default)"]
10121    #[doc = " @return the score in case of success, a negative value corresponding to an"]
10122    #[doc = "         the maximal score is AVPROBE_SCORE_MAX"]
10123    #[doc = " AVERROR code otherwise"]
10124    pub fn av_probe_input_buffer2(
10125        pb: *mut AVIOContext,
10126        fmt: *mut *mut AVInputFormat,
10127        url: *const ::std::os::raw::c_char,
10128        logctx: *mut ::std::os::raw::c_void,
10129        offset: ::std::os::raw::c_uint,
10130        max_probe_size: ::std::os::raw::c_uint,
10131    ) -> ::std::os::raw::c_int;
10132}
10133extern "C" {
10134    #[doc = " Like av_probe_input_buffer2() but returns 0 on success"]
10135    pub fn av_probe_input_buffer(
10136        pb: *mut AVIOContext,
10137        fmt: *mut *mut AVInputFormat,
10138        url: *const ::std::os::raw::c_char,
10139        logctx: *mut ::std::os::raw::c_void,
10140        offset: ::std::os::raw::c_uint,
10141        max_probe_size: ::std::os::raw::c_uint,
10142    ) -> ::std::os::raw::c_int;
10143}
10144extern "C" {
10145    #[doc = " Open an input stream and read the header. The codecs are not opened."]
10146    #[doc = " The stream must be closed with avformat_close_input()."]
10147    #[doc = ""]
10148    #[doc = " @param ps Pointer to user-supplied AVFormatContext (allocated by avformat_alloc_context)."]
10149    #[doc = "           May be a pointer to NULL, in which case an AVFormatContext is allocated by this"]
10150    #[doc = "           function and written into ps."]
10151    #[doc = "           Note that a user-supplied AVFormatContext will be freed on failure."]
10152    #[doc = " @param url URL of the stream to open."]
10153    #[doc = " @param fmt If non-NULL, this parameter forces a specific input format."]
10154    #[doc = "            Otherwise the format is autodetected."]
10155    #[doc = " @param options  A dictionary filled with AVFormatContext and demuxer-private options."]
10156    #[doc = "                 On return this parameter will be destroyed and replaced with a dict containing"]
10157    #[doc = "                 options that were not found. May be NULL."]
10158    #[doc = ""]
10159    #[doc = " @return 0 on success, a negative AVERROR on failure."]
10160    #[doc = ""]
10161    #[doc = " @note If you want to use custom IO, preallocate the format context and set its pb field."]
10162    pub fn avformat_open_input(
10163        ps: *mut *mut AVFormatContext,
10164        url: *const ::std::os::raw::c_char,
10165        fmt: *mut AVInputFormat,
10166        options: *mut *mut AVDictionary,
10167    ) -> ::std::os::raw::c_int;
10168}
10169extern "C" {
10170    pub fn av_demuxer_open(ic: *mut AVFormatContext) -> ::std::os::raw::c_int;
10171}
10172extern "C" {
10173    #[doc = " Read packets of a media file to get stream information. This"]
10174    #[doc = " is useful for file formats with no headers such as MPEG. This"]
10175    #[doc = " function also computes the real framerate in case of MPEG-2 repeat"]
10176    #[doc = " frame mode."]
10177    #[doc = " The logical file position is not changed by this function;"]
10178    #[doc = " examined packets may be buffered for later processing."]
10179    #[doc = ""]
10180    #[doc = " @param ic media file handle"]
10181    #[doc = " @param options  If non-NULL, an ic.nb_streams long array of pointers to"]
10182    #[doc = "                 dictionaries, where i-th member contains options for"]
10183    #[doc = "                 codec corresponding to i-th stream."]
10184    #[doc = "                 On return each dictionary will be filled with options that were not found."]
10185    #[doc = " @return >=0 if OK, AVERROR_xxx on error"]
10186    #[doc = ""]
10187    #[doc = " @note this function isn\'t guaranteed to open all the codecs, so"]
10188    #[doc = "       options being non-empty at return is a perfectly normal behavior."]
10189    #[doc = ""]
10190    #[doc = " @todo Let the user decide somehow what information is needed so that"]
10191    #[doc = "       we do not waste time getting stuff the user does not need."]
10192    pub fn avformat_find_stream_info(
10193        ic: *mut AVFormatContext,
10194        options: *mut *mut AVDictionary,
10195    ) -> ::std::os::raw::c_int;
10196}
10197extern "C" {
10198    #[doc = " Find the programs which belong to a given stream."]
10199    #[doc = ""]
10200    #[doc = " @param ic    media file handle"]
10201    #[doc = " @param last  the last found program, the search will start after this"]
10202    #[doc = "              program, or from the beginning if it is NULL"]
10203    #[doc = " @param s     stream index"]
10204    #[doc = " @return the next program which belongs to s, NULL if no program is found or"]
10205    #[doc = "         the last program is not among the programs of ic."]
10206    pub fn av_find_program_from_stream(
10207        ic: *mut AVFormatContext,
10208        last: *mut AVProgram,
10209        s: ::std::os::raw::c_int,
10210    ) -> *mut AVProgram;
10211}
10212extern "C" {
10213    pub fn av_program_add_stream_index(
10214        ac: *mut AVFormatContext,
10215        progid: ::std::os::raw::c_int,
10216        idx: ::std::os::raw::c_uint,
10217    );
10218}
10219extern "C" {
10220    #[doc = " Find the \"best\" stream in the file."]
10221    #[doc = " The best stream is determined according to various heuristics as the most"]
10222    #[doc = " likely to be what the user expects."]
10223    #[doc = " If the decoder parameter is non-NULL, av_find_best_stream will find the"]
10224    #[doc = " default decoder for the stream\'s codec; streams for which no decoder can"]
10225    #[doc = " be found are ignored."]
10226    #[doc = ""]
10227    #[doc = " @param ic                media file handle"]
10228    #[doc = " @param type              stream type: video, audio, subtitles, etc."]
10229    #[doc = " @param wanted_stream_nb  user-requested stream number,"]
10230    #[doc = "                          or -1 for automatic selection"]
10231    #[doc = " @param related_stream    try to find a stream related (eg. in the same"]
10232    #[doc = "                          program) to this one, or -1 if none"]
10233    #[doc = " @param decoder_ret       if non-NULL, returns the decoder for the"]
10234    #[doc = "                          selected stream"]
10235    #[doc = " @param flags             flags; none are currently defined"]
10236    #[doc = " @return  the non-negative stream number in case of success,"]
10237    #[doc = "          AVERROR_STREAM_NOT_FOUND if no stream with the requested type"]
10238    #[doc = "          could be found,"]
10239    #[doc = "          AVERROR_DECODER_NOT_FOUND if streams were found but no decoder"]
10240    #[doc = " @note  If av_find_best_stream returns successfully and decoder_ret is not"]
10241    #[doc = "        NULL, then *decoder_ret is guaranteed to be set to a valid AVCodec."]
10242    pub fn av_find_best_stream(
10243        ic: *mut AVFormatContext,
10244        type_: AVMediaType,
10245        wanted_stream_nb: ::std::os::raw::c_int,
10246        related_stream: ::std::os::raw::c_int,
10247        decoder_ret: *mut *mut AVCodec,
10248        flags: ::std::os::raw::c_int,
10249    ) -> ::std::os::raw::c_int;
10250}
10251extern "C" {
10252    #[doc = " Return the next frame of a stream."]
10253    #[doc = " This function returns what is stored in the file, and does not validate"]
10254    #[doc = " that what is there are valid frames for the decoder. It will split what is"]
10255    #[doc = " stored in the file into frames and return one for each call. It will not"]
10256    #[doc = " omit invalid data between valid frames so as to give the decoder the maximum"]
10257    #[doc = " information possible for decoding."]
10258    #[doc = ""]
10259    #[doc = " If pkt->buf is NULL, then the packet is valid until the next"]
10260    #[doc = " av_read_frame() or until avformat_close_input(). Otherwise the packet"]
10261    #[doc = " is valid indefinitely. In both cases the packet must be freed with"]
10262    #[doc = " av_packet_unref when it is no longer needed. For video, the packet contains"]
10263    #[doc = " exactly one frame. For audio, it contains an integer number of frames if each"]
10264    #[doc = " frame has a known fixed size (e.g. PCM or ADPCM data). If the audio frames"]
10265    #[doc = " have a variable size (e.g. MPEG audio), then it contains one frame."]
10266    #[doc = ""]
10267    #[doc = " pkt->pts, pkt->dts and pkt->duration are always set to correct"]
10268    #[doc = " values in AVStream.time_base units (and guessed if the format cannot"]
10269    #[doc = " provide them). pkt->pts can be AV_NOPTS_VALUE if the video format"]
10270    #[doc = " has B-frames, so it is better to rely on pkt->dts if you do not"]
10271    #[doc = " decompress the payload."]
10272    #[doc = ""]
10273    #[doc = " @return 0 if OK, < 0 on error or end of file"]
10274    pub fn av_read_frame(s: *mut AVFormatContext, pkt: *mut AVPacket) -> ::std::os::raw::c_int;
10275}
10276extern "C" {
10277    #[doc = " Seek to the keyframe at timestamp."]
10278    #[doc = " \'timestamp\' in \'stream_index\'."]
10279    #[doc = ""]
10280    #[doc = " @param s media file handle"]
10281    #[doc = " @param stream_index If stream_index is (-1), a default"]
10282    #[doc = " stream is selected, and timestamp is automatically converted"]
10283    #[doc = " from AV_TIME_BASE units to the stream specific time_base."]
10284    #[doc = " @param timestamp Timestamp in AVStream.time_base units"]
10285    #[doc = "        or, if no stream is specified, in AV_TIME_BASE units."]
10286    #[doc = " @param flags flags which select direction and seeking mode"]
10287    #[doc = " @return >= 0 on success"]
10288    pub fn av_seek_frame(
10289        s: *mut AVFormatContext,
10290        stream_index: ::std::os::raw::c_int,
10291        timestamp: i64,
10292        flags: ::std::os::raw::c_int,
10293    ) -> ::std::os::raw::c_int;
10294}
10295extern "C" {
10296    #[doc = " Seek to timestamp ts."]
10297    #[doc = " Seeking will be done so that the point from which all active streams"]
10298    #[doc = " can be presented successfully will be closest to ts and within min/max_ts."]
10299    #[doc = " Active streams are all streams that have AVStream.discard < AVDISCARD_ALL."]
10300    #[doc = ""]
10301    #[doc = " If flags contain AVSEEK_FLAG_BYTE, then all timestamps are in bytes and"]
10302    #[doc = " are the file position (this may not be supported by all demuxers)."]
10303    #[doc = " If flags contain AVSEEK_FLAG_FRAME, then all timestamps are in frames"]
10304    #[doc = " in the stream with stream_index (this may not be supported by all demuxers)."]
10305    #[doc = " Otherwise all timestamps are in units of the stream selected by stream_index"]
10306    #[doc = " or if stream_index is -1, in AV_TIME_BASE units."]
10307    #[doc = " If flags contain AVSEEK_FLAG_ANY, then non-keyframes are treated as"]
10308    #[doc = " keyframes (this may not be supported by all demuxers)."]
10309    #[doc = " If flags contain AVSEEK_FLAG_BACKWARD, it is ignored."]
10310    #[doc = ""]
10311    #[doc = " @param s media file handle"]
10312    #[doc = " @param stream_index index of the stream which is used as time base reference"]
10313    #[doc = " @param min_ts smallest acceptable timestamp"]
10314    #[doc = " @param ts target timestamp"]
10315    #[doc = " @param max_ts largest acceptable timestamp"]
10316    #[doc = " @param flags flags"]
10317    #[doc = " @return >=0 on success, error code otherwise"]
10318    #[doc = ""]
10319    #[doc = " @note This is part of the new seek API which is still under construction."]
10320    #[doc = "       Thus do not use this yet. It may change at any time, do not expect"]
10321    #[doc = "       ABI compatibility yet!"]
10322    pub fn avformat_seek_file(
10323        s: *mut AVFormatContext,
10324        stream_index: ::std::os::raw::c_int,
10325        min_ts: i64,
10326        ts: i64,
10327        max_ts: i64,
10328        flags: ::std::os::raw::c_int,
10329    ) -> ::std::os::raw::c_int;
10330}
10331extern "C" {
10332    #[doc = " Discard all internally buffered data. This can be useful when dealing with"]
10333    #[doc = " discontinuities in the byte stream. Generally works only with formats that"]
10334    #[doc = " can resync. This includes headerless formats like MPEG-TS/TS but should also"]
10335    #[doc = " work with NUT, Ogg and in a limited way AVI for example."]
10336    #[doc = ""]
10337    #[doc = " The set of streams, the detected duration, stream parameters and codecs do"]
10338    #[doc = " not change when calling this function. If you want a complete reset, it\'s"]
10339    #[doc = " better to open a new AVFormatContext."]
10340    #[doc = ""]
10341    #[doc = " This does not flush the AVIOContext (s->pb). If necessary, call"]
10342    #[doc = " avio_flush(s->pb) before calling this function."]
10343    #[doc = ""]
10344    #[doc = " @param s media file handle"]
10345    #[doc = " @return >=0 on success, error code otherwise"]
10346    pub fn avformat_flush(s: *mut AVFormatContext) -> ::std::os::raw::c_int;
10347}
10348extern "C" {
10349    #[doc = " Start playing a network-based stream (e.g. RTSP stream) at the"]
10350    #[doc = " current position."]
10351    pub fn av_read_play(s: *mut AVFormatContext) -> ::std::os::raw::c_int;
10352}
10353extern "C" {
10354    #[doc = " Pause a network-based stream (e.g. RTSP stream)."]
10355    #[doc = ""]
10356    #[doc = " Use av_read_play() to resume it."]
10357    pub fn av_read_pause(s: *mut AVFormatContext) -> ::std::os::raw::c_int;
10358}
10359extern "C" {
10360    #[doc = " Close an opened input AVFormatContext. Free it and all its contents"]
10361    #[doc = " and set *s to NULL."]
10362    pub fn avformat_close_input(s: *mut *mut AVFormatContext);
10363}
10364extern "C" {
10365    #[doc = " Allocate the stream private data and write the stream header to"]
10366    #[doc = " an output media file."]
10367    #[doc = ""]
10368    #[doc = " @param s Media file handle, must be allocated with avformat_alloc_context()."]
10369    #[doc = "          Its oformat field must be set to the desired output format;"]
10370    #[doc = "          Its pb field must be set to an already opened AVIOContext."]
10371    #[doc = " @param options  An AVDictionary filled with AVFormatContext and muxer-private options."]
10372    #[doc = "                 On return this parameter will be destroyed and replaced with a dict containing"]
10373    #[doc = "                 options that were not found. May be NULL."]
10374    #[doc = ""]
10375    #[doc = " @return AVSTREAM_INIT_IN_WRITE_HEADER on success if the codec had not already been fully initialized in avformat_init,"]
10376    #[doc = "         AVSTREAM_INIT_IN_INIT_OUTPUT  on success if the codec had already been fully initialized in avformat_init,"]
10377    #[doc = "         negative AVERROR on failure."]
10378    #[doc = ""]
10379    #[doc = " @see av_opt_find, av_dict_set, avio_open, av_oformat_next, avformat_init_output."]
10380    pub fn avformat_write_header(
10381        s: *mut AVFormatContext,
10382        options: *mut *mut AVDictionary,
10383    ) -> ::std::os::raw::c_int;
10384}
10385extern "C" {
10386    #[doc = " Allocate the stream private data and initialize the codec, but do not write the header."]
10387    #[doc = " May optionally be used before avformat_write_header to initialize stream parameters"]
10388    #[doc = " before actually writing the header."]
10389    #[doc = " If using this function, do not pass the same options to avformat_write_header."]
10390    #[doc = ""]
10391    #[doc = " @param s Media file handle, must be allocated with avformat_alloc_context()."]
10392    #[doc = "          Its oformat field must be set to the desired output format;"]
10393    #[doc = "          Its pb field must be set to an already opened AVIOContext."]
10394    #[doc = " @param options  An AVDictionary filled with AVFormatContext and muxer-private options."]
10395    #[doc = "                 On return this parameter will be destroyed and replaced with a dict containing"]
10396    #[doc = "                 options that were not found. May be NULL."]
10397    #[doc = ""]
10398    #[doc = " @return AVSTREAM_INIT_IN_WRITE_HEADER on success if the codec requires avformat_write_header to fully initialize,"]
10399    #[doc = "         AVSTREAM_INIT_IN_INIT_OUTPUT  on success if the codec has been fully initialized,"]
10400    #[doc = "         negative AVERROR on failure."]
10401    #[doc = ""]
10402    #[doc = " @see av_opt_find, av_dict_set, avio_open, av_oformat_next, avformat_write_header."]
10403    pub fn avformat_init_output(
10404        s: *mut AVFormatContext,
10405        options: *mut *mut AVDictionary,
10406    ) -> ::std::os::raw::c_int;
10407}
10408extern "C" {
10409    #[doc = " Write a packet to an output media file."]
10410    #[doc = ""]
10411    #[doc = " This function passes the packet directly to the muxer, without any buffering"]
10412    #[doc = " or reordering. The caller is responsible for correctly interleaving the"]
10413    #[doc = " packets if the format requires it. Callers that want libavformat to handle"]
10414    #[doc = " the interleaving should call av_interleaved_write_frame() instead of this"]
10415    #[doc = " function."]
10416    #[doc = ""]
10417    #[doc = " @param s media file handle"]
10418    #[doc = " @param pkt The packet containing the data to be written. Note that unlike"]
10419    #[doc = "            av_interleaved_write_frame(), this function does not take"]
10420    #[doc = "            ownership of the packet passed to it (though some muxers may make"]
10421    #[doc = "            an internal reference to the input packet)."]
10422    #[doc = "            <br>"]
10423    #[doc = "            This parameter can be NULL (at any time, not just at the end), in"]
10424    #[doc = "            order to immediately flush data buffered within the muxer, for"]
10425    #[doc = "            muxers that buffer up data internally before writing it to the"]
10426    #[doc = "            output."]
10427    #[doc = "            <br>"]
10428    #[doc = "            Packet\'s @ref AVPacket.stream_index \"stream_index\" field must be"]
10429    #[doc = "            set to the index of the corresponding stream in @ref"]
10430    #[doc = "            AVFormatContext.streams \"s->streams\"."]
10431    #[doc = "            <br>"]
10432    #[doc = "            The timestamps (@ref AVPacket.pts \"pts\", @ref AVPacket.dts \"dts\")"]
10433    #[doc = "            must be set to correct values in the stream\'s timebase (unless the"]
10434    #[doc = "            output format is flagged with the AVFMT_NOTIMESTAMPS flag, then"]
10435    #[doc = "            they can be set to AV_NOPTS_VALUE)."]
10436    #[doc = "            The dts for subsequent packets passed to this function must be strictly"]
10437    #[doc = "            increasing when compared in their respective timebases (unless the"]
10438    #[doc = "            output format is flagged with the AVFMT_TS_NONSTRICT, then they"]
10439    #[doc = "            merely have to be nondecreasing).  @ref AVPacket.duration"]
10440    #[doc = "            \"duration\") should also be set if known."]
10441    #[doc = " @return < 0 on error, = 0 if OK, 1 if flushed and there is no more data to flush"]
10442    #[doc = ""]
10443    #[doc = " @see av_interleaved_write_frame()"]
10444    pub fn av_write_frame(s: *mut AVFormatContext, pkt: *mut AVPacket) -> ::std::os::raw::c_int;
10445}
10446extern "C" {
10447    #[doc = " Write a packet to an output media file ensuring correct interleaving."]
10448    #[doc = ""]
10449    #[doc = " This function will buffer the packets internally as needed to make sure the"]
10450    #[doc = " packets in the output file are properly interleaved in the order of"]
10451    #[doc = " increasing dts. Callers doing their own interleaving should call"]
10452    #[doc = " av_write_frame() instead of this function."]
10453    #[doc = ""]
10454    #[doc = " Using this function instead of av_write_frame() can give muxers advance"]
10455    #[doc = " knowledge of future packets, improving e.g. the behaviour of the mp4"]
10456    #[doc = " muxer for VFR content in fragmenting mode."]
10457    #[doc = ""]
10458    #[doc = " @param s media file handle"]
10459    #[doc = " @param pkt The packet containing the data to be written."]
10460    #[doc = "            <br>"]
10461    #[doc = "            If the packet is reference-counted, this function will take"]
10462    #[doc = "            ownership of this reference and unreference it later when it sees"]
10463    #[doc = "            fit."]
10464    #[doc = "            The caller must not access the data through this reference after"]
10465    #[doc = "            this function returns. If the packet is not reference-counted,"]
10466    #[doc = "            libavformat will make a copy."]
10467    #[doc = "            <br>"]
10468    #[doc = "            This parameter can be NULL (at any time, not just at the end), to"]
10469    #[doc = "            flush the interleaving queues."]
10470    #[doc = "            <br>"]
10471    #[doc = "            Packet\'s @ref AVPacket.stream_index \"stream_index\" field must be"]
10472    #[doc = "            set to the index of the corresponding stream in @ref"]
10473    #[doc = "            AVFormatContext.streams \"s->streams\"."]
10474    #[doc = "            <br>"]
10475    #[doc = "            The timestamps (@ref AVPacket.pts \"pts\", @ref AVPacket.dts \"dts\")"]
10476    #[doc = "            must be set to correct values in the stream\'s timebase (unless the"]
10477    #[doc = "            output format is flagged with the AVFMT_NOTIMESTAMPS flag, then"]
10478    #[doc = "            they can be set to AV_NOPTS_VALUE)."]
10479    #[doc = "            The dts for subsequent packets in one stream must be strictly"]
10480    #[doc = "            increasing (unless the output format is flagged with the"]
10481    #[doc = "            AVFMT_TS_NONSTRICT, then they merely have to be nondecreasing)."]
10482    #[doc = "            @ref AVPacket.duration \"duration\") should also be set if known."]
10483    #[doc = ""]
10484    #[doc = " @return 0 on success, a negative AVERROR on error. Libavformat will always"]
10485    #[doc = "         take care of freeing the packet, even if this function fails."]
10486    #[doc = ""]
10487    #[doc = " @see av_write_frame(), AVFormatContext.max_interleave_delta"]
10488    pub fn av_interleaved_write_frame(
10489        s: *mut AVFormatContext,
10490        pkt: *mut AVPacket,
10491    ) -> ::std::os::raw::c_int;
10492}
10493extern "C" {
10494    #[doc = " Write an uncoded frame to an output media file."]
10495    #[doc = ""]
10496    #[doc = " The frame must be correctly interleaved according to the container"]
10497    #[doc = " specification; if not, then av_interleaved_write_frame() must be used."]
10498    #[doc = ""]
10499    #[doc = " See av_interleaved_write_frame() for details."]
10500    pub fn av_write_uncoded_frame(
10501        s: *mut AVFormatContext,
10502        stream_index: ::std::os::raw::c_int,
10503        frame: *mut AVFrame,
10504    ) -> ::std::os::raw::c_int;
10505}
10506extern "C" {
10507    #[doc = " Write an uncoded frame to an output media file."]
10508    #[doc = ""]
10509    #[doc = " If the muxer supports it, this function makes it possible to write an AVFrame"]
10510    #[doc = " structure directly, without encoding it into a packet."]
10511    #[doc = " It is mostly useful for devices and similar special muxers that use raw"]
10512    #[doc = " video or PCM data and will not serialize it into a byte stream."]
10513    #[doc = ""]
10514    #[doc = " To test whether it is possible to use it with a given muxer and stream,"]
10515    #[doc = " use av_write_uncoded_frame_query()."]
10516    #[doc = ""]
10517    #[doc = " The caller gives up ownership of the frame and must not access it"]
10518    #[doc = " afterwards."]
10519    #[doc = ""]
10520    #[doc = " @return  >=0 for success, a negative code on error"]
10521    pub fn av_interleaved_write_uncoded_frame(
10522        s: *mut AVFormatContext,
10523        stream_index: ::std::os::raw::c_int,
10524        frame: *mut AVFrame,
10525    ) -> ::std::os::raw::c_int;
10526}
10527extern "C" {
10528    #[doc = " Test whether a muxer supports uncoded frame."]
10529    #[doc = ""]
10530    #[doc = " @return  >=0 if an uncoded frame can be written to that muxer and stream,"]
10531    #[doc = "          <0 if not"]
10532    pub fn av_write_uncoded_frame_query(
10533        s: *mut AVFormatContext,
10534        stream_index: ::std::os::raw::c_int,
10535    ) -> ::std::os::raw::c_int;
10536}
10537extern "C" {
10538    #[doc = " Write the stream trailer to an output media file and free the"]
10539    #[doc = " file private data."]
10540    #[doc = ""]
10541    #[doc = " May only be called after a successful call to avformat_write_header."]
10542    #[doc = ""]
10543    #[doc = " @param s media file handle"]
10544    #[doc = " @return 0 if OK, AVERROR_xxx on error"]
10545    pub fn av_write_trailer(s: *mut AVFormatContext) -> ::std::os::raw::c_int;
10546}
10547extern "C" {
10548    #[doc = " Return the output format in the list of registered output formats"]
10549    #[doc = " which best matches the provided parameters, or return NULL if"]
10550    #[doc = " there is no match."]
10551    #[doc = ""]
10552    #[doc = " @param short_name if non-NULL checks if short_name matches with the"]
10553    #[doc = " names of the registered formats"]
10554    #[doc = " @param filename if non-NULL checks if filename terminates with the"]
10555    #[doc = " extensions of the registered formats"]
10556    #[doc = " @param mime_type if non-NULL checks if mime_type matches with the"]
10557    #[doc = " MIME type of the registered formats"]
10558    pub fn av_guess_format(
10559        short_name: *const ::std::os::raw::c_char,
10560        filename: *const ::std::os::raw::c_char,
10561        mime_type: *const ::std::os::raw::c_char,
10562    ) -> *mut AVOutputFormat;
10563}
10564extern "C" {
10565    #[doc = " Guess the codec ID based upon muxer and filename."]
10566    pub fn av_guess_codec(
10567        fmt: *mut AVOutputFormat,
10568        short_name: *const ::std::os::raw::c_char,
10569        filename: *const ::std::os::raw::c_char,
10570        mime_type: *const ::std::os::raw::c_char,
10571        type_: AVMediaType,
10572    ) -> AVCodecID;
10573}
10574extern "C" {
10575    #[doc = " Get timing information for the data currently output."]
10576    #[doc = " The exact meaning of \"currently output\" depends on the format."]
10577    #[doc = " It is mostly relevant for devices that have an internal buffer and/or"]
10578    #[doc = " work in real time."]
10579    #[doc = " @param s          media file handle"]
10580    #[doc = " @param stream     stream in the media file"]
10581    #[doc = " @param[out] dts   DTS of the last packet output for the stream, in stream"]
10582    #[doc = "                   time_base units"]
10583    #[doc = " @param[out] wall  absolute time when that packet whas output,"]
10584    #[doc = "                   in microsecond"]
10585    #[doc = " @return  0 if OK, AVERROR(ENOSYS) if the format does not support it"]
10586    #[doc = " Note: some formats or devices may not allow to measure dts and wall"]
10587    #[doc = " atomically."]
10588    pub fn av_get_output_timestamp(
10589        s: *mut AVFormatContext,
10590        stream: ::std::os::raw::c_int,
10591        dts: *mut i64,
10592        wall: *mut i64,
10593    ) -> ::std::os::raw::c_int;
10594}
10595extern "C" {
10596    #[doc = " Send a nice hexadecimal dump of a buffer to the specified file stream."]
10597    #[doc = ""]
10598    #[doc = " @param f The file stream pointer where the dump should be sent to."]
10599    #[doc = " @param buf buffer"]
10600    #[doc = " @param size buffer size"]
10601    #[doc = ""]
10602    #[doc = " @see av_hex_dump_log, av_pkt_dump2, av_pkt_dump_log2"]
10603    pub fn av_hex_dump(f: *mut FILE, buf: *const u8, size: ::std::os::raw::c_int);
10604}
10605extern "C" {
10606    #[doc = " Send a nice hexadecimal dump of a buffer to the log."]
10607    #[doc = ""]
10608    #[doc = " @param avcl A pointer to an arbitrary struct of which the first field is a"]
10609    #[doc = " pointer to an AVClass struct."]
10610    #[doc = " @param level The importance level of the message, lower values signifying"]
10611    #[doc = " higher importance."]
10612    #[doc = " @param buf buffer"]
10613    #[doc = " @param size buffer size"]
10614    #[doc = ""]
10615    #[doc = " @see av_hex_dump, av_pkt_dump2, av_pkt_dump_log2"]
10616    pub fn av_hex_dump_log(
10617        avcl: *mut ::std::os::raw::c_void,
10618        level: ::std::os::raw::c_int,
10619        buf: *const u8,
10620        size: ::std::os::raw::c_int,
10621    );
10622}
10623extern "C" {
10624    #[doc = " Send a nice dump of a packet to the specified file stream."]
10625    #[doc = ""]
10626    #[doc = " @param f The file stream pointer where the dump should be sent to."]
10627    #[doc = " @param pkt packet to dump"]
10628    #[doc = " @param dump_payload True if the payload must be displayed, too."]
10629    #[doc = " @param st AVStream that the packet belongs to"]
10630    pub fn av_pkt_dump2(
10631        f: *mut FILE,
10632        pkt: *const AVPacket,
10633        dump_payload: ::std::os::raw::c_int,
10634        st: *const AVStream,
10635    );
10636}
10637extern "C" {
10638    #[doc = " Send a nice dump of a packet to the log."]
10639    #[doc = ""]
10640    #[doc = " @param avcl A pointer to an arbitrary struct of which the first field is a"]
10641    #[doc = " pointer to an AVClass struct."]
10642    #[doc = " @param level The importance level of the message, lower values signifying"]
10643    #[doc = " higher importance."]
10644    #[doc = " @param pkt packet to dump"]
10645    #[doc = " @param dump_payload True if the payload must be displayed, too."]
10646    #[doc = " @param st AVStream that the packet belongs to"]
10647    pub fn av_pkt_dump_log2(
10648        avcl: *mut ::std::os::raw::c_void,
10649        level: ::std::os::raw::c_int,
10650        pkt: *const AVPacket,
10651        dump_payload: ::std::os::raw::c_int,
10652        st: *const AVStream,
10653    );
10654}
10655extern "C" {
10656    #[doc = " Get the AVCodecID for the given codec tag tag."]
10657    #[doc = " If no codec id is found returns AV_CODEC_ID_NONE."]
10658    #[doc = ""]
10659    #[doc = " @param tags list of supported codec_id-codec_tag pairs, as stored"]
10660    #[doc = " in AVInputFormat.codec_tag and AVOutputFormat.codec_tag"]
10661    #[doc = " @param tag  codec tag to match to a codec ID"]
10662    pub fn av_codec_get_id(
10663        tags: *const *const AVCodecTag,
10664        tag: ::std::os::raw::c_uint,
10665    ) -> AVCodecID;
10666}
10667extern "C" {
10668    #[doc = " Get the codec tag for the given codec id id."]
10669    #[doc = " If no codec tag is found returns 0."]
10670    #[doc = ""]
10671    #[doc = " @param tags list of supported codec_id-codec_tag pairs, as stored"]
10672    #[doc = " in AVInputFormat.codec_tag and AVOutputFormat.codec_tag"]
10673    #[doc = " @param id   codec ID to match to a codec tag"]
10674    pub fn av_codec_get_tag(
10675        tags: *const *const AVCodecTag,
10676        id: AVCodecID,
10677    ) -> ::std::os::raw::c_uint;
10678}
10679extern "C" {
10680    #[doc = " Get the codec tag for the given codec id."]
10681    #[doc = ""]
10682    #[doc = " @param tags list of supported codec_id - codec_tag pairs, as stored"]
10683    #[doc = " in AVInputFormat.codec_tag and AVOutputFormat.codec_tag"]
10684    #[doc = " @param id codec id that should be searched for in the list"]
10685    #[doc = " @param tag A pointer to the found tag"]
10686    #[doc = " @return 0 if id was not found in tags, > 0 if it was found"]
10687    pub fn av_codec_get_tag2(
10688        tags: *const *const AVCodecTag,
10689        id: AVCodecID,
10690        tag: *mut ::std::os::raw::c_uint,
10691    ) -> ::std::os::raw::c_int;
10692}
10693extern "C" {
10694    pub fn av_find_default_stream_index(s: *mut AVFormatContext) -> ::std::os::raw::c_int;
10695}
10696extern "C" {
10697    #[doc = " Get the index for a specific timestamp."]
10698    #[doc = ""]
10699    #[doc = " @param st        stream that the timestamp belongs to"]
10700    #[doc = " @param timestamp timestamp to retrieve the index for"]
10701    #[doc = " @param flags if AVSEEK_FLAG_BACKWARD then the returned index will correspond"]
10702    #[doc = "                 to the timestamp which is <= the requested one, if backward"]
10703    #[doc = "                 is 0, then it will be >="]
10704    #[doc = "              if AVSEEK_FLAG_ANY seek to any frame, only keyframes otherwise"]
10705    #[doc = " @return < 0 if no such timestamp could be found"]
10706    pub fn av_index_search_timestamp(
10707        st: *mut AVStream,
10708        timestamp: i64,
10709        flags: ::std::os::raw::c_int,
10710    ) -> ::std::os::raw::c_int;
10711}
10712extern "C" {
10713    #[doc = " Add an index entry into a sorted list. Update the entry if the list"]
10714    #[doc = " already contains it."]
10715    #[doc = ""]
10716    #[doc = " @param timestamp timestamp in the time base of the given stream"]
10717    pub fn av_add_index_entry(
10718        st: *mut AVStream,
10719        pos: i64,
10720        timestamp: i64,
10721        size: ::std::os::raw::c_int,
10722        distance: ::std::os::raw::c_int,
10723        flags: ::std::os::raw::c_int,
10724    ) -> ::std::os::raw::c_int;
10725}
10726extern "C" {
10727    #[doc = " Split a URL string into components."]
10728    #[doc = ""]
10729    #[doc = " The pointers to buffers for storing individual components may be null,"]
10730    #[doc = " in order to ignore that component. Buffers for components not found are"]
10731    #[doc = " set to empty strings. If the port is not found, it is set to a negative"]
10732    #[doc = " value."]
10733    #[doc = ""]
10734    #[doc = " @param proto the buffer for the protocol"]
10735    #[doc = " @param proto_size the size of the proto buffer"]
10736    #[doc = " @param authorization the buffer for the authorization"]
10737    #[doc = " @param authorization_size the size of the authorization buffer"]
10738    #[doc = " @param hostname the buffer for the host name"]
10739    #[doc = " @param hostname_size the size of the hostname buffer"]
10740    #[doc = " @param port_ptr a pointer to store the port number in"]
10741    #[doc = " @param path the buffer for the path"]
10742    #[doc = " @param path_size the size of the path buffer"]
10743    #[doc = " @param url the URL to split"]
10744    pub fn av_url_split(
10745        proto: *mut ::std::os::raw::c_char,
10746        proto_size: ::std::os::raw::c_int,
10747        authorization: *mut ::std::os::raw::c_char,
10748        authorization_size: ::std::os::raw::c_int,
10749        hostname: *mut ::std::os::raw::c_char,
10750        hostname_size: ::std::os::raw::c_int,
10751        port_ptr: *mut ::std::os::raw::c_int,
10752        path: *mut ::std::os::raw::c_char,
10753        path_size: ::std::os::raw::c_int,
10754        url: *const ::std::os::raw::c_char,
10755    );
10756}
10757extern "C" {
10758    #[doc = " Print detailed information about the input or output format, such as"]
10759    #[doc = " duration, bitrate, streams, container, programs, metadata, side data,"]
10760    #[doc = " codec and time base."]
10761    #[doc = ""]
10762    #[doc = " @param ic        the context to analyze"]
10763    #[doc = " @param index     index of the stream to dump information about"]
10764    #[doc = " @param url       the URL to print, such as source or destination file"]
10765    #[doc = " @param is_output Select whether the specified context is an input(0) or output(1)"]
10766    pub fn av_dump_format(
10767        ic: *mut AVFormatContext,
10768        index: ::std::os::raw::c_int,
10769        url: *const ::std::os::raw::c_char,
10770        is_output: ::std::os::raw::c_int,
10771    );
10772}
10773extern "C" {
10774    #[doc = " Return in \'buf\' the path with \'%d\' replaced by a number."]
10775    #[doc = ""]
10776    #[doc = " Also handles the \'%0nd\' format where \'n\' is the total number"]
10777    #[doc = " of digits and \'%%\'."]
10778    #[doc = ""]
10779    #[doc = " @param buf destination buffer"]
10780    #[doc = " @param buf_size destination buffer size"]
10781    #[doc = " @param path numbered sequence string"]
10782    #[doc = " @param number frame number"]
10783    #[doc = " @param flags AV_FRAME_FILENAME_FLAGS_*"]
10784    #[doc = " @return 0 if OK, -1 on format error"]
10785    pub fn av_get_frame_filename2(
10786        buf: *mut ::std::os::raw::c_char,
10787        buf_size: ::std::os::raw::c_int,
10788        path: *const ::std::os::raw::c_char,
10789        number: ::std::os::raw::c_int,
10790        flags: ::std::os::raw::c_int,
10791    ) -> ::std::os::raw::c_int;
10792}
10793extern "C" {
10794    pub fn av_get_frame_filename(
10795        buf: *mut ::std::os::raw::c_char,
10796        buf_size: ::std::os::raw::c_int,
10797        path: *const ::std::os::raw::c_char,
10798        number: ::std::os::raw::c_int,
10799    ) -> ::std::os::raw::c_int;
10800}
10801extern "C" {
10802    #[doc = " Check whether filename actually is a numbered sequence generator."]
10803    #[doc = ""]
10804    #[doc = " @param filename possible numbered sequence string"]
10805    #[doc = " @return 1 if a valid numbered sequence string, 0 otherwise"]
10806    pub fn av_filename_number_test(
10807        filename: *const ::std::os::raw::c_char,
10808    ) -> ::std::os::raw::c_int;
10809}
10810extern "C" {
10811    #[doc = " Generate an SDP for an RTP session."]
10812    #[doc = ""]
10813    #[doc = " Note, this overwrites the id values of AVStreams in the muxer contexts"]
10814    #[doc = " for getting unique dynamic payload types."]
10815    #[doc = ""]
10816    #[doc = " @param ac array of AVFormatContexts describing the RTP streams. If the"]
10817    #[doc = "           array is composed by only one context, such context can contain"]
10818    #[doc = "           multiple AVStreams (one AVStream per RTP stream). Otherwise,"]
10819    #[doc = "           all the contexts in the array (an AVCodecContext per RTP stream)"]
10820    #[doc = "           must contain only one AVStream."]
10821    #[doc = " @param n_files number of AVCodecContexts contained in ac"]
10822    #[doc = " @param buf buffer where the SDP will be stored (must be allocated by"]
10823    #[doc = "            the caller)"]
10824    #[doc = " @param size the size of the buffer"]
10825    #[doc = " @return 0 if OK, AVERROR_xxx on error"]
10826    pub fn av_sdp_create(
10827        ac: *mut *mut AVFormatContext,
10828        n_files: ::std::os::raw::c_int,
10829        buf: *mut ::std::os::raw::c_char,
10830        size: ::std::os::raw::c_int,
10831    ) -> ::std::os::raw::c_int;
10832}
10833extern "C" {
10834    #[doc = " Return a positive value if the given filename has one of the given"]
10835    #[doc = " extensions, 0 otherwise."]
10836    #[doc = ""]
10837    #[doc = " @param filename   file name to check against the given extensions"]
10838    #[doc = " @param extensions a comma-separated list of filename extensions"]
10839    pub fn av_match_ext(
10840        filename: *const ::std::os::raw::c_char,
10841        extensions: *const ::std::os::raw::c_char,
10842    ) -> ::std::os::raw::c_int;
10843}
10844extern "C" {
10845    #[doc = " Test if the given container can store a codec."]
10846    #[doc = ""]
10847    #[doc = " @param ofmt           container to check for compatibility"]
10848    #[doc = " @param codec_id       codec to potentially store in container"]
10849    #[doc = " @param std_compliance standards compliance level, one of FF_COMPLIANCE_*"]
10850    #[doc = ""]
10851    #[doc = " @return 1 if codec with ID codec_id can be stored in ofmt, 0 if it cannot."]
10852    #[doc = "         A negative number if this information is not available."]
10853    pub fn avformat_query_codec(
10854        ofmt: *const AVOutputFormat,
10855        codec_id: AVCodecID,
10856        std_compliance: ::std::os::raw::c_int,
10857    ) -> ::std::os::raw::c_int;
10858}
10859extern "C" {
10860    #[doc = " @defgroup riff_fourcc RIFF FourCCs"]
10861    #[doc = " @{"]
10862    #[doc = " Get the tables mapping RIFF FourCCs to libavcodec AVCodecIDs. The tables are"]
10863    #[doc = " meant to be passed to av_codec_get_id()/av_codec_get_tag() as in the"]
10864    #[doc = " following code:"]
10865    #[doc = " @code"]
10866    #[doc = " uint32_t tag = MKTAG(\'H\', \'2\', \'6\', \'4\');"]
10867    #[doc = " const struct AVCodecTag *table[] = { avformat_get_riff_video_tags(), 0 };"]
10868    #[doc = " enum AVCodecID id = av_codec_get_id(table, tag);"]
10869    #[doc = " @endcode"]
10870    #[doc = " @return the table mapping RIFF FourCCs for video to libavcodec AVCodecID."]
10871    pub fn avformat_get_riff_video_tags() -> *const AVCodecTag;
10872}
10873extern "C" {
10874    #[doc = " @return the table mapping RIFF FourCCs for audio to AVCodecID."]
10875    pub fn avformat_get_riff_audio_tags() -> *const AVCodecTag;
10876}
10877extern "C" {
10878    #[doc = " @return the table mapping MOV FourCCs for video to libavcodec AVCodecID."]
10879    pub fn avformat_get_mov_video_tags() -> *const AVCodecTag;
10880}
10881extern "C" {
10882    #[doc = " @return the table mapping MOV FourCCs for audio to AVCodecID."]
10883    pub fn avformat_get_mov_audio_tags() -> *const AVCodecTag;
10884}
10885extern "C" {
10886    #[doc = " Guess the sample aspect ratio of a frame, based on both the stream and the"]
10887    #[doc = " frame aspect ratio."]
10888    #[doc = ""]
10889    #[doc = " Since the frame aspect ratio is set by the codec but the stream aspect ratio"]
10890    #[doc = " is set by the demuxer, these two may not be equal. This function tries to"]
10891    #[doc = " return the value that you should use if you would like to display the frame."]
10892    #[doc = ""]
10893    #[doc = " Basic logic is to use the stream aspect ratio if it is set to something sane"]
10894    #[doc = " otherwise use the frame aspect ratio. This way a container setting, which is"]
10895    #[doc = " usually easy to modify can override the coded value in the frames."]
10896    #[doc = ""]
10897    #[doc = " @param format the format context which the stream is part of"]
10898    #[doc = " @param stream the stream which the frame is part of"]
10899    #[doc = " @param frame the frame with the aspect ratio to be determined"]
10900    #[doc = " @return the guessed (valid) sample_aspect_ratio, 0/1 if no idea"]
10901    pub fn av_guess_sample_aspect_ratio(
10902        format: *mut AVFormatContext,
10903        stream: *mut AVStream,
10904        frame: *mut AVFrame,
10905    ) -> AVRational;
10906}
10907extern "C" {
10908    #[doc = " Guess the frame rate, based on both the container and codec information."]
10909    #[doc = ""]
10910    #[doc = " @param ctx the format context which the stream is part of"]
10911    #[doc = " @param stream the stream which the frame is part of"]
10912    #[doc = " @param frame the frame for which the frame rate should be determined, may be NULL"]
10913    #[doc = " @return the guessed (valid) frame rate, 0/1 if no idea"]
10914    pub fn av_guess_frame_rate(
10915        ctx: *mut AVFormatContext,
10916        stream: *mut AVStream,
10917        frame: *mut AVFrame,
10918    ) -> AVRational;
10919}
10920extern "C" {
10921    #[doc = " Check if the stream st contained in s is matched by the stream specifier"]
10922    #[doc = " spec."]
10923    #[doc = ""]
10924    #[doc = " See the \"stream specifiers\" chapter in the documentation for the syntax"]
10925    #[doc = " of spec."]
10926    #[doc = ""]
10927    #[doc = " @return  >0 if st is matched by spec;"]
10928    #[doc = "          0  if st is not matched by spec;"]
10929    #[doc = "          AVERROR code if spec is invalid"]
10930    #[doc = ""]
10931    #[doc = " @note  A stream specifier can match several streams in the format."]
10932    pub fn avformat_match_stream_specifier(
10933        s: *mut AVFormatContext,
10934        st: *mut AVStream,
10935        spec: *const ::std::os::raw::c_char,
10936    ) -> ::std::os::raw::c_int;
10937}
10938extern "C" {
10939    pub fn avformat_queue_attached_pictures(s: *mut AVFormatContext) -> ::std::os::raw::c_int;
10940}
10941extern "C" {
10942    #[doc = " Apply a list of bitstream filters to a packet."]
10943    #[doc = ""]
10944    #[doc = " @param codec AVCodecContext, usually from an AVStream"]
10945    #[doc = " @param pkt the packet to apply filters to. If, on success, the returned"]
10946    #[doc = "        packet has size == 0 and side_data_elems == 0, it indicates that"]
10947    #[doc = "        the packet should be dropped"]
10948    #[doc = " @param bsfc a NULL-terminated list of filters to apply"]
10949    #[doc = " @return  >=0 on success;"]
10950    #[doc = "          AVERROR code on failure"]
10951    pub fn av_apply_bitstream_filters(
10952        codec: *mut AVCodecContext,
10953        pkt: *mut AVPacket,
10954        bsfc: *mut AVBitStreamFilterContext,
10955    ) -> ::std::os::raw::c_int;
10956}
10957pub const AVTimebaseSource_AVFMT_TBCF_AUTO: AVTimebaseSource = -1;
10958pub const AVTimebaseSource_AVFMT_TBCF_DECODER: AVTimebaseSource = 0;
10959pub const AVTimebaseSource_AVFMT_TBCF_DEMUXER: AVTimebaseSource = 1;
10960pub const AVTimebaseSource_AVFMT_TBCF_R_FRAMERATE: AVTimebaseSource = 2;
10961pub type AVTimebaseSource = i32;
10962extern "C" {
10963    #[doc = " Transfer internal timing information from one stream to another."]
10964    #[doc = ""]
10965    #[doc = " This function is useful when doing stream copy."]
10966    #[doc = ""]
10967    #[doc = " @param ofmt     target output format for ost"]
10968    #[doc = " @param ost      output stream which needs timings copy and adjustments"]
10969    #[doc = " @param ist      reference input stream to copy timings from"]
10970    #[doc = " @param copy_tb  define from where the stream codec timebase needs to be imported"]
10971    pub fn avformat_transfer_internal_stream_timing_info(
10972        ofmt: *const AVOutputFormat,
10973        ost: *mut AVStream,
10974        ist: *const AVStream,
10975        copy_tb: AVTimebaseSource,
10976    ) -> ::std::os::raw::c_int;
10977}
10978extern "C" {
10979    #[doc = " Get the internal codec timebase from a stream."]
10980    #[doc = ""]
10981    #[doc = " @param st  input stream to extract the timebase from"]
10982    pub fn av_stream_get_codec_timebase(st: *const AVStream) -> AVRational;
10983}
10984#[repr(C)]
10985#[derive(Debug, Copy, Clone)]
10986pub struct __locale_data {
10987    pub _address: u8,
10988}
10989pub type __builtin_va_list = [__va_list_tag; 1usize];
10990#[repr(C)]
10991#[derive(Debug, Copy, Clone)]
10992pub struct __va_list_tag {
10993    pub gp_offset: ::std::os::raw::c_uint,
10994    pub fp_offset: ::std::os::raw::c_uint,
10995    pub overflow_arg_area: *mut ::std::os::raw::c_void,
10996    pub reg_save_area: *mut ::std::os::raw::c_void,
10997}
10998#[repr(C)]
10999#[derive(Debug, Copy, Clone)]
11000pub struct AVOption {
11001    pub _address: u8,
11002}
11003#[repr(C)]
11004#[derive(Debug, Copy, Clone)]
11005pub struct AVCodecHWConfigInternal {
11006    pub _address: u8,
11007}
11008#[repr(C)]
11009#[derive(Debug, Copy, Clone)]
11010pub struct URLContext {
11011    pub _address: u8,
11012}