#[link(name = "avcodec")] extern {}
pub const _ERRNO_H: u32 = 1;
pub const _FEATURES_H: u32 = 1;
pub const _DEFAULT_SOURCE: u32 = 1;
pub const __USE_ISOC11: u32 = 1;
pub const __USE_ISOC99: u32 = 1;
pub const __USE_ISOC95: u32 = 1;
pub const __USE_POSIX_IMPLICITLY: u32 = 1;
pub const _POSIX_SOURCE: u32 = 1;
pub const _POSIX_C_SOURCE: u32 = 200809;
pub const __USE_POSIX: u32 = 1;
pub const __USE_POSIX2: u32 = 1;
pub const __USE_POSIX199309: u32 = 1;
pub const __USE_POSIX199506: u32 = 1;
pub const __USE_XOPEN2K: u32 = 1;
pub const __USE_XOPEN2K8: u32 = 1;
pub const _ATFILE_SOURCE: u32 = 1;
pub const __USE_MISC: u32 = 1;
pub const __USE_ATFILE: u32 = 1;
pub const __USE_FORTIFY_LEVEL: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
pub const _STDC_PREDEF_H: u32 = 1;
pub const __STDC_IEC_559__: u32 = 1;
pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
pub const __STDC_ISO_10646__: u32 = 201706;
pub const __GNU_LIBRARY__: u32 = 6;
pub const __GLIBC__: u32 = 2;
pub const __GLIBC_MINOR__: u32 = 29;
pub const _SYS_CDEFS_H: u32 = 1;
pub const __glibc_c99_flexarr_available: u32 = 1;
pub const __WORDSIZE: u32 = 64;
pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
pub const __SYSCALL_WORDSIZE: u32 = 64;
pub const __HAVE_GENERIC_SELECTION: u32 = 1;
pub const _BITS_ERRNO_H: u32 = 1;
pub const EPERM: u32 = 1;
pub const ENOENT: u32 = 2;
pub const ESRCH: u32 = 3;
pub const EINTR: u32 = 4;
pub const EIO: u32 = 5;
pub const ENXIO: u32 = 6;
pub const E2BIG: u32 = 7;
pub const ENOEXEC: u32 = 8;
pub const EBADF: u32 = 9;
pub const ECHILD: u32 = 10;
pub const EAGAIN: u32 = 11;
pub const ENOMEM: u32 = 12;
pub const EACCES: u32 = 13;
pub const EFAULT: u32 = 14;
pub const ENOTBLK: u32 = 15;
pub const EBUSY: u32 = 16;
pub const EEXIST: u32 = 17;
pub const EXDEV: u32 = 18;
pub const ENODEV: u32 = 19;
pub const ENOTDIR: u32 = 20;
pub const EISDIR: u32 = 21;
pub const EINVAL: u32 = 22;
pub const ENFILE: u32 = 23;
pub const EMFILE: u32 = 24;
pub const ENOTTY: u32 = 25;
pub const ETXTBSY: u32 = 26;
pub const EFBIG: u32 = 27;
pub const ENOSPC: u32 = 28;
pub const ESPIPE: u32 = 29;
pub const EROFS: u32 = 30;
pub const EMLINK: u32 = 31;
pub const EPIPE: u32 = 32;
pub const EDOM: u32 = 33;
pub const ERANGE: u32 = 34;
pub const EDEADLK: u32 = 35;
pub const ENAMETOOLONG: u32 = 36;
pub const ENOLCK: u32 = 37;
pub const ENOSYS: u32 = 38;
pub const ENOTEMPTY: u32 = 39;
pub const ELOOP: u32 = 40;
pub const EWOULDBLOCK: u32 = 11;
pub const ENOMSG: u32 = 42;
pub const EIDRM: u32 = 43;
pub const ECHRNG: u32 = 44;
pub const EL2NSYNC: u32 = 45;
pub const EL3HLT: u32 = 46;
pub const EL3RST: u32 = 47;
pub const ELNRNG: u32 = 48;
pub const EUNATCH: u32 = 49;
pub const ENOCSI: u32 = 50;
pub const EL2HLT: u32 = 51;
pub const EBADE: u32 = 52;
pub const EBADR: u32 = 53;
pub const EXFULL: u32 = 54;
pub const ENOANO: u32 = 55;
pub const EBADRQC: u32 = 56;
pub const EBADSLT: u32 = 57;
pub const EDEADLOCK: u32 = 35;
pub const EBFONT: u32 = 59;
pub const ENOSTR: u32 = 60;
pub const ENODATA: u32 = 61;
pub const ETIME: u32 = 62;
pub const ENOSR: u32 = 63;
pub const ENONET: u32 = 64;
pub const ENOPKG: u32 = 65;
pub const EREMOTE: u32 = 66;
pub const ENOLINK: u32 = 67;
pub const EADV: u32 = 68;
pub const ESRMNT: u32 = 69;
pub const ECOMM: u32 = 70;
pub const EPROTO: u32 = 71;
pub const EMULTIHOP: u32 = 72;
pub const EDOTDOT: u32 = 73;
pub const EBADMSG: u32 = 74;
pub const EOVERFLOW: u32 = 75;
pub const ENOTUNIQ: u32 = 76;
pub const EBADFD: u32 = 77;
pub const EREMCHG: u32 = 78;
pub const ELIBACC: u32 = 79;
pub const ELIBBAD: u32 = 80;
pub const ELIBSCN: u32 = 81;
pub const ELIBMAX: u32 = 82;
pub const ELIBEXEC: u32 = 83;
pub const EILSEQ: u32 = 84;
pub const ERESTART: u32 = 85;
pub const ESTRPIPE: u32 = 86;
pub const EUSERS: u32 = 87;
pub const ENOTSOCK: u32 = 88;
pub const EDESTADDRREQ: u32 = 89;
pub const EMSGSIZE: u32 = 90;
pub const EPROTOTYPE: u32 = 91;
pub const ENOPROTOOPT: u32 = 92;
pub const EPROTONOSUPPORT: u32 = 93;
pub const ESOCKTNOSUPPORT: u32 = 94;
pub const EOPNOTSUPP: u32 = 95;
pub const EPFNOSUPPORT: u32 = 96;
pub const EAFNOSUPPORT: u32 = 97;
pub const EADDRINUSE: u32 = 98;
pub const EADDRNOTAVAIL: u32 = 99;
pub const ENETDOWN: u32 = 100;
pub const ENETUNREACH: u32 = 101;
pub const ENETRESET: u32 = 102;
pub const ECONNABORTED: u32 = 103;
pub const ECONNRESET: u32 = 104;
pub const ENOBUFS: u32 = 105;
pub const EISCONN: u32 = 106;
pub const ENOTCONN: u32 = 107;
pub const ESHUTDOWN: u32 = 108;
pub const ETOOMANYREFS: u32 = 109;
pub const ETIMEDOUT: u32 = 110;
pub const ECONNREFUSED: u32 = 111;
pub const EHOSTDOWN: u32 = 112;
pub const EHOSTUNREACH: u32 = 113;
pub const EALREADY: u32 = 114;
pub const EINPROGRESS: u32 = 115;
pub const ESTALE: u32 = 116;
pub const EUCLEAN: u32 = 117;
pub const ENOTNAM: u32 = 118;
pub const ENAVAIL: u32 = 119;
pub const EISNAM: u32 = 120;
pub const EREMOTEIO: u32 = 121;
pub const EDQUOT: u32 = 122;
pub const ENOMEDIUM: u32 = 123;
pub const EMEDIUMTYPE: u32 = 124;
pub const ECANCELED: u32 = 125;
pub const ENOKEY: u32 = 126;
pub const EKEYEXPIRED: u32 = 127;
pub const EKEYREVOKED: u32 = 128;
pub const EKEYREJECTED: u32 = 129;
pub const EOWNERDEAD: u32 = 130;
pub const ENOTRECOVERABLE: u32 = 131;
pub const ERFKILL: u32 = 132;
pub const EHWPOISON: u32 = 133;
pub const ENOTSUP: u32 = 95;
pub const _STDINT_H: u32 = 1;
pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
pub const _BITS_TYPES_H: u32 = 1;
pub const __TIMESIZE: u32 = 64;
pub const _BITS_TYPESIZES_H: u32 = 1;
pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
pub const __INO_T_MATCHES_INO64_T: u32 = 1;
pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
pub const __FD_SETSIZE: u32 = 1024;
pub const _BITS_TIME64_H: u32 = 1;
pub const _BITS_WCHAR_H: u32 = 1;
pub const _BITS_STDINT_INTN_H: u32 = 1;
pub const _BITS_STDINT_UINTN_H: u32 = 1;
pub const INT8_MIN: i32 = -128;
pub const INT16_MIN: i32 = -32768;
pub const INT32_MIN: i32 = -2147483648;
pub const INT8_MAX: u32 = 127;
pub const INT16_MAX: u32 = 32767;
pub const INT32_MAX: u32 = 2147483647;
pub const UINT8_MAX: u32 = 255;
pub const UINT16_MAX: u32 = 65535;
pub const UINT32_MAX: u32 = 4294967295;
pub const INT_LEAST8_MIN: i32 = -128;
pub const INT_LEAST16_MIN: i32 = -32768;
pub const INT_LEAST32_MIN: i32 = -2147483648;
pub const INT_LEAST8_MAX: u32 = 127;
pub const INT_LEAST16_MAX: u32 = 32767;
pub const INT_LEAST32_MAX: u32 = 2147483647;
pub const UINT_LEAST8_MAX: u32 = 255;
pub const UINT_LEAST16_MAX: u32 = 65535;
pub const UINT_LEAST32_MAX: u32 = 4294967295;
pub const INT_FAST8_MIN: i32 = -128;
pub const INT_FAST16_MIN: i64 = -9223372036854775808;
pub const INT_FAST32_MIN: i64 = -9223372036854775808;
pub const INT_FAST8_MAX: u32 = 127;
pub const INT_FAST16_MAX: u64 = 9223372036854775807;
pub const INT_FAST32_MAX: u64 = 9223372036854775807;
pub const UINT_FAST8_MAX: u32 = 255;
pub const UINT_FAST16_MAX: i32 = -1;
pub const UINT_FAST32_MAX: i32 = -1;
pub const INTPTR_MIN: i64 = -9223372036854775808;
pub const INTPTR_MAX: u64 = 9223372036854775807;
pub const UINTPTR_MAX: i32 = -1;
pub const PTRDIFF_MIN: i64 = -9223372036854775808;
pub const PTRDIFF_MAX: u64 = 9223372036854775807;
pub const SIG_ATOMIC_MIN: i32 = -2147483648;
pub const SIG_ATOMIC_MAX: u32 = 2147483647;
pub const SIZE_MAX: i32 = -1;
pub const WINT_MIN: u32 = 0;
pub const WINT_MAX: u32 = 4294967295;
pub const FF_LAMBDA_SHIFT: u32 = 7;
pub const FF_LAMBDA_SCALE: u32 = 128;
pub const FF_QP2LAMBDA: u32 = 118;
pub const FF_LAMBDA_MAX: u32 = 32767;
pub const FF_QUALITY_SCALE: u32 = 128;
pub const AV_TIME_BASE: u32 = 1000000;
pub const _INTTYPES_H: u32 = 1;
pub const ____gwchar_t_defined: u32 = 1;
pub const __PRI64_PREFIX: &'static [u8; 2usize] = b"l\0";
pub const __PRIPTR_PREFIX: &'static [u8; 2usize] = b"l\0";
pub const PRId8: &'static [u8; 2usize] = b"d\0";
pub const PRId16: &'static [u8; 2usize] = b"d\0";
pub const PRId32: &'static [u8; 2usize] = b"d\0";
pub const PRId64: &'static [u8; 3usize] = b"ld\0";
pub const PRIdLEAST8: &'static [u8; 2usize] = b"d\0";
pub const PRIdLEAST16: &'static [u8; 2usize] = b"d\0";
pub const PRIdLEAST32: &'static [u8; 2usize] = b"d\0";
pub const PRIdLEAST64: &'static [u8; 3usize] = b"ld\0";
pub const PRIdFAST8: &'static [u8; 2usize] = b"d\0";
pub const PRIdFAST16: &'static [u8; 3usize] = b"ld\0";
pub const PRIdFAST32: &'static [u8; 3usize] = b"ld\0";
pub const PRIdFAST64: &'static [u8; 3usize] = b"ld\0";
pub const PRIi8: &'static [u8; 2usize] = b"i\0";
pub const PRIi16: &'static [u8; 2usize] = b"i\0";
pub const PRIi32: &'static [u8; 2usize] = b"i\0";
pub const PRIi64: &'static [u8; 3usize] = b"li\0";
pub const PRIiLEAST8: &'static [u8; 2usize] = b"i\0";
pub const PRIiLEAST16: &'static [u8; 2usize] = b"i\0";
pub const PRIiLEAST32: &'static [u8; 2usize] = b"i\0";
pub const PRIiLEAST64: &'static [u8; 3usize] = b"li\0";
pub const PRIiFAST8: &'static [u8; 2usize] = b"i\0";
pub const PRIiFAST16: &'static [u8; 3usize] = b"li\0";
pub const PRIiFAST32: &'static [u8; 3usize] = b"li\0";
pub const PRIiFAST64: &'static [u8; 3usize] = b"li\0";
pub const PRIo8: &'static [u8; 2usize] = b"o\0";
pub const PRIo16: &'static [u8; 2usize] = b"o\0";
pub const PRIo32: &'static [u8; 2usize] = b"o\0";
pub const PRIo64: &'static [u8; 3usize] = b"lo\0";
pub const PRIoLEAST8: &'static [u8; 2usize] = b"o\0";
pub const PRIoLEAST16: &'static [u8; 2usize] = b"o\0";
pub const PRIoLEAST32: &'static [u8; 2usize] = b"o\0";
pub const PRIoLEAST64: &'static [u8; 3usize] = b"lo\0";
pub const PRIoFAST8: &'static [u8; 2usize] = b"o\0";
pub const PRIoFAST16: &'static [u8; 3usize] = b"lo\0";
pub const PRIoFAST32: &'static [u8; 3usize] = b"lo\0";
pub const PRIoFAST64: &'static [u8; 3usize] = b"lo\0";
pub const PRIu8: &'static [u8; 2usize] = b"u\0";
pub const PRIu16: &'static [u8; 2usize] = b"u\0";
pub const PRIu32: &'static [u8; 2usize] = b"u\0";
pub const PRIu64: &'static [u8; 3usize] = b"lu\0";
pub const PRIuLEAST8: &'static [u8; 2usize] = b"u\0";
pub const PRIuLEAST16: &'static [u8; 2usize] = b"u\0";
pub const PRIuLEAST32: &'static [u8; 2usize] = b"u\0";
pub const PRIuLEAST64: &'static [u8; 3usize] = b"lu\0";
pub const PRIuFAST8: &'static [u8; 2usize] = b"u\0";
pub const PRIuFAST16: &'static [u8; 3usize] = b"lu\0";
pub const PRIuFAST32: &'static [u8; 3usize] = b"lu\0";
pub const PRIuFAST64: &'static [u8; 3usize] = b"lu\0";
pub const PRIx8: &'static [u8; 2usize] = b"x\0";
pub const PRIx16: &'static [u8; 2usize] = b"x\0";
pub const PRIx32: &'static [u8; 2usize] = b"x\0";
pub const PRIx64: &'static [u8; 3usize] = b"lx\0";
pub const PRIxLEAST8: &'static [u8; 2usize] = b"x\0";
pub const PRIxLEAST16: &'static [u8; 2usize] = b"x\0";
pub const PRIxLEAST32: &'static [u8; 2usize] = b"x\0";
pub const PRIxLEAST64: &'static [u8; 3usize] = b"lx\0";
pub const PRIxFAST8: &'static [u8; 2usize] = b"x\0";
pub const PRIxFAST16: &'static [u8; 3usize] = b"lx\0";
pub const PRIxFAST32: &'static [u8; 3usize] = b"lx\0";
pub const PRIxFAST64: &'static [u8; 3usize] = b"lx\0";
pub const PRIX8: &'static [u8; 2usize] = b"X\0";
pub const PRIX16: &'static [u8; 2usize] = b"X\0";
pub const PRIX32: &'static [u8; 2usize] = b"X\0";
pub const PRIX64: &'static [u8; 3usize] = b"lX\0";
pub const PRIXLEAST8: &'static [u8; 2usize] = b"X\0";
pub const PRIXLEAST16: &'static [u8; 2usize] = b"X\0";
pub const PRIXLEAST32: &'static [u8; 2usize] = b"X\0";
pub const PRIXLEAST64: &'static [u8; 3usize] = b"lX\0";
pub const PRIXFAST8: &'static [u8; 2usize] = b"X\0";
pub const PRIXFAST16: &'static [u8; 3usize] = b"lX\0";
pub const PRIXFAST32: &'static [u8; 3usize] = b"lX\0";
pub const PRIXFAST64: &'static [u8; 3usize] = b"lX\0";
pub const PRIdMAX: &'static [u8; 3usize] = b"ld\0";
pub const PRIiMAX: &'static [u8; 3usize] = b"li\0";
pub const PRIoMAX: &'static [u8; 3usize] = b"lo\0";
pub const PRIuMAX: &'static [u8; 3usize] = b"lu\0";
pub const PRIxMAX: &'static [u8; 3usize] = b"lx\0";
pub const PRIXMAX: &'static [u8; 3usize] = b"lX\0";
pub const PRIdPTR: &'static [u8; 3usize] = b"ld\0";
pub const PRIiPTR: &'static [u8; 3usize] = b"li\0";
pub const PRIoPTR: &'static [u8; 3usize] = b"lo\0";
pub const PRIuPTR: &'static [u8; 3usize] = b"lu\0";
pub const PRIxPTR: &'static [u8; 3usize] = b"lx\0";
pub const PRIXPTR: &'static [u8; 3usize] = b"lX\0";
pub const SCNd8: &'static [u8; 4usize] = b"hhd\0";
pub const SCNd16: &'static [u8; 3usize] = b"hd\0";
pub const SCNd32: &'static [u8; 2usize] = b"d\0";
pub const SCNd64: &'static [u8; 3usize] = b"ld\0";
pub const SCNdLEAST8: &'static [u8; 4usize] = b"hhd\0";
pub const SCNdLEAST16: &'static [u8; 3usize] = b"hd\0";
pub const SCNdLEAST32: &'static [u8; 2usize] = b"d\0";
pub const SCNdLEAST64: &'static [u8; 3usize] = b"ld\0";
pub const SCNdFAST8: &'static [u8; 4usize] = b"hhd\0";
pub const SCNdFAST16: &'static [u8; 3usize] = b"ld\0";
pub const SCNdFAST32: &'static [u8; 3usize] = b"ld\0";
pub const SCNdFAST64: &'static [u8; 3usize] = b"ld\0";
pub const SCNi8: &'static [u8; 4usize] = b"hhi\0";
pub const SCNi16: &'static [u8; 3usize] = b"hi\0";
pub const SCNi32: &'static [u8; 2usize] = b"i\0";
pub const SCNi64: &'static [u8; 3usize] = b"li\0";
pub const SCNiLEAST8: &'static [u8; 4usize] = b"hhi\0";
pub const SCNiLEAST16: &'static [u8; 3usize] = b"hi\0";
pub const SCNiLEAST32: &'static [u8; 2usize] = b"i\0";
pub const SCNiLEAST64: &'static [u8; 3usize] = b"li\0";
pub const SCNiFAST8: &'static [u8; 4usize] = b"hhi\0";
pub const SCNiFAST16: &'static [u8; 3usize] = b"li\0";
pub const SCNiFAST32: &'static [u8; 3usize] = b"li\0";
pub const SCNiFAST64: &'static [u8; 3usize] = b"li\0";
pub const SCNu8: &'static [u8; 4usize] = b"hhu\0";
pub const SCNu16: &'static [u8; 3usize] = b"hu\0";
pub const SCNu32: &'static [u8; 2usize] = b"u\0";
pub const SCNu64: &'static [u8; 3usize] = b"lu\0";
pub const SCNuLEAST8: &'static [u8; 4usize] = b"hhu\0";
pub const SCNuLEAST16: &'static [u8; 3usize] = b"hu\0";
pub const SCNuLEAST32: &'static [u8; 2usize] = b"u\0";
pub const SCNuLEAST64: &'static [u8; 3usize] = b"lu\0";
pub const SCNuFAST8: &'static [u8; 4usize] = b"hhu\0";
pub const SCNuFAST16: &'static [u8; 3usize] = b"lu\0";
pub const SCNuFAST32: &'static [u8; 3usize] = b"lu\0";
pub const SCNuFAST64: &'static [u8; 3usize] = b"lu\0";
pub const SCNo8: &'static [u8; 4usize] = b"hho\0";
pub const SCNo16: &'static [u8; 3usize] = b"ho\0";
pub const SCNo32: &'static [u8; 2usize] = b"o\0";
pub const SCNo64: &'static [u8; 3usize] = b"lo\0";
pub const SCNoLEAST8: &'static [u8; 4usize] = b"hho\0";
pub const SCNoLEAST16: &'static [u8; 3usize] = b"ho\0";
pub const SCNoLEAST32: &'static [u8; 2usize] = b"o\0";
pub const SCNoLEAST64: &'static [u8; 3usize] = b"lo\0";
pub const SCNoFAST8: &'static [u8; 4usize] = b"hho\0";
pub const SCNoFAST16: &'static [u8; 3usize] = b"lo\0";
pub const SCNoFAST32: &'static [u8; 3usize] = b"lo\0";
pub const SCNoFAST64: &'static [u8; 3usize] = b"lo\0";
pub const SCNx8: &'static [u8; 4usize] = b"hhx\0";
pub const SCNx16: &'static [u8; 3usize] = b"hx\0";
pub const SCNx32: &'static [u8; 2usize] = b"x\0";
pub const SCNx64: &'static [u8; 3usize] = b"lx\0";
pub const SCNxLEAST8: &'static [u8; 4usize] = b"hhx\0";
pub const SCNxLEAST16: &'static [u8; 3usize] = b"hx\0";
pub const SCNxLEAST32: &'static [u8; 2usize] = b"x\0";
pub const SCNxLEAST64: &'static [u8; 3usize] = b"lx\0";
pub const SCNxFAST8: &'static [u8; 4usize] = b"hhx\0";
pub const SCNxFAST16: &'static [u8; 3usize] = b"lx\0";
pub const SCNxFAST32: &'static [u8; 3usize] = b"lx\0";
pub const SCNxFAST64: &'static [u8; 3usize] = b"lx\0";
pub const SCNdMAX: &'static [u8; 3usize] = b"ld\0";
pub const SCNiMAX: &'static [u8; 3usize] = b"li\0";
pub const SCNoMAX: &'static [u8; 3usize] = b"lo\0";
pub const SCNuMAX: &'static [u8; 3usize] = b"lu\0";
pub const SCNxMAX: &'static [u8; 3usize] = b"lx\0";
pub const SCNdPTR: &'static [u8; 3usize] = b"ld\0";
pub const SCNiPTR: &'static [u8; 3usize] = b"li\0";
pub const SCNoPTR: &'static [u8; 3usize] = b"lo\0";
pub const SCNuPTR: &'static [u8; 3usize] = b"lu\0";
pub const SCNxPTR: &'static [u8; 3usize] = b"lx\0";
pub const _LIBC_LIMITS_H_: u32 = 1;
pub const MB_LEN_MAX: u32 = 16;
pub const _BITS_POSIX1_LIM_H: u32 = 1;
pub const _POSIX_AIO_LISTIO_MAX: u32 = 2;
pub const _POSIX_AIO_MAX: u32 = 1;
pub const _POSIX_ARG_MAX: u32 = 4096;
pub const _POSIX_CHILD_MAX: u32 = 25;
pub const _POSIX_DELAYTIMER_MAX: u32 = 32;
pub const _POSIX_HOST_NAME_MAX: u32 = 255;
pub const _POSIX_LINK_MAX: u32 = 8;
pub const _POSIX_LOGIN_NAME_MAX: u32 = 9;
pub const _POSIX_MAX_CANON: u32 = 255;
pub const _POSIX_MAX_INPUT: u32 = 255;
pub const _POSIX_MQ_OPEN_MAX: u32 = 8;
pub const _POSIX_MQ_PRIO_MAX: u32 = 32;
pub const _POSIX_NAME_MAX: u32 = 14;
pub const _POSIX_NGROUPS_MAX: u32 = 8;
pub const _POSIX_OPEN_MAX: u32 = 20;
pub const _POSIX_PATH_MAX: u32 = 256;
pub const _POSIX_PIPE_BUF: u32 = 512;
pub const _POSIX_RE_DUP_MAX: u32 = 255;
pub const _POSIX_RTSIG_MAX: u32 = 8;
pub const _POSIX_SEM_NSEMS_MAX: u32 = 256;
pub const _POSIX_SEM_VALUE_MAX: u32 = 32767;
pub const _POSIX_SIGQUEUE_MAX: u32 = 32;
pub const _POSIX_SSIZE_MAX: u32 = 32767;
pub const _POSIX_STREAM_MAX: u32 = 8;
pub const _POSIX_SYMLINK_MAX: u32 = 255;
pub const _POSIX_SYMLOOP_MAX: u32 = 8;
pub const _POSIX_TIMER_MAX: u32 = 32;
pub const _POSIX_TTY_NAME_MAX: u32 = 9;
pub const _POSIX_TZNAME_MAX: u32 = 6;
pub const _POSIX_CLOCKRES_MIN: u32 = 20000000;
pub const NR_OPEN: u32 = 1024;
pub const NGROUPS_MAX: u32 = 65536;
pub const ARG_MAX: u32 = 131072;
pub const LINK_MAX: u32 = 127;
pub const MAX_CANON: u32 = 255;
pub const MAX_INPUT: u32 = 255;
pub const NAME_MAX: u32 = 255;
pub const PATH_MAX: u32 = 4096;
pub const PIPE_BUF: u32 = 4096;
pub const XATTR_NAME_MAX: u32 = 255;
pub const XATTR_SIZE_MAX: u32 = 65536;
pub const XATTR_LIST_MAX: u32 = 65536;
pub const RTSIG_MAX: u32 = 32;
pub const _POSIX_THREAD_KEYS_MAX: u32 = 128;
pub const PTHREAD_KEYS_MAX: u32 = 1024;
pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4;
pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4;
pub const _POSIX_THREAD_THREADS_MAX: u32 = 64;
pub const AIO_PRIO_DELTA_MAX: u32 = 20;
pub const PTHREAD_STACK_MIN: u32 = 16384;
pub const DELAYTIMER_MAX: u32 = 2147483647;
pub const TTY_NAME_MAX: u32 = 32;
pub const LOGIN_NAME_MAX: u32 = 256;
pub const HOST_NAME_MAX: u32 = 64;
pub const MQ_PRIO_MAX: u32 = 32768;
pub const SEM_VALUE_MAX: u32 = 2147483647;
pub const _BITS_POSIX2_LIM_H: u32 = 1;
pub const _POSIX2_BC_BASE_MAX: u32 = 99;
pub const _POSIX2_BC_DIM_MAX: u32 = 2048;
pub const _POSIX2_BC_SCALE_MAX: u32 = 99;
pub const _POSIX2_BC_STRING_MAX: u32 = 1000;
pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2;
pub const _POSIX2_EXPR_NEST_MAX: u32 = 32;
pub const _POSIX2_LINE_MAX: u32 = 2048;
pub const _POSIX2_RE_DUP_MAX: u32 = 255;
pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14;
pub const BC_BASE_MAX: u32 = 99;
pub const BC_DIM_MAX: u32 = 2048;
pub const BC_SCALE_MAX: u32 = 99;
pub const BC_STRING_MAX: u32 = 1000;
pub const COLL_WEIGHTS_MAX: u32 = 255;
pub const EXPR_NEST_MAX: u32 = 32;
pub const LINE_MAX: u32 = 2048;
pub const CHARCLASS_NAME_MAX: u32 = 2048;
pub const RE_DUP_MAX: u32 = 32767;
pub const _MATH_H: u32 = 1;
pub const _BITS_LIBM_SIMD_DECL_STUBS_H: u32 = 1;
pub const __HAVE_FLOAT128: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT128: u32 = 0;
pub const __HAVE_FLOAT64X: u32 = 1;
pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1;
pub const __HAVE_FLOAT16: u32 = 0;
pub const __HAVE_FLOAT32: u32 = 1;
pub const __HAVE_FLOAT64: u32 = 1;
pub const __HAVE_FLOAT32X: u32 = 1;
pub const __HAVE_FLOAT128X: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT16: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT32: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT64: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0;
pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0;
pub const __FP_LOGB0_IS_MIN: u32 = 1;
pub const __FP_LOGBNAN_IS_MIN: u32 = 1;
pub const FP_ILOGB0: i32 = -2147483648;
pub const FP_ILOGBNAN: i32 = -2147483648;
pub const __MATH_DECLARING_DOUBLE: u32 = 1;
pub const __MATH_DECLARING_FLOATN: u32 = 0;
pub const __MATH_DECLARE_LDOUBLE: u32 = 1;
pub const FP_NAN: u32 = 0;
pub const FP_INFINITE: u32 = 1;
pub const FP_ZERO: u32 = 2;
pub const FP_SUBNORMAL: u32 = 3;
pub const FP_NORMAL: u32 = 4;
pub const MATH_ERRNO: u32 = 1;
pub const MATH_ERREXCEPT: u32 = 2;
pub const math_errhandling: u32 = 3;
pub const M_E: f64 = 2.718281828459045;
pub const M_LOG2E: f64 = 1.4426950408889634;
pub const M_LOG10E: f64 = 0.4342944819032518;
pub const M_LN2: f64 = 0.6931471805599453;
pub const M_LN10: f64 = 2.302585092994046;
pub const M_PI: f64 = 3.141592653589793;
pub const M_PI_2: f64 = 1.5707963267948966;
pub const M_PI_4: f64 = 0.7853981633974483;
pub const M_1_PI: f64 = 0.3183098861837907;
pub const M_2_PI: f64 = 0.6366197723675814;
pub const M_2_SQRTPI: f64 = 1.1283791670955126;
pub const M_SQRT2: f64 = 1.4142135623730951;
pub const M_SQRT1_2: f64 = 0.7071067811865476;
pub const _STDIO_H: u32 = 1;
pub const __GNUC_VA_LIST: u32 = 1;
pub const _____fpos_t_defined: u32 = 1;
pub const ____mbstate_t_defined: u32 = 1;
pub const _____fpos64_t_defined: u32 = 1;
pub const ____FILE_defined: u32 = 1;
pub const __FILE_defined: u32 = 1;
pub const __struct_FILE_defined: u32 = 1;
pub const _IO_EOF_SEEN: u32 = 16;
pub const _IO_ERR_SEEN: u32 = 32;
pub const _IO_USER_LOCK: u32 = 32768;
pub const _IOFBF: u32 = 0;
pub const _IOLBF: u32 = 1;
pub const _IONBF: u32 = 2;
pub const BUFSIZ: u32 = 8192;
pub const EOF: i32 = -1;
pub const SEEK_SET: u32 = 0;
pub const SEEK_CUR: u32 = 1;
pub const SEEK_END: u32 = 2;
pub const P_tmpdir: &'static [u8; 5usize] = b"/tmp\0";
pub const _BITS_STDIO_LIM_H: u32 = 1;
pub const L_tmpnam: u32 = 20;
pub const TMP_MAX: u32 = 238328;
pub const FILENAME_MAX: u32 = 4096;
pub const L_ctermid: u32 = 9;
pub const FOPEN_MAX: u32 = 16;
pub const _STDLIB_H: u32 = 1;
pub const WNOHANG: u32 = 1;
pub const WUNTRACED: u32 = 2;
pub const WSTOPPED: u32 = 2;
pub const WEXITED: u32 = 4;
pub const WCONTINUED: u32 = 8;
pub const WNOWAIT: u32 = 16777216;
pub const __WNOTHREAD: u32 = 536870912;
pub const __WALL: u32 = 1073741824;
pub const __WCLONE: u32 = 2147483648;
pub const __W_CONTINUED: u32 = 65535;
pub const __WCOREFLAG: u32 = 128;
pub const __ldiv_t_defined: u32 = 1;
pub const __lldiv_t_defined: u32 = 1;
pub const RAND_MAX: u32 = 2147483647;
pub const EXIT_FAILURE: u32 = 1;
pub const EXIT_SUCCESS: u32 = 0;
pub const _SYS_TYPES_H: u32 = 1;
pub const __clock_t_defined: u32 = 1;
pub const __clockid_t_defined: u32 = 1;
pub const __time_t_defined: u32 = 1;
pub const __timer_t_defined: u32 = 1;
pub const __BIT_TYPES_DEFINED__: u32 = 1;
pub const _ENDIAN_H: u32 = 1;
pub const __LITTLE_ENDIAN: u32 = 1234;
pub const __BIG_ENDIAN: u32 = 4321;
pub const __PDP_ENDIAN: u32 = 3412;
pub const __BYTE_ORDER: u32 = 1234;
pub const __FLOAT_WORD_ORDER: u32 = 1234;
pub const LITTLE_ENDIAN: u32 = 1234;
pub const BIG_ENDIAN: u32 = 4321;
pub const PDP_ENDIAN: u32 = 3412;
pub const BYTE_ORDER: u32 = 1234;
pub const _BITS_BYTESWAP_H: u32 = 1;
pub const _BITS_UINTN_IDENTITY_H: u32 = 1;
pub const _SYS_SELECT_H: u32 = 1;
pub const __FD_ZERO_STOS: &'static [u8; 6usize] = b"stosq\0";
pub const __sigset_t_defined: u32 = 1;
pub const __timeval_defined: u32 = 1;
pub const _STRUCT_TIMESPEC: u32 = 1;
pub const FD_SETSIZE: u32 = 1024;
pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1;
pub const _THREAD_SHARED_TYPES_H: u32 = 1;
pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1;
pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40;
pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56;
pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56;
pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4;
pub const __SIZEOF_PTHREAD_COND_T: u32 = 48;
pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4;
pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8;
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4;
pub const __PTHREAD_MUTEX_LOCK_ELISION: u32 = 1;
pub const __PTHREAD_MUTEX_NUSERS_AFTER_KIND: u32 = 0;
pub const __PTHREAD_MUTEX_USE_UNION: u32 = 0;
pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED: u32 = 1;
pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1;
pub const __have_pthread_attr_t: u32 = 1;
pub const _ALLOCA_H: u32 = 1;
pub const _STRING_H: u32 = 1;
pub const _BITS_TYPES_LOCALE_T_H: u32 = 1;
pub const _BITS_TYPES___LOCALE_T_H: u32 = 1;
pub const _STRINGS_H: u32 = 1;
pub const LIBAVUTIL_VERSION_MAJOR: u32 = 56;
pub const LIBAVUTIL_VERSION_MINOR: u32 = 22;
pub const LIBAVUTIL_VERSION_MICRO: u32 = 100;
pub const AV_HAVE_BIGENDIAN: u32 = 0;
pub const AV_HAVE_FAST_UNALIGNED: u32 = 1;
pub const AVERROR_EXPERIMENTAL: i32 = -733130664;
pub const AVERROR_INPUT_CHANGED: i32 = -1668179713;
pub const AVERROR_OUTPUT_CHANGED: i32 = -1668179714;
pub const AV_ERROR_MAX_STRING_SIZE: u32 = 64;
pub const M_LOG2_10: f64 = 3.321928094887362;
pub const M_PHI: f64 = 1.618033988749895;
pub const AV_LOG_QUIET: i32 = -8;
pub const AV_LOG_PANIC: u32 = 0;
pub const AV_LOG_FATAL: u32 = 8;
pub const AV_LOG_ERROR: u32 = 16;
pub const AV_LOG_WARNING: u32 = 24;
pub const AV_LOG_INFO: u32 = 32;
pub const AV_LOG_VERBOSE: u32 = 40;
pub const AV_LOG_DEBUG: u32 = 48;
pub const AV_LOG_TRACE: u32 = 56;
pub const AV_LOG_MAX_OFFSET: u32 = 64;
pub const AV_LOG_SKIP_REPEATED: u32 = 1;
pub const AV_LOG_PRINT_LEVEL: u32 = 2;
pub const AVPALETTE_SIZE: u32 = 1024;
pub const AVPALETTE_COUNT: u32 = 256;
pub const AV_FOURCC_MAX_STRING_SIZE: u32 = 32;
pub const AV_BUFFER_FLAG_READONLY: u32 = 1;
pub const AV_CPU_FLAG_FORCE: u32 = 2147483648;
pub const AV_CPU_FLAG_MMX: u32 = 1;
pub const AV_CPU_FLAG_MMXEXT: u32 = 2;
pub const AV_CPU_FLAG_MMX2: u32 = 2;
pub const AV_CPU_FLAG_3DNOW: u32 = 4;
pub const AV_CPU_FLAG_SSE: u32 = 8;
pub const AV_CPU_FLAG_SSE2: u32 = 16;
pub const AV_CPU_FLAG_SSE2SLOW: u32 = 1073741824;
pub const AV_CPU_FLAG_3DNOWEXT: u32 = 32;
pub const AV_CPU_FLAG_SSE3: u32 = 64;
pub const AV_CPU_FLAG_SSE3SLOW: u32 = 536870912;
pub const AV_CPU_FLAG_SSSE3: u32 = 128;
pub const AV_CPU_FLAG_SSSE3SLOW: u32 = 67108864;
pub const AV_CPU_FLAG_ATOM: u32 = 268435456;
pub const AV_CPU_FLAG_SSE4: u32 = 256;
pub const AV_CPU_FLAG_SSE42: u32 = 512;
pub const AV_CPU_FLAG_AESNI: u32 = 524288;
pub const AV_CPU_FLAG_AVX: u32 = 16384;
pub const AV_CPU_FLAG_AVXSLOW: u32 = 134217728;
pub const AV_CPU_FLAG_XOP: u32 = 1024;
pub const AV_CPU_FLAG_FMA4: u32 = 2048;
pub const AV_CPU_FLAG_CMOV: u32 = 4096;
pub const AV_CPU_FLAG_AVX2: u32 = 32768;
pub const AV_CPU_FLAG_FMA3: u32 = 65536;
pub const AV_CPU_FLAG_BMI1: u32 = 131072;
pub const AV_CPU_FLAG_BMI2: u32 = 262144;
pub const AV_CPU_FLAG_AVX512: u32 = 1048576;
pub const AV_CPU_FLAG_ALTIVEC: u32 = 1;
pub const AV_CPU_FLAG_VSX: u32 = 2;
pub const AV_CPU_FLAG_POWER8: u32 = 4;
pub const AV_CPU_FLAG_ARMV5TE: u32 = 1;
pub const AV_CPU_FLAG_ARMV6: u32 = 2;
pub const AV_CPU_FLAG_ARMV6T2: u32 = 4;
pub const AV_CPU_FLAG_VFP: u32 = 8;
pub const AV_CPU_FLAG_VFPV3: u32 = 16;
pub const AV_CPU_FLAG_NEON: u32 = 32;
pub const AV_CPU_FLAG_ARMV8: u32 = 64;
pub const AV_CPU_FLAG_VFP_VM: u32 = 128;
pub const AV_CPU_FLAG_SETEND: u32 = 65536;
pub const AV_CH_FRONT_LEFT: u32 = 1;
pub const AV_CH_FRONT_RIGHT: u32 = 2;
pub const AV_CH_FRONT_CENTER: u32 = 4;
pub const AV_CH_LOW_FREQUENCY: u32 = 8;
pub const AV_CH_BACK_LEFT: u32 = 16;
pub const AV_CH_BACK_RIGHT: u32 = 32;
pub const AV_CH_FRONT_LEFT_OF_CENTER: u32 = 64;
pub const AV_CH_FRONT_RIGHT_OF_CENTER: u32 = 128;
pub const AV_CH_BACK_CENTER: u32 = 256;
pub const AV_CH_SIDE_LEFT: u32 = 512;
pub const AV_CH_SIDE_RIGHT: u32 = 1024;
pub const AV_CH_TOP_CENTER: u32 = 2048;
pub const AV_CH_TOP_FRONT_LEFT: u32 = 4096;
pub const AV_CH_TOP_FRONT_CENTER: u32 = 8192;
pub const AV_CH_TOP_FRONT_RIGHT: u32 = 16384;
pub const AV_CH_TOP_BACK_LEFT: u32 = 32768;
pub const AV_CH_TOP_BACK_CENTER: u32 = 65536;
pub const AV_CH_TOP_BACK_RIGHT: u32 = 131072;
pub const AV_CH_STEREO_LEFT: u32 = 536870912;
pub const AV_CH_STEREO_RIGHT: u32 = 1073741824;
pub const AV_CH_WIDE_LEFT: u32 = 2147483648;
pub const AV_CH_WIDE_RIGHT: u64 = 4294967296;
pub const AV_CH_SURROUND_DIRECT_LEFT: u64 = 8589934592;
pub const AV_CH_SURROUND_DIRECT_RIGHT: u64 = 17179869184;
pub const AV_CH_LOW_FREQUENCY_2: u64 = 34359738368;
pub const AV_CH_LAYOUT_NATIVE: i64 = -9223372036854775808;
pub const AV_CH_LAYOUT_MONO: u32 = 4;
pub const AV_CH_LAYOUT_STEREO: u32 = 3;
pub const AV_CH_LAYOUT_2POINT1: u32 = 11;
pub const AV_CH_LAYOUT_2_1: u32 = 259;
pub const AV_CH_LAYOUT_SURROUND: u32 = 7;
pub const AV_CH_LAYOUT_3POINT1: u32 = 15;
pub const AV_CH_LAYOUT_4POINT0: u32 = 263;
pub const AV_CH_LAYOUT_4POINT1: u32 = 271;
pub const AV_CH_LAYOUT_2_2: u32 = 1539;
pub const AV_CH_LAYOUT_QUAD: u32 = 51;
pub const AV_CH_LAYOUT_5POINT0: u32 = 1543;
pub const AV_CH_LAYOUT_5POINT1: u32 = 1551;
pub const AV_CH_LAYOUT_5POINT0_BACK: u32 = 55;
pub const AV_CH_LAYOUT_5POINT1_BACK: u32 = 63;
pub const AV_CH_LAYOUT_6POINT0: u32 = 1799;
pub const AV_CH_LAYOUT_6POINT0_FRONT: u32 = 1731;
pub const AV_CH_LAYOUT_HEXAGONAL: u32 = 311;
pub const AV_CH_LAYOUT_6POINT1: u32 = 1807;
pub const AV_CH_LAYOUT_6POINT1_BACK: u32 = 319;
pub const AV_CH_LAYOUT_6POINT1_FRONT: u32 = 1739;
pub const AV_CH_LAYOUT_7POINT0: u32 = 1591;
pub const AV_CH_LAYOUT_7POINT0_FRONT: u32 = 1735;
pub const AV_CH_LAYOUT_7POINT1: u32 = 1599;
pub const AV_CH_LAYOUT_7POINT1_WIDE: u32 = 1743;
pub const AV_CH_LAYOUT_7POINT1_WIDE_BACK: u32 = 255;
pub const AV_CH_LAYOUT_OCTAGONAL: u32 = 1847;
pub const AV_CH_LAYOUT_HEXADECAGONAL: u64 = 6442710839;
pub const AV_CH_LAYOUT_STEREO_DOWNMIX: u32 = 1610612736;
pub const AV_DICT_MATCH_CASE: u32 = 1;
pub const AV_DICT_IGNORE_SUFFIX: u32 = 2;
pub const AV_DICT_DONT_STRDUP_KEY: u32 = 4;
pub const AV_DICT_DONT_STRDUP_VAL: u32 = 8;
pub const AV_DICT_DONT_OVERWRITE: u32 = 16;
pub const AV_DICT_APPEND: u32 = 32;
pub const AV_DICT_MULTIKEY: u32 = 64;
pub const AV_NUM_DATA_POINTERS: u32 = 8;
pub const AV_FRAME_FLAG_CORRUPT: u32 = 1;
pub const AV_FRAME_FLAG_DISCARD: u32 = 4;
pub const FF_DECODE_ERROR_INVALID_BITSTREAM: u32 = 1;
pub const FF_DECODE_ERROR_MISSING_REFERENCE: u32 = 2;
pub const LIBAVCODEC_VERSION_MAJOR: u32 = 58;
pub const LIBAVCODEC_VERSION_MINOR: u32 = 35;
pub const LIBAVCODEC_VERSION_MICRO: u32 = 100;
pub const AV_CODEC_PROP_INTRA_ONLY: u32 = 1;
pub const AV_CODEC_PROP_LOSSY: u32 = 2;
pub const AV_CODEC_PROP_LOSSLESS: u32 = 4;
pub const AV_CODEC_PROP_REORDER: u32 = 8;
pub const AV_CODEC_PROP_BITMAP_SUB: u32 = 65536;
pub const AV_CODEC_PROP_TEXT_SUB: u32 = 131072;
pub const AV_INPUT_BUFFER_PADDING_SIZE: u32 = 64;
pub const AV_INPUT_BUFFER_MIN_SIZE: u32 = 16384;
pub const AV_CODEC_FLAG_UNALIGNED: u32 = 1;
pub const AV_CODEC_FLAG_QSCALE: u32 = 2;
pub const AV_CODEC_FLAG_4MV: u32 = 4;
pub const AV_CODEC_FLAG_OUTPUT_CORRUPT: u32 = 8;
pub const AV_CODEC_FLAG_QPEL: u32 = 16;
pub const AV_CODEC_FLAG_PASS1: u32 = 512;
pub const AV_CODEC_FLAG_PASS2: u32 = 1024;
pub const AV_CODEC_FLAG_LOOP_FILTER: u32 = 2048;
pub const AV_CODEC_FLAG_GRAY: u32 = 8192;
pub const AV_CODEC_FLAG_PSNR: u32 = 32768;
pub const AV_CODEC_FLAG_TRUNCATED: u32 = 65536;
pub const AV_CODEC_FLAG_INTERLACED_DCT: u32 = 262144;
pub const AV_CODEC_FLAG_LOW_DELAY: u32 = 524288;
pub const AV_CODEC_FLAG_GLOBAL_HEADER: u32 = 4194304;
pub const AV_CODEC_FLAG_BITEXACT: u32 = 8388608;
pub const AV_CODEC_FLAG_AC_PRED: u32 = 16777216;
pub const AV_CODEC_FLAG_INTERLACED_ME: u32 = 536870912;
pub const AV_CODEC_FLAG_CLOSED_GOP: u32 = 2147483648;
pub const AV_CODEC_FLAG2_FAST: u32 = 1;
pub const AV_CODEC_FLAG2_NO_OUTPUT: u32 = 4;
pub const AV_CODEC_FLAG2_LOCAL_HEADER: u32 = 8;
pub const AV_CODEC_FLAG2_DROP_FRAME_TIMECODE: u32 = 8192;
pub const AV_CODEC_FLAG2_CHUNKS: u32 = 32768;
pub const AV_CODEC_FLAG2_IGNORE_CROP: u32 = 65536;
pub const AV_CODEC_FLAG2_SHOW_ALL: u32 = 4194304;
pub const AV_CODEC_FLAG2_EXPORT_MVS: u32 = 268435456;
pub const AV_CODEC_FLAG2_SKIP_MANUAL: u32 = 536870912;
pub const AV_CODEC_FLAG2_RO_FLUSH_NOOP: u32 = 1073741824;
pub const AV_CODEC_CAP_DRAW_HORIZ_BAND: u32 = 1;
pub const AV_CODEC_CAP_DR1: u32 = 2;
pub const AV_CODEC_CAP_TRUNCATED: u32 = 8;
pub const AV_CODEC_CAP_DELAY: u32 = 32;
pub const AV_CODEC_CAP_SMALL_LAST_FRAME: u32 = 64;
pub const AV_CODEC_CAP_SUBFRAMES: u32 = 256;
pub const AV_CODEC_CAP_EXPERIMENTAL: u32 = 512;
pub const AV_CODEC_CAP_CHANNEL_CONF: u32 = 1024;
pub const AV_CODEC_CAP_FRAME_THREADS: u32 = 4096;
pub const AV_CODEC_CAP_SLICE_THREADS: u32 = 8192;
pub const AV_CODEC_CAP_PARAM_CHANGE: u32 = 16384;
pub const AV_CODEC_CAP_AUTO_THREADS: u32 = 32768;
pub const AV_CODEC_CAP_VARIABLE_FRAME_SIZE: u32 = 65536;
pub const AV_CODEC_CAP_AVOID_PROBING: u32 = 131072;
pub const AV_CODEC_CAP_INTRA_ONLY: u32 = 1073741824;
pub const AV_CODEC_CAP_LOSSLESS: u32 = 2147483648;
pub const AV_CODEC_CAP_HARDWARE: u32 = 262144;
pub const AV_CODEC_CAP_HYBRID: u32 = 524288;
pub const AV_GET_BUFFER_FLAG_REF: u32 = 1;
pub const AV_PKT_FLAG_KEY: u32 = 1;
pub const AV_PKT_FLAG_CORRUPT: u32 = 2;
pub const AV_PKT_FLAG_DISCARD: u32 = 4;
pub const AV_PKT_FLAG_TRUSTED: u32 = 8;
pub const AV_PKT_FLAG_DISPOSABLE: u32 = 16;
pub const FF_COMPRESSION_DEFAULT: i32 = -1;
pub const FF_PRED_LEFT: u32 = 0;
pub const FF_PRED_PLANE: u32 = 1;
pub const FF_PRED_MEDIAN: u32 = 2;
pub const FF_CMP_SAD: u32 = 0;
pub const FF_CMP_SSE: u32 = 1;
pub const FF_CMP_SATD: u32 = 2;
pub const FF_CMP_DCT: u32 = 3;
pub const FF_CMP_PSNR: u32 = 4;
pub const FF_CMP_BIT: u32 = 5;
pub const FF_CMP_RD: u32 = 6;
pub const FF_CMP_ZERO: u32 = 7;
pub const FF_CMP_VSAD: u32 = 8;
pub const FF_CMP_VSSE: u32 = 9;
pub const FF_CMP_NSSE: u32 = 10;
pub const FF_CMP_W53: u32 = 11;
pub const FF_CMP_W97: u32 = 12;
pub const FF_CMP_DCTMAX: u32 = 13;
pub const FF_CMP_DCT264: u32 = 14;
pub const FF_CMP_MEDIAN_SAD: u32 = 15;
pub const FF_CMP_CHROMA: u32 = 256;
pub const SLICE_FLAG_CODED_ORDER: u32 = 1;
pub const SLICE_FLAG_ALLOW_FIELD: u32 = 2;
pub const SLICE_FLAG_ALLOW_PLANE: u32 = 4;
pub const FF_MB_DECISION_SIMPLE: u32 = 0;
pub const FF_MB_DECISION_BITS: u32 = 1;
pub const FF_MB_DECISION_RD: u32 = 2;
pub const FF_CODER_TYPE_VLC: u32 = 0;
pub const FF_CODER_TYPE_AC: u32 = 1;
pub const FF_CODER_TYPE_RAW: u32 = 2;
pub const FF_CODER_TYPE_RLE: u32 = 3;
pub const FF_BUG_AUTODETECT: u32 = 1;
pub const FF_BUG_XVID_ILACE: u32 = 4;
pub const FF_BUG_UMP4: u32 = 8;
pub const FF_BUG_NO_PADDING: u32 = 16;
pub const FF_BUG_AMV: u32 = 32;
pub const FF_BUG_QPEL_CHROMA: u32 = 64;
pub const FF_BUG_STD_QPEL: u32 = 128;
pub const FF_BUG_QPEL_CHROMA2: u32 = 256;
pub const FF_BUG_DIRECT_BLOCKSIZE: u32 = 512;
pub const FF_BUG_EDGE: u32 = 1024;
pub const FF_BUG_HPEL_CHROMA: u32 = 2048;
pub const FF_BUG_DC_CLIP: u32 = 4096;
pub const FF_BUG_MS: u32 = 8192;
pub const FF_BUG_TRUNCATED: u32 = 16384;
pub const FF_BUG_IEDGE: u32 = 32768;
pub const FF_COMPLIANCE_VERY_STRICT: u32 = 2;
pub const FF_COMPLIANCE_STRICT: u32 = 1;
pub const FF_COMPLIANCE_NORMAL: u32 = 0;
pub const FF_COMPLIANCE_UNOFFICIAL: i32 = -1;
pub const FF_COMPLIANCE_EXPERIMENTAL: i32 = -2;
pub const FF_EC_GUESS_MVS: u32 = 1;
pub const FF_EC_DEBLOCK: u32 = 2;
pub const FF_EC_FAVOR_INTER: u32 = 256;
pub const FF_DEBUG_PICT_INFO: u32 = 1;
pub const FF_DEBUG_RC: u32 = 2;
pub const FF_DEBUG_BITSTREAM: u32 = 4;
pub const FF_DEBUG_MB_TYPE: u32 = 8;
pub const FF_DEBUG_QP: u32 = 16;
pub const FF_DEBUG_DCT_COEFF: u32 = 64;
pub const FF_DEBUG_SKIP: u32 = 128;
pub const FF_DEBUG_STARTCODE: u32 = 256;
pub const FF_DEBUG_ER: u32 = 1024;
pub const FF_DEBUG_MMCO: u32 = 2048;
pub const FF_DEBUG_BUGS: u32 = 4096;
pub const FF_DEBUG_BUFFERS: u32 = 32768;
pub const FF_DEBUG_THREADS: u32 = 65536;
pub const FF_DEBUG_GREEN_MD: u32 = 8388608;
pub const FF_DEBUG_NOMC: u32 = 16777216;
pub const AV_EF_CRCCHECK: u32 = 1;
pub const AV_EF_BITSTREAM: u32 = 2;
pub const AV_EF_BUFFER: u32 = 4;
pub const AV_EF_EXPLODE: u32 = 8;
pub const AV_EF_IGNORE_ERR: u32 = 32768;
pub const AV_EF_CAREFUL: u32 = 65536;
pub const AV_EF_COMPLIANT: u32 = 131072;
pub const AV_EF_AGGRESSIVE: u32 = 262144;
pub const FF_DCT_AUTO: u32 = 0;
pub const FF_DCT_FASTINT: u32 = 1;
pub const FF_DCT_INT: u32 = 2;
pub const FF_DCT_MMX: u32 = 3;
pub const FF_DCT_ALTIVEC: u32 = 5;
pub const FF_DCT_FAAN: u32 = 6;
pub const FF_IDCT_AUTO: u32 = 0;
pub const FF_IDCT_INT: u32 = 1;
pub const FF_IDCT_SIMPLE: u32 = 2;
pub const FF_IDCT_SIMPLEMMX: u32 = 3;
pub const FF_IDCT_ARM: u32 = 7;
pub const FF_IDCT_ALTIVEC: u32 = 8;
pub const FF_IDCT_SIMPLEARM: u32 = 10;
pub const FF_IDCT_XVID: u32 = 14;
pub const FF_IDCT_SIMPLEARMV5TE: u32 = 16;
pub const FF_IDCT_SIMPLEARMV6: u32 = 17;
pub const FF_IDCT_FAAN: u32 = 20;
pub const FF_IDCT_SIMPLENEON: u32 = 22;
pub const FF_IDCT_NONE: u32 = 24;
pub const FF_IDCT_SIMPLEAUTO: u32 = 128;
pub const FF_THREAD_FRAME: u32 = 1;
pub const FF_THREAD_SLICE: u32 = 2;
pub const FF_PROFILE_UNKNOWN: i32 = -99;
pub const FF_PROFILE_RESERVED: i32 = -100;
pub const FF_PROFILE_AAC_MAIN: u32 = 0;
pub const FF_PROFILE_AAC_LOW: u32 = 1;
pub const FF_PROFILE_AAC_SSR: u32 = 2;
pub const FF_PROFILE_AAC_LTP: u32 = 3;
pub const FF_PROFILE_AAC_HE: u32 = 4;
pub const FF_PROFILE_AAC_HE_V2: u32 = 28;
pub const FF_PROFILE_AAC_LD: u32 = 22;
pub const FF_PROFILE_AAC_ELD: u32 = 38;
pub const FF_PROFILE_MPEG2_AAC_LOW: u32 = 128;
pub const FF_PROFILE_MPEG2_AAC_HE: u32 = 131;
pub const FF_PROFILE_DNXHD: u32 = 0;
pub const FF_PROFILE_DNXHR_LB: u32 = 1;
pub const FF_PROFILE_DNXHR_SQ: u32 = 2;
pub const FF_PROFILE_DNXHR_HQ: u32 = 3;
pub const FF_PROFILE_DNXHR_HQX: u32 = 4;
pub const FF_PROFILE_DNXHR_444: u32 = 5;
pub const FF_PROFILE_DTS: u32 = 20;
pub const FF_PROFILE_DTS_ES: u32 = 30;
pub const FF_PROFILE_DTS_96_24: u32 = 40;
pub const FF_PROFILE_DTS_HD_HRA: u32 = 50;
pub const FF_PROFILE_DTS_HD_MA: u32 = 60;
pub const FF_PROFILE_DTS_EXPRESS: u32 = 70;
pub const FF_PROFILE_MPEG2_422: u32 = 0;
pub const FF_PROFILE_MPEG2_HIGH: u32 = 1;
pub const FF_PROFILE_MPEG2_SS: u32 = 2;
pub const FF_PROFILE_MPEG2_SNR_SCALABLE: u32 = 3;
pub const FF_PROFILE_MPEG2_MAIN: u32 = 4;
pub const FF_PROFILE_MPEG2_SIMPLE: u32 = 5;
pub const FF_PROFILE_H264_CONSTRAINED: u32 = 512;
pub const FF_PROFILE_H264_INTRA: u32 = 2048;
pub const FF_PROFILE_H264_BASELINE: u32 = 66;
pub const FF_PROFILE_H264_CONSTRAINED_BASELINE: u32 = 578;
pub const FF_PROFILE_H264_MAIN: u32 = 77;
pub const FF_PROFILE_H264_EXTENDED: u32 = 88;
pub const FF_PROFILE_H264_HIGH: u32 = 100;
pub const FF_PROFILE_H264_HIGH_10: u32 = 110;
pub const FF_PROFILE_H264_HIGH_10_INTRA: u32 = 2158;
pub const FF_PROFILE_H264_MULTIVIEW_HIGH: u32 = 118;
pub const FF_PROFILE_H264_HIGH_422: u32 = 122;
pub const FF_PROFILE_H264_HIGH_422_INTRA: u32 = 2170;
pub const FF_PROFILE_H264_STEREO_HIGH: u32 = 128;
pub const FF_PROFILE_H264_HIGH_444: u32 = 144;
pub const FF_PROFILE_H264_HIGH_444_PREDICTIVE: u32 = 244;
pub const FF_PROFILE_H264_HIGH_444_INTRA: u32 = 2292;
pub const FF_PROFILE_H264_CAVLC_444: u32 = 44;
pub const FF_PROFILE_VC1_SIMPLE: u32 = 0;
pub const FF_PROFILE_VC1_MAIN: u32 = 1;
pub const FF_PROFILE_VC1_COMPLEX: u32 = 2;
pub const FF_PROFILE_VC1_ADVANCED: u32 = 3;
pub const FF_PROFILE_MPEG4_SIMPLE: u32 = 0;
pub const FF_PROFILE_MPEG4_SIMPLE_SCALABLE: u32 = 1;
pub const FF_PROFILE_MPEG4_CORE: u32 = 2;
pub const FF_PROFILE_MPEG4_MAIN: u32 = 3;
pub const FF_PROFILE_MPEG4_N_BIT: u32 = 4;
pub const FF_PROFILE_MPEG4_SCALABLE_TEXTURE: u32 = 5;
pub const FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION: u32 = 6;
pub const FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE: u32 = 7;
pub const FF_PROFILE_MPEG4_HYBRID: u32 = 8;
pub const FF_PROFILE_MPEG4_ADVANCED_REAL_TIME: u32 = 9;
pub const FF_PROFILE_MPEG4_CORE_SCALABLE: u32 = 10;
pub const FF_PROFILE_MPEG4_ADVANCED_CODING: u32 = 11;
pub const FF_PROFILE_MPEG4_ADVANCED_CORE: u32 = 12;
pub const FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE: u32 = 13;
pub const FF_PROFILE_MPEG4_SIMPLE_STUDIO: u32 = 14;
pub const FF_PROFILE_MPEG4_ADVANCED_SIMPLE: u32 = 15;
pub const FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0: u32 = 1;
pub const FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1: u32 = 2;
pub const FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION: u32 = 32768;
pub const FF_PROFILE_JPEG2000_DCINEMA_2K: u32 = 3;
pub const FF_PROFILE_JPEG2000_DCINEMA_4K: u32 = 4;
pub const FF_PROFILE_VP9_0: u32 = 0;
pub const FF_PROFILE_VP9_1: u32 = 1;
pub const FF_PROFILE_VP9_2: u32 = 2;
pub const FF_PROFILE_VP9_3: u32 = 3;
pub const FF_PROFILE_HEVC_MAIN: u32 = 1;
pub const FF_PROFILE_HEVC_MAIN_10: u32 = 2;
pub const FF_PROFILE_HEVC_MAIN_STILL_PICTURE: u32 = 3;
pub const FF_PROFILE_HEVC_REXT: u32 = 4;
pub const FF_PROFILE_AV1_MAIN: u32 = 0;
pub const FF_PROFILE_AV1_HIGH: u32 = 1;
pub const FF_PROFILE_AV1_PROFESSIONAL: u32 = 2;
pub const FF_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT: u32 = 192;
pub const FF_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT: u32 = 193;
pub const FF_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT: u32 = 194;
pub const FF_PROFILE_MJPEG_HUFFMAN_LOSSLESS: u32 = 195;
pub const FF_PROFILE_MJPEG_JPEG_LS: u32 = 247;
pub const FF_PROFILE_SBC_MSBC: u32 = 1;
pub const FF_LEVEL_UNKNOWN: i32 = -99;
pub const FF_SUB_CHARENC_MODE_DO_NOTHING: i32 = -1;
pub const FF_SUB_CHARENC_MODE_AUTOMATIC: u32 = 0;
pub const FF_SUB_CHARENC_MODE_PRE_DECODER: u32 = 1;
pub const FF_SUB_CHARENC_MODE_IGNORE: u32 = 2;
pub const FF_DEBUG_VIS_MV_P_FOR: u32 = 1;
pub const FF_DEBUG_VIS_MV_B_FOR: u32 = 2;
pub const FF_DEBUG_VIS_MV_B_BACK: u32 = 4;
pub const FF_CODEC_PROPERTY_LOSSLESS: u32 = 1;
pub const FF_CODEC_PROPERTY_CLOSED_CAPTIONS: u32 = 2;
pub const FF_SUB_TEXT_FMT_ASS: u32 = 0;
pub const FF_SUB_TEXT_FMT_ASS_WITH_TIMINGS: u32 = 1;
pub const AV_HWACCEL_CODEC_CAP_EXPERIMENTAL: u32 = 512;
pub const AV_HWACCEL_FLAG_IGNORE_LEVEL: u32 = 1;
pub const AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH: u32 = 2;
pub const AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH: u32 = 4;
pub const AV_SUBTITLE_FLAG_FORCED: u32 = 1;
pub const AV_PARSER_PTS_NB: u32 = 4;
pub const PARSER_FLAG_COMPLETE_FRAMES: u32 = 1;
pub const PARSER_FLAG_ONCE: u32 = 2;
pub const PARSER_FLAG_FETCHED_OFFSET: u32 = 4;
pub const PARSER_FLAG_USE_CODEC_TS: u32 = 4096;
extern "C" {
pub fn __errno_location() -> *mut ::std::os::raw::c_int;
}
pub type __u_char = ::std::os::raw::c_uchar;
pub type __u_short = ::std::os::raw::c_ushort;
pub type __u_int = ::std::os::raw::c_uint;
pub type __u_long = ::std::os::raw::c_ulong;
pub type __int8_t = ::std::os::raw::c_schar;
pub type __uint8_t = ::std::os::raw::c_uchar;
pub type __int16_t = ::std::os::raw::c_short;
pub type __uint16_t = ::std::os::raw::c_ushort;
pub type __int32_t = ::std::os::raw::c_int;
pub type __uint32_t = ::std::os::raw::c_uint;
pub type __int64_t = ::std::os::raw::c_long;
pub type __uint64_t = ::std::os::raw::c_ulong;
pub type __int_least8_t = __int8_t;
pub type __uint_least8_t = __uint8_t;
pub type __int_least16_t = __int16_t;
pub type __uint_least16_t = __uint16_t;
pub type __int_least32_t = __int32_t;
pub type __uint_least32_t = __uint32_t;
pub type __int_least64_t = __int64_t;
pub type __uint_least64_t = __uint64_t;
pub type __quad_t = ::std::os::raw::c_long;
pub type __u_quad_t = ::std::os::raw::c_ulong;
pub type __intmax_t = ::std::os::raw::c_long;
pub type __uintmax_t = ::std::os::raw::c_ulong;
pub type __dev_t = ::std::os::raw::c_ulong;
pub type __uid_t = ::std::os::raw::c_uint;
pub type __gid_t = ::std::os::raw::c_uint;
pub type __ino_t = ::std::os::raw::c_ulong;
pub type __ino64_t = ::std::os::raw::c_ulong;
pub type __mode_t = ::std::os::raw::c_uint;
pub type __nlink_t = ::std::os::raw::c_ulong;
pub type __off_t = ::std::os::raw::c_long;
pub type __off64_t = ::std::os::raw::c_long;
pub type __pid_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __fsid_t {
pub __val: [::std::os::raw::c_int; 2usize],
}
pub type __clock_t = ::std::os::raw::c_long;
pub type __rlim_t = ::std::os::raw::c_ulong;
pub type __rlim64_t = ::std::os::raw::c_ulong;
pub type __id_t = ::std::os::raw::c_uint;
pub type __time_t = ::std::os::raw::c_long;
pub type __useconds_t = ::std::os::raw::c_uint;
pub type __suseconds_t = ::std::os::raw::c_long;
pub type __daddr_t = ::std::os::raw::c_int;
pub type __key_t = ::std::os::raw::c_int;
pub type __clockid_t = ::std::os::raw::c_int;
pub type __timer_t = *mut ::std::os::raw::c_void;
pub type __blksize_t = ::std::os::raw::c_long;
pub type __blkcnt_t = ::std::os::raw::c_long;
pub type __blkcnt64_t = ::std::os::raw::c_long;
pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
pub type __fsword_t = ::std::os::raw::c_long;
pub type __ssize_t = ::std::os::raw::c_long;
pub type __syscall_slong_t = ::std::os::raw::c_long;
pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
pub type __loff_t = __off64_t;
pub type __caddr_t = *mut ::std::os::raw::c_char;
pub type __intptr_t = ::std::os::raw::c_long;
pub type __socklen_t = ::std::os::raw::c_uint;
pub type __sig_atomic_t = ::std::os::raw::c_int;
pub type int_least8_t = __int_least8_t;
pub type int_least16_t = __int_least16_t;
pub type int_least32_t = __int_least32_t;
pub type int_least64_t = __int_least64_t;
pub type uint_least8_t = __uint_least8_t;
pub type uint_least16_t = __uint_least16_t;
pub type uint_least32_t = __uint_least32_t;
pub type uint_least64_t = __uint_least64_t;
pub type int_fast8_t = ::std::os::raw::c_schar;
pub type int_fast16_t = ::std::os::raw::c_long;
pub type int_fast32_t = ::std::os::raw::c_long;
pub type int_fast64_t = ::std::os::raw::c_long;
pub type uint_fast8_t = ::std::os::raw::c_uchar;
pub type uint_fast16_t = ::std::os::raw::c_ulong;
pub type uint_fast32_t = ::std::os::raw::c_ulong;
pub type uint_fast64_t = ::std::os::raw::c_ulong;
pub type intmax_t = __intmax_t;
pub type uintmax_t = __uintmax_t;
extern "C" {
pub fn avutil_version() -> ::std::os::raw::c_uint;
}
extern "C" {
pub fn av_version_info() -> *const ::std::os::raw::c_char;
}
extern "C" {
pub fn avutil_configuration() -> *const ::std::os::raw::c_char;
}
extern "C" {
pub fn avutil_license() -> *const ::std::os::raw::c_char;
}
pub const AVMediaType_AVMEDIA_TYPE_UNKNOWN: AVMediaType = -1;
pub const AVMediaType_AVMEDIA_TYPE_VIDEO: AVMediaType = 0;
pub const AVMediaType_AVMEDIA_TYPE_AUDIO: AVMediaType = 1;
pub const AVMediaType_AVMEDIA_TYPE_DATA: AVMediaType = 2;
pub const AVMediaType_AVMEDIA_TYPE_SUBTITLE: AVMediaType = 3;
pub const AVMediaType_AVMEDIA_TYPE_ATTACHMENT: AVMediaType = 4;
pub const AVMediaType_AVMEDIA_TYPE_NB: AVMediaType = 5;
pub type AVMediaType = i32;
extern "C" {
pub fn av_get_media_type_string(media_type: AVMediaType) -> *const ::std::os::raw::c_char;
}
pub const AVPictureType_AV_PICTURE_TYPE_NONE: AVPictureType = 0;
pub const AVPictureType_AV_PICTURE_TYPE_I: AVPictureType = 1;
pub const AVPictureType_AV_PICTURE_TYPE_P: AVPictureType = 2;
pub const AVPictureType_AV_PICTURE_TYPE_B: AVPictureType = 3;
pub const AVPictureType_AV_PICTURE_TYPE_S: AVPictureType = 4;
pub const AVPictureType_AV_PICTURE_TYPE_SI: AVPictureType = 5;
pub const AVPictureType_AV_PICTURE_TYPE_SP: AVPictureType = 6;
pub const AVPictureType_AV_PICTURE_TYPE_BI: AVPictureType = 7;
pub type AVPictureType = u32;
extern "C" {
pub fn av_get_picture_type_char(pict_type: AVPictureType) -> ::std::os::raw::c_char;
}
pub type __gwchar_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct imaxdiv_t {
pub quot: ::std::os::raw::c_long,
pub rem: ::std::os::raw::c_long,
}
extern "C" {
pub fn imaxabs(__n: intmax_t) -> intmax_t;
}
extern "C" {
pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t;
}
extern "C" {
pub fn strtoimax(
__nptr: *const ::std::os::raw::c_char,
__endptr: *mut *mut ::std::os::raw::c_char,
__base: ::std::os::raw::c_int,
) -> intmax_t;
}
extern "C" {
pub fn strtoumax(
__nptr: *const ::std::os::raw::c_char,
__endptr: *mut *mut ::std::os::raw::c_char,
__base: ::std::os::raw::c_int,
) -> uintmax_t;
}
extern "C" {
pub fn wcstoimax(
__nptr: *const __gwchar_t,
__endptr: *mut *mut __gwchar_t,
__base: ::std::os::raw::c_int,
) -> intmax_t;
}
extern "C" {
pub fn wcstoumax(
__nptr: *const __gwchar_t,
__endptr: *mut *mut __gwchar_t,
__base: ::std::os::raw::c_int,
) -> uintmax_t;
}
pub type _Float32 = f32;
pub type _Float64 = f64;
pub type _Float32x = f64;
pub type _Float64x = u128;
pub type float_t = f32;
pub type double_t = f64;
extern "C" {
pub fn __fpclassify(__value: f64) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __signbit(__value: f64) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __isinf(__value: f64) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __finite(__value: f64) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __isnan(__value: f64) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __iseqsig(__x: f64, __y: f64) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __issignaling(__value: f64) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn acos(__x: f64) -> f64;
}
extern "C" {
pub fn __acos(__x: f64) -> f64;
}
extern "C" {
pub fn asin(__x: f64) -> f64;
}
extern "C" {
pub fn __asin(__x: f64) -> f64;
}
extern "C" {
pub fn atan(__x: f64) -> f64;
}
extern "C" {
pub fn __atan(__x: f64) -> f64;
}
extern "C" {
pub fn atan2(__y: f64, __x: f64) -> f64;
}
extern "C" {
pub fn __atan2(__y: f64, __x: f64) -> f64;
}
extern "C" {
pub fn cos(__x: f64) -> f64;
}
extern "C" {
pub fn __cos(__x: f64) -> f64;
}
extern "C" {
pub fn sin(__x: f64) -> f64;
}
extern "C" {
pub fn __sin(__x: f64) -> f64;
}
extern "C" {
pub fn tan(__x: f64) -> f64;
}
extern "C" {
pub fn __tan(__x: f64) -> f64;
}
extern "C" {
pub fn cosh(__x: f64) -> f64;
}
extern "C" {
pub fn __cosh(__x: f64) -> f64;
}
extern "C" {
pub fn sinh(__x: f64) -> f64;
}
extern "C" {
pub fn __sinh(__x: f64) -> f64;
}
extern "C" {
pub fn tanh(__x: f64) -> f64;
}
extern "C" {
pub fn __tanh(__x: f64) -> f64;
}
extern "C" {
pub fn acosh(__x: f64) -> f64;
}
extern "C" {
pub fn __acosh(__x: f64) -> f64;
}
extern "C" {
pub fn asinh(__x: f64) -> f64;
}
extern "C" {
pub fn __asinh(__x: f64) -> f64;
}
extern "C" {
pub fn atanh(__x: f64) -> f64;
}
extern "C" {
pub fn __atanh(__x: f64) -> f64;
}
extern "C" {
pub fn exp(__x: f64) -> f64;
}
extern "C" {
pub fn __exp(__x: f64) -> f64;
}
extern "C" {
pub fn frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64;
}
extern "C" {
pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64;
}
extern "C" {
pub fn ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64;
}
extern "C" {
pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64;
}
extern "C" {
pub fn log(__x: f64) -> f64;
}
extern "C" {
pub fn __log(__x: f64) -> f64;
}
extern "C" {
pub fn log10(__x: f64) -> f64;
}
extern "C" {
pub fn __log10(__x: f64) -> f64;
}
extern "C" {
pub fn modf(__x: f64, __iptr: *mut f64) -> f64;
}
extern "C" {
pub fn __modf(__x: f64, __iptr: *mut f64) -> f64;
}
extern "C" {
pub fn expm1(__x: f64) -> f64;
}
extern "C" {
pub fn __expm1(__x: f64) -> f64;
}
extern "C" {
pub fn log1p(__x: f64) -> f64;
}
extern "C" {
pub fn __log1p(__x: f64) -> f64;
}
extern "C" {
pub fn logb(__x: f64) -> f64;
}
extern "C" {
pub fn __logb(__x: f64) -> f64;
}
extern "C" {
pub fn exp2(__x: f64) -> f64;
}
extern "C" {
pub fn __exp2(__x: f64) -> f64;
}
extern "C" {
pub fn log2(__x: f64) -> f64;
}
extern "C" {
pub fn __log2(__x: f64) -> f64;
}
extern "C" {
pub fn pow(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn __pow(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn sqrt(__x: f64) -> f64;
}
extern "C" {
pub fn __sqrt(__x: f64) -> f64;
}
extern "C" {
pub fn hypot(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn __hypot(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn cbrt(__x: f64) -> f64;
}
extern "C" {
pub fn __cbrt(__x: f64) -> f64;
}
extern "C" {
pub fn ceil(__x: f64) -> f64;
}
extern "C" {
pub fn __ceil(__x: f64) -> f64;
}
extern "C" {
pub fn fabs(__x: f64) -> f64;
}
extern "C" {
pub fn __fabs(__x: f64) -> f64;
}
extern "C" {
pub fn floor(__x: f64) -> f64;
}
extern "C" {
pub fn __floor(__x: f64) -> f64;
}
extern "C" {
pub fn fmod(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn __fmod(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn isinf(__value: f64) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn finite(__value: f64) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn drem(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn __drem(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn significand(__x: f64) -> f64;
}
extern "C" {
pub fn __significand(__x: f64) -> f64;
}
extern "C" {
pub fn copysign(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn __copysign(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn nan(__tagb: *const ::std::os::raw::c_char) -> f64;
}
extern "C" {
pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64;
}
extern "C" {
pub fn isnan(__value: f64) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn j0(arg1: f64) -> f64;
}
extern "C" {
pub fn __j0(arg1: f64) -> f64;
}
extern "C" {
pub fn j1(arg1: f64) -> f64;
}
extern "C" {
pub fn __j1(arg1: f64) -> f64;
}
extern "C" {
pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
}
extern "C" {
pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
}
extern "C" {
pub fn y0(arg1: f64) -> f64;
}
extern "C" {
pub fn __y0(arg1: f64) -> f64;
}
extern "C" {
pub fn y1(arg1: f64) -> f64;
}
extern "C" {
pub fn __y1(arg1: f64) -> f64;
}
extern "C" {
pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
}
extern "C" {
pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
}
extern "C" {
pub fn erf(arg1: f64) -> f64;
}
extern "C" {
pub fn __erf(arg1: f64) -> f64;
}
extern "C" {
pub fn erfc(arg1: f64) -> f64;
}
extern "C" {
pub fn __erfc(arg1: f64) -> f64;
}
extern "C" {
pub fn lgamma(arg1: f64) -> f64;
}
extern "C" {
pub fn __lgamma(arg1: f64) -> f64;
}
extern "C" {
pub fn tgamma(arg1: f64) -> f64;
}
extern "C" {
pub fn __tgamma(arg1: f64) -> f64;
}
extern "C" {
pub fn gamma(arg1: f64) -> f64;
}
extern "C" {
pub fn __gamma(arg1: f64) -> f64;
}
extern "C" {
pub fn lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64;
}
extern "C" {
pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64;
}
extern "C" {
pub fn rint(__x: f64) -> f64;
}
extern "C" {
pub fn __rint(__x: f64) -> f64;
}
extern "C" {
pub fn nextafter(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn __nextafter(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn nexttoward(__x: f64, __y: u128) -> f64;
}
extern "C" {
pub fn __nexttoward(__x: f64, __y: u128) -> f64;
}
extern "C" {
pub fn remainder(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn __remainder(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64;
}
extern "C" {
pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64;
}
extern "C" {
pub fn ilogb(__x: f64) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64;
}
extern "C" {
pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64;
}
extern "C" {
pub fn nearbyint(__x: f64) -> f64;
}
extern "C" {
pub fn __nearbyint(__x: f64) -> f64;
}
extern "C" {
pub fn round(__x: f64) -> f64;
}
extern "C" {
pub fn __round(__x: f64) -> f64;
}
extern "C" {
pub fn trunc(__x: f64) -> f64;
}
extern "C" {
pub fn __trunc(__x: f64) -> f64;
}
extern "C" {
pub fn remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64;
}
extern "C" {
pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64;
}
extern "C" {
pub fn lrint(__x: f64) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn __lrint(__x: f64) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn llrint(__x: f64) -> ::std::os::raw::c_longlong;
}
extern "C" {
pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong;
}
extern "C" {
pub fn lround(__x: f64) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn __lround(__x: f64) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn llround(__x: f64) -> ::std::os::raw::c_longlong;
}
extern "C" {
pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong;
}
extern "C" {
pub fn fdim(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn __fdim(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn fmax(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn __fmax(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn fmin(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn __fmin(__x: f64, __y: f64) -> f64;
}
extern "C" {
pub fn fma(__x: f64, __y: f64, __z: f64) -> f64;
}
extern "C" {
pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64;
}
extern "C" {
pub fn scalb(__x: f64, __n: f64) -> f64;
}
extern "C" {
pub fn __scalb(__x: f64, __n: f64) -> f64;
}
extern "C" {
pub fn __fpclassifyf(__value: f32) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __signbitf(__value: f32) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __isinff(__value: f32) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __finitef(__value: f32) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __isnanf(__value: f32) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __iseqsigf(__x: f32, __y: f32) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __issignalingf(__value: f32) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn acosf(__x: f32) -> f32;
}
extern "C" {
pub fn __acosf(__x: f32) -> f32;
}
extern "C" {
pub fn asinf(__x: f32) -> f32;
}
extern "C" {
pub fn __asinf(__x: f32) -> f32;
}
extern "C" {
pub fn atanf(__x: f32) -> f32;
}
extern "C" {
pub fn __atanf(__x: f32) -> f32;
}
extern "C" {
pub fn atan2f(__y: f32, __x: f32) -> f32;
}
extern "C" {
pub fn __atan2f(__y: f32, __x: f32) -> f32;
}
extern "C" {
pub fn cosf(__x: f32) -> f32;
}
extern "C" {
pub fn __cosf(__x: f32) -> f32;
}
extern "C" {
pub fn sinf(__x: f32) -> f32;
}
extern "C" {
pub fn __sinf(__x: f32) -> f32;
}
extern "C" {
pub fn tanf(__x: f32) -> f32;
}
extern "C" {
pub fn __tanf(__x: f32) -> f32;
}
extern "C" {
pub fn coshf(__x: f32) -> f32;
}
extern "C" {
pub fn __coshf(__x: f32) -> f32;
}
extern "C" {
pub fn sinhf(__x: f32) -> f32;
}
extern "C" {
pub fn __sinhf(__x: f32) -> f32;
}
extern "C" {
pub fn tanhf(__x: f32) -> f32;
}
extern "C" {
pub fn __tanhf(__x: f32) -> f32;
}
extern "C" {
pub fn acoshf(__x: f32) -> f32;
}
extern "C" {
pub fn __acoshf(__x: f32) -> f32;
}
extern "C" {
pub fn asinhf(__x: f32) -> f32;
}
extern "C" {
pub fn __asinhf(__x: f32) -> f32;
}
extern "C" {
pub fn atanhf(__x: f32) -> f32;
}
extern "C" {
pub fn __atanhf(__x: f32) -> f32;
}
extern "C" {
pub fn expf(__x: f32) -> f32;
}
extern "C" {
pub fn __expf(__x: f32) -> f32;
}
extern "C" {
pub fn frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32;
}
extern "C" {
pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32;
}
extern "C" {
pub fn ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32;
}
extern "C" {
pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32;
}
extern "C" {
pub fn logf(__x: f32) -> f32;
}
extern "C" {
pub fn __logf(__x: f32) -> f32;
}
extern "C" {
pub fn log10f(__x: f32) -> f32;
}
extern "C" {
pub fn __log10f(__x: f32) -> f32;
}
extern "C" {
pub fn modff(__x: f32, __iptr: *mut f32) -> f32;
}
extern "C" {
pub fn __modff(__x: f32, __iptr: *mut f32) -> f32;
}
extern "C" {
pub fn expm1f(__x: f32) -> f32;
}
extern "C" {
pub fn __expm1f(__x: f32) -> f32;
}
extern "C" {
pub fn log1pf(__x: f32) -> f32;
}
extern "C" {
pub fn __log1pf(__x: f32) -> f32;
}
extern "C" {
pub fn logbf(__x: f32) -> f32;
}
extern "C" {
pub fn __logbf(__x: f32) -> f32;
}
extern "C" {
pub fn exp2f(__x: f32) -> f32;
}
extern "C" {
pub fn __exp2f(__x: f32) -> f32;
}
extern "C" {
pub fn log2f(__x: f32) -> f32;
}
extern "C" {
pub fn __log2f(__x: f32) -> f32;
}
extern "C" {
pub fn powf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn __powf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn sqrtf(__x: f32) -> f32;
}
extern "C" {
pub fn __sqrtf(__x: f32) -> f32;
}
extern "C" {
pub fn hypotf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn __hypotf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn cbrtf(__x: f32) -> f32;
}
extern "C" {
pub fn __cbrtf(__x: f32) -> f32;
}
extern "C" {
pub fn ceilf(__x: f32) -> f32;
}
extern "C" {
pub fn __ceilf(__x: f32) -> f32;
}
extern "C" {
pub fn fabsf(__x: f32) -> f32;
}
extern "C" {
pub fn __fabsf(__x: f32) -> f32;
}
extern "C" {
pub fn floorf(__x: f32) -> f32;
}
extern "C" {
pub fn __floorf(__x: f32) -> f32;
}
extern "C" {
pub fn fmodf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn __fmodf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn isinff(__value: f32) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn finitef(__value: f32) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn dremf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn __dremf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn significandf(__x: f32) -> f32;
}
extern "C" {
pub fn __significandf(__x: f32) -> f32;
}
extern "C" {
pub fn copysignf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn __copysignf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn nanf(__tagb: *const ::std::os::raw::c_char) -> f32;
}
extern "C" {
pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32;
}
extern "C" {
pub fn isnanf(__value: f32) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn j0f(arg1: f32) -> f32;
}
extern "C" {
pub fn __j0f(arg1: f32) -> f32;
}
extern "C" {
pub fn j1f(arg1: f32) -> f32;
}
extern "C" {
pub fn __j1f(arg1: f32) -> f32;
}
extern "C" {
pub fn jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
}
extern "C" {
pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
}
extern "C" {
pub fn y0f(arg1: f32) -> f32;
}
extern "C" {
pub fn __y0f(arg1: f32) -> f32;
}
extern "C" {
pub fn y1f(arg1: f32) -> f32;
}
extern "C" {
pub fn __y1f(arg1: f32) -> f32;
}
extern "C" {
pub fn ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
}
extern "C" {
pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
}
extern "C" {
pub fn erff(arg1: f32) -> f32;
}
extern "C" {
pub fn __erff(arg1: f32) -> f32;
}
extern "C" {
pub fn erfcf(arg1: f32) -> f32;
}
extern "C" {
pub fn __erfcf(arg1: f32) -> f32;
}
extern "C" {
pub fn lgammaf(arg1: f32) -> f32;
}
extern "C" {
pub fn __lgammaf(arg1: f32) -> f32;
}
extern "C" {
pub fn tgammaf(arg1: f32) -> f32;
}
extern "C" {
pub fn __tgammaf(arg1: f32) -> f32;
}
extern "C" {
pub fn gammaf(arg1: f32) -> f32;
}
extern "C" {
pub fn __gammaf(arg1: f32) -> f32;
}
extern "C" {
pub fn lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32;
}
extern "C" {
pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32;
}
extern "C" {
pub fn rintf(__x: f32) -> f32;
}
extern "C" {
pub fn __rintf(__x: f32) -> f32;
}
extern "C" {
pub fn nextafterf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn __nextafterf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn nexttowardf(__x: f32, __y: u128) -> f32;
}
extern "C" {
pub fn __nexttowardf(__x: f32, __y: u128) -> f32;
}
extern "C" {
pub fn remainderf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn __remainderf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32;
}
extern "C" {
pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32;
}
extern "C" {
pub fn ilogbf(__x: f32) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32;
}
extern "C" {
pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32;
}
extern "C" {
pub fn nearbyintf(__x: f32) -> f32;
}
extern "C" {
pub fn __nearbyintf(__x: f32) -> f32;
}
extern "C" {
pub fn roundf(__x: f32) -> f32;
}
extern "C" {
pub fn __roundf(__x: f32) -> f32;
}
extern "C" {
pub fn truncf(__x: f32) -> f32;
}
extern "C" {
pub fn __truncf(__x: f32) -> f32;
}
extern "C" {
pub fn remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32;
}
extern "C" {
pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32;
}
extern "C" {
pub fn lrintf(__x: f32) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn llrintf(__x: f32) -> ::std::os::raw::c_longlong;
}
extern "C" {
pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong;
}
extern "C" {
pub fn lroundf(__x: f32) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn llroundf(__x: f32) -> ::std::os::raw::c_longlong;
}
extern "C" {
pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong;
}
extern "C" {
pub fn fdimf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn __fdimf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn fmaxf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn __fmaxf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn fminf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn __fminf(__x: f32, __y: f32) -> f32;
}
extern "C" {
pub fn fmaf(__x: f32, __y: f32, __z: f32) -> f32;
}
extern "C" {
pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32;
}
extern "C" {
pub fn scalbf(__x: f32, __n: f32) -> f32;
}
extern "C" {
pub fn __scalbf(__x: f32, __n: f32) -> f32;
}
extern "C" {
pub fn __fpclassifyl(__value: u128) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __signbitl(__value: u128) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __isinfl(__value: u128) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __finitel(__value: u128) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __isnanl(__value: u128) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __iseqsigl(__x: u128, __y: u128) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __issignalingl(__value: u128) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn acosl(__x: u128) -> u128;
}
extern "C" {
pub fn __acosl(__x: u128) -> u128;
}
extern "C" {
pub fn asinl(__x: u128) -> u128;
}
extern "C" {
pub fn __asinl(__x: u128) -> u128;
}
extern "C" {
pub fn atanl(__x: u128) -> u128;
}
extern "C" {
pub fn __atanl(__x: u128) -> u128;
}
extern "C" {
pub fn atan2l(__y: u128, __x: u128) -> u128;
}
extern "C" {
pub fn __atan2l(__y: u128, __x: u128) -> u128;
}
extern "C" {
pub fn cosl(__x: u128) -> u128;
}
extern "C" {
pub fn __cosl(__x: u128) -> u128;
}
extern "C" {
pub fn sinl(__x: u128) -> u128;
}
extern "C" {
pub fn __sinl(__x: u128) -> u128;
}
extern "C" {
pub fn tanl(__x: u128) -> u128;
}
extern "C" {
pub fn __tanl(__x: u128) -> u128;
}
extern "C" {
pub fn coshl(__x: u128) -> u128;
}
extern "C" {
pub fn __coshl(__x: u128) -> u128;
}
extern "C" {
pub fn sinhl(__x: u128) -> u128;
}
extern "C" {
pub fn __sinhl(__x: u128) -> u128;
}
extern "C" {
pub fn tanhl(__x: u128) -> u128;
}
extern "C" {
pub fn __tanhl(__x: u128) -> u128;
}
extern "C" {
pub fn acoshl(__x: u128) -> u128;
}
extern "C" {
pub fn __acoshl(__x: u128) -> u128;
}
extern "C" {
pub fn asinhl(__x: u128) -> u128;
}
extern "C" {
pub fn __asinhl(__x: u128) -> u128;
}
extern "C" {
pub fn atanhl(__x: u128) -> u128;
}
extern "C" {
pub fn __atanhl(__x: u128) -> u128;
}
extern "C" {
pub fn expl(__x: u128) -> u128;
}
extern "C" {
pub fn __expl(__x: u128) -> u128;
}
extern "C" {
pub fn frexpl(__x: u128, __exponent: *mut ::std::os::raw::c_int) -> u128;
}
extern "C" {
pub fn __frexpl(__x: u128, __exponent: *mut ::std::os::raw::c_int) -> u128;
}
extern "C" {
pub fn ldexpl(__x: u128, __exponent: ::std::os::raw::c_int) -> u128;
}
extern "C" {
pub fn __ldexpl(__x: u128, __exponent: ::std::os::raw::c_int) -> u128;
}
extern "C" {
pub fn logl(__x: u128) -> u128;
}
extern "C" {
pub fn __logl(__x: u128) -> u128;
}
extern "C" {
pub fn log10l(__x: u128) -> u128;
}
extern "C" {
pub fn __log10l(__x: u128) -> u128;
}
extern "C" {
pub fn modfl(__x: u128, __iptr: *mut u128) -> u128;
}
extern "C" {
pub fn __modfl(__x: u128, __iptr: *mut u128) -> u128;
}
extern "C" {
pub fn expm1l(__x: u128) -> u128;
}
extern "C" {
pub fn __expm1l(__x: u128) -> u128;
}
extern "C" {
pub fn log1pl(__x: u128) -> u128;
}
extern "C" {
pub fn __log1pl(__x: u128) -> u128;
}
extern "C" {
pub fn logbl(__x: u128) -> u128;
}
extern "C" {
pub fn __logbl(__x: u128) -> u128;
}
extern "C" {
pub fn exp2l(__x: u128) -> u128;
}
extern "C" {
pub fn __exp2l(__x: u128) -> u128;
}
extern "C" {
pub fn log2l(__x: u128) -> u128;
}
extern "C" {
pub fn __log2l(__x: u128) -> u128;
}
extern "C" {
pub fn powl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn __powl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn sqrtl(__x: u128) -> u128;
}
extern "C" {
pub fn __sqrtl(__x: u128) -> u128;
}
extern "C" {
pub fn hypotl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn __hypotl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn cbrtl(__x: u128) -> u128;
}
extern "C" {
pub fn __cbrtl(__x: u128) -> u128;
}
extern "C" {
pub fn ceill(__x: u128) -> u128;
}
extern "C" {
pub fn __ceill(__x: u128) -> u128;
}
extern "C" {
pub fn fabsl(__x: u128) -> u128;
}
extern "C" {
pub fn __fabsl(__x: u128) -> u128;
}
extern "C" {
pub fn floorl(__x: u128) -> u128;
}
extern "C" {
pub fn __floorl(__x: u128) -> u128;
}
extern "C" {
pub fn fmodl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn __fmodl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn isinfl(__value: u128) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn finitel(__value: u128) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn dreml(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn __dreml(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn significandl(__x: u128) -> u128;
}
extern "C" {
pub fn __significandl(__x: u128) -> u128;
}
extern "C" {
pub fn copysignl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn __copysignl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn nanl(__tagb: *const ::std::os::raw::c_char) -> u128;
}
extern "C" {
pub fn __nanl(__tagb: *const ::std::os::raw::c_char) -> u128;
}
extern "C" {
pub fn isnanl(__value: u128) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn j0l(arg1: u128) -> u128;
}
extern "C" {
pub fn __j0l(arg1: u128) -> u128;
}
extern "C" {
pub fn j1l(arg1: u128) -> u128;
}
extern "C" {
pub fn __j1l(arg1: u128) -> u128;
}
extern "C" {
pub fn jnl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128;
}
extern "C" {
pub fn __jnl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128;
}
extern "C" {
pub fn y0l(arg1: u128) -> u128;
}
extern "C" {
pub fn __y0l(arg1: u128) -> u128;
}
extern "C" {
pub fn y1l(arg1: u128) -> u128;
}
extern "C" {
pub fn __y1l(arg1: u128) -> u128;
}
extern "C" {
pub fn ynl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128;
}
extern "C" {
pub fn __ynl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128;
}
extern "C" {
pub fn erfl(arg1: u128) -> u128;
}
extern "C" {
pub fn __erfl(arg1: u128) -> u128;
}
extern "C" {
pub fn erfcl(arg1: u128) -> u128;
}
extern "C" {
pub fn __erfcl(arg1: u128) -> u128;
}
extern "C" {
pub fn lgammal(arg1: u128) -> u128;
}
extern "C" {
pub fn __lgammal(arg1: u128) -> u128;
}
extern "C" {
pub fn tgammal(arg1: u128) -> u128;
}
extern "C" {
pub fn __tgammal(arg1: u128) -> u128;
}
extern "C" {
pub fn gammal(arg1: u128) -> u128;
}
extern "C" {
pub fn __gammal(arg1: u128) -> u128;
}
extern "C" {
pub fn lgammal_r(arg1: u128, __signgamp: *mut ::std::os::raw::c_int) -> u128;
}
extern "C" {
pub fn __lgammal_r(arg1: u128, __signgamp: *mut ::std::os::raw::c_int) -> u128;
}
extern "C" {
pub fn rintl(__x: u128) -> u128;
}
extern "C" {
pub fn __rintl(__x: u128) -> u128;
}
extern "C" {
pub fn nextafterl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn __nextafterl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn nexttowardl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn __nexttowardl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn remainderl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn __remainderl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn scalbnl(__x: u128, __n: ::std::os::raw::c_int) -> u128;
}
extern "C" {
pub fn __scalbnl(__x: u128, __n: ::std::os::raw::c_int) -> u128;
}
extern "C" {
pub fn ilogbl(__x: u128) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __ilogbl(__x: u128) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn scalblnl(__x: u128, __n: ::std::os::raw::c_long) -> u128;
}
extern "C" {
pub fn __scalblnl(__x: u128, __n: ::std::os::raw::c_long) -> u128;
}
extern "C" {
pub fn nearbyintl(__x: u128) -> u128;
}
extern "C" {
pub fn __nearbyintl(__x: u128) -> u128;
}
extern "C" {
pub fn roundl(__x: u128) -> u128;
}
extern "C" {
pub fn __roundl(__x: u128) -> u128;
}
extern "C" {
pub fn truncl(__x: u128) -> u128;
}
extern "C" {
pub fn __truncl(__x: u128) -> u128;
}
extern "C" {
pub fn remquol(__x: u128, __y: u128, __quo: *mut ::std::os::raw::c_int) -> u128;
}
extern "C" {
pub fn __remquol(__x: u128, __y: u128, __quo: *mut ::std::os::raw::c_int) -> u128;
}
extern "C" {
pub fn lrintl(__x: u128) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn __lrintl(__x: u128) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn llrintl(__x: u128) -> ::std::os::raw::c_longlong;
}
extern "C" {
pub fn __llrintl(__x: u128) -> ::std::os::raw::c_longlong;
}
extern "C" {
pub fn lroundl(__x: u128) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn __lroundl(__x: u128) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn llroundl(__x: u128) -> ::std::os::raw::c_longlong;
}
extern "C" {
pub fn __llroundl(__x: u128) -> ::std::os::raw::c_longlong;
}
extern "C" {
pub fn fdiml(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn __fdiml(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn fmaxl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn __fmaxl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn fminl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn __fminl(__x: u128, __y: u128) -> u128;
}
extern "C" {
pub fn fmal(__x: u128, __y: u128, __z: u128) -> u128;
}
extern "C" {
pub fn __fmal(__x: u128, __y: u128, __z: u128) -> u128;
}
extern "C" {
pub fn scalbl(__x: u128, __n: u128) -> u128;
}
extern "C" {
pub fn __scalbl(__x: u128, __n: u128) -> u128;
}
extern "C" {
#[link_name = "\u{1}signgam"]
pub static mut signgam: ::std::os::raw::c_int;
}
pub type va_list = __builtin_va_list;
pub type __gnuc_va_list = __builtin_va_list;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct __mbstate_t {
pub __count: ::std::os::raw::c_int,
pub __value: __mbstate_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union __mbstate_t__bindgen_ty_1 {
pub __wch: ::std::os::raw::c_uint,
pub __wchb: [::std::os::raw::c_char; 4usize],
_bindgen_union_align: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _G_fpos_t {
pub __pos: __off_t,
pub __state: __mbstate_t,
}
pub type __fpos_t = _G_fpos_t;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _G_fpos64_t {
pub __pos: __off64_t,
pub __state: __mbstate_t,
}
pub type __fpos64_t = _G_fpos64_t;
pub type __FILE = _IO_FILE;
pub type FILE = _IO_FILE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_marker {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_codecvt {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_wide_data {
_unused: [u8; 0],
}
pub type _IO_lock_t = ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_FILE {
pub _flags: ::std::os::raw::c_int,
pub _IO_read_ptr: *mut ::std::os::raw::c_char,
pub _IO_read_end: *mut ::std::os::raw::c_char,
pub _IO_read_base: *mut ::std::os::raw::c_char,
pub _IO_write_base: *mut ::std::os::raw::c_char,
pub _IO_write_ptr: *mut ::std::os::raw::c_char,
pub _IO_write_end: *mut ::std::os::raw::c_char,
pub _IO_buf_base: *mut ::std::os::raw::c_char,
pub _IO_buf_end: *mut ::std::os::raw::c_char,
pub _IO_save_base: *mut ::std::os::raw::c_char,
pub _IO_backup_base: *mut ::std::os::raw::c_char,
pub _IO_save_end: *mut ::std::os::raw::c_char,
pub _markers: *mut _IO_marker,
pub _chain: *mut _IO_FILE,
pub _fileno: ::std::os::raw::c_int,
pub _flags2: ::std::os::raw::c_int,
pub _old_offset: __off_t,
pub _cur_column: ::std::os::raw::c_ushort,
pub _vtable_offset: ::std::os::raw::c_schar,
pub _shortbuf: [::std::os::raw::c_char; 1usize],
pub _lock: *mut _IO_lock_t,
pub _offset: __off64_t,
pub _codecvt: *mut _IO_codecvt,
pub _wide_data: *mut _IO_wide_data,
pub _freeres_list: *mut _IO_FILE,
pub _freeres_buf: *mut ::std::os::raw::c_void,
pub __pad5: usize,
pub _mode: ::std::os::raw::c_int,
pub _unused2: [::std::os::raw::c_char; 20usize],
}
pub type off_t = __off_t;
pub type fpos_t = __fpos_t;
extern "C" {
#[link_name = "\u{1}stdin"]
pub static mut stdin: *mut FILE;
}
extern "C" {
#[link_name = "\u{1}stdout"]
pub static mut stdout: *mut FILE;
}
extern "C" {
#[link_name = "\u{1}stderr"]
pub static mut stderr: *mut FILE;
}
extern "C" {
pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn rename(
__old: *const ::std::os::raw::c_char,
__new: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn renameat(
__oldfd: ::std::os::raw::c_int,
__old: *const ::std::os::raw::c_char,
__newfd: ::std::os::raw::c_int,
__new: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn tmpfile() -> *mut FILE;
}
extern "C" {
pub fn tmpnam(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn tempnam(
__dir: *const ::std::os::raw::c_char,
__pfx: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fopen(
__filename: *const ::std::os::raw::c_char,
__modes: *const ::std::os::raw::c_char,
) -> *mut FILE;
}
extern "C" {
pub fn freopen(
__filename: *const ::std::os::raw::c_char,
__modes: *const ::std::os::raw::c_char,
__stream: *mut FILE,
) -> *mut FILE;
}
extern "C" {
pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char)
-> *mut FILE;
}
extern "C" {
pub fn fmemopen(
__s: *mut ::std::os::raw::c_void,
__len: usize,
__modes: *const ::std::os::raw::c_char,
) -> *mut FILE;
}
extern "C" {
pub fn open_memstream(
__bufloc: *mut *mut ::std::os::raw::c_char,
__sizeloc: *mut usize,
) -> *mut FILE;
}
extern "C" {
pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char);
}
extern "C" {
pub fn setvbuf(
__stream: *mut FILE,
__buf: *mut ::std::os::raw::c_char,
__modes: ::std::os::raw::c_int,
__n: usize,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize);
}
extern "C" {
pub fn setlinebuf(__stream: *mut FILE);
}
extern "C" {
pub fn fprintf(
__stream: *mut FILE,
__format: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn sprintf(
__s: *mut ::std::os::raw::c_char,
__format: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vfprintf(
__s: *mut FILE,
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vprintf(
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vsprintf(
__s: *mut ::std::os::raw::c_char,
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn snprintf(
__s: *mut ::std::os::raw::c_char,
__maxlen: ::std::os::raw::c_ulong,
__format: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vsnprintf(
__s: *mut ::std::os::raw::c_char,
__maxlen: ::std::os::raw::c_ulong,
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vdprintf(
__fd: ::std::os::raw::c_int,
__fmt: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn dprintf(
__fd: ::std::os::raw::c_int,
__fmt: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fscanf(
__stream: *mut FILE,
__format: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn sscanf(
__s: *const ::std::os::raw::c_char,
__format: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
}
extern "C" {
#[link_name = "\u{1}__isoc99_fscanf"]
pub fn fscanf1(
__stream: *mut FILE,
__format: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
}
extern "C" {
#[link_name = "\u{1}__isoc99_scanf"]
pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
#[link_name = "\u{1}__isoc99_sscanf"]
pub fn sscanf1(
__s: *const ::std::os::raw::c_char,
__format: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vfscanf(
__s: *mut FILE,
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vscanf(
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vsscanf(
__s: *const ::std::os::raw::c_char,
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[link_name = "\u{1}__isoc99_vfscanf"]
pub fn vfscanf1(
__s: *mut FILE,
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[link_name = "\u{1}__isoc99_vscanf"]
pub fn vscanf1(
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[link_name = "\u{1}__isoc99_vsscanf"]
pub fn vsscanf1(
__s: *const ::std::os::raw::c_char,
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn getchar() -> ::std::os::raw::c_int;
}
extern "C" {
pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn getchar_unlocked() -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE)
-> ::std::os::raw::c_int;
}
extern "C" {
pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fgets(
__s: *mut ::std::os::raw::c_char,
__n: ::std::os::raw::c_int,
__stream: *mut FILE,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn __getdelim(
__lineptr: *mut *mut ::std::os::raw::c_char,
__n: *mut usize,
__delimiter: ::std::os::raw::c_int,
__stream: *mut FILE,
) -> __ssize_t;
}
extern "C" {
pub fn getdelim(
__lineptr: *mut *mut ::std::os::raw::c_char,
__n: *mut usize,
__delimiter: ::std::os::raw::c_int,
__stream: *mut FILE,
) -> __ssize_t;
}
extern "C" {
pub fn getline(
__lineptr: *mut *mut ::std::os::raw::c_char,
__n: *mut usize,
__stream: *mut FILE,
) -> __ssize_t;
}
extern "C" {
pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fread(
__ptr: *mut ::std::os::raw::c_void,
__size: ::std::os::raw::c_ulong,
__n: ::std::os::raw::c_ulong,
__stream: *mut FILE,
) -> ::std::os::raw::c_ulong;
}
extern "C" {
pub fn fwrite(
__ptr: *const ::std::os::raw::c_void,
__size: ::std::os::raw::c_ulong,
__n: ::std::os::raw::c_ulong,
__s: *mut FILE,
) -> ::std::os::raw::c_ulong;
}
extern "C" {
pub fn fread_unlocked(
__ptr: *mut ::std::os::raw::c_void,
__size: usize,
__n: usize,
__stream: *mut FILE,
) -> usize;
}
extern "C" {
pub fn fwrite_unlocked(
__ptr: *const ::std::os::raw::c_void,
__size: usize,
__n: usize,
__stream: *mut FILE,
) -> usize;
}
extern "C" {
pub fn fseek(
__stream: *mut FILE,
__off: ::std::os::raw::c_long,
__whence: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn rewind(__stream: *mut FILE);
}
extern "C" {
pub fn fseeko(
__stream: *mut FILE,
__off: __off_t,
__whence: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn ftello(__stream: *mut FILE) -> __off_t;
}
extern "C" {
pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn clearerr(__stream: *mut FILE);
}
extern "C" {
pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn clearerr_unlocked(__stream: *mut FILE);
}
extern "C" {
pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn perror(__s: *const ::std::os::raw::c_char);
}
extern "C" {
#[link_name = "\u{1}sys_nerr"]
pub static mut sys_nerr: ::std::os::raw::c_int;
}
extern "C" {
#[link_name = "\u{1}sys_errlist"]
pub static mut sys_errlist: [*const ::std::os::raw::c_char; 0usize];
}
extern "C" {
pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn popen(
__command: *const ::std::os::raw::c_char,
__modes: *const ::std::os::raw::c_char,
) -> *mut FILE;
}
extern "C" {
pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn flockfile(__stream: *mut FILE);
}
extern "C" {
pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn funlockfile(__stream: *mut FILE);
}
extern "C" {
pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
pub type wchar_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct div_t {
pub quot: ::std::os::raw::c_int,
pub rem: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ldiv_t {
pub quot: ::std::os::raw::c_long,
pub rem: ::std::os::raw::c_long,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct lldiv_t {
pub quot: ::std::os::raw::c_longlong,
pub rem: ::std::os::raw::c_longlong,
}
extern "C" {
pub fn __ctype_get_mb_cur_max() -> usize;
}
extern "C" {
pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64;
}
extern "C" {
pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
}
extern "C" {
pub fn strtod(
__nptr: *const ::std::os::raw::c_char,
__endptr: *mut *mut ::std::os::raw::c_char,
) -> f64;
}
extern "C" {
pub fn strtof(
__nptr: *const ::std::os::raw::c_char,
__endptr: *mut *mut ::std::os::raw::c_char,
) -> f32;
}
extern "C" {
pub fn strtold(
__nptr: *const ::std::os::raw::c_char,
__endptr: *mut *mut ::std::os::raw::c_char,
) -> u128;
}
extern "C" {
pub fn strtol(
__nptr: *const ::std::os::raw::c_char,
__endptr: *mut *mut ::std::os::raw::c_char,
__base: ::std::os::raw::c_int,
) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn strtoul(
__nptr: *const ::std::os::raw::c_char,
__endptr: *mut *mut ::std::os::raw::c_char,
__base: ::std::os::raw::c_int,
) -> ::std::os::raw::c_ulong;
}
extern "C" {
pub fn strtoq(
__nptr: *const ::std::os::raw::c_char,
__endptr: *mut *mut ::std::os::raw::c_char,
__base: ::std::os::raw::c_int,
) -> ::std::os::raw::c_longlong;
}
extern "C" {
pub fn strtouq(
__nptr: *const ::std::os::raw::c_char,
__endptr: *mut *mut ::std::os::raw::c_char,
__base: ::std::os::raw::c_int,
) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
pub fn strtoll(
__nptr: *const ::std::os::raw::c_char,
__endptr: *mut *mut ::std::os::raw::c_char,
__base: ::std::os::raw::c_int,
) -> ::std::os::raw::c_longlong;
}
extern "C" {
pub fn strtoull(
__nptr: *const ::std::os::raw::c_char,
__endptr: *mut *mut ::std::os::raw::c_char,
__base: ::std::os::raw::c_int,
) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
}
pub type u_char = __u_char;
pub type u_short = __u_short;
pub type u_int = __u_int;
pub type u_long = __u_long;
pub type quad_t = __quad_t;
pub type u_quad_t = __u_quad_t;
pub type fsid_t = __fsid_t;
pub type loff_t = __loff_t;
pub type ino_t = __ino_t;
pub type dev_t = __dev_t;
pub type gid_t = __gid_t;
pub type mode_t = __mode_t;
pub type nlink_t = __nlink_t;
pub type uid_t = __uid_t;
pub type pid_t = __pid_t;
pub type id_t = __id_t;
pub type daddr_t = __daddr_t;
pub type caddr_t = __caddr_t;
pub type key_t = __key_t;
pub type clock_t = __clock_t;
pub type clockid_t = __clockid_t;
pub type time_t = __time_t;
pub type timer_t = __timer_t;
pub type ulong = ::std::os::raw::c_ulong;
pub type ushort = ::std::os::raw::c_ushort;
pub type uint = ::std::os::raw::c_uint;
pub type u_int8_t = ::std::os::raw::c_uchar;
pub type u_int16_t = ::std::os::raw::c_ushort;
pub type u_int32_t = ::std::os::raw::c_uint;
pub type u_int64_t = ::std::os::raw::c_ulong;
pub type register_t = ::std::os::raw::c_long;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __sigset_t {
pub __val: [::std::os::raw::c_ulong; 16usize],
}
pub type sigset_t = __sigset_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct timeval {
pub tv_sec: __time_t,
pub tv_usec: __suseconds_t,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct timespec {
pub tv_sec: __time_t,
pub tv_nsec: __syscall_slong_t,
}
pub type suseconds_t = __suseconds_t;
pub type __fd_mask = ::std::os::raw::c_long;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct fd_set {
pub __fds_bits: [__fd_mask; 16usize],
}
pub type fd_mask = __fd_mask;
extern "C" {
pub fn select(
__nfds: ::std::os::raw::c_int,
__readfds: *mut fd_set,
__writefds: *mut fd_set,
__exceptfds: *mut fd_set,
__timeout: *mut timeval,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn pselect(
__nfds: ::std::os::raw::c_int,
__readfds: *mut fd_set,
__writefds: *mut fd_set,
__exceptfds: *mut fd_set,
__timeout: *const timespec,
__sigmask: *const __sigset_t,
) -> ::std::os::raw::c_int;
}
pub type blksize_t = __blksize_t;
pub type blkcnt_t = __blkcnt_t;
pub type fsblkcnt_t = __fsblkcnt_t;
pub type fsfilcnt_t = __fsfilcnt_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_rwlock_arch_t {
pub __readers: ::std::os::raw::c_uint,
pub __writers: ::std::os::raw::c_uint,
pub __wrphase_futex: ::std::os::raw::c_uint,
pub __writers_futex: ::std::os::raw::c_uint,
pub __pad3: ::std::os::raw::c_uint,
pub __pad4: ::std::os::raw::c_uint,
pub __cur_writer: ::std::os::raw::c_int,
pub __shared: ::std::os::raw::c_int,
pub __rwelision: ::std::os::raw::c_schar,
pub __pad1: [::std::os::raw::c_uchar; 7usize],
pub __pad2: ::std::os::raw::c_ulong,
pub __flags: ::std::os::raw::c_uint,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_internal_list {
pub __prev: *mut __pthread_internal_list,
pub __next: *mut __pthread_internal_list,
}
pub type __pthread_list_t = __pthread_internal_list;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_mutex_s {
pub __lock: ::std::os::raw::c_int,
pub __count: ::std::os::raw::c_uint,
pub __owner: ::std::os::raw::c_int,
pub __nusers: ::std::os::raw::c_uint,
pub __kind: ::std::os::raw::c_int,
pub __spins: ::std::os::raw::c_short,
pub __elision: ::std::os::raw::c_short,
pub __list: __pthread_list_t,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct __pthread_cond_s {
pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1,
pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2,
pub __g_refs: [::std::os::raw::c_uint; 2usize],
pub __g_size: [::std::os::raw::c_uint; 2usize],
pub __g1_orig_size: ::std::os::raw::c_uint,
pub __wrefs: ::std::os::raw::c_uint,
pub __g_signals: [::std::os::raw::c_uint; 2usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union __pthread_cond_s__bindgen_ty_1 {
pub __wseq: ::std::os::raw::c_ulonglong,
pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1,
_bindgen_union_align: u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 {
pub __low: ::std::os::raw::c_uint,
pub __high: ::std::os::raw::c_uint,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union __pthread_cond_s__bindgen_ty_2 {
pub __g1_start: ::std::os::raw::c_ulonglong,
pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1,
_bindgen_union_align: u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 {
pub __low: ::std::os::raw::c_uint,
pub __high: ::std::os::raw::c_uint,
}
pub type pthread_t = ::std::os::raw::c_ulong;
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_mutexattr_t {
pub __size: [::std::os::raw::c_char; 4usize],
pub __align: ::std::os::raw::c_int,
_bindgen_union_align: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_condattr_t {
pub __size: [::std::os::raw::c_char; 4usize],
pub __align: ::std::os::raw::c_int,
_bindgen_union_align: u32,
}
pub type pthread_key_t = ::std::os::raw::c_uint;
pub type pthread_once_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_attr_t {
pub __size: [::std::os::raw::c_char; 56usize],
pub __align: ::std::os::raw::c_long,
_bindgen_union_align: [u64; 7usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_mutex_t {
pub __data: __pthread_mutex_s,
pub __size: [::std::os::raw::c_char; 40usize],
pub __align: ::std::os::raw::c_long,
_bindgen_union_align: [u64; 5usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_cond_t {
pub __data: __pthread_cond_s,
pub __size: [::std::os::raw::c_char; 48usize],
pub __align: ::std::os::raw::c_longlong,
_bindgen_union_align: [u64; 6usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_rwlock_t {
pub __data: __pthread_rwlock_arch_t,
pub __size: [::std::os::raw::c_char; 56usize],
pub __align: ::std::os::raw::c_long,
_bindgen_union_align: [u64; 7usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_rwlockattr_t {
pub __size: [::std::os::raw::c_char; 8usize],
pub __align: ::std::os::raw::c_long,
_bindgen_union_align: u64,
}
pub type pthread_spinlock_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_barrier_t {
pub __size: [::std::os::raw::c_char; 32usize],
pub __align: ::std::os::raw::c_long,
_bindgen_union_align: [u64; 4usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_barrierattr_t {
pub __size: [::std::os::raw::c_char; 4usize],
pub __align: ::std::os::raw::c_int,
_bindgen_union_align: u32,
}
extern "C" {
pub fn random() -> ::std::os::raw::c_long;
}
extern "C" {
pub fn srandom(__seed: ::std::os::raw::c_uint);
}
extern "C" {
pub fn initstate(
__seed: ::std::os::raw::c_uint,
__statebuf: *mut ::std::os::raw::c_char,
__statelen: usize,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct random_data {
pub fptr: *mut i32,
pub rptr: *mut i32,
pub state: *mut i32,
pub rand_type: ::std::os::raw::c_int,
pub rand_deg: ::std::os::raw::c_int,
pub rand_sep: ::std::os::raw::c_int,
pub end_ptr: *mut i32,
}
extern "C" {
pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn srandom_r(
__seed: ::std::os::raw::c_uint,
__buf: *mut random_data,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn initstate_r(
__seed: ::std::os::raw::c_uint,
__statebuf: *mut ::std::os::raw::c_char,
__statelen: usize,
__buf: *mut random_data,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn setstate_r(
__statebuf: *mut ::std::os::raw::c_char,
__buf: *mut random_data,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn rand() -> ::std::os::raw::c_int;
}
extern "C" {
pub fn srand(__seed: ::std::os::raw::c_uint);
}
extern "C" {
pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn drand48() -> f64;
}
extern "C" {
pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64;
}
extern "C" {
pub fn lrand48() -> ::std::os::raw::c_long;
}
extern "C" {
pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn mrand48() -> ::std::os::raw::c_long;
}
extern "C" {
pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn srand48(__seedval: ::std::os::raw::c_long);
}
extern "C" {
pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort;
}
extern "C" {
pub fn lcong48(__param: *mut ::std::os::raw::c_ushort);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drand48_data {
pub __x: [::std::os::raw::c_ushort; 3usize],
pub __old_x: [::std::os::raw::c_ushort; 3usize],
pub __c: ::std::os::raw::c_ushort,
pub __init: ::std::os::raw::c_ushort,
pub __a: ::std::os::raw::c_ulonglong,
}
extern "C" {
pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn erand48_r(
__xsubi: *mut ::std::os::raw::c_ushort,
__buffer: *mut drand48_data,
__result: *mut f64,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn lrand48_r(
__buffer: *mut drand48_data,
__result: *mut ::std::os::raw::c_long,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn nrand48_r(
__xsubi: *mut ::std::os::raw::c_ushort,
__buffer: *mut drand48_data,
__result: *mut ::std::os::raw::c_long,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn mrand48_r(
__buffer: *mut drand48_data,
__result: *mut ::std::os::raw::c_long,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn jrand48_r(
__xsubi: *mut ::std::os::raw::c_ushort,
__buffer: *mut drand48_data,
__result: *mut ::std::os::raw::c_long,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn srand48_r(
__seedval: ::std::os::raw::c_long,
__buffer: *mut drand48_data,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn seed48_r(
__seed16v: *mut ::std::os::raw::c_ushort,
__buffer: *mut drand48_data,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn lcong48_r(
__param: *mut ::std::os::raw::c_ushort,
__buffer: *mut drand48_data,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn calloc(
__nmemb: ::std::os::raw::c_ulong,
__size: ::std::os::raw::c_ulong,
) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn realloc(
__ptr: *mut ::std::os::raw::c_void,
__size: ::std::os::raw::c_ulong,
) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn reallocarray(
__ptr: *mut ::std::os::raw::c_void,
__nmemb: usize,
__size: usize,
) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn free(__ptr: *mut ::std::os::raw::c_void);
}
extern "C" {
pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn posix_memalign(
__memptr: *mut *mut ::std::os::raw::c_void,
__alignment: usize,
__size: usize,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn aligned_alloc(__alignment: usize, __size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn abort();
}
extern "C" {
pub fn atexit(__func: ::std::option::Option<unsafe extern "C" fn()>) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn at_quick_exit(
__func: ::std::option::Option<unsafe extern "C" fn()>,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn on_exit(
__func: ::std::option::Option<
unsafe extern "C" fn(__func: ::std::os::raw::c_int, __arg: *mut ::std::os::raw::c_void),
>,
__arg: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn exit(__status: ::std::os::raw::c_int);
}
extern "C" {
pub fn quick_exit(__status: ::std::os::raw::c_int);
}
extern "C" {
pub fn _Exit(__status: ::std::os::raw::c_int);
}
extern "C" {
pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn setenv(
__name: *const ::std::os::raw::c_char,
__value: *const ::std::os::raw::c_char,
__replace: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn clearenv() -> ::std::os::raw::c_int;
}
extern "C" {
pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn mkstemps(
__template: *mut ::std::os::raw::c_char,
__suffixlen: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn realpath(
__name: *const ::std::os::raw::c_char,
__resolved: *mut ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
pub type __compar_fn_t = ::std::option::Option<
unsafe extern "C" fn(
arg1: *const ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
>;
extern "C" {
pub fn bsearch(
__key: *const ::std::os::raw::c_void,
__base: *const ::std::os::raw::c_void,
__nmemb: usize,
__size: usize,
__compar: __compar_fn_t,
) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn qsort(
__base: *mut ::std::os::raw::c_void,
__nmemb: usize,
__size: usize,
__compar: __compar_fn_t,
);
}
extern "C" {
pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
}
extern "C" {
pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t;
}
extern "C" {
pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t;
}
extern "C" {
pub fn lldiv(
__numer: ::std::os::raw::c_longlong,
__denom: ::std::os::raw::c_longlong,
) -> lldiv_t;
}
extern "C" {
pub fn ecvt(
__value: f64,
__ndigit: ::std::os::raw::c_int,
__decpt: *mut ::std::os::raw::c_int,
__sign: *mut ::std::os::raw::c_int,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn fcvt(
__value: f64,
__ndigit: ::std::os::raw::c_int,
__decpt: *mut ::std::os::raw::c_int,
__sign: *mut ::std::os::raw::c_int,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn gcvt(
__value: f64,
__ndigit: ::std::os::raw::c_int,
__buf: *mut ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn qecvt(
__value: u128,
__ndigit: ::std::os::raw::c_int,
__decpt: *mut ::std::os::raw::c_int,
__sign: *mut ::std::os::raw::c_int,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn qfcvt(
__value: u128,
__ndigit: ::std::os::raw::c_int,
__decpt: *mut ::std::os::raw::c_int,
__sign: *mut ::std::os::raw::c_int,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn qgcvt(
__value: u128,
__ndigit: ::std::os::raw::c_int,
__buf: *mut ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn ecvt_r(
__value: f64,
__ndigit: ::std::os::raw::c_int,
__decpt: *mut ::std::os::raw::c_int,
__sign: *mut ::std::os::raw::c_int,
__buf: *mut ::std::os::raw::c_char,
__len: usize,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fcvt_r(
__value: f64,
__ndigit: ::std::os::raw::c_int,
__decpt: *mut ::std::os::raw::c_int,
__sign: *mut ::std::os::raw::c_int,
__buf: *mut ::std::os::raw::c_char,
__len: usize,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn qecvt_r(
__value: u128,
__ndigit: ::std::os::raw::c_int,
__decpt: *mut ::std::os::raw::c_int,
__sign: *mut ::std::os::raw::c_int,
__buf: *mut ::std::os::raw::c_char,
__len: usize,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn qfcvt_r(
__value: u128,
__ndigit: ::std::os::raw::c_int,
__decpt: *mut ::std::os::raw::c_int,
__sign: *mut ::std::os::raw::c_int,
__buf: *mut ::std::os::raw::c_char,
__len: usize,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn mbtowc(
__pwc: *mut wchar_t,
__s: *const ::std::os::raw::c_char,
__n: usize,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize;
}
extern "C" {
pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize;
}
extern "C" {
pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn getsubopt(
__optionp: *mut *mut ::std::os::raw::c_char,
__tokens: *const *mut ::std::os::raw::c_char,
__valuep: *mut *mut ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int)
-> ::std::os::raw::c_int;
}
extern "C" {
pub fn memcpy(
__dest: *mut ::std::os::raw::c_void,
__src: *const ::std::os::raw::c_void,
__n: ::std::os::raw::c_ulong,
) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn memmove(
__dest: *mut ::std::os::raw::c_void,
__src: *const ::std::os::raw::c_void,
__n: ::std::os::raw::c_ulong,
) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn memccpy(
__dest: *mut ::std::os::raw::c_void,
__src: *const ::std::os::raw::c_void,
__c: ::std::os::raw::c_int,
__n: usize,
) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn memset(
__s: *mut ::std::os::raw::c_void,
__c: ::std::os::raw::c_int,
__n: ::std::os::raw::c_ulong,
) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn memcmp(
__s1: *const ::std::os::raw::c_void,
__s2: *const ::std::os::raw::c_void,
__n: ::std::os::raw::c_ulong,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn memchr(
__s: *const ::std::os::raw::c_void,
__c: ::std::os::raw::c_int,
__n: ::std::os::raw::c_ulong,
) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn strcpy(
__dest: *mut ::std::os::raw::c_char,
__src: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn strncpy(
__dest: *mut ::std::os::raw::c_char,
__src: *const ::std::os::raw::c_char,
__n: ::std::os::raw::c_ulong,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn strcat(
__dest: *mut ::std::os::raw::c_char,
__src: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn strncat(
__dest: *mut ::std::os::raw::c_char,
__src: *const ::std::os::raw::c_char,
__n: ::std::os::raw::c_ulong,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn strcmp(
__s1: *const ::std::os::raw::c_char,
__s2: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn strncmp(
__s1: *const ::std::os::raw::c_char,
__s2: *const ::std::os::raw::c_char,
__n: ::std::os::raw::c_ulong,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn strcoll(
__s1: *const ::std::os::raw::c_char,
__s2: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn strxfrm(
__dest: *mut ::std::os::raw::c_char,
__src: *const ::std::os::raw::c_char,
__n: ::std::os::raw::c_ulong,
) -> ::std::os::raw::c_ulong;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __locale_struct {
pub __locales: [*mut __locale_data; 13usize],
pub __ctype_b: *const ::std::os::raw::c_ushort,
pub __ctype_tolower: *const ::std::os::raw::c_int,
pub __ctype_toupper: *const ::std::os::raw::c_int,
pub __names: [*const ::std::os::raw::c_char; 13usize],
}
pub type __locale_t = *mut __locale_struct;
pub type locale_t = __locale_t;
extern "C" {
pub fn strcoll_l(
__s1: *const ::std::os::raw::c_char,
__s2: *const ::std::os::raw::c_char,
__l: locale_t,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn strxfrm_l(
__dest: *mut ::std::os::raw::c_char,
__src: *const ::std::os::raw::c_char,
__n: usize,
__l: locale_t,
) -> usize;
}
extern "C" {
pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn strndup(
__string: *const ::std::os::raw::c_char,
__n: ::std::os::raw::c_ulong,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn strchr(
__s: *const ::std::os::raw::c_char,
__c: ::std::os::raw::c_int,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn strrchr(
__s: *const ::std::os::raw::c_char,
__c: ::std::os::raw::c_int,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn strcspn(
__s: *const ::std::os::raw::c_char,
__reject: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_ulong;
}
extern "C" {
pub fn strspn(
__s: *const ::std::os::raw::c_char,
__accept: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_ulong;
}
extern "C" {
pub fn strpbrk(
__s: *const ::std::os::raw::c_char,
__accept: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn strstr(
__haystack: *const ::std::os::raw::c_char,
__needle: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn strtok(
__s: *mut ::std::os::raw::c_char,
__delim: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn __strtok_r(
__s: *mut ::std::os::raw::c_char,
__delim: *const ::std::os::raw::c_char,
__save_ptr: *mut *mut ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn strtok_r(
__s: *mut ::std::os::raw::c_char,
__delim: *const ::std::os::raw::c_char,
__save_ptr: *mut *mut ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong;
}
extern "C" {
pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize;
}
extern "C" {
pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
}
extern "C" {
#[link_name = "\u{1}__xpg_strerror_r"]
pub fn strerror_r(
__errnum: ::std::os::raw::c_int,
__buf: *mut ::std::os::raw::c_char,
__buflen: usize,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn strerror_l(
__errnum: ::std::os::raw::c_int,
__l: locale_t,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn bcmp(
__s1: *const ::std::os::raw::c_void,
__s2: *const ::std::os::raw::c_void,
__n: usize,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn bcopy(
__src: *const ::std::os::raw::c_void,
__dest: *mut ::std::os::raw::c_void,
__n: usize,
);
}
extern "C" {
pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong);
}
extern "C" {
pub fn index(
__s: *const ::std::os::raw::c_char,
__c: ::std::os::raw::c_int,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn rindex(
__s: *const ::std::os::raw::c_char,
__c: ::std::os::raw::c_int,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn strcasecmp(
__s1: *const ::std::os::raw::c_char,
__s2: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn strncasecmp(
__s1: *const ::std::os::raw::c_char,
__s2: *const ::std::os::raw::c_char,
__n: ::std::os::raw::c_ulong,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn strcasecmp_l(
__s1: *const ::std::os::raw::c_char,
__s2: *const ::std::os::raw::c_char,
__loc: locale_t,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn strncasecmp_l(
__s1: *const ::std::os::raw::c_char,
__s2: *const ::std::os::raw::c_char,
__n: usize,
__loc: locale_t,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize);
}
extern "C" {
pub fn strsep(
__stringp: *mut *mut ::std::os::raw::c_char,
__delim: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn __stpcpy(
__dest: *mut ::std::os::raw::c_char,
__src: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn stpcpy(
__dest: *mut ::std::os::raw::c_char,
__src: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn __stpncpy(
__dest: *mut ::std::os::raw::c_char,
__src: *const ::std::os::raw::c_char,
__n: usize,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn stpncpy(
__dest: *mut ::std::os::raw::c_char,
__src: *const ::std::os::raw::c_char,
__n: ::std::os::raw::c_ulong,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn av_log2(v: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_log2_16bit(v: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Copy, Clone)]
pub struct max_align_t {
pub __clang_max_align_nonce1: ::std::os::raw::c_longlong,
pub __bindgen_padding_0: u64,
pub __clang_max_align_nonce2: u128,
}
extern "C" {
pub fn av_strerror(
errnum: ::std::os::raw::c_int,
errbuf: *mut ::std::os::raw::c_char,
errbuf_size: usize,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_malloc(size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn av_mallocz(size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn av_malloc_array(nmemb: usize, size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn av_mallocz_array(nmemb: usize, size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn av_calloc(nmemb: usize, size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn av_realloc(ptr: *mut ::std::os::raw::c_void, size: usize)
-> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn av_reallocp(ptr: *mut ::std::os::raw::c_void, size: usize) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_realloc_f(
ptr: *mut ::std::os::raw::c_void,
nelem: usize,
elsize: usize,
) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn av_realloc_array(
ptr: *mut ::std::os::raw::c_void,
nmemb: usize,
size: usize,
) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn av_reallocp_array(
ptr: *mut ::std::os::raw::c_void,
nmemb: usize,
size: usize,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_fast_realloc(
ptr: *mut ::std::os::raw::c_void,
size: *mut ::std::os::raw::c_uint,
min_size: usize,
) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn av_fast_malloc(
ptr: *mut ::std::os::raw::c_void,
size: *mut ::std::os::raw::c_uint,
min_size: usize,
);
}
extern "C" {
pub fn av_fast_mallocz(
ptr: *mut ::std::os::raw::c_void,
size: *mut ::std::os::raw::c_uint,
min_size: usize,
);
}
extern "C" {
pub fn av_free(ptr: *mut ::std::os::raw::c_void);
}
extern "C" {
pub fn av_freep(ptr: *mut ::std::os::raw::c_void);
}
extern "C" {
pub fn av_strdup(s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn av_strndup(s: *const ::std::os::raw::c_char, len: usize) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn av_memdup(p: *const ::std::os::raw::c_void, size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn av_memcpy_backptr(dst: *mut u8, back: ::std::os::raw::c_int, cnt: ::std::os::raw::c_int);
}
extern "C" {
pub fn av_dynarray_add(
tab_ptr: *mut ::std::os::raw::c_void,
nb_ptr: *mut ::std::os::raw::c_int,
elem: *mut ::std::os::raw::c_void,
);
}
extern "C" {
pub fn av_dynarray_add_nofree(
tab_ptr: *mut ::std::os::raw::c_void,
nb_ptr: *mut ::std::os::raw::c_int,
elem: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_dynarray2_add(
tab_ptr: *mut *mut ::std::os::raw::c_void,
nb_ptr: *mut ::std::os::raw::c_int,
elem_size: usize,
elem_data: *const u8,
) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn av_max_alloc(max: usize);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVRational {
pub num: ::std::os::raw::c_int,
pub den: ::std::os::raw::c_int,
}
extern "C" {
pub fn av_reduce(
dst_num: *mut ::std::os::raw::c_int,
dst_den: *mut ::std::os::raw::c_int,
num: i64,
den: i64,
max: i64,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_mul_q(b: AVRational, c: AVRational) -> AVRational;
}
extern "C" {
pub fn av_div_q(b: AVRational, c: AVRational) -> AVRational;
}
extern "C" {
pub fn av_add_q(b: AVRational, c: AVRational) -> AVRational;
}
extern "C" {
pub fn av_sub_q(b: AVRational, c: AVRational) -> AVRational;
}
extern "C" {
pub fn av_d2q(d: f64, max: ::std::os::raw::c_int) -> AVRational;
}
extern "C" {
pub fn av_nearer_q(q: AVRational, q1: AVRational, q2: AVRational) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_find_nearest_q_idx(q: AVRational, q_list: *const AVRational)
-> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_q2intfloat(q: AVRational) -> u32;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union av_intfloat32 {
pub i: u32,
pub f: f32,
_bindgen_union_align: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union av_intfloat64 {
pub i: u64,
pub f: f64,
_bindgen_union_align: u64,
}
pub const AVRounding_AV_ROUND_ZERO: AVRounding = 0;
pub const AVRounding_AV_ROUND_INF: AVRounding = 1;
pub const AVRounding_AV_ROUND_DOWN: AVRounding = 2;
pub const AVRounding_AV_ROUND_UP: AVRounding = 3;
pub const AVRounding_AV_ROUND_NEAR_INF: AVRounding = 5;
pub const AVRounding_AV_ROUND_PASS_MINMAX: AVRounding = 8192;
pub type AVRounding = u32;
extern "C" {
pub fn av_gcd(a: i64, b: i64) -> i64;
}
extern "C" {
pub fn av_rescale(a: i64, b: i64, c: i64) -> i64;
}
extern "C" {
pub fn av_rescale_rnd(a: i64, b: i64, c: i64, rnd: AVRounding) -> i64;
}
extern "C" {
pub fn av_rescale_q(a: i64, bq: AVRational, cq: AVRational) -> i64;
}
extern "C" {
pub fn av_rescale_q_rnd(a: i64, bq: AVRational, cq: AVRational, rnd: AVRounding) -> i64;
}
extern "C" {
pub fn av_compare_ts(
ts_a: i64,
tb_a: AVRational,
ts_b: i64,
tb_b: AVRational,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_compare_mod(a: u64, b: u64, mod_: u64) -> i64;
}
extern "C" {
pub fn av_rescale_delta(
in_tb: AVRational,
in_ts: i64,
fs_tb: AVRational,
duration: ::std::os::raw::c_int,
last: *mut i64,
out_tb: AVRational,
) -> i64;
}
extern "C" {
pub fn av_add_stable(ts_tb: AVRational, ts: i64, inc_tb: AVRational, inc: i64) -> i64;
}
pub const AVClassCategory_AV_CLASS_CATEGORY_NA: AVClassCategory = 0;
pub const AVClassCategory_AV_CLASS_CATEGORY_INPUT: AVClassCategory = 1;
pub const AVClassCategory_AV_CLASS_CATEGORY_OUTPUT: AVClassCategory = 2;
pub const AVClassCategory_AV_CLASS_CATEGORY_MUXER: AVClassCategory = 3;
pub const AVClassCategory_AV_CLASS_CATEGORY_DEMUXER: AVClassCategory = 4;
pub const AVClassCategory_AV_CLASS_CATEGORY_ENCODER: AVClassCategory = 5;
pub const AVClassCategory_AV_CLASS_CATEGORY_DECODER: AVClassCategory = 6;
pub const AVClassCategory_AV_CLASS_CATEGORY_FILTER: AVClassCategory = 7;
pub const AVClassCategory_AV_CLASS_CATEGORY_BITSTREAM_FILTER: AVClassCategory = 8;
pub const AVClassCategory_AV_CLASS_CATEGORY_SWSCALER: AVClassCategory = 9;
pub const AVClassCategory_AV_CLASS_CATEGORY_SWRESAMPLER: AVClassCategory = 10;
pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT: AVClassCategory = 40;
pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT: AVClassCategory = 41;
pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT: AVClassCategory = 42;
pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT: AVClassCategory = 43;
pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_OUTPUT: AVClassCategory = 44;
pub const AVClassCategory_AV_CLASS_CATEGORY_DEVICE_INPUT: AVClassCategory = 45;
pub const AVClassCategory_AV_CLASS_CATEGORY_NB: AVClassCategory = 46;
pub type AVClassCategory = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVOptionRanges {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVClass {
pub class_name: *const ::std::os::raw::c_char,
pub item_name: ::std::option::Option<
unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> *const ::std::os::raw::c_char,
>,
pub option: *mut AVOption,
pub version: ::std::os::raw::c_int,
pub log_level_offset_offset: ::std::os::raw::c_int,
pub parent_log_context_offset: ::std::os::raw::c_int,
pub child_next: ::std::option::Option<
unsafe extern "C" fn(
obj: *mut ::std::os::raw::c_void,
prev: *mut ::std::os::raw::c_void,
) -> *mut ::std::os::raw::c_void,
>,
pub child_class_next:
::std::option::Option<unsafe extern "C" fn(prev: *const AVClass) -> *const AVClass>,
pub category: AVClassCategory,
pub get_category: ::std::option::Option<
unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> AVClassCategory,
>,
pub query_ranges: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut *mut AVOptionRanges,
obj: *mut ::std::os::raw::c_void,
key: *const ::std::os::raw::c_char,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>,
}
extern "C" {
pub fn av_log(
avcl: *mut ::std::os::raw::c_void,
level: ::std::os::raw::c_int,
fmt: *const ::std::os::raw::c_char,
...
);
}
extern "C" {
pub fn av_vlog(
avcl: *mut ::std::os::raw::c_void,
level: ::std::os::raw::c_int,
fmt: *const ::std::os::raw::c_char,
vl: *mut __va_list_tag,
);
}
extern "C" {
pub fn av_log_get_level() -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_log_set_level(level: ::std::os::raw::c_int);
}
extern "C" {
pub fn av_log_set_callback(
callback: ::std::option::Option<
unsafe extern "C" fn(
callback: *mut ::std::os::raw::c_void,
arg1: ::std::os::raw::c_int,
arg2: *const ::std::os::raw::c_char,
arg3: *mut __va_list_tag,
),
>,
);
}
extern "C" {
pub fn av_log_default_callback(
avcl: *mut ::std::os::raw::c_void,
level: ::std::os::raw::c_int,
fmt: *const ::std::os::raw::c_char,
vl: *mut __va_list_tag,
);
}
extern "C" {
pub fn av_default_item_name(ctx: *mut ::std::os::raw::c_void) -> *const ::std::os::raw::c_char;
}
extern "C" {
pub fn av_default_get_category(ptr: *mut ::std::os::raw::c_void) -> AVClassCategory;
}
extern "C" {
pub fn av_log_format_line(
ptr: *mut ::std::os::raw::c_void,
level: ::std::os::raw::c_int,
fmt: *const ::std::os::raw::c_char,
vl: *mut __va_list_tag,
line: *mut ::std::os::raw::c_char,
line_size: ::std::os::raw::c_int,
print_prefix: *mut ::std::os::raw::c_int,
);
}
extern "C" {
pub fn av_log_format_line2(
ptr: *mut ::std::os::raw::c_void,
level: ::std::os::raw::c_int,
fmt: *const ::std::os::raw::c_char,
vl: *mut __va_list_tag,
line: *mut ::std::os::raw::c_char,
line_size: ::std::os::raw::c_int,
print_prefix: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_log_set_flags(arg: ::std::os::raw::c_int);
}
extern "C" {
pub fn av_log_get_flags() -> ::std::os::raw::c_int;
}
pub const AVPixelFormat_AV_PIX_FMT_NONE: AVPixelFormat = -1;
pub const AVPixelFormat_AV_PIX_FMT_YUV420P: AVPixelFormat = 0;
pub const AVPixelFormat_AV_PIX_FMT_YUYV422: AVPixelFormat = 1;
pub const AVPixelFormat_AV_PIX_FMT_RGB24: AVPixelFormat = 2;
pub const AVPixelFormat_AV_PIX_FMT_BGR24: AVPixelFormat = 3;
pub const AVPixelFormat_AV_PIX_FMT_YUV422P: AVPixelFormat = 4;
pub const AVPixelFormat_AV_PIX_FMT_YUV444P: AVPixelFormat = 5;
pub const AVPixelFormat_AV_PIX_FMT_YUV410P: AVPixelFormat = 6;
pub const AVPixelFormat_AV_PIX_FMT_YUV411P: AVPixelFormat = 7;
pub const AVPixelFormat_AV_PIX_FMT_GRAY8: AVPixelFormat = 8;
pub const AVPixelFormat_AV_PIX_FMT_MONOWHITE: AVPixelFormat = 9;
pub const AVPixelFormat_AV_PIX_FMT_MONOBLACK: AVPixelFormat = 10;
pub const AVPixelFormat_AV_PIX_FMT_PAL8: AVPixelFormat = 11;
pub const AVPixelFormat_AV_PIX_FMT_YUVJ420P: AVPixelFormat = 12;
pub const AVPixelFormat_AV_PIX_FMT_YUVJ422P: AVPixelFormat = 13;
pub const AVPixelFormat_AV_PIX_FMT_YUVJ444P: AVPixelFormat = 14;
pub const AVPixelFormat_AV_PIX_FMT_UYVY422: AVPixelFormat = 15;
pub const AVPixelFormat_AV_PIX_FMT_UYYVYY411: AVPixelFormat = 16;
pub const AVPixelFormat_AV_PIX_FMT_BGR8: AVPixelFormat = 17;
pub const AVPixelFormat_AV_PIX_FMT_BGR4: AVPixelFormat = 18;
pub const AVPixelFormat_AV_PIX_FMT_BGR4_BYTE: AVPixelFormat = 19;
pub const AVPixelFormat_AV_PIX_FMT_RGB8: AVPixelFormat = 20;
pub const AVPixelFormat_AV_PIX_FMT_RGB4: AVPixelFormat = 21;
pub const AVPixelFormat_AV_PIX_FMT_RGB4_BYTE: AVPixelFormat = 22;
pub const AVPixelFormat_AV_PIX_FMT_NV12: AVPixelFormat = 23;
pub const AVPixelFormat_AV_PIX_FMT_NV21: AVPixelFormat = 24;
pub const AVPixelFormat_AV_PIX_FMT_ARGB: AVPixelFormat = 25;
pub const AVPixelFormat_AV_PIX_FMT_RGBA: AVPixelFormat = 26;
pub const AVPixelFormat_AV_PIX_FMT_ABGR: AVPixelFormat = 27;
pub const AVPixelFormat_AV_PIX_FMT_BGRA: AVPixelFormat = 28;
pub const AVPixelFormat_AV_PIX_FMT_GRAY16BE: AVPixelFormat = 29;
pub const AVPixelFormat_AV_PIX_FMT_GRAY16LE: AVPixelFormat = 30;
pub const AVPixelFormat_AV_PIX_FMT_YUV440P: AVPixelFormat = 31;
pub const AVPixelFormat_AV_PIX_FMT_YUVJ440P: AVPixelFormat = 32;
pub const AVPixelFormat_AV_PIX_FMT_YUVA420P: AVPixelFormat = 33;
pub const AVPixelFormat_AV_PIX_FMT_RGB48BE: AVPixelFormat = 34;
pub const AVPixelFormat_AV_PIX_FMT_RGB48LE: AVPixelFormat = 35;
pub const AVPixelFormat_AV_PIX_FMT_RGB565BE: AVPixelFormat = 36;
pub const AVPixelFormat_AV_PIX_FMT_RGB565LE: AVPixelFormat = 37;
pub const AVPixelFormat_AV_PIX_FMT_RGB555BE: AVPixelFormat = 38;
pub const AVPixelFormat_AV_PIX_FMT_RGB555LE: AVPixelFormat = 39;
pub const AVPixelFormat_AV_PIX_FMT_BGR565BE: AVPixelFormat = 40;
pub const AVPixelFormat_AV_PIX_FMT_BGR565LE: AVPixelFormat = 41;
pub const AVPixelFormat_AV_PIX_FMT_BGR555BE: AVPixelFormat = 42;
pub const AVPixelFormat_AV_PIX_FMT_BGR555LE: AVPixelFormat = 43;
pub const AVPixelFormat_AV_PIX_FMT_VAAPI_MOCO: AVPixelFormat = 44;
pub const AVPixelFormat_AV_PIX_FMT_VAAPI_IDCT: AVPixelFormat = 45;
pub const AVPixelFormat_AV_PIX_FMT_VAAPI_VLD: AVPixelFormat = 46;
pub const AVPixelFormat_AV_PIX_FMT_VAAPI: AVPixelFormat = 46;
pub const AVPixelFormat_AV_PIX_FMT_YUV420P16LE: AVPixelFormat = 47;
pub const AVPixelFormat_AV_PIX_FMT_YUV420P16BE: AVPixelFormat = 48;
pub const AVPixelFormat_AV_PIX_FMT_YUV422P16LE: AVPixelFormat = 49;
pub const AVPixelFormat_AV_PIX_FMT_YUV422P16BE: AVPixelFormat = 50;
pub const AVPixelFormat_AV_PIX_FMT_YUV444P16LE: AVPixelFormat = 51;
pub const AVPixelFormat_AV_PIX_FMT_YUV444P16BE: AVPixelFormat = 52;
pub const AVPixelFormat_AV_PIX_FMT_DXVA2_VLD: AVPixelFormat = 53;
pub const AVPixelFormat_AV_PIX_FMT_RGB444LE: AVPixelFormat = 54;
pub const AVPixelFormat_AV_PIX_FMT_RGB444BE: AVPixelFormat = 55;
pub const AVPixelFormat_AV_PIX_FMT_BGR444LE: AVPixelFormat = 56;
pub const AVPixelFormat_AV_PIX_FMT_BGR444BE: AVPixelFormat = 57;
pub const AVPixelFormat_AV_PIX_FMT_YA8: AVPixelFormat = 58;
pub const AVPixelFormat_AV_PIX_FMT_Y400A: AVPixelFormat = 58;
pub const AVPixelFormat_AV_PIX_FMT_GRAY8A: AVPixelFormat = 58;
pub const AVPixelFormat_AV_PIX_FMT_BGR48BE: AVPixelFormat = 59;
pub const AVPixelFormat_AV_PIX_FMT_BGR48LE: AVPixelFormat = 60;
pub const AVPixelFormat_AV_PIX_FMT_YUV420P9BE: AVPixelFormat = 61;
pub const AVPixelFormat_AV_PIX_FMT_YUV420P9LE: AVPixelFormat = 62;
pub const AVPixelFormat_AV_PIX_FMT_YUV420P10BE: AVPixelFormat = 63;
pub const AVPixelFormat_AV_PIX_FMT_YUV420P10LE: AVPixelFormat = 64;
pub const AVPixelFormat_AV_PIX_FMT_YUV422P10BE: AVPixelFormat = 65;
pub const AVPixelFormat_AV_PIX_FMT_YUV422P10LE: AVPixelFormat = 66;
pub const AVPixelFormat_AV_PIX_FMT_YUV444P9BE: AVPixelFormat = 67;
pub const AVPixelFormat_AV_PIX_FMT_YUV444P9LE: AVPixelFormat = 68;
pub const AVPixelFormat_AV_PIX_FMT_YUV444P10BE: AVPixelFormat = 69;
pub const AVPixelFormat_AV_PIX_FMT_YUV444P10LE: AVPixelFormat = 70;
pub const AVPixelFormat_AV_PIX_FMT_YUV422P9BE: AVPixelFormat = 71;
pub const AVPixelFormat_AV_PIX_FMT_YUV422P9LE: AVPixelFormat = 72;
pub const AVPixelFormat_AV_PIX_FMT_GBRP: AVPixelFormat = 73;
pub const AVPixelFormat_AV_PIX_FMT_GBR24P: AVPixelFormat = 73;
pub const AVPixelFormat_AV_PIX_FMT_GBRP9BE: AVPixelFormat = 74;
pub const AVPixelFormat_AV_PIX_FMT_GBRP9LE: AVPixelFormat = 75;
pub const AVPixelFormat_AV_PIX_FMT_GBRP10BE: AVPixelFormat = 76;
pub const AVPixelFormat_AV_PIX_FMT_GBRP10LE: AVPixelFormat = 77;
pub const AVPixelFormat_AV_PIX_FMT_GBRP16BE: AVPixelFormat = 78;
pub const AVPixelFormat_AV_PIX_FMT_GBRP16LE: AVPixelFormat = 79;
pub const AVPixelFormat_AV_PIX_FMT_YUVA422P: AVPixelFormat = 80;
pub const AVPixelFormat_AV_PIX_FMT_YUVA444P: AVPixelFormat = 81;
pub const AVPixelFormat_AV_PIX_FMT_YUVA420P9BE: AVPixelFormat = 82;
pub const AVPixelFormat_AV_PIX_FMT_YUVA420P9LE: AVPixelFormat = 83;
pub const AVPixelFormat_AV_PIX_FMT_YUVA422P9BE: AVPixelFormat = 84;
pub const AVPixelFormat_AV_PIX_FMT_YUVA422P9LE: AVPixelFormat = 85;
pub const AVPixelFormat_AV_PIX_FMT_YUVA444P9BE: AVPixelFormat = 86;
pub const AVPixelFormat_AV_PIX_FMT_YUVA444P9LE: AVPixelFormat = 87;
pub const AVPixelFormat_AV_PIX_FMT_YUVA420P10BE: AVPixelFormat = 88;
pub const AVPixelFormat_AV_PIX_FMT_YUVA420P10LE: AVPixelFormat = 89;
pub const AVPixelFormat_AV_PIX_FMT_YUVA422P10BE: AVPixelFormat = 90;
pub const AVPixelFormat_AV_PIX_FMT_YUVA422P10LE: AVPixelFormat = 91;
pub const AVPixelFormat_AV_PIX_FMT_YUVA444P10BE: AVPixelFormat = 92;
pub const AVPixelFormat_AV_PIX_FMT_YUVA444P10LE: AVPixelFormat = 93;
pub const AVPixelFormat_AV_PIX_FMT_YUVA420P16BE: AVPixelFormat = 94;
pub const AVPixelFormat_AV_PIX_FMT_YUVA420P16LE: AVPixelFormat = 95;
pub const AVPixelFormat_AV_PIX_FMT_YUVA422P16BE: AVPixelFormat = 96;
pub const AVPixelFormat_AV_PIX_FMT_YUVA422P16LE: AVPixelFormat = 97;
pub const AVPixelFormat_AV_PIX_FMT_YUVA444P16BE: AVPixelFormat = 98;
pub const AVPixelFormat_AV_PIX_FMT_YUVA444P16LE: AVPixelFormat = 99;
pub const AVPixelFormat_AV_PIX_FMT_VDPAU: AVPixelFormat = 100;
pub const AVPixelFormat_AV_PIX_FMT_XYZ12LE: AVPixelFormat = 101;
pub const AVPixelFormat_AV_PIX_FMT_XYZ12BE: AVPixelFormat = 102;
pub const AVPixelFormat_AV_PIX_FMT_NV16: AVPixelFormat = 103;
pub const AVPixelFormat_AV_PIX_FMT_NV20LE: AVPixelFormat = 104;
pub const AVPixelFormat_AV_PIX_FMT_NV20BE: AVPixelFormat = 105;
pub const AVPixelFormat_AV_PIX_FMT_RGBA64BE: AVPixelFormat = 106;
pub const AVPixelFormat_AV_PIX_FMT_RGBA64LE: AVPixelFormat = 107;
pub const AVPixelFormat_AV_PIX_FMT_BGRA64BE: AVPixelFormat = 108;
pub const AVPixelFormat_AV_PIX_FMT_BGRA64LE: AVPixelFormat = 109;
pub const AVPixelFormat_AV_PIX_FMT_YVYU422: AVPixelFormat = 110;
pub const AVPixelFormat_AV_PIX_FMT_YA16BE: AVPixelFormat = 111;
pub const AVPixelFormat_AV_PIX_FMT_YA16LE: AVPixelFormat = 112;
pub const AVPixelFormat_AV_PIX_FMT_GBRAP: AVPixelFormat = 113;
pub const AVPixelFormat_AV_PIX_FMT_GBRAP16BE: AVPixelFormat = 114;
pub const AVPixelFormat_AV_PIX_FMT_GBRAP16LE: AVPixelFormat = 115;
pub const AVPixelFormat_AV_PIX_FMT_QSV: AVPixelFormat = 116;
pub const AVPixelFormat_AV_PIX_FMT_MMAL: AVPixelFormat = 117;
pub const AVPixelFormat_AV_PIX_FMT_D3D11VA_VLD: AVPixelFormat = 118;
pub const AVPixelFormat_AV_PIX_FMT_CUDA: AVPixelFormat = 119;
pub const AVPixelFormat_AV_PIX_FMT_0RGB: AVPixelFormat = 120;
pub const AVPixelFormat_AV_PIX_FMT_RGB0: AVPixelFormat = 121;
pub const AVPixelFormat_AV_PIX_FMT_0BGR: AVPixelFormat = 122;
pub const AVPixelFormat_AV_PIX_FMT_BGR0: AVPixelFormat = 123;
pub const AVPixelFormat_AV_PIX_FMT_YUV420P12BE: AVPixelFormat = 124;
pub const AVPixelFormat_AV_PIX_FMT_YUV420P12LE: AVPixelFormat = 125;
pub const AVPixelFormat_AV_PIX_FMT_YUV420P14BE: AVPixelFormat = 126;
pub const AVPixelFormat_AV_PIX_FMT_YUV420P14LE: AVPixelFormat = 127;
pub const AVPixelFormat_AV_PIX_FMT_YUV422P12BE: AVPixelFormat = 128;
pub const AVPixelFormat_AV_PIX_FMT_YUV422P12LE: AVPixelFormat = 129;
pub const AVPixelFormat_AV_PIX_FMT_YUV422P14BE: AVPixelFormat = 130;
pub const AVPixelFormat_AV_PIX_FMT_YUV422P14LE: AVPixelFormat = 131;
pub const AVPixelFormat_AV_PIX_FMT_YUV444P12BE: AVPixelFormat = 132;
pub const AVPixelFormat_AV_PIX_FMT_YUV444P12LE: AVPixelFormat = 133;
pub const AVPixelFormat_AV_PIX_FMT_YUV444P14BE: AVPixelFormat = 134;
pub const AVPixelFormat_AV_PIX_FMT_YUV444P14LE: AVPixelFormat = 135;
pub const AVPixelFormat_AV_PIX_FMT_GBRP12BE: AVPixelFormat = 136;
pub const AVPixelFormat_AV_PIX_FMT_GBRP12LE: AVPixelFormat = 137;
pub const AVPixelFormat_AV_PIX_FMT_GBRP14BE: AVPixelFormat = 138;
pub const AVPixelFormat_AV_PIX_FMT_GBRP14LE: AVPixelFormat = 139;
pub const AVPixelFormat_AV_PIX_FMT_YUVJ411P: AVPixelFormat = 140;
pub const AVPixelFormat_AV_PIX_FMT_BAYER_BGGR8: AVPixelFormat = 141;
pub const AVPixelFormat_AV_PIX_FMT_BAYER_RGGB8: AVPixelFormat = 142;
pub const AVPixelFormat_AV_PIX_FMT_BAYER_GBRG8: AVPixelFormat = 143;
pub const AVPixelFormat_AV_PIX_FMT_BAYER_GRBG8: AVPixelFormat = 144;
pub const AVPixelFormat_AV_PIX_FMT_BAYER_BGGR16LE: AVPixelFormat = 145;
pub const AVPixelFormat_AV_PIX_FMT_BAYER_BGGR16BE: AVPixelFormat = 146;
pub const AVPixelFormat_AV_PIX_FMT_BAYER_RGGB16LE: AVPixelFormat = 147;
pub const AVPixelFormat_AV_PIX_FMT_BAYER_RGGB16BE: AVPixelFormat = 148;
pub const AVPixelFormat_AV_PIX_FMT_BAYER_GBRG16LE: AVPixelFormat = 149;
pub const AVPixelFormat_AV_PIX_FMT_BAYER_GBRG16BE: AVPixelFormat = 150;
pub const AVPixelFormat_AV_PIX_FMT_BAYER_GRBG16LE: AVPixelFormat = 151;
pub const AVPixelFormat_AV_PIX_FMT_BAYER_GRBG16BE: AVPixelFormat = 152;
pub const AVPixelFormat_AV_PIX_FMT_XVMC: AVPixelFormat = 153;
pub const AVPixelFormat_AV_PIX_FMT_YUV440P10LE: AVPixelFormat = 154;
pub const AVPixelFormat_AV_PIX_FMT_YUV440P10BE: AVPixelFormat = 155;
pub const AVPixelFormat_AV_PIX_FMT_YUV440P12LE: AVPixelFormat = 156;
pub const AVPixelFormat_AV_PIX_FMT_YUV440P12BE: AVPixelFormat = 157;
pub const AVPixelFormat_AV_PIX_FMT_AYUV64LE: AVPixelFormat = 158;
pub const AVPixelFormat_AV_PIX_FMT_AYUV64BE: AVPixelFormat = 159;
pub const AVPixelFormat_AV_PIX_FMT_VIDEOTOOLBOX: AVPixelFormat = 160;
pub const AVPixelFormat_AV_PIX_FMT_P010LE: AVPixelFormat = 161;
pub const AVPixelFormat_AV_PIX_FMT_P010BE: AVPixelFormat = 162;
pub const AVPixelFormat_AV_PIX_FMT_GBRAP12BE: AVPixelFormat = 163;
pub const AVPixelFormat_AV_PIX_FMT_GBRAP12LE: AVPixelFormat = 164;
pub const AVPixelFormat_AV_PIX_FMT_GBRAP10BE: AVPixelFormat = 165;
pub const AVPixelFormat_AV_PIX_FMT_GBRAP10LE: AVPixelFormat = 166;
pub const AVPixelFormat_AV_PIX_FMT_MEDIACODEC: AVPixelFormat = 167;
pub const AVPixelFormat_AV_PIX_FMT_GRAY12BE: AVPixelFormat = 168;
pub const AVPixelFormat_AV_PIX_FMT_GRAY12LE: AVPixelFormat = 169;
pub const AVPixelFormat_AV_PIX_FMT_GRAY10BE: AVPixelFormat = 170;
pub const AVPixelFormat_AV_PIX_FMT_GRAY10LE: AVPixelFormat = 171;
pub const AVPixelFormat_AV_PIX_FMT_P016LE: AVPixelFormat = 172;
pub const AVPixelFormat_AV_PIX_FMT_P016BE: AVPixelFormat = 173;
pub const AVPixelFormat_AV_PIX_FMT_D3D11: AVPixelFormat = 174;
pub const AVPixelFormat_AV_PIX_FMT_GRAY9BE: AVPixelFormat = 175;
pub const AVPixelFormat_AV_PIX_FMT_GRAY9LE: AVPixelFormat = 176;
pub const AVPixelFormat_AV_PIX_FMT_GBRPF32BE: AVPixelFormat = 177;
pub const AVPixelFormat_AV_PIX_FMT_GBRPF32LE: AVPixelFormat = 178;
pub const AVPixelFormat_AV_PIX_FMT_GBRAPF32BE: AVPixelFormat = 179;
pub const AVPixelFormat_AV_PIX_FMT_GBRAPF32LE: AVPixelFormat = 180;
pub const AVPixelFormat_AV_PIX_FMT_DRM_PRIME: AVPixelFormat = 181;
pub const AVPixelFormat_AV_PIX_FMT_OPENCL: AVPixelFormat = 182;
pub const AVPixelFormat_AV_PIX_FMT_GRAY14BE: AVPixelFormat = 183;
pub const AVPixelFormat_AV_PIX_FMT_GRAY14LE: AVPixelFormat = 184;
pub const AVPixelFormat_AV_PIX_FMT_GRAYF32BE: AVPixelFormat = 185;
pub const AVPixelFormat_AV_PIX_FMT_GRAYF32LE: AVPixelFormat = 186;
pub const AVPixelFormat_AV_PIX_FMT_NB: AVPixelFormat = 187;
pub type AVPixelFormat = i32;
pub const AVColorPrimaries_AVCOL_PRI_RESERVED0: AVColorPrimaries = 0;
pub const AVColorPrimaries_AVCOL_PRI_BT709: AVColorPrimaries = 1;
pub const AVColorPrimaries_AVCOL_PRI_UNSPECIFIED: AVColorPrimaries = 2;
pub const AVColorPrimaries_AVCOL_PRI_RESERVED: AVColorPrimaries = 3;
pub const AVColorPrimaries_AVCOL_PRI_BT470M: AVColorPrimaries = 4;
pub const AVColorPrimaries_AVCOL_PRI_BT470BG: AVColorPrimaries = 5;
pub const AVColorPrimaries_AVCOL_PRI_SMPTE170M: AVColorPrimaries = 6;
pub const AVColorPrimaries_AVCOL_PRI_SMPTE240M: AVColorPrimaries = 7;
pub const AVColorPrimaries_AVCOL_PRI_FILM: AVColorPrimaries = 8;
pub const AVColorPrimaries_AVCOL_PRI_BT2020: AVColorPrimaries = 9;
pub const AVColorPrimaries_AVCOL_PRI_SMPTE428: AVColorPrimaries = 10;
pub const AVColorPrimaries_AVCOL_PRI_SMPTEST428_1: AVColorPrimaries = 10;
pub const AVColorPrimaries_AVCOL_PRI_SMPTE431: AVColorPrimaries = 11;
pub const AVColorPrimaries_AVCOL_PRI_SMPTE432: AVColorPrimaries = 12;
pub const AVColorPrimaries_AVCOL_PRI_JEDEC_P22: AVColorPrimaries = 22;
pub const AVColorPrimaries_AVCOL_PRI_NB: AVColorPrimaries = 23;
pub type AVColorPrimaries = u32;
pub const AVColorTransferCharacteristic_AVCOL_TRC_RESERVED0: AVColorTransferCharacteristic = 0;
pub const AVColorTransferCharacteristic_AVCOL_TRC_BT709: AVColorTransferCharacteristic = 1;
pub const AVColorTransferCharacteristic_AVCOL_TRC_UNSPECIFIED: AVColorTransferCharacteristic = 2;
pub const AVColorTransferCharacteristic_AVCOL_TRC_RESERVED: AVColorTransferCharacteristic = 3;
pub const AVColorTransferCharacteristic_AVCOL_TRC_GAMMA22: AVColorTransferCharacteristic = 4;
pub const AVColorTransferCharacteristic_AVCOL_TRC_GAMMA28: AVColorTransferCharacteristic = 5;
pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTE170M: AVColorTransferCharacteristic = 6;
pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTE240M: AVColorTransferCharacteristic = 7;
pub const AVColorTransferCharacteristic_AVCOL_TRC_LINEAR: AVColorTransferCharacteristic = 8;
pub const AVColorTransferCharacteristic_AVCOL_TRC_LOG: AVColorTransferCharacteristic = 9;
pub const AVColorTransferCharacteristic_AVCOL_TRC_LOG_SQRT: AVColorTransferCharacteristic = 10;
pub const AVColorTransferCharacteristic_AVCOL_TRC_IEC61966_2_4: AVColorTransferCharacteristic = 11;
pub const AVColorTransferCharacteristic_AVCOL_TRC_BT1361_ECG: AVColorTransferCharacteristic = 12;
pub const AVColorTransferCharacteristic_AVCOL_TRC_IEC61966_2_1: AVColorTransferCharacteristic = 13;
pub const AVColorTransferCharacteristic_AVCOL_TRC_BT2020_10: AVColorTransferCharacteristic = 14;
pub const AVColorTransferCharacteristic_AVCOL_TRC_BT2020_12: AVColorTransferCharacteristic = 15;
pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTE2084: AVColorTransferCharacteristic = 16;
pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTEST2084: AVColorTransferCharacteristic = 16;
pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTE428: AVColorTransferCharacteristic = 17;
pub const AVColorTransferCharacteristic_AVCOL_TRC_SMPTEST428_1: AVColorTransferCharacteristic = 17;
pub const AVColorTransferCharacteristic_AVCOL_TRC_ARIB_STD_B67: AVColorTransferCharacteristic = 18;
pub const AVColorTransferCharacteristic_AVCOL_TRC_NB: AVColorTransferCharacteristic = 19;
pub type AVColorTransferCharacteristic = u32;
pub const AVColorSpace_AVCOL_SPC_RGB: AVColorSpace = 0;
pub const AVColorSpace_AVCOL_SPC_BT709: AVColorSpace = 1;
pub const AVColorSpace_AVCOL_SPC_UNSPECIFIED: AVColorSpace = 2;
pub const AVColorSpace_AVCOL_SPC_RESERVED: AVColorSpace = 3;
pub const AVColorSpace_AVCOL_SPC_FCC: AVColorSpace = 4;
pub const AVColorSpace_AVCOL_SPC_BT470BG: AVColorSpace = 5;
pub const AVColorSpace_AVCOL_SPC_SMPTE170M: AVColorSpace = 6;
pub const AVColorSpace_AVCOL_SPC_SMPTE240M: AVColorSpace = 7;
pub const AVColorSpace_AVCOL_SPC_YCGCO: AVColorSpace = 8;
pub const AVColorSpace_AVCOL_SPC_YCOCG: AVColorSpace = 8;
pub const AVColorSpace_AVCOL_SPC_BT2020_NCL: AVColorSpace = 9;
pub const AVColorSpace_AVCOL_SPC_BT2020_CL: AVColorSpace = 10;
pub const AVColorSpace_AVCOL_SPC_SMPTE2085: AVColorSpace = 11;
pub const AVColorSpace_AVCOL_SPC_CHROMA_DERIVED_NCL: AVColorSpace = 12;
pub const AVColorSpace_AVCOL_SPC_CHROMA_DERIVED_CL: AVColorSpace = 13;
pub const AVColorSpace_AVCOL_SPC_ICTCP: AVColorSpace = 14;
pub const AVColorSpace_AVCOL_SPC_NB: AVColorSpace = 15;
pub type AVColorSpace = u32;
pub const AVColorRange_AVCOL_RANGE_UNSPECIFIED: AVColorRange = 0;
pub const AVColorRange_AVCOL_RANGE_MPEG: AVColorRange = 1;
pub const AVColorRange_AVCOL_RANGE_JPEG: AVColorRange = 2;
pub const AVColorRange_AVCOL_RANGE_NB: AVColorRange = 3;
pub type AVColorRange = u32;
pub const AVChromaLocation_AVCHROMA_LOC_UNSPECIFIED: AVChromaLocation = 0;
pub const AVChromaLocation_AVCHROMA_LOC_LEFT: AVChromaLocation = 1;
pub const AVChromaLocation_AVCHROMA_LOC_CENTER: AVChromaLocation = 2;
pub const AVChromaLocation_AVCHROMA_LOC_TOPLEFT: AVChromaLocation = 3;
pub const AVChromaLocation_AVCHROMA_LOC_TOP: AVChromaLocation = 4;
pub const AVChromaLocation_AVCHROMA_LOC_BOTTOMLEFT: AVChromaLocation = 5;
pub const AVChromaLocation_AVCHROMA_LOC_BOTTOM: AVChromaLocation = 6;
pub const AVChromaLocation_AVCHROMA_LOC_NB: AVChromaLocation = 7;
pub type AVChromaLocation = u32;
extern "C" {
pub fn av_int_list_length_for_size(
elsize: ::std::os::raw::c_uint,
list: *const ::std::os::raw::c_void,
term: u64,
) -> ::std::os::raw::c_uint;
}
extern "C" {
pub fn av_fopen_utf8(
path: *const ::std::os::raw::c_char,
mode: *const ::std::os::raw::c_char,
) -> *mut FILE;
}
extern "C" {
pub fn av_get_time_base_q() -> AVRational;
}
extern "C" {
pub fn av_fourcc_make_string(
buf: *mut ::std::os::raw::c_char,
fourcc: u32,
) -> *mut ::std::os::raw::c_char;
}
pub const AVSampleFormat_AV_SAMPLE_FMT_NONE: AVSampleFormat = -1;
pub const AVSampleFormat_AV_SAMPLE_FMT_U8: AVSampleFormat = 0;
pub const AVSampleFormat_AV_SAMPLE_FMT_S16: AVSampleFormat = 1;
pub const AVSampleFormat_AV_SAMPLE_FMT_S32: AVSampleFormat = 2;
pub const AVSampleFormat_AV_SAMPLE_FMT_FLT: AVSampleFormat = 3;
pub const AVSampleFormat_AV_SAMPLE_FMT_DBL: AVSampleFormat = 4;
pub const AVSampleFormat_AV_SAMPLE_FMT_U8P: AVSampleFormat = 5;
pub const AVSampleFormat_AV_SAMPLE_FMT_S16P: AVSampleFormat = 6;
pub const AVSampleFormat_AV_SAMPLE_FMT_S32P: AVSampleFormat = 7;
pub const AVSampleFormat_AV_SAMPLE_FMT_FLTP: AVSampleFormat = 8;
pub const AVSampleFormat_AV_SAMPLE_FMT_DBLP: AVSampleFormat = 9;
pub const AVSampleFormat_AV_SAMPLE_FMT_S64: AVSampleFormat = 10;
pub const AVSampleFormat_AV_SAMPLE_FMT_S64P: AVSampleFormat = 11;
pub const AVSampleFormat_AV_SAMPLE_FMT_NB: AVSampleFormat = 12;
pub type AVSampleFormat = i32;
extern "C" {
pub fn av_get_sample_fmt_name(sample_fmt: AVSampleFormat) -> *const ::std::os::raw::c_char;
}
extern "C" {
pub fn av_get_sample_fmt(name: *const ::std::os::raw::c_char) -> AVSampleFormat;
}
extern "C" {
pub fn av_get_alt_sample_fmt(
sample_fmt: AVSampleFormat,
planar: ::std::os::raw::c_int,
) -> AVSampleFormat;
}
extern "C" {
pub fn av_get_packed_sample_fmt(sample_fmt: AVSampleFormat) -> AVSampleFormat;
}
extern "C" {
pub fn av_get_planar_sample_fmt(sample_fmt: AVSampleFormat) -> AVSampleFormat;
}
extern "C" {
pub fn av_get_sample_fmt_string(
buf: *mut ::std::os::raw::c_char,
buf_size: ::std::os::raw::c_int,
sample_fmt: AVSampleFormat,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn av_get_bytes_per_sample(sample_fmt: AVSampleFormat) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_sample_fmt_is_planar(sample_fmt: AVSampleFormat) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_samples_get_buffer_size(
linesize: *mut ::std::os::raw::c_int,
nb_channels: ::std::os::raw::c_int,
nb_samples: ::std::os::raw::c_int,
sample_fmt: AVSampleFormat,
align: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_samples_fill_arrays(
audio_data: *mut *mut u8,
linesize: *mut ::std::os::raw::c_int,
buf: *const u8,
nb_channels: ::std::os::raw::c_int,
nb_samples: ::std::os::raw::c_int,
sample_fmt: AVSampleFormat,
align: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_samples_alloc(
audio_data: *mut *mut u8,
linesize: *mut ::std::os::raw::c_int,
nb_channels: ::std::os::raw::c_int,
nb_samples: ::std::os::raw::c_int,
sample_fmt: AVSampleFormat,
align: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_samples_alloc_array_and_samples(
audio_data: *mut *mut *mut u8,
linesize: *mut ::std::os::raw::c_int,
nb_channels: ::std::os::raw::c_int,
nb_samples: ::std::os::raw::c_int,
sample_fmt: AVSampleFormat,
align: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_samples_copy(
dst: *mut *mut u8,
src: *const *mut u8,
dst_offset: ::std::os::raw::c_int,
src_offset: ::std::os::raw::c_int,
nb_samples: ::std::os::raw::c_int,
nb_channels: ::std::os::raw::c_int,
sample_fmt: AVSampleFormat,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_samples_set_silence(
audio_data: *mut *mut u8,
offset: ::std::os::raw::c_int,
nb_samples: ::std::os::raw::c_int,
nb_channels: ::std::os::raw::c_int,
sample_fmt: AVSampleFormat,
) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVBuffer {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVBufferRef {
pub buffer: *mut AVBuffer,
pub data: *mut u8,
pub size: ::std::os::raw::c_int,
}
extern "C" {
pub fn av_buffer_alloc(size: ::std::os::raw::c_int) -> *mut AVBufferRef;
}
extern "C" {
pub fn av_buffer_allocz(size: ::std::os::raw::c_int) -> *mut AVBufferRef;
}
extern "C" {
pub fn av_buffer_create(
data: *mut u8,
size: ::std::os::raw::c_int,
free: ::std::option::Option<
unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, size: *mut u8),
>,
opaque: *mut ::std::os::raw::c_void,
flags: ::std::os::raw::c_int,
) -> *mut AVBufferRef;
}
extern "C" {
pub fn av_buffer_default_free(opaque: *mut ::std::os::raw::c_void, data: *mut u8);
}
extern "C" {
pub fn av_buffer_ref(buf: *mut AVBufferRef) -> *mut AVBufferRef;
}
extern "C" {
pub fn av_buffer_unref(buf: *mut *mut AVBufferRef);
}
extern "C" {
pub fn av_buffer_is_writable(buf: *const AVBufferRef) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_buffer_get_opaque(buf: *const AVBufferRef) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn av_buffer_get_ref_count(buf: *const AVBufferRef) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_buffer_make_writable(buf: *mut *mut AVBufferRef) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_buffer_realloc(
buf: *mut *mut AVBufferRef,
size: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVBufferPool {
_unused: [u8; 0],
}
extern "C" {
pub fn av_buffer_pool_init(
size: ::std::os::raw::c_int,
alloc: ::std::option::Option<
unsafe extern "C" fn(size: ::std::os::raw::c_int) -> *mut AVBufferRef,
>,
) -> *mut AVBufferPool;
}
extern "C" {
pub fn av_buffer_pool_init2(
size: ::std::os::raw::c_int,
opaque: *mut ::std::os::raw::c_void,
alloc: ::std::option::Option<
unsafe extern "C" fn(
size: *mut ::std::os::raw::c_void,
opaque: ::std::os::raw::c_int,
) -> *mut AVBufferRef,
>,
pool_free: ::std::option::Option<unsafe extern "C" fn(size: *mut ::std::os::raw::c_void)>,
) -> *mut AVBufferPool;
}
extern "C" {
pub fn av_buffer_pool_uninit(pool: *mut *mut AVBufferPool);
}
extern "C" {
pub fn av_buffer_pool_get(pool: *mut AVBufferPool) -> *mut AVBufferRef;
}
extern "C" {
pub fn av_get_cpu_flags() -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_force_cpu_flags(flags: ::std::os::raw::c_int);
}
extern "C" {
pub fn av_set_cpu_flags_mask(mask: ::std::os::raw::c_int);
}
extern "C" {
pub fn av_parse_cpu_flags(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_parse_cpu_caps(
flags: *mut ::std::os::raw::c_uint,
s: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_cpu_count() -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_cpu_max_align() -> usize;
}
pub const AVMatrixEncoding_AV_MATRIX_ENCODING_NONE: AVMatrixEncoding = 0;
pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DOLBY: AVMatrixEncoding = 1;
pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DPLII: AVMatrixEncoding = 2;
pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DPLIIX: AVMatrixEncoding = 3;
pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DPLIIZ: AVMatrixEncoding = 4;
pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DOLBYEX: AVMatrixEncoding = 5;
pub const AVMatrixEncoding_AV_MATRIX_ENCODING_DOLBYHEADPHONE: AVMatrixEncoding = 6;
pub const AVMatrixEncoding_AV_MATRIX_ENCODING_NB: AVMatrixEncoding = 7;
pub type AVMatrixEncoding = u32;
extern "C" {
pub fn av_get_channel_layout(name: *const ::std::os::raw::c_char) -> u64;
}
extern "C" {
pub fn av_get_extended_channel_layout(
name: *const ::std::os::raw::c_char,
channel_layout: *mut u64,
nb_channels: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_get_channel_layout_string(
buf: *mut ::std::os::raw::c_char,
buf_size: ::std::os::raw::c_int,
nb_channels: ::std::os::raw::c_int,
channel_layout: u64,
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVBPrint {
_unused: [u8; 0],
}
extern "C" {
pub fn av_bprint_channel_layout(
bp: *mut AVBPrint,
nb_channels: ::std::os::raw::c_int,
channel_layout: u64,
);
}
extern "C" {
pub fn av_get_channel_layout_nb_channels(channel_layout: u64) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_get_default_channel_layout(nb_channels: ::std::os::raw::c_int) -> i64;
}
extern "C" {
pub fn av_get_channel_layout_channel_index(
channel_layout: u64,
channel: u64,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_channel_layout_extract_channel(
channel_layout: u64,
index: ::std::os::raw::c_int,
) -> u64;
}
extern "C" {
pub fn av_get_channel_name(channel: u64) -> *const ::std::os::raw::c_char;
}
extern "C" {
pub fn av_get_channel_description(channel: u64) -> *const ::std::os::raw::c_char;
}
extern "C" {
pub fn av_get_standard_channel_layout(
index: ::std::os::raw::c_uint,
layout: *mut u64,
name: *mut *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVDictionaryEntry {
pub key: *mut ::std::os::raw::c_char,
pub value: *mut ::std::os::raw::c_char,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVDictionary {
_unused: [u8; 0],
}
extern "C" {
pub fn av_dict_get(
m: *const AVDictionary,
key: *const ::std::os::raw::c_char,
prev: *const AVDictionaryEntry,
flags: ::std::os::raw::c_int,
) -> *mut AVDictionaryEntry;
}
extern "C" {
pub fn av_dict_count(m: *const AVDictionary) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_dict_set(
pm: *mut *mut AVDictionary,
key: *const ::std::os::raw::c_char,
value: *const ::std::os::raw::c_char,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_dict_set_int(
pm: *mut *mut AVDictionary,
key: *const ::std::os::raw::c_char,
value: i64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_dict_parse_string(
pm: *mut *mut AVDictionary,
str: *const ::std::os::raw::c_char,
key_val_sep: *const ::std::os::raw::c_char,
pairs_sep: *const ::std::os::raw::c_char,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_dict_copy(
dst: *mut *mut AVDictionary,
src: *const AVDictionary,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_dict_free(m: *mut *mut AVDictionary);
}
extern "C" {
pub fn av_dict_get_string(
m: *const AVDictionary,
buffer: *mut *mut ::std::os::raw::c_char,
key_val_sep: ::std::os::raw::c_char,
pairs_sep: ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
pub const AVFrameSideDataType_AV_FRAME_DATA_PANSCAN: AVFrameSideDataType = 0;
pub const AVFrameSideDataType_AV_FRAME_DATA_A53_CC: AVFrameSideDataType = 1;
pub const AVFrameSideDataType_AV_FRAME_DATA_STEREO3D: AVFrameSideDataType = 2;
pub const AVFrameSideDataType_AV_FRAME_DATA_MATRIXENCODING: AVFrameSideDataType = 3;
pub const AVFrameSideDataType_AV_FRAME_DATA_DOWNMIX_INFO: AVFrameSideDataType = 4;
pub const AVFrameSideDataType_AV_FRAME_DATA_REPLAYGAIN: AVFrameSideDataType = 5;
pub const AVFrameSideDataType_AV_FRAME_DATA_DISPLAYMATRIX: AVFrameSideDataType = 6;
pub const AVFrameSideDataType_AV_FRAME_DATA_AFD: AVFrameSideDataType = 7;
pub const AVFrameSideDataType_AV_FRAME_DATA_MOTION_VECTORS: AVFrameSideDataType = 8;
pub const AVFrameSideDataType_AV_FRAME_DATA_SKIP_SAMPLES: AVFrameSideDataType = 9;
pub const AVFrameSideDataType_AV_FRAME_DATA_AUDIO_SERVICE_TYPE: AVFrameSideDataType = 10;
pub const AVFrameSideDataType_AV_FRAME_DATA_MASTERING_DISPLAY_METADATA: AVFrameSideDataType = 11;
pub const AVFrameSideDataType_AV_FRAME_DATA_GOP_TIMECODE: AVFrameSideDataType = 12;
pub const AVFrameSideDataType_AV_FRAME_DATA_SPHERICAL: AVFrameSideDataType = 13;
pub const AVFrameSideDataType_AV_FRAME_DATA_CONTENT_LIGHT_LEVEL: AVFrameSideDataType = 14;
pub const AVFrameSideDataType_AV_FRAME_DATA_ICC_PROFILE: AVFrameSideDataType = 15;
pub const AVFrameSideDataType_AV_FRAME_DATA_QP_TABLE_PROPERTIES: AVFrameSideDataType = 16;
pub const AVFrameSideDataType_AV_FRAME_DATA_QP_TABLE_DATA: AVFrameSideDataType = 17;
pub const AVFrameSideDataType_AV_FRAME_DATA_S12M_TIMECODE: AVFrameSideDataType = 18;
pub type AVFrameSideDataType = u32;
pub const AVActiveFormatDescription_AV_AFD_SAME: AVActiveFormatDescription = 8;
pub const AVActiveFormatDescription_AV_AFD_4_3: AVActiveFormatDescription = 9;
pub const AVActiveFormatDescription_AV_AFD_16_9: AVActiveFormatDescription = 10;
pub const AVActiveFormatDescription_AV_AFD_14_9: AVActiveFormatDescription = 11;
pub const AVActiveFormatDescription_AV_AFD_4_3_SP_14_9: AVActiveFormatDescription = 13;
pub const AVActiveFormatDescription_AV_AFD_16_9_SP_14_9: AVActiveFormatDescription = 14;
pub const AVActiveFormatDescription_AV_AFD_SP_4_3: AVActiveFormatDescription = 15;
pub type AVActiveFormatDescription = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVFrameSideData {
pub type_: AVFrameSideDataType,
pub data: *mut u8,
pub size: ::std::os::raw::c_int,
pub metadata: *mut AVDictionary,
pub buf: *mut AVBufferRef,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVFrame {
pub data: [*mut u8; 8usize],
pub linesize: [::std::os::raw::c_int; 8usize],
pub extended_data: *mut *mut u8,
pub width: ::std::os::raw::c_int,
pub height: ::std::os::raw::c_int,
pub nb_samples: ::std::os::raw::c_int,
pub format: ::std::os::raw::c_int,
pub key_frame: ::std::os::raw::c_int,
pub pict_type: AVPictureType,
pub sample_aspect_ratio: AVRational,
pub pts: i64,
pub pkt_pts: i64,
pub pkt_dts: i64,
pub coded_picture_number: ::std::os::raw::c_int,
pub display_picture_number: ::std::os::raw::c_int,
pub quality: ::std::os::raw::c_int,
pub opaque: *mut ::std::os::raw::c_void,
pub error: [u64; 8usize],
pub repeat_pict: ::std::os::raw::c_int,
pub interlaced_frame: ::std::os::raw::c_int,
pub top_field_first: ::std::os::raw::c_int,
pub palette_has_changed: ::std::os::raw::c_int,
pub reordered_opaque: i64,
pub sample_rate: ::std::os::raw::c_int,
pub channel_layout: u64,
pub buf: [*mut AVBufferRef; 8usize],
pub extended_buf: *mut *mut AVBufferRef,
pub nb_extended_buf: ::std::os::raw::c_int,
pub side_data: *mut *mut AVFrameSideData,
pub nb_side_data: ::std::os::raw::c_int,
pub flags: ::std::os::raw::c_int,
pub color_range: AVColorRange,
pub color_primaries: AVColorPrimaries,
pub color_trc: AVColorTransferCharacteristic,
pub colorspace: AVColorSpace,
pub chroma_location: AVChromaLocation,
pub best_effort_timestamp: i64,
pub pkt_pos: i64,
pub pkt_duration: i64,
pub metadata: *mut AVDictionary,
pub decode_error_flags: ::std::os::raw::c_int,
pub channels: ::std::os::raw::c_int,
pub pkt_size: ::std::os::raw::c_int,
pub qscale_table: *mut i8,
pub qstride: ::std::os::raw::c_int,
pub qscale_type: ::std::os::raw::c_int,
pub qp_table_buf: *mut AVBufferRef,
pub hw_frames_ctx: *mut AVBufferRef,
pub opaque_ref: *mut AVBufferRef,
pub crop_top: usize,
pub crop_bottom: usize,
pub crop_left: usize,
pub crop_right: usize,
pub private_ref: *mut AVBufferRef,
}
extern "C" {
pub fn av_frame_get_best_effort_timestamp(frame: *const AVFrame) -> i64;
}
extern "C" {
pub fn av_frame_set_best_effort_timestamp(frame: *mut AVFrame, val: i64);
}
extern "C" {
pub fn av_frame_get_pkt_duration(frame: *const AVFrame) -> i64;
}
extern "C" {
pub fn av_frame_set_pkt_duration(frame: *mut AVFrame, val: i64);
}
extern "C" {
pub fn av_frame_get_pkt_pos(frame: *const AVFrame) -> i64;
}
extern "C" {
pub fn av_frame_set_pkt_pos(frame: *mut AVFrame, val: i64);
}
extern "C" {
pub fn av_frame_get_channel_layout(frame: *const AVFrame) -> i64;
}
extern "C" {
pub fn av_frame_set_channel_layout(frame: *mut AVFrame, val: i64);
}
extern "C" {
pub fn av_frame_get_channels(frame: *const AVFrame) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_frame_set_channels(frame: *mut AVFrame, val: ::std::os::raw::c_int);
}
extern "C" {
pub fn av_frame_get_sample_rate(frame: *const AVFrame) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_frame_set_sample_rate(frame: *mut AVFrame, val: ::std::os::raw::c_int);
}
extern "C" {
pub fn av_frame_get_metadata(frame: *const AVFrame) -> *mut AVDictionary;
}
extern "C" {
pub fn av_frame_set_metadata(frame: *mut AVFrame, val: *mut AVDictionary);
}
extern "C" {
pub fn av_frame_get_decode_error_flags(frame: *const AVFrame) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_frame_set_decode_error_flags(frame: *mut AVFrame, val: ::std::os::raw::c_int);
}
extern "C" {
pub fn av_frame_get_pkt_size(frame: *const AVFrame) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_frame_set_pkt_size(frame: *mut AVFrame, val: ::std::os::raw::c_int);
}
extern "C" {
pub fn av_frame_get_qp_table(
f: *mut AVFrame,
stride: *mut ::std::os::raw::c_int,
type_: *mut ::std::os::raw::c_int,
) -> *mut i8;
}
extern "C" {
pub fn av_frame_set_qp_table(
f: *mut AVFrame,
buf: *mut AVBufferRef,
stride: ::std::os::raw::c_int,
type_: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_frame_get_colorspace(frame: *const AVFrame) -> AVColorSpace;
}
extern "C" {
pub fn av_frame_set_colorspace(frame: *mut AVFrame, val: AVColorSpace);
}
extern "C" {
pub fn av_frame_get_color_range(frame: *const AVFrame) -> AVColorRange;
}
extern "C" {
pub fn av_frame_set_color_range(frame: *mut AVFrame, val: AVColorRange);
}
extern "C" {
pub fn av_get_colorspace_name(val: AVColorSpace) -> *const ::std::os::raw::c_char;
}
extern "C" {
pub fn av_frame_alloc() -> *mut AVFrame;
}
extern "C" {
pub fn av_frame_free(frame: *mut *mut AVFrame);
}
extern "C" {
pub fn av_frame_ref(dst: *mut AVFrame, src: *const AVFrame) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_frame_clone(src: *const AVFrame) -> *mut AVFrame;
}
extern "C" {
pub fn av_frame_unref(frame: *mut AVFrame);
}
extern "C" {
pub fn av_frame_move_ref(dst: *mut AVFrame, src: *mut AVFrame);
}
extern "C" {
pub fn av_frame_get_buffer(
frame: *mut AVFrame,
align: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_frame_is_writable(frame: *mut AVFrame) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_frame_make_writable(frame: *mut AVFrame) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_frame_copy(dst: *mut AVFrame, src: *const AVFrame) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_frame_copy_props(dst: *mut AVFrame, src: *const AVFrame) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_frame_get_plane_buffer(
frame: *mut AVFrame,
plane: ::std::os::raw::c_int,
) -> *mut AVBufferRef;
}
extern "C" {
pub fn av_frame_new_side_data(
frame: *mut AVFrame,
type_: AVFrameSideDataType,
size: ::std::os::raw::c_int,
) -> *mut AVFrameSideData;
}
extern "C" {
pub fn av_frame_new_side_data_from_buf(
frame: *mut AVFrame,
type_: AVFrameSideDataType,
buf: *mut AVBufferRef,
) -> *mut AVFrameSideData;
}
extern "C" {
pub fn av_frame_get_side_data(
frame: *const AVFrame,
type_: AVFrameSideDataType,
) -> *mut AVFrameSideData;
}
extern "C" {
pub fn av_frame_remove_side_data(frame: *mut AVFrame, type_: AVFrameSideDataType);
}
pub const AV_FRAME_CROP_UNALIGNED: _bindgen_ty_2 = 1;
pub type _bindgen_ty_2 = u32;
extern "C" {
pub fn av_frame_apply_cropping(
frame: *mut AVFrame,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_frame_side_data_name(type_: AVFrameSideDataType) -> *const ::std::os::raw::c_char;
}
pub const AVHWDeviceType_AV_HWDEVICE_TYPE_NONE: AVHWDeviceType = 0;
pub const AVHWDeviceType_AV_HWDEVICE_TYPE_VDPAU: AVHWDeviceType = 1;
pub const AVHWDeviceType_AV_HWDEVICE_TYPE_CUDA: AVHWDeviceType = 2;
pub const AVHWDeviceType_AV_HWDEVICE_TYPE_VAAPI: AVHWDeviceType = 3;
pub const AVHWDeviceType_AV_HWDEVICE_TYPE_DXVA2: AVHWDeviceType = 4;
pub const AVHWDeviceType_AV_HWDEVICE_TYPE_QSV: AVHWDeviceType = 5;
pub const AVHWDeviceType_AV_HWDEVICE_TYPE_VIDEOTOOLBOX: AVHWDeviceType = 6;
pub const AVHWDeviceType_AV_HWDEVICE_TYPE_D3D11VA: AVHWDeviceType = 7;
pub const AVHWDeviceType_AV_HWDEVICE_TYPE_DRM: AVHWDeviceType = 8;
pub const AVHWDeviceType_AV_HWDEVICE_TYPE_OPENCL: AVHWDeviceType = 9;
pub const AVHWDeviceType_AV_HWDEVICE_TYPE_MEDIACODEC: AVHWDeviceType = 10;
pub type AVHWDeviceType = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVHWDeviceInternal {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVHWDeviceContext {
pub av_class: *const AVClass,
pub internal: *mut AVHWDeviceInternal,
pub type_: AVHWDeviceType,
pub hwctx: *mut ::std::os::raw::c_void,
pub free: ::std::option::Option<unsafe extern "C" fn(ctx: *mut AVHWDeviceContext)>,
pub user_opaque: *mut ::std::os::raw::c_void,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVHWFramesInternal {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVHWFramesContext {
pub av_class: *const AVClass,
pub internal: *mut AVHWFramesInternal,
pub device_ref: *mut AVBufferRef,
pub device_ctx: *mut AVHWDeviceContext,
pub hwctx: *mut ::std::os::raw::c_void,
pub free: ::std::option::Option<unsafe extern "C" fn(ctx: *mut AVHWFramesContext)>,
pub user_opaque: *mut ::std::os::raw::c_void,
pub pool: *mut AVBufferPool,
pub initial_pool_size: ::std::os::raw::c_int,
pub format: AVPixelFormat,
pub sw_format: AVPixelFormat,
pub width: ::std::os::raw::c_int,
pub height: ::std::os::raw::c_int,
}
extern "C" {
pub fn av_hwdevice_find_type_by_name(name: *const ::std::os::raw::c_char) -> AVHWDeviceType;
}
extern "C" {
pub fn av_hwdevice_get_type_name(type_: AVHWDeviceType) -> *const ::std::os::raw::c_char;
}
extern "C" {
pub fn av_hwdevice_iterate_types(prev: AVHWDeviceType) -> AVHWDeviceType;
}
extern "C" {
pub fn av_hwdevice_ctx_alloc(type_: AVHWDeviceType) -> *mut AVBufferRef;
}
extern "C" {
pub fn av_hwdevice_ctx_init(ref_: *mut AVBufferRef) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_hwdevice_ctx_create(
device_ctx: *mut *mut AVBufferRef,
type_: AVHWDeviceType,
device: *const ::std::os::raw::c_char,
opts: *mut AVDictionary,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_hwdevice_ctx_create_derived(
dst_ctx: *mut *mut AVBufferRef,
type_: AVHWDeviceType,
src_ctx: *mut AVBufferRef,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_hwframe_ctx_alloc(device_ctx: *mut AVBufferRef) -> *mut AVBufferRef;
}
extern "C" {
pub fn av_hwframe_ctx_init(ref_: *mut AVBufferRef) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_hwframe_get_buffer(
hwframe_ctx: *mut AVBufferRef,
frame: *mut AVFrame,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_hwframe_transfer_data(
dst: *mut AVFrame,
src: *const AVFrame,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
pub const AVHWFrameTransferDirection_AV_HWFRAME_TRANSFER_DIRECTION_FROM:
AVHWFrameTransferDirection = 0;
pub const AVHWFrameTransferDirection_AV_HWFRAME_TRANSFER_DIRECTION_TO: AVHWFrameTransferDirection =
1;
pub type AVHWFrameTransferDirection = u32;
extern "C" {
pub fn av_hwframe_transfer_get_formats(
hwframe_ctx: *mut AVBufferRef,
dir: AVHWFrameTransferDirection,
formats: *mut *mut AVPixelFormat,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVHWFramesConstraints {
pub valid_hw_formats: *mut AVPixelFormat,
pub valid_sw_formats: *mut AVPixelFormat,
pub min_width: ::std::os::raw::c_int,
pub min_height: ::std::os::raw::c_int,
pub max_width: ::std::os::raw::c_int,
pub max_height: ::std::os::raw::c_int,
}
extern "C" {
pub fn av_hwdevice_hwconfig_alloc(device_ctx: *mut AVBufferRef) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn av_hwdevice_get_hwframe_constraints(
ref_: *mut AVBufferRef,
hwconfig: *const ::std::os::raw::c_void,
) -> *mut AVHWFramesConstraints;
}
extern "C" {
pub fn av_hwframe_constraints_free(constraints: *mut *mut AVHWFramesConstraints);
}
pub const AV_HWFRAME_MAP_READ: _bindgen_ty_3 = 1;
pub const AV_HWFRAME_MAP_WRITE: _bindgen_ty_3 = 2;
pub const AV_HWFRAME_MAP_OVERWRITE: _bindgen_ty_3 = 4;
pub const AV_HWFRAME_MAP_DIRECT: _bindgen_ty_3 = 8;
pub type _bindgen_ty_3 = u32;
extern "C" {
pub fn av_hwframe_map(
dst: *mut AVFrame,
src: *const AVFrame,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_hwframe_ctx_create_derived(
derived_frame_ctx: *mut *mut AVBufferRef,
format: AVPixelFormat,
derived_device_ctx: *mut AVBufferRef,
source_frame_ctx: *mut AVBufferRef,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
pub const AVCodecID_AV_CODEC_ID_NONE: AVCodecID = 0;
pub const AVCodecID_AV_CODEC_ID_MPEG1VIDEO: AVCodecID = 1;
#[doc = "< preferred ID for MPEG-1/2 video decoding"]
pub const AVCodecID_AV_CODEC_ID_MPEG2VIDEO: AVCodecID = 2;
pub const AVCodecID_AV_CODEC_ID_H261: AVCodecID = 3;
pub const AVCodecID_AV_CODEC_ID_H263: AVCodecID = 4;
pub const AVCodecID_AV_CODEC_ID_RV10: AVCodecID = 5;
pub const AVCodecID_AV_CODEC_ID_RV20: AVCodecID = 6;
pub const AVCodecID_AV_CODEC_ID_MJPEG: AVCodecID = 7;
pub const AVCodecID_AV_CODEC_ID_MJPEGB: AVCodecID = 8;
pub const AVCodecID_AV_CODEC_ID_LJPEG: AVCodecID = 9;
pub const AVCodecID_AV_CODEC_ID_SP5X: AVCodecID = 10;
pub const AVCodecID_AV_CODEC_ID_JPEGLS: AVCodecID = 11;
pub const AVCodecID_AV_CODEC_ID_MPEG4: AVCodecID = 12;
pub const AVCodecID_AV_CODEC_ID_RAWVIDEO: AVCodecID = 13;
pub const AVCodecID_AV_CODEC_ID_MSMPEG4V1: AVCodecID = 14;
pub const AVCodecID_AV_CODEC_ID_MSMPEG4V2: AVCodecID = 15;
pub const AVCodecID_AV_CODEC_ID_MSMPEG4V3: AVCodecID = 16;
pub const AVCodecID_AV_CODEC_ID_WMV1: AVCodecID = 17;
pub const AVCodecID_AV_CODEC_ID_WMV2: AVCodecID = 18;
pub const AVCodecID_AV_CODEC_ID_H263P: AVCodecID = 19;
pub const AVCodecID_AV_CODEC_ID_H263I: AVCodecID = 20;
pub const AVCodecID_AV_CODEC_ID_FLV1: AVCodecID = 21;
pub const AVCodecID_AV_CODEC_ID_SVQ1: AVCodecID = 22;
pub const AVCodecID_AV_CODEC_ID_SVQ3: AVCodecID = 23;
pub const AVCodecID_AV_CODEC_ID_DVVIDEO: AVCodecID = 24;
pub const AVCodecID_AV_CODEC_ID_HUFFYUV: AVCodecID = 25;
pub const AVCodecID_AV_CODEC_ID_CYUV: AVCodecID = 26;
pub const AVCodecID_AV_CODEC_ID_H264: AVCodecID = 27;
pub const AVCodecID_AV_CODEC_ID_INDEO3: AVCodecID = 28;
pub const AVCodecID_AV_CODEC_ID_VP3: AVCodecID = 29;
pub const AVCodecID_AV_CODEC_ID_THEORA: AVCodecID = 30;
pub const AVCodecID_AV_CODEC_ID_ASV1: AVCodecID = 31;
pub const AVCodecID_AV_CODEC_ID_ASV2: AVCodecID = 32;
pub const AVCodecID_AV_CODEC_ID_FFV1: AVCodecID = 33;
pub const AVCodecID_AV_CODEC_ID_4XM: AVCodecID = 34;
pub const AVCodecID_AV_CODEC_ID_VCR1: AVCodecID = 35;
pub const AVCodecID_AV_CODEC_ID_CLJR: AVCodecID = 36;
pub const AVCodecID_AV_CODEC_ID_MDEC: AVCodecID = 37;
pub const AVCodecID_AV_CODEC_ID_ROQ: AVCodecID = 38;
pub const AVCodecID_AV_CODEC_ID_INTERPLAY_VIDEO: AVCodecID = 39;
pub const AVCodecID_AV_CODEC_ID_XAN_WC3: AVCodecID = 40;
pub const AVCodecID_AV_CODEC_ID_XAN_WC4: AVCodecID = 41;
pub const AVCodecID_AV_CODEC_ID_RPZA: AVCodecID = 42;
pub const AVCodecID_AV_CODEC_ID_CINEPAK: AVCodecID = 43;
pub const AVCodecID_AV_CODEC_ID_WS_VQA: AVCodecID = 44;
pub const AVCodecID_AV_CODEC_ID_MSRLE: AVCodecID = 45;
pub const AVCodecID_AV_CODEC_ID_MSVIDEO1: AVCodecID = 46;
pub const AVCodecID_AV_CODEC_ID_IDCIN: AVCodecID = 47;
pub const AVCodecID_AV_CODEC_ID_8BPS: AVCodecID = 48;
pub const AVCodecID_AV_CODEC_ID_SMC: AVCodecID = 49;
pub const AVCodecID_AV_CODEC_ID_FLIC: AVCodecID = 50;
pub const AVCodecID_AV_CODEC_ID_TRUEMOTION1: AVCodecID = 51;
pub const AVCodecID_AV_CODEC_ID_VMDVIDEO: AVCodecID = 52;
pub const AVCodecID_AV_CODEC_ID_MSZH: AVCodecID = 53;
pub const AVCodecID_AV_CODEC_ID_ZLIB: AVCodecID = 54;
pub const AVCodecID_AV_CODEC_ID_QTRLE: AVCodecID = 55;
pub const AVCodecID_AV_CODEC_ID_TSCC: AVCodecID = 56;
pub const AVCodecID_AV_CODEC_ID_ULTI: AVCodecID = 57;
pub const AVCodecID_AV_CODEC_ID_QDRAW: AVCodecID = 58;
pub const AVCodecID_AV_CODEC_ID_VIXL: AVCodecID = 59;
pub const AVCodecID_AV_CODEC_ID_QPEG: AVCodecID = 60;
pub const AVCodecID_AV_CODEC_ID_PNG: AVCodecID = 61;
pub const AVCodecID_AV_CODEC_ID_PPM: AVCodecID = 62;
pub const AVCodecID_AV_CODEC_ID_PBM: AVCodecID = 63;
pub const AVCodecID_AV_CODEC_ID_PGM: AVCodecID = 64;
pub const AVCodecID_AV_CODEC_ID_PGMYUV: AVCodecID = 65;
pub const AVCodecID_AV_CODEC_ID_PAM: AVCodecID = 66;
pub const AVCodecID_AV_CODEC_ID_FFVHUFF: AVCodecID = 67;
pub const AVCodecID_AV_CODEC_ID_RV30: AVCodecID = 68;
pub const AVCodecID_AV_CODEC_ID_RV40: AVCodecID = 69;
pub const AVCodecID_AV_CODEC_ID_VC1: AVCodecID = 70;
pub const AVCodecID_AV_CODEC_ID_WMV3: AVCodecID = 71;
pub const AVCodecID_AV_CODEC_ID_LOCO: AVCodecID = 72;
pub const AVCodecID_AV_CODEC_ID_WNV1: AVCodecID = 73;
pub const AVCodecID_AV_CODEC_ID_AASC: AVCodecID = 74;
pub const AVCodecID_AV_CODEC_ID_INDEO2: AVCodecID = 75;
pub const AVCodecID_AV_CODEC_ID_FRAPS: AVCodecID = 76;
pub const AVCodecID_AV_CODEC_ID_TRUEMOTION2: AVCodecID = 77;
pub const AVCodecID_AV_CODEC_ID_BMP: AVCodecID = 78;
pub const AVCodecID_AV_CODEC_ID_CSCD: AVCodecID = 79;
pub const AVCodecID_AV_CODEC_ID_MMVIDEO: AVCodecID = 80;
pub const AVCodecID_AV_CODEC_ID_ZMBV: AVCodecID = 81;
pub const AVCodecID_AV_CODEC_ID_AVS: AVCodecID = 82;
pub const AVCodecID_AV_CODEC_ID_SMACKVIDEO: AVCodecID = 83;
pub const AVCodecID_AV_CODEC_ID_NUV: AVCodecID = 84;
pub const AVCodecID_AV_CODEC_ID_KMVC: AVCodecID = 85;
pub const AVCodecID_AV_CODEC_ID_FLASHSV: AVCodecID = 86;
pub const AVCodecID_AV_CODEC_ID_CAVS: AVCodecID = 87;
pub const AVCodecID_AV_CODEC_ID_JPEG2000: AVCodecID = 88;
pub const AVCodecID_AV_CODEC_ID_VMNC: AVCodecID = 89;
pub const AVCodecID_AV_CODEC_ID_VP5: AVCodecID = 90;
pub const AVCodecID_AV_CODEC_ID_VP6: AVCodecID = 91;
pub const AVCodecID_AV_CODEC_ID_VP6F: AVCodecID = 92;
pub const AVCodecID_AV_CODEC_ID_TARGA: AVCodecID = 93;
pub const AVCodecID_AV_CODEC_ID_DSICINVIDEO: AVCodecID = 94;
pub const AVCodecID_AV_CODEC_ID_TIERTEXSEQVIDEO: AVCodecID = 95;
pub const AVCodecID_AV_CODEC_ID_TIFF: AVCodecID = 96;
pub const AVCodecID_AV_CODEC_ID_GIF: AVCodecID = 97;
pub const AVCodecID_AV_CODEC_ID_DXA: AVCodecID = 98;
pub const AVCodecID_AV_CODEC_ID_DNXHD: AVCodecID = 99;
pub const AVCodecID_AV_CODEC_ID_THP: AVCodecID = 100;
pub const AVCodecID_AV_CODEC_ID_SGI: AVCodecID = 101;
pub const AVCodecID_AV_CODEC_ID_C93: AVCodecID = 102;
pub const AVCodecID_AV_CODEC_ID_BETHSOFTVID: AVCodecID = 103;
pub const AVCodecID_AV_CODEC_ID_PTX: AVCodecID = 104;
pub const AVCodecID_AV_CODEC_ID_TXD: AVCodecID = 105;
pub const AVCodecID_AV_CODEC_ID_VP6A: AVCodecID = 106;
pub const AVCodecID_AV_CODEC_ID_AMV: AVCodecID = 107;
pub const AVCodecID_AV_CODEC_ID_VB: AVCodecID = 108;
pub const AVCodecID_AV_CODEC_ID_PCX: AVCodecID = 109;
pub const AVCodecID_AV_CODEC_ID_SUNRAST: AVCodecID = 110;
pub const AVCodecID_AV_CODEC_ID_INDEO4: AVCodecID = 111;
pub const AVCodecID_AV_CODEC_ID_INDEO5: AVCodecID = 112;
pub const AVCodecID_AV_CODEC_ID_MIMIC: AVCodecID = 113;
pub const AVCodecID_AV_CODEC_ID_RL2: AVCodecID = 114;
pub const AVCodecID_AV_CODEC_ID_ESCAPE124: AVCodecID = 115;
pub const AVCodecID_AV_CODEC_ID_DIRAC: AVCodecID = 116;
pub const AVCodecID_AV_CODEC_ID_BFI: AVCodecID = 117;
pub const AVCodecID_AV_CODEC_ID_CMV: AVCodecID = 118;
pub const AVCodecID_AV_CODEC_ID_MOTIONPIXELS: AVCodecID = 119;
pub const AVCodecID_AV_CODEC_ID_TGV: AVCodecID = 120;
pub const AVCodecID_AV_CODEC_ID_TGQ: AVCodecID = 121;
pub const AVCodecID_AV_CODEC_ID_TQI: AVCodecID = 122;
pub const AVCodecID_AV_CODEC_ID_AURA: AVCodecID = 123;
pub const AVCodecID_AV_CODEC_ID_AURA2: AVCodecID = 124;
pub const AVCodecID_AV_CODEC_ID_V210X: AVCodecID = 125;
pub const AVCodecID_AV_CODEC_ID_TMV: AVCodecID = 126;
pub const AVCodecID_AV_CODEC_ID_V210: AVCodecID = 127;
pub const AVCodecID_AV_CODEC_ID_DPX: AVCodecID = 128;
pub const AVCodecID_AV_CODEC_ID_MAD: AVCodecID = 129;
pub const AVCodecID_AV_CODEC_ID_FRWU: AVCodecID = 130;
pub const AVCodecID_AV_CODEC_ID_FLASHSV2: AVCodecID = 131;
pub const AVCodecID_AV_CODEC_ID_CDGRAPHICS: AVCodecID = 132;
pub const AVCodecID_AV_CODEC_ID_R210: AVCodecID = 133;
pub const AVCodecID_AV_CODEC_ID_ANM: AVCodecID = 134;
pub const AVCodecID_AV_CODEC_ID_BINKVIDEO: AVCodecID = 135;
pub const AVCodecID_AV_CODEC_ID_IFF_ILBM: AVCodecID = 136;
pub const AVCodecID_AV_CODEC_ID_KGV1: AVCodecID = 137;
pub const AVCodecID_AV_CODEC_ID_YOP: AVCodecID = 138;
pub const AVCodecID_AV_CODEC_ID_VP8: AVCodecID = 139;
pub const AVCodecID_AV_CODEC_ID_PICTOR: AVCodecID = 140;
pub const AVCodecID_AV_CODEC_ID_ANSI: AVCodecID = 141;
pub const AVCodecID_AV_CODEC_ID_A64_MULTI: AVCodecID = 142;
pub const AVCodecID_AV_CODEC_ID_A64_MULTI5: AVCodecID = 143;
pub const AVCodecID_AV_CODEC_ID_R10K: AVCodecID = 144;
pub const AVCodecID_AV_CODEC_ID_MXPEG: AVCodecID = 145;
pub const AVCodecID_AV_CODEC_ID_LAGARITH: AVCodecID = 146;
pub const AVCodecID_AV_CODEC_ID_PRORES: AVCodecID = 147;
pub const AVCodecID_AV_CODEC_ID_JV: AVCodecID = 148;
pub const AVCodecID_AV_CODEC_ID_DFA: AVCodecID = 149;
pub const AVCodecID_AV_CODEC_ID_WMV3IMAGE: AVCodecID = 150;
pub const AVCodecID_AV_CODEC_ID_VC1IMAGE: AVCodecID = 151;
pub const AVCodecID_AV_CODEC_ID_UTVIDEO: AVCodecID = 152;
pub const AVCodecID_AV_CODEC_ID_BMV_VIDEO: AVCodecID = 153;
pub const AVCodecID_AV_CODEC_ID_VBLE: AVCodecID = 154;
pub const AVCodecID_AV_CODEC_ID_DXTORY: AVCodecID = 155;
pub const AVCodecID_AV_CODEC_ID_V410: AVCodecID = 156;
pub const AVCodecID_AV_CODEC_ID_XWD: AVCodecID = 157;
pub const AVCodecID_AV_CODEC_ID_CDXL: AVCodecID = 158;
pub const AVCodecID_AV_CODEC_ID_XBM: AVCodecID = 159;
pub const AVCodecID_AV_CODEC_ID_ZEROCODEC: AVCodecID = 160;
pub const AVCodecID_AV_CODEC_ID_MSS1: AVCodecID = 161;
pub const AVCodecID_AV_CODEC_ID_MSA1: AVCodecID = 162;
pub const AVCodecID_AV_CODEC_ID_TSCC2: AVCodecID = 163;
pub const AVCodecID_AV_CODEC_ID_MTS2: AVCodecID = 164;
pub const AVCodecID_AV_CODEC_ID_CLLC: AVCodecID = 165;
pub const AVCodecID_AV_CODEC_ID_MSS2: AVCodecID = 166;
pub const AVCodecID_AV_CODEC_ID_VP9: AVCodecID = 167;
pub const AVCodecID_AV_CODEC_ID_AIC: AVCodecID = 168;
pub const AVCodecID_AV_CODEC_ID_ESCAPE130: AVCodecID = 169;
pub const AVCodecID_AV_CODEC_ID_G2M: AVCodecID = 170;
pub const AVCodecID_AV_CODEC_ID_WEBP: AVCodecID = 171;
pub const AVCodecID_AV_CODEC_ID_HNM4_VIDEO: AVCodecID = 172;
pub const AVCodecID_AV_CODEC_ID_HEVC: AVCodecID = 173;
pub const AVCodecID_AV_CODEC_ID_FIC: AVCodecID = 174;
pub const AVCodecID_AV_CODEC_ID_ALIAS_PIX: AVCodecID = 175;
pub const AVCodecID_AV_CODEC_ID_BRENDER_PIX: AVCodecID = 176;
pub const AVCodecID_AV_CODEC_ID_PAF_VIDEO: AVCodecID = 177;
pub const AVCodecID_AV_CODEC_ID_EXR: AVCodecID = 178;
pub const AVCodecID_AV_CODEC_ID_VP7: AVCodecID = 179;
pub const AVCodecID_AV_CODEC_ID_SANM: AVCodecID = 180;
pub const AVCodecID_AV_CODEC_ID_SGIRLE: AVCodecID = 181;
pub const AVCodecID_AV_CODEC_ID_MVC1: AVCodecID = 182;
pub const AVCodecID_AV_CODEC_ID_MVC2: AVCodecID = 183;
pub const AVCodecID_AV_CODEC_ID_HQX: AVCodecID = 184;
pub const AVCodecID_AV_CODEC_ID_TDSC: AVCodecID = 185;
pub const AVCodecID_AV_CODEC_ID_HQ_HQA: AVCodecID = 186;
pub const AVCodecID_AV_CODEC_ID_HAP: AVCodecID = 187;
pub const AVCodecID_AV_CODEC_ID_DDS: AVCodecID = 188;
pub const AVCodecID_AV_CODEC_ID_DXV: AVCodecID = 189;
pub const AVCodecID_AV_CODEC_ID_SCREENPRESSO: AVCodecID = 190;
pub const AVCodecID_AV_CODEC_ID_RSCC: AVCodecID = 191;
pub const AVCodecID_AV_CODEC_ID_AVS2: AVCodecID = 192;
pub const AVCodecID_AV_CODEC_ID_Y41P: AVCodecID = 32768;
pub const AVCodecID_AV_CODEC_ID_AVRP: AVCodecID = 32769;
pub const AVCodecID_AV_CODEC_ID_012V: AVCodecID = 32770;
pub const AVCodecID_AV_CODEC_ID_AVUI: AVCodecID = 32771;
pub const AVCodecID_AV_CODEC_ID_AYUV: AVCodecID = 32772;
pub const AVCodecID_AV_CODEC_ID_TARGA_Y216: AVCodecID = 32773;
pub const AVCodecID_AV_CODEC_ID_V308: AVCodecID = 32774;
pub const AVCodecID_AV_CODEC_ID_V408: AVCodecID = 32775;
pub const AVCodecID_AV_CODEC_ID_YUV4: AVCodecID = 32776;
pub const AVCodecID_AV_CODEC_ID_AVRN: AVCodecID = 32777;
pub const AVCodecID_AV_CODEC_ID_CPIA: AVCodecID = 32778;
pub const AVCodecID_AV_CODEC_ID_XFACE: AVCodecID = 32779;
pub const AVCodecID_AV_CODEC_ID_SNOW: AVCodecID = 32780;
pub const AVCodecID_AV_CODEC_ID_SMVJPEG: AVCodecID = 32781;
pub const AVCodecID_AV_CODEC_ID_APNG: AVCodecID = 32782;
pub const AVCodecID_AV_CODEC_ID_DAALA: AVCodecID = 32783;
pub const AVCodecID_AV_CODEC_ID_CFHD: AVCodecID = 32784;
pub const AVCodecID_AV_CODEC_ID_TRUEMOTION2RT: AVCodecID = 32785;
pub const AVCodecID_AV_CODEC_ID_M101: AVCodecID = 32786;
pub const AVCodecID_AV_CODEC_ID_MAGICYUV: AVCodecID = 32787;
pub const AVCodecID_AV_CODEC_ID_SHEERVIDEO: AVCodecID = 32788;
pub const AVCodecID_AV_CODEC_ID_YLC: AVCodecID = 32789;
pub const AVCodecID_AV_CODEC_ID_PSD: AVCodecID = 32790;
pub const AVCodecID_AV_CODEC_ID_PIXLET: AVCodecID = 32791;
pub const AVCodecID_AV_CODEC_ID_SPEEDHQ: AVCodecID = 32792;
pub const AVCodecID_AV_CODEC_ID_FMVC: AVCodecID = 32793;
pub const AVCodecID_AV_CODEC_ID_SCPR: AVCodecID = 32794;
pub const AVCodecID_AV_CODEC_ID_CLEARVIDEO: AVCodecID = 32795;
pub const AVCodecID_AV_CODEC_ID_XPM: AVCodecID = 32796;
pub const AVCodecID_AV_CODEC_ID_AV1: AVCodecID = 32797;
pub const AVCodecID_AV_CODEC_ID_BITPACKED: AVCodecID = 32798;
pub const AVCodecID_AV_CODEC_ID_MSCC: AVCodecID = 32799;
pub const AVCodecID_AV_CODEC_ID_SRGC: AVCodecID = 32800;
pub const AVCodecID_AV_CODEC_ID_SVG: AVCodecID = 32801;
pub const AVCodecID_AV_CODEC_ID_GDV: AVCodecID = 32802;
pub const AVCodecID_AV_CODEC_ID_FITS: AVCodecID = 32803;
pub const AVCodecID_AV_CODEC_ID_IMM4: AVCodecID = 32804;
pub const AVCodecID_AV_CODEC_ID_PROSUMER: AVCodecID = 32805;
pub const AVCodecID_AV_CODEC_ID_MWSC: AVCodecID = 32806;
pub const AVCodecID_AV_CODEC_ID_WCMV: AVCodecID = 32807;
pub const AVCodecID_AV_CODEC_ID_RASC: AVCodecID = 32808;
#[doc = "< A dummy id pointing at the start of audio codecs"]
pub const AVCodecID_AV_CODEC_ID_FIRST_AUDIO: AVCodecID = 65536;
pub const AVCodecID_AV_CODEC_ID_PCM_S16LE: AVCodecID = 65536;
pub const AVCodecID_AV_CODEC_ID_PCM_S16BE: AVCodecID = 65537;
pub const AVCodecID_AV_CODEC_ID_PCM_U16LE: AVCodecID = 65538;
pub const AVCodecID_AV_CODEC_ID_PCM_U16BE: AVCodecID = 65539;
pub const AVCodecID_AV_CODEC_ID_PCM_S8: AVCodecID = 65540;
pub const AVCodecID_AV_CODEC_ID_PCM_U8: AVCodecID = 65541;
pub const AVCodecID_AV_CODEC_ID_PCM_MULAW: AVCodecID = 65542;
pub const AVCodecID_AV_CODEC_ID_PCM_ALAW: AVCodecID = 65543;
pub const AVCodecID_AV_CODEC_ID_PCM_S32LE: AVCodecID = 65544;
pub const AVCodecID_AV_CODEC_ID_PCM_S32BE: AVCodecID = 65545;
pub const AVCodecID_AV_CODEC_ID_PCM_U32LE: AVCodecID = 65546;
pub const AVCodecID_AV_CODEC_ID_PCM_U32BE: AVCodecID = 65547;
pub const AVCodecID_AV_CODEC_ID_PCM_S24LE: AVCodecID = 65548;
pub const AVCodecID_AV_CODEC_ID_PCM_S24BE: AVCodecID = 65549;
pub const AVCodecID_AV_CODEC_ID_PCM_U24LE: AVCodecID = 65550;
pub const AVCodecID_AV_CODEC_ID_PCM_U24BE: AVCodecID = 65551;
pub const AVCodecID_AV_CODEC_ID_PCM_S24DAUD: AVCodecID = 65552;
pub const AVCodecID_AV_CODEC_ID_PCM_ZORK: AVCodecID = 65553;
pub const AVCodecID_AV_CODEC_ID_PCM_S16LE_PLANAR: AVCodecID = 65554;
pub const AVCodecID_AV_CODEC_ID_PCM_DVD: AVCodecID = 65555;
pub const AVCodecID_AV_CODEC_ID_PCM_F32BE: AVCodecID = 65556;
pub const AVCodecID_AV_CODEC_ID_PCM_F32LE: AVCodecID = 65557;
pub const AVCodecID_AV_CODEC_ID_PCM_F64BE: AVCodecID = 65558;
pub const AVCodecID_AV_CODEC_ID_PCM_F64LE: AVCodecID = 65559;
pub const AVCodecID_AV_CODEC_ID_PCM_BLURAY: AVCodecID = 65560;
pub const AVCodecID_AV_CODEC_ID_PCM_LXF: AVCodecID = 65561;
pub const AVCodecID_AV_CODEC_ID_S302M: AVCodecID = 65562;
pub const AVCodecID_AV_CODEC_ID_PCM_S8_PLANAR: AVCodecID = 65563;
pub const AVCodecID_AV_CODEC_ID_PCM_S24LE_PLANAR: AVCodecID = 65564;
pub const AVCodecID_AV_CODEC_ID_PCM_S32LE_PLANAR: AVCodecID = 65565;
pub const AVCodecID_AV_CODEC_ID_PCM_S16BE_PLANAR: AVCodecID = 65566;
pub const AVCodecID_AV_CODEC_ID_PCM_S64LE: AVCodecID = 67584;
pub const AVCodecID_AV_CODEC_ID_PCM_S64BE: AVCodecID = 67585;
pub const AVCodecID_AV_CODEC_ID_PCM_F16LE: AVCodecID = 67586;
pub const AVCodecID_AV_CODEC_ID_PCM_F24LE: AVCodecID = 67587;
pub const AVCodecID_AV_CODEC_ID_PCM_VIDC: AVCodecID = 67588;
pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_QT: AVCodecID = 69632;
pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_WAV: AVCodecID = 69633;
pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_DK3: AVCodecID = 69634;
pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_DK4: AVCodecID = 69635;
pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_WS: AVCodecID = 69636;
pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_SMJPEG: AVCodecID = 69637;
pub const AVCodecID_AV_CODEC_ID_ADPCM_MS: AVCodecID = 69638;
pub const AVCodecID_AV_CODEC_ID_ADPCM_4XM: AVCodecID = 69639;
pub const AVCodecID_AV_CODEC_ID_ADPCM_XA: AVCodecID = 69640;
pub const AVCodecID_AV_CODEC_ID_ADPCM_ADX: AVCodecID = 69641;
pub const AVCodecID_AV_CODEC_ID_ADPCM_EA: AVCodecID = 69642;
pub const AVCodecID_AV_CODEC_ID_ADPCM_G726: AVCodecID = 69643;
pub const AVCodecID_AV_CODEC_ID_ADPCM_CT: AVCodecID = 69644;
pub const AVCodecID_AV_CODEC_ID_ADPCM_SWF: AVCodecID = 69645;
pub const AVCodecID_AV_CODEC_ID_ADPCM_YAMAHA: AVCodecID = 69646;
pub const AVCodecID_AV_CODEC_ID_ADPCM_SBPRO_4: AVCodecID = 69647;
pub const AVCodecID_AV_CODEC_ID_ADPCM_SBPRO_3: AVCodecID = 69648;
pub const AVCodecID_AV_CODEC_ID_ADPCM_SBPRO_2: AVCodecID = 69649;
pub const AVCodecID_AV_CODEC_ID_ADPCM_THP: AVCodecID = 69650;
pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_AMV: AVCodecID = 69651;
pub const AVCodecID_AV_CODEC_ID_ADPCM_EA_R1: AVCodecID = 69652;
pub const AVCodecID_AV_CODEC_ID_ADPCM_EA_R3: AVCodecID = 69653;
pub const AVCodecID_AV_CODEC_ID_ADPCM_EA_R2: AVCodecID = 69654;
pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_EA_SEAD: AVCodecID = 69655;
pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_EA_EACS: AVCodecID = 69656;
pub const AVCodecID_AV_CODEC_ID_ADPCM_EA_XAS: AVCodecID = 69657;
pub const AVCodecID_AV_CODEC_ID_ADPCM_EA_MAXIS_XA: AVCodecID = 69658;
pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_ISS: AVCodecID = 69659;
pub const AVCodecID_AV_CODEC_ID_ADPCM_G722: AVCodecID = 69660;
pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_APC: AVCodecID = 69661;
pub const AVCodecID_AV_CODEC_ID_ADPCM_VIMA: AVCodecID = 69662;
pub const AVCodecID_AV_CODEC_ID_ADPCM_AFC: AVCodecID = 71680;
pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_OKI: AVCodecID = 71681;
pub const AVCodecID_AV_CODEC_ID_ADPCM_DTK: AVCodecID = 71682;
pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_RAD: AVCodecID = 71683;
pub const AVCodecID_AV_CODEC_ID_ADPCM_G726LE: AVCodecID = 71684;
pub const AVCodecID_AV_CODEC_ID_ADPCM_THP_LE: AVCodecID = 71685;
pub const AVCodecID_AV_CODEC_ID_ADPCM_PSX: AVCodecID = 71686;
pub const AVCodecID_AV_CODEC_ID_ADPCM_AICA: AVCodecID = 71687;
pub const AVCodecID_AV_CODEC_ID_ADPCM_IMA_DAT4: AVCodecID = 71688;
pub const AVCodecID_AV_CODEC_ID_ADPCM_MTAF: AVCodecID = 71689;
pub const AVCodecID_AV_CODEC_ID_AMR_NB: AVCodecID = 73728;
pub const AVCodecID_AV_CODEC_ID_AMR_WB: AVCodecID = 73729;
pub const AVCodecID_AV_CODEC_ID_RA_144: AVCodecID = 77824;
pub const AVCodecID_AV_CODEC_ID_RA_288: AVCodecID = 77825;
pub const AVCodecID_AV_CODEC_ID_ROQ_DPCM: AVCodecID = 81920;
pub const AVCodecID_AV_CODEC_ID_INTERPLAY_DPCM: AVCodecID = 81921;
pub const AVCodecID_AV_CODEC_ID_XAN_DPCM: AVCodecID = 81922;
pub const AVCodecID_AV_CODEC_ID_SOL_DPCM: AVCodecID = 81923;
pub const AVCodecID_AV_CODEC_ID_SDX2_DPCM: AVCodecID = 83968;
pub const AVCodecID_AV_CODEC_ID_GREMLIN_DPCM: AVCodecID = 83969;
pub const AVCodecID_AV_CODEC_ID_MP2: AVCodecID = 86016;
#[doc = "< preferred ID for decoding MPEG audio layer 1, 2 or 3"]
pub const AVCodecID_AV_CODEC_ID_MP3: AVCodecID = 86017;
pub const AVCodecID_AV_CODEC_ID_AAC: AVCodecID = 86018;
pub const AVCodecID_AV_CODEC_ID_AC3: AVCodecID = 86019;
pub const AVCodecID_AV_CODEC_ID_DTS: AVCodecID = 86020;
pub const AVCodecID_AV_CODEC_ID_VORBIS: AVCodecID = 86021;
pub const AVCodecID_AV_CODEC_ID_DVAUDIO: AVCodecID = 86022;
pub const AVCodecID_AV_CODEC_ID_WMAV1: AVCodecID = 86023;
pub const AVCodecID_AV_CODEC_ID_WMAV2: AVCodecID = 86024;
pub const AVCodecID_AV_CODEC_ID_MACE3: AVCodecID = 86025;
pub const AVCodecID_AV_CODEC_ID_MACE6: AVCodecID = 86026;
pub const AVCodecID_AV_CODEC_ID_VMDAUDIO: AVCodecID = 86027;
pub const AVCodecID_AV_CODEC_ID_FLAC: AVCodecID = 86028;
pub const AVCodecID_AV_CODEC_ID_MP3ADU: AVCodecID = 86029;
pub const AVCodecID_AV_CODEC_ID_MP3ON4: AVCodecID = 86030;
pub const AVCodecID_AV_CODEC_ID_SHORTEN: AVCodecID = 86031;
pub const AVCodecID_AV_CODEC_ID_ALAC: AVCodecID = 86032;
pub const AVCodecID_AV_CODEC_ID_WESTWOOD_SND1: AVCodecID = 86033;
#[doc = "< as in Berlin toast format"]
pub const AVCodecID_AV_CODEC_ID_GSM: AVCodecID = 86034;
pub const AVCodecID_AV_CODEC_ID_QDM2: AVCodecID = 86035;
pub const AVCodecID_AV_CODEC_ID_COOK: AVCodecID = 86036;
pub const AVCodecID_AV_CODEC_ID_TRUESPEECH: AVCodecID = 86037;
pub const AVCodecID_AV_CODEC_ID_TTA: AVCodecID = 86038;
pub const AVCodecID_AV_CODEC_ID_SMACKAUDIO: AVCodecID = 86039;
pub const AVCodecID_AV_CODEC_ID_QCELP: AVCodecID = 86040;
pub const AVCodecID_AV_CODEC_ID_WAVPACK: AVCodecID = 86041;
pub const AVCodecID_AV_CODEC_ID_DSICINAUDIO: AVCodecID = 86042;
pub const AVCodecID_AV_CODEC_ID_IMC: AVCodecID = 86043;
pub const AVCodecID_AV_CODEC_ID_MUSEPACK7: AVCodecID = 86044;
pub const AVCodecID_AV_CODEC_ID_MLP: AVCodecID = 86045;
pub const AVCodecID_AV_CODEC_ID_GSM_MS: AVCodecID = 86046;
pub const AVCodecID_AV_CODEC_ID_ATRAC3: AVCodecID = 86047;
pub const AVCodecID_AV_CODEC_ID_APE: AVCodecID = 86048;
pub const AVCodecID_AV_CODEC_ID_NELLYMOSER: AVCodecID = 86049;
pub const AVCodecID_AV_CODEC_ID_MUSEPACK8: AVCodecID = 86050;
pub const AVCodecID_AV_CODEC_ID_SPEEX: AVCodecID = 86051;
pub const AVCodecID_AV_CODEC_ID_WMAVOICE: AVCodecID = 86052;
pub const AVCodecID_AV_CODEC_ID_WMAPRO: AVCodecID = 86053;
pub const AVCodecID_AV_CODEC_ID_WMALOSSLESS: AVCodecID = 86054;
pub const AVCodecID_AV_CODEC_ID_ATRAC3P: AVCodecID = 86055;
pub const AVCodecID_AV_CODEC_ID_EAC3: AVCodecID = 86056;
pub const AVCodecID_AV_CODEC_ID_SIPR: AVCodecID = 86057;
pub const AVCodecID_AV_CODEC_ID_MP1: AVCodecID = 86058;
pub const AVCodecID_AV_CODEC_ID_TWINVQ: AVCodecID = 86059;
pub const AVCodecID_AV_CODEC_ID_TRUEHD: AVCodecID = 86060;
pub const AVCodecID_AV_CODEC_ID_MP4ALS: AVCodecID = 86061;
pub const AVCodecID_AV_CODEC_ID_ATRAC1: AVCodecID = 86062;
pub const AVCodecID_AV_CODEC_ID_BINKAUDIO_RDFT: AVCodecID = 86063;
pub const AVCodecID_AV_CODEC_ID_BINKAUDIO_DCT: AVCodecID = 86064;
pub const AVCodecID_AV_CODEC_ID_AAC_LATM: AVCodecID = 86065;
pub const AVCodecID_AV_CODEC_ID_QDMC: AVCodecID = 86066;
pub const AVCodecID_AV_CODEC_ID_CELT: AVCodecID = 86067;
pub const AVCodecID_AV_CODEC_ID_G723_1: AVCodecID = 86068;
pub const AVCodecID_AV_CODEC_ID_G729: AVCodecID = 86069;
pub const AVCodecID_AV_CODEC_ID_8SVX_EXP: AVCodecID = 86070;
pub const AVCodecID_AV_CODEC_ID_8SVX_FIB: AVCodecID = 86071;
pub const AVCodecID_AV_CODEC_ID_BMV_AUDIO: AVCodecID = 86072;
pub const AVCodecID_AV_CODEC_ID_RALF: AVCodecID = 86073;
pub const AVCodecID_AV_CODEC_ID_IAC: AVCodecID = 86074;
pub const AVCodecID_AV_CODEC_ID_ILBC: AVCodecID = 86075;
pub const AVCodecID_AV_CODEC_ID_OPUS: AVCodecID = 86076;
pub const AVCodecID_AV_CODEC_ID_COMFORT_NOISE: AVCodecID = 86077;
pub const AVCodecID_AV_CODEC_ID_TAK: AVCodecID = 86078;
pub const AVCodecID_AV_CODEC_ID_METASOUND: AVCodecID = 86079;
pub const AVCodecID_AV_CODEC_ID_PAF_AUDIO: AVCodecID = 86080;
pub const AVCodecID_AV_CODEC_ID_ON2AVC: AVCodecID = 86081;
pub const AVCodecID_AV_CODEC_ID_DSS_SP: AVCodecID = 86082;
pub const AVCodecID_AV_CODEC_ID_CODEC2: AVCodecID = 86083;
pub const AVCodecID_AV_CODEC_ID_FFWAVESYNTH: AVCodecID = 88064;
pub const AVCodecID_AV_CODEC_ID_SONIC: AVCodecID = 88065;
pub const AVCodecID_AV_CODEC_ID_SONIC_LS: AVCodecID = 88066;
pub const AVCodecID_AV_CODEC_ID_EVRC: AVCodecID = 88067;
pub const AVCodecID_AV_CODEC_ID_SMV: AVCodecID = 88068;
pub const AVCodecID_AV_CODEC_ID_DSD_LSBF: AVCodecID = 88069;
pub const AVCodecID_AV_CODEC_ID_DSD_MSBF: AVCodecID = 88070;
pub const AVCodecID_AV_CODEC_ID_DSD_LSBF_PLANAR: AVCodecID = 88071;
pub const AVCodecID_AV_CODEC_ID_DSD_MSBF_PLANAR: AVCodecID = 88072;
pub const AVCodecID_AV_CODEC_ID_4GV: AVCodecID = 88073;
pub const AVCodecID_AV_CODEC_ID_INTERPLAY_ACM: AVCodecID = 88074;
pub const AVCodecID_AV_CODEC_ID_XMA1: AVCodecID = 88075;
pub const AVCodecID_AV_CODEC_ID_XMA2: AVCodecID = 88076;
pub const AVCodecID_AV_CODEC_ID_DST: AVCodecID = 88077;
pub const AVCodecID_AV_CODEC_ID_ATRAC3AL: AVCodecID = 88078;
pub const AVCodecID_AV_CODEC_ID_ATRAC3PAL: AVCodecID = 88079;
pub const AVCodecID_AV_CODEC_ID_DOLBY_E: AVCodecID = 88080;
pub const AVCodecID_AV_CODEC_ID_APTX: AVCodecID = 88081;
pub const AVCodecID_AV_CODEC_ID_APTX_HD: AVCodecID = 88082;
pub const AVCodecID_AV_CODEC_ID_SBC: AVCodecID = 88083;
pub const AVCodecID_AV_CODEC_ID_ATRAC9: AVCodecID = 88084;
#[doc = "< A dummy ID pointing at the start of subtitle codecs."]
pub const AVCodecID_AV_CODEC_ID_FIRST_SUBTITLE: AVCodecID = 94208;
pub const AVCodecID_AV_CODEC_ID_DVD_SUBTITLE: AVCodecID = 94208;
pub const AVCodecID_AV_CODEC_ID_DVB_SUBTITLE: AVCodecID = 94209;
#[doc = "< raw UTF-8 text"]
pub const AVCodecID_AV_CODEC_ID_TEXT: AVCodecID = 94210;
pub const AVCodecID_AV_CODEC_ID_XSUB: AVCodecID = 94211;
pub const AVCodecID_AV_CODEC_ID_SSA: AVCodecID = 94212;
pub const AVCodecID_AV_CODEC_ID_MOV_TEXT: AVCodecID = 94213;
pub const AVCodecID_AV_CODEC_ID_HDMV_PGS_SUBTITLE: AVCodecID = 94214;
pub const AVCodecID_AV_CODEC_ID_DVB_TELETEXT: AVCodecID = 94215;
pub const AVCodecID_AV_CODEC_ID_SRT: AVCodecID = 94216;
pub const AVCodecID_AV_CODEC_ID_MICRODVD: AVCodecID = 96256;
pub const AVCodecID_AV_CODEC_ID_EIA_608: AVCodecID = 96257;
pub const AVCodecID_AV_CODEC_ID_JACOSUB: AVCodecID = 96258;
pub const AVCodecID_AV_CODEC_ID_SAMI: AVCodecID = 96259;
pub const AVCodecID_AV_CODEC_ID_REALTEXT: AVCodecID = 96260;
pub const AVCodecID_AV_CODEC_ID_STL: AVCodecID = 96261;
pub const AVCodecID_AV_CODEC_ID_SUBVIEWER1: AVCodecID = 96262;
pub const AVCodecID_AV_CODEC_ID_SUBVIEWER: AVCodecID = 96263;
pub const AVCodecID_AV_CODEC_ID_SUBRIP: AVCodecID = 96264;
pub const AVCodecID_AV_CODEC_ID_WEBVTT: AVCodecID = 96265;
pub const AVCodecID_AV_CODEC_ID_MPL2: AVCodecID = 96266;
pub const AVCodecID_AV_CODEC_ID_VPLAYER: AVCodecID = 96267;
pub const AVCodecID_AV_CODEC_ID_PJS: AVCodecID = 96268;
pub const AVCodecID_AV_CODEC_ID_ASS: AVCodecID = 96269;
pub const AVCodecID_AV_CODEC_ID_HDMV_TEXT_SUBTITLE: AVCodecID = 96270;
pub const AVCodecID_AV_CODEC_ID_TTML: AVCodecID = 96271;
#[doc = "< A dummy ID pointing at the start of various fake codecs."]
pub const AVCodecID_AV_CODEC_ID_FIRST_UNKNOWN: AVCodecID = 98304;
pub const AVCodecID_AV_CODEC_ID_TTF: AVCodecID = 98304;
#[doc = "< Contain timestamp estimated through PCR of program stream."]
pub const AVCodecID_AV_CODEC_ID_SCTE_35: AVCodecID = 98305;
pub const AVCodecID_AV_CODEC_ID_BINTEXT: AVCodecID = 100352;
pub const AVCodecID_AV_CODEC_ID_XBIN: AVCodecID = 100353;
pub const AVCodecID_AV_CODEC_ID_IDF: AVCodecID = 100354;
pub const AVCodecID_AV_CODEC_ID_OTF: AVCodecID = 100355;
pub const AVCodecID_AV_CODEC_ID_SMPTE_KLV: AVCodecID = 100356;
pub const AVCodecID_AV_CODEC_ID_DVD_NAV: AVCodecID = 100357;
pub const AVCodecID_AV_CODEC_ID_TIMED_ID3: AVCodecID = 100358;
pub const AVCodecID_AV_CODEC_ID_BIN_DATA: AVCodecID = 100359;
#[doc = "< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it"]
pub const AVCodecID_AV_CODEC_ID_PROBE: AVCodecID = 102400;
#[doc = "< _FAKE_ codec to indicate a raw MPEG-2 TS"]
#[doc = " stream (only used by libavformat)"]
pub const AVCodecID_AV_CODEC_ID_MPEG2TS: AVCodecID = 131072;
#[doc = "< _FAKE_ codec to indicate a MPEG-4 Systems"]
#[doc = " stream (only used by libavformat)"]
pub const AVCodecID_AV_CODEC_ID_MPEG4SYSTEMS: AVCodecID = 131073;
#[doc = "< Dummy codec for streams containing only metadata information."]
pub const AVCodecID_AV_CODEC_ID_FFMETADATA: AVCodecID = 135168;
#[doc = "< Passthrough codec, AVFrames wrapped in AVPacket"]
pub const AVCodecID_AV_CODEC_ID_WRAPPED_AVFRAME: AVCodecID = 135169;
#[doc = " Identify the syntax and semantics of the bitstream."]
#[doc = " The principle is roughly:"]
#[doc = " Two decoders with the same ID can decode the same streams."]
#[doc = " Two encoders with the same ID can encode compatible streams."]
#[doc = " There may be slight deviations from the principle due to implementation"]
#[doc = " details."]
#[doc = ""]
#[doc = " If you add a codec ID to this list, add it so that"]
#[doc = " 1. no value of an existing codec ID changes (that would break ABI),"]
#[doc = " 2. it is as close as possible to similar codecs"]
#[doc = ""]
#[doc = " After adding new codec IDs, do not forget to add an entry to the codec"]
#[doc = " descriptor list and bump libavcodec minor version."]
pub type AVCodecID = u32;
#[doc = " This struct describes the properties of a single codec described by an"]
#[doc = " AVCodecID."]
#[doc = " @see avcodec_descriptor_get()"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVCodecDescriptor {
pub id: AVCodecID,
pub type_: AVMediaType,
#[doc = " Name of the codec described by this descriptor. It is non-empty and"]
#[doc = " unique for each codec descriptor. It should contain alphanumeric"]
#[doc = " characters and \'_\' only."]
pub name: *const ::std::os::raw::c_char,
#[doc = " A more descriptive name for this codec. May be NULL."]
pub long_name: *const ::std::os::raw::c_char,
#[doc = " Codec properties, a combination of AV_CODEC_PROP_* flags."]
pub props: ::std::os::raw::c_int,
#[doc = " MIME type(s) associated with the codec."]
#[doc = " May be NULL; if not, a NULL-terminated array of MIME types."]
#[doc = " The first item is always non-NULL and is the preferred MIME type."]
pub mime_types: *const *const ::std::os::raw::c_char,
#[doc = " If non-NULL, an array of profiles recognized for this codec."]
#[doc = " Terminated with FF_PROFILE_UNKNOWN."]
pub profiles: *const AVProfile,
}
#[doc = "< discard nothing"]
pub const AVDiscard_AVDISCARD_NONE: AVDiscard = -16;
#[doc = "< discard useless packets like 0 size packets in avi"]
pub const AVDiscard_AVDISCARD_DEFAULT: AVDiscard = 0;
#[doc = "< discard all non reference"]
pub const AVDiscard_AVDISCARD_NONREF: AVDiscard = 8;
#[doc = "< discard all bidirectional frames"]
pub const AVDiscard_AVDISCARD_BIDIR: AVDiscard = 16;
#[doc = "< discard all non intra frames"]
pub const AVDiscard_AVDISCARD_NONINTRA: AVDiscard = 24;
#[doc = "< discard all frames except keyframes"]
pub const AVDiscard_AVDISCARD_NONKEY: AVDiscard = 32;
#[doc = "< discard all"]
pub const AVDiscard_AVDISCARD_ALL: AVDiscard = 48;
#[doc = " @ingroup lavc_decoding"]
pub type AVDiscard = i32;
pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_MAIN: AVAudioServiceType = 0;
pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_EFFECTS: AVAudioServiceType = 1;
pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED: AVAudioServiceType = 2;
pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED: AVAudioServiceType = 3;
pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_DIALOGUE: AVAudioServiceType = 4;
pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_COMMENTARY: AVAudioServiceType = 5;
pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_EMERGENCY: AVAudioServiceType = 6;
pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_VOICE_OVER: AVAudioServiceType = 7;
pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_KARAOKE: AVAudioServiceType = 8;
#[doc = "< Not part of ABI"]
pub const AVAudioServiceType_AV_AUDIO_SERVICE_TYPE_NB: AVAudioServiceType = 9;
pub type AVAudioServiceType = u32;
#[doc = " @ingroup lavc_encoding"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RcOverride {
pub start_frame: ::std::os::raw::c_int,
pub end_frame: ::std::os::raw::c_int,
pub qscale: ::std::os::raw::c_int,
pub quality_factor: f32,
}
#[doc = " Pan Scan area."]
#[doc = " This specifies the area which should be displayed."]
#[doc = " Note there may be multiple such areas for one frame."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVPanScan {
#[doc = " id"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by libavcodec."]
pub id: ::std::os::raw::c_int,
#[doc = " width and height in 1/16 pel"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by libavcodec."]
pub width: ::std::os::raw::c_int,
pub height: ::std::os::raw::c_int,
#[doc = " position of the top left corner in 1/16 pel for up to 3 fields/frames"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by libavcodec."]
pub position: [[i16; 2usize]; 3usize],
}
#[doc = " This structure describes the bitrate properties of an encoded bitstream. It"]
#[doc = " roughly corresponds to a subset the VBV parameters for MPEG-2 or HRD"]
#[doc = " parameters for H.264/HEVC."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVCPBProperties {
#[doc = " Maximum bitrate of the stream, in bits per second."]
#[doc = " Zero if unknown or unspecified."]
pub max_bitrate: ::std::os::raw::c_int,
#[doc = " Minimum bitrate of the stream, in bits per second."]
#[doc = " Zero if unknown or unspecified."]
pub min_bitrate: ::std::os::raw::c_int,
#[doc = " Average bitrate of the stream, in bits per second."]
#[doc = " Zero if unknown or unspecified."]
pub avg_bitrate: ::std::os::raw::c_int,
#[doc = " The size of the buffer to which the ratecontrol is applied, in bits."]
#[doc = " Zero if unknown or unspecified."]
pub buffer_size: ::std::os::raw::c_int,
#[doc = " The delay between the time the packet this structure is associated with"]
#[doc = " is received and the time when it should be decoded, in periods of a 27MHz"]
#[doc = " clock."]
#[doc = ""]
#[doc = " UINT64_MAX when unknown or unspecified."]
pub vbv_delay: u64,
}
#[doc = " An AV_PKT_DATA_PALETTE side data packet contains exactly AVPALETTE_SIZE"]
#[doc = " bytes worth of palette. This side data signals that a new palette is"]
#[doc = " present."]
pub const AVPacketSideDataType_AV_PKT_DATA_PALETTE: AVPacketSideDataType = 0;
#[doc = " The AV_PKT_DATA_NEW_EXTRADATA is used to notify the codec or the format"]
#[doc = " that the extradata buffer was changed and the receiving side should"]
#[doc = " act upon it appropriately. The new extradata is embedded in the side"]
#[doc = " data buffer and should be immediately used for processing the current"]
#[doc = " frame or packet."]
pub const AVPacketSideDataType_AV_PKT_DATA_NEW_EXTRADATA: AVPacketSideDataType = 1;
#[doc = " An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows:"]
#[doc = " @code"]
#[doc = " u32le param_flags"]
#[doc = " if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT)"]
#[doc = " s32le channel_count"]
#[doc = " if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT)"]
#[doc = " u64le channel_layout"]
#[doc = " if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE)"]
#[doc = " s32le sample_rate"]
#[doc = " if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS)"]
#[doc = " s32le width"]
#[doc = " s32le height"]
#[doc = " @endcode"]
pub const AVPacketSideDataType_AV_PKT_DATA_PARAM_CHANGE: AVPacketSideDataType = 2;
#[doc = " An AV_PKT_DATA_H263_MB_INFO side data packet contains a number of"]
#[doc = " structures with info about macroblocks relevant to splitting the"]
#[doc = " packet into smaller packets on macroblock edges (e.g. as for RFC 2190)."]
#[doc = " That is, it does not necessarily contain info about all macroblocks,"]
#[doc = " as long as the distance between macroblocks in the info is smaller"]
#[doc = " than the target payload size."]
#[doc = " Each MB info structure is 12 bytes, and is laid out as follows:"]
#[doc = " @code"]
#[doc = " u32le bit offset from the start of the packet"]
#[doc = " u8 current quantizer at the start of the macroblock"]
#[doc = " u8 GOB number"]
#[doc = " u16le macroblock address within the GOB"]
#[doc = " u8 horizontal MV predictor"]
#[doc = " u8 vertical MV predictor"]
#[doc = " u8 horizontal MV predictor for block number 3"]
#[doc = " u8 vertical MV predictor for block number 3"]
#[doc = " @endcode"]
pub const AVPacketSideDataType_AV_PKT_DATA_H263_MB_INFO: AVPacketSideDataType = 3;
#[doc = " This side data should be associated with an audio stream and contains"]
#[doc = " ReplayGain information in form of the AVReplayGain struct."]
pub const AVPacketSideDataType_AV_PKT_DATA_REPLAYGAIN: AVPacketSideDataType = 4;
#[doc = " This side data contains a 3x3 transformation matrix describing an affine"]
#[doc = " transformation that needs to be applied to the decoded video frames for"]
#[doc = " correct presentation."]
#[doc = ""]
#[doc = " See libavutil/display.h for a detailed description of the data."]
pub const AVPacketSideDataType_AV_PKT_DATA_DISPLAYMATRIX: AVPacketSideDataType = 5;
#[doc = " This side data should be associated with a video stream and contains"]
#[doc = " Stereoscopic 3D information in form of the AVStereo3D struct."]
pub const AVPacketSideDataType_AV_PKT_DATA_STEREO3D: AVPacketSideDataType = 6;
#[doc = " This side data should be associated with an audio stream and corresponds"]
#[doc = " to enum AVAudioServiceType."]
pub const AVPacketSideDataType_AV_PKT_DATA_AUDIO_SERVICE_TYPE: AVPacketSideDataType = 7;
#[doc = " This side data contains quality related information from the encoder."]
#[doc = " @code"]
#[doc = " u32le quality factor of the compressed frame. Allowed range is between 1 (good) and FF_LAMBDA_MAX (bad)."]
#[doc = " u8 picture type"]
#[doc = " u8 error count"]
#[doc = " u16 reserved"]
#[doc = " u64le[error count] sum of squared differences between encoder in and output"]
#[doc = " @endcode"]
pub const AVPacketSideDataType_AV_PKT_DATA_QUALITY_STATS: AVPacketSideDataType = 8;
#[doc = " This side data contains an integer value representing the stream index"]
#[doc = " of a \"fallback\" track. A fallback track indicates an alternate"]
#[doc = " track to use when the current track can not be decoded for some reason."]
#[doc = " e.g. no decoder available for codec."]
pub const AVPacketSideDataType_AV_PKT_DATA_FALLBACK_TRACK: AVPacketSideDataType = 9;
#[doc = " This side data corresponds to the AVCPBProperties struct."]
pub const AVPacketSideDataType_AV_PKT_DATA_CPB_PROPERTIES: AVPacketSideDataType = 10;
#[doc = " Recommmends skipping the specified number of samples"]
#[doc = " @code"]
#[doc = " u32le number of samples to skip from start of this packet"]
#[doc = " u32le number of samples to skip from end of this packet"]
#[doc = " u8 reason for start skip"]
#[doc = " u8 reason for end skip (0=padding silence, 1=convergence)"]
#[doc = " @endcode"]
pub const AVPacketSideDataType_AV_PKT_DATA_SKIP_SAMPLES: AVPacketSideDataType = 11;
#[doc = " An AV_PKT_DATA_JP_DUALMONO side data packet indicates that"]
#[doc = " the packet may contain \"dual mono\" audio specific to Japanese DTV"]
#[doc = " and if it is true, recommends only the selected channel to be used."]
#[doc = " @code"]
#[doc = " u8 selected channels (0=mail/left, 1=sub/right, 2=both)"]
#[doc = " @endcode"]
pub const AVPacketSideDataType_AV_PKT_DATA_JP_DUALMONO: AVPacketSideDataType = 12;
#[doc = " A list of zero terminated key/value strings. There is no end marker for"]
#[doc = " the list, so it is required to rely on the side data size to stop."]
pub const AVPacketSideDataType_AV_PKT_DATA_STRINGS_METADATA: AVPacketSideDataType = 13;
#[doc = " Subtitle event position"]
#[doc = " @code"]
#[doc = " u32le x1"]
#[doc = " u32le y1"]
#[doc = " u32le x2"]
#[doc = " u32le y2"]
#[doc = " @endcode"]
pub const AVPacketSideDataType_AV_PKT_DATA_SUBTITLE_POSITION: AVPacketSideDataType = 14;
#[doc = " Data found in BlockAdditional element of matroska container. There is"]
#[doc = " no end marker for the data, so it is required to rely on the side data"]
#[doc = " size to recognize the end. 8 byte id (as found in BlockAddId) followed"]
#[doc = " by data."]
pub const AVPacketSideDataType_AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL: AVPacketSideDataType = 15;
#[doc = " The optional first identifier line of a WebVTT cue."]
pub const AVPacketSideDataType_AV_PKT_DATA_WEBVTT_IDENTIFIER: AVPacketSideDataType = 16;
#[doc = " The optional settings (rendering instructions) that immediately"]
#[doc = " follow the timestamp specifier of a WebVTT cue."]
pub const AVPacketSideDataType_AV_PKT_DATA_WEBVTT_SETTINGS: AVPacketSideDataType = 17;
#[doc = " A list of zero terminated key/value strings. There is no end marker for"]
#[doc = " the list, so it is required to rely on the side data size to stop. This"]
#[doc = " side data includes updated metadata which appeared in the stream."]
pub const AVPacketSideDataType_AV_PKT_DATA_METADATA_UPDATE: AVPacketSideDataType = 18;
#[doc = " MPEGTS stream ID as uint8_t, this is required to pass the stream ID"]
#[doc = " information from the demuxer to the corresponding muxer."]
pub const AVPacketSideDataType_AV_PKT_DATA_MPEGTS_STREAM_ID: AVPacketSideDataType = 19;
#[doc = " Mastering display metadata (based on SMPTE-2086:2014). This metadata"]
#[doc = " should be associated with a video stream and contains data in the form"]
#[doc = " of the AVMasteringDisplayMetadata struct."]
pub const AVPacketSideDataType_AV_PKT_DATA_MASTERING_DISPLAY_METADATA: AVPacketSideDataType = 20;
#[doc = " This side data should be associated with a video stream and corresponds"]
#[doc = " to the AVSphericalMapping structure."]
pub const AVPacketSideDataType_AV_PKT_DATA_SPHERICAL: AVPacketSideDataType = 21;
#[doc = " Content light level (based on CTA-861.3). This metadata should be"]
#[doc = " associated with a video stream and contains data in the form of the"]
#[doc = " AVContentLightMetadata struct."]
pub const AVPacketSideDataType_AV_PKT_DATA_CONTENT_LIGHT_LEVEL: AVPacketSideDataType = 22;
#[doc = " ATSC A53 Part 4 Closed Captions. This metadata should be associated with"]
#[doc = " a video stream. A53 CC bitstream is stored as uint8_t in AVPacketSideData.data."]
#[doc = " The number of bytes of CC data is AVPacketSideData.size."]
pub const AVPacketSideDataType_AV_PKT_DATA_A53_CC: AVPacketSideDataType = 23;
#[doc = " This side data is encryption initialization data."]
#[doc = " The format is not part of ABI, use av_encryption_init_info_* methods to"]
#[doc = " access."]
pub const AVPacketSideDataType_AV_PKT_DATA_ENCRYPTION_INIT_INFO: AVPacketSideDataType = 24;
#[doc = " This side data contains encryption info for how to decrypt the packet."]
#[doc = " The format is not part of ABI, use av_encryption_info_* methods to access."]
pub const AVPacketSideDataType_AV_PKT_DATA_ENCRYPTION_INFO: AVPacketSideDataType = 25;
#[doc = " Active Format Description data consisting of a single byte as specified"]
#[doc = " in ETSI TS 101 154 using AVActiveFormatDescription enum."]
pub const AVPacketSideDataType_AV_PKT_DATA_AFD: AVPacketSideDataType = 26;
#[doc = " The number of side data types."]
#[doc = " This is not part of the public API/ABI in the sense that it may"]
#[doc = " change when new side data types are added."]
#[doc = " This must stay the last enum value."]
#[doc = " If its value becomes huge, some code using it"]
#[doc = " needs to be updated as it assumes it to be smaller than other limits."]
pub const AVPacketSideDataType_AV_PKT_DATA_NB: AVPacketSideDataType = 27;
#[doc = " @defgroup lavc_packet AVPacket"]
#[doc = ""]
#[doc = " Types and functions for working with AVPacket."]
#[doc = " @{"]
pub type AVPacketSideDataType = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVPacketSideData {
pub data: *mut u8,
pub size: ::std::os::raw::c_int,
pub type_: AVPacketSideDataType,
}
#[doc = " This structure stores compressed data. It is typically exported by demuxers"]
#[doc = " and then passed as input to decoders, or received as output from encoders and"]
#[doc = " then passed to muxers."]
#[doc = ""]
#[doc = " For video, it should typically contain one compressed frame. For audio it may"]
#[doc = " contain several compressed frames. Encoders are allowed to output empty"]
#[doc = " packets, with no compressed data, containing only side data"]
#[doc = " (e.g. to update some stream parameters at the end of encoding)."]
#[doc = ""]
#[doc = " AVPacket is one of the few structs in FFmpeg, whose size is a part of public"]
#[doc = " ABI. Thus it may be allocated on stack and no new fields can be added to it"]
#[doc = " without libavcodec and libavformat major bump."]
#[doc = ""]
#[doc = " The semantics of data ownership depends on the buf field."]
#[doc = " If it is set, the packet data is dynamically allocated and is"]
#[doc = " valid indefinitely until a call to av_packet_unref() reduces the"]
#[doc = " reference count to 0."]
#[doc = ""]
#[doc = " If the buf field is not set av_packet_ref() would make a copy instead"]
#[doc = " of increasing the reference count."]
#[doc = ""]
#[doc = " The side data is always allocated with av_malloc(), copied by"]
#[doc = " av_packet_ref() and freed by av_packet_unref()."]
#[doc = ""]
#[doc = " @see av_packet_ref"]
#[doc = " @see av_packet_unref"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVPacket {
#[doc = " A reference to the reference-counted buffer where the packet data is"]
#[doc = " stored."]
#[doc = " May be NULL, then the packet data is not reference-counted."]
pub buf: *mut AVBufferRef,
#[doc = " Presentation timestamp in AVStream->time_base units; the time at which"]
#[doc = " the decompressed packet will be presented to the user."]
#[doc = " Can be AV_NOPTS_VALUE if it is not stored in the file."]
#[doc = " pts MUST be larger or equal to dts as presentation cannot happen before"]
#[doc = " decompression, unless one wants to view hex dumps. Some formats misuse"]
#[doc = " the terms dts and pts/cts to mean something different. Such timestamps"]
#[doc = " must be converted to true pts/dts before they are stored in AVPacket."]
pub pts: i64,
#[doc = " Decompression timestamp in AVStream->time_base units; the time at which"]
#[doc = " the packet is decompressed."]
#[doc = " Can be AV_NOPTS_VALUE if it is not stored in the file."]
pub dts: i64,
pub data: *mut u8,
pub size: ::std::os::raw::c_int,
pub stream_index: ::std::os::raw::c_int,
#[doc = " A combination of AV_PKT_FLAG values"]
pub flags: ::std::os::raw::c_int,
#[doc = " Additional packet data that can be provided by the container."]
#[doc = " Packet can contain several types of side information."]
pub side_data: *mut AVPacketSideData,
pub side_data_elems: ::std::os::raw::c_int,
#[doc = " Duration of this packet in AVStream->time_base units, 0 if unknown."]
#[doc = " Equals next_pts - this_pts in presentation order."]
pub duration: i64,
#[doc = "< byte position in stream, -1 if unknown"]
pub pos: i64,
#[doc = " @deprecated Same as the duration field, but as int64_t. This was required"]
#[doc = " for Matroska subtitles, whose duration values could overflow when the"]
#[doc = " duration field was still an int."]
pub convergence_duration: i64,
}
pub const AVSideDataParamChangeFlags_AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT:
AVSideDataParamChangeFlags = 1;
pub const AVSideDataParamChangeFlags_AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT:
AVSideDataParamChangeFlags = 2;
pub const AVSideDataParamChangeFlags_AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE:
AVSideDataParamChangeFlags = 4;
pub const AVSideDataParamChangeFlags_AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS:
AVSideDataParamChangeFlags = 8;
pub type AVSideDataParamChangeFlags = u32;
#[doc = " @}"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVCodecInternal {
_unused: [u8; 0],
}
pub const AVFieldOrder_AV_FIELD_UNKNOWN: AVFieldOrder = 0;
pub const AVFieldOrder_AV_FIELD_PROGRESSIVE: AVFieldOrder = 1;
pub const AVFieldOrder_AV_FIELD_TT: AVFieldOrder = 2;
pub const AVFieldOrder_AV_FIELD_BB: AVFieldOrder = 3;
pub const AVFieldOrder_AV_FIELD_TB: AVFieldOrder = 4;
pub const AVFieldOrder_AV_FIELD_BT: AVFieldOrder = 5;
pub type AVFieldOrder = u32;
#[doc = " main external API structure."]
#[doc = " New fields can be added to the end with minor version bumps."]
#[doc = " Removal, reordering and changes to existing fields require a major"]
#[doc = " version bump."]
#[doc = " You can use AVOptions (av_opt* / av_set/get*()) to access these fields from user"]
#[doc = " applications."]
#[doc = " The name string for AVOptions options matches the associated command line"]
#[doc = " parameter name and can be found in libavcodec/options_table.h"]
#[doc = " The AVOption/command line parameter names differ in some cases from the C"]
#[doc = " structure field names for historic reasons or brevity."]
#[doc = " sizeof(AVCodecContext) must not be used outside libav*."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVCodecContext {
#[doc = " information on struct for av_log"]
#[doc = " - set by avcodec_alloc_context3"]
pub av_class: *const AVClass,
pub log_level_offset: ::std::os::raw::c_int,
pub codec_type: AVMediaType,
pub codec: *const AVCodec,
pub codec_id: AVCodecID,
#[doc = " fourcc (LSB first, so \"ABCD\" -> (\'D\'<<24) + (\'C\'<<16) + (\'B\'<<8) + \'A\')."]
#[doc = " This is used to work around some encoder bugs."]
#[doc = " A demuxer should set this to what is stored in the field used to identify the codec."]
#[doc = " If there are multiple such fields in a container then the demuxer should choose the one"]
#[doc = " which maximizes the information about the used codec."]
#[doc = " If the codec tag field in a container is larger than 32 bits then the demuxer should"]
#[doc = " remap the longer ID to 32 bits with a table or other structure. Alternatively a new"]
#[doc = " extra_codec_tag + size could be added but for this a clear advantage must be demonstrated"]
#[doc = " first."]
#[doc = " - encoding: Set by user, if not then the default based on codec_id will be used."]
#[doc = " - decoding: Set by user, will be converted to uppercase by libavcodec during init."]
pub codec_tag: ::std::os::raw::c_uint,
pub priv_data: *mut ::std::os::raw::c_void,
#[doc = " Private context used for internal data."]
#[doc = ""]
#[doc = " Unlike priv_data, this is not codec-specific. It is used in general"]
#[doc = " libavcodec functions."]
pub internal: *mut AVCodecInternal,
#[doc = " Private data of the user, can be used to carry app specific stuff."]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by user."]
pub opaque: *mut ::std::os::raw::c_void,
#[doc = " the average bitrate"]
#[doc = " - encoding: Set by user; unused for constant quantizer encoding."]
#[doc = " - decoding: Set by user, may be overwritten by libavcodec"]
#[doc = " if this info is available in the stream"]
pub bit_rate: i64,
#[doc = " number of bits the bitstream is allowed to diverge from the reference."]
#[doc = " the reference can be CBR (for CBR pass1) or VBR (for pass2)"]
#[doc = " - encoding: Set by user; unused for constant quantizer encoding."]
#[doc = " - decoding: unused"]
pub bit_rate_tolerance: ::std::os::raw::c_int,
#[doc = " Global quality for codecs which cannot change it per frame."]
#[doc = " This should be proportional to MPEG-1/2/4 qscale."]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub global_quality: ::std::os::raw::c_int,
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub compression_level: ::std::os::raw::c_int,
#[doc = " AV_CODEC_FLAG_*."]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by user."]
pub flags: ::std::os::raw::c_int,
#[doc = " AV_CODEC_FLAG2_*"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by user."]
pub flags2: ::std::os::raw::c_int,
#[doc = " some codecs need / can use extradata like Huffman tables."]
#[doc = " MJPEG: Huffman tables"]
#[doc = " rv10: additional flags"]
#[doc = " MPEG-4: global headers (they can be in the bitstream or here)"]
#[doc = " The allocated memory should be AV_INPUT_BUFFER_PADDING_SIZE bytes larger"]
#[doc = " than extradata_size to avoid problems if it is read with the bitstream reader."]
#[doc = " The bytewise contents of extradata must not depend on the architecture or CPU endianness."]
#[doc = " Must be allocated with the av_malloc() family of functions."]
#[doc = " - encoding: Set/allocated/freed by libavcodec."]
#[doc = " - decoding: Set/allocated/freed by user."]
pub extradata: *mut u8,
pub extradata_size: ::std::os::raw::c_int,
#[doc = " This is the fundamental unit of time (in seconds) in terms"]
#[doc = " of which frame timestamps are represented. For fixed-fps content,"]
#[doc = " timebase should be 1/framerate and timestamp increments should be"]
#[doc = " identically 1."]
#[doc = " This often, but not always is the inverse of the frame rate or field rate"]
#[doc = " for video. 1/time_base is not the average frame rate if the frame rate is not"]
#[doc = " constant."]
#[doc = ""]
#[doc = " Like containers, elementary streams also can store timestamps, 1/time_base"]
#[doc = " is the unit in which these timestamps are specified."]
#[doc = " As example of such codec time base see ISO/IEC 14496-2:2001(E)"]
#[doc = " vop_time_increment_resolution and fixed_vop_rate"]
#[doc = " (fixed_vop_rate == 0 implies that it is different from the framerate)"]
#[doc = ""]
#[doc = " - encoding: MUST be set by user."]
#[doc = " - decoding: the use of this field for decoding is deprecated."]
#[doc = " Use framerate instead."]
pub time_base: AVRational,
#[doc = " For some codecs, the time base is closer to the field rate than the frame rate."]
#[doc = " Most notably, H.264 and MPEG-2 specify time_base as half of frame duration"]
#[doc = " if no telecine is used ..."]
#[doc = ""]
#[doc = " Set to time_base ticks per frame. Default 1, e.g., H.264/MPEG-2 set it to 2."]
pub ticks_per_frame: ::std::os::raw::c_int,
#[doc = " Codec delay."]
#[doc = ""]
#[doc = " Encoding: Number of frames delay there will be from the encoder input to"]
#[doc = " the decoder output. (we assume the decoder matches the spec)"]
#[doc = " Decoding: Number of frames delay in addition to what a standard decoder"]
#[doc = " as specified in the spec would produce."]
#[doc = ""]
#[doc = " Video:"]
#[doc = " Number of frames the decoded output will be delayed relative to the"]
#[doc = " encoded input."]
#[doc = ""]
#[doc = " Audio:"]
#[doc = " For encoding, this field is unused (see initial_padding)."]
#[doc = ""]
#[doc = " For decoding, this is the number of samples the decoder needs to"]
#[doc = " output before the decoder\'s output is valid. When seeking, you should"]
#[doc = " start decoding this many samples prior to your desired seek point."]
#[doc = ""]
#[doc = " - encoding: Set by libavcodec."]
#[doc = " - decoding: Set by libavcodec."]
pub delay: ::std::os::raw::c_int,
#[doc = " picture width / height."]
#[doc = ""]
#[doc = " @note Those fields may not match the values of the last"]
#[doc = " AVFrame output by avcodec_decode_video2 due frame"]
#[doc = " reordering."]
#[doc = ""]
#[doc = " - encoding: MUST be set by user."]
#[doc = " - decoding: May be set by the user before opening the decoder if known e.g."]
#[doc = " from the container. Some decoders will require the dimensions"]
#[doc = " to be set by the caller. During decoding, the decoder may"]
#[doc = " overwrite those values as required while parsing the data."]
pub width: ::std::os::raw::c_int,
#[doc = " picture width / height."]
#[doc = ""]
#[doc = " @note Those fields may not match the values of the last"]
#[doc = " AVFrame output by avcodec_decode_video2 due frame"]
#[doc = " reordering."]
#[doc = ""]
#[doc = " - encoding: MUST be set by user."]
#[doc = " - decoding: May be set by the user before opening the decoder if known e.g."]
#[doc = " from the container. Some decoders will require the dimensions"]
#[doc = " to be set by the caller. During decoding, the decoder may"]
#[doc = " overwrite those values as required while parsing the data."]
pub height: ::std::os::raw::c_int,
#[doc = " Bitstream width / height, may be different from width/height e.g. when"]
#[doc = " the decoded frame is cropped before being output or lowres is enabled."]
#[doc = ""]
#[doc = " @note Those field may not match the value of the last"]
#[doc = " AVFrame output by avcodec_receive_frame() due frame"]
#[doc = " reordering."]
#[doc = ""]
#[doc = " - encoding: unused"]
#[doc = " - decoding: May be set by the user before opening the decoder if known"]
#[doc = " e.g. from the container. During decoding, the decoder may"]
#[doc = " overwrite those values as required while parsing the data."]
pub coded_width: ::std::os::raw::c_int,
#[doc = " Bitstream width / height, may be different from width/height e.g. when"]
#[doc = " the decoded frame is cropped before being output or lowres is enabled."]
#[doc = ""]
#[doc = " @note Those field may not match the value of the last"]
#[doc = " AVFrame output by avcodec_receive_frame() due frame"]
#[doc = " reordering."]
#[doc = ""]
#[doc = " - encoding: unused"]
#[doc = " - decoding: May be set by the user before opening the decoder if known"]
#[doc = " e.g. from the container. During decoding, the decoder may"]
#[doc = " overwrite those values as required while parsing the data."]
pub coded_height: ::std::os::raw::c_int,
#[doc = " the number of pictures in a group of pictures, or 0 for intra_only"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub gop_size: ::std::os::raw::c_int,
#[doc = " Pixel format, see AV_PIX_FMT_xxx."]
#[doc = " May be set by the demuxer if known from headers."]
#[doc = " May be overridden by the decoder if it knows better."]
#[doc = ""]
#[doc = " @note This field may not match the value of the last"]
#[doc = " AVFrame output by avcodec_receive_frame() due frame"]
#[doc = " reordering."]
#[doc = ""]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by user if known, overridden by libavcodec while"]
#[doc = " parsing the data."]
pub pix_fmt: AVPixelFormat,
#[doc = " If non NULL, \'draw_horiz_band\' is called by the libavcodec"]
#[doc = " decoder to draw a horizontal band. It improves cache usage. Not"]
#[doc = " all codecs can do that. You must check the codec capabilities"]
#[doc = " beforehand."]
#[doc = " When multithreading is used, it may be called from multiple threads"]
#[doc = " at the same time; threads might draw different parts of the same AVFrame,"]
#[doc = " or multiple AVFrames, and there is no guarantee that slices will be drawn"]
#[doc = " in order."]
#[doc = " The function is also used by hardware acceleration APIs."]
#[doc = " It is called at least once during frame decoding to pass"]
#[doc = " the data needed for hardware render."]
#[doc = " In that mode instead of pixel data, AVFrame points to"]
#[doc = " a structure specific to the acceleration API. The application"]
#[doc = " reads the structure and can change some fields to indicate progress"]
#[doc = " or mark state."]
#[doc = " - encoding: unused"]
#[doc = " - decoding: Set by user."]
#[doc = " @param height the height of the slice"]
#[doc = " @param y the y position of the slice"]
#[doc = " @param type 1->top field, 2->bottom field, 3->frame"]
#[doc = " @param offset offset into the AVFrame.data from which the slice should be read"]
pub draw_horiz_band: ::std::option::Option<
unsafe extern "C" fn(
s: *mut AVCodecContext,
src: *const AVFrame,
offset: *mut ::std::os::raw::c_int,
y: ::std::os::raw::c_int,
type_: ::std::os::raw::c_int,
height: ::std::os::raw::c_int,
),
>,
#[doc = " callback to negotiate the pixelFormat"]
#[doc = " @param fmt is the list of formats which are supported by the codec,"]
#[doc = " it is terminated by -1 as 0 is a valid format, the formats are ordered by quality."]
#[doc = " The first is always the native one."]
#[doc = " @note The callback may be called again immediately if initialization for"]
#[doc = " the selected (hardware-accelerated) pixel format failed."]
#[doc = " @warning Behavior is undefined if the callback returns a value not"]
#[doc = " in the fmt list of formats."]
#[doc = " @return the chosen format"]
#[doc = " - encoding: unused"]
#[doc = " - decoding: Set by user, if not set the native format will be chosen."]
pub get_format: ::std::option::Option<
unsafe extern "C" fn(s: *mut AVCodecContext, fmt: *const AVPixelFormat) -> AVPixelFormat,
>,
#[doc = " maximum number of B-frames between non-B-frames"]
#[doc = " Note: The output will be delayed by max_b_frames+1 relative to the input."]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub max_b_frames: ::std::os::raw::c_int,
#[doc = " qscale factor between IP and B-frames"]
#[doc = " If > 0 then the last P-frame quantizer will be used (q= lastp_q*factor+offset)."]
#[doc = " If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset)."]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub b_quant_factor: f32,
#[doc = " @deprecated use encoder private options instead"]
pub b_frame_strategy: ::std::os::raw::c_int,
#[doc = " qscale offset between IP and B-frames"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub b_quant_offset: f32,
#[doc = " Size of the frame reordering buffer in the decoder."]
#[doc = " For MPEG-2 it is 1 IPB or 0 low delay IP."]
#[doc = " - encoding: Set by libavcodec."]
#[doc = " - decoding: Set by libavcodec."]
pub has_b_frames: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub mpeg_quant: ::std::os::raw::c_int,
#[doc = " qscale factor between P- and I-frames"]
#[doc = " If > 0 then the last P-frame quantizer will be used (q = lastp_q * factor + offset)."]
#[doc = " If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset)."]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub i_quant_factor: f32,
#[doc = " qscale offset between P and I-frames"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub i_quant_offset: f32,
#[doc = " luminance masking (0-> disabled)"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub lumi_masking: f32,
#[doc = " temporary complexity masking (0-> disabled)"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub temporal_cplx_masking: f32,
#[doc = " spatial complexity masking (0-> disabled)"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub spatial_cplx_masking: f32,
#[doc = " p block masking (0-> disabled)"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub p_masking: f32,
#[doc = " darkness masking (0-> disabled)"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub dark_masking: f32,
#[doc = " slice count"]
#[doc = " - encoding: Set by libavcodec."]
#[doc = " - decoding: Set by user (or 0)."]
pub slice_count: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub prediction_method: ::std::os::raw::c_int,
#[doc = " slice offsets in the frame in bytes"]
#[doc = " - encoding: Set/allocated by libavcodec."]
#[doc = " - decoding: Set/allocated by user (or NULL)."]
pub slice_offset: *mut ::std::os::raw::c_int,
#[doc = " sample aspect ratio (0 if unknown)"]
#[doc = " That is the width of a pixel divided by the height of the pixel."]
#[doc = " Numerator and denominator must be relatively prime and smaller than 256 for some video standards."]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by libavcodec."]
pub sample_aspect_ratio: AVRational,
#[doc = " motion estimation comparison function"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub me_cmp: ::std::os::raw::c_int,
#[doc = " subpixel motion estimation comparison function"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub me_sub_cmp: ::std::os::raw::c_int,
#[doc = " macroblock comparison function (not supported yet)"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub mb_cmp: ::std::os::raw::c_int,
#[doc = " interlaced DCT comparison function"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub ildct_cmp: ::std::os::raw::c_int,
#[doc = " ME diamond size & shape"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub dia_size: ::std::os::raw::c_int,
#[doc = " amount of previous MV predictors (2a+1 x 2a+1 square)"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub last_predictor_count: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub pre_me: ::std::os::raw::c_int,
#[doc = " motion estimation prepass comparison function"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub me_pre_cmp: ::std::os::raw::c_int,
#[doc = " ME prepass diamond size & shape"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub pre_dia_size: ::std::os::raw::c_int,
#[doc = " subpel ME quality"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub me_subpel_quality: ::std::os::raw::c_int,
#[doc = " maximum motion estimation search range in subpel units"]
#[doc = " If 0 then no limit."]
#[doc = ""]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub me_range: ::std::os::raw::c_int,
#[doc = " slice flags"]
#[doc = " - encoding: unused"]
#[doc = " - decoding: Set by user."]
pub slice_flags: ::std::os::raw::c_int,
#[doc = " macroblock decision mode"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub mb_decision: ::std::os::raw::c_int,
#[doc = " custom intra quantization matrix"]
#[doc = " - encoding: Set by user, can be NULL."]
#[doc = " - decoding: Set by libavcodec."]
pub intra_matrix: *mut u16,
#[doc = " custom inter quantization matrix"]
#[doc = " - encoding: Set by user, can be NULL."]
#[doc = " - decoding: Set by libavcodec."]
pub inter_matrix: *mut u16,
#[doc = " @deprecated use encoder private options instead"]
pub scenechange_threshold: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub noise_reduction: ::std::os::raw::c_int,
#[doc = " precision of the intra DC coefficient - 8"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by libavcodec"]
pub intra_dc_precision: ::std::os::raw::c_int,
#[doc = " Number of macroblock rows at the top which are skipped."]
#[doc = " - encoding: unused"]
#[doc = " - decoding: Set by user."]
pub skip_top: ::std::os::raw::c_int,
#[doc = " Number of macroblock rows at the bottom which are skipped."]
#[doc = " - encoding: unused"]
#[doc = " - decoding: Set by user."]
pub skip_bottom: ::std::os::raw::c_int,
#[doc = " minimum MB Lagrange multiplier"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub mb_lmin: ::std::os::raw::c_int,
#[doc = " maximum MB Lagrange multiplier"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub mb_lmax: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub me_penalty_compensation: ::std::os::raw::c_int,
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub bidir_refine: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub brd_scale: ::std::os::raw::c_int,
#[doc = " minimum GOP size"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub keyint_min: ::std::os::raw::c_int,
#[doc = " number of reference frames"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by lavc."]
pub refs: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub chromaoffset: ::std::os::raw::c_int,
#[doc = " Note: Value depends upon the compare function used for fullpel ME."]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub mv0_threshold: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub b_sensitivity: ::std::os::raw::c_int,
#[doc = " Chromaticity coordinates of the source primaries."]
#[doc = " - encoding: Set by user"]
#[doc = " - decoding: Set by libavcodec"]
pub color_primaries: AVColorPrimaries,
#[doc = " Color Transfer Characteristic."]
#[doc = " - encoding: Set by user"]
#[doc = " - decoding: Set by libavcodec"]
pub color_trc: AVColorTransferCharacteristic,
#[doc = " YUV colorspace type."]
#[doc = " - encoding: Set by user"]
#[doc = " - decoding: Set by libavcodec"]
pub colorspace: AVColorSpace,
#[doc = " MPEG vs JPEG YUV range."]
#[doc = " - encoding: Set by user"]
#[doc = " - decoding: Set by libavcodec"]
pub color_range: AVColorRange,
#[doc = " This defines the location of chroma samples."]
#[doc = " - encoding: Set by user"]
#[doc = " - decoding: Set by libavcodec"]
pub chroma_sample_location: AVChromaLocation,
#[doc = " Number of slices."]
#[doc = " Indicates number of picture subdivisions. Used for parallelized"]
#[doc = " decoding."]
#[doc = " - encoding: Set by user"]
#[doc = " - decoding: unused"]
pub slices: ::std::os::raw::c_int,
#[doc = " Field order"]
#[doc = " - encoding: set by libavcodec"]
#[doc = " - decoding: Set by user."]
pub field_order: AVFieldOrder,
#[doc = "< samples per second"]
pub sample_rate: ::std::os::raw::c_int,
#[doc = "< number of audio channels"]
pub channels: ::std::os::raw::c_int,
#[doc = "< sample format"]
pub sample_fmt: AVSampleFormat,
#[doc = " Number of samples per channel in an audio frame."]
#[doc = ""]
#[doc = " - encoding: set by libavcodec in avcodec_open2(). Each submitted frame"]
#[doc = " except the last must contain exactly frame_size samples per channel."]
#[doc = " May be 0 when the codec has AV_CODEC_CAP_VARIABLE_FRAME_SIZE set, then the"]
#[doc = " frame size is not restricted."]
#[doc = " - decoding: may be set by some decoders to indicate constant frame size"]
pub frame_size: ::std::os::raw::c_int,
#[doc = " Frame counter, set by libavcodec."]
#[doc = ""]
#[doc = " - decoding: total number of frames returned from the decoder so far."]
#[doc = " - encoding: total number of frames passed to the encoder so far."]
#[doc = ""]
#[doc = " @note the counter is not incremented if encoding/decoding resulted in"]
#[doc = " an error."]
pub frame_number: ::std::os::raw::c_int,
#[doc = " number of bytes per packet if constant and known or 0"]
#[doc = " Used by some WAV based audio codecs."]
pub block_align: ::std::os::raw::c_int,
#[doc = " Audio cutoff bandwidth (0 means \"automatic\")"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub cutoff: ::std::os::raw::c_int,
#[doc = " Audio channel layout."]
#[doc = " - encoding: set by user."]
#[doc = " - decoding: set by user, may be overwritten by libavcodec."]
pub channel_layout: u64,
#[doc = " Request decoder to use this channel layout if it can (0 for default)"]
#[doc = " - encoding: unused"]
#[doc = " - decoding: Set by user."]
pub request_channel_layout: u64,
#[doc = " Type of service that the audio stream conveys."]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by libavcodec."]
pub audio_service_type: AVAudioServiceType,
#[doc = " desired sample format"]
#[doc = " - encoding: Not used."]
#[doc = " - decoding: Set by user."]
#[doc = " Decoder will decode to this format if it can."]
pub request_sample_fmt: AVSampleFormat,
#[doc = " This callback is called at the beginning of each frame to get data"]
#[doc = " buffer(s) for it. There may be one contiguous buffer for all the data or"]
#[doc = " there may be a buffer per each data plane or anything in between. What"]
#[doc = " this means is, you may set however many entries in buf[] you feel necessary."]
#[doc = " Each buffer must be reference-counted using the AVBuffer API (see description"]
#[doc = " of buf[] below)."]
#[doc = ""]
#[doc = " The following fields will be set in the frame before this callback is"]
#[doc = " called:"]
#[doc = " - format"]
#[doc = " - width, height (video only)"]
#[doc = " - sample_rate, channel_layout, nb_samples (audio only)"]
#[doc = " Their values may differ from the corresponding values in"]
#[doc = " AVCodecContext. This callback must use the frame values, not the codec"]
#[doc = " context values, to calculate the required buffer size."]
#[doc = ""]
#[doc = " This callback must fill the following fields in the frame:"]
#[doc = " - data[]"]
#[doc = " - linesize[]"]
#[doc = " - extended_data:"]
#[doc = " * if the data is planar audio with more than 8 channels, then this"]
#[doc = " callback must allocate and fill extended_data to contain all pointers"]
#[doc = " to all data planes. data[] must hold as many pointers as it can."]
#[doc = " extended_data must be allocated with av_malloc() and will be freed in"]
#[doc = " av_frame_unref()."]
#[doc = " * otherwise extended_data must point to data"]
#[doc = " - buf[] must contain one or more pointers to AVBufferRef structures. Each of"]
#[doc = " the frame\'s data and extended_data pointers must be contained in these. That"]
#[doc = " is, one AVBufferRef for each allocated chunk of memory, not necessarily one"]
#[doc = " AVBufferRef per data[] entry. See: av_buffer_create(), av_buffer_alloc(),"]
#[doc = " and av_buffer_ref()."]
#[doc = " - extended_buf and nb_extended_buf must be allocated with av_malloc() by"]
#[doc = " this callback and filled with the extra buffers if there are more"]
#[doc = " buffers than buf[] can hold. extended_buf will be freed in"]
#[doc = " av_frame_unref()."]
#[doc = ""]
#[doc = " If AV_CODEC_CAP_DR1 is not set then get_buffer2() must call"]
#[doc = " avcodec_default_get_buffer2() instead of providing buffers allocated by"]
#[doc = " some other means."]
#[doc = ""]
#[doc = " Each data plane must be aligned to the maximum required by the target"]
#[doc = " CPU."]
#[doc = ""]
#[doc = " @see avcodec_default_get_buffer2()"]
#[doc = ""]
#[doc = " Video:"]
#[doc = ""]
#[doc = " If AV_GET_BUFFER_FLAG_REF is set in flags then the frame may be reused"]
#[doc = " (read and/or written to if it is writable) later by libavcodec."]
#[doc = ""]
#[doc = " avcodec_align_dimensions2() should be used to find the required width and"]
#[doc = " height, as they normally need to be rounded up to the next multiple of 16."]
#[doc = ""]
#[doc = " Some decoders do not support linesizes changing between frames."]
#[doc = ""]
#[doc = " If frame multithreading is used and thread_safe_callbacks is set,"]
#[doc = " this callback may be called from a different thread, but not from more"]
#[doc = " than one at once. Does not need to be reentrant."]
#[doc = ""]
#[doc = " @see avcodec_align_dimensions2()"]
#[doc = ""]
#[doc = " Audio:"]
#[doc = ""]
#[doc = " Decoders request a buffer of a particular size by setting"]
#[doc = " AVFrame.nb_samples prior to calling get_buffer2(). The decoder may,"]
#[doc = " however, utilize only part of the buffer by setting AVFrame.nb_samples"]
#[doc = " to a smaller value in the output frame."]
#[doc = ""]
#[doc = " As a convenience, av_samples_get_buffer_size() and"]
#[doc = " av_samples_fill_arrays() in libavutil may be used by custom get_buffer2()"]
#[doc = " functions to find the required data size and to fill data pointers and"]
#[doc = " linesize. In AVFrame.linesize, only linesize[0] may be set for audio"]
#[doc = " since all planes must be the same size."]
#[doc = ""]
#[doc = " @see av_samples_get_buffer_size(), av_samples_fill_arrays()"]
#[doc = ""]
#[doc = " - encoding: unused"]
#[doc = " - decoding: Set by libavcodec, user can override."]
pub get_buffer2: ::std::option::Option<
unsafe extern "C" fn(
s: *mut AVCodecContext,
frame: *mut AVFrame,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>,
#[doc = " If non-zero, the decoded audio and video frames returned from"]
#[doc = " avcodec_decode_video2() and avcodec_decode_audio4() are reference-counted"]
#[doc = " and are valid indefinitely. The caller must free them with"]
#[doc = " av_frame_unref() when they are not needed anymore."]
#[doc = " Otherwise, the decoded frames must not be freed by the caller and are"]
#[doc = " only valid until the next decode call."]
#[doc = ""]
#[doc = " This is always automatically enabled if avcodec_receive_frame() is used."]
#[doc = ""]
#[doc = " - encoding: unused"]
#[doc = " - decoding: set by the caller before avcodec_open2()."]
pub refcounted_frames: ::std::os::raw::c_int,
#[doc = "< amount of qscale change between easy & hard scenes (0.0-1.0)"]
pub qcompress: f32,
#[doc = "< amount of qscale smoothing over time (0.0-1.0)"]
pub qblur: f32,
#[doc = " minimum quantizer"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub qmin: ::std::os::raw::c_int,
#[doc = " maximum quantizer"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub qmax: ::std::os::raw::c_int,
#[doc = " maximum quantizer difference between frames"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub max_qdiff: ::std::os::raw::c_int,
#[doc = " decoder bitstream buffer size"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub rc_buffer_size: ::std::os::raw::c_int,
#[doc = " ratecontrol override, see RcOverride"]
#[doc = " - encoding: Allocated/set/freed by user."]
#[doc = " - decoding: unused"]
pub rc_override_count: ::std::os::raw::c_int,
pub rc_override: *mut RcOverride,
#[doc = " maximum bitrate"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by user, may be overwritten by libavcodec."]
pub rc_max_rate: i64,
#[doc = " minimum bitrate"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub rc_min_rate: i64,
#[doc = " Ratecontrol attempt to use, at maximum, <value> of what can be used without an underflow."]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused."]
pub rc_max_available_vbv_use: f32,
#[doc = " Ratecontrol attempt to use, at least, <value> times the amount needed to prevent a vbv overflow."]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused."]
pub rc_min_vbv_overflow_use: f32,
#[doc = " Number of bits which should be loaded into the rc buffer before decoding starts."]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub rc_initial_buffer_occupancy: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub coder_type: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub context_model: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub frame_skip_threshold: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub frame_skip_factor: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub frame_skip_exp: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub frame_skip_cmp: ::std::os::raw::c_int,
#[doc = " trellis RD quantization"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub trellis: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub min_prediction_order: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub max_prediction_order: ::std::os::raw::c_int,
#[doc = " @deprecated use encoder private options instead"]
pub timecode_frame_start: i64,
#[doc = " @deprecated unused"]
pub rtp_callback: ::std::option::Option<
unsafe extern "C" fn(
avctx: *mut AVCodecContext,
data: *mut ::std::os::raw::c_void,
size: ::std::os::raw::c_int,
mb_nb: ::std::os::raw::c_int,
),
>,
#[doc = " @deprecated use encoder private options instead"]
pub rtp_payload_size: ::std::os::raw::c_int,
pub mv_bits: ::std::os::raw::c_int,
pub header_bits: ::std::os::raw::c_int,
pub i_tex_bits: ::std::os::raw::c_int,
pub p_tex_bits: ::std::os::raw::c_int,
pub i_count: ::std::os::raw::c_int,
pub p_count: ::std::os::raw::c_int,
pub skip_count: ::std::os::raw::c_int,
pub misc_bits: ::std::os::raw::c_int,
#[doc = " @deprecated this field is unused"]
pub frame_bits: ::std::os::raw::c_int,
#[doc = " pass1 encoding statistics output buffer"]
#[doc = " - encoding: Set by libavcodec."]
#[doc = " - decoding: unused"]
pub stats_out: *mut ::std::os::raw::c_char,
#[doc = " pass2 encoding statistics input buffer"]
#[doc = " Concatenated stuff from stats_out of pass1 should be placed here."]
#[doc = " - encoding: Allocated/set/freed by user."]
#[doc = " - decoding: unused"]
pub stats_in: *mut ::std::os::raw::c_char,
#[doc = " Work around bugs in encoders which sometimes cannot be detected automatically."]
#[doc = " - encoding: Set by user"]
#[doc = " - decoding: Set by user"]
pub workaround_bugs: ::std::os::raw::c_int,
#[doc = " strictly follow the standard (MPEG-4, ...)."]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by user."]
#[doc = " Setting this to STRICT or higher means the encoder and decoder will"]
#[doc = " generally do stupid things, whereas setting it to unofficial or lower"]
#[doc = " will mean the encoder might produce output that is not supported by all"]
#[doc = " spec-compliant decoders. Decoders don\'t differentiate between normal,"]
#[doc = " unofficial and experimental (that is, they always try to decode things"]
#[doc = " when they can) unless they are explicitly asked to behave stupidly"]
#[doc = " (=strictly conform to the specs)"]
pub strict_std_compliance: ::std::os::raw::c_int,
#[doc = " error concealment flags"]
#[doc = " - encoding: unused"]
#[doc = " - decoding: Set by user."]
pub error_concealment: ::std::os::raw::c_int,
#[doc = " debug"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by user."]
pub debug: ::std::os::raw::c_int,
#[doc = " Error recognition; may misdetect some more or less valid parts as errors."]
#[doc = " - encoding: unused"]
#[doc = " - decoding: Set by user."]
pub err_recognition: ::std::os::raw::c_int,
#[doc = " opaque 64-bit number (generally a PTS) that will be reordered and"]
#[doc = " output in AVFrame.reordered_opaque"]
#[doc = " - encoding: unused"]
#[doc = " - decoding: Set by user."]
pub reordered_opaque: i64,
#[doc = " Hardware accelerator in use"]
#[doc = " - encoding: unused."]
#[doc = " - decoding: Set by libavcodec"]
pub hwaccel: *const AVHWAccel,
#[doc = " Hardware accelerator context."]
#[doc = " For some hardware accelerators, a global context needs to be"]
#[doc = " provided by the user. In that case, this holds display-dependent"]
#[doc = " data FFmpeg cannot instantiate itself. Please refer to the"]
#[doc = " FFmpeg HW accelerator documentation to know how to fill this"]
#[doc = " is. e.g. for VA API, this is a struct vaapi_context."]
#[doc = " - encoding: unused"]
#[doc = " - decoding: Set by user"]
pub hwaccel_context: *mut ::std::os::raw::c_void,
#[doc = " error"]
#[doc = " - encoding: Set by libavcodec if flags & AV_CODEC_FLAG_PSNR."]
#[doc = " - decoding: unused"]
pub error: [u64; 8usize],
#[doc = " DCT algorithm, see FF_DCT_* below"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub dct_algo: ::std::os::raw::c_int,
#[doc = " IDCT algorithm, see FF_IDCT_* below."]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by user."]
pub idct_algo: ::std::os::raw::c_int,
#[doc = " bits per sample/pixel from the demuxer (needed for huffyuv)."]
#[doc = " - encoding: Set by libavcodec."]
#[doc = " - decoding: Set by user."]
pub bits_per_coded_sample: ::std::os::raw::c_int,
#[doc = " Bits per sample/pixel of internal libavcodec pixel/sample format."]
#[doc = " - encoding: set by user."]
#[doc = " - decoding: set by libavcodec."]
pub bits_per_raw_sample: ::std::os::raw::c_int,
#[doc = " low resolution decoding, 1-> 1/2 size, 2->1/4 size"]
#[doc = " - encoding: unused"]
#[doc = " - decoding: Set by user."]
pub lowres: ::std::os::raw::c_int,
#[doc = " the picture in the bitstream"]
#[doc = " - encoding: Set by libavcodec."]
#[doc = " - decoding: unused"]
#[doc = ""]
#[doc = " @deprecated use the quality factor packet side data instead"]
pub coded_frame: *mut AVFrame,
#[doc = " thread count"]
#[doc = " is used to decide how many independent tasks should be passed to execute()"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by user."]
pub thread_count: ::std::os::raw::c_int,
#[doc = " Which multithreading methods to use."]
#[doc = " Use of FF_THREAD_FRAME will increase decoding delay by one frame per thread,"]
#[doc = " so clients which cannot provide future frames should not use it."]
#[doc = ""]
#[doc = " - encoding: Set by user, otherwise the default is used."]
#[doc = " - decoding: Set by user, otherwise the default is used."]
pub thread_type: ::std::os::raw::c_int,
#[doc = " Which multithreading methods are in use by the codec."]
#[doc = " - encoding: Set by libavcodec."]
#[doc = " - decoding: Set by libavcodec."]
pub active_thread_type: ::std::os::raw::c_int,
#[doc = " Set by the client if its custom get_buffer() callback can be called"]
#[doc = " synchronously from another thread, which allows faster multithreaded decoding."]
#[doc = " draw_horiz_band() will be called from other threads regardless of this setting."]
#[doc = " Ignored if the default get_buffer() is used."]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by user."]
pub thread_safe_callbacks: ::std::os::raw::c_int,
#[doc = " The codec may call this to execute several independent things."]
#[doc = " It will return only after finishing all tasks."]
#[doc = " The user may replace this with some multithreaded implementation,"]
#[doc = " the default implementation will execute the parts serially."]
#[doc = " @param count the number of things to execute"]
#[doc = " - encoding: Set by libavcodec, user can override."]
#[doc = " - decoding: Set by libavcodec, user can override."]
pub execute: ::std::option::Option<
unsafe extern "C" fn(
c: *mut AVCodecContext,
func: ::std::option::Option<
unsafe extern "C" fn(
c2: *mut AVCodecContext,
arg: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
>,
arg2: *mut ::std::os::raw::c_void,
ret: *mut ::std::os::raw::c_int,
count: ::std::os::raw::c_int,
size: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>,
#[doc = " The codec may call this to execute several independent things."]
#[doc = " It will return only after finishing all tasks."]
#[doc = " The user may replace this with some multithreaded implementation,"]
#[doc = " the default implementation will execute the parts serially."]
#[doc = " Also see avcodec_thread_init and e.g. the --enable-pthread configure option."]
#[doc = " @param c context passed also to func"]
#[doc = " @param count the number of things to execute"]
#[doc = " @param arg2 argument passed unchanged to func"]
#[doc = " @param ret return values of executed functions, must have space for \"count\" values. May be NULL."]
#[doc = " @param func function that will be called count times, with jobnr from 0 to count-1."]
#[doc = " threadnr will be in the range 0 to c->thread_count-1 < MAX_THREADS and so that no"]
#[doc = " two instances of func executing at the same time will have the same threadnr."]
#[doc = " @return always 0 currently, but code should handle a future improvement where when any call to func"]
#[doc = " returns < 0 no further calls to func may be done and < 0 is returned."]
#[doc = " - encoding: Set by libavcodec, user can override."]
#[doc = " - decoding: Set by libavcodec, user can override."]
pub execute2: ::std::option::Option<
unsafe extern "C" fn(
c: *mut AVCodecContext,
func: ::std::option::Option<
unsafe extern "C" fn(
c2: *mut AVCodecContext,
arg: *mut ::std::os::raw::c_void,
jobnr: ::std::os::raw::c_int,
threadnr: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>,
arg2: *mut ::std::os::raw::c_void,
ret: *mut ::std::os::raw::c_int,
count: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>,
#[doc = " noise vs. sse weight for the nsse comparison function"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: unused"]
pub nsse_weight: ::std::os::raw::c_int,
#[doc = " profile"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by libavcodec."]
pub profile: ::std::os::raw::c_int,
#[doc = " level"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by libavcodec."]
pub level: ::std::os::raw::c_int,
#[doc = " Skip loop filtering for selected frames."]
#[doc = " - encoding: unused"]
#[doc = " - decoding: Set by user."]
pub skip_loop_filter: AVDiscard,
#[doc = " Skip IDCT/dequantization for selected frames."]
#[doc = " - encoding: unused"]
#[doc = " - decoding: Set by user."]
pub skip_idct: AVDiscard,
#[doc = " Skip decoding for selected frames."]
#[doc = " - encoding: unused"]
#[doc = " - decoding: Set by user."]
pub skip_frame: AVDiscard,
#[doc = " Header containing style information for text subtitles."]
#[doc = " For SUBTITLE_ASS subtitle type, it should contain the whole ASS"]
#[doc = " [Script Info] and [V4+ Styles] section, plus the [Events] line and"]
#[doc = " the Format line following. It shouldn\'t include any Dialogue line."]
#[doc = " - encoding: Set/allocated/freed by user (before avcodec_open2())"]
#[doc = " - decoding: Set/allocated/freed by libavcodec (by avcodec_open2())"]
pub subtitle_header: *mut u8,
pub subtitle_header_size: ::std::os::raw::c_int,
#[doc = " VBV delay coded in the last frame (in periods of a 27 MHz clock)."]
#[doc = " Used for compliant TS muxing."]
#[doc = " - encoding: Set by libavcodec."]
#[doc = " - decoding: unused."]
#[doc = " @deprecated this value is now exported as a part of"]
#[doc = " AV_PKT_DATA_CPB_PROPERTIES packet side data"]
pub vbv_delay: u64,
#[doc = " Encoding only and set by default. Allow encoders to output packets"]
#[doc = " that do not contain any encoded data, only side data."]
#[doc = ""]
#[doc = " Some encoders need to output such packets, e.g. to update some stream"]
#[doc = " parameters at the end of encoding."]
#[doc = ""]
#[doc = " @deprecated this field disables the default behaviour and"]
#[doc = " it is kept only for compatibility."]
pub side_data_only_packets: ::std::os::raw::c_int,
#[doc = " Audio only. The number of \"priming\" samples (padding) inserted by the"]
#[doc = " encoder at the beginning of the audio. I.e. this number of leading"]
#[doc = " decoded samples must be discarded by the caller to get the original audio"]
#[doc = " without leading padding."]
#[doc = ""]
#[doc = " - decoding: unused"]
#[doc = " - encoding: Set by libavcodec. The timestamps on the output packets are"]
#[doc = " adjusted by the encoder so that they always refer to the"]
#[doc = " first sample of the data actually contained in the packet,"]
#[doc = " including any added padding. E.g. if the timebase is"]
#[doc = " 1/samplerate and the timestamp of the first input sample is"]
#[doc = " 0, the timestamp of the first output packet will be"]
#[doc = " -initial_padding."]
pub initial_padding: ::std::os::raw::c_int,
#[doc = " - decoding: For codecs that store a framerate value in the compressed"]
#[doc = " bitstream, the decoder may export it here. { 0, 1} when"]
#[doc = " unknown."]
#[doc = " - encoding: May be used to signal the framerate of CFR content to an"]
#[doc = " encoder."]
pub framerate: AVRational,
#[doc = " Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx."]
#[doc = " - encoding: unused."]
#[doc = " - decoding: Set by libavcodec before calling get_format()"]
pub sw_pix_fmt: AVPixelFormat,
#[doc = " Timebase in which pkt_dts/pts and AVPacket.dts/pts are."]
#[doc = " - encoding unused."]
#[doc = " - decoding set by user."]
pub pkt_timebase: AVRational,
#[doc = " AVCodecDescriptor"]
#[doc = " - encoding: unused."]
#[doc = " - decoding: set by libavcodec."]
pub codec_descriptor: *const AVCodecDescriptor,
#[doc = " Current statistics for PTS correction."]
#[doc = " - decoding: maintained and used by libavcodec, not intended to be used by user apps"]
#[doc = " - encoding: unused"]
pub pts_correction_num_faulty_pts: i64,
#[doc = " Number of incorrect PTS values so far"]
pub pts_correction_num_faulty_dts: i64,
#[doc = " Number of incorrect DTS values so far"]
pub pts_correction_last_pts: i64,
#[doc = " PTS of the last frame"]
pub pts_correction_last_dts: i64,
#[doc = " Character encoding of the input subtitles file."]
#[doc = " - decoding: set by user"]
#[doc = " - encoding: unused"]
pub sub_charenc: *mut ::std::os::raw::c_char,
#[doc = " Subtitles character encoding mode. Formats or codecs might be adjusting"]
#[doc = " this setting (if they are doing the conversion themselves for instance)."]
#[doc = " - decoding: set by libavcodec"]
#[doc = " - encoding: unused"]
pub sub_charenc_mode: ::std::os::raw::c_int,
#[doc = " Skip processing alpha if supported by codec."]
#[doc = " Note that if the format uses pre-multiplied alpha (common with VP6,"]
#[doc = " and recommended due to better video quality/compression)"]
#[doc = " the image will look as if alpha-blended onto a black background."]
#[doc = " However for formats that do not use pre-multiplied alpha"]
#[doc = " there might be serious artefacts (though e.g. libswscale currently"]
#[doc = " assumes pre-multiplied alpha anyway)."]
#[doc = ""]
#[doc = " - decoding: set by user"]
#[doc = " - encoding: unused"]
pub skip_alpha: ::std::os::raw::c_int,
#[doc = " Number of samples to skip after a discontinuity"]
#[doc = " - decoding: unused"]
#[doc = " - encoding: set by libavcodec"]
pub seek_preroll: ::std::os::raw::c_int,
#[doc = " debug motion vectors"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by user."]
pub debug_mv: ::std::os::raw::c_int,
#[doc = " custom intra quantization matrix"]
#[doc = " - encoding: Set by user, can be NULL."]
#[doc = " - decoding: unused."]
pub chroma_intra_matrix: *mut u16,
#[doc = " dump format separator."]
#[doc = " can be \", \" or \"\\n \" or anything else"]
#[doc = " - encoding: Set by user."]
#[doc = " - decoding: Set by user."]
pub dump_separator: *mut u8,
#[doc = " \',\' separated list of allowed decoders."]
#[doc = " If NULL then all are allowed"]
#[doc = " - encoding: unused"]
#[doc = " - decoding: set by user"]
pub codec_whitelist: *mut ::std::os::raw::c_char,
#[doc = " Properties of the stream that gets decoded"]
#[doc = " - encoding: unused"]
#[doc = " - decoding: set by libavcodec"]
pub properties: ::std::os::raw::c_uint,
#[doc = " Additional data associated with the entire coded stream."]
#[doc = ""]
#[doc = " - decoding: unused"]
#[doc = " - encoding: may be set by libavcodec after avcodec_open2()."]
pub coded_side_data: *mut AVPacketSideData,
pub nb_coded_side_data: ::std::os::raw::c_int,
#[doc = " A reference to the AVHWFramesContext describing the input (for encoding)"]
#[doc = " or output (decoding) frames. The reference is set by the caller and"]
#[doc = " afterwards owned (and freed) by libavcodec - it should never be read by"]
#[doc = " the caller after being set."]
#[doc = ""]
#[doc = " - decoding: This field should be set by the caller from the get_format()"]
#[doc = " callback. The previous reference (if any) will always be"]
#[doc = " unreffed by libavcodec before the get_format() call."]
#[doc = ""]
#[doc = " If the default get_buffer2() is used with a hwaccel pixel"]
#[doc = " format, then this AVHWFramesContext will be used for"]
#[doc = " allocating the frame buffers."]
#[doc = ""]
#[doc = " - encoding: For hardware encoders configured to use a hwaccel pixel"]
#[doc = " format, this field should be set by the caller to a reference"]
#[doc = " to the AVHWFramesContext describing input frames."]
#[doc = " AVHWFramesContext.format must be equal to"]
#[doc = " AVCodecContext.pix_fmt."]
#[doc = ""]
#[doc = " This field should be set before avcodec_open2() is called."]
pub hw_frames_ctx: *mut AVBufferRef,
#[doc = " Control the form of AVSubtitle.rects[N]->ass"]
#[doc = " - decoding: set by user"]
#[doc = " - encoding: unused"]
pub sub_text_format: ::std::os::raw::c_int,
#[doc = " Audio only. The amount of padding (in samples) appended by the encoder to"]
#[doc = " the end of the audio. I.e. this number of decoded samples must be"]
#[doc = " discarded by the caller from the end of the stream to get the original"]
#[doc = " audio without any trailing padding."]
#[doc = ""]
#[doc = " - decoding: unused"]
#[doc = " - encoding: unused"]
pub trailing_padding: ::std::os::raw::c_int,
#[doc = " The number of pixels per image to maximally accept."]
#[doc = ""]
#[doc = " - decoding: set by user"]
#[doc = " - encoding: set by user"]
pub max_pixels: i64,
#[doc = " A reference to the AVHWDeviceContext describing the device which will"]
#[doc = " be used by a hardware encoder/decoder. The reference is set by the"]
#[doc = " caller and afterwards owned (and freed) by libavcodec."]
#[doc = ""]
#[doc = " This should be used if either the codec device does not require"]
#[doc = " hardware frames or any that are used are to be allocated internally by"]
#[doc = " libavcodec. If the user wishes to supply any of the frames used as"]
#[doc = " encoder input or decoder output then hw_frames_ctx should be used"]
#[doc = " instead. When hw_frames_ctx is set in get_format() for a decoder, this"]
#[doc = " field will be ignored while decoding the associated stream segment, but"]
#[doc = " may again be used on a following one after another get_format() call."]
#[doc = ""]
#[doc = " For both encoders and decoders this field should be set before"]
#[doc = " avcodec_open2() is called and must not be written to thereafter."]
#[doc = ""]
#[doc = " Note that some decoders may require this field to be set initially in"]
#[doc = " order to support hw_frames_ctx at all - in that case, all frames"]
#[doc = " contexts used must be created on the same device."]
pub hw_device_ctx: *mut AVBufferRef,
#[doc = " Bit set of AV_HWACCEL_FLAG_* flags, which affect hardware accelerated"]
#[doc = " decoding (if active)."]
#[doc = " - encoding: unused"]
#[doc = " - decoding: Set by user (either before avcodec_open2(), or in the"]
#[doc = " AVCodecContext.get_format callback)"]
pub hwaccel_flags: ::std::os::raw::c_int,
#[doc = " Video decoding only. Certain video codecs support cropping, meaning that"]
#[doc = " only a sub-rectangle of the decoded frame is intended for display. This"]
#[doc = " option controls how cropping is handled by libavcodec."]
#[doc = ""]
#[doc = " When set to 1 (the default), libavcodec will apply cropping internally."]
#[doc = " I.e. it will modify the output frame width/height fields and offset the"]
#[doc = " data pointers (only by as much as possible while preserving alignment, or"]
#[doc = " by the full amount if the AV_CODEC_FLAG_UNALIGNED flag is set) so that"]
#[doc = " the frames output by the decoder refer only to the cropped area. The"]
#[doc = " crop_* fields of the output frames will be zero."]
#[doc = ""]
#[doc = " When set to 0, the width/height fields of the output frames will be set"]
#[doc = " to the coded dimensions and the crop_* fields will describe the cropping"]
#[doc = " rectangle. Applying the cropping is left to the caller."]
#[doc = ""]
#[doc = " @warning When hardware acceleration with opaque output frames is used,"]
#[doc = " libavcodec is unable to apply cropping from the top/left border."]
#[doc = ""]
#[doc = " @note when this option is set to zero, the width/height fields of the"]
#[doc = " AVCodecContext and output AVFrames have different meanings. The codec"]
#[doc = " context fields store display dimensions (with the coded dimensions in"]
#[doc = " coded_width/height), while the frame fields store the coded dimensions"]
#[doc = " (with the display dimensions being determined by the crop_* fields)."]
pub apply_cropping: ::std::os::raw::c_int,
pub extra_hw_frames: ::std::os::raw::c_int,
}
extern "C" {
#[doc = " Accessors for some AVCodecContext fields. These used to be provided for ABI"]
#[doc = " compatibility, and do not need to be used anymore."]
pub fn av_codec_get_pkt_timebase(avctx: *const AVCodecContext) -> AVRational;
}
extern "C" {
pub fn av_codec_set_pkt_timebase(avctx: *mut AVCodecContext, val: AVRational);
}
extern "C" {
pub fn av_codec_get_codec_descriptor(avctx: *const AVCodecContext) -> *const AVCodecDescriptor;
}
extern "C" {
pub fn av_codec_set_codec_descriptor(
avctx: *mut AVCodecContext,
desc: *const AVCodecDescriptor,
);
}
extern "C" {
pub fn av_codec_get_codec_properties(avctx: *const AVCodecContext) -> ::std::os::raw::c_uint;
}
extern "C" {
pub fn av_codec_get_lowres(avctx: *const AVCodecContext) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_codec_set_lowres(avctx: *mut AVCodecContext, val: ::std::os::raw::c_int);
}
extern "C" {
pub fn av_codec_get_seek_preroll(avctx: *const AVCodecContext) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_codec_set_seek_preroll(avctx: *mut AVCodecContext, val: ::std::os::raw::c_int);
}
extern "C" {
pub fn av_codec_get_chroma_intra_matrix(avctx: *const AVCodecContext) -> *mut u16;
}
extern "C" {
pub fn av_codec_set_chroma_intra_matrix(avctx: *mut AVCodecContext, val: *mut u16);
}
#[doc = " AVProfile."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVProfile {
pub profile: ::std::os::raw::c_int,
#[doc = "< short name for the profile"]
pub name: *const ::std::os::raw::c_char,
}
#[doc = " The codec supports this format via the hw_device_ctx interface."]
#[doc = ""]
#[doc = " When selecting this format, AVCodecContext.hw_device_ctx should"]
#[doc = " have been set to a device of the specified type before calling"]
#[doc = " avcodec_open2()."]
pub const AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX: _bindgen_ty_4 = 1;
#[doc = " The codec supports this format via the hw_frames_ctx interface."]
#[doc = ""]
#[doc = " When selecting this format for a decoder,"]
#[doc = " AVCodecContext.hw_frames_ctx should be set to a suitable frames"]
#[doc = " context inside the get_format() callback. The frames context"]
#[doc = " must have been created on a device of the specified type."]
pub const AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX: _bindgen_ty_4 = 2;
#[doc = " The codec supports this format by some internal method."]
#[doc = ""]
#[doc = " This format can be selected without any additional configuration -"]
#[doc = " no device or frames context is required."]
pub const AV_CODEC_HW_CONFIG_METHOD_INTERNAL: _bindgen_ty_4 = 4;
#[doc = " The codec supports this format by some ad-hoc method."]
#[doc = ""]
#[doc = " Additional settings and/or function calls are required. See the"]
#[doc = " codec-specific documentation for details. (Methods requiring"]
#[doc = " this sort of configuration are deprecated and others should be"]
#[doc = " used in preference.)"]
pub const AV_CODEC_HW_CONFIG_METHOD_AD_HOC: _bindgen_ty_4 = 8;
pub type _bindgen_ty_4 = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVCodecHWConfig {
#[doc = " A hardware pixel format which the codec can use."]
pub pix_fmt: AVPixelFormat,
#[doc = " Bit set of AV_CODEC_HW_CONFIG_METHOD_* flags, describing the possible"]
#[doc = " setup methods which can be used with this configuration."]
pub methods: ::std::os::raw::c_int,
#[doc = " The device type associated with the configuration."]
#[doc = ""]
#[doc = " Must be set for AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX and"]
#[doc = " AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX, otherwise unused."]
pub device_type: AVHWDeviceType,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVCodecDefault {
_unused: [u8; 0],
}
#[doc = " AVCodec."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVCodec {
#[doc = " Name of the codec implementation."]
#[doc = " The name is globally unique among encoders and among decoders (but an"]
#[doc = " encoder and a decoder can share the same name)."]
#[doc = " This is the primary way to find a codec from the user perspective."]
pub name: *const ::std::os::raw::c_char,
#[doc = " Descriptive name for the codec, meant to be more human readable than name."]
#[doc = " You should use the NULL_IF_CONFIG_SMALL() macro to define it."]
pub long_name: *const ::std::os::raw::c_char,
pub type_: AVMediaType,
pub id: AVCodecID,
#[doc = " Codec capabilities."]
#[doc = " see AV_CODEC_CAP_*"]
pub capabilities: ::std::os::raw::c_int,
#[doc = "< array of supported framerates, or NULL if any, array is terminated by {0,0}"]
pub supported_framerates: *const AVRational,
#[doc = "< array of supported pixel formats, or NULL if unknown, array is terminated by -1"]
pub pix_fmts: *const AVPixelFormat,
#[doc = "< array of supported audio samplerates, or NULL if unknown, array is terminated by 0"]
pub supported_samplerates: *const ::std::os::raw::c_int,
#[doc = "< array of supported sample formats, or NULL if unknown, array is terminated by -1"]
pub sample_fmts: *const AVSampleFormat,
#[doc = "< array of support channel layouts, or NULL if unknown. array is terminated by 0"]
pub channel_layouts: *const u64,
#[doc = "< maximum value for lowres supported by the decoder"]
pub max_lowres: u8,
#[doc = "< AVClass for the private context"]
pub priv_class: *const AVClass,
#[doc = "< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}"]
pub profiles: *const AVProfile,
#[doc = " Group name of the codec implementation."]
#[doc = " This is a short symbolic name of the wrapper backing this codec. A"]
#[doc = " wrapper uses some kind of external implementation for the codec, such"]
#[doc = " as an external library, or a codec implementation provided by the OS or"]
#[doc = " the hardware."]
#[doc = " If this field is NULL, this is a builtin, libavcodec native codec."]
#[doc = " If non-NULL, this will be the suffix in AVCodec.name in most cases"]
#[doc = " (usually AVCodec.name will be of the form \"<codec_name>_<wrapper_name>\")."]
pub wrapper_name: *const ::std::os::raw::c_char,
#[doc = " No fields below this line are part of the public API. They"]
#[doc = " may not be used outside of libavcodec and can be changed and"]
#[doc = " removed at will."]
#[doc = " New public fields should be added right above."]
#[doc = ""]
pub priv_data_size: ::std::os::raw::c_int,
pub next: *mut AVCodec,
#[doc = " @name Frame-level threading support functions"]
#[doc = " @{"]
#[doc = " If defined, called on thread contexts when they are created."]
#[doc = " If the codec allocates writable tables in init(), re-allocate them here."]
#[doc = " priv_data will be set to a copy of the original."]
pub init_thread_copy: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut AVCodecContext) -> ::std::os::raw::c_int,
>,
#[doc = " Copy necessary context variables from a previous thread context to the current one."]
#[doc = " If not defined, the next thread will start automatically; otherwise, the codec"]
#[doc = " must call ff_thread_finish_setup()."]
#[doc = ""]
#[doc = " dst and src will (rarely) point to the same context, in which case memcpy should be skipped."]
pub update_thread_context: ::std::option::Option<
unsafe extern "C" fn(
dst: *mut AVCodecContext,
src: *const AVCodecContext,
) -> ::std::os::raw::c_int,
>,
#[doc = " Private codec-specific defaults."]
pub defaults: *const AVCodecDefault,
#[doc = " Initialize codec static data, called from avcodec_register()."]
#[doc = ""]
#[doc = " This is not intended for time consuming operations as it is"]
#[doc = " run for every codec regardless of that codec being used."]
pub init_static_data: ::std::option::Option<unsafe extern "C" fn(codec: *mut AVCodec)>,
pub init: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut AVCodecContext) -> ::std::os::raw::c_int,
>,
pub encode_sub: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut AVCodecContext,
buf: *mut u8,
buf_size: ::std::os::raw::c_int,
sub: *const AVSubtitle,
) -> ::std::os::raw::c_int,
>,
#[doc = " Encode data to an AVPacket."]
#[doc = ""]
#[doc = " @param avctx codec context"]
#[doc = " @param avpkt output AVPacket (may contain a user-provided buffer)"]
#[doc = " @param[in] frame AVFrame containing the raw data to be encoded"]
#[doc = " @param[out] got_packet_ptr encoder sets to 0 or 1 to indicate that a"]
#[doc = " non-empty packet was returned in avpkt."]
#[doc = " @return 0 on success, negative error code on failure"]
pub encode2: ::std::option::Option<
unsafe extern "C" fn(
avctx: *mut AVCodecContext,
avpkt: *mut AVPacket,
frame: *const AVFrame,
got_packet_ptr: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>,
pub decode: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut AVCodecContext,
outdata: *mut ::std::os::raw::c_void,
outdata_size: *mut ::std::os::raw::c_int,
avpkt: *mut AVPacket,
) -> ::std::os::raw::c_int,
>,
pub close: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut AVCodecContext) -> ::std::os::raw::c_int,
>,
#[doc = " Encode API with decoupled packet/frame dataflow. The API is the"]
#[doc = " same as the avcodec_ prefixed APIs (avcodec_send_frame() etc.), except"]
#[doc = " that:"]
#[doc = " - never called if the codec is closed or the wrong type,"]
#[doc = " - if AV_CODEC_CAP_DELAY is not set, drain frames are never sent,"]
#[doc = " - only one drain frame is ever passed down,"]
pub send_frame: ::std::option::Option<
unsafe extern "C" fn(
avctx: *mut AVCodecContext,
frame: *const AVFrame,
) -> ::std::os::raw::c_int,
>,
pub receive_packet: ::std::option::Option<
unsafe extern "C" fn(
avctx: *mut AVCodecContext,
avpkt: *mut AVPacket,
) -> ::std::os::raw::c_int,
>,
#[doc = " Decode API with decoupled packet/frame dataflow. This function is called"]
#[doc = " to get one output frame. It should call ff_decode_get_packet() to obtain"]
#[doc = " input data."]
pub receive_frame: ::std::option::Option<
unsafe extern "C" fn(
avctx: *mut AVCodecContext,
frame: *mut AVFrame,
) -> ::std::os::raw::c_int,
>,
#[doc = " Flush buffers."]
#[doc = " Will be called when seeking"]
pub flush: ::std::option::Option<unsafe extern "C" fn(arg1: *mut AVCodecContext)>,
#[doc = " Internal codec capabilities."]
#[doc = " See FF_CODEC_CAP_* in internal.h"]
pub caps_internal: ::std::os::raw::c_int,
#[doc = " Decoding only, a comma-separated list of bitstream filters to apply to"]
#[doc = " packets before decoding."]
pub bsfs: *const ::std::os::raw::c_char,
#[doc = " Array of pointers to hardware configurations supported by the codec,"]
#[doc = " or NULL if no hardware supported. The array is terminated by a NULL"]
#[doc = " pointer."]
#[doc = ""]
#[doc = " The user can only access this field via avcodec_get_hw_config()."]
pub hw_configs: *mut *mut AVCodecHWConfigInternal,
}
extern "C" {
pub fn av_codec_get_max_lowres(codec: *const AVCodec) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MpegEncContext {
_unused: [u8; 0],
}
extern "C" {
#[doc = " Retrieve supported hardware configurations for a codec."]
#[doc = ""]
#[doc = " Values of index from zero to some maximum return the indexed configuration"]
#[doc = " descriptor; all other values return NULL. If the codec does not support"]
#[doc = " any hardware configurations then it will always return NULL."]
pub fn avcodec_get_hw_config(
codec: *const AVCodec,
index: ::std::os::raw::c_int,
) -> *const AVCodecHWConfig;
}
#[doc = " @defgroup lavc_hwaccel AVHWAccel"]
#[doc = ""]
#[doc = " @note Nothing in this structure should be accessed by the user. At some"]
#[doc = " point in future it will not be externally visible at all."]
#[doc = ""]
#[doc = " @{"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVHWAccel {
#[doc = " Name of the hardware accelerated codec."]
#[doc = " The name is globally unique among encoders and among decoders (but an"]
#[doc = " encoder and a decoder can share the same name)."]
pub name: *const ::std::os::raw::c_char,
#[doc = " Type of codec implemented by the hardware accelerator."]
#[doc = ""]
#[doc = " See AVMEDIA_TYPE_xxx"]
pub type_: AVMediaType,
#[doc = " Codec implemented by the hardware accelerator."]
#[doc = ""]
#[doc = " See AV_CODEC_ID_xxx"]
pub id: AVCodecID,
#[doc = " Supported pixel format."]
#[doc = ""]
#[doc = " Only hardware accelerated formats are supported here."]
pub pix_fmt: AVPixelFormat,
#[doc = " Hardware accelerated codec capabilities."]
#[doc = " see AV_HWACCEL_CODEC_CAP_*"]
pub capabilities: ::std::os::raw::c_int,
#[doc = " Allocate a custom buffer"]
pub alloc_frame: ::std::option::Option<
unsafe extern "C" fn(
avctx: *mut AVCodecContext,
frame: *mut AVFrame,
) -> ::std::os::raw::c_int,
>,
#[doc = " Called at the beginning of each frame or field picture."]
#[doc = ""]
#[doc = " Meaningful frame information (codec specific) is guaranteed to"]
#[doc = " be parsed at this point. This function is mandatory."]
#[doc = ""]
#[doc = " Note that buf can be NULL along with buf_size set to 0."]
#[doc = " Otherwise, this means the whole frame is available at this point."]
#[doc = ""]
#[doc = " @param avctx the codec context"]
#[doc = " @param buf the frame data buffer base"]
#[doc = " @param buf_size the size of the frame in bytes"]
#[doc = " @return zero if successful, a negative value otherwise"]
pub start_frame: ::std::option::Option<
unsafe extern "C" fn(
avctx: *mut AVCodecContext,
buf: *const u8,
buf_size: u32,
) -> ::std::os::raw::c_int,
>,
#[doc = " Callback for parameter data (SPS/PPS/VPS etc)."]
#[doc = ""]
#[doc = " Useful for hardware decoders which keep persistent state about the"]
#[doc = " video parameters, and need to receive any changes to update that state."]
#[doc = ""]
#[doc = " @param avctx the codec context"]
#[doc = " @param type the nal unit type"]
#[doc = " @param buf the nal unit data buffer"]
#[doc = " @param buf_size the size of the nal unit in bytes"]
#[doc = " @return zero if successful, a negative value otherwise"]
pub decode_params: ::std::option::Option<
unsafe extern "C" fn(
avctx: *mut AVCodecContext,
type_: ::std::os::raw::c_int,
buf: *const u8,
buf_size: u32,
) -> ::std::os::raw::c_int,
>,
#[doc = " Callback for each slice."]
#[doc = ""]
#[doc = " Meaningful slice information (codec specific) is guaranteed to"]
#[doc = " be parsed at this point. This function is mandatory."]
#[doc = " The only exception is XvMC, that works on MB level."]
#[doc = ""]
#[doc = " @param avctx the codec context"]
#[doc = " @param buf the slice data buffer base"]
#[doc = " @param buf_size the size of the slice in bytes"]
#[doc = " @return zero if successful, a negative value otherwise"]
pub decode_slice: ::std::option::Option<
unsafe extern "C" fn(
avctx: *mut AVCodecContext,
buf: *const u8,
buf_size: u32,
) -> ::std::os::raw::c_int,
>,
#[doc = " Called at the end of each frame or field picture."]
#[doc = ""]
#[doc = " The whole picture is parsed at this point and can now be sent"]
#[doc = " to the hardware accelerator. This function is mandatory."]
#[doc = ""]
#[doc = " @param avctx the codec context"]
#[doc = " @return zero if successful, a negative value otherwise"]
pub end_frame: ::std::option::Option<
unsafe extern "C" fn(avctx: *mut AVCodecContext) -> ::std::os::raw::c_int,
>,
#[doc = " Size of per-frame hardware accelerator private data."]
#[doc = ""]
#[doc = " Private data is allocated with av_mallocz() before"]
#[doc = " AVCodecContext.get_buffer() and deallocated after"]
#[doc = " AVCodecContext.release_buffer()."]
pub frame_priv_data_size: ::std::os::raw::c_int,
#[doc = " Called for every Macroblock in a slice."]
#[doc = ""]
#[doc = " XvMC uses it to replace the ff_mpv_reconstruct_mb()."]
#[doc = " Instead of decoding to raw picture, MB parameters are"]
#[doc = " stored in an array provided by the video driver."]
#[doc = ""]
#[doc = " @param s the mpeg context"]
pub decode_mb: ::std::option::Option<unsafe extern "C" fn(s: *mut MpegEncContext)>,
#[doc = " Initialize the hwaccel private data."]
#[doc = ""]
#[doc = " This will be called from ff_get_format(), after hwaccel and"]
#[doc = " hwaccel_context are set and the hwaccel private data in AVCodecInternal"]
#[doc = " is allocated."]
pub init: ::std::option::Option<
unsafe extern "C" fn(avctx: *mut AVCodecContext) -> ::std::os::raw::c_int,
>,
#[doc = " Uninitialize the hwaccel private data."]
#[doc = ""]
#[doc = " This will be called from get_format() or avcodec_close(), after hwaccel"]
#[doc = " and hwaccel_context are already uninitialized."]
pub uninit: ::std::option::Option<
unsafe extern "C" fn(avctx: *mut AVCodecContext) -> ::std::os::raw::c_int,
>,
#[doc = " Size of the private data to allocate in"]
#[doc = " AVCodecInternal.hwaccel_priv_data."]
pub priv_data_size: ::std::os::raw::c_int,
#[doc = " Internal hwaccel capabilities."]
pub caps_internal: ::std::os::raw::c_int,
#[doc = " Fill the given hw_frames context with current codec parameters. Called"]
#[doc = " from get_format. Refer to avcodec_get_hw_frames_parameters() for"]
#[doc = " details."]
#[doc = ""]
#[doc = " This CAN be called before AVHWAccel.init is called, and you must assume"]
#[doc = " that avctx->hwaccel_priv_data is invalid."]
pub frame_params: ::std::option::Option<
unsafe extern "C" fn(
avctx: *mut AVCodecContext,
hw_frames_ctx: *mut AVBufferRef,
) -> ::std::os::raw::c_int,
>,
}
#[doc = " Picture data structure."]
#[doc = ""]
#[doc = " Up to four components can be stored into it, the last component is"]
#[doc = " alpha."]
#[doc = " @deprecated use AVFrame or imgutils functions instead"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVPicture {
#[doc = "< pointers to the image data planes"]
pub data: [*mut u8; 8usize],
#[doc = "< number of bytes per line"]
pub linesize: [::std::os::raw::c_int; 8usize],
}
pub const AVSubtitleType_SUBTITLE_NONE: AVSubtitleType = 0;
#[doc = "< A bitmap, pict will be set"]
pub const AVSubtitleType_SUBTITLE_BITMAP: AVSubtitleType = 1;
#[doc = " Plain text, the text field must be set by the decoder and is"]
#[doc = " authoritative. ass and pict fields may contain approximations."]
pub const AVSubtitleType_SUBTITLE_TEXT: AVSubtitleType = 2;
#[doc = " Formatted text, the ass field must be set by the decoder and is"]
#[doc = " authoritative. pict and text fields may contain approximations."]
pub const AVSubtitleType_SUBTITLE_ASS: AVSubtitleType = 3;
pub type AVSubtitleType = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVSubtitleRect {
#[doc = "< top left corner of pict, undefined when pict is not set"]
pub x: ::std::os::raw::c_int,
#[doc = "< top left corner of pict, undefined when pict is not set"]
pub y: ::std::os::raw::c_int,
#[doc = "< width of pict, undefined when pict is not set"]
pub w: ::std::os::raw::c_int,
#[doc = "< height of pict, undefined when pict is not set"]
pub h: ::std::os::raw::c_int,
#[doc = "< number of colors in pict, undefined when pict is not set"]
pub nb_colors: ::std::os::raw::c_int,
#[doc = " @deprecated unused"]
pub pict: AVPicture,
#[doc = " data+linesize for the bitmap of this subtitle."]
#[doc = " Can be set for text/ass as well once they are rendered."]
pub data: [*mut u8; 4usize],
pub linesize: [::std::os::raw::c_int; 4usize],
pub type_: AVSubtitleType,
#[doc = "< 0 terminated plain UTF-8 text"]
pub text: *mut ::std::os::raw::c_char,
#[doc = " 0 terminated ASS/SSA compatible event line."]
#[doc = " The presentation of this is unaffected by the other values in this"]
#[doc = " struct."]
pub ass: *mut ::std::os::raw::c_char,
pub flags: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVSubtitle {
pub format: u16,
pub start_display_time: u32,
pub end_display_time: u32,
pub num_rects: ::std::os::raw::c_uint,
pub rects: *mut *mut AVSubtitleRect,
#[doc = "< Same as packet pts, in AV_TIME_BASE"]
pub pts: i64,
}
#[doc = " This struct describes the properties of an encoded stream."]
#[doc = ""]
#[doc = " sizeof(AVCodecParameters) is not a part of the public ABI, this struct must"]
#[doc = " be allocated with avcodec_parameters_alloc() and freed with"]
#[doc = " avcodec_parameters_free()."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVCodecParameters {
#[doc = " General type of the encoded data."]
pub codec_type: AVMediaType,
#[doc = " Specific type of the encoded data (the codec used)."]
pub codec_id: AVCodecID,
#[doc = " Additional information about the codec (corresponds to the AVI FOURCC)."]
pub codec_tag: u32,
#[doc = " Extra binary data needed for initializing the decoder, codec-dependent."]
#[doc = ""]
#[doc = " Must be allocated with av_malloc() and will be freed by"]
#[doc = " avcodec_parameters_free(). The allocated size of extradata must be at"]
#[doc = " least extradata_size + AV_INPUT_BUFFER_PADDING_SIZE, with the padding"]
#[doc = " bytes zeroed."]
pub extradata: *mut u8,
#[doc = " Size of the extradata content in bytes."]
pub extradata_size: ::std::os::raw::c_int,
#[doc = " - video: the pixel format, the value corresponds to enum AVPixelFormat."]
#[doc = " - audio: the sample format, the value corresponds to enum AVSampleFormat."]
pub format: ::std::os::raw::c_int,
#[doc = " The average bitrate of the encoded data (in bits per second)."]
pub bit_rate: i64,
#[doc = " The number of bits per sample in the codedwords."]
#[doc = ""]
#[doc = " This is basically the bitrate per sample. It is mandatory for a bunch of"]
#[doc = " formats to actually decode them. It\'s the number of bits for one sample in"]
#[doc = " the actual coded bitstream."]
#[doc = ""]
#[doc = " This could be for example 4 for ADPCM"]
#[doc = " For PCM formats this matches bits_per_raw_sample"]
#[doc = " Can be 0"]
pub bits_per_coded_sample: ::std::os::raw::c_int,
#[doc = " This is the number of valid bits in each output sample. If the"]
#[doc = " sample format has more bits, the least significant bits are additional"]
#[doc = " padding bits, which are always 0. Use right shifts to reduce the sample"]
#[doc = " to its actual size. For example, audio formats with 24 bit samples will"]
#[doc = " have bits_per_raw_sample set to 24, and format set to AV_SAMPLE_FMT_S32."]
#[doc = " To get the original sample use \"(int32_t)sample >> 8\".\""]
#[doc = ""]
#[doc = " For ADPCM this might be 12 or 16 or similar"]
#[doc = " Can be 0"]
pub bits_per_raw_sample: ::std::os::raw::c_int,
#[doc = " Codec-specific bitstream restrictions that the stream conforms to."]
pub profile: ::std::os::raw::c_int,
pub level: ::std::os::raw::c_int,
#[doc = " Video only. The dimensions of the video frame in pixels."]
pub width: ::std::os::raw::c_int,
pub height: ::std::os::raw::c_int,
#[doc = " Video only. The aspect ratio (width / height) which a single pixel"]
#[doc = " should have when displayed."]
#[doc = ""]
#[doc = " When the aspect ratio is unknown / undefined, the numerator should be"]
#[doc = " set to 0 (the denominator may have any value)."]
pub sample_aspect_ratio: AVRational,
#[doc = " Video only. The order of the fields in interlaced video."]
pub field_order: AVFieldOrder,
#[doc = " Video only. Additional colorspace characteristics."]
pub color_range: AVColorRange,
pub color_primaries: AVColorPrimaries,
pub color_trc: AVColorTransferCharacteristic,
pub color_space: AVColorSpace,
pub chroma_location: AVChromaLocation,
#[doc = " Video only. Number of delayed frames."]
pub video_delay: ::std::os::raw::c_int,
#[doc = " Audio only. The channel layout bitmask. May be 0 if the channel layout is"]
#[doc = " unknown or unspecified, otherwise the number of bits set must be equal to"]
#[doc = " the channels field."]
pub channel_layout: u64,
#[doc = " Audio only. The number of audio channels."]
pub channels: ::std::os::raw::c_int,
#[doc = " Audio only. The number of audio samples per second."]
pub sample_rate: ::std::os::raw::c_int,
#[doc = " Audio only. The number of bytes per coded audio frame, required by some"]
#[doc = " formats."]
#[doc = ""]
#[doc = " Corresponds to nBlockAlign in WAVEFORMATEX."]
pub block_align: ::std::os::raw::c_int,
#[doc = " Audio only. Audio frame size, if known. Required by some formats to be static."]
pub frame_size: ::std::os::raw::c_int,
#[doc = " Audio only. The amount of padding (in samples) inserted by the encoder at"]
#[doc = " the beginning of the audio. I.e. this number of leading decoded samples"]
#[doc = " must be discarded by the caller to get the original audio without leading"]
#[doc = " padding."]
pub initial_padding: ::std::os::raw::c_int,
#[doc = " Audio only. The amount of padding (in samples) appended by the encoder to"]
#[doc = " the end of the audio. I.e. this number of decoded samples must be"]
#[doc = " discarded by the caller from the end of the stream to get the original"]
#[doc = " audio without any trailing padding."]
pub trailing_padding: ::std::os::raw::c_int,
#[doc = " Audio only. Number of samples to skip after a discontinuity."]
pub seek_preroll: ::std::os::raw::c_int,
}
extern "C" {
#[doc = " Iterate over all registered codecs."]
#[doc = ""]
#[doc = " @param opaque a pointer where libavcodec will store the iteration state. Must"]
#[doc = " point to NULL to start the iteration."]
#[doc = ""]
#[doc = " @return the next registered codec or NULL when the iteration is"]
#[doc = " finished"]
pub fn av_codec_iterate(opaque: *mut *mut ::std::os::raw::c_void) -> *const AVCodec;
}
extern "C" {
#[doc = " If c is NULL, returns the first registered codec,"]
#[doc = " if c is non-NULL, returns the next registered codec after c,"]
#[doc = " or NULL if c is the last one."]
pub fn av_codec_next(c: *const AVCodec) -> *mut AVCodec;
}
extern "C" {
#[doc = " Return the LIBAVCODEC_VERSION_INT constant."]
pub fn avcodec_version() -> ::std::os::raw::c_uint;
}
extern "C" {
#[doc = " Return the libavcodec build-time configuration."]
pub fn avcodec_configuration() -> *const ::std::os::raw::c_char;
}
extern "C" {
#[doc = " Return the libavcodec license."]
pub fn avcodec_license() -> *const ::std::os::raw::c_char;
}
extern "C" {
#[doc = " Register the codec codec and initialize libavcodec."]
#[doc = ""]
#[doc = " @warning either this function or avcodec_register_all() must be called"]
#[doc = " before any other libavcodec functions."]
#[doc = ""]
#[doc = " @see avcodec_register_all()"]
pub fn avcodec_register(codec: *mut AVCodec);
}
extern "C" {
#[doc = " Register all the codecs, parsers and bitstream filters which were enabled at"]
#[doc = " configuration time. If you do not call this function you can select exactly"]
#[doc = " which formats you want to support, by using the individual registration"]
#[doc = " functions."]
#[doc = ""]
#[doc = " @see avcodec_register"]
#[doc = " @see av_register_codec_parser"]
#[doc = " @see av_register_bitstream_filter"]
pub fn avcodec_register_all();
}
extern "C" {
#[doc = " Allocate an AVCodecContext and set its fields to default values. The"]
#[doc = " resulting struct should be freed with avcodec_free_context()."]
#[doc = ""]
#[doc = " @param codec if non-NULL, allocate private data and initialize defaults"]
#[doc = " for the given codec. It is illegal to then call avcodec_open2()"]
#[doc = " with a different codec."]
#[doc = " If NULL, then the codec-specific defaults won\'t be initialized,"]
#[doc = " which may result in suboptimal default settings (this is"]
#[doc = " important mainly for encoders, e.g. libx264)."]
#[doc = ""]
#[doc = " @return An AVCodecContext filled with default values or NULL on failure."]
pub fn avcodec_alloc_context3(codec: *const AVCodec) -> *mut AVCodecContext;
}
extern "C" {
#[doc = " Free the codec context and everything associated with it and write NULL to"]
#[doc = " the provided pointer."]
pub fn avcodec_free_context(avctx: *mut *mut AVCodecContext);
}
extern "C" {
#[doc = " @deprecated This function should not be used, as closing and opening a codec"]
#[doc = " context multiple time is not supported. A new codec context should be"]
#[doc = " allocated for each new use."]
pub fn avcodec_get_context_defaults3(
s: *mut AVCodecContext,
codec: *const AVCodec,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Get the AVClass for AVCodecContext. It can be used in combination with"]
#[doc = " AV_OPT_SEARCH_FAKE_OBJ for examining options."]
#[doc = ""]
#[doc = " @see av_opt_find()."]
pub fn avcodec_get_class() -> *const AVClass;
}
extern "C" {
#[doc = " Get the AVClass for AVFrame. It can be used in combination with"]
#[doc = " AV_OPT_SEARCH_FAKE_OBJ for examining options."]
#[doc = ""]
#[doc = " @see av_opt_find()."]
pub fn avcodec_get_frame_class() -> *const AVClass;
}
extern "C" {
#[doc = " Get the AVClass for AVSubtitleRect. It can be used in combination with"]
#[doc = " AV_OPT_SEARCH_FAKE_OBJ for examining options."]
#[doc = ""]
#[doc = " @see av_opt_find()."]
pub fn avcodec_get_subtitle_rect_class() -> *const AVClass;
}
extern "C" {
#[doc = " Copy the settings of the source AVCodecContext into the destination"]
#[doc = " AVCodecContext. The resulting destination codec context will be"]
#[doc = " unopened, i.e. you are required to call avcodec_open2() before you"]
#[doc = " can use this AVCodecContext to decode/encode video/audio data."]
#[doc = ""]
#[doc = " @param dest target codec context, should be initialized with"]
#[doc = " avcodec_alloc_context3(NULL), but otherwise uninitialized"]
#[doc = " @param src source codec context"]
#[doc = " @return AVERROR() on error (e.g. memory allocation error), 0 on success"]
#[doc = ""]
#[doc = " @deprecated The semantics of this function are ill-defined and it should not"]
#[doc = " be used. If you need to transfer the stream parameters from one codec context"]
#[doc = " to another, use an intermediate AVCodecParameters instance and the"]
#[doc = " avcodec_parameters_from_context() / avcodec_parameters_to_context()"]
#[doc = " functions."]
pub fn avcodec_copy_context(
dest: *mut AVCodecContext,
src: *const AVCodecContext,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Allocate a new AVCodecParameters and set its fields to default values"]
#[doc = " (unknown/invalid/0). The returned struct must be freed with"]
#[doc = " avcodec_parameters_free()."]
pub fn avcodec_parameters_alloc() -> *mut AVCodecParameters;
}
extern "C" {
#[doc = " Free an AVCodecParameters instance and everything associated with it and"]
#[doc = " write NULL to the supplied pointer."]
pub fn avcodec_parameters_free(par: *mut *mut AVCodecParameters);
}
extern "C" {
#[doc = " Copy the contents of src to dst. Any allocated fields in dst are freed and"]
#[doc = " replaced with newly allocated duplicates of the corresponding fields in src."]
#[doc = ""]
#[doc = " @return >= 0 on success, a negative AVERROR code on failure."]
pub fn avcodec_parameters_copy(
dst: *mut AVCodecParameters,
src: *const AVCodecParameters,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Fill the parameters struct based on the values from the supplied codec"]
#[doc = " context. Any allocated fields in par are freed and replaced with duplicates"]
#[doc = " of the corresponding fields in codec."]
#[doc = ""]
#[doc = " @return >= 0 on success, a negative AVERROR code on failure"]
pub fn avcodec_parameters_from_context(
par: *mut AVCodecParameters,
codec: *const AVCodecContext,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Fill the codec context based on the values from the supplied codec"]
#[doc = " parameters. Any allocated fields in codec that have a corresponding field in"]
#[doc = " par are freed and replaced with duplicates of the corresponding field in par."]
#[doc = " Fields in codec that do not have a counterpart in par are not touched."]
#[doc = ""]
#[doc = " @return >= 0 on success, a negative AVERROR code on failure."]
pub fn avcodec_parameters_to_context(
codec: *mut AVCodecContext,
par: *const AVCodecParameters,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Initialize the AVCodecContext to use the given AVCodec. Prior to using this"]
#[doc = " function the context has to be allocated with avcodec_alloc_context3()."]
#[doc = ""]
#[doc = " The functions avcodec_find_decoder_by_name(), avcodec_find_encoder_by_name(),"]
#[doc = " avcodec_find_decoder() and avcodec_find_encoder() provide an easy way for"]
#[doc = " retrieving a codec."]
#[doc = ""]
#[doc = " @warning This function is not thread safe!"]
#[doc = ""]
#[doc = " @note Always call this function before using decoding routines (such as"]
#[doc = " @ref avcodec_receive_frame())."]
#[doc = ""]
#[doc = " @code"]
#[doc = " avcodec_register_all();"]
#[doc = " av_dict_set(&opts, \"b\", \"2.5M\", 0);"]
#[doc = " codec = avcodec_find_decoder(AV_CODEC_ID_H264);"]
#[doc = " if (!codec)"]
#[doc = " exit(1);"]
#[doc = ""]
#[doc = " context = avcodec_alloc_context3(codec);"]
#[doc = ""]
#[doc = " if (avcodec_open2(context, codec, opts) < 0)"]
#[doc = " exit(1);"]
#[doc = " @endcode"]
#[doc = ""]
#[doc = " @param avctx The context to initialize."]
#[doc = " @param codec The codec to open this context for. If a non-NULL codec has been"]
#[doc = " previously passed to avcodec_alloc_context3() or"]
#[doc = " for this context, then this parameter MUST be either NULL or"]
#[doc = " equal to the previously passed codec."]
#[doc = " @param options A dictionary filled with AVCodecContext and codec-private options."]
#[doc = " On return this object will be filled with options that were not found."]
#[doc = ""]
#[doc = " @return zero on success, a negative value on error"]
#[doc = " @see avcodec_alloc_context3(), avcodec_find_decoder(), avcodec_find_encoder(),"]
#[doc = " av_dict_set(), av_opt_find()."]
pub fn avcodec_open2(
avctx: *mut AVCodecContext,
codec: *const AVCodec,
options: *mut *mut AVDictionary,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Close a given AVCodecContext and free all the data associated with it"]
#[doc = " (but not the AVCodecContext itself)."]
#[doc = ""]
#[doc = " Calling this function on an AVCodecContext that hasn\'t been opened will free"]
#[doc = " the codec-specific data allocated in avcodec_alloc_context3() with a non-NULL"]
#[doc = " codec. Subsequent calls will do nothing."]
#[doc = ""]
#[doc = " @note Do not use this function. Use avcodec_free_context() to destroy a"]
#[doc = " codec context (either open or closed). Opening and closing a codec context"]
#[doc = " multiple times is not supported anymore -- use multiple codec contexts"]
#[doc = " instead."]
pub fn avcodec_close(avctx: *mut AVCodecContext) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Free all allocated data in the given subtitle struct."]
#[doc = ""]
#[doc = " @param sub AVSubtitle to free."]
pub fn avsubtitle_free(sub: *mut AVSubtitle);
}
extern "C" {
#[doc = " Allocate an AVPacket and set its fields to default values. The resulting"]
#[doc = " struct must be freed using av_packet_free()."]
#[doc = ""]
#[doc = " @return An AVPacket filled with default values or NULL on failure."]
#[doc = ""]
#[doc = " @note this only allocates the AVPacket itself, not the data buffers. Those"]
#[doc = " must be allocated through other means such as av_new_packet."]
#[doc = ""]
#[doc = " @see av_new_packet"]
pub fn av_packet_alloc() -> *mut AVPacket;
}
extern "C" {
#[doc = " Create a new packet that references the same data as src."]
#[doc = ""]
#[doc = " This is a shortcut for av_packet_alloc()+av_packet_ref()."]
#[doc = ""]
#[doc = " @return newly created AVPacket on success, NULL on error."]
#[doc = ""]
#[doc = " @see av_packet_alloc"]
#[doc = " @see av_packet_ref"]
pub fn av_packet_clone(src: *const AVPacket) -> *mut AVPacket;
}
extern "C" {
#[doc = " Free the packet, if the packet is reference counted, it will be"]
#[doc = " unreferenced first."]
#[doc = ""]
#[doc = " @param pkt packet to be freed. The pointer will be set to NULL."]
#[doc = " @note passing NULL is a no-op."]
pub fn av_packet_free(pkt: *mut *mut AVPacket);
}
extern "C" {
#[doc = " Initialize optional fields of a packet with default values."]
#[doc = ""]
#[doc = " Note, this does not touch the data and size members, which have to be"]
#[doc = " initialized separately."]
#[doc = ""]
#[doc = " @param pkt packet"]
pub fn av_init_packet(pkt: *mut AVPacket);
}
extern "C" {
#[doc = " Allocate the payload of a packet and initialize its fields with"]
#[doc = " default values."]
#[doc = ""]
#[doc = " @param pkt packet"]
#[doc = " @param size wanted payload size"]
#[doc = " @return 0 if OK, AVERROR_xxx otherwise"]
pub fn av_new_packet(pkt: *mut AVPacket, size: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Reduce packet size, correctly zeroing padding"]
#[doc = ""]
#[doc = " @param pkt packet"]
#[doc = " @param size new size"]
pub fn av_shrink_packet(pkt: *mut AVPacket, size: ::std::os::raw::c_int);
}
extern "C" {
#[doc = " Increase packet size, correctly zeroing padding"]
#[doc = ""]
#[doc = " @param pkt packet"]
#[doc = " @param grow_by number of bytes by which to increase the size of the packet"]
pub fn av_grow_packet(
pkt: *mut AVPacket,
grow_by: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Initialize a reference-counted packet from av_malloc()ed data."]
#[doc = ""]
#[doc = " @param pkt packet to be initialized. This function will set the data, size,"]
#[doc = " buf and destruct fields, all others are left untouched."]
#[doc = " @param data Data allocated by av_malloc() to be used as packet data. If this"]
#[doc = " function returns successfully, the data is owned by the underlying AVBuffer."]
#[doc = " The caller may not access the data through other means."]
#[doc = " @param size size of data in bytes, without the padding. I.e. the full buffer"]
#[doc = " size is assumed to be size + AV_INPUT_BUFFER_PADDING_SIZE."]
#[doc = ""]
#[doc = " @return 0 on success, a negative AVERROR on error"]
pub fn av_packet_from_data(
pkt: *mut AVPacket,
data: *mut u8,
size: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " @warning This is a hack - the packet memory allocation stuff is broken. The"]
#[doc = " packet is allocated if it was not really allocated."]
#[doc = ""]
#[doc = " @deprecated Use av_packet_ref or av_packet_make_refcounted"]
pub fn av_dup_packet(pkt: *mut AVPacket) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Copy packet, including contents"]
#[doc = ""]
#[doc = " @return 0 on success, negative AVERROR on fail"]
#[doc = ""]
#[doc = " @deprecated Use av_packet_ref"]
pub fn av_copy_packet(dst: *mut AVPacket, src: *const AVPacket) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Copy packet side data"]
#[doc = ""]
#[doc = " @return 0 on success, negative AVERROR on fail"]
#[doc = ""]
#[doc = " @deprecated Use av_packet_copy_props"]
pub fn av_copy_packet_side_data(
dst: *mut AVPacket,
src: *const AVPacket,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Free a packet."]
#[doc = ""]
#[doc = " @deprecated Use av_packet_unref"]
#[doc = ""]
#[doc = " @param pkt packet to free"]
pub fn av_free_packet(pkt: *mut AVPacket);
}
extern "C" {
#[doc = " Allocate new information of a packet."]
#[doc = ""]
#[doc = " @param pkt packet"]
#[doc = " @param type side information type"]
#[doc = " @param size side information size"]
#[doc = " @return pointer to fresh allocated data or NULL otherwise"]
pub fn av_packet_new_side_data(
pkt: *mut AVPacket,
type_: AVPacketSideDataType,
size: ::std::os::raw::c_int,
) -> *mut u8;
}
extern "C" {
#[doc = " Wrap an existing array as a packet side data."]
#[doc = ""]
#[doc = " @param pkt packet"]
#[doc = " @param type side information type"]
#[doc = " @param data the side data array. It must be allocated with the av_malloc()"]
#[doc = " family of functions. The ownership of the data is transferred to"]
#[doc = " pkt."]
#[doc = " @param size side information size"]
#[doc = " @return a non-negative number on success, a negative AVERROR code on"]
#[doc = " failure. On failure, the packet is unchanged and the data remains"]
#[doc = " owned by the caller."]
pub fn av_packet_add_side_data(
pkt: *mut AVPacket,
type_: AVPacketSideDataType,
data: *mut u8,
size: usize,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Shrink the already allocated side data buffer"]
#[doc = ""]
#[doc = " @param pkt packet"]
#[doc = " @param type side information type"]
#[doc = " @param size new side information size"]
#[doc = " @return 0 on success, < 0 on failure"]
pub fn av_packet_shrink_side_data(
pkt: *mut AVPacket,
type_: AVPacketSideDataType,
size: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Get side information from packet."]
#[doc = ""]
#[doc = " @param pkt packet"]
#[doc = " @param type desired side information type"]
#[doc = " @param size pointer for side information size to store (optional)"]
#[doc = " @return pointer to data if present or NULL otherwise"]
pub fn av_packet_get_side_data(
pkt: *const AVPacket,
type_: AVPacketSideDataType,
size: *mut ::std::os::raw::c_int,
) -> *mut u8;
}
extern "C" {
pub fn av_packet_merge_side_data(pkt: *mut AVPacket) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_packet_split_side_data(pkt: *mut AVPacket) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_packet_side_data_name(type_: AVPacketSideDataType) -> *const ::std::os::raw::c_char;
}
extern "C" {
#[doc = " Pack a dictionary for use in side_data."]
#[doc = ""]
#[doc = " @param dict The dictionary to pack."]
#[doc = " @param size pointer to store the size of the returned data"]
#[doc = " @return pointer to data if successful, NULL otherwise"]
pub fn av_packet_pack_dictionary(
dict: *mut AVDictionary,
size: *mut ::std::os::raw::c_int,
) -> *mut u8;
}
extern "C" {
#[doc = " Unpack a dictionary from side_data."]
#[doc = ""]
#[doc = " @param data data from side_data"]
#[doc = " @param size size of the data"]
#[doc = " @param dict the metadata storage dictionary"]
#[doc = " @return 0 on success, < 0 on failure"]
pub fn av_packet_unpack_dictionary(
data: *const u8,
size: ::std::os::raw::c_int,
dict: *mut *mut AVDictionary,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Convenience function to free all the side data stored."]
#[doc = " All the other fields stay untouched."]
#[doc = ""]
#[doc = " @param pkt packet"]
pub fn av_packet_free_side_data(pkt: *mut AVPacket);
}
extern "C" {
#[doc = " Setup a new reference to the data described by a given packet"]
#[doc = ""]
#[doc = " If src is reference-counted, setup dst as a new reference to the"]
#[doc = " buffer in src. Otherwise allocate a new buffer in dst and copy the"]
#[doc = " data from src into it."]
#[doc = ""]
#[doc = " All the other fields are copied from src."]
#[doc = ""]
#[doc = " @see av_packet_unref"]
#[doc = ""]
#[doc = " @param dst Destination packet"]
#[doc = " @param src Source packet"]
#[doc = ""]
#[doc = " @return 0 on success, a negative AVERROR on error."]
pub fn av_packet_ref(dst: *mut AVPacket, src: *const AVPacket) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Wipe the packet."]
#[doc = ""]
#[doc = " Unreference the buffer referenced by the packet and reset the"]
#[doc = " remaining packet fields to their default values."]
#[doc = ""]
#[doc = " @param pkt The packet to be unreferenced."]
pub fn av_packet_unref(pkt: *mut AVPacket);
}
extern "C" {
#[doc = " Move every field in src to dst and reset src."]
#[doc = ""]
#[doc = " @see av_packet_unref"]
#[doc = ""]
#[doc = " @param src Source packet, will be reset"]
#[doc = " @param dst Destination packet"]
pub fn av_packet_move_ref(dst: *mut AVPacket, src: *mut AVPacket);
}
extern "C" {
#[doc = " Copy only \"properties\" fields from src to dst."]
#[doc = ""]
#[doc = " Properties for the purpose of this function are all the fields"]
#[doc = " beside those related to the packet data (buf, data, size)"]
#[doc = ""]
#[doc = " @param dst Destination packet"]
#[doc = " @param src Source packet"]
#[doc = ""]
#[doc = " @return 0 on success AVERROR on failure."]
pub fn av_packet_copy_props(dst: *mut AVPacket, src: *const AVPacket) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Ensure the data described by a given packet is reference counted."]
#[doc = ""]
#[doc = " @note This function does not ensure that the reference will be writable."]
#[doc = " Use av_packet_make_writable instead for that purpose."]
#[doc = ""]
#[doc = " @see av_packet_ref"]
#[doc = " @see av_packet_make_writable"]
#[doc = ""]
#[doc = " @param pkt packet whose data should be made reference counted."]
#[doc = ""]
#[doc = " @return 0 on success, a negative AVERROR on error. On failure, the"]
#[doc = " packet is unchanged."]
pub fn av_packet_make_refcounted(pkt: *mut AVPacket) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Create a writable reference for the data described by a given packet,"]
#[doc = " avoiding data copy if possible."]
#[doc = ""]
#[doc = " @param pkt Packet whose data should be made writable."]
#[doc = ""]
#[doc = " @return 0 on success, a negative AVERROR on failure. On failure, the"]
#[doc = " packet is unchanged."]
pub fn av_packet_make_writable(pkt: *mut AVPacket) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Convert valid timing fields (timestamps / durations) in a packet from one"]
#[doc = " timebase to another. Timestamps with unknown values (AV_NOPTS_VALUE) will be"]
#[doc = " ignored."]
#[doc = ""]
#[doc = " @param pkt packet on which the conversion will be performed"]
#[doc = " @param tb_src source timebase, in which the timing fields in pkt are"]
#[doc = " expressed"]
#[doc = " @param tb_dst destination timebase, to which the timing fields will be"]
#[doc = " converted"]
pub fn av_packet_rescale_ts(pkt: *mut AVPacket, tb_src: AVRational, tb_dst: AVRational);
}
extern "C" {
#[doc = " Find a registered decoder with a matching codec ID."]
#[doc = ""]
#[doc = " @param id AVCodecID of the requested decoder"]
#[doc = " @return A decoder if one was found, NULL otherwise."]
pub fn avcodec_find_decoder(id: AVCodecID) -> *mut AVCodec;
}
extern "C" {
#[doc = " Find a registered decoder with the specified name."]
#[doc = ""]
#[doc = " @param name name of the requested decoder"]
#[doc = " @return A decoder if one was found, NULL otherwise."]
pub fn avcodec_find_decoder_by_name(name: *const ::std::os::raw::c_char) -> *mut AVCodec;
}
extern "C" {
#[doc = " The default callback for AVCodecContext.get_buffer2(). It is made public so"]
#[doc = " it can be called by custom get_buffer2() implementations for decoders without"]
#[doc = " AV_CODEC_CAP_DR1 set."]
pub fn avcodec_default_get_buffer2(
s: *mut AVCodecContext,
frame: *mut AVFrame,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Modify width and height values so that they will result in a memory"]
#[doc = " buffer that is acceptable for the codec if you do not use any horizontal"]
#[doc = " padding."]
#[doc = ""]
#[doc = " May only be used if a codec with AV_CODEC_CAP_DR1 has been opened."]
pub fn avcodec_align_dimensions(
s: *mut AVCodecContext,
width: *mut ::std::os::raw::c_int,
height: *mut ::std::os::raw::c_int,
);
}
extern "C" {
#[doc = " Modify width and height values so that they will result in a memory"]
#[doc = " buffer that is acceptable for the codec if you also ensure that all"]
#[doc = " line sizes are a multiple of the respective linesize_align[i]."]
#[doc = ""]
#[doc = " May only be used if a codec with AV_CODEC_CAP_DR1 has been opened."]
pub fn avcodec_align_dimensions2(
s: *mut AVCodecContext,
width: *mut ::std::os::raw::c_int,
height: *mut ::std::os::raw::c_int,
linesize_align: *mut ::std::os::raw::c_int,
);
}
extern "C" {
#[doc = " Converts AVChromaLocation to swscale x/y chroma position."]
#[doc = ""]
#[doc = " The positions represent the chroma (0,0) position in a coordinates system"]
#[doc = " with luma (0,0) representing the origin and luma(1,1) representing 256,256"]
#[doc = ""]
#[doc = " @param xpos horizontal chroma sample position"]
#[doc = " @param ypos vertical chroma sample position"]
pub fn avcodec_enum_to_chroma_pos(
xpos: *mut ::std::os::raw::c_int,
ypos: *mut ::std::os::raw::c_int,
pos: AVChromaLocation,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Converts swscale x/y chroma position to AVChromaLocation."]
#[doc = ""]
#[doc = " The positions represent the chroma (0,0) position in a coordinates system"]
#[doc = " with luma (0,0) representing the origin and luma(1,1) representing 256,256"]
#[doc = ""]
#[doc = " @param xpos horizontal chroma sample position"]
#[doc = " @param ypos vertical chroma sample position"]
pub fn avcodec_chroma_pos_to_enum(
xpos: ::std::os::raw::c_int,
ypos: ::std::os::raw::c_int,
) -> AVChromaLocation;
}
extern "C" {
#[doc = " Decode the audio frame of size avpkt->size from avpkt->data into frame."]
#[doc = ""]
#[doc = " Some decoders may support multiple frames in a single AVPacket. Such"]
#[doc = " decoders would then just decode the first frame and the return value would be"]
#[doc = " less than the packet size. In this case, avcodec_decode_audio4 has to be"]
#[doc = " called again with an AVPacket containing the remaining data in order to"]
#[doc = " decode the second frame, etc... Even if no frames are returned, the packet"]
#[doc = " needs to be fed to the decoder with remaining data until it is completely"]
#[doc = " consumed or an error occurs."]
#[doc = ""]
#[doc = " Some decoders (those marked with AV_CODEC_CAP_DELAY) have a delay between input"]
#[doc = " and output. This means that for some packets they will not immediately"]
#[doc = " produce decoded output and need to be flushed at the end of decoding to get"]
#[doc = " all the decoded data. Flushing is done by calling this function with packets"]
#[doc = " with avpkt->data set to NULL and avpkt->size set to 0 until it stops"]
#[doc = " returning samples. It is safe to flush even those decoders that are not"]
#[doc = " marked with AV_CODEC_CAP_DELAY, then no samples will be returned."]
#[doc = ""]
#[doc = " @warning The input buffer, avpkt->data must be AV_INPUT_BUFFER_PADDING_SIZE"]
#[doc = " larger than the actual read bytes because some optimized bitstream"]
#[doc = " readers read 32 or 64 bits at once and could read over the end."]
#[doc = ""]
#[doc = " @note The AVCodecContext MUST have been opened with @ref avcodec_open2()"]
#[doc = " before packets may be fed to the decoder."]
#[doc = ""]
#[doc = " @param avctx the codec context"]
#[doc = " @param[out] frame The AVFrame in which to store decoded audio samples."]
#[doc = " The decoder will allocate a buffer for the decoded frame by"]
#[doc = " calling the AVCodecContext.get_buffer2() callback."]
#[doc = " When AVCodecContext.refcounted_frames is set to 1, the frame is"]
#[doc = " reference counted and the returned reference belongs to the"]
#[doc = " caller. The caller must release the frame using av_frame_unref()"]
#[doc = " when the frame is no longer needed. The caller may safely write"]
#[doc = " to the frame if av_frame_is_writable() returns 1."]
#[doc = " When AVCodecContext.refcounted_frames is set to 0, the returned"]
#[doc = " reference belongs to the decoder and is valid only until the"]
#[doc = " next call to this function or until closing or flushing the"]
#[doc = " decoder. The caller may not write to it."]
#[doc = " @param[out] got_frame_ptr Zero if no frame could be decoded, otherwise it is"]
#[doc = " non-zero. Note that this field being set to zero"]
#[doc = " does not mean that an error has occurred. For"]
#[doc = " decoders with AV_CODEC_CAP_DELAY set, no given decode"]
#[doc = " call is guaranteed to produce a frame."]
#[doc = " @param[in] avpkt The input AVPacket containing the input buffer."]
#[doc = " At least avpkt->data and avpkt->size should be set. Some"]
#[doc = " decoders might also require additional fields to be set."]
#[doc = " @return A negative error code is returned if an error occurred during"]
#[doc = " decoding, otherwise the number of bytes consumed from the input"]
#[doc = " AVPacket is returned."]
#[doc = ""]
#[doc = " @deprecated Use avcodec_send_packet() and avcodec_receive_frame()."]
pub fn avcodec_decode_audio4(
avctx: *mut AVCodecContext,
frame: *mut AVFrame,
got_frame_ptr: *mut ::std::os::raw::c_int,
avpkt: *const AVPacket,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Decode the video frame of size avpkt->size from avpkt->data into picture."]
#[doc = " Some decoders may support multiple frames in a single AVPacket, such"]
#[doc = " decoders would then just decode the first frame."]
#[doc = ""]
#[doc = " @warning The input buffer must be AV_INPUT_BUFFER_PADDING_SIZE larger than"]
#[doc = " the actual read bytes because some optimized bitstream readers read 32 or 64"]
#[doc = " bits at once and could read over the end."]
#[doc = ""]
#[doc = " @warning The end of the input buffer buf should be set to 0 to ensure that"]
#[doc = " no overreading happens for damaged MPEG streams."]
#[doc = ""]
#[doc = " @note Codecs which have the AV_CODEC_CAP_DELAY capability set have a delay"]
#[doc = " between input and output, these need to be fed with avpkt->data=NULL,"]
#[doc = " avpkt->size=0 at the end to return the remaining frames."]
#[doc = ""]
#[doc = " @note The AVCodecContext MUST have been opened with @ref avcodec_open2()"]
#[doc = " before packets may be fed to the decoder."]
#[doc = ""]
#[doc = " @param avctx the codec context"]
#[doc = " @param[out] picture The AVFrame in which the decoded video frame will be stored."]
#[doc = " Use av_frame_alloc() to get an AVFrame. The codec will"]
#[doc = " allocate memory for the actual bitmap by calling the"]
#[doc = " AVCodecContext.get_buffer2() callback."]
#[doc = " When AVCodecContext.refcounted_frames is set to 1, the frame is"]
#[doc = " reference counted and the returned reference belongs to the"]
#[doc = " caller. The caller must release the frame using av_frame_unref()"]
#[doc = " when the frame is no longer needed. The caller may safely write"]
#[doc = " to the frame if av_frame_is_writable() returns 1."]
#[doc = " When AVCodecContext.refcounted_frames is set to 0, the returned"]
#[doc = " reference belongs to the decoder and is valid only until the"]
#[doc = " next call to this function or until closing or flushing the"]
#[doc = " decoder. The caller may not write to it."]
#[doc = ""]
#[doc = " @param[in] avpkt The input AVPacket containing the input buffer."]
#[doc = " You can create such packet with av_init_packet() and by then setting"]
#[doc = " data and size, some decoders might in addition need other fields like"]
#[doc = " flags&AV_PKT_FLAG_KEY. All decoders are designed to use the least"]
#[doc = " fields possible."]
#[doc = " @param[in,out] got_picture_ptr Zero if no frame could be decompressed, otherwise, it is nonzero."]
#[doc = " @return On error a negative value is returned, otherwise the number of bytes"]
#[doc = " used or zero if no frame could be decompressed."]
#[doc = ""]
#[doc = " @deprecated Use avcodec_send_packet() and avcodec_receive_frame()."]
pub fn avcodec_decode_video2(
avctx: *mut AVCodecContext,
picture: *mut AVFrame,
got_picture_ptr: *mut ::std::os::raw::c_int,
avpkt: *const AVPacket,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Decode a subtitle message."]
#[doc = " Return a negative value on error, otherwise return the number of bytes used."]
#[doc = " If no subtitle could be decompressed, got_sub_ptr is zero."]
#[doc = " Otherwise, the subtitle is stored in *sub."]
#[doc = " Note that AV_CODEC_CAP_DR1 is not available for subtitle codecs. This is for"]
#[doc = " simplicity, because the performance difference is expect to be negligible"]
#[doc = " and reusing a get_buffer written for video codecs would probably perform badly"]
#[doc = " due to a potentially very different allocation pattern."]
#[doc = ""]
#[doc = " Some decoders (those marked with AV_CODEC_CAP_DELAY) have a delay between input"]
#[doc = " and output. This means that for some packets they will not immediately"]
#[doc = " produce decoded output and need to be flushed at the end of decoding to get"]
#[doc = " all the decoded data. Flushing is done by calling this function with packets"]
#[doc = " with avpkt->data set to NULL and avpkt->size set to 0 until it stops"]
#[doc = " returning subtitles. It is safe to flush even those decoders that are not"]
#[doc = " marked with AV_CODEC_CAP_DELAY, then no subtitles will be returned."]
#[doc = ""]
#[doc = " @note The AVCodecContext MUST have been opened with @ref avcodec_open2()"]
#[doc = " before packets may be fed to the decoder."]
#[doc = ""]
#[doc = " @param avctx the codec context"]
#[doc = " @param[out] sub The Preallocated AVSubtitle in which the decoded subtitle will be stored,"]
#[doc = " must be freed with avsubtitle_free if *got_sub_ptr is set."]
#[doc = " @param[in,out] got_sub_ptr Zero if no subtitle could be decompressed, otherwise, it is nonzero."]
#[doc = " @param[in] avpkt The input AVPacket containing the input buffer."]
pub fn avcodec_decode_subtitle2(
avctx: *mut AVCodecContext,
sub: *mut AVSubtitle,
got_sub_ptr: *mut ::std::os::raw::c_int,
avpkt: *mut AVPacket,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Supply raw packet data as input to a decoder."]
#[doc = ""]
#[doc = " Internally, this call will copy relevant AVCodecContext fields, which can"]
#[doc = " influence decoding per-packet, and apply them when the packet is actually"]
#[doc = " decoded. (For example AVCodecContext.skip_frame, which might direct the"]
#[doc = " decoder to drop the frame contained by the packet sent with this function.)"]
#[doc = ""]
#[doc = " @warning The input buffer, avpkt->data must be AV_INPUT_BUFFER_PADDING_SIZE"]
#[doc = " larger than the actual read bytes because some optimized bitstream"]
#[doc = " readers read 32 or 64 bits at once and could read over the end."]
#[doc = ""]
#[doc = " @warning Do not mix this API with the legacy API (like avcodec_decode_video2())"]
#[doc = " on the same AVCodecContext. It will return unexpected results now"]
#[doc = " or in future libavcodec versions."]
#[doc = ""]
#[doc = " @note The AVCodecContext MUST have been opened with @ref avcodec_open2()"]
#[doc = " before packets may be fed to the decoder."]
#[doc = ""]
#[doc = " @param avctx codec context"]
#[doc = " @param[in] avpkt The input AVPacket. Usually, this will be a single video"]
#[doc = " frame, or several complete audio frames."]
#[doc = " Ownership of the packet remains with the caller, and the"]
#[doc = " decoder will not write to the packet. The decoder may create"]
#[doc = " a reference to the packet data (or copy it if the packet is"]
#[doc = " not reference-counted)."]
#[doc = " Unlike with older APIs, the packet is always fully consumed,"]
#[doc = " and if it contains multiple frames (e.g. some audio codecs),"]
#[doc = " will require you to call avcodec_receive_frame() multiple"]
#[doc = " times afterwards before you can send a new packet."]
#[doc = " It can be NULL (or an AVPacket with data set to NULL and"]
#[doc = " size set to 0); in this case, it is considered a flush"]
#[doc = " packet, which signals the end of the stream. Sending the"]
#[doc = " first flush packet will return success. Subsequent ones are"]
#[doc = " unnecessary and will return AVERROR_EOF. If the decoder"]
#[doc = " still has frames buffered, it will return them after sending"]
#[doc = " a flush packet."]
#[doc = ""]
#[doc = " @return 0 on success, otherwise negative error code:"]
#[doc = " AVERROR(EAGAIN): input is not accepted in the current state - user"]
#[doc = " must read output with avcodec_receive_frame() (once"]
#[doc = " all output is read, the packet should be resent, and"]
#[doc = " the call will not fail with EAGAIN)."]
#[doc = " AVERROR_EOF: the decoder has been flushed, and no new packets can"]
#[doc = " be sent to it (also returned if more than 1 flush"]
#[doc = " packet is sent)"]
#[doc = " AVERROR(EINVAL): codec not opened, it is an encoder, or requires flush"]
#[doc = " AVERROR(ENOMEM): failed to add packet to internal queue, or similar"]
#[doc = " other errors: legitimate decoding errors"]
pub fn avcodec_send_packet(
avctx: *mut AVCodecContext,
avpkt: *const AVPacket,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Return decoded output data from a decoder."]
#[doc = ""]
#[doc = " @param avctx codec context"]
#[doc = " @param frame This will be set to a reference-counted video or audio"]
#[doc = " frame (depending on the decoder type) allocated by the"]
#[doc = " decoder. Note that the function will always call"]
#[doc = " av_frame_unref(frame) before doing anything else."]
#[doc = ""]
#[doc = " @return"]
#[doc = " 0: success, a frame was returned"]
#[doc = " AVERROR(EAGAIN): output is not available in this state - user must try"]
#[doc = " to send new input"]
#[doc = " AVERROR_EOF: the decoder has been fully flushed, and there will be"]
#[doc = " no more output frames"]
#[doc = " AVERROR(EINVAL): codec not opened, or it is an encoder"]
#[doc = " other negative values: legitimate decoding errors"]
pub fn avcodec_receive_frame(
avctx: *mut AVCodecContext,
frame: *mut AVFrame,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Supply a raw video or audio frame to the encoder. Use avcodec_receive_packet()"]
#[doc = " to retrieve buffered output packets."]
#[doc = ""]
#[doc = " @param avctx codec context"]
#[doc = " @param[in] frame AVFrame containing the raw audio or video frame to be encoded."]
#[doc = " Ownership of the frame remains with the caller, and the"]
#[doc = " encoder will not write to the frame. The encoder may create"]
#[doc = " a reference to the frame data (or copy it if the frame is"]
#[doc = " not reference-counted)."]
#[doc = " It can be NULL, in which case it is considered a flush"]
#[doc = " packet. This signals the end of the stream. If the encoder"]
#[doc = " still has packets buffered, it will return them after this"]
#[doc = " call. Once flushing mode has been entered, additional flush"]
#[doc = " packets are ignored, and sending frames will return"]
#[doc = " AVERROR_EOF."]
#[doc = ""]
#[doc = " For audio:"]
#[doc = " If AV_CODEC_CAP_VARIABLE_FRAME_SIZE is set, then each frame"]
#[doc = " can have any number of samples."]
#[doc = " If it is not set, frame->nb_samples must be equal to"]
#[doc = " avctx->frame_size for all frames except the last."]
#[doc = " The final frame may be smaller than avctx->frame_size."]
#[doc = " @return 0 on success, otherwise negative error code:"]
#[doc = " AVERROR(EAGAIN): input is not accepted in the current state - user"]
#[doc = " must read output with avcodec_receive_packet() (once"]
#[doc = " all output is read, the packet should be resent, and"]
#[doc = " the call will not fail with EAGAIN)."]
#[doc = " AVERROR_EOF: the encoder has been flushed, and no new frames can"]
#[doc = " be sent to it"]
#[doc = " AVERROR(EINVAL): codec not opened, refcounted_frames not set, it is a"]
#[doc = " decoder, or requires flush"]
#[doc = " AVERROR(ENOMEM): failed to add packet to internal queue, or similar"]
#[doc = " other errors: legitimate decoding errors"]
pub fn avcodec_send_frame(
avctx: *mut AVCodecContext,
frame: *const AVFrame,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Read encoded data from the encoder."]
#[doc = ""]
#[doc = " @param avctx codec context"]
#[doc = " @param avpkt This will be set to a reference-counted packet allocated by the"]
#[doc = " encoder. Note that the function will always call"]
#[doc = " av_frame_unref(frame) before doing anything else."]
#[doc = " @return 0 on success, otherwise negative error code:"]
#[doc = " AVERROR(EAGAIN): output is not available in the current state - user"]
#[doc = " must try to send input"]
#[doc = " AVERROR_EOF: the encoder has been fully flushed, and there will be"]
#[doc = " no more output packets"]
#[doc = " AVERROR(EINVAL): codec not opened, or it is an encoder"]
#[doc = " other errors: legitimate decoding errors"]
pub fn avcodec_receive_packet(
avctx: *mut AVCodecContext,
avpkt: *mut AVPacket,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Create and return a AVHWFramesContext with values adequate for hardware"]
#[doc = " decoding. This is meant to get called from the get_format callback, and is"]
#[doc = " a helper for preparing a AVHWFramesContext for AVCodecContext.hw_frames_ctx."]
#[doc = " This API is for decoding with certain hardware acceleration modes/APIs only."]
#[doc = ""]
#[doc = " The returned AVHWFramesContext is not initialized. The caller must do this"]
#[doc = " with av_hwframe_ctx_init()."]
#[doc = ""]
#[doc = " Calling this function is not a requirement, but makes it simpler to avoid"]
#[doc = " codec or hardware API specific details when manually allocating frames."]
#[doc = ""]
#[doc = " Alternatively to this, an API user can set AVCodecContext.hw_device_ctx,"]
#[doc = " which sets up AVCodecContext.hw_frames_ctx fully automatically, and makes"]
#[doc = " it unnecessary to call this function or having to care about"]
#[doc = " AVHWFramesContext initialization at all."]
#[doc = ""]
#[doc = " There are a number of requirements for calling this function:"]
#[doc = ""]
#[doc = " - It must be called from get_format with the same avctx parameter that was"]
#[doc = " passed to get_format. Calling it outside of get_format is not allowed, and"]
#[doc = " can trigger undefined behavior."]
#[doc = " - The function is not always supported (see description of return values)."]
#[doc = " Even if this function returns successfully, hwaccel initialization could"]
#[doc = " fail later. (The degree to which implementations check whether the stream"]
#[doc = " is actually supported varies. Some do this check only after the user\'s"]
#[doc = " get_format callback returns.)"]
#[doc = " - The hw_pix_fmt must be one of the choices suggested by get_format. If the"]
#[doc = " user decides to use a AVHWFramesContext prepared with this API function,"]
#[doc = " the user must return the same hw_pix_fmt from get_format."]
#[doc = " - The device_ref passed to this function must support the given hw_pix_fmt."]
#[doc = " - After calling this API function, it is the user\'s responsibility to"]
#[doc = " initialize the AVHWFramesContext (returned by the out_frames_ref parameter),"]
#[doc = " and to set AVCodecContext.hw_frames_ctx to it. If done, this must be done"]
#[doc = " before returning from get_format (this is implied by the normal"]
#[doc = " AVCodecContext.hw_frames_ctx API rules)."]
#[doc = " - The AVHWFramesContext parameters may change every time time get_format is"]
#[doc = " called. Also, AVCodecContext.hw_frames_ctx is reset before get_format. So"]
#[doc = " you are inherently required to go through this process again on every"]
#[doc = " get_format call."]
#[doc = " - It is perfectly possible to call this function without actually using"]
#[doc = " the resulting AVHWFramesContext. One use-case might be trying to reuse a"]
#[doc = " previously initialized AVHWFramesContext, and calling this API function"]
#[doc = " only to test whether the required frame parameters have changed."]
#[doc = " - Fields that use dynamically allocated values of any kind must not be set"]
#[doc = " by the user unless setting them is explicitly allowed by the documentation."]
#[doc = " If the user sets AVHWFramesContext.free and AVHWFramesContext.user_opaque,"]
#[doc = " the new free callback must call the potentially set previous free callback."]
#[doc = " This API call may set any dynamically allocated fields, including the free"]
#[doc = " callback."]
#[doc = ""]
#[doc = " The function will set at least the following fields on AVHWFramesContext"]
#[doc = " (potentially more, depending on hwaccel API):"]
#[doc = ""]
#[doc = " - All fields set by av_hwframe_ctx_alloc()."]
#[doc = " - Set the format field to hw_pix_fmt."]
#[doc = " - Set the sw_format field to the most suited and most versatile format. (An"]
#[doc = " implication is that this will prefer generic formats over opaque formats"]
#[doc = " with arbitrary restrictions, if possible.)"]
#[doc = " - Set the width/height fields to the coded frame size, rounded up to the"]
#[doc = " API-specific minimum alignment."]
#[doc = " - Only _if_ the hwaccel requires a pre-allocated pool: set the initial_pool_size"]
#[doc = " field to the number of maximum reference surfaces possible with the codec,"]
#[doc = " plus 1 surface for the user to work (meaning the user can safely reference"]
#[doc = " at most 1 decoded surface at a time), plus additional buffering introduced"]
#[doc = " by frame threading. If the hwaccel does not require pre-allocation, the"]
#[doc = " field is left to 0, and the decoder will allocate new surfaces on demand"]
#[doc = " during decoding."]
#[doc = " - Possibly AVHWFramesContext.hwctx fields, depending on the underlying"]
#[doc = " hardware API."]
#[doc = ""]
#[doc = " Essentially, out_frames_ref returns the same as av_hwframe_ctx_alloc(), but"]
#[doc = " with basic frame parameters set."]
#[doc = ""]
#[doc = " The function is stateless, and does not change the AVCodecContext or the"]
#[doc = " device_ref AVHWDeviceContext."]
#[doc = ""]
#[doc = " @param avctx The context which is currently calling get_format, and which"]
#[doc = " implicitly contains all state needed for filling the returned"]
#[doc = " AVHWFramesContext properly."]
#[doc = " @param device_ref A reference to the AVHWDeviceContext describing the device"]
#[doc = " which will be used by the hardware decoder."]
#[doc = " @param hw_pix_fmt The hwaccel format you are going to return from get_format."]
#[doc = " @param out_frames_ref On success, set to a reference to an _uninitialized_"]
#[doc = " AVHWFramesContext, created from the given device_ref."]
#[doc = " Fields will be set to values required for decoding."]
#[doc = " Not changed if an error is returned."]
#[doc = " @return zero on success, a negative value on error. The following error codes"]
#[doc = " have special semantics:"]
#[doc = " AVERROR(ENOENT): the decoder does not support this functionality. Setup"]
#[doc = " is always manual, or it is a decoder which does not"]
#[doc = " support setting AVCodecContext.hw_frames_ctx at all,"]
#[doc = " or it is a software format."]
#[doc = " AVERROR(EINVAL): it is known that hardware decoding is not supported for"]
#[doc = " this configuration, or the device_ref is not supported"]
#[doc = " for the hwaccel referenced by hw_pix_fmt."]
pub fn avcodec_get_hw_frames_parameters(
avctx: *mut AVCodecContext,
device_ref: *mut AVBufferRef,
hw_pix_fmt: AVPixelFormat,
out_frames_ref: *mut *mut AVBufferRef,
) -> ::std::os::raw::c_int;
}
pub const AVPictureStructure_AV_PICTURE_STRUCTURE_UNKNOWN: AVPictureStructure = 0;
pub const AVPictureStructure_AV_PICTURE_STRUCTURE_TOP_FIELD: AVPictureStructure = 1;
pub const AVPictureStructure_AV_PICTURE_STRUCTURE_BOTTOM_FIELD: AVPictureStructure = 2;
pub const AVPictureStructure_AV_PICTURE_STRUCTURE_FRAME: AVPictureStructure = 3;
#[doc = " @defgroup lavc_parsing Frame parsing"]
#[doc = " @{"]
pub type AVPictureStructure = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVCodecParserContext {
pub priv_data: *mut ::std::os::raw::c_void,
pub parser: *mut AVCodecParser,
pub frame_offset: i64,
pub cur_offset: i64,
pub next_frame_offset: i64,
pub pict_type: ::std::os::raw::c_int,
#[doc = " This field is used for proper frame duration computation in lavf."]
#[doc = " It signals, how much longer the frame duration of the current frame"]
#[doc = " is compared to normal frame duration."]
#[doc = ""]
#[doc = " frame_duration = (1 + repeat_pict) * time_base"]
#[doc = ""]
#[doc = " It is used by codecs like H.264 to display telecined material."]
pub repeat_pict: ::std::os::raw::c_int,
pub pts: i64,
pub dts: i64,
pub last_pts: i64,
pub last_dts: i64,
pub fetch_timestamp: ::std::os::raw::c_int,
pub cur_frame_start_index: ::std::os::raw::c_int,
pub cur_frame_offset: [i64; 4usize],
pub cur_frame_pts: [i64; 4usize],
pub cur_frame_dts: [i64; 4usize],
pub flags: ::std::os::raw::c_int,
#[doc = "< byte offset from starting packet start"]
pub offset: i64,
pub cur_frame_end: [i64; 4usize],
#[doc = " Set by parser to 1 for key frames and 0 for non-key frames."]
#[doc = " It is initialized to -1, so if the parser doesn\'t set this flag,"]
#[doc = " old-style fallback using AV_PICTURE_TYPE_I picture type as key frames"]
#[doc = " will be used."]
pub key_frame: ::std::os::raw::c_int,
#[doc = " @deprecated unused"]
pub convergence_duration: i64,
#[doc = " Synchronization point for start of timestamp generation."]
#[doc = ""]
#[doc = " Set to >0 for sync point, 0 for no sync point and <0 for undefined"]
#[doc = " (default)."]
#[doc = ""]
#[doc = " For example, this corresponds to presence of H.264 buffering period"]
#[doc = " SEI message."]
pub dts_sync_point: ::std::os::raw::c_int,
#[doc = " Offset of the current timestamp against last timestamp sync point in"]
#[doc = " units of AVCodecContext.time_base."]
#[doc = ""]
#[doc = " Set to INT_MIN when dts_sync_point unused. Otherwise, it must"]
#[doc = " contain a valid timestamp offset."]
#[doc = ""]
#[doc = " Note that the timestamp of sync point has usually a nonzero"]
#[doc = " dts_ref_dts_delta, which refers to the previous sync point. Offset of"]
#[doc = " the next frame after timestamp sync point will be usually 1."]
#[doc = ""]
#[doc = " For example, this corresponds to H.264 cpb_removal_delay."]
pub dts_ref_dts_delta: ::std::os::raw::c_int,
#[doc = " Presentation delay of current frame in units of AVCodecContext.time_base."]
#[doc = ""]
#[doc = " Set to INT_MIN when dts_sync_point unused. Otherwise, it must"]
#[doc = " contain valid non-negative timestamp delta (presentation time of a frame"]
#[doc = " must not lie in the past)."]
#[doc = ""]
#[doc = " This delay represents the difference between decoding and presentation"]
#[doc = " time of the frame."]
#[doc = ""]
#[doc = " For example, this corresponds to H.264 dpb_output_delay."]
pub pts_dts_delta: ::std::os::raw::c_int,
#[doc = " Position of the packet in file."]
#[doc = ""]
#[doc = " Analogous to cur_frame_pts/dts"]
pub cur_frame_pos: [i64; 4usize],
#[doc = " Byte position of currently parsed frame in stream."]
pub pos: i64,
#[doc = " Previous frame byte position."]
pub last_pos: i64,
#[doc = " Duration of the current frame."]
#[doc = " For audio, this is in units of 1 / AVCodecContext.sample_rate."]
#[doc = " For all other types, this is in units of AVCodecContext.time_base."]
pub duration: ::std::os::raw::c_int,
pub field_order: AVFieldOrder,
#[doc = " Indicate whether a picture is coded as a frame, top field or bottom field."]
#[doc = ""]
#[doc = " For example, H.264 field_pic_flag equal to 0 corresponds to"]
#[doc = " AV_PICTURE_STRUCTURE_FRAME. An H.264 picture with field_pic_flag"]
#[doc = " equal to 1 and bottom_field_flag equal to 0 corresponds to"]
#[doc = " AV_PICTURE_STRUCTURE_TOP_FIELD."]
pub picture_structure: AVPictureStructure,
#[doc = " Picture number incremented in presentation or output order."]
#[doc = " This field may be reinitialized at the first picture of a new sequence."]
#[doc = ""]
#[doc = " For example, this corresponds to H.264 PicOrderCnt."]
pub output_picture_number: ::std::os::raw::c_int,
#[doc = " Dimensions of the decoded video intended for presentation."]
pub width: ::std::os::raw::c_int,
pub height: ::std::os::raw::c_int,
#[doc = " Dimensions of the coded video."]
pub coded_width: ::std::os::raw::c_int,
pub coded_height: ::std::os::raw::c_int,
#[doc = " The format of the coded data, corresponds to enum AVPixelFormat for video"]
#[doc = " and for enum AVSampleFormat for audio."]
#[doc = ""]
#[doc = " Note that a decoder can have considerable freedom in how exactly it"]
#[doc = " decodes the data, so the format reported here might be different from the"]
#[doc = " one returned by a decoder."]
pub format: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVCodecParser {
pub codec_ids: [::std::os::raw::c_int; 5usize],
pub priv_data_size: ::std::os::raw::c_int,
pub parser_init: ::std::option::Option<
unsafe extern "C" fn(s: *mut AVCodecParserContext) -> ::std::os::raw::c_int,
>,
pub parser_parse: ::std::option::Option<
unsafe extern "C" fn(
s: *mut AVCodecParserContext,
avctx: *mut AVCodecContext,
poutbuf: *mut *const u8,
poutbuf_size: *mut ::std::os::raw::c_int,
buf: *const u8,
buf_size: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>,
pub parser_close: ::std::option::Option<unsafe extern "C" fn(s: *mut AVCodecParserContext)>,
pub split: ::std::option::Option<
unsafe extern "C" fn(
avctx: *mut AVCodecContext,
buf: *const u8,
buf_size: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>,
pub next: *mut AVCodecParser,
}
extern "C" {
#[doc = " Iterate over all registered codec parsers."]
#[doc = ""]
#[doc = " @param opaque a pointer where libavcodec will store the iteration state. Must"]
#[doc = " point to NULL to start the iteration."]
#[doc = ""]
#[doc = " @return the next registered codec parser or NULL when the iteration is"]
#[doc = " finished"]
pub fn av_parser_iterate(opaque: *mut *mut ::std::os::raw::c_void) -> *const AVCodecParser;
}
extern "C" {
pub fn av_parser_next(c: *const AVCodecParser) -> *mut AVCodecParser;
}
extern "C" {
pub fn av_register_codec_parser(parser: *mut AVCodecParser);
}
extern "C" {
pub fn av_parser_init(codec_id: ::std::os::raw::c_int) -> *mut AVCodecParserContext;
}
extern "C" {
#[doc = " Parse a packet."]
#[doc = ""]
#[doc = " @param s parser context."]
#[doc = " @param avctx codec context."]
#[doc = " @param poutbuf set to pointer to parsed buffer or NULL if not yet finished."]
#[doc = " @param poutbuf_size set to size of parsed buffer or zero if not yet finished."]
#[doc = " @param buf input buffer."]
#[doc = " @param buf_size buffer size in bytes without the padding. I.e. the full buffer"]
#[doc = "size is assumed to be buf_size + AV_INPUT_BUFFER_PADDING_SIZE."]
#[doc = "To signal EOF, this should be 0 (so that the last frame"]
#[doc = "can be output)."]
#[doc = " @param pts input presentation timestamp."]
#[doc = " @param dts input decoding timestamp."]
#[doc = " @param pos input byte position in stream."]
#[doc = " @return the number of bytes of the input bitstream used."]
#[doc = ""]
#[doc = " Example:"]
#[doc = " @code"]
#[doc = " while(in_len){"]
#[doc = " len = av_parser_parse2(myparser, AVCodecContext, &data, &size,"]
#[doc = " in_data, in_len,"]
#[doc = " pts, dts, pos);"]
#[doc = " in_data += len;"]
#[doc = " in_len -= len;"]
#[doc = ""]
#[doc = " if(size)"]
#[doc = " decode_frame(data, size);"]
#[doc = " }"]
#[doc = " @endcode"]
pub fn av_parser_parse2(
s: *mut AVCodecParserContext,
avctx: *mut AVCodecContext,
poutbuf: *mut *mut u8,
poutbuf_size: *mut ::std::os::raw::c_int,
buf: *const u8,
buf_size: ::std::os::raw::c_int,
pts: i64,
dts: i64,
pos: i64,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " @return 0 if the output buffer is a subset of the input, 1 if it is allocated and must be freed"]
#[doc = " @deprecated use AVBitStreamFilter"]
pub fn av_parser_change(
s: *mut AVCodecParserContext,
avctx: *mut AVCodecContext,
poutbuf: *mut *mut u8,
poutbuf_size: *mut ::std::os::raw::c_int,
buf: *const u8,
buf_size: ::std::os::raw::c_int,
keyframe: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn av_parser_close(s: *mut AVCodecParserContext);
}
extern "C" {
#[doc = " Find a registered encoder with a matching codec ID."]
#[doc = ""]
#[doc = " @param id AVCodecID of the requested encoder"]
#[doc = " @return An encoder if one was found, NULL otherwise."]
pub fn avcodec_find_encoder(id: AVCodecID) -> *mut AVCodec;
}
extern "C" {
#[doc = " Find a registered encoder with the specified name."]
#[doc = ""]
#[doc = " @param name name of the requested encoder"]
#[doc = " @return An encoder if one was found, NULL otherwise."]
pub fn avcodec_find_encoder_by_name(name: *const ::std::os::raw::c_char) -> *mut AVCodec;
}
extern "C" {
#[doc = " Encode a frame of audio."]
#[doc = ""]
#[doc = " Takes input samples from frame and writes the next output packet, if"]
#[doc = " available, to avpkt. The output packet does not necessarily contain data for"]
#[doc = " the most recent frame, as encoders can delay, split, and combine input frames"]
#[doc = " internally as needed."]
#[doc = ""]
#[doc = " @param avctx codec context"]
#[doc = " @param avpkt output AVPacket."]
#[doc = " The user can supply an output buffer by setting"]
#[doc = " avpkt->data and avpkt->size prior to calling the"]
#[doc = " function, but if the size of the user-provided data is not"]
#[doc = " large enough, encoding will fail. If avpkt->data and"]
#[doc = " avpkt->size are set, avpkt->destruct must also be set. All"]
#[doc = " other AVPacket fields will be reset by the encoder using"]
#[doc = " av_init_packet(). If avpkt->data is NULL, the encoder will"]
#[doc = " allocate it. The encoder will set avpkt->size to the size"]
#[doc = " of the output packet."]
#[doc = ""]
#[doc = " If this function fails or produces no output, avpkt will be"]
#[doc = " freed using av_packet_unref()."]
#[doc = " @param[in] frame AVFrame containing the raw audio data to be encoded."]
#[doc = " May be NULL when flushing an encoder that has the"]
#[doc = " AV_CODEC_CAP_DELAY capability set."]
#[doc = " If AV_CODEC_CAP_VARIABLE_FRAME_SIZE is set, then each frame"]
#[doc = " can have any number of samples."]
#[doc = " If it is not set, frame->nb_samples must be equal to"]
#[doc = " avctx->frame_size for all frames except the last."]
#[doc = " The final frame may be smaller than avctx->frame_size."]
#[doc = " @param[out] got_packet_ptr This field is set to 1 by libavcodec if the"]
#[doc = " output packet is non-empty, and to 0 if it is"]
#[doc = " empty. If the function returns an error, the"]
#[doc = " packet can be assumed to be invalid, and the"]
#[doc = " value of got_packet_ptr is undefined and should"]
#[doc = " not be used."]
#[doc = " @return 0 on success, negative error code on failure"]
#[doc = ""]
#[doc = " @deprecated use avcodec_send_frame()/avcodec_receive_packet() instead"]
pub fn avcodec_encode_audio2(
avctx: *mut AVCodecContext,
avpkt: *mut AVPacket,
frame: *const AVFrame,
got_packet_ptr: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Encode a frame of video."]
#[doc = ""]
#[doc = " Takes input raw video data from frame and writes the next output packet, if"]
#[doc = " available, to avpkt. The output packet does not necessarily contain data for"]
#[doc = " the most recent frame, as encoders can delay and reorder input frames"]
#[doc = " internally as needed."]
#[doc = ""]
#[doc = " @param avctx codec context"]
#[doc = " @param avpkt output AVPacket."]
#[doc = " The user can supply an output buffer by setting"]
#[doc = " avpkt->data and avpkt->size prior to calling the"]
#[doc = " function, but if the size of the user-provided data is not"]
#[doc = " large enough, encoding will fail. All other AVPacket fields"]
#[doc = " will be reset by the encoder using av_init_packet(). If"]
#[doc = " avpkt->data is NULL, the encoder will allocate it."]
#[doc = " The encoder will set avpkt->size to the size of the"]
#[doc = " output packet. The returned data (if any) belongs to the"]
#[doc = " caller, he is responsible for freeing it."]
#[doc = ""]
#[doc = " If this function fails or produces no output, avpkt will be"]
#[doc = " freed using av_packet_unref()."]
#[doc = " @param[in] frame AVFrame containing the raw video data to be encoded."]
#[doc = " May be NULL when flushing an encoder that has the"]
#[doc = " AV_CODEC_CAP_DELAY capability set."]
#[doc = " @param[out] got_packet_ptr This field is set to 1 by libavcodec if the"]
#[doc = " output packet is non-empty, and to 0 if it is"]
#[doc = " empty. If the function returns an error, the"]
#[doc = " packet can be assumed to be invalid, and the"]
#[doc = " value of got_packet_ptr is undefined and should"]
#[doc = " not be used."]
#[doc = " @return 0 on success, negative error code on failure"]
#[doc = ""]
#[doc = " @deprecated use avcodec_send_frame()/avcodec_receive_packet() instead"]
pub fn avcodec_encode_video2(
avctx: *mut AVCodecContext,
avpkt: *mut AVPacket,
frame: *const AVFrame,
got_packet_ptr: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn avcodec_encode_subtitle(
avctx: *mut AVCodecContext,
buf: *mut u8,
buf_size: ::std::os::raw::c_int,
sub: *const AVSubtitle,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " @deprecated unused"]
pub fn avpicture_alloc(
picture: *mut AVPicture,
pix_fmt: AVPixelFormat,
width: ::std::os::raw::c_int,
height: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " @deprecated unused"]
pub fn avpicture_free(picture: *mut AVPicture);
}
extern "C" {
#[doc = " @deprecated use av_image_fill_arrays() instead."]
pub fn avpicture_fill(
picture: *mut AVPicture,
ptr: *const u8,
pix_fmt: AVPixelFormat,
width: ::std::os::raw::c_int,
height: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " @deprecated use av_image_copy_to_buffer() instead."]
pub fn avpicture_layout(
src: *const AVPicture,
pix_fmt: AVPixelFormat,
width: ::std::os::raw::c_int,
height: ::std::os::raw::c_int,
dest: *mut ::std::os::raw::c_uchar,
dest_size: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " @deprecated use av_image_get_buffer_size() instead."]
pub fn avpicture_get_size(
pix_fmt: AVPixelFormat,
width: ::std::os::raw::c_int,
height: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " @deprecated av_image_copy() instead."]
pub fn av_picture_copy(
dst: *mut AVPicture,
src: *const AVPicture,
pix_fmt: AVPixelFormat,
width: ::std::os::raw::c_int,
height: ::std::os::raw::c_int,
);
}
extern "C" {
#[doc = " @deprecated unused"]
pub fn av_picture_crop(
dst: *mut AVPicture,
src: *const AVPicture,
pix_fmt: AVPixelFormat,
top_band: ::std::os::raw::c_int,
left_band: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " @deprecated unused"]
pub fn av_picture_pad(
dst: *mut AVPicture,
src: *const AVPicture,
height: ::std::os::raw::c_int,
width: ::std::os::raw::c_int,
pix_fmt: AVPixelFormat,
padtop: ::std::os::raw::c_int,
padbottom: ::std::os::raw::c_int,
padleft: ::std::os::raw::c_int,
padright: ::std::os::raw::c_int,
color: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " @deprecated Use av_pix_fmt_get_chroma_sub_sample"]
pub fn avcodec_get_chroma_sub_sample(
pix_fmt: AVPixelFormat,
h_shift: *mut ::std::os::raw::c_int,
v_shift: *mut ::std::os::raw::c_int,
);
}
extern "C" {
#[doc = " Return a value representing the fourCC code associated to the"]
#[doc = " pixel format pix_fmt, or 0 if no associated fourCC code can be"]
#[doc = " found."]
pub fn avcodec_pix_fmt_to_codec_tag(pix_fmt: AVPixelFormat) -> ::std::os::raw::c_uint;
}
extern "C" {
#[doc = " @deprecated see av_get_pix_fmt_loss()"]
pub fn avcodec_get_pix_fmt_loss(
dst_pix_fmt: AVPixelFormat,
src_pix_fmt: AVPixelFormat,
has_alpha: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Find the best pixel format to convert to given a certain source pixel"]
#[doc = " format. When converting from one pixel format to another, information loss"]
#[doc = " may occur. For example, when converting from RGB24 to GRAY, the color"]
#[doc = " information will be lost. Similarly, other losses occur when converting from"]
#[doc = " some formats to other formats. avcodec_find_best_pix_fmt_of_2() searches which of"]
#[doc = " the given pixel formats should be used to suffer the least amount of loss."]
#[doc = " The pixel formats from which it chooses one, are determined by the"]
#[doc = " pix_fmt_list parameter."]
#[doc = ""]
#[doc = ""]
#[doc = " @param[in] pix_fmt_list AV_PIX_FMT_NONE terminated array of pixel formats to choose from"]
#[doc = " @param[in] src_pix_fmt source pixel format"]
#[doc = " @param[in] has_alpha Whether the source pixel format alpha channel is used."]
#[doc = " @param[out] loss_ptr Combination of flags informing you what kind of losses will occur."]
#[doc = " @return The best pixel format to convert to or -1 if none was found."]
pub fn avcodec_find_best_pix_fmt_of_list(
pix_fmt_list: *const AVPixelFormat,
src_pix_fmt: AVPixelFormat,
has_alpha: ::std::os::raw::c_int,
loss_ptr: *mut ::std::os::raw::c_int,
) -> AVPixelFormat;
}
extern "C" {
#[doc = " @deprecated see av_find_best_pix_fmt_of_2()"]
pub fn avcodec_find_best_pix_fmt_of_2(
dst_pix_fmt1: AVPixelFormat,
dst_pix_fmt2: AVPixelFormat,
src_pix_fmt: AVPixelFormat,
has_alpha: ::std::os::raw::c_int,
loss_ptr: *mut ::std::os::raw::c_int,
) -> AVPixelFormat;
}
extern "C" {
pub fn avcodec_find_best_pix_fmt2(
dst_pix_fmt1: AVPixelFormat,
dst_pix_fmt2: AVPixelFormat,
src_pix_fmt: AVPixelFormat,
has_alpha: ::std::os::raw::c_int,
loss_ptr: *mut ::std::os::raw::c_int,
) -> AVPixelFormat;
}
extern "C" {
pub fn avcodec_default_get_format(
s: *mut AVCodecContext,
fmt: *const AVPixelFormat,
) -> AVPixelFormat;
}
extern "C" {
#[doc = " Put a string representing the codec tag codec_tag in buf."]
#[doc = ""]
#[doc = " @param buf buffer to place codec tag in"]
#[doc = " @param buf_size size in bytes of buf"]
#[doc = " @param codec_tag codec tag to assign"]
#[doc = " @return the length of the string that would have been generated if"]
#[doc = " enough space had been available, excluding the trailing null"]
#[doc = ""]
#[doc = " @deprecated see av_fourcc_make_string() and av_fourcc2str()."]
pub fn av_get_codec_tag_string(
buf: *mut ::std::os::raw::c_char,
buf_size: usize,
codec_tag: ::std::os::raw::c_uint,
) -> usize;
}
extern "C" {
pub fn avcodec_string(
buf: *mut ::std::os::raw::c_char,
buf_size: ::std::os::raw::c_int,
enc: *mut AVCodecContext,
encode: ::std::os::raw::c_int,
);
}
extern "C" {
#[doc = " Return a name for the specified profile, if available."]
#[doc = ""]
#[doc = " @param codec the codec that is searched for the given profile"]
#[doc = " @param profile the profile value for which a name is requested"]
#[doc = " @return A name for the profile if found, NULL otherwise."]
pub fn av_get_profile_name(
codec: *const AVCodec,
profile: ::std::os::raw::c_int,
) -> *const ::std::os::raw::c_char;
}
extern "C" {
#[doc = " Return a name for the specified profile, if available."]
#[doc = ""]
#[doc = " @param codec_id the ID of the codec to which the requested profile belongs"]
#[doc = " @param profile the profile value for which a name is requested"]
#[doc = " @return A name for the profile if found, NULL otherwise."]
#[doc = ""]
#[doc = " @note unlike av_get_profile_name(), which searches a list of profiles"]
#[doc = " supported by a specific decoder or encoder implementation, this"]
#[doc = " function searches the list of profiles from the AVCodecDescriptor"]
pub fn avcodec_profile_name(
codec_id: AVCodecID,
profile: ::std::os::raw::c_int,
) -> *const ::std::os::raw::c_char;
}
extern "C" {
pub fn avcodec_default_execute(
c: *mut AVCodecContext,
func: ::std::option::Option<
unsafe extern "C" fn(
c: *mut AVCodecContext,
func: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
>,
arg: *mut ::std::os::raw::c_void,
ret: *mut ::std::os::raw::c_int,
count: ::std::os::raw::c_int,
size: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn avcodec_default_execute2(
c: *mut AVCodecContext,
func: ::std::option::Option<
unsafe extern "C" fn(
c: *mut AVCodecContext,
func: *mut ::std::os::raw::c_void,
arg: ::std::os::raw::c_int,
ret: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>,
arg: *mut ::std::os::raw::c_void,
ret: *mut ::std::os::raw::c_int,
count: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Fill AVFrame audio data and linesize pointers."]
#[doc = ""]
#[doc = " The buffer buf must be a preallocated buffer with a size big enough"]
#[doc = " to contain the specified samples amount. The filled AVFrame data"]
#[doc = " pointers will point to this buffer."]
#[doc = ""]
#[doc = " AVFrame extended_data channel pointers are allocated if necessary for"]
#[doc = " planar audio."]
#[doc = ""]
#[doc = " @param frame the AVFrame"]
#[doc = " frame->nb_samples must be set prior to calling the"]
#[doc = " function. This function fills in frame->data,"]
#[doc = " frame->extended_data, frame->linesize[0]."]
#[doc = " @param nb_channels channel count"]
#[doc = " @param sample_fmt sample format"]
#[doc = " @param buf buffer to use for frame data"]
#[doc = " @param buf_size size of buffer"]
#[doc = " @param align plane size sample alignment (0 = default)"]
#[doc = " @return >=0 on success, negative error code on failure"]
#[doc = " @todo return the size in bytes required to store the samples in"]
#[doc = " case of success, at the next libavutil bump"]
pub fn avcodec_fill_audio_frame(
frame: *mut AVFrame,
nb_channels: ::std::os::raw::c_int,
sample_fmt: AVSampleFormat,
buf: *const u8,
buf_size: ::std::os::raw::c_int,
align: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Reset the internal decoder state / flush internal buffers. Should be called"]
#[doc = " e.g. when seeking or when switching to a different stream."]
#[doc = ""]
#[doc = " @note when refcounted frames are not used (i.e. avctx->refcounted_frames is 0),"]
#[doc = " this invalidates the frames previously returned from the decoder. When"]
#[doc = " refcounted frames are used, the decoder just releases any references it might"]
#[doc = " keep internally, but the caller\'s reference remains valid."]
pub fn avcodec_flush_buffers(avctx: *mut AVCodecContext);
}
extern "C" {
#[doc = " Return codec bits per sample."]
#[doc = ""]
#[doc = " @param[in] codec_id the codec"]
#[doc = " @return Number of bits per sample or zero if unknown for the given codec."]
pub fn av_get_bits_per_sample(codec_id: AVCodecID) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Return the PCM codec associated with a sample format."]
#[doc = " @param be endianness, 0 for little, 1 for big,"]
#[doc = " -1 (or anything else) for native"]
#[doc = " @return AV_CODEC_ID_PCM_* or AV_CODEC_ID_NONE"]
pub fn av_get_pcm_codec(fmt: AVSampleFormat, be: ::std::os::raw::c_int) -> AVCodecID;
}
extern "C" {
#[doc = " Return codec bits per sample."]
#[doc = " Only return non-zero if the bits per sample is exactly correct, not an"]
#[doc = " approximation."]
#[doc = ""]
#[doc = " @param[in] codec_id the codec"]
#[doc = " @return Number of bits per sample or zero if unknown for the given codec."]
pub fn av_get_exact_bits_per_sample(codec_id: AVCodecID) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Return audio frame duration."]
#[doc = ""]
#[doc = " @param avctx codec context"]
#[doc = " @param frame_bytes size of the frame, or 0 if unknown"]
#[doc = " @return frame duration, in samples, if known. 0 if not able to"]
#[doc = " determine."]
pub fn av_get_audio_frame_duration(
avctx: *mut AVCodecContext,
frame_bytes: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " This function is the same as av_get_audio_frame_duration(), except it works"]
#[doc = " with AVCodecParameters instead of an AVCodecContext."]
pub fn av_get_audio_frame_duration2(
par: *mut AVCodecParameters,
frame_bytes: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVBitStreamFilterContext {
pub priv_data: *mut ::std::os::raw::c_void,
pub filter: *const AVBitStreamFilter,
pub parser: *mut AVCodecParserContext,
pub next: *mut AVBitStreamFilterContext,
#[doc = " Internal default arguments, used if NULL is passed to av_bitstream_filter_filter()."]
#[doc = " Not for access by library users."]
pub args: *mut ::std::os::raw::c_char,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVBSFInternal {
_unused: [u8; 0],
}
#[doc = " The bitstream filter state."]
#[doc = ""]
#[doc = " This struct must be allocated with av_bsf_alloc() and freed with"]
#[doc = " av_bsf_free()."]
#[doc = ""]
#[doc = " The fields in the struct will only be changed (by the caller or by the"]
#[doc = " filter) as described in their documentation, and are to be considered"]
#[doc = " immutable otherwise."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVBSFContext {
#[doc = " A class for logging and AVOptions"]
pub av_class: *const AVClass,
#[doc = " The bitstream filter this context is an instance of."]
pub filter: *const AVBitStreamFilter,
#[doc = " Opaque libavcodec internal data. Must not be touched by the caller in any"]
#[doc = " way."]
pub internal: *mut AVBSFInternal,
#[doc = " Opaque filter-specific private data. If filter->priv_class is non-NULL,"]
#[doc = " this is an AVOptions-enabled struct."]
pub priv_data: *mut ::std::os::raw::c_void,
#[doc = " Parameters of the input stream. This field is allocated in"]
#[doc = " av_bsf_alloc(), it needs to be filled by the caller before"]
#[doc = " av_bsf_init()."]
pub par_in: *mut AVCodecParameters,
#[doc = " Parameters of the output stream. This field is allocated in"]
#[doc = " av_bsf_alloc(), it is set by the filter in av_bsf_init()."]
pub par_out: *mut AVCodecParameters,
#[doc = " The timebase used for the timestamps of the input packets. Set by the"]
#[doc = " caller before av_bsf_init()."]
pub time_base_in: AVRational,
#[doc = " The timebase used for the timestamps of the output packets. Set by the"]
#[doc = " filter in av_bsf_init()."]
pub time_base_out: AVRational,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVBitStreamFilter {
pub name: *const ::std::os::raw::c_char,
#[doc = " A list of codec ids supported by the filter, terminated by"]
#[doc = " AV_CODEC_ID_NONE."]
#[doc = " May be NULL, in that case the bitstream filter works with any codec id."]
pub codec_ids: *const AVCodecID,
#[doc = " A class for the private data, used to declare bitstream filter private"]
#[doc = " AVOptions. This field is NULL for bitstream filters that do not declare"]
#[doc = " any options."]
#[doc = ""]
#[doc = " If this field is non-NULL, the first member of the filter private data"]
#[doc = " must be a pointer to AVClass, which will be set by libavcodec generic"]
#[doc = " code to this class."]
pub priv_class: *const AVClass,
#[doc = " No fields below this line are part of the public API. They"]
#[doc = " may not be used outside of libavcodec and can be changed and"]
#[doc = " removed at will."]
#[doc = " New public fields should be added right above."]
#[doc = ""]
pub priv_data_size: ::std::os::raw::c_int,
pub init: ::std::option::Option<
unsafe extern "C" fn(ctx: *mut AVBSFContext) -> ::std::os::raw::c_int,
>,
pub filter: ::std::option::Option<
unsafe extern "C" fn(ctx: *mut AVBSFContext, pkt: *mut AVPacket) -> ::std::os::raw::c_int,
>,
pub close: ::std::option::Option<unsafe extern "C" fn(ctx: *mut AVBSFContext)>,
pub flush: ::std::option::Option<unsafe extern "C" fn(ctx: *mut AVBSFContext)>,
}
extern "C" {
#[doc = " @deprecated the old bitstream filtering API (using AVBitStreamFilterContext)"]
#[doc = " is deprecated. Use the new bitstream filtering API (using AVBSFContext)."]
pub fn av_register_bitstream_filter(bsf: *mut AVBitStreamFilter);
}
extern "C" {
#[doc = " @deprecated the old bitstream filtering API (using AVBitStreamFilterContext)"]
#[doc = " is deprecated. Use av_bsf_get_by_name(), av_bsf_alloc(), and av_bsf_init()"]
#[doc = " from the new bitstream filtering API (using AVBSFContext)."]
pub fn av_bitstream_filter_init(
name: *const ::std::os::raw::c_char,
) -> *mut AVBitStreamFilterContext;
}
extern "C" {
#[doc = " @deprecated the old bitstream filtering API (using AVBitStreamFilterContext)"]
#[doc = " is deprecated. Use av_bsf_send_packet() and av_bsf_receive_packet() from the"]
#[doc = " new bitstream filtering API (using AVBSFContext)."]
pub fn av_bitstream_filter_filter(
bsfc: *mut AVBitStreamFilterContext,
avctx: *mut AVCodecContext,
args: *const ::std::os::raw::c_char,
poutbuf: *mut *mut u8,
poutbuf_size: *mut ::std::os::raw::c_int,
buf: *const u8,
buf_size: ::std::os::raw::c_int,
keyframe: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " @deprecated the old bitstream filtering API (using AVBitStreamFilterContext)"]
#[doc = " is deprecated. Use av_bsf_free() from the new bitstream filtering API (using"]
#[doc = " AVBSFContext)."]
pub fn av_bitstream_filter_close(bsf: *mut AVBitStreamFilterContext);
}
extern "C" {
#[doc = " @deprecated the old bitstream filtering API (using AVBitStreamFilterContext)"]
#[doc = " is deprecated. Use av_bsf_iterate() from the new bitstream filtering API (using"]
#[doc = " AVBSFContext)."]
pub fn av_bitstream_filter_next(f: *const AVBitStreamFilter) -> *const AVBitStreamFilter;
}
extern "C" {
#[doc = " @return a bitstream filter with the specified name or NULL if no such"]
#[doc = " bitstream filter exists."]
pub fn av_bsf_get_by_name(name: *const ::std::os::raw::c_char) -> *const AVBitStreamFilter;
}
extern "C" {
#[doc = " Iterate over all registered bitstream filters."]
#[doc = ""]
#[doc = " @param opaque a pointer where libavcodec will store the iteration state. Must"]
#[doc = " point to NULL to start the iteration."]
#[doc = ""]
#[doc = " @return the next registered bitstream filter or NULL when the iteration is"]
#[doc = " finished"]
pub fn av_bsf_iterate(opaque: *mut *mut ::std::os::raw::c_void) -> *const AVBitStreamFilter;
}
extern "C" {
pub fn av_bsf_next(opaque: *mut *mut ::std::os::raw::c_void) -> *const AVBitStreamFilter;
}
extern "C" {
#[doc = " Allocate a context for a given bitstream filter. The caller must fill in the"]
#[doc = " context parameters as described in the documentation and then call"]
#[doc = " av_bsf_init() before sending any data to the filter."]
#[doc = ""]
#[doc = " @param filter the filter for which to allocate an instance."]
#[doc = " @param ctx a pointer into which the pointer to the newly-allocated context"]
#[doc = " will be written. It must be freed with av_bsf_free() after the"]
#[doc = " filtering is done."]
#[doc = ""]
#[doc = " @return 0 on success, a negative AVERROR code on failure"]
pub fn av_bsf_alloc(
filter: *const AVBitStreamFilter,
ctx: *mut *mut AVBSFContext,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Prepare the filter for use, after all the parameters and options have been"]
#[doc = " set."]
pub fn av_bsf_init(ctx: *mut AVBSFContext) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Submit a packet for filtering."]
#[doc = ""]
#[doc = " After sending each packet, the filter must be completely drained by calling"]
#[doc = " av_bsf_receive_packet() repeatedly until it returns AVERROR(EAGAIN) or"]
#[doc = " AVERROR_EOF."]
#[doc = ""]
#[doc = " @param pkt the packet to filter. The bitstream filter will take ownership of"]
#[doc = " the packet and reset the contents of pkt. pkt is not touched if an error occurs."]
#[doc = " This parameter may be NULL, which signals the end of the stream (i.e. no more"]
#[doc = " packets will be sent). That will cause the filter to output any packets it"]
#[doc = " may have buffered internally."]
#[doc = ""]
#[doc = " @return 0 on success, a negative AVERROR on error."]
pub fn av_bsf_send_packet(ctx: *mut AVBSFContext, pkt: *mut AVPacket) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Retrieve a filtered packet."]
#[doc = ""]
#[doc = " @param[out] pkt this struct will be filled with the contents of the filtered"]
#[doc = " packet. It is owned by the caller and must be freed using"]
#[doc = " av_packet_unref() when it is no longer needed."]
#[doc = " This parameter should be \"clean\" (i.e. freshly allocated"]
#[doc = " with av_packet_alloc() or unreffed with av_packet_unref())"]
#[doc = " when this function is called. If this function returns"]
#[doc = " successfully, the contents of pkt will be completely"]
#[doc = " overwritten by the returned data. On failure, pkt is not"]
#[doc = " touched."]
#[doc = ""]
#[doc = " @return 0 on success. AVERROR(EAGAIN) if more packets need to be sent to the"]
#[doc = " filter (using av_bsf_send_packet()) to get more output. AVERROR_EOF if there"]
#[doc = " will be no further output from the filter. Another negative AVERROR value if"]
#[doc = " an error occurs."]
#[doc = ""]
#[doc = " @note one input packet may result in several output packets, so after sending"]
#[doc = " a packet with av_bsf_send_packet(), this function needs to be called"]
#[doc = " repeatedly until it stops returning 0. It is also possible for a filter to"]
#[doc = " output fewer packets than were sent to it, so this function may return"]
#[doc = " AVERROR(EAGAIN) immediately after a successful av_bsf_send_packet() call."]
pub fn av_bsf_receive_packet(
ctx: *mut AVBSFContext,
pkt: *mut AVPacket,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Reset the internal bitstream filter state / flush internal buffers."]
pub fn av_bsf_flush(ctx: *mut AVBSFContext);
}
extern "C" {
#[doc = " Free a bitstream filter context and everything associated with it; write NULL"]
#[doc = " into the supplied pointer."]
pub fn av_bsf_free(ctx: *mut *mut AVBSFContext);
}
extern "C" {
#[doc = " Get the AVClass for AVBSFContext. It can be used in combination with"]
#[doc = " AV_OPT_SEARCH_FAKE_OBJ for examining options."]
#[doc = ""]
#[doc = " @see av_opt_find()."]
pub fn av_bsf_get_class() -> *const AVClass;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVBSFList {
_unused: [u8; 0],
}
extern "C" {
#[doc = " Allocate empty list of bitstream filters."]
#[doc = " The list must be later freed by av_bsf_list_free()"]
#[doc = " or finalized by av_bsf_list_finalize()."]
#[doc = ""]
#[doc = " @return Pointer to @ref AVBSFList on success, NULL in case of failure"]
pub fn av_bsf_list_alloc() -> *mut AVBSFList;
}
extern "C" {
#[doc = " Free list of bitstream filters."]
#[doc = ""]
#[doc = " @param lst Pointer to pointer returned by av_bsf_list_alloc()"]
pub fn av_bsf_list_free(lst: *mut *mut AVBSFList);
}
extern "C" {
#[doc = " Append bitstream filter to the list of bitstream filters."]
#[doc = ""]
#[doc = " @param lst List to append to"]
#[doc = " @param bsf Filter context to be appended"]
#[doc = ""]
#[doc = " @return >=0 on success, negative AVERROR in case of failure"]
pub fn av_bsf_list_append(lst: *mut AVBSFList, bsf: *mut AVBSFContext)
-> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Construct new bitstream filter context given it\'s name and options"]
#[doc = " and append it to the list of bitstream filters."]
#[doc = ""]
#[doc = " @param lst List to append to"]
#[doc = " @param bsf_name Name of the bitstream filter"]
#[doc = " @param options Options for the bitstream filter, can be set to NULL"]
#[doc = ""]
#[doc = " @return >=0 on success, negative AVERROR in case of failure"]
pub fn av_bsf_list_append2(
lst: *mut AVBSFList,
bsf_name: *const ::std::os::raw::c_char,
options: *mut *mut AVDictionary,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Finalize list of bitstream filters."]
#[doc = ""]
#[doc = " This function will transform @ref AVBSFList to single @ref AVBSFContext,"]
#[doc = " so the whole chain of bitstream filters can be treated as single filter"]
#[doc = " freshly allocated by av_bsf_alloc()."]
#[doc = " If the call is successful, @ref AVBSFList structure is freed and lst"]
#[doc = " will be set to NULL. In case of failure, caller is responsible for"]
#[doc = " freeing the structure by av_bsf_list_free()"]
#[doc = ""]
#[doc = " @param lst Filter list structure to be transformed"]
#[doc = " @param[out] bsf Pointer to be set to newly created @ref AVBSFContext structure"]
#[doc = " representing the chain of bitstream filters"]
#[doc = ""]
#[doc = " @return >=0 on success, negative AVERROR in case of failure"]
pub fn av_bsf_list_finalize(
lst: *mut *mut AVBSFList,
bsf: *mut *mut AVBSFContext,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Parse string describing list of bitstream filters and create single"]
#[doc = " @ref AVBSFContext describing the whole chain of bitstream filters."]
#[doc = " Resulting @ref AVBSFContext can be treated as any other @ref AVBSFContext freshly"]
#[doc = " allocated by av_bsf_alloc()."]
#[doc = ""]
#[doc = " @param str String describing chain of bitstream filters in format"]
#[doc = " `bsf1[=opt1=val1:opt2=val2][,bsf2]`"]
#[doc = " @param[out] bsf Pointer to be set to newly created @ref AVBSFContext structure"]
#[doc = " representing the chain of bitstream filters"]
#[doc = ""]
#[doc = " @return >=0 on success, negative AVERROR in case of failure"]
pub fn av_bsf_list_parse_str(
str: *const ::std::os::raw::c_char,
bsf: *mut *mut AVBSFContext,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Get null/pass-through bitstream filter."]
#[doc = ""]
#[doc = " @param[out] bsf Pointer to be set to new instance of pass-through bitstream filter"]
#[doc = ""]
#[doc = " @return"]
pub fn av_bsf_get_null_filter(bsf: *mut *mut AVBSFContext) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Same behaviour av_fast_malloc but the buffer has additional"]
#[doc = " AV_INPUT_BUFFER_PADDING_SIZE at the end which will always be 0."]
#[doc = ""]
#[doc = " In addition the whole buffer will initially and after resizes"]
#[doc = " be 0-initialized so that no uninitialized data will ever appear."]
pub fn av_fast_padded_malloc(
ptr: *mut ::std::os::raw::c_void,
size: *mut ::std::os::raw::c_uint,
min_size: usize,
);
}
extern "C" {
#[doc = " Same behaviour av_fast_padded_malloc except that buffer will always"]
#[doc = " be 0-initialized after call."]
pub fn av_fast_padded_mallocz(
ptr: *mut ::std::os::raw::c_void,
size: *mut ::std::os::raw::c_uint,
min_size: usize,
);
}
extern "C" {
#[doc = " Encode extradata length to a buffer. Used by xiph codecs."]
#[doc = ""]
#[doc = " @param s buffer to write to; must be at least (v/255+1) bytes long"]
#[doc = " @param v size of extradata in bytes"]
#[doc = " @return number of bytes written to the buffer."]
pub fn av_xiphlacing(
s: *mut ::std::os::raw::c_uchar,
v: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint;
}
extern "C" {
#[doc = " Register the hardware accelerator hwaccel."]
#[doc = ""]
#[doc = " @deprecated This function doesn\'t do anything."]
pub fn av_register_hwaccel(hwaccel: *mut AVHWAccel);
}
extern "C" {
#[doc = " If hwaccel is NULL, returns the first registered hardware accelerator,"]
#[doc = " if hwaccel is non-NULL, returns the next registered hardware accelerator"]
#[doc = " after hwaccel, or NULL if hwaccel is the last one."]
#[doc = ""]
#[doc = " @deprecated AVHWaccel structures contain no user-serviceable parts, so"]
#[doc = " this function should not be used."]
pub fn av_hwaccel_next(hwaccel: *const AVHWAccel) -> *mut AVHWAccel;
}
#[doc = "< Create a mutex"]
pub const AVLockOp_AV_LOCK_CREATE: AVLockOp = 0;
#[doc = "< Lock the mutex"]
pub const AVLockOp_AV_LOCK_OBTAIN: AVLockOp = 1;
#[doc = "< Unlock the mutex"]
pub const AVLockOp_AV_LOCK_RELEASE: AVLockOp = 2;
#[doc = "< Free mutex resources"]
pub const AVLockOp_AV_LOCK_DESTROY: AVLockOp = 3;
#[doc = " Lock operation used by lockmgr"]
#[doc = ""]
#[doc = " @deprecated Deprecated together with av_lockmgr_register()."]
pub type AVLockOp = u32;
extern "C" {
#[doc = " Register a user provided lock manager supporting the operations"]
#[doc = " specified by AVLockOp. The \"mutex\" argument to the function points"]
#[doc = " to a (void *) where the lockmgr should store/get a pointer to a user"]
#[doc = " allocated mutex. It is NULL upon AV_LOCK_CREATE and equal to the"]
#[doc = " value left by the last call for all other ops. If the lock manager is"]
#[doc = " unable to perform the op then it should leave the mutex in the same"]
#[doc = " state as when it was called and return a non-zero value. However,"]
#[doc = " when called with AV_LOCK_DESTROY the mutex will always be assumed to"]
#[doc = " have been successfully destroyed. If av_lockmgr_register succeeds"]
#[doc = " it will return a non-negative value, if it fails it will return a"]
#[doc = " negative value and destroy all mutex and unregister all callbacks."]
#[doc = " av_lockmgr_register is not thread-safe, it must be called from a"]
#[doc = " single thread before any calls which make use of locking are used."]
#[doc = ""]
#[doc = " @param cb User defined callback. av_lockmgr_register invokes calls"]
#[doc = " to this callback and the previously registered callback."]
#[doc = " The callback will be used to create more than one mutex"]
#[doc = " each of which must be backed by its own underlying locking"]
#[doc = " mechanism (i.e. do not use a single static object to"]
#[doc = " implement your lock manager). If cb is set to NULL the"]
#[doc = " lockmgr will be unregistered."]
#[doc = ""]
#[doc = " @deprecated This function does nothing, and always returns 0. Be sure to"]
#[doc = " build with thread support to get basic thread safety."]
pub fn av_lockmgr_register(
cb: ::std::option::Option<
unsafe extern "C" fn(
cb: *mut *mut ::std::os::raw::c_void,
arg1: AVLockOp,
) -> ::std::os::raw::c_int,
>,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " Get the type of the given codec."]
pub fn avcodec_get_type(codec_id: AVCodecID) -> AVMediaType;
}
extern "C" {
#[doc = " Get the name of a codec."]
#[doc = " @return a static string identifying the codec; never NULL"]
pub fn avcodec_get_name(id: AVCodecID) -> *const ::std::os::raw::c_char;
}
extern "C" {
#[doc = " @return a positive value if s is open (i.e. avcodec_open2() was called on it"]
#[doc = " with no corresponding avcodec_close()), 0 otherwise."]
pub fn avcodec_is_open(s: *mut AVCodecContext) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " @return a non-zero number if codec is an encoder, zero otherwise"]
pub fn av_codec_is_encoder(codec: *const AVCodec) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " @return a non-zero number if codec is a decoder, zero otherwise"]
pub fn av_codec_is_decoder(codec: *const AVCodec) -> ::std::os::raw::c_int;
}
extern "C" {
#[doc = " @return descriptor for given codec ID or NULL if no descriptor exists."]
pub fn avcodec_descriptor_get(id: AVCodecID) -> *const AVCodecDescriptor;
}
extern "C" {
#[doc = " Iterate over all codec descriptors known to libavcodec."]
#[doc = ""]
#[doc = " @param prev previous descriptor. NULL to get the first descriptor."]
#[doc = ""]
#[doc = " @return next descriptor or NULL after the last descriptor"]
pub fn avcodec_descriptor_next(prev: *const AVCodecDescriptor) -> *const AVCodecDescriptor;
}
extern "C" {
#[doc = " @return codec descriptor with the given name or NULL if no such descriptor"]
#[doc = " exists."]
pub fn avcodec_descriptor_get_by_name(
name: *const ::std::os::raw::c_char,
) -> *const AVCodecDescriptor;
}
extern "C" {
#[doc = " Allocate a CPB properties structure and initialize its fields to default"]
#[doc = " values."]
#[doc = ""]
#[doc = " @param size if non-NULL, the size of the allocated struct will be written"]
#[doc = " here. This is useful for embedding it in side data."]
#[doc = ""]
#[doc = " @return the newly allocated struct or NULL on failure"]
pub fn av_cpb_properties_alloc(size: *mut usize) -> *mut AVCPBProperties;
}
pub type __builtin_va_list = [__va_list_tag; 1usize];
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __va_list_tag {
pub gp_offset: ::std::os::raw::c_uint,
pub fp_offset: ::std::os::raw::c_uint,
pub overflow_arg_area: *mut ::std::os::raw::c_void,
pub reg_save_area: *mut ::std::os::raw::c_void,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __locale_data {
pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVOption {
pub _address: u8,
}
#[doc = " Array of pointers to hardware configurations supported by the codec,"]
#[doc = " or NULL if no hardware supported. The array is terminated by a NULL"]
#[doc = " pointer."]
#[doc = ""]
#[doc = " The user can only access this field via avcodec_get_hw_config()."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AVCodecHWConfigInternal {
pub _address: u8,
}