1
2
3
/* automatically generated by rust-bindgen */

# [ repr ( C ) ] # [ derive ( Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd ) ] pub struct __BindgenBitfieldUnit < Storage , Align > { storage : Storage , align : [ Align ; 0 ] , } impl < Storage , Align > __BindgenBitfieldUnit < Storage , Align > { # [ inline ] pub const fn new ( storage : Storage ) -> Self { Self { storage , align : [ ] } } } impl < Storage , Align > __BindgenBitfieldUnit < Storage , Align > where Storage : AsRef < [ u8 ] > + AsMut < [ u8 ] >, { # [ inline ] pub fn get_bit ( & self , index : usize ) -> bool { debug_assert ! ( index / 8 < self . storage . as_ref ( ) . len ( ) ) ; let byte_index = index / 8 ; let byte = self . storage . as_ref ( ) [ byte_index ] ; let bit_index = if cfg ! ( target_endian = "big" ) { 7 - ( index % 8 ) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [ inline ] pub fn set_bit ( & mut self , index : usize , val : bool ) { debug_assert ! ( index / 8 < self . storage . as_ref ( ) . len ( ) ) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut ( ) [ byte_index ] ; let bit_index = if cfg ! ( target_endian = "big" ) { 7 - ( index % 8 ) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [ inline ] pub fn get ( & self , bit_offset : usize , bit_width : u8 ) -> u64 { debug_assert ! ( bit_width <= 64 ) ; debug_assert ! ( bit_offset / 8 < self . storage . as_ref ( ) . len ( ) ) ; debug_assert ! ( ( bit_offset + ( bit_width as usize ) ) / 8 <= self . storage . as_ref ( ) . len ( ) ) ; let mut val = 0 ; for i in 0 .. ( bit_width as usize ) { if self . get_bit ( i + bit_offset ) { let index = if cfg ! ( target_endian = "big" ) { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [ inline ] pub fn set ( & mut self , bit_offset : usize , bit_width : u8 , val : u64 ) { debug_assert ! ( bit_width <= 64 ) ; debug_assert ! ( bit_offset / 8 < self . storage . as_ref ( ) . len ( ) ) ; debug_assert ! ( ( bit_offset + ( bit_width as usize ) ) / 8 <= self . storage . as_ref ( ) . len ( ) ) ; for i in 0 .. ( bit_width as usize ) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! ( target_endian = "big" ) { bit_width as usize - 1 - i } else { i } ; self . set_bit ( index + bit_offset , val_bit_is_set ) ; } } } pub const _ERRNO_H : libc :: c_int = 1 ; pub const _FEATURES_H : libc :: c_int = 1 ; pub const _DEFAULT_SOURCE : libc :: c_int = 1 ; pub const __GLIBC_USE_ISOC2X : libc :: c_int = 0 ; pub const __USE_ISOC11 : libc :: c_int = 1 ; pub const __USE_ISOC99 : libc :: c_int = 1 ; pub const __USE_ISOC95 : libc :: c_int = 1 ; pub const __USE_POSIX_IMPLICITLY : libc :: c_int = 1 ; pub const _POSIX_SOURCE : libc :: c_int = 1 ; pub const _POSIX_C_SOURCE : libc :: c_int = 200809 ; pub const __USE_POSIX : libc :: c_int = 1 ; pub const __USE_POSIX2 : libc :: c_int = 1 ; pub const __USE_POSIX199309 : libc :: c_int = 1 ; pub const __USE_POSIX199506 : libc :: c_int = 1 ; pub const __USE_XOPEN2K : libc :: c_int = 1 ; pub const __USE_XOPEN2K8 : libc :: c_int = 1 ; pub const _ATFILE_SOURCE : libc :: c_int = 1 ; pub const __USE_MISC : libc :: c_int = 1 ; pub const __USE_ATFILE : libc :: c_int = 1 ; pub const __USE_FORTIFY_LEVEL : libc :: c_int = 0 ; pub const __GLIBC_USE_DEPRECATED_GETS : libc :: c_int = 0 ; pub const __GLIBC_USE_DEPRECATED_SCANF : libc :: c_int = 0 ; pub const _STDC_PREDEF_H : libc :: c_int = 1 ; pub const __STDC_IEC_559__ : libc :: c_int = 1 ; pub const __STDC_IEC_559_COMPLEX__ : libc :: c_int = 1 ; pub const __STDC_ISO_10646__ : libc :: c_int = 201706 ; pub const __GNU_LIBRARY__ : libc :: c_int = 6 ; pub const __GLIBC__ : libc :: c_int = 2 ; pub const __GLIBC_MINOR__ : libc :: c_int = 31 ; pub const _SYS_CDEFS_H : libc :: c_int = 1 ; pub const __glibc_c99_flexarr_available : libc :: c_int = 1 ; pub const __WORDSIZE : libc :: c_int = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : libc :: c_int = 1 ; pub const __SYSCALL_WORDSIZE : libc :: c_int = 64 ; pub const __LONG_DOUBLE_USES_FLOAT128 : libc :: c_int = 0 ; pub const __HAVE_GENERIC_SELECTION : libc :: c_int = 1 ; pub const _BITS_ERRNO_H : libc :: c_int = 1 ; pub const EPERM : libc :: c_int = 1 ; pub const ENOENT : libc :: c_int = 2 ; pub const ESRCH : libc :: c_int = 3 ; pub const EINTR : libc :: c_int = 4 ; pub const EIO : libc :: c_int = 5 ; pub const ENXIO : libc :: c_int = 6 ; pub const E2BIG : libc :: c_int = 7 ; pub const ENOEXEC : libc :: c_int = 8 ; pub const EBADF : libc :: c_int = 9 ; pub const ECHILD : libc :: c_int = 10 ; pub const EAGAIN : libc :: c_int = 11 ; pub const ENOMEM : libc :: c_int = 12 ; pub const EACCES : libc :: c_int = 13 ; pub const EFAULT : libc :: c_int = 14 ; pub const ENOTBLK : libc :: c_int = 15 ; pub const EBUSY : libc :: c_int = 16 ; pub const EEXIST : libc :: c_int = 17 ; pub const EXDEV : libc :: c_int = 18 ; pub const ENODEV : libc :: c_int = 19 ; pub const ENOTDIR : libc :: c_int = 20 ; pub const EISDIR : libc :: c_int = 21 ; pub const EINVAL : libc :: c_int = 22 ; pub const ENFILE : libc :: c_int = 23 ; pub const EMFILE : libc :: c_int = 24 ; pub const ENOTTY : libc :: c_int = 25 ; pub const ETXTBSY : libc :: c_int = 26 ; pub const EFBIG : libc :: c_int = 27 ; pub const ENOSPC : libc :: c_int = 28 ; pub const ESPIPE : libc :: c_int = 29 ; pub const EROFS : libc :: c_int = 30 ; pub const EMLINK : libc :: c_int = 31 ; pub const EPIPE : libc :: c_int = 32 ; pub const EDOM : libc :: c_int = 33 ; pub const ERANGE : libc :: c_int = 34 ; pub const EDEADLK : libc :: c_int = 35 ; pub const ENAMETOOLONG : libc :: c_int = 36 ; pub const ENOLCK : libc :: c_int = 37 ; pub const ENOSYS : libc :: c_int = 38 ; pub const ENOTEMPTY : libc :: c_int = 39 ; pub const ELOOP : libc :: c_int = 40 ; pub const EWOULDBLOCK : libc :: c_int = 11 ; pub const ENOMSG : libc :: c_int = 42 ; pub const EIDRM : libc :: c_int = 43 ; pub const ECHRNG : libc :: c_int = 44 ; pub const EL2NSYNC : libc :: c_int = 45 ; pub const EL3HLT : libc :: c_int = 46 ; pub const EL3RST : libc :: c_int = 47 ; pub const ELNRNG : libc :: c_int = 48 ; pub const EUNATCH : libc :: c_int = 49 ; pub const ENOCSI : libc :: c_int = 50 ; pub const EL2HLT : libc :: c_int = 51 ; pub const EBADE : libc :: c_int = 52 ; pub const EBADR : libc :: c_int = 53 ; pub const EXFULL : libc :: c_int = 54 ; pub const ENOANO : libc :: c_int = 55 ; pub const EBADRQC : libc :: c_int = 56 ; pub const EBADSLT : libc :: c_int = 57 ; pub const EDEADLOCK : libc :: c_int = 35 ; pub const EBFONT : libc :: c_int = 59 ; pub const ENOSTR : libc :: c_int = 60 ; pub const ENODATA : libc :: c_int = 61 ; pub const ETIME : libc :: c_int = 62 ; pub const ENOSR : libc :: c_int = 63 ; pub const ENONET : libc :: c_int = 64 ; pub const ENOPKG : libc :: c_int = 65 ; pub const EREMOTE : libc :: c_int = 66 ; pub const ENOLINK : libc :: c_int = 67 ; pub const EADV : libc :: c_int = 68 ; pub const ESRMNT : libc :: c_int = 69 ; pub const ECOMM : libc :: c_int = 70 ; pub const EPROTO : libc :: c_int = 71 ; pub const EMULTIHOP : libc :: c_int = 72 ; pub const EDOTDOT : libc :: c_int = 73 ; pub const EBADMSG : libc :: c_int = 74 ; pub const EOVERFLOW : libc :: c_int = 75 ; pub const ENOTUNIQ : libc :: c_int = 76 ; pub const EBADFD : libc :: c_int = 77 ; pub const EREMCHG : libc :: c_int = 78 ; pub const ELIBACC : libc :: c_int = 79 ; pub const ELIBBAD : libc :: c_int = 80 ; pub const ELIBSCN : libc :: c_int = 81 ; pub const ELIBMAX : libc :: c_int = 82 ; pub const ELIBEXEC : libc :: c_int = 83 ; pub const EILSEQ : libc :: c_int = 84 ; pub const ERESTART : libc :: c_int = 85 ; pub const ESTRPIPE : libc :: c_int = 86 ; pub const EUSERS : libc :: c_int = 87 ; pub const ENOTSOCK : libc :: c_int = 88 ; pub const EDESTADDRREQ : libc :: c_int = 89 ; pub const EMSGSIZE : libc :: c_int = 90 ; pub const EPROTOTYPE : libc :: c_int = 91 ; pub const ENOPROTOOPT : libc :: c_int = 92 ; pub const EPROTONOSUPPORT : libc :: c_int = 93 ; pub const ESOCKTNOSUPPORT : libc :: c_int = 94 ; pub const EOPNOTSUPP : libc :: c_int = 95 ; pub const EPFNOSUPPORT : libc :: c_int = 96 ; pub const EAFNOSUPPORT : libc :: c_int = 97 ; pub const EADDRINUSE : libc :: c_int = 98 ; pub const EADDRNOTAVAIL : libc :: c_int = 99 ; pub const ENETDOWN : libc :: c_int = 100 ; pub const ENETUNREACH : libc :: c_int = 101 ; pub const ENETRESET : libc :: c_int = 102 ; pub const ECONNABORTED : libc :: c_int = 103 ; pub const ECONNRESET : libc :: c_int = 104 ; pub const ENOBUFS : libc :: c_int = 105 ; pub const EISCONN : libc :: c_int = 106 ; pub const ENOTCONN : libc :: c_int = 107 ; pub const ESHUTDOWN : libc :: c_int = 108 ; pub const ETOOMANYREFS : libc :: c_int = 109 ; pub const ETIMEDOUT : libc :: c_int = 110 ; pub const ECONNREFUSED : libc :: c_int = 111 ; pub const EHOSTDOWN : libc :: c_int = 112 ; pub const EHOSTUNREACH : libc :: c_int = 113 ; pub const EALREADY : libc :: c_int = 114 ; pub const EINPROGRESS : libc :: c_int = 115 ; pub const ESTALE : libc :: c_int = 116 ; pub const EUCLEAN : libc :: c_int = 117 ; pub const ENOTNAM : libc :: c_int = 118 ; pub const ENAVAIL : libc :: c_int = 119 ; pub const EISNAM : libc :: c_int = 120 ; pub const EREMOTEIO : libc :: c_int = 121 ; pub const EDQUOT : libc :: c_int = 122 ; pub const ENOMEDIUM : libc :: c_int = 123 ; pub const EMEDIUMTYPE : libc :: c_int = 124 ; pub const ECANCELED : libc :: c_int = 125 ; pub const ENOKEY : libc :: c_int = 126 ; pub const EKEYEXPIRED : libc :: c_int = 127 ; pub const EKEYREVOKED : libc :: c_int = 128 ; pub const EKEYREJECTED : libc :: c_int = 129 ; pub const EOWNERDEAD : libc :: c_int = 130 ; pub const ENOTRECOVERABLE : libc :: c_int = 131 ; pub const ERFKILL : libc :: c_int = 132 ; pub const EHWPOISON : libc :: c_int = 133 ; pub const ENOTSUP : libc :: c_int = 95 ; pub const _STDINT_H : libc :: c_int = 1 ; pub const __GLIBC_USE_LIB_EXT2 : libc :: c_int = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : libc :: c_int = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X : libc :: c_int = 0 ; pub const __GLIBC_USE_IEC_60559_FUNCS_EXT : libc :: c_int = 0 ; pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X : libc :: c_int = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : libc :: c_int = 0 ; pub const _BITS_TYPES_H : libc :: c_int = 1 ; pub const __TIMESIZE : libc :: c_int = 64 ; pub const _BITS_TYPESIZES_H : libc :: c_int = 1 ; pub const __OFF_T_MATCHES_OFF64_T : libc :: c_int = 1 ; pub const __INO_T_MATCHES_INO64_T : libc :: c_int = 1 ; pub const __RLIM_T_MATCHES_RLIM64_T : libc :: c_int = 1 ; pub const __STATFS_MATCHES_STATFS64 : libc :: c_int = 1 ; pub const __FD_SETSIZE : libc :: c_int = 1024 ; pub const _BITS_TIME64_H : libc :: c_int = 1 ; pub const _BITS_WCHAR_H : libc :: c_int = 1 ; pub const _BITS_STDINT_INTN_H : libc :: c_int = 1 ; pub const _BITS_STDINT_UINTN_H : libc :: c_int = 1 ; pub const INT8_MIN : libc :: c_int = - 128 ; pub const INT16_MIN : libc :: c_int = - 32768 ; pub const INT32_MIN : libc :: c_int = - 2147483648 ; pub const INT8_MAX : libc :: c_int = 127 ; pub const INT16_MAX : libc :: c_int = 32767 ; pub const INT32_MAX : libc :: c_int = 2147483647 ; pub const UINT8_MAX : libc :: c_int = 255 ; pub const UINT16_MAX : libc :: c_int = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : libc :: c_int = - 128 ; pub const INT_LEAST16_MIN : libc :: c_int = - 32768 ; pub const INT_LEAST32_MIN : libc :: c_int = - 2147483648 ; pub const INT_LEAST8_MAX : libc :: c_int = 127 ; pub const INT_LEAST16_MAX : libc :: c_int = 32767 ; pub const INT_LEAST32_MAX : libc :: c_int = 2147483647 ; pub const UINT_LEAST8_MAX : libc :: c_int = 255 ; pub const UINT_LEAST16_MAX : libc :: c_int = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : libc :: c_int = - 128 ; pub const INT_FAST16_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST32_MIN : i64 = - 9223372036854775808 ; pub const INT_FAST8_MAX : libc :: c_int = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : libc :: c_int = 255 ; pub const UINT_FAST16_MAX : libc :: c_int = - 1 ; pub const UINT_FAST32_MAX : libc :: c_int = - 1 ; pub const INTPTR_MIN : i64 = - 9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : libc :: c_int = - 1 ; pub const PTRDIFF_MIN : i64 = - 9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : libc :: c_int = - 2147483648 ; pub const SIG_ATOMIC_MAX : libc :: c_int = 2147483647 ; pub const SIZE_MAX : libc :: c_int = - 1 ; pub const WINT_MIN : libc :: c_int = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub const FF_LAMBDA_SHIFT : libc :: c_int = 7 ; pub const FF_LAMBDA_SCALE : libc :: c_int = 128 ; pub const FF_QP2LAMBDA : libc :: c_int = 118 ; pub const FF_LAMBDA_MAX : libc :: c_int = 32767 ; pub const FF_QUALITY_SCALE : libc :: c_int = 128 ; pub const AV_TIME_BASE : libc :: c_int = 1000000 ; pub const _INTTYPES_H : libc :: c_int = 1 ; pub const ____gwchar_t_defined : libc :: c_int = 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_ : libc :: c_int = 1 ; pub const MB_LEN_MAX : libc :: c_int = 16 ; pub const _BITS_POSIX1_LIM_H : libc :: c_int = 1 ; pub const _POSIX_AIO_LISTIO_MAX : libc :: c_int = 2 ; pub const _POSIX_AIO_MAX : libc :: c_int = 1 ; pub const _POSIX_ARG_MAX : libc :: c_int = 4096 ; pub const _POSIX_CHILD_MAX : libc :: c_int = 25 ; pub const _POSIX_DELAYTIMER_MAX : libc :: c_int = 32 ; pub const _POSIX_HOST_NAME_MAX : libc :: c_int = 255 ; pub const _POSIX_LINK_MAX : libc :: c_int = 8 ; pub const _POSIX_LOGIN_NAME_MAX : libc :: c_int = 9 ; pub const _POSIX_MAX_CANON : libc :: c_int = 255 ; pub const _POSIX_MAX_INPUT : libc :: c_int = 255 ; pub const _POSIX_MQ_OPEN_MAX : libc :: c_int = 8 ; pub const _POSIX_MQ_PRIO_MAX : libc :: c_int = 32 ; pub const _POSIX_NAME_MAX : libc :: c_int = 14 ; pub const _POSIX_NGROUPS_MAX : libc :: c_int = 8 ; pub const _POSIX_OPEN_MAX : libc :: c_int = 20 ; pub const _POSIX_PATH_MAX : libc :: c_int = 256 ; pub const _POSIX_PIPE_BUF : libc :: c_int = 512 ; pub const _POSIX_RE_DUP_MAX : libc :: c_int = 255 ; pub const _POSIX_RTSIG_MAX : libc :: c_int = 8 ; pub const _POSIX_SEM_NSEMS_MAX : libc :: c_int = 256 ; pub const _POSIX_SEM_VALUE_MAX : libc :: c_int = 32767 ; pub const _POSIX_SIGQUEUE_MAX : libc :: c_int = 32 ; pub const _POSIX_SSIZE_MAX : libc :: c_int = 32767 ; pub const _POSIX_STREAM_MAX : libc :: c_int = 8 ; pub const _POSIX_SYMLINK_MAX : libc :: c_int = 255 ; pub const _POSIX_SYMLOOP_MAX : libc :: c_int = 8 ; pub const _POSIX_TIMER_MAX : libc :: c_int = 32 ; pub const _POSIX_TTY_NAME_MAX : libc :: c_int = 9 ; pub const _POSIX_TZNAME_MAX : libc :: c_int = 6 ; pub const _POSIX_CLOCKRES_MIN : libc :: c_int = 20000000 ; pub const NR_OPEN : libc :: c_int = 1024 ; pub const NGROUPS_MAX : libc :: c_int = 65536 ; pub const ARG_MAX : libc :: c_int = 131072 ; pub const LINK_MAX : libc :: c_int = 127 ; pub const MAX_CANON : libc :: c_int = 255 ; pub const MAX_INPUT : libc :: c_int = 255 ; pub const NAME_MAX : libc :: c_int = 255 ; pub const PATH_MAX : libc :: c_int = 4096 ; pub const PIPE_BUF : libc :: c_int = 4096 ; pub const XATTR_NAME_MAX : libc :: c_int = 255 ; pub const XATTR_SIZE_MAX : libc :: c_int = 65536 ; pub const XATTR_LIST_MAX : libc :: c_int = 65536 ; pub const RTSIG_MAX : libc :: c_int = 32 ; pub const _POSIX_THREAD_KEYS_MAX : libc :: c_int = 128 ; pub const PTHREAD_KEYS_MAX : libc :: c_int = 1024 ; pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS : libc :: c_int = 4 ; pub const PTHREAD_DESTRUCTOR_ITERATIONS : libc :: c_int = 4 ; pub const _POSIX_THREAD_THREADS_MAX : libc :: c_int = 64 ; pub const AIO_PRIO_DELTA_MAX : libc :: c_int = 20 ; pub const PTHREAD_STACK_MIN : libc :: c_int = 16384 ; pub const DELAYTIMER_MAX : libc :: c_int = 2147483647 ; pub const TTY_NAME_MAX : libc :: c_int = 32 ; pub const LOGIN_NAME_MAX : libc :: c_int = 256 ; pub const HOST_NAME_MAX : libc :: c_int = 64 ; pub const MQ_PRIO_MAX : libc :: c_int = 32768 ; pub const SEM_VALUE_MAX : libc :: c_int = 2147483647 ; pub const _BITS_POSIX2_LIM_H : libc :: c_int = 1 ; pub const _POSIX2_BC_BASE_MAX : libc :: c_int = 99 ; pub const _POSIX2_BC_DIM_MAX : libc :: c_int = 2048 ; pub const _POSIX2_BC_SCALE_MAX : libc :: c_int = 99 ; pub const _POSIX2_BC_STRING_MAX : libc :: c_int = 1000 ; pub const _POSIX2_COLL_WEIGHTS_MAX : libc :: c_int = 2 ; pub const _POSIX2_EXPR_NEST_MAX : libc :: c_int = 32 ; pub const _POSIX2_LINE_MAX : libc :: c_int = 2048 ; pub const _POSIX2_RE_DUP_MAX : libc :: c_int = 255 ; pub const _POSIX2_CHARCLASS_NAME_MAX : libc :: c_int = 14 ; pub const BC_BASE_MAX : libc :: c_int = 99 ; pub const BC_DIM_MAX : libc :: c_int = 2048 ; pub const BC_SCALE_MAX : libc :: c_int = 99 ; pub const BC_STRING_MAX : libc :: c_int = 1000 ; pub const COLL_WEIGHTS_MAX : libc :: c_int = 255 ; pub const EXPR_NEST_MAX : libc :: c_int = 32 ; pub const LINE_MAX : libc :: c_int = 2048 ; pub const CHARCLASS_NAME_MAX : libc :: c_int = 2048 ; pub const RE_DUP_MAX : libc :: c_int = 32767 ; pub const _MATH_H : libc :: c_int = 1 ; pub const _BITS_LIBM_SIMD_DECL_STUBS_H : libc :: c_int = 1 ; pub const __HAVE_FLOAT128 : libc :: c_int = 0 ; pub const __HAVE_DISTINCT_FLOAT128 : libc :: c_int = 0 ; pub const __HAVE_FLOAT64X : libc :: c_int = 1 ; pub const __HAVE_FLOAT64X_LONG_DOUBLE : libc :: c_int = 1 ; pub const __HAVE_FLOAT16 : libc :: c_int = 0 ; pub const __HAVE_FLOAT32 : libc :: c_int = 1 ; pub const __HAVE_FLOAT64 : libc :: c_int = 1 ; pub const __HAVE_FLOAT32X : libc :: c_int = 1 ; pub const __HAVE_FLOAT128X : libc :: c_int = 0 ; pub const __HAVE_DISTINCT_FLOAT16 : libc :: c_int = 0 ; pub const __HAVE_DISTINCT_FLOAT32 : libc :: c_int = 0 ; pub const __HAVE_DISTINCT_FLOAT64 : libc :: c_int = 0 ; pub const __HAVE_DISTINCT_FLOAT32X : libc :: c_int = 0 ; pub const __HAVE_DISTINCT_FLOAT64X : libc :: c_int = 0 ; pub const __HAVE_DISTINCT_FLOAT128X : libc :: c_int = 0 ; pub const __HAVE_FLOATN_NOT_TYPEDEF : libc :: c_int = 0 ; pub const __FP_LOGB0_IS_MIN : libc :: c_int = 1 ; pub const __FP_LOGBNAN_IS_MIN : libc :: c_int = 1 ; pub const FP_ILOGB0 : libc :: c_int = - 2147483648 ; pub const FP_ILOGBNAN : libc :: c_int = - 2147483648 ; pub const __MATH_DECLARING_DOUBLE : libc :: c_int = 1 ; pub const __MATH_DECLARING_FLOATN : libc :: c_int = 0 ; pub const __MATH_DECLARE_LDOUBLE : libc :: c_int = 1 ; pub const MATH_ERRNO : libc :: c_int = 1 ; pub const MATH_ERREXCEPT : libc :: c_int = 2 ; pub const math_errhandling : libc :: c_int = 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 : libc :: c_int = 1 ; pub const __GNUC_VA_LIST : libc :: c_int = 1 ; pub const _____fpos_t_defined : libc :: c_int = 1 ; pub const ____mbstate_t_defined : libc :: c_int = 1 ; pub const _____fpos64_t_defined : libc :: c_int = 1 ; pub const ____FILE_defined : libc :: c_int = 1 ; pub const __FILE_defined : libc :: c_int = 1 ; pub const __struct_FILE_defined : libc :: c_int = 1 ; pub const _IO_EOF_SEEN : libc :: c_int = 16 ; pub const _IO_ERR_SEEN : libc :: c_int = 32 ; pub const _IO_USER_LOCK : libc :: c_int = 32768 ; pub const _IOFBF : libc :: c_int = 0 ; pub const _IOLBF : libc :: c_int = 1 ; pub const _IONBF : libc :: c_int = 2 ; pub const BUFSIZ : libc :: c_int = 8192 ; pub const EOF : libc :: c_int = - 1 ; pub const SEEK_SET : libc :: c_int = 0 ; pub const SEEK_CUR : libc :: c_int = 1 ; pub const SEEK_END : libc :: c_int = 2 ; pub const P_tmpdir : & 'static [ u8 ; 5usize ] = b"/tmp\0" ; pub const _BITS_STDIO_LIM_H : libc :: c_int = 1 ; pub const L_tmpnam : libc :: c_int = 20 ; pub const TMP_MAX : libc :: c_int = 238328 ; pub const FILENAME_MAX : libc :: c_int = 4096 ; pub const L_ctermid : libc :: c_int = 9 ; pub const FOPEN_MAX : libc :: c_int = 16 ; pub const _STDLIB_H : libc :: c_int = 1 ; pub const WNOHANG : libc :: c_int = 1 ; pub const WUNTRACED : libc :: c_int = 2 ; pub const WSTOPPED : libc :: c_int = 2 ; pub const WEXITED : libc :: c_int = 4 ; pub const WCONTINUED : libc :: c_int = 8 ; pub const WNOWAIT : libc :: c_int = 16777216 ; pub const __WNOTHREAD : libc :: c_int = 536870912 ; pub const __WALL : libc :: c_int = 1073741824 ; pub const __WCLONE : u32 = 2147483648 ; pub const __ENUM_IDTYPE_T : libc :: c_int = 1 ; pub const __W_CONTINUED : libc :: c_int = 65535 ; pub const __WCOREFLAG : libc :: c_int = 128 ; pub const __ldiv_t_defined : libc :: c_int = 1 ; pub const __lldiv_t_defined : libc :: c_int = 1 ; pub const RAND_MAX : libc :: c_int = 2147483647 ; pub const EXIT_FAILURE : libc :: c_int = 1 ; pub const EXIT_SUCCESS : libc :: c_int = 0 ; pub const _SYS_TYPES_H : libc :: c_int = 1 ; pub const __clock_t_defined : libc :: c_int = 1 ; pub const __clockid_t_defined : libc :: c_int = 1 ; pub const __time_t_defined : libc :: c_int = 1 ; pub const __timer_t_defined : libc :: c_int = 1 ; pub const __BIT_TYPES_DEFINED__ : libc :: c_int = 1 ; pub const _ENDIAN_H : libc :: c_int = 1 ; pub const _BITS_ENDIAN_H : libc :: c_int = 1 ; pub const __LITTLE_ENDIAN : libc :: c_int = 1234 ; pub const __BIG_ENDIAN : libc :: c_int = 4321 ; pub const __PDP_ENDIAN : libc :: c_int = 3412 ; pub const _BITS_ENDIANNESS_H : libc :: c_int = 1 ; pub const __BYTE_ORDER : libc :: c_int = 1234 ; pub const __FLOAT_WORD_ORDER : libc :: c_int = 1234 ; pub const LITTLE_ENDIAN : libc :: c_int = 1234 ; pub const BIG_ENDIAN : libc :: c_int = 4321 ; pub const PDP_ENDIAN : libc :: c_int = 3412 ; pub const BYTE_ORDER : libc :: c_int = 1234 ; pub const _BITS_BYTESWAP_H : libc :: c_int = 1 ; pub const _BITS_UINTN_IDENTITY_H : libc :: c_int = 1 ; pub const _SYS_SELECT_H : libc :: c_int = 1 ; pub const __FD_ZERO_STOS : & 'static [ u8 ; 6usize ] = b"stosq\0" ; pub const __sigset_t_defined : libc :: c_int = 1 ; pub const __timeval_defined : libc :: c_int = 1 ; pub const _STRUCT_TIMESPEC : libc :: c_int = 1 ; pub const FD_SETSIZE : libc :: c_int = 1024 ; pub const _BITS_PTHREADTYPES_COMMON_H : libc :: c_int = 1 ; pub const _THREAD_SHARED_TYPES_H : libc :: c_int = 1 ; pub const _BITS_PTHREADTYPES_ARCH_H : libc :: c_int = 1 ; pub const __SIZEOF_PTHREAD_MUTEX_T : libc :: c_int = 40 ; pub const __SIZEOF_PTHREAD_ATTR_T : libc :: c_int = 56 ; pub const __SIZEOF_PTHREAD_RWLOCK_T : libc :: c_int = 56 ; pub const __SIZEOF_PTHREAD_BARRIER_T : libc :: c_int = 32 ; pub const __SIZEOF_PTHREAD_MUTEXATTR_T : libc :: c_int = 4 ; pub const __SIZEOF_PTHREAD_COND_T : libc :: c_int = 48 ; pub const __SIZEOF_PTHREAD_CONDATTR_T : libc :: c_int = 4 ; pub const __SIZEOF_PTHREAD_RWLOCKATTR_T : libc :: c_int = 8 ; pub const __SIZEOF_PTHREAD_BARRIERATTR_T : libc :: c_int = 4 ; pub const _THREAD_MUTEX_INTERNAL_H : libc :: c_int = 1 ; pub const __PTHREAD_MUTEX_HAVE_PREV : libc :: c_int = 1 ; pub const __have_pthread_attr_t : libc :: c_int = 1 ; pub const _ALLOCA_H : libc :: c_int = 1 ; pub const _STRING_H : libc :: c_int = 1 ; pub const _BITS_TYPES_LOCALE_T_H : libc :: c_int = 1 ; pub const _BITS_TYPES___LOCALE_T_H : libc :: c_int = 1 ; pub const _STRINGS_H : libc :: c_int = 1 ; pub const LIBAVUTIL_VERSION_MAJOR : libc :: c_int = 56 ; pub const LIBAVUTIL_VERSION_MINOR : libc :: c_int = 31 ; pub const LIBAVUTIL_VERSION_MICRO : libc :: c_int = 100 ; pub const AV_HAVE_BIGENDIAN : libc :: c_int = 0 ; pub const AV_HAVE_FAST_UNALIGNED : libc :: c_int = 1 ; pub const AVERROR_EXPERIMENTAL : libc :: c_int = - 733130664 ; pub const AVERROR_INPUT_CHANGED : libc :: c_int = - 1668179713 ; pub const AVERROR_OUTPUT_CHANGED : libc :: c_int = - 1668179714 ; pub const AV_ERROR_MAX_STRING_SIZE : usize = 64 ; pub const M_LOG2_10 : f64 = 3.321928094887362 ; pub const M_PHI : f64 = 1.618033988749895 ; pub const AV_LOG_QUIET : libc :: c_int = - 8 ; pub const AV_LOG_PANIC : libc :: c_int = 0 ; pub const AV_LOG_FATAL : libc :: c_int = 8 ; pub const AV_LOG_ERROR : libc :: c_int = 16 ; pub const AV_LOG_WARNING : libc :: c_int = 24 ; pub const AV_LOG_INFO : libc :: c_int = 32 ; pub const AV_LOG_VERBOSE : libc :: c_int = 40 ; pub const AV_LOG_DEBUG : libc :: c_int = 48 ; pub const AV_LOG_TRACE : libc :: c_int = 56 ; pub const AV_LOG_MAX_OFFSET : libc :: c_int = 64 ; pub const AV_LOG_SKIP_REPEATED : libc :: c_int = 1 ; pub const AV_LOG_PRINT_LEVEL : libc :: c_int = 2 ; pub const AVPALETTE_SIZE : libc :: c_int = 1024 ; pub const AVPALETTE_COUNT : libc :: c_int = 256 ; pub const AV_FOURCC_MAX_STRING_SIZE : libc :: c_int = 32 ; pub const AV_BUFFER_FLAG_READONLY : libc :: c_int = 1 ; pub const AV_CPU_FLAG_FORCE : u32 = 2147483648 ; pub const AV_CPU_FLAG_MMX : libc :: c_int = 1 ; pub const AV_CPU_FLAG_MMXEXT : libc :: c_int = 2 ; pub const AV_CPU_FLAG_MMX2 : libc :: c_int = 2 ; pub const AV_CPU_FLAG_3DNOW : libc :: c_int = 4 ; pub const AV_CPU_FLAG_SSE : libc :: c_int = 8 ; pub const AV_CPU_FLAG_SSE2 : libc :: c_int = 16 ; pub const AV_CPU_FLAG_SSE2SLOW : libc :: c_int = 1073741824 ; pub const AV_CPU_FLAG_3DNOWEXT : libc :: c_int = 32 ; pub const AV_CPU_FLAG_SSE3 : libc :: c_int = 64 ; pub const AV_CPU_FLAG_SSE3SLOW : libc :: c_int = 536870912 ; pub const AV_CPU_FLAG_SSSE3 : libc :: c_int = 128 ; pub const AV_CPU_FLAG_SSSE3SLOW : libc :: c_int = 67108864 ; pub const AV_CPU_FLAG_ATOM : libc :: c_int = 268435456 ; pub const AV_CPU_FLAG_SSE4 : libc :: c_int = 256 ; pub const AV_CPU_FLAG_SSE42 : libc :: c_int = 512 ; pub const AV_CPU_FLAG_AESNI : libc :: c_int = 524288 ; pub const AV_CPU_FLAG_AVX : libc :: c_int = 16384 ; pub const AV_CPU_FLAG_AVXSLOW : libc :: c_int = 134217728 ; pub const AV_CPU_FLAG_XOP : libc :: c_int = 1024 ; pub const AV_CPU_FLAG_FMA4 : libc :: c_int = 2048 ; pub const AV_CPU_FLAG_CMOV : libc :: c_int = 4096 ; pub const AV_CPU_FLAG_AVX2 : libc :: c_int = 32768 ; pub const AV_CPU_FLAG_FMA3 : libc :: c_int = 65536 ; pub const AV_CPU_FLAG_BMI1 : libc :: c_int = 131072 ; pub const AV_CPU_FLAG_BMI2 : libc :: c_int = 262144 ; pub const AV_CPU_FLAG_AVX512 : libc :: c_int = 1048576 ; pub const AV_CPU_FLAG_ALTIVEC : libc :: c_int = 1 ; pub const AV_CPU_FLAG_VSX : libc :: c_int = 2 ; pub const AV_CPU_FLAG_POWER8 : libc :: c_int = 4 ; pub const AV_CPU_FLAG_ARMV5TE : libc :: c_int = 1 ; pub const AV_CPU_FLAG_ARMV6 : libc :: c_int = 2 ; pub const AV_CPU_FLAG_ARMV6T2 : libc :: c_int = 4 ; pub const AV_CPU_FLAG_VFP : libc :: c_int = 8 ; pub const AV_CPU_FLAG_VFPV3 : libc :: c_int = 16 ; pub const AV_CPU_FLAG_NEON : libc :: c_int = 32 ; pub const AV_CPU_FLAG_ARMV8 : libc :: c_int = 64 ; pub const AV_CPU_FLAG_VFP_VM : libc :: c_int = 128 ; pub const AV_CPU_FLAG_SETEND : libc :: c_int = 65536 ; pub const AV_CH_FRONT_LEFT : libc :: c_ulonglong = 1 ; pub const AV_CH_FRONT_RIGHT : libc :: c_ulonglong = 2 ; pub const AV_CH_FRONT_CENTER : libc :: c_ulonglong = 4 ; pub const AV_CH_LOW_FREQUENCY : libc :: c_ulonglong = 8 ; pub const AV_CH_BACK_LEFT : libc :: c_ulonglong = 16 ; pub const AV_CH_BACK_RIGHT : libc :: c_ulonglong = 32 ; pub const AV_CH_FRONT_LEFT_OF_CENTER : libc :: c_ulonglong = 64 ; pub const AV_CH_FRONT_RIGHT_OF_CENTER : libc :: c_ulonglong = 128 ; pub const AV_CH_BACK_CENTER : libc :: c_ulonglong = 256 ; pub const AV_CH_SIDE_LEFT : libc :: c_ulonglong = 512 ; pub const AV_CH_SIDE_RIGHT : libc :: c_ulonglong = 1024 ; pub const AV_CH_TOP_CENTER : libc :: c_ulonglong = 2048 ; pub const AV_CH_TOP_FRONT_LEFT : libc :: c_ulonglong = 4096 ; pub const AV_CH_TOP_FRONT_CENTER : libc :: c_ulonglong = 8192 ; pub const AV_CH_TOP_FRONT_RIGHT : libc :: c_ulonglong = 16384 ; pub const AV_CH_TOP_BACK_LEFT : libc :: c_ulonglong = 32768 ; pub const AV_CH_TOP_BACK_CENTER : libc :: c_ulonglong = 65536 ; pub const AV_CH_TOP_BACK_RIGHT : libc :: c_ulonglong = 131072 ; pub const AV_CH_STEREO_LEFT : libc :: c_ulonglong = 536870912 ; pub const AV_CH_STEREO_RIGHT : libc :: c_ulonglong = 1073741824 ; pub const AV_CH_WIDE_LEFT : libc :: c_ulonglong = 2147483648 ; pub const AV_CH_WIDE_RIGHT : libc :: c_ulonglong = 4294967296 ; pub const AV_CH_SURROUND_DIRECT_LEFT : libc :: c_ulonglong = 8589934592 ; pub const AV_CH_SURROUND_DIRECT_RIGHT : libc :: c_ulonglong = 17179869184 ; pub const AV_CH_LOW_FREQUENCY_2 : libc :: c_ulonglong = 34359738368 ; pub const AV_CH_LAYOUT_NATIVE : libc :: c_ulonglong = 9223372036854775808 ; pub const AV_CH_LAYOUT_MONO : libc :: c_ulonglong = 4 ; pub const AV_CH_LAYOUT_STEREO : libc :: c_ulonglong = 3 ; pub const AV_CH_LAYOUT_2POINT1 : libc :: c_ulonglong = 11 ; pub const AV_CH_LAYOUT_2_1 : libc :: c_ulonglong = 259 ; pub const AV_CH_LAYOUT_SURROUND : libc :: c_ulonglong = 7 ; pub const AV_CH_LAYOUT_3POINT1 : libc :: c_ulonglong = 15 ; pub const AV_CH_LAYOUT_4POINT0 : libc :: c_ulonglong = 263 ; pub const AV_CH_LAYOUT_4POINT1 : libc :: c_ulonglong = 271 ; pub const AV_CH_LAYOUT_2_2 : libc :: c_ulonglong = 1539 ; pub const AV_CH_LAYOUT_QUAD : libc :: c_ulonglong = 51 ; pub const AV_CH_LAYOUT_5POINT0 : libc :: c_ulonglong = 1543 ; pub const AV_CH_LAYOUT_5POINT1 : libc :: c_ulonglong = 1551 ; pub const AV_CH_LAYOUT_5POINT0_BACK : libc :: c_ulonglong = 55 ; pub const AV_CH_LAYOUT_5POINT1_BACK : libc :: c_ulonglong = 63 ; pub const AV_CH_LAYOUT_6POINT0 : libc :: c_ulonglong = 1799 ; pub const AV_CH_LAYOUT_6POINT0_FRONT : libc :: c_ulonglong = 1731 ; pub const AV_CH_LAYOUT_HEXAGONAL : libc :: c_ulonglong = 311 ; pub const AV_CH_LAYOUT_6POINT1 : libc :: c_ulonglong = 1807 ; pub const AV_CH_LAYOUT_6POINT1_BACK : libc :: c_ulonglong = 319 ; pub const AV_CH_LAYOUT_6POINT1_FRONT : libc :: c_ulonglong = 1739 ; pub const AV_CH_LAYOUT_7POINT0 : libc :: c_ulonglong = 1591 ; pub const AV_CH_LAYOUT_7POINT0_FRONT : libc :: c_ulonglong = 1735 ; pub const AV_CH_LAYOUT_7POINT1 : libc :: c_ulonglong = 1599 ; pub const AV_CH_LAYOUT_7POINT1_WIDE : libc :: c_ulonglong = 1743 ; pub const AV_CH_LAYOUT_7POINT1_WIDE_BACK : libc :: c_ulonglong = 255 ; pub const AV_CH_LAYOUT_OCTAGONAL : libc :: c_ulonglong = 1847 ; pub const AV_CH_LAYOUT_HEXADECAGONAL : libc :: c_ulonglong = 6442710839 ; pub const AV_CH_LAYOUT_STEREO_DOWNMIX : libc :: c_ulonglong = 1610612736 ; pub const AV_DICT_MATCH_CASE : libc :: c_int = 1 ; pub const AV_DICT_IGNORE_SUFFIX : libc :: c_int = 2 ; pub const AV_DICT_DONT_STRDUP_KEY : libc :: c_int = 4 ; pub const AV_DICT_DONT_STRDUP_VAL : libc :: c_int = 8 ; pub const AV_DICT_DONT_OVERWRITE : libc :: c_int = 16 ; pub const AV_DICT_APPEND : libc :: c_int = 32 ; pub const AV_DICT_MULTIKEY : libc :: c_int = 64 ; pub const AV_NUM_DATA_POINTERS : libc :: c_int = 8 ; pub const AV_FRAME_FLAG_CORRUPT : libc :: c_int = 1 ; pub const AV_FRAME_FLAG_DISCARD : libc :: c_int = 4 ; pub const FF_DECODE_ERROR_INVALID_BITSTREAM : libc :: c_int = 1 ; pub const FF_DECODE_ERROR_MISSING_REFERENCE : libc :: c_int = 2 ; pub const FF_DECODE_ERROR_CONCEALMENT_ACTIVE : libc :: c_int = 4 ; pub const FF_DECODE_ERROR_DECODE_SLICES : libc :: c_int = 8 ; pub const LIBAVCODEC_VERSION_MAJOR : libc :: c_int = 58 ; pub const LIBAVCODEC_VERSION_MINOR : libc :: c_int = 54 ; pub const LIBAVCODEC_VERSION_MICRO : libc :: c_int = 100 ; pub const AV_CODEC_PROP_INTRA_ONLY : libc :: c_int = 1 ; pub const AV_CODEC_PROP_LOSSY : libc :: c_int = 2 ; pub const AV_CODEC_PROP_LOSSLESS : libc :: c_int = 4 ; pub const AV_CODEC_PROP_REORDER : libc :: c_int = 8 ; pub const AV_CODEC_PROP_BITMAP_SUB : libc :: c_int = 65536 ; pub const AV_CODEC_PROP_TEXT_SUB : libc :: c_int = 131072 ; pub const AV_INPUT_BUFFER_PADDING_SIZE : libc :: c_int = 64 ; pub const AV_INPUT_BUFFER_MIN_SIZE : libc :: c_int = 16384 ; pub const AV_CODEC_FLAG_UNALIGNED : libc :: c_uint = 1 ; pub const AV_CODEC_FLAG_QSCALE : libc :: c_uint = 2 ; pub const AV_CODEC_FLAG_4MV : libc :: c_uint = 4 ; pub const AV_CODEC_FLAG_OUTPUT_CORRUPT : libc :: c_uint = 8 ; pub const AV_CODEC_FLAG_QPEL : libc :: c_uint = 16 ; pub const AV_CODEC_FLAG_DROPCHANGED : libc :: c_uint = 32 ; pub const AV_CODEC_FLAG_PASS1 : libc :: c_uint = 512 ; pub const AV_CODEC_FLAG_PASS2 : libc :: c_uint = 1024 ; pub const AV_CODEC_FLAG_LOOP_FILTER : libc :: c_uint = 2048 ; pub const AV_CODEC_FLAG_GRAY : libc :: c_uint = 8192 ; pub const AV_CODEC_FLAG_PSNR : libc :: c_uint = 32768 ; pub const AV_CODEC_FLAG_TRUNCATED : libc :: c_uint = 65536 ; pub const AV_CODEC_FLAG_INTERLACED_DCT : libc :: c_uint = 262144 ; pub const AV_CODEC_FLAG_LOW_DELAY : libc :: c_uint = 524288 ; pub const AV_CODEC_FLAG_GLOBAL_HEADER : libc :: c_uint = 4194304 ; pub const AV_CODEC_FLAG_BITEXACT : libc :: c_uint = 8388608 ; pub const AV_CODEC_FLAG_AC_PRED : libc :: c_uint = 16777216 ; pub const AV_CODEC_FLAG_INTERLACED_ME : libc :: c_uint = 536870912 ; pub const AV_CODEC_FLAG_CLOSED_GOP : u32 = 2147483648 ; pub const AV_CODEC_FLAG2_FAST : libc :: c_uint = 1 ; pub const AV_CODEC_FLAG2_NO_OUTPUT : libc :: c_uint = 4 ; pub const AV_CODEC_FLAG2_LOCAL_HEADER : libc :: c_uint = 8 ; pub const AV_CODEC_FLAG2_DROP_FRAME_TIMECODE : libc :: c_uint = 8192 ; pub const AV_CODEC_FLAG2_CHUNKS : libc :: c_uint = 32768 ; pub const AV_CODEC_FLAG2_IGNORE_CROP : libc :: c_uint = 65536 ; pub const AV_CODEC_FLAG2_SHOW_ALL : libc :: c_uint = 4194304 ; pub const AV_CODEC_FLAG2_EXPORT_MVS : libc :: c_uint = 268435456 ; pub const AV_CODEC_FLAG2_SKIP_MANUAL : libc :: c_uint = 536870912 ; pub const AV_CODEC_FLAG2_RO_FLUSH_NOOP : libc :: c_uint = 1073741824 ; pub const AV_CODEC_CAP_DRAW_HORIZ_BAND : libc :: c_uint = 1 ; pub const AV_CODEC_CAP_DR1 : libc :: c_uint = 2 ; pub const AV_CODEC_CAP_TRUNCATED : libc :: c_uint = 8 ; pub const AV_CODEC_CAP_DELAY : libc :: c_uint = 32 ; pub const AV_CODEC_CAP_SMALL_LAST_FRAME : libc :: c_uint = 64 ; pub const AV_CODEC_CAP_SUBFRAMES : libc :: c_uint = 256 ; pub const AV_CODEC_CAP_EXPERIMENTAL : libc :: c_uint = 512 ; pub const AV_CODEC_CAP_CHANNEL_CONF : libc :: c_uint = 1024 ; pub const AV_CODEC_CAP_FRAME_THREADS : libc :: c_uint = 4096 ; pub const AV_CODEC_CAP_SLICE_THREADS : libc :: c_uint = 8192 ; pub const AV_CODEC_CAP_PARAM_CHANGE : libc :: c_uint = 16384 ; pub const AV_CODEC_CAP_AUTO_THREADS : libc :: c_uint = 32768 ; pub const AV_CODEC_CAP_VARIABLE_FRAME_SIZE : libc :: c_uint = 65536 ; pub const AV_CODEC_CAP_AVOID_PROBING : libc :: c_uint = 131072 ; pub const AV_CODEC_CAP_INTRA_ONLY : libc :: c_uint = 1073741824 ; pub const AV_CODEC_CAP_LOSSLESS : u32 = 2147483648 ; pub const AV_CODEC_CAP_HARDWARE : libc :: c_uint = 262144 ; pub const AV_CODEC_CAP_HYBRID : libc :: c_uint = 524288 ; pub const AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE : libc :: c_uint = 1048576 ; pub const AV_GET_BUFFER_FLAG_REF : libc :: c_int = 1 ; pub const AV_PKT_FLAG_KEY : libc :: c_int = 1 ; pub const AV_PKT_FLAG_CORRUPT : libc :: c_int = 2 ; pub const AV_PKT_FLAG_DISCARD : libc :: c_int = 4 ; pub const AV_PKT_FLAG_TRUSTED : libc :: c_int = 8 ; pub const AV_PKT_FLAG_DISPOSABLE : libc :: c_int = 16 ; pub const FF_COMPRESSION_DEFAULT : libc :: c_int = - 1 ; pub const FF_PRED_LEFT : libc :: c_int = 0 ; pub const FF_PRED_PLANE : libc :: c_int = 1 ; pub const FF_PRED_MEDIAN : libc :: c_int = 2 ; pub const FF_CMP_SAD : libc :: c_int = 0 ; pub const FF_CMP_SSE : libc :: c_int = 1 ; pub const FF_CMP_SATD : libc :: c_int = 2 ; pub const FF_CMP_DCT : libc :: c_int = 3 ; pub const FF_CMP_PSNR : libc :: c_int = 4 ; pub const FF_CMP_BIT : libc :: c_int = 5 ; pub const FF_CMP_RD : libc :: c_int = 6 ; pub const FF_CMP_ZERO : libc :: c_int = 7 ; pub const FF_CMP_VSAD : libc :: c_int = 8 ; pub const FF_CMP_VSSE : libc :: c_int = 9 ; pub const FF_CMP_NSSE : libc :: c_int = 10 ; pub const FF_CMP_W53 : libc :: c_int = 11 ; pub const FF_CMP_W97 : libc :: c_int = 12 ; pub const FF_CMP_DCTMAX : libc :: c_int = 13 ; pub const FF_CMP_DCT264 : libc :: c_int = 14 ; pub const FF_CMP_MEDIAN_SAD : libc :: c_int = 15 ; pub const FF_CMP_CHROMA : libc :: c_int = 256 ; pub const SLICE_FLAG_CODED_ORDER : libc :: c_int = 1 ; pub const SLICE_FLAG_ALLOW_FIELD : libc :: c_int = 2 ; pub const SLICE_FLAG_ALLOW_PLANE : libc :: c_int = 4 ; pub const FF_MB_DECISION_SIMPLE : libc :: c_int = 0 ; pub const FF_MB_DECISION_BITS : libc :: c_int = 1 ; pub const FF_MB_DECISION_RD : libc :: c_int = 2 ; pub const FF_CODER_TYPE_VLC : libc :: c_int = 0 ; pub const FF_CODER_TYPE_AC : libc :: c_int = 1 ; pub const FF_CODER_TYPE_RAW : libc :: c_int = 2 ; pub const FF_CODER_TYPE_RLE : libc :: c_int = 3 ; pub const FF_BUG_AUTODETECT : libc :: c_int = 1 ; pub const FF_BUG_XVID_ILACE : libc :: c_int = 4 ; pub const FF_BUG_UMP4 : libc :: c_int = 8 ; pub const FF_BUG_NO_PADDING : libc :: c_int = 16 ; pub const FF_BUG_AMV : libc :: c_int = 32 ; pub const FF_BUG_QPEL_CHROMA : libc :: c_int = 64 ; pub const FF_BUG_STD_QPEL : libc :: c_int = 128 ; pub const FF_BUG_QPEL_CHROMA2 : libc :: c_int = 256 ; pub const FF_BUG_DIRECT_BLOCKSIZE : libc :: c_int = 512 ; pub const FF_BUG_EDGE : libc :: c_int = 1024 ; pub const FF_BUG_HPEL_CHROMA : libc :: c_int = 2048 ; pub const FF_BUG_DC_CLIP : libc :: c_int = 4096 ; pub const FF_BUG_MS : libc :: c_int = 8192 ; pub const FF_BUG_TRUNCATED : libc :: c_int = 16384 ; pub const FF_BUG_IEDGE : libc :: c_int = 32768 ; pub const FF_COMPLIANCE_VERY_STRICT : libc :: c_int = 2 ; pub const FF_COMPLIANCE_STRICT : libc :: c_int = 1 ; pub const FF_COMPLIANCE_NORMAL : libc :: c_int = 0 ; pub const FF_COMPLIANCE_UNOFFICIAL : libc :: c_int = - 1 ; pub const FF_COMPLIANCE_EXPERIMENTAL : libc :: c_int = - 2 ; pub const FF_EC_GUESS_MVS : libc :: c_int = 1 ; pub const FF_EC_DEBLOCK : libc :: c_int = 2 ; pub const FF_EC_FAVOR_INTER : libc :: c_int = 256 ; pub const FF_DEBUG_PICT_INFO : libc :: c_int = 1 ; pub const FF_DEBUG_RC : libc :: c_int = 2 ; pub const FF_DEBUG_BITSTREAM : libc :: c_int = 4 ; pub const FF_DEBUG_MB_TYPE : libc :: c_int = 8 ; pub const FF_DEBUG_QP : libc :: c_int = 16 ; pub const FF_DEBUG_DCT_COEFF : libc :: c_int = 64 ; pub const FF_DEBUG_SKIP : libc :: c_int = 128 ; pub const FF_DEBUG_STARTCODE : libc :: c_int = 256 ; pub const FF_DEBUG_ER : libc :: c_int = 1024 ; pub const FF_DEBUG_MMCO : libc :: c_int = 2048 ; pub const FF_DEBUG_BUGS : libc :: c_int = 4096 ; pub const FF_DEBUG_BUFFERS : libc :: c_int = 32768 ; pub const FF_DEBUG_THREADS : libc :: c_int = 65536 ; pub const FF_DEBUG_GREEN_MD : libc :: c_int = 8388608 ; pub const FF_DEBUG_NOMC : libc :: c_int = 16777216 ; pub const AV_EF_CRCCHECK : libc :: c_int = 1 ; pub const AV_EF_BITSTREAM : libc :: c_int = 2 ; pub const AV_EF_BUFFER : libc :: c_int = 4 ; pub const AV_EF_EXPLODE : libc :: c_int = 8 ; pub const AV_EF_IGNORE_ERR : libc :: c_int = 32768 ; pub const AV_EF_CAREFUL : libc :: c_int = 65536 ; pub const AV_EF_COMPLIANT : libc :: c_int = 131072 ; pub const AV_EF_AGGRESSIVE : libc :: c_int = 262144 ; pub const FF_DCT_AUTO : libc :: c_int = 0 ; pub const FF_DCT_FASTINT : libc :: c_int = 1 ; pub const FF_DCT_INT : libc :: c_int = 2 ; pub const FF_DCT_MMX : libc :: c_int = 3 ; pub const FF_DCT_ALTIVEC : libc :: c_int = 5 ; pub const FF_DCT_FAAN : libc :: c_int = 6 ; pub const FF_IDCT_AUTO : libc :: c_int = 0 ; pub const FF_IDCT_INT : libc :: c_int = 1 ; pub const FF_IDCT_SIMPLE : libc :: c_int = 2 ; pub const FF_IDCT_SIMPLEMMX : libc :: c_int = 3 ; pub const FF_IDCT_ARM : libc :: c_int = 7 ; pub const FF_IDCT_ALTIVEC : libc :: c_int = 8 ; pub const FF_IDCT_SIMPLEARM : libc :: c_int = 10 ; pub const FF_IDCT_XVID : libc :: c_int = 14 ; pub const FF_IDCT_SIMPLEARMV5TE : libc :: c_int = 16 ; pub const FF_IDCT_SIMPLEARMV6 : libc :: c_int = 17 ; pub const FF_IDCT_FAAN : libc :: c_int = 20 ; pub const FF_IDCT_SIMPLENEON : libc :: c_int = 22 ; pub const FF_IDCT_NONE : libc :: c_int = 24 ; pub const FF_IDCT_SIMPLEAUTO : libc :: c_int = 128 ; pub const FF_THREAD_FRAME : libc :: c_int = 1 ; pub const FF_THREAD_SLICE : libc :: c_int = 2 ; pub const FF_PROFILE_UNKNOWN : libc :: c_int = - 99 ; pub const FF_PROFILE_RESERVED : libc :: c_int = - 100 ; pub const FF_PROFILE_AAC_MAIN : libc :: c_int = 0 ; pub const FF_PROFILE_AAC_LOW : libc :: c_int = 1 ; pub const FF_PROFILE_AAC_SSR : libc :: c_int = 2 ; pub const FF_PROFILE_AAC_LTP : libc :: c_int = 3 ; pub const FF_PROFILE_AAC_HE : libc :: c_int = 4 ; pub const FF_PROFILE_AAC_HE_V2 : libc :: c_int = 28 ; pub const FF_PROFILE_AAC_LD : libc :: c_int = 22 ; pub const FF_PROFILE_AAC_ELD : libc :: c_int = 38 ; pub const FF_PROFILE_MPEG2_AAC_LOW : libc :: c_int = 128 ; pub const FF_PROFILE_MPEG2_AAC_HE : libc :: c_int = 131 ; pub const FF_PROFILE_DNXHD : libc :: c_int = 0 ; pub const FF_PROFILE_DNXHR_LB : libc :: c_int = 1 ; pub const FF_PROFILE_DNXHR_SQ : libc :: c_int = 2 ; pub const FF_PROFILE_DNXHR_HQ : libc :: c_int = 3 ; pub const FF_PROFILE_DNXHR_HQX : libc :: c_int = 4 ; pub const FF_PROFILE_DNXHR_444 : libc :: c_int = 5 ; pub const FF_PROFILE_DTS : libc :: c_int = 20 ; pub const FF_PROFILE_DTS_ES : libc :: c_int = 30 ; pub const FF_PROFILE_DTS_96_24 : libc :: c_int = 40 ; pub const FF_PROFILE_DTS_HD_HRA : libc :: c_int = 50 ; pub const FF_PROFILE_DTS_HD_MA : libc :: c_int = 60 ; pub const FF_PROFILE_DTS_EXPRESS : libc :: c_int = 70 ; pub const FF_PROFILE_MPEG2_422 : libc :: c_int = 0 ; pub const FF_PROFILE_MPEG2_HIGH : libc :: c_int = 1 ; pub const FF_PROFILE_MPEG2_SS : libc :: c_int = 2 ; pub const FF_PROFILE_MPEG2_SNR_SCALABLE : libc :: c_int = 3 ; pub const FF_PROFILE_MPEG2_MAIN : libc :: c_int = 4 ; pub const FF_PROFILE_MPEG2_SIMPLE : libc :: c_int = 5 ; pub const FF_PROFILE_H264_CONSTRAINED : libc :: c_int = 512 ; pub const FF_PROFILE_H264_INTRA : libc :: c_int = 2048 ; pub const FF_PROFILE_H264_BASELINE : libc :: c_int = 66 ; pub const FF_PROFILE_H264_CONSTRAINED_BASELINE : libc :: c_int = 578 ; pub const FF_PROFILE_H264_MAIN : libc :: c_int = 77 ; pub const FF_PROFILE_H264_EXTENDED : libc :: c_int = 88 ; pub const FF_PROFILE_H264_HIGH : libc :: c_int = 100 ; pub const FF_PROFILE_H264_HIGH_10 : libc :: c_int = 110 ; pub const FF_PROFILE_H264_HIGH_10_INTRA : libc :: c_int = 2158 ; pub const FF_PROFILE_H264_MULTIVIEW_HIGH : libc :: c_int = 118 ; pub const FF_PROFILE_H264_HIGH_422 : libc :: c_int = 122 ; pub const FF_PROFILE_H264_HIGH_422_INTRA : libc :: c_int = 2170 ; pub const FF_PROFILE_H264_STEREO_HIGH : libc :: c_int = 128 ; pub const FF_PROFILE_H264_HIGH_444 : libc :: c_int = 144 ; pub const FF_PROFILE_H264_HIGH_444_PREDICTIVE : libc :: c_int = 244 ; pub const FF_PROFILE_H264_HIGH_444_INTRA : libc :: c_int = 2292 ; pub const FF_PROFILE_H264_CAVLC_444 : libc :: c_int = 44 ; pub const FF_PROFILE_VC1_SIMPLE : libc :: c_int = 0 ; pub const FF_PROFILE_VC1_MAIN : libc :: c_int = 1 ; pub const FF_PROFILE_VC1_COMPLEX : libc :: c_int = 2 ; pub const FF_PROFILE_VC1_ADVANCED : libc :: c_int = 3 ; pub const FF_PROFILE_MPEG4_SIMPLE : libc :: c_int = 0 ; pub const FF_PROFILE_MPEG4_SIMPLE_SCALABLE : libc :: c_int = 1 ; pub const FF_PROFILE_MPEG4_CORE : libc :: c_int = 2 ; pub const FF_PROFILE_MPEG4_MAIN : libc :: c_int = 3 ; pub const FF_PROFILE_MPEG4_N_BIT : libc :: c_int = 4 ; pub const FF_PROFILE_MPEG4_SCALABLE_TEXTURE : libc :: c_int = 5 ; pub const FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION : libc :: c_int = 6 ; pub const FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE : libc :: c_int = 7 ; pub const FF_PROFILE_MPEG4_HYBRID : libc :: c_int = 8 ; pub const FF_PROFILE_MPEG4_ADVANCED_REAL_TIME : libc :: c_int = 9 ; pub const FF_PROFILE_MPEG4_CORE_SCALABLE : libc :: c_int = 10 ; pub const FF_PROFILE_MPEG4_ADVANCED_CODING : libc :: c_int = 11 ; pub const FF_PROFILE_MPEG4_ADVANCED_CORE : libc :: c_int = 12 ; pub const FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE : libc :: c_int = 13 ; pub const FF_PROFILE_MPEG4_SIMPLE_STUDIO : libc :: c_int = 14 ; pub const FF_PROFILE_MPEG4_ADVANCED_SIMPLE : libc :: c_int = 15 ; pub const FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0 : libc :: c_int = 1 ; pub const FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1 : libc :: c_int = 2 ; pub const FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION : libc :: c_int = 32768 ; pub const FF_PROFILE_JPEG2000_DCINEMA_2K : libc :: c_int = 3 ; pub const FF_PROFILE_JPEG2000_DCINEMA_4K : libc :: c_int = 4 ; pub const FF_PROFILE_VP9_0 : libc :: c_int = 0 ; pub const FF_PROFILE_VP9_1 : libc :: c_int = 1 ; pub const FF_PROFILE_VP9_2 : libc :: c_int = 2 ; pub const FF_PROFILE_VP9_3 : libc :: c_int = 3 ; pub const FF_PROFILE_HEVC_MAIN : libc :: c_int = 1 ; pub const FF_PROFILE_HEVC_MAIN_10 : libc :: c_int = 2 ; pub const FF_PROFILE_HEVC_MAIN_STILL_PICTURE : libc :: c_int = 3 ; pub const FF_PROFILE_HEVC_REXT : libc :: c_int = 4 ; pub const FF_PROFILE_AV1_MAIN : libc :: c_int = 0 ; pub const FF_PROFILE_AV1_HIGH : libc :: c_int = 1 ; pub const FF_PROFILE_AV1_PROFESSIONAL : libc :: c_int = 2 ; pub const FF_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT : libc :: c_int = 192 ; pub const FF_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT : libc :: c_int = 193 ; pub const FF_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT : libc :: c_int = 194 ; pub const FF_PROFILE_MJPEG_HUFFMAN_LOSSLESS : libc :: c_int = 195 ; pub const FF_PROFILE_MJPEG_JPEG_LS : libc :: c_int = 247 ; pub const FF_PROFILE_SBC_MSBC : libc :: c_int = 1 ; pub const FF_PROFILE_PRORES_PROXY : libc :: c_int = 0 ; pub const FF_PROFILE_PRORES_LT : libc :: c_int = 1 ; pub const FF_PROFILE_PRORES_STANDARD : libc :: c_int = 2 ; pub const FF_PROFILE_PRORES_HQ : libc :: c_int = 3 ; pub const FF_PROFILE_PRORES_4444 : libc :: c_int = 4 ; pub const FF_PROFILE_PRORES_XQ : libc :: c_int = 5 ; pub const FF_PROFILE_ARIB_PROFILE_A : libc :: c_int = 0 ; pub const FF_PROFILE_ARIB_PROFILE_C : libc :: c_int = 1 ; pub const FF_LEVEL_UNKNOWN : libc :: c_int = - 99 ; pub const FF_SUB_CHARENC_MODE_DO_NOTHING : libc :: c_int = - 1 ; pub const FF_SUB_CHARENC_MODE_AUTOMATIC : libc :: c_int = 0 ; pub const FF_SUB_CHARENC_MODE_PRE_DECODER : libc :: c_int = 1 ; pub const FF_SUB_CHARENC_MODE_IGNORE : libc :: c_int = 2 ; pub const FF_DEBUG_VIS_MV_P_FOR : libc :: c_int = 1 ; pub const FF_DEBUG_VIS_MV_B_FOR : libc :: c_int = 2 ; pub const FF_DEBUG_VIS_MV_B_BACK : libc :: c_int = 4 ; pub const FF_CODEC_PROPERTY_LOSSLESS : libc :: c_int = 1 ; pub const FF_CODEC_PROPERTY_CLOSED_CAPTIONS : libc :: c_int = 2 ; pub const FF_SUB_TEXT_FMT_ASS : libc :: c_int = 0 ; pub const FF_SUB_TEXT_FMT_ASS_WITH_TIMINGS : libc :: c_int = 1 ; pub const AV_HWACCEL_CODEC_CAP_EXPERIMENTAL : libc :: c_int = 512 ; pub const AV_HWACCEL_FLAG_IGNORE_LEVEL : libc :: c_int = 1 ; pub const AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH : libc :: c_int = 2 ; pub const AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH : libc :: c_int = 4 ; pub const AV_SUBTITLE_FLAG_FORCED : libc :: c_int = 1 ; pub const AV_PARSER_PTS_NB : libc :: c_int = 4 ; pub const PARSER_FLAG_COMPLETE_FRAMES : libc :: c_int = 1 ; pub const PARSER_FLAG_ONCE : libc :: c_int = 2 ; pub const PARSER_FLAG_FETCHED_OFFSET : libc :: c_int = 4 ; pub const PARSER_FLAG_USE_CODEC_TS : libc :: c_int = 4096 ; pub const DV_PROFILE_BYTES : libc :: c_int = 480 ; pub const VORBIS_FLAG_HEADER : libc :: c_int = 1 ; pub const VORBIS_FLAG_COMMENT : libc :: c_int = 2 ; pub const VORBIS_FLAG_SETUP : libc :: c_int = 4 ; pub const LIBAVDEVICE_VERSION_MAJOR : libc :: c_int = 58 ; pub const LIBAVDEVICE_VERSION_MINOR : libc :: c_int = 8 ; pub const LIBAVDEVICE_VERSION_MICRO : libc :: c_int = 100 ; pub const AV_OPT_FLAG_ENCODING_PARAM : libc :: c_int = 1 ; pub const AV_OPT_FLAG_DECODING_PARAM : libc :: c_int = 2 ; pub const AV_OPT_FLAG_AUDIO_PARAM : libc :: c_int = 8 ; pub const AV_OPT_FLAG_VIDEO_PARAM : libc :: c_int = 16 ; pub const AV_OPT_FLAG_SUBTITLE_PARAM : libc :: c_int = 32 ; pub const AV_OPT_FLAG_EXPORT : libc :: c_int = 64 ; pub const AV_OPT_FLAG_READONLY : libc :: c_int = 128 ; pub const AV_OPT_FLAG_BSF_PARAM : libc :: c_int = 256 ; pub const AV_OPT_FLAG_FILTERING_PARAM : libc :: c_int = 65536 ; pub const AV_OPT_FLAG_DEPRECATED : libc :: c_int = 131072 ; pub const AV_OPT_SEARCH_CHILDREN : libc :: c_int = 1 ; pub const AV_OPT_SEARCH_FAKE_OBJ : libc :: c_int = 2 ; pub const AV_OPT_ALLOW_NULL : libc :: c_int = 4 ; pub const AV_OPT_MULTI_COMPONENT_RANGE : libc :: c_int = 4096 ; pub const AV_OPT_SERIALIZE_SKIP_DEFAULTS : libc :: c_int = 1 ; pub const AV_OPT_SERIALIZE_OPT_FLAGS_EXACT : libc :: c_int = 2 ; pub const _TIME_H : libc :: c_int = 1 ; pub const _BITS_TIME_H : libc :: c_int = 1 ; pub const CLOCK_REALTIME : libc :: c_int = 0 ; pub const CLOCK_MONOTONIC : libc :: c_int = 1 ; pub const CLOCK_PROCESS_CPUTIME_ID : libc :: c_int = 2 ; pub const CLOCK_THREAD_CPUTIME_ID : libc :: c_int = 3 ; pub const CLOCK_MONOTONIC_RAW : libc :: c_int = 4 ; pub const CLOCK_REALTIME_COARSE : libc :: c_int = 5 ; pub const CLOCK_MONOTONIC_COARSE : libc :: c_int = 6 ; pub const CLOCK_BOOTTIME : libc :: c_int = 7 ; pub const CLOCK_REALTIME_ALARM : libc :: c_int = 8 ; pub const CLOCK_BOOTTIME_ALARM : libc :: c_int = 9 ; pub const CLOCK_TAI : libc :: c_int = 11 ; pub const TIMER_ABSTIME : libc :: c_int = 1 ; pub const __struct_tm_defined : libc :: c_int = 1 ; pub const __itimerspec_defined : libc :: c_int = 1 ; pub const TIME_UTC : libc :: c_int = 1 ; pub const LIBAVFORMAT_VERSION_MAJOR : libc :: c_int = 58 ; pub const LIBAVFORMAT_VERSION_MINOR : libc :: c_int = 29 ; pub const LIBAVFORMAT_VERSION_MICRO : libc :: c_int = 100 ; pub const FF_API_R_FRAME_RATE : libc :: c_int = 1 ; pub const AVIO_SEEKABLE_NORMAL : libc :: c_int = 1 ; pub const AVIO_SEEKABLE_TIME : libc :: c_int = 2 ; pub const AVSEEK_SIZE : libc :: c_int = 65536 ; pub const AVSEEK_FORCE : libc :: c_int = 131072 ; pub const AVIO_FLAG_READ : libc :: c_int = 1 ; pub const AVIO_FLAG_WRITE : libc :: c_int = 2 ; pub const AVIO_FLAG_READ_WRITE : libc :: c_int = 3 ; pub const AVIO_FLAG_NONBLOCK : libc :: c_int = 8 ; pub const AVIO_FLAG_DIRECT : libc :: c_int = 32768 ; pub const AVPROBE_SCORE_EXTENSION : libc :: c_int = 50 ; pub const AVPROBE_SCORE_MIME : libc :: c_int = 75 ; pub const AVPROBE_SCORE_MAX : libc :: c_int = 100 ; pub const AVPROBE_PADDING_SIZE : libc :: c_int = 32 ; pub const AVFMT_NOFILE : libc :: c_int = 1 ; pub const AVFMT_NEEDNUMBER : libc :: c_int = 2 ; pub const AVFMT_SHOW_IDS : libc :: c_int = 8 ; pub const AVFMT_GLOBALHEADER : libc :: c_int = 64 ; pub const AVFMT_NOTIMESTAMPS : libc :: c_int = 128 ; pub const AVFMT_GENERIC_INDEX : libc :: c_int = 256 ; pub const AVFMT_TS_DISCONT : libc :: c_int = 512 ; pub const AVFMT_VARIABLE_FPS : libc :: c_int = 1024 ; pub const AVFMT_NODIMENSIONS : libc :: c_int = 2048 ; pub const AVFMT_NOSTREAMS : libc :: c_int = 4096 ; pub const AVFMT_NOBINSEARCH : libc :: c_int = 8192 ; pub const AVFMT_NOGENSEARCH : libc :: c_int = 16384 ; pub const AVFMT_NO_BYTE_SEEK : libc :: c_int = 32768 ; pub const AVFMT_ALLOW_FLUSH : libc :: c_int = 65536 ; pub const AVFMT_TS_NONSTRICT : libc :: c_int = 131072 ; pub const AVFMT_TS_NEGATIVE : libc :: c_int = 262144 ; pub const AVFMT_SEEK_TO_PTS : libc :: c_int = 67108864 ; pub const AVINDEX_KEYFRAME : libc :: c_int = 1 ; pub const AVINDEX_DISCARD_FRAME : libc :: c_int = 2 ; pub const AV_DISPOSITION_DEFAULT : libc :: c_int = 1 ; pub const AV_DISPOSITION_DUB : libc :: c_int = 2 ; pub const AV_DISPOSITION_ORIGINAL : libc :: c_int = 4 ; pub const AV_DISPOSITION_COMMENT : libc :: c_int = 8 ; pub const AV_DISPOSITION_LYRICS : libc :: c_int = 16 ; pub const AV_DISPOSITION_KARAOKE : libc :: c_int = 32 ; pub const AV_DISPOSITION_FORCED : libc :: c_int = 64 ; pub const AV_DISPOSITION_HEARING_IMPAIRED : libc :: c_int = 128 ; pub const AV_DISPOSITION_VISUAL_IMPAIRED : libc :: c_int = 256 ; pub const AV_DISPOSITION_CLEAN_EFFECTS : libc :: c_int = 512 ; pub const AV_DISPOSITION_ATTACHED_PIC : libc :: c_int = 1024 ; pub const AV_DISPOSITION_TIMED_THUMBNAILS : libc :: c_int = 2048 ; pub const AV_DISPOSITION_CAPTIONS : libc :: c_int = 65536 ; pub const AV_DISPOSITION_DESCRIPTIONS : libc :: c_int = 131072 ; pub const AV_DISPOSITION_METADATA : libc :: c_int = 262144 ; pub const AV_DISPOSITION_DEPENDENT : libc :: c_int = 524288 ; pub const AV_DISPOSITION_STILL_IMAGE : libc :: c_int = 1048576 ; pub const AV_PTS_WRAP_IGNORE : libc :: c_int = 0 ; pub const AV_PTS_WRAP_ADD_OFFSET : libc :: c_int = 1 ; pub const AV_PTS_WRAP_SUB_OFFSET : libc :: c_int = - 1 ; pub const AVSTREAM_EVENT_FLAG_METADATA_UPDATED : libc :: c_int = 1 ; pub const MAX_STD_TIMEBASES : libc :: c_int = 399 ; pub const MAX_REORDER_DELAY : libc :: c_int = 16 ; pub const AV_PROGRAM_RUNNING : libc :: c_int = 1 ; pub const AVFMTCTX_NOHEADER : libc :: c_int = 1 ; pub const AVFMTCTX_UNSEEKABLE : libc :: c_int = 2 ; pub const AVFMT_FLAG_GENPTS : libc :: c_int = 1 ; pub const AVFMT_FLAG_IGNIDX : libc :: c_int = 2 ; pub const AVFMT_FLAG_NONBLOCK : libc :: c_int = 4 ; pub const AVFMT_FLAG_IGNDTS : libc :: c_int = 8 ; pub const AVFMT_FLAG_NOFILLIN : libc :: c_int = 16 ; pub const AVFMT_FLAG_NOPARSE : libc :: c_int = 32 ; pub const AVFMT_FLAG_NOBUFFER : libc :: c_int = 64 ; pub const AVFMT_FLAG_CUSTOM_IO : libc :: c_int = 128 ; pub const AVFMT_FLAG_DISCARD_CORRUPT : libc :: c_int = 256 ; pub const AVFMT_FLAG_FLUSH_PACKETS : libc :: c_int = 512 ; pub const AVFMT_FLAG_BITEXACT : libc :: c_int = 1024 ; pub const AVFMT_FLAG_MP4A_LATM : libc :: c_int = 32768 ; pub const AVFMT_FLAG_SORT_DTS : libc :: c_int = 65536 ; pub const AVFMT_FLAG_PRIV_OPT : libc :: c_int = 131072 ; pub const AVFMT_FLAG_KEEP_SIDE_DATA : libc :: c_int = 262144 ; pub const AVFMT_FLAG_FAST_SEEK : libc :: c_int = 524288 ; pub const AVFMT_FLAG_SHORTEST : libc :: c_int = 1048576 ; pub const AVFMT_FLAG_AUTO_BSF : libc :: c_int = 2097152 ; pub const FF_FDEBUG_TS : libc :: c_int = 1 ; pub const AVFMT_EVENT_FLAG_METADATA_UPDATED : libc :: c_int = 1 ; pub const AVFMT_AVOID_NEG_TS_AUTO : libc :: c_int = - 1 ; pub const AVFMT_AVOID_NEG_TS_MAKE_NON_NEGATIVE : libc :: c_int = 1 ; pub const AVFMT_AVOID_NEG_TS_MAKE_ZERO : libc :: c_int = 2 ; pub const AVSEEK_FLAG_BACKWARD : libc :: c_int = 1 ; pub const AVSEEK_FLAG_BYTE : libc :: c_int = 2 ; pub const AVSEEK_FLAG_ANY : libc :: c_int = 4 ; pub const AVSEEK_FLAG_FRAME : libc :: c_int = 8 ; pub const AVSTREAM_INIT_IN_WRITE_HEADER : libc :: c_int = 0 ; pub const AVSTREAM_INIT_IN_INIT_OUTPUT : libc :: c_int = 1 ; pub const AV_FRAME_FILENAME_FLAGS_MULTIPLE : libc :: c_int = 1 ; pub const LIBAVFILTER_VERSION_MAJOR : libc :: c_int = 7 ; pub const LIBAVFILTER_VERSION_MINOR : libc :: c_int = 57 ; pub const LIBAVFILTER_VERSION_MICRO : libc :: c_int = 100 ; pub const AVFILTER_FLAG_DYNAMIC_INPUTS : libc :: c_int = 1 ; pub const AVFILTER_FLAG_DYNAMIC_OUTPUTS : libc :: c_int = 2 ; pub const AVFILTER_FLAG_SLICE_THREADS : libc :: c_int = 4 ; pub const AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC : libc :: c_int = 65536 ; pub const AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL : libc :: c_int = 131072 ; pub const AVFILTER_FLAG_SUPPORT_TIMELINE : libc :: c_int = 196608 ; pub const AVFILTER_THREAD_SLICE : libc :: c_int = 1 ; pub const AVFILTER_CMD_FLAG_ONE : libc :: c_int = 1 ; pub const AVFILTER_CMD_FLAG_FAST : libc :: c_int = 2 ; pub const AV_BUFFERSINK_FLAG_PEEK : libc :: c_int = 1 ; pub const AV_BUFFERSINK_FLAG_NO_REQUEST : libc :: c_int = 2 ; pub const AV_BF_ROUNDS : libc :: c_int = 16 ; pub const AV_ESCAPE_FLAG_WHITESPACE : libc :: c_int = 1 ; pub const AV_ESCAPE_FLAG_STRICT : libc :: c_int = 2 ; pub const AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES : libc :: c_int = 1 ; pub const AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS : libc :: c_int = 2 ; pub const AV_UTF8_FLAG_ACCEPT_SURROGATES : libc :: c_int = 4 ; pub const AV_UTF8_FLAG_EXCLUDE_XML_INVALID_CONTROL_CODES : libc :: c_int = 8 ; pub const AV_UTF8_FLAG_ACCEPT_ALL : libc :: c_int = 7 ; pub const AV_BPRINT_SIZE_AUTOMATIC : libc :: c_int = 1 ; pub const AV_BPRINT_SIZE_COUNT_ONLY : libc :: c_int = 0 ; pub const AV_HASH_MAX_SIZE : libc :: c_int = 64 ; pub const AV_PIX_FMT_FLAG_BE : libc :: c_int = 1 ; pub const AV_PIX_FMT_FLAG_PAL : libc :: c_int = 2 ; pub const AV_PIX_FMT_FLAG_BITSTREAM : libc :: c_int = 4 ; pub const AV_PIX_FMT_FLAG_HWACCEL : libc :: c_int = 8 ; pub const AV_PIX_FMT_FLAG_PLANAR : libc :: c_int = 16 ; pub const AV_PIX_FMT_FLAG_RGB : libc :: c_int = 32 ; pub const AV_PIX_FMT_FLAG_PSEUDOPAL : libc :: c_int = 64 ; pub const AV_PIX_FMT_FLAG_ALPHA : libc :: c_int = 128 ; pub const AV_PIX_FMT_FLAG_BAYER : libc :: c_int = 256 ; pub const AV_PIX_FMT_FLAG_FLOAT : libc :: c_int = 512 ; pub const FF_LOSS_RESOLUTION : libc :: c_int = 1 ; pub const FF_LOSS_DEPTH : libc :: c_int = 2 ; pub const FF_LOSS_COLORSPACE : libc :: c_int = 4 ; pub const FF_LOSS_ALPHA : libc :: c_int = 8 ; pub const FF_LOSS_COLORQUANT : libc :: c_int = 16 ; pub const FF_LOSS_CHROMA : libc :: c_int = 32 ; pub const AV_LZO_INPUT_DEPLETED : libc :: c_int = 1 ; pub const AV_LZO_OUTPUT_FULL : libc :: c_int = 2 ; pub const AV_LZO_INVALID_BACKPTR : libc :: c_int = 4 ; pub const AV_LZO_ERROR : libc :: c_int = 8 ; pub const AV_LZO_INPUT_PADDING : libc :: c_int = 8 ; pub const AV_LZO_OUTPUT_PADDING : libc :: c_int = 12 ; pub const AV_STEREO3D_FLAG_INVERT : libc :: c_int = 1 ; pub const AV_TIMECODE_STR_SIZE : libc :: c_int = 23 ; pub const LIBSWRESAMPLE_VERSION_MAJOR : libc :: c_int = 3 ; pub const LIBSWRESAMPLE_VERSION_MINOR : libc :: c_int = 5 ; pub const LIBSWRESAMPLE_VERSION_MICRO : libc :: c_int = 100 ; pub const SWR_FLAG_RESAMPLE : libc :: c_int = 1 ; pub const LIBSWSCALE_VERSION_MAJOR : libc :: c_int = 5 ; pub const LIBSWSCALE_VERSION_MINOR : libc :: c_int = 5 ; pub const LIBSWSCALE_VERSION_MICRO : libc :: c_int = 100 ; pub const SWS_FAST_BILINEAR : libc :: c_int = 1 ; pub const SWS_BILINEAR : libc :: c_int = 2 ; pub const SWS_BICUBIC : libc :: c_int = 4 ; pub const SWS_X : libc :: c_int = 8 ; pub const SWS_POINT : libc :: c_int = 16 ; pub const SWS_AREA : libc :: c_int = 32 ; pub const SWS_BICUBLIN : libc :: c_int = 64 ; pub const SWS_GAUSS : libc :: c_int = 128 ; pub const SWS_SINC : libc :: c_int = 256 ; pub const SWS_LANCZOS : libc :: c_int = 512 ; pub const SWS_SPLINE : libc :: c_int = 1024 ; pub const SWS_SRC_V_CHR_DROP_MASK : libc :: c_int = 196608 ; pub const SWS_SRC_V_CHR_DROP_SHIFT : libc :: c_int = 16 ; pub const SWS_PARAM_DEFAULT : libc :: c_int = 123456 ; pub const SWS_PRINT_INFO : libc :: c_int = 4096 ; pub const SWS_FULL_CHR_H_INT : libc :: c_int = 8192 ; pub const SWS_FULL_CHR_H_INP : libc :: c_int = 16384 ; pub const SWS_DIRECT_BGR : libc :: c_int = 32768 ; pub const SWS_ACCURATE_RND : libc :: c_int = 262144 ; pub const SWS_BITEXACT : libc :: c_int = 524288 ; pub const SWS_ERROR_DIFFUSION : libc :: c_int = 8388608 ; pub const SWS_MAX_REDUCE_CUTOFF : f64 = 0.002 ; pub const SWS_CS_ITU709 : libc :: c_int = 1 ; pub const SWS_CS_FCC : libc :: c_int = 4 ; pub const SWS_CS_ITU601 : libc :: c_int = 5 ; pub const SWS_CS_ITU624 : libc :: c_int = 5 ; pub const SWS_CS_SMPTE170M : libc :: c_int = 5 ; pub const SWS_CS_SMPTE240M : libc :: c_int = 7 ; pub const SWS_CS_DEFAULT : libc :: c_int = 5 ; pub const SWS_CS_BT2020 : libc :: c_int = 9 ; extern "C" { pub fn __errno_location ( ) -> * mut libc :: c_int ; } pub type __u_char = libc :: c_uchar ; pub type __u_short = libc :: c_ushort ; pub type __u_int = libc :: c_uint ; pub type __u_long = libc :: c_ulong ; pub type __int8_t = libc :: c_schar ; pub type __uint8_t = libc :: c_uchar ; pub type __int16_t = libc :: c_short ; pub type __uint16_t = libc :: c_ushort ; pub type __int32_t = libc :: c_int ; pub type __uint32_t = libc :: c_uint ; pub type __int64_t = libc :: c_long ; pub type __uint64_t = libc :: 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 = libc :: c_long ; pub type __u_quad_t = libc :: c_ulong ; pub type __intmax_t = libc :: c_long ; pub type __uintmax_t = libc :: c_ulong ; pub type __dev_t = libc :: c_ulong ; pub type __uid_t = libc :: c_uint ; pub type __gid_t = libc :: c_uint ; pub type __ino_t = libc :: c_ulong ; pub type __ino64_t = libc :: c_ulong ; pub type __mode_t = libc :: c_uint ; pub type __nlink_t = libc :: c_ulong ; pub type __off_t = libc :: c_long ; pub type __off64_t = libc :: c_long ; pub type __pid_t = libc :: c_int ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct __fsid_t { pub __val : [ libc :: c_int ; 2usize ] , } # [ test ] fn bindgen_test_layout___fsid_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __fsid_t > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __fsid_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __fsid_t > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( __fsid_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __fsid_t > ( ) ) ) . __val as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __fsid_t ) , "::" , stringify ! ( __val ) ) ) ; } pub type __clock_t = libc :: c_long ; pub type __rlim_t = libc :: c_ulong ; pub type __rlim64_t = libc :: c_ulong ; pub type __id_t = libc :: c_uint ; pub type __time_t = libc :: c_long ; pub type __useconds_t = libc :: c_uint ; pub type __suseconds_t = libc :: c_long ; pub type __daddr_t = libc :: c_int ; pub type __key_t = libc :: c_int ; pub type __clockid_t = libc :: c_int ; pub type __timer_t = * mut libc :: c_void ; pub type __blksize_t = libc :: c_long ; pub type __blkcnt_t = libc :: c_long ; pub type __blkcnt64_t = libc :: c_long ; pub type __fsblkcnt_t = libc :: c_ulong ; pub type __fsblkcnt64_t = libc :: c_ulong ; pub type __fsfilcnt_t = libc :: c_ulong ; pub type __fsfilcnt64_t = libc :: c_ulong ; pub type __fsword_t = libc :: c_long ; pub type __ssize_t = libc :: c_long ; pub type __syscall_slong_t = libc :: c_long ; pub type __syscall_ulong_t = libc :: c_ulong ; pub type __loff_t = __off64_t ; pub type __caddr_t = * mut libc :: c_char ; pub type __intptr_t = libc :: c_long ; pub type __socklen_t = libc :: c_uint ; pub type __sig_atomic_t = libc :: 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 = libc :: c_schar ; pub type int_fast16_t = libc :: c_long ; pub type int_fast32_t = libc :: c_long ; pub type int_fast64_t = libc :: c_long ; pub type uint_fast8_t = libc :: c_uchar ; pub type uint_fast16_t = libc :: c_ulong ; pub type uint_fast32_t = libc :: c_ulong ; pub type uint_fast64_t = libc :: c_ulong ; pub type intmax_t = __intmax_t ; pub type uintmax_t = __uintmax_t ; extern "C" { pub fn avutil_version ( ) -> libc :: c_uint ; } extern "C" { pub fn av_version_info ( ) -> * const libc :: c_char ; } extern "C" { pub fn avutil_configuration ( ) -> * const libc :: c_char ; } extern "C" { pub fn avutil_license ( ) -> * const libc :: c_char ; } # [ repr ( i32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVMediaType { AVMEDIA_TYPE_UNKNOWN = - 1 , AVMEDIA_TYPE_VIDEO = 0 , AVMEDIA_TYPE_AUDIO = 1 , AVMEDIA_TYPE_DATA = 2 , AVMEDIA_TYPE_SUBTITLE = 3 , AVMEDIA_TYPE_ATTACHMENT = 4 , AVMEDIA_TYPE_NB = 5 , } extern "C" { pub fn av_get_media_type_string ( media_type : AVMediaType ) -> * const libc :: c_char ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVPictureType { AV_PICTURE_TYPE_NONE = 0 , AV_PICTURE_TYPE_I = 1 , AV_PICTURE_TYPE_P = 2 , AV_PICTURE_TYPE_B = 3 , AV_PICTURE_TYPE_S = 4 , AV_PICTURE_TYPE_SI = 5 , AV_PICTURE_TYPE_SP = 6 , AV_PICTURE_TYPE_BI = 7 , } extern "C" { pub fn av_get_picture_type_char ( pict_type : AVPictureType ) -> libc :: c_char ; } pub type __gwchar_t = libc :: c_int ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct imaxdiv_t { pub quot : libc :: c_long , pub rem : libc :: c_long , } # [ test ] fn bindgen_test_layout_imaxdiv_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < imaxdiv_t > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( imaxdiv_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < imaxdiv_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( imaxdiv_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < imaxdiv_t > ( ) ) ) . quot as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( imaxdiv_t ) , "::" , stringify ! ( quot ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < imaxdiv_t > ( ) ) ) . rem as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( imaxdiv_t ) , "::" , stringify ! ( rem ) ) ) ; } 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 libc :: c_char , __endptr : * mut * mut libc :: c_char , __base : libc :: c_int ) -> intmax_t ; } extern "C" { pub fn strtoumax ( __nptr : * const libc :: c_char , __endptr : * mut * mut libc :: c_char , __base : libc :: c_int ) -> uintmax_t ; } extern "C" { pub fn wcstoimax ( __nptr : * const __gwchar_t , __endptr : * mut * mut __gwchar_t , __base : libc :: c_int ) -> intmax_t ; } extern "C" { pub fn wcstoumax ( __nptr : * const __gwchar_t , __endptr : * mut * mut __gwchar_t , __base : libc :: 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 ) -> libc :: c_int ; } extern "C" { pub fn __signbit ( __value : f64 ) -> libc :: c_int ; } extern "C" { pub fn __isinf ( __value : f64 ) -> libc :: c_int ; } extern "C" { pub fn __finite ( __value : f64 ) -> libc :: c_int ; } extern "C" { pub fn __isnan ( __value : f64 ) -> libc :: c_int ; } extern "C" { pub fn __iseqsig ( __x : f64 , __y : f64 ) -> libc :: c_int ; } extern "C" { pub fn __issignaling ( __value : f64 ) -> libc :: 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 libc :: c_int ) -> f64 ; } extern "C" { pub fn __frexp ( __x : f64 , __exponent : * mut libc :: c_int ) -> f64 ; } extern "C" { pub fn ldexp ( __x : f64 , __exponent : libc :: c_int ) -> f64 ; } extern "C" { pub fn __ldexp ( __x : f64 , __exponent : libc :: 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 ) -> libc :: c_int ; } extern "C" { pub fn finite ( __value : f64 ) -> libc :: 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 libc :: c_char ) -> f64 ; } extern "C" { pub fn __nan ( __tagb : * const libc :: c_char ) -> f64 ; } extern "C" { pub fn isnan ( __value : f64 ) -> libc :: 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 : libc :: c_int , arg2 : f64 ) -> f64 ; } extern "C" { pub fn __jn ( arg1 : libc :: 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 : libc :: c_int , arg2 : f64 ) -> f64 ; } extern "C" { pub fn __yn ( arg1 : libc :: 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 libc :: c_int ) -> f64 ; } extern "C" { pub fn __lgamma_r ( arg1 : f64 , __signgamp : * mut libc :: 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 : libc :: c_int ) -> f64 ; } extern "C" { pub fn __scalbn ( __x : f64 , __n : libc :: c_int ) -> f64 ; } extern "C" { pub fn ilogb ( __x : f64 ) -> libc :: c_int ; } extern "C" { pub fn __ilogb ( __x : f64 ) -> libc :: c_int ; } extern "C" { pub fn scalbln ( __x : f64 , __n : libc :: c_long ) -> f64 ; } extern "C" { pub fn __scalbln ( __x : f64 , __n : libc :: 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 libc :: c_int ) -> f64 ; } extern "C" { pub fn __remquo ( __x : f64 , __y : f64 , __quo : * mut libc :: c_int ) -> f64 ; } extern "C" { pub fn lrint ( __x : f64 ) -> libc :: c_long ; } extern "C" { pub fn __lrint ( __x : f64 ) -> libc :: c_long ; } extern "C" { pub fn llrint ( __x : f64 ) -> libc :: c_longlong ; } extern "C" { pub fn __llrint ( __x : f64 ) -> libc :: c_longlong ; } extern "C" { pub fn lround ( __x : f64 ) -> libc :: c_long ; } extern "C" { pub fn __lround ( __x : f64 ) -> libc :: c_long ; } extern "C" { pub fn llround ( __x : f64 ) -> libc :: c_longlong ; } extern "C" { pub fn __llround ( __x : f64 ) -> libc :: 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 ) -> libc :: c_int ; } extern "C" { pub fn __signbitf ( __value : f32 ) -> libc :: c_int ; } extern "C" { pub fn __isinff ( __value : f32 ) -> libc :: c_int ; } extern "C" { pub fn __finitef ( __value : f32 ) -> libc :: c_int ; } extern "C" { pub fn __isnanf ( __value : f32 ) -> libc :: c_int ; } extern "C" { pub fn __iseqsigf ( __x : f32 , __y : f32 ) -> libc :: c_int ; } extern "C" { pub fn __issignalingf ( __value : f32 ) -> libc :: 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 libc :: c_int ) -> f32 ; } extern "C" { pub fn __frexpf ( __x : f32 , __exponent : * mut libc :: c_int ) -> f32 ; } extern "C" { pub fn ldexpf ( __x : f32 , __exponent : libc :: c_int ) -> f32 ; } extern "C" { pub fn __ldexpf ( __x : f32 , __exponent : libc :: 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 ) -> libc :: c_int ; } extern "C" { pub fn finitef ( __value : f32 ) -> libc :: 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 libc :: c_char ) -> f32 ; } extern "C" { pub fn __nanf ( __tagb : * const libc :: c_char ) -> f32 ; } extern "C" { pub fn isnanf ( __value : f32 ) -> libc :: 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 : libc :: c_int , arg2 : f32 ) -> f32 ; } extern "C" { pub fn __jnf ( arg1 : libc :: 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 : libc :: c_int , arg2 : f32 ) -> f32 ; } extern "C" { pub fn __ynf ( arg1 : libc :: 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 libc :: c_int ) -> f32 ; } extern "C" { pub fn __lgammaf_r ( arg1 : f32 , __signgamp : * mut libc :: 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 : libc :: c_int ) -> f32 ; } extern "C" { pub fn __scalbnf ( __x : f32 , __n : libc :: c_int ) -> f32 ; } extern "C" { pub fn ilogbf ( __x : f32 ) -> libc :: c_int ; } extern "C" { pub fn __ilogbf ( __x : f32 ) -> libc :: c_int ; } extern "C" { pub fn scalblnf ( __x : f32 , __n : libc :: c_long ) -> f32 ; } extern "C" { pub fn __scalblnf ( __x : f32 , __n : libc :: 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 libc :: c_int ) -> f32 ; } extern "C" { pub fn __remquof ( __x : f32 , __y : f32 , __quo : * mut libc :: c_int ) -> f32 ; } extern "C" { pub fn lrintf ( __x : f32 ) -> libc :: c_long ; } extern "C" { pub fn __lrintf ( __x : f32 ) -> libc :: c_long ; } extern "C" { pub fn llrintf ( __x : f32 ) -> libc :: c_longlong ; } extern "C" { pub fn __llrintf ( __x : f32 ) -> libc :: c_longlong ; } extern "C" { pub fn lroundf ( __x : f32 ) -> libc :: c_long ; } extern "C" { pub fn __lroundf ( __x : f32 ) -> libc :: c_long ; } extern "C" { pub fn llroundf ( __x : f32 ) -> libc :: c_longlong ; } extern "C" { pub fn __llroundf ( __x : f32 ) -> libc :: 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 ) -> libc :: c_int ; } extern "C" { pub fn __signbitl ( __value : u128 ) -> libc :: c_int ; } extern "C" { pub fn __isinfl ( __value : u128 ) -> libc :: c_int ; } extern "C" { pub fn __finitel ( __value : u128 ) -> libc :: c_int ; } extern "C" { pub fn __isnanl ( __value : u128 ) -> libc :: c_int ; } extern "C" { pub fn __iseqsigl ( __x : u128 , __y : u128 ) -> libc :: c_int ; } extern "C" { pub fn __issignalingl ( __value : u128 ) -> libc :: 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 libc :: c_int ) -> u128 ; } extern "C" { pub fn __frexpl ( __x : u128 , __exponent : * mut libc :: c_int ) -> u128 ; } extern "C" { pub fn ldexpl ( __x : u128 , __exponent : libc :: c_int ) -> u128 ; } extern "C" { pub fn __ldexpl ( __x : u128 , __exponent : libc :: 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 ) -> libc :: c_int ; } extern "C" { pub fn finitel ( __value : u128 ) -> libc :: 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 libc :: c_char ) -> u128 ; } extern "C" { pub fn __nanl ( __tagb : * const libc :: c_char ) -> u128 ; } extern "C" { pub fn isnanl ( __value : u128 ) -> libc :: 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 : libc :: c_int , arg2 : u128 ) -> u128 ; } extern "C" { pub fn __jnl ( arg1 : libc :: 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 : libc :: c_int , arg2 : u128 ) -> u128 ; } extern "C" { pub fn __ynl ( arg1 : libc :: 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 libc :: c_int ) -> u128 ; } extern "C" { pub fn __lgammal_r ( arg1 : u128 , __signgamp : * mut libc :: 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 : libc :: c_int ) -> u128 ; } extern "C" { pub fn __scalbnl ( __x : u128 , __n : libc :: c_int ) -> u128 ; } extern "C" { pub fn ilogbl ( __x : u128 ) -> libc :: c_int ; } extern "C" { pub fn __ilogbl ( __x : u128 ) -> libc :: c_int ; } extern "C" { pub fn scalblnl ( __x : u128 , __n : libc :: c_long ) -> u128 ; } extern "C" { pub fn __scalblnl ( __x : u128 , __n : libc :: 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 libc :: c_int ) -> u128 ; } extern "C" { pub fn __remquol ( __x : u128 , __y : u128 , __quo : * mut libc :: c_int ) -> u128 ; } extern "C" { pub fn lrintl ( __x : u128 ) -> libc :: c_long ; } extern "C" { pub fn __lrintl ( __x : u128 ) -> libc :: c_long ; } extern "C" { pub fn llrintl ( __x : u128 ) -> libc :: c_longlong ; } extern "C" { pub fn __llrintl ( __x : u128 ) -> libc :: c_longlong ; } extern "C" { pub fn lroundl ( __x : u128 ) -> libc :: c_long ; } extern "C" { pub fn __lroundl ( __x : u128 ) -> libc :: c_long ; } extern "C" { pub fn llroundl ( __x : u128 ) -> libc :: c_longlong ; } extern "C" { pub fn __llroundl ( __x : u128 ) -> libc :: 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" { pub static mut signgam : libc :: c_int ; } pub const FP_NAN : _bindgen_ty_1 = _bindgen_ty_1 :: FP_NAN ; pub const FP_INFINITE : _bindgen_ty_1 = _bindgen_ty_1 :: FP_INFINITE ; pub const FP_ZERO : _bindgen_ty_1 = _bindgen_ty_1 :: FP_ZERO ; pub const FP_SUBNORMAL : _bindgen_ty_1 = _bindgen_ty_1 :: FP_SUBNORMAL ; pub const FP_NORMAL : _bindgen_ty_1 = _bindgen_ty_1 :: FP_NORMAL ; # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum _bindgen_ty_1 { FP_NAN = 0 , FP_INFINITE = 1 , FP_ZERO = 2 , FP_SUBNORMAL = 3 , FP_NORMAL = 4 , } pub type size_t = libc :: c_ulong ; 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 : libc :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union __mbstate_t__bindgen_ty_1 { pub __wch : libc :: c_uint , pub __wchb : [ libc :: c_char ; 4usize ] , _bindgen_union_align : u32 , } # [ test ] fn bindgen_test_layout___mbstate_t__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( __mbstate_t__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( __mbstate_t__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __mbstate_t__bindgen_ty_1 > ( ) ) ) . __wch as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __mbstate_t__bindgen_ty_1 ) , "::" , stringify ! ( __wch ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __mbstate_t__bindgen_ty_1 > ( ) ) ) . __wchb as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __mbstate_t__bindgen_ty_1 ) , "::" , stringify ! ( __wchb ) ) ) ; } # [ test ] fn bindgen_test_layout___mbstate_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __mbstate_t > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __mbstate_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __mbstate_t > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( __mbstate_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __mbstate_t > ( ) ) ) . __count as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __mbstate_t ) , "::" , stringify ! ( __count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __mbstate_t > ( ) ) ) . __value as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( __mbstate_t ) , "::" , stringify ! ( __value ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [ test ] fn bindgen_test_layout__G_fpos_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < _G_fpos_t > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( _G_fpos_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < _G_fpos_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( _G_fpos_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _G_fpos_t > ( ) ) ) . __pos as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( _G_fpos_t ) , "::" , stringify ! ( __pos ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _G_fpos_t > ( ) ) ) . __state as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( _G_fpos_t ) , "::" , stringify ! ( __state ) ) ) ; } 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 , } # [ test ] fn bindgen_test_layout__G_fpos64_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < _G_fpos64_t > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( _G_fpos64_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < _G_fpos64_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( _G_fpos64_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _G_fpos64_t > ( ) ) ) . __pos as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( _G_fpos64_t ) , "::" , stringify ! ( __pos ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _G_fpos64_t > ( ) ) ) . __state as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( _G_fpos64_t ) , "::" , stringify ! ( __state ) ) ) ; } 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 = libc :: c_void ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct _IO_FILE { pub _flags : libc :: c_int , pub _IO_read_ptr : * mut libc :: c_char , pub _IO_read_end : * mut libc :: c_char , pub _IO_read_base : * mut libc :: c_char , pub _IO_write_base : * mut libc :: c_char , pub _IO_write_ptr : * mut libc :: c_char , pub _IO_write_end : * mut libc :: c_char , pub _IO_buf_base : * mut libc :: c_char , pub _IO_buf_end : * mut libc :: c_char , pub _IO_save_base : * mut libc :: c_char , pub _IO_backup_base : * mut libc :: c_char , pub _IO_save_end : * mut libc :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : libc :: c_int , pub _flags2 : libc :: c_int , pub _old_offset : __off_t , pub _cur_column : libc :: c_ushort , pub _vtable_offset : libc :: c_schar , pub _shortbuf : [ libc :: 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 libc :: c_void , pub __pad5 : size_t , pub _mode : libc :: c_int , pub _unused2 : [ libc :: c_char ; 20usize ] , } # [ test ] fn bindgen_test_layout__IO_FILE ( ) { assert_eq ! ( :: std :: mem :: size_of :: < _IO_FILE > ( ) , 216usize , concat ! ( "Size of: " , stringify ! ( _IO_FILE ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < _IO_FILE > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( _IO_FILE ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _flags as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_read_ptr as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_read_ptr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_read_end as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_read_end ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_read_base as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_read_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_write_base as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_write_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_write_ptr as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_write_ptr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_write_end as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_write_end ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_buf_base as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_buf_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_buf_end as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_buf_end ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_save_base as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_save_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_backup_base as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_backup_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_save_end as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_save_end ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _markers as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _markers ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _chain as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _chain ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _fileno as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _fileno ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _flags2 as * const _ as usize } , 116usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _flags2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _old_offset as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _old_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _cur_column as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _cur_column ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _vtable_offset as * const _ as usize } , 130usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _vtable_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _shortbuf as * const _ as usize } , 131usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _shortbuf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _lock as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _lock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _offset as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _codecvt as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _codecvt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _wide_data as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _wide_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _freeres_list as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _freeres_list ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _freeres_buf as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _freeres_buf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . __pad5 as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( __pad5 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _mode as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _mode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _unused2 as * const _ as usize } , 196usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _unused2 ) ) ) ; } pub type off_t = __off_t ; pub type ssize_t = __ssize_t ; pub type fpos_t = __fpos_t ; extern "C" { pub static mut stdin : * mut FILE ; } extern "C" { pub static mut stdout : * mut FILE ; } extern "C" { pub static mut stderr : * mut FILE ; } extern "C" { pub fn remove ( __filename : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn rename ( __old : * const libc :: c_char , __new : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn renameat ( __oldfd : libc :: c_int , __old : * const libc :: c_char , __newfd : libc :: c_int , __new : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn tmpfile ( ) -> * mut FILE ; } extern "C" { pub fn tmpnam ( __s : * mut libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn tmpnam_r ( __s : * mut libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn tempnam ( __dir : * const libc :: c_char , __pfx : * const libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn fclose ( __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn fflush ( __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn fflush_unlocked ( __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn fopen ( __filename : * const libc :: c_char , __modes : * const libc :: c_char ) -> * mut FILE ; } extern "C" { pub fn freopen ( __filename : * const libc :: c_char , __modes : * const libc :: c_char , __stream : * mut FILE ) -> * mut FILE ; } extern "C" { pub fn fdopen ( __fd : libc :: c_int , __modes : * const libc :: c_char ) -> * mut FILE ; } extern "C" { pub fn fmemopen ( __s : * mut libc :: c_void , __len : size_t , __modes : * const libc :: c_char ) -> * mut FILE ; } extern "C" { pub fn open_memstream ( __bufloc : * mut * mut libc :: c_char , __sizeloc : * mut size_t ) -> * mut FILE ; } extern "C" { pub fn setbuf ( __stream : * mut FILE , __buf : * mut libc :: c_char ) ; } extern "C" { pub fn setvbuf ( __stream : * mut FILE , __buf : * mut libc :: c_char , __modes : libc :: c_int , __n : size_t ) -> libc :: c_int ; } extern "C" { pub fn setbuffer ( __stream : * mut FILE , __buf : * mut libc :: c_char , __size : size_t ) ; } extern "C" { pub fn setlinebuf ( __stream : * mut FILE ) ; } extern "C" { pub fn fprintf ( __stream : * mut FILE , __format : * const libc :: c_char , ... ) -> libc :: c_int ; } extern "C" { pub fn printf ( __format : * const libc :: c_char , ... ) -> libc :: c_int ; } extern "C" { pub fn sprintf ( __s : * mut libc :: c_char , __format : * const libc :: c_char , ... ) -> libc :: c_int ; } extern "C" { pub fn vfprintf ( __s : * mut FILE , __format : * const libc :: c_char , __arg : * mut __va_list_tag ) -> libc :: c_int ; } extern "C" { pub fn vprintf ( __format : * const libc :: c_char , __arg : * mut __va_list_tag ) -> libc :: c_int ; } extern "C" { pub fn vsprintf ( __s : * mut libc :: c_char , __format : * const libc :: c_char , __arg : * mut __va_list_tag ) -> libc :: c_int ; } extern "C" { pub fn snprintf ( __s : * mut libc :: c_char , __maxlen : libc :: c_ulong , __format : * const libc :: c_char , ... ) -> libc :: c_int ; } extern "C" { pub fn vsnprintf ( __s : * mut libc :: c_char , __maxlen : libc :: c_ulong , __format : * const libc :: c_char , __arg : * mut __va_list_tag ) -> libc :: c_int ; } extern "C" { pub fn vdprintf ( __fd : libc :: c_int , __fmt : * const libc :: c_char , __arg : * mut __va_list_tag ) -> libc :: c_int ; } extern "C" { pub fn dprintf ( __fd : libc :: c_int , __fmt : * const libc :: c_char , ... ) -> libc :: c_int ; } extern "C" { pub fn fscanf ( __stream : * mut FILE , __format : * const libc :: c_char , ... ) -> libc :: c_int ; } extern "C" { pub fn scanf ( __format : * const libc :: c_char , ... ) -> libc :: c_int ; } extern "C" { pub fn sscanf ( __s : * const libc :: c_char , __format : * const libc :: c_char , ... ) -> libc :: c_int ; } extern "C" { # [ link_name = "\u{1}__isoc99_fscanf" ] pub fn fscanf1 ( __stream : * mut FILE , __format : * const libc :: c_char , ... ) -> libc :: c_int ; } extern "C" { # [ link_name = "\u{1}__isoc99_scanf" ] pub fn scanf1 ( __format : * const libc :: c_char , ... ) -> libc :: c_int ; } extern "C" { # [ link_name = "\u{1}__isoc99_sscanf" ] pub fn sscanf1 ( __s : * const libc :: c_char , __format : * const libc :: c_char , ... ) -> libc :: c_int ; } extern "C" { pub fn vfscanf ( __s : * mut FILE , __format : * const libc :: c_char , __arg : * mut __va_list_tag ) -> libc :: c_int ; } extern "C" { pub fn vscanf ( __format : * const libc :: c_char , __arg : * mut __va_list_tag ) -> libc :: c_int ; } extern "C" { pub fn vsscanf ( __s : * const libc :: c_char , __format : * const libc :: c_char , __arg : * mut __va_list_tag ) -> libc :: c_int ; } extern "C" { # [ link_name = "\u{1}__isoc99_vfscanf" ] pub fn vfscanf1 ( __s : * mut FILE , __format : * const libc :: c_char , __arg : * mut __va_list_tag ) -> libc :: c_int ; } extern "C" { # [ link_name = "\u{1}__isoc99_vscanf" ] pub fn vscanf1 ( __format : * const libc :: c_char , __arg : * mut __va_list_tag ) -> libc :: c_int ; } extern "C" { # [ link_name = "\u{1}__isoc99_vsscanf" ] pub fn vsscanf1 ( __s : * const libc :: c_char , __format : * const libc :: c_char , __arg : * mut __va_list_tag ) -> libc :: c_int ; } extern "C" { pub fn fgetc ( __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn getc ( __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn getchar ( ) -> libc :: c_int ; } extern "C" { pub fn getc_unlocked ( __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn getchar_unlocked ( ) -> libc :: c_int ; } extern "C" { pub fn fgetc_unlocked ( __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn fputc ( __c : libc :: c_int , __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn putc ( __c : libc :: c_int , __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn putchar ( __c : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn fputc_unlocked ( __c : libc :: c_int , __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn putc_unlocked ( __c : libc :: c_int , __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn putchar_unlocked ( __c : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn getw ( __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn putw ( __w : libc :: c_int , __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn fgets ( __s : * mut libc :: c_char , __n : libc :: c_int , __stream : * mut FILE ) -> * mut libc :: c_char ; } extern "C" { pub fn __getdelim ( __lineptr : * mut * mut libc :: c_char , __n : * mut size_t , __delimiter : libc :: c_int , __stream : * mut FILE ) -> __ssize_t ; } extern "C" { pub fn getdelim ( __lineptr : * mut * mut libc :: c_char , __n : * mut size_t , __delimiter : libc :: c_int , __stream : * mut FILE ) -> __ssize_t ; } extern "C" { pub fn getline ( __lineptr : * mut * mut libc :: c_char , __n : * mut size_t , __stream : * mut FILE ) -> __ssize_t ; } extern "C" { pub fn fputs ( __s : * const libc :: c_char , __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn puts ( __s : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn ungetc ( __c : libc :: c_int , __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn fread ( __ptr : * mut libc :: c_void , __size : libc :: c_ulong , __n : libc :: c_ulong , __stream : * mut FILE ) -> libc :: c_ulong ; } extern "C" { pub fn fwrite ( __ptr : * const libc :: c_void , __size : libc :: c_ulong , __n : libc :: c_ulong , __s : * mut FILE ) -> libc :: c_ulong ; } extern "C" { pub fn fread_unlocked ( __ptr : * mut libc :: c_void , __size : size_t , __n : size_t , __stream : * mut FILE ) -> size_t ; } extern "C" { pub fn fwrite_unlocked ( __ptr : * const libc :: c_void , __size : size_t , __n : size_t , __stream : * mut FILE ) -> size_t ; } extern "C" { pub fn fseek ( __stream : * mut FILE , __off : libc :: c_long , __whence : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn ftell ( __stream : * mut FILE ) -> libc :: c_long ; } extern "C" { pub fn rewind ( __stream : * mut FILE ) ; } extern "C" { pub fn fseeko ( __stream : * mut FILE , __off : __off_t , __whence : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn ftello ( __stream : * mut FILE ) -> __off_t ; } extern "C" { pub fn fgetpos ( __stream : * mut FILE , __pos : * mut fpos_t ) -> libc :: c_int ; } extern "C" { pub fn fsetpos ( __stream : * mut FILE , __pos : * const fpos_t ) -> libc :: c_int ; } extern "C" { pub fn clearerr ( __stream : * mut FILE ) ; } extern "C" { pub fn feof ( __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn ferror ( __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn clearerr_unlocked ( __stream : * mut FILE ) ; } extern "C" { pub fn feof_unlocked ( __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn ferror_unlocked ( __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn perror ( __s : * const libc :: c_char ) ; } extern "C" { pub static mut sys_nerr : libc :: c_int ; } extern "C" { pub static mut sys_errlist : [ * const libc :: c_char ; 0usize ] ; } extern "C" { pub fn fileno ( __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn fileno_unlocked ( __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn popen ( __command : * const libc :: c_char , __modes : * const libc :: c_char ) -> * mut FILE ; } extern "C" { pub fn pclose ( __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn ctermid ( __s : * mut libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn flockfile ( __stream : * mut FILE ) ; } extern "C" { pub fn ftrylockfile ( __stream : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn funlockfile ( __stream : * mut FILE ) ; } extern "C" { pub fn __uflow ( arg1 : * mut FILE ) -> libc :: c_int ; } extern "C" { pub fn __overflow ( arg1 : * mut FILE , arg2 : libc :: c_int ) -> libc :: c_int ; } pub type wchar_t = libc :: c_int ; # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum idtype_t { P_ALL = 0 , P_PID = 1 , P_PGID = 2 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct div_t { pub quot : libc :: c_int , pub rem : libc :: c_int , } # [ test ] fn bindgen_test_layout_div_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < div_t > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( div_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < div_t > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( div_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < div_t > ( ) ) ) . quot as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( div_t ) , "::" , stringify ! ( quot ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < div_t > ( ) ) ) . rem as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( div_t ) , "::" , stringify ! ( rem ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct ldiv_t { pub quot : libc :: c_long , pub rem : libc :: c_long , } # [ test ] fn bindgen_test_layout_ldiv_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ldiv_t > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( ldiv_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ldiv_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ldiv_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ldiv_t > ( ) ) ) . quot as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ldiv_t ) , "::" , stringify ! ( quot ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ldiv_t > ( ) ) ) . rem as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ldiv_t ) , "::" , stringify ! ( rem ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct lldiv_t { pub quot : libc :: c_longlong , pub rem : libc :: c_longlong , } # [ test ] fn bindgen_test_layout_lldiv_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < lldiv_t > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( lldiv_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < lldiv_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( lldiv_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < lldiv_t > ( ) ) ) . quot as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( lldiv_t ) , "::" , stringify ! ( quot ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < lldiv_t > ( ) ) ) . rem as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( lldiv_t ) , "::" , stringify ! ( rem ) ) ) ; } extern "C" { pub fn __ctype_get_mb_cur_max ( ) -> size_t ; } extern "C" { pub fn atof ( __nptr : * const libc :: c_char ) -> f64 ; } extern "C" { pub fn atoi ( __nptr : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn atol ( __nptr : * const libc :: c_char ) -> libc :: c_long ; } extern "C" { pub fn atoll ( __nptr : * const libc :: c_char ) -> libc :: c_longlong ; } extern "C" { pub fn strtod ( __nptr : * const libc :: c_char , __endptr : * mut * mut libc :: c_char ) -> f64 ; } extern "C" { pub fn strtof ( __nptr : * const libc :: c_char , __endptr : * mut * mut libc :: c_char ) -> f32 ; } extern "C" { pub fn strtold ( __nptr : * const libc :: c_char , __endptr : * mut * mut libc :: c_char ) -> u128 ; } extern "C" { pub fn strtol ( __nptr : * const libc :: c_char , __endptr : * mut * mut libc :: c_char , __base : libc :: c_int ) -> libc :: c_long ; } extern "C" { pub fn strtoul ( __nptr : * const libc :: c_char , __endptr : * mut * mut libc :: c_char , __base : libc :: c_int ) -> libc :: c_ulong ; } extern "C" { pub fn strtoq ( __nptr : * const libc :: c_char , __endptr : * mut * mut libc :: c_char , __base : libc :: c_int ) -> libc :: c_longlong ; } extern "C" { pub fn strtouq ( __nptr : * const libc :: c_char , __endptr : * mut * mut libc :: c_char , __base : libc :: c_int ) -> libc :: c_ulonglong ; } extern "C" { pub fn strtoll ( __nptr : * const libc :: c_char , __endptr : * mut * mut libc :: c_char , __base : libc :: c_int ) -> libc :: c_longlong ; } extern "C" { pub fn strtoull ( __nptr : * const libc :: c_char , __endptr : * mut * mut libc :: c_char , __base : libc :: c_int ) -> libc :: c_ulonglong ; } extern "C" { pub fn l64a ( __n : libc :: c_long ) -> * mut libc :: c_char ; } extern "C" { pub fn a64l ( __s : * const libc :: c_char ) -> libc :: 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 = libc :: c_ulong ; pub type ushort = libc :: c_ushort ; pub type uint = libc :: c_uint ; pub type u_int8_t = __uint8_t ; pub type u_int16_t = __uint16_t ; pub type u_int32_t = __uint32_t ; pub type u_int64_t = __uint64_t ; pub type register_t = libc :: c_long ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct __sigset_t { pub __val : [ libc :: c_ulong ; 16usize ] , } # [ test ] fn bindgen_test_layout___sigset_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __sigset_t > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( __sigset_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __sigset_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __sigset_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __sigset_t > ( ) ) ) . __val as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __sigset_t ) , "::" , stringify ! ( __val ) ) ) ; } pub type sigset_t = __sigset_t ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct timeval { pub tv_sec : __time_t , pub tv_usec : __suseconds_t , } # [ test ] fn bindgen_test_layout_timeval ( ) { assert_eq ! ( :: std :: mem :: size_of :: < timeval > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( timeval ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < timeval > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( timeval ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < timeval > ( ) ) ) . tv_sec as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( timeval ) , "::" , stringify ! ( tv_sec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < timeval > ( ) ) ) . tv_usec as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( timeval ) , "::" , stringify ! ( tv_usec ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [ test ] fn bindgen_test_layout_timespec ( ) { assert_eq ! ( :: std :: mem :: size_of :: < timespec > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( timespec ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < timespec > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( timespec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < timespec > ( ) ) ) . tv_sec as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( timespec ) , "::" , stringify ! ( tv_sec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < timespec > ( ) ) ) . tv_nsec as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( timespec ) , "::" , stringify ! ( tv_nsec ) ) ) ; } pub type suseconds_t = __suseconds_t ; pub type __fd_mask = libc :: c_long ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct fd_set { pub __fds_bits : [ __fd_mask ; 16usize ] , } # [ test ] fn bindgen_test_layout_fd_set ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fd_set > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( fd_set ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fd_set > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( fd_set ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fd_set > ( ) ) ) . __fds_bits as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fd_set ) , "::" , stringify ! ( __fds_bits ) ) ) ; } pub type fd_mask = __fd_mask ; extern "C" { pub fn select ( __nfds : libc :: c_int , __readfds : * mut fd_set , __writefds : * mut fd_set , __exceptfds : * mut fd_set , __timeout : * mut timeval ) -> libc :: c_int ; } extern "C" { pub fn pselect ( __nfds : libc :: c_int , __readfds : * mut fd_set , __writefds : * mut fd_set , __exceptfds : * mut fd_set , __timeout : * const timespec , __sigmask : * const __sigset_t ) -> libc :: 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 , PartialEq , Eq ) ] pub struct __pthread_internal_list { pub __prev : * mut __pthread_internal_list , pub __next : * mut __pthread_internal_list , } # [ test ] fn bindgen_test_layout___pthread_internal_list ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_internal_list > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( __pthread_internal_list ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_internal_list > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_internal_list ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_internal_list > ( ) ) ) . __prev as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_internal_list ) , "::" , stringify ! ( __prev ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_internal_list > ( ) ) ) . __next as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_internal_list ) , "::" , stringify ! ( __next ) ) ) ; } pub type __pthread_list_t = __pthread_internal_list ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct __pthread_internal_slist { pub __next : * mut __pthread_internal_slist , } # [ test ] fn bindgen_test_layout___pthread_internal_slist ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_internal_slist > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __pthread_internal_slist ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_internal_slist > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_internal_slist ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_internal_slist > ( ) ) ) . __next as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_internal_slist ) , "::" , stringify ! ( __next ) ) ) ; } pub type __pthread_slist_t = __pthread_internal_slist ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct __pthread_mutex_s { pub __lock : libc :: c_int , pub __count : libc :: c_uint , pub __owner : libc :: c_int , pub __nusers : libc :: c_uint , pub __kind : libc :: c_int , pub __spins : libc :: c_short , pub __elision : libc :: c_short , pub __list : __pthread_list_t , } # [ test ] fn bindgen_test_layout___pthread_mutex_s ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_mutex_s > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( __pthread_mutex_s ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_mutex_s > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_mutex_s ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __lock as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __lock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __count as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __owner as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __owner ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __nusers as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __nusers ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __kind as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __kind ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __spins as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __spins ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __elision as * const _ as usize } , 22usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __elision ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __list as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __list ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct __pthread_rwlock_arch_t { pub __readers : libc :: c_uint , pub __writers : libc :: c_uint , pub __wrphase_futex : libc :: c_uint , pub __writers_futex : libc :: c_uint , pub __pad3 : libc :: c_uint , pub __pad4 : libc :: c_uint , pub __cur_writer : libc :: c_int , pub __shared : libc :: c_int , pub __rwelision : libc :: c_schar , pub __pad1 : [ libc :: c_uchar ; 7usize ] , pub __pad2 : libc :: c_ulong , pub __flags : libc :: c_uint , } # [ test ] fn bindgen_test_layout___pthread_rwlock_arch_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_rwlock_arch_t > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( __pthread_rwlock_arch_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_rwlock_arch_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_rwlock_arch_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __readers as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __readers ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __writers as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __writers ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __wrphase_futex as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __wrphase_futex ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __writers_futex as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __writers_futex ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __pad3 as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __pad3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __pad4 as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __pad4 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __cur_writer as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __cur_writer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __shared as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __shared ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __rwelision as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __rwelision ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __pad1 as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __pad1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __pad2 as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __pad2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __flags as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __flags ) ) ) ; } # [ 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 : [ libc :: c_uint ; 2usize ] , pub __g_size : [ libc :: c_uint ; 2usize ] , pub __g1_orig_size : libc :: c_uint , pub __wrefs : libc :: c_uint , pub __g_signals : [ libc :: c_uint ; 2usize ] , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union __pthread_cond_s__bindgen_ty_1 { pub __wseq : libc :: c_ulonglong , pub __wseq32 : __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 , _bindgen_union_align : u64 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 { pub __low : libc :: c_uint , pub __high : libc :: c_uint , } # [ test ] fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . __low as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( __low ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . __high as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( __high ) ) ) ; } # [ test ] fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_cond_s__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __pthread_cond_s__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_cond_s__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_cond_s__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_1 > ( ) ) ) . __wseq as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_1 ) , "::" , stringify ! ( __wseq ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_1 > ( ) ) ) . __wseq32 as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_1 ) , "::" , stringify ! ( __wseq32 ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union __pthread_cond_s__bindgen_ty_2 { pub __g1_start : libc :: c_ulonglong , pub __g1_start32 : __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 , _bindgen_union_align : u64 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 { pub __low : libc :: c_uint , pub __high : libc :: c_uint , } # [ test ] fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . __low as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( __low ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . __high as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( __high ) ) ) ; } # [ test ] fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_cond_s__bindgen_ty_2 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __pthread_cond_s__bindgen_ty_2 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_cond_s__bindgen_ty_2 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_cond_s__bindgen_ty_2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_2 > ( ) ) ) . __g1_start as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_2 ) , "::" , stringify ! ( __g1_start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_2 > ( ) ) ) . __g1_start32 as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_2 ) , "::" , stringify ! ( __g1_start32 ) ) ) ; } # [ test ] fn bindgen_test_layout___pthread_cond_s ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_cond_s > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( __pthread_cond_s ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_cond_s > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_cond_s ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s > ( ) ) ) . __g_refs as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s ) , "::" , stringify ! ( __g_refs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s > ( ) ) ) . __g_size as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s ) , "::" , stringify ! ( __g_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s > ( ) ) ) . __g1_orig_size as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s ) , "::" , stringify ! ( __g1_orig_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s > ( ) ) ) . __wrefs as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s ) , "::" , stringify ! ( __wrefs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s > ( ) ) ) . __g_signals as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s ) , "::" , stringify ! ( __g_signals ) ) ) ; } pub type pthread_t = libc :: c_ulong ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_mutexattr_t { pub __size : [ libc :: c_char ; 4usize ] , pub __align : libc :: c_int , _bindgen_union_align : u32 , } # [ test ] fn bindgen_test_layout_pthread_mutexattr_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_mutexattr_t > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( pthread_mutexattr_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_mutexattr_t > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( pthread_mutexattr_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_mutexattr_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_mutexattr_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_mutexattr_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_mutexattr_t ) , "::" , stringify ! ( __align ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_condattr_t { pub __size : [ libc :: c_char ; 4usize ] , pub __align : libc :: c_int , _bindgen_union_align : u32 , } # [ test ] fn bindgen_test_layout_pthread_condattr_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_condattr_t > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( pthread_condattr_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_condattr_t > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( pthread_condattr_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_condattr_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_condattr_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_condattr_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_condattr_t ) , "::" , stringify ! ( __align ) ) ) ; } pub type pthread_key_t = libc :: c_uint ; pub type pthread_once_t = libc :: c_int ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_attr_t { pub __size : [ libc :: c_char ; 56usize ] , pub __align : libc :: c_long , _bindgen_union_align : [ u64 ; 7usize ] , } # [ test ] fn bindgen_test_layout_pthread_attr_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_attr_t > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( pthread_attr_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_attr_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( pthread_attr_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_attr_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_attr_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_attr_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_attr_t ) , "::" , stringify ! ( __align ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_mutex_t { pub __data : __pthread_mutex_s , pub __size : [ libc :: c_char ; 40usize ] , pub __align : libc :: c_long , _bindgen_union_align : [ u64 ; 5usize ] , } # [ test ] fn bindgen_test_layout_pthread_mutex_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_mutex_t > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( pthread_mutex_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_mutex_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( pthread_mutex_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_mutex_t > ( ) ) ) . __data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_mutex_t ) , "::" , stringify ! ( __data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_mutex_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_mutex_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_mutex_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_mutex_t ) , "::" , stringify ! ( __align ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_cond_t { pub __data : __pthread_cond_s , pub __size : [ libc :: c_char ; 48usize ] , pub __align : libc :: c_longlong , _bindgen_union_align : [ u64 ; 6usize ] , } # [ test ] fn bindgen_test_layout_pthread_cond_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_cond_t > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( pthread_cond_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_cond_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( pthread_cond_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_cond_t > ( ) ) ) . __data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_cond_t ) , "::" , stringify ! ( __data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_cond_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_cond_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_cond_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_cond_t ) , "::" , stringify ! ( __align ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_rwlock_t { pub __data : __pthread_rwlock_arch_t , pub __size : [ libc :: c_char ; 56usize ] , pub __align : libc :: c_long , _bindgen_union_align : [ u64 ; 7usize ] , } # [ test ] fn bindgen_test_layout_pthread_rwlock_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_rwlock_t > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( pthread_rwlock_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_rwlock_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( pthread_rwlock_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_rwlock_t > ( ) ) ) . __data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_rwlock_t ) , "::" , stringify ! ( __data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_rwlock_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_rwlock_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_rwlock_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_rwlock_t ) , "::" , stringify ! ( __align ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_rwlockattr_t { pub __size : [ libc :: c_char ; 8usize ] , pub __align : libc :: c_long , _bindgen_union_align : u64 , } # [ test ] fn bindgen_test_layout_pthread_rwlockattr_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_rwlockattr_t > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( pthread_rwlockattr_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_rwlockattr_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( pthread_rwlockattr_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_rwlockattr_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_rwlockattr_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_rwlockattr_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_rwlockattr_t ) , "::" , stringify ! ( __align ) ) ) ; } pub type pthread_spinlock_t = libc :: c_int ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_barrier_t { pub __size : [ libc :: c_char ; 32usize ] , pub __align : libc :: c_long , _bindgen_union_align : [ u64 ; 4usize ] , } # [ test ] fn bindgen_test_layout_pthread_barrier_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_barrier_t > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( pthread_barrier_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_barrier_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( pthread_barrier_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_barrier_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_barrier_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_barrier_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_barrier_t ) , "::" , stringify ! ( __align ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_barrierattr_t { pub __size : [ libc :: c_char ; 4usize ] , pub __align : libc :: c_int , _bindgen_union_align : u32 , } # [ test ] fn bindgen_test_layout_pthread_barrierattr_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_barrierattr_t > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( pthread_barrierattr_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_barrierattr_t > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( pthread_barrierattr_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_barrierattr_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_barrierattr_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_barrierattr_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_barrierattr_t ) , "::" , stringify ! ( __align ) ) ) ; } extern "C" { pub fn random ( ) -> libc :: c_long ; } extern "C" { pub fn srandom ( __seed : libc :: c_uint ) ; } extern "C" { pub fn initstate ( __seed : libc :: c_uint , __statebuf : * mut libc :: c_char , __statelen : size_t ) -> * mut libc :: c_char ; } extern "C" { pub fn setstate ( __statebuf : * mut libc :: c_char ) -> * mut libc :: c_char ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct random_data { pub fptr : * mut i32 , pub rptr : * mut i32 , pub state : * mut i32 , pub rand_type : libc :: c_int , pub rand_deg : libc :: c_int , pub rand_sep : libc :: c_int , pub end_ptr : * mut i32 , } # [ test ] fn bindgen_test_layout_random_data ( ) { assert_eq ! ( :: std :: mem :: size_of :: < random_data > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( random_data ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < random_data > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( random_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < random_data > ( ) ) ) . fptr as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( random_data ) , "::" , stringify ! ( fptr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < random_data > ( ) ) ) . rptr as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( random_data ) , "::" , stringify ! ( rptr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < random_data > ( ) ) ) . state as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( random_data ) , "::" , stringify ! ( state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < random_data > ( ) ) ) . rand_type as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( random_data ) , "::" , stringify ! ( rand_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < random_data > ( ) ) ) . rand_deg as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( random_data ) , "::" , stringify ! ( rand_deg ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < random_data > ( ) ) ) . rand_sep as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( random_data ) , "::" , stringify ! ( rand_sep ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < random_data > ( ) ) ) . end_ptr as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( random_data ) , "::" , stringify ! ( end_ptr ) ) ) ; } extern "C" { pub fn random_r ( __buf : * mut random_data , __result : * mut i32 ) -> libc :: c_int ; } extern "C" { pub fn srandom_r ( __seed : libc :: c_uint , __buf : * mut random_data ) -> libc :: c_int ; } extern "C" { pub fn initstate_r ( __seed : libc :: c_uint , __statebuf : * mut libc :: c_char , __statelen : size_t , __buf : * mut random_data ) -> libc :: c_int ; } extern "C" { pub fn setstate_r ( __statebuf : * mut libc :: c_char , __buf : * mut random_data ) -> libc :: c_int ; } extern "C" { pub fn rand ( ) -> libc :: c_int ; } extern "C" { pub fn srand ( __seed : libc :: c_uint ) ; } extern "C" { pub fn rand_r ( __seed : * mut libc :: c_uint ) -> libc :: c_int ; } extern "C" { pub fn drand48 ( ) -> f64 ; } extern "C" { pub fn erand48 ( __xsubi : * mut libc :: c_ushort ) -> f64 ; } extern "C" { pub fn lrand48 ( ) -> libc :: c_long ; } extern "C" { pub fn nrand48 ( __xsubi : * mut libc :: c_ushort ) -> libc :: c_long ; } extern "C" { pub fn mrand48 ( ) -> libc :: c_long ; } extern "C" { pub fn jrand48 ( __xsubi : * mut libc :: c_ushort ) -> libc :: c_long ; } extern "C" { pub fn srand48 ( __seedval : libc :: c_long ) ; } extern "C" { pub fn seed48 ( __seed16v : * mut libc :: c_ushort ) -> * mut libc :: c_ushort ; } extern "C" { pub fn lcong48 ( __param : * mut libc :: c_ushort ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct drand48_data { pub __x : [ libc :: c_ushort ; 3usize ] , pub __old_x : [ libc :: c_ushort ; 3usize ] , pub __c : libc :: c_ushort , pub __init : libc :: c_ushort , pub __a : libc :: c_ulonglong , } # [ test ] fn bindgen_test_layout_drand48_data ( ) { assert_eq ! ( :: std :: mem :: size_of :: < drand48_data > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( drand48_data ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < drand48_data > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( drand48_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < drand48_data > ( ) ) ) . __x as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( drand48_data ) , "::" , stringify ! ( __x ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < drand48_data > ( ) ) ) . __old_x as * const _ as usize } , 6usize , concat ! ( "Offset of field: " , stringify ! ( drand48_data ) , "::" , stringify ! ( __old_x ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < drand48_data > ( ) ) ) . __c as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( drand48_data ) , "::" , stringify ! ( __c ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < drand48_data > ( ) ) ) . __init as * const _ as usize } , 14usize , concat ! ( "Offset of field: " , stringify ! ( drand48_data ) , "::" , stringify ! ( __init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < drand48_data > ( ) ) ) . __a as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( drand48_data ) , "::" , stringify ! ( __a ) ) ) ; } extern "C" { pub fn drand48_r ( __buffer : * mut drand48_data , __result : * mut f64 ) -> libc :: c_int ; } extern "C" { pub fn erand48_r ( __xsubi : * mut libc :: c_ushort , __buffer : * mut drand48_data , __result : * mut f64 ) -> libc :: c_int ; } extern "C" { pub fn lrand48_r ( __buffer : * mut drand48_data , __result : * mut libc :: c_long ) -> libc :: c_int ; } extern "C" { pub fn nrand48_r ( __xsubi : * mut libc :: c_ushort , __buffer : * mut drand48_data , __result : * mut libc :: c_long ) -> libc :: c_int ; } extern "C" { pub fn mrand48_r ( __buffer : * mut drand48_data , __result : * mut libc :: c_long ) -> libc :: c_int ; } extern "C" { pub fn jrand48_r ( __xsubi : * mut libc :: c_ushort , __buffer : * mut drand48_data , __result : * mut libc :: c_long ) -> libc :: c_int ; } extern "C" { pub fn srand48_r ( __seedval : libc :: c_long , __buffer : * mut drand48_data ) -> libc :: c_int ; } extern "C" { pub fn seed48_r ( __seed16v : * mut libc :: c_ushort , __buffer : * mut drand48_data ) -> libc :: c_int ; } extern "C" { pub fn lcong48_r ( __param : * mut libc :: c_ushort , __buffer : * mut drand48_data ) -> libc :: c_int ; } extern "C" { pub fn malloc ( __size : libc :: c_ulong ) -> * mut libc :: c_void ; } extern "C" { pub fn calloc ( __nmemb : libc :: c_ulong , __size : libc :: c_ulong ) -> * mut libc :: c_void ; } extern "C" { pub fn realloc ( __ptr : * mut libc :: c_void , __size : libc :: c_ulong ) -> * mut libc :: c_void ; } extern "C" { pub fn reallocarray ( __ptr : * mut libc :: c_void , __nmemb : size_t , __size : size_t ) -> * mut libc :: c_void ; } extern "C" { pub fn free ( __ptr : * mut libc :: c_void ) ; } extern "C" { pub fn alloca ( __size : libc :: c_ulong ) -> * mut libc :: c_void ; } extern "C" { pub fn valloc ( __size : size_t ) -> * mut libc :: c_void ; } extern "C" { pub fn posix_memalign ( __memptr : * mut * mut libc :: c_void , __alignment : size_t , __size : size_t ) -> libc :: c_int ; } extern "C" { pub fn aligned_alloc ( __alignment : size_t , __size : size_t ) -> * mut libc :: c_void ; } extern "C" { pub fn abort ( ) ; } extern "C" { pub fn atexit ( __func : :: std :: option :: Option < unsafe extern "C" fn ( ) > ) -> libc :: c_int ; } extern "C" { pub fn at_quick_exit ( __func : :: std :: option :: Option < unsafe extern "C" fn ( ) > ) -> libc :: c_int ; } extern "C" { pub fn on_exit ( __func : :: std :: option :: Option < unsafe extern "C" fn ( __status : libc :: c_int , __arg : * mut libc :: c_void ) > , __arg : * mut libc :: c_void ) -> libc :: c_int ; } extern "C" { pub fn exit ( __status : libc :: c_int ) ; } extern "C" { pub fn quick_exit ( __status : libc :: c_int ) ; } extern "C" { pub fn _Exit ( __status : libc :: c_int ) ; } extern "C" { pub fn getenv ( __name : * const libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn putenv ( __string : * mut libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn setenv ( __name : * const libc :: c_char , __value : * const libc :: c_char , __replace : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn unsetenv ( __name : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn clearenv ( ) -> libc :: c_int ; } extern "C" { pub fn mktemp ( __template : * mut libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn mkstemp ( __template : * mut libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn mkstemps ( __template : * mut libc :: c_char , __suffixlen : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn mkdtemp ( __template : * mut libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn system ( __command : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn realpath ( __name : * const libc :: c_char , __resolved : * mut libc :: c_char ) -> * mut libc :: c_char ; } pub type __compar_fn_t = :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const libc :: c_void , arg2 : * const libc :: c_void ) -> libc :: c_int > ; extern "C" { pub fn bsearch ( __key : * const libc :: c_void , __base : * const libc :: c_void , __nmemb : size_t , __size : size_t , __compar : __compar_fn_t ) -> * mut libc :: c_void ; } extern "C" { pub fn qsort ( __base : * mut libc :: c_void , __nmemb : size_t , __size : size_t , __compar : __compar_fn_t ) ; } extern "C" { pub fn abs ( __x : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn labs ( __x : libc :: c_long ) -> libc :: c_long ; } extern "C" { pub fn llabs ( __x : libc :: c_longlong ) -> libc :: c_longlong ; } extern "C" { pub fn div ( __numer : libc :: c_int , __denom : libc :: c_int ) -> div_t ; } extern "C" { pub fn ldiv ( __numer : libc :: c_long , __denom : libc :: c_long ) -> ldiv_t ; } extern "C" { pub fn lldiv ( __numer : libc :: c_longlong , __denom : libc :: c_longlong ) -> lldiv_t ; } extern "C" { pub fn ecvt ( __value : f64 , __ndigit : libc :: c_int , __decpt : * mut libc :: c_int , __sign : * mut libc :: c_int ) -> * mut libc :: c_char ; } extern "C" { pub fn fcvt ( __value : f64 , __ndigit : libc :: c_int , __decpt : * mut libc :: c_int , __sign : * mut libc :: c_int ) -> * mut libc :: c_char ; } extern "C" { pub fn gcvt ( __value : f64 , __ndigit : libc :: c_int , __buf : * mut libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn qecvt ( __value : u128 , __ndigit : libc :: c_int , __decpt : * mut libc :: c_int , __sign : * mut libc :: c_int ) -> * mut libc :: c_char ; } extern "C" { pub fn qfcvt ( __value : u128 , __ndigit : libc :: c_int , __decpt : * mut libc :: c_int , __sign : * mut libc :: c_int ) -> * mut libc :: c_char ; } extern "C" { pub fn qgcvt ( __value : u128 , __ndigit : libc :: c_int , __buf : * mut libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn ecvt_r ( __value : f64 , __ndigit : libc :: c_int , __decpt : * mut libc :: c_int , __sign : * mut libc :: c_int , __buf : * mut libc :: c_char , __len : size_t ) -> libc :: c_int ; } extern "C" { pub fn fcvt_r ( __value : f64 , __ndigit : libc :: c_int , __decpt : * mut libc :: c_int , __sign : * mut libc :: c_int , __buf : * mut libc :: c_char , __len : size_t ) -> libc :: c_int ; } extern "C" { pub fn qecvt_r ( __value : u128 , __ndigit : libc :: c_int , __decpt : * mut libc :: c_int , __sign : * mut libc :: c_int , __buf : * mut libc :: c_char , __len : size_t ) -> libc :: c_int ; } extern "C" { pub fn qfcvt_r ( __value : u128 , __ndigit : libc :: c_int , __decpt : * mut libc :: c_int , __sign : * mut libc :: c_int , __buf : * mut libc :: c_char , __len : size_t ) -> libc :: c_int ; } extern "C" { pub fn mblen ( __s : * const libc :: c_char , __n : size_t ) -> libc :: c_int ; } extern "C" { pub fn mbtowc ( __pwc : * mut wchar_t , __s : * const libc :: c_char , __n : size_t ) -> libc :: c_int ; } extern "C" { pub fn wctomb ( __s : * mut libc :: c_char , __wchar : wchar_t ) -> libc :: c_int ; } extern "C" { pub fn mbstowcs ( __pwcs : * mut wchar_t , __s : * const libc :: c_char , __n : size_t ) -> size_t ; } extern "C" { pub fn wcstombs ( __s : * mut libc :: c_char , __pwcs : * const wchar_t , __n : size_t ) -> size_t ; } extern "C" { pub fn rpmatch ( __response : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn getsubopt ( __optionp : * mut * mut libc :: c_char , __tokens : * const * mut libc :: c_char , __valuep : * mut * mut libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn getloadavg ( __loadavg : * mut f64 , __nelem : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn memcpy ( __dest : * mut libc :: c_void , __src : * const libc :: c_void , __n : libc :: c_ulong ) -> * mut libc :: c_void ; } extern "C" { pub fn memmove ( __dest : * mut libc :: c_void , __src : * const libc :: c_void , __n : libc :: c_ulong ) -> * mut libc :: c_void ; } extern "C" { pub fn memccpy ( __dest : * mut libc :: c_void , __src : * const libc :: c_void , __c : libc :: c_int , __n : libc :: c_ulong ) -> * mut libc :: c_void ; } extern "C" { pub fn memset ( __s : * mut libc :: c_void , __c : libc :: c_int , __n : libc :: c_ulong ) -> * mut libc :: c_void ; } extern "C" { pub fn memcmp ( __s1 : * const libc :: c_void , __s2 : * const libc :: c_void , __n : libc :: c_ulong ) -> libc :: c_int ; } extern "C" { pub fn memchr ( __s : * const libc :: c_void , __c : libc :: c_int , __n : libc :: c_ulong ) -> * mut libc :: c_void ; } extern "C" { pub fn strcpy ( __dest : * mut libc :: c_char , __src : * const libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn strncpy ( __dest : * mut libc :: c_char , __src : * const libc :: c_char , __n : libc :: c_ulong ) -> * mut libc :: c_char ; } extern "C" { pub fn strcat ( __dest : * mut libc :: c_char , __src : * const libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn strncat ( __dest : * mut libc :: c_char , __src : * const libc :: c_char , __n : libc :: c_ulong ) -> * mut libc :: c_char ; } extern "C" { pub fn strcmp ( __s1 : * const libc :: c_char , __s2 : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn strncmp ( __s1 : * const libc :: c_char , __s2 : * const libc :: c_char , __n : libc :: c_ulong ) -> libc :: c_int ; } extern "C" { pub fn strcoll ( __s1 : * const libc :: c_char , __s2 : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn strxfrm ( __dest : * mut libc :: c_char , __src : * const libc :: c_char , __n : libc :: c_ulong ) -> libc :: c_ulong ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct __locale_struct { pub __locales : [ * mut __locale_data ; 13usize ] , pub __ctype_b : * const libc :: c_ushort , pub __ctype_tolower : * const libc :: c_int , pub __ctype_toupper : * const libc :: c_int , pub __names : [ * const libc :: c_char ; 13usize ] , } # [ test ] fn bindgen_test_layout___locale_struct ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __locale_struct > ( ) , 232usize , concat ! ( "Size of: " , stringify ! ( __locale_struct ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __locale_struct > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __locale_struct ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __locale_struct > ( ) ) ) . __locales as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __locale_struct ) , "::" , stringify ! ( __locales ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __locale_struct > ( ) ) ) . __ctype_b as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( __locale_struct ) , "::" , stringify ! ( __ctype_b ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __locale_struct > ( ) ) ) . __ctype_tolower as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( __locale_struct ) , "::" , stringify ! ( __ctype_tolower ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __locale_struct > ( ) ) ) . __ctype_toupper as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( __locale_struct ) , "::" , stringify ! ( __ctype_toupper ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __locale_struct > ( ) ) ) . __names as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( __locale_struct ) , "::" , stringify ! ( __names ) ) ) ; } pub type __locale_t = * mut __locale_struct ; pub type locale_t = __locale_t ; extern "C" { pub fn strcoll_l ( __s1 : * const libc :: c_char , __s2 : * const libc :: c_char , __l : locale_t ) -> libc :: c_int ; } extern "C" { pub fn strxfrm_l ( __dest : * mut libc :: c_char , __src : * const libc :: c_char , __n : size_t , __l : locale_t ) -> size_t ; } extern "C" { pub fn strdup ( __s : * const libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn strndup ( __string : * const libc :: c_char , __n : libc :: c_ulong ) -> * mut libc :: c_char ; } extern "C" { pub fn strchr ( __s : * const libc :: c_char , __c : libc :: c_int ) -> * mut libc :: c_char ; } extern "C" { pub fn strrchr ( __s : * const libc :: c_char , __c : libc :: c_int ) -> * mut libc :: c_char ; } extern "C" { pub fn strcspn ( __s : * const libc :: c_char , __reject : * const libc :: c_char ) -> libc :: c_ulong ; } extern "C" { pub fn strspn ( __s : * const libc :: c_char , __accept : * const libc :: c_char ) -> libc :: c_ulong ; } extern "C" { pub fn strpbrk ( __s : * const libc :: c_char , __accept : * const libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn strstr ( __haystack : * const libc :: c_char , __needle : * const libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn strtok ( __s : * mut libc :: c_char , __delim : * const libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn __strtok_r ( __s : * mut libc :: c_char , __delim : * const libc :: c_char , __save_ptr : * mut * mut libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn strtok_r ( __s : * mut libc :: c_char , __delim : * const libc :: c_char , __save_ptr : * mut * mut libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn strlen ( __s : * const libc :: c_char ) -> libc :: c_ulong ; } extern "C" { pub fn strnlen ( __string : * const libc :: c_char , __maxlen : size_t ) -> size_t ; } extern "C" { pub fn strerror ( __errnum : libc :: c_int ) -> * mut libc :: c_char ; } extern "C" { # [ link_name = "\u{1}__xpg_strerror_r" ] pub fn strerror_r ( __errnum : libc :: c_int , __buf : * mut libc :: c_char , __buflen : size_t ) -> libc :: c_int ; } extern "C" { pub fn strerror_l ( __errnum : libc :: c_int , __l : locale_t ) -> * mut libc :: c_char ; } extern "C" { pub fn bcmp ( __s1 : * const libc :: c_void , __s2 : * const libc :: c_void , __n : libc :: c_ulong ) -> libc :: c_int ; } extern "C" { pub fn bcopy ( __src : * const libc :: c_void , __dest : * mut libc :: c_void , __n : size_t ) ; } extern "C" { pub fn bzero ( __s : * mut libc :: c_void , __n : libc :: c_ulong ) ; } extern "C" { pub fn index ( __s : * const libc :: c_char , __c : libc :: c_int ) -> * mut libc :: c_char ; } extern "C" { pub fn rindex ( __s : * const libc :: c_char , __c : libc :: c_int ) -> * mut libc :: c_char ; } extern "C" { pub fn ffs ( __i : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn ffsl ( __l : libc :: c_long ) -> libc :: c_int ; } extern "C" { pub fn ffsll ( __ll : libc :: c_longlong ) -> libc :: c_int ; } extern "C" { pub fn strcasecmp ( __s1 : * const libc :: c_char , __s2 : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn strncasecmp ( __s1 : * const libc :: c_char , __s2 : * const libc :: c_char , __n : libc :: c_ulong ) -> libc :: c_int ; } extern "C" { pub fn strcasecmp_l ( __s1 : * const libc :: c_char , __s2 : * const libc :: c_char , __loc : locale_t ) -> libc :: c_int ; } extern "C" { pub fn strncasecmp_l ( __s1 : * const libc :: c_char , __s2 : * const libc :: c_char , __n : size_t , __loc : locale_t ) -> libc :: c_int ; } extern "C" { pub fn explicit_bzero ( __s : * mut libc :: c_void , __n : size_t ) ; } extern "C" { pub fn strsep ( __stringp : * mut * mut libc :: c_char , __delim : * const libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn strsignal ( __sig : libc :: c_int ) -> * mut libc :: c_char ; } extern "C" { pub fn __stpcpy ( __dest : * mut libc :: c_char , __src : * const libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn stpcpy ( __dest : * mut libc :: c_char , __src : * const libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn __stpncpy ( __dest : * mut libc :: c_char , __src : * const libc :: c_char , __n : size_t ) -> * mut libc :: c_char ; } extern "C" { pub fn stpncpy ( __dest : * mut libc :: c_char , __src : * const libc :: c_char , __n : libc :: c_ulong ) -> * mut libc :: c_char ; } extern "C" { pub fn av_log2 ( v : libc :: c_uint ) -> libc :: c_int ; } extern "C" { pub fn av_log2_16bit ( v : libc :: c_uint ) -> libc :: c_int ; } extern "C" { pub fn av_strerror ( errnum : libc :: c_int , errbuf : * mut libc :: c_char , errbuf_size : size_t ) -> libc :: c_int ; } extern "C" { pub fn av_malloc ( size : size_t ) -> * mut libc :: c_void ; } extern "C" { pub fn av_mallocz ( size : size_t ) -> * mut libc :: c_void ; } extern "C" { pub fn av_malloc_array ( nmemb : size_t , size : size_t ) -> * mut libc :: c_void ; } extern "C" { pub fn av_mallocz_array ( nmemb : size_t , size : size_t ) -> * mut libc :: c_void ; } extern "C" { pub fn av_calloc ( nmemb : size_t , size : size_t ) -> * mut libc :: c_void ; } extern "C" { pub fn av_realloc ( ptr : * mut libc :: c_void , size : size_t ) -> * mut libc :: c_void ; } extern "C" { pub fn av_reallocp ( ptr : * mut libc :: c_void , size : size_t ) -> libc :: c_int ; } extern "C" { pub fn av_realloc_f ( ptr : * mut libc :: c_void , nelem : size_t , elsize : size_t ) -> * mut libc :: c_void ; } extern "C" { pub fn av_realloc_array ( ptr : * mut libc :: c_void , nmemb : size_t , size : size_t ) -> * mut libc :: c_void ; } extern "C" { pub fn av_reallocp_array ( ptr : * mut libc :: c_void , nmemb : size_t , size : size_t ) -> libc :: c_int ; } extern "C" { pub fn av_fast_realloc ( ptr : * mut libc :: c_void , size : * mut libc :: c_uint , min_size : size_t ) -> * mut libc :: c_void ; } extern "C" { pub fn av_fast_malloc ( ptr : * mut libc :: c_void , size : * mut libc :: c_uint , min_size : size_t ) ; } extern "C" { pub fn av_fast_mallocz ( ptr : * mut libc :: c_void , size : * mut libc :: c_uint , min_size : size_t ) ; } extern "C" { pub fn av_free ( ptr : * mut libc :: c_void ) ; } extern "C" { pub fn av_freep ( ptr : * mut libc :: c_void ) ; } extern "C" { pub fn av_strdup ( s : * const libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn av_strndup ( s : * const libc :: c_char , len : size_t ) -> * mut libc :: c_char ; } extern "C" { pub fn av_memdup ( p : * const libc :: c_void , size : size_t ) -> * mut libc :: c_void ; } extern "C" { pub fn av_memcpy_backptr ( dst : * mut u8 , back : libc :: c_int , cnt : libc :: c_int ) ; } extern "C" { pub fn av_dynarray_add ( tab_ptr : * mut libc :: c_void , nb_ptr : * mut libc :: c_int , elem : * mut libc :: c_void ) ; } extern "C" { pub fn av_dynarray_add_nofree ( tab_ptr : * mut libc :: c_void , nb_ptr : * mut libc :: c_int , elem : * mut libc :: c_void ) -> libc :: c_int ; } extern "C" { pub fn av_dynarray2_add ( tab_ptr : * mut * mut libc :: c_void , nb_ptr : * mut libc :: c_int , elem_size : size_t , elem_data : * const u8 ) -> * mut libc :: c_void ; } extern "C" { pub fn av_max_alloc ( max : size_t ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVRational { pub num : libc :: c_int , pub den : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVRational ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVRational > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( AVRational ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVRational > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( AVRational ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVRational > ( ) ) ) . num as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVRational ) , "::" , stringify ! ( num ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVRational > ( ) ) ) . den as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVRational ) , "::" , stringify ! ( den ) ) ) ; } extern "C" { pub fn av_reduce ( dst_num : * mut libc :: c_int , dst_den : * mut libc :: c_int , num : i64 , den : i64 , max : i64 ) -> libc :: 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 : libc :: c_int ) -> AVRational ; } extern "C" { pub fn av_nearer_q ( q : AVRational , q1 : AVRational , q2 : AVRational ) -> libc :: c_int ; } extern "C" { pub fn av_find_nearest_q_idx ( q : AVRational , q_list : * const AVRational ) -> libc :: 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 , } # [ test ] fn bindgen_test_layout_av_intfloat32 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < av_intfloat32 > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( av_intfloat32 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < av_intfloat32 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( av_intfloat32 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < av_intfloat32 > ( ) ) ) . i as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( av_intfloat32 ) , "::" , stringify ! ( i ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < av_intfloat32 > ( ) ) ) . f as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( av_intfloat32 ) , "::" , stringify ! ( f ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union av_intfloat64 { pub i : u64 , pub f : f64 , _bindgen_union_align : u64 , } # [ test ] fn bindgen_test_layout_av_intfloat64 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < av_intfloat64 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( av_intfloat64 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < av_intfloat64 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( av_intfloat64 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < av_intfloat64 > ( ) ) ) . i as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( av_intfloat64 ) , "::" , stringify ! ( i ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < av_intfloat64 > ( ) ) ) . f as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( av_intfloat64 ) , "::" , stringify ! ( f ) ) ) ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVRounding { AV_ROUND_ZERO = 0 , AV_ROUND_INF = 1 , AV_ROUND_DOWN = 2 , AV_ROUND_UP = 3 , AV_ROUND_NEAR_INF = 5 , AV_ROUND_PASS_MINMAX = 8192 , } 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 ) -> libc :: 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 : libc :: 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 ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVClassCategory { AV_CLASS_CATEGORY_NA = 0 , AV_CLASS_CATEGORY_INPUT = 1 , AV_CLASS_CATEGORY_OUTPUT = 2 , AV_CLASS_CATEGORY_MUXER = 3 , AV_CLASS_CATEGORY_DEMUXER = 4 , AV_CLASS_CATEGORY_ENCODER = 5 , AV_CLASS_CATEGORY_DECODER = 6 , AV_CLASS_CATEGORY_FILTER = 7 , AV_CLASS_CATEGORY_BITSTREAM_FILTER = 8 , AV_CLASS_CATEGORY_SWSCALER = 9 , AV_CLASS_CATEGORY_SWRESAMPLER = 10 , AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT = 40 , AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT = 41 , AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT = 42 , AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT = 43 , AV_CLASS_CATEGORY_DEVICE_OUTPUT = 44 , AV_CLASS_CATEGORY_DEVICE_INPUT = 45 , AV_CLASS_CATEGORY_NB = 46 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVClass { pub class_name : * const libc :: c_char , pub item_name : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut libc :: c_void ) -> * const libc :: c_char > , pub option : * const AVOption , pub version : libc :: c_int , pub log_level_offset_offset : libc :: c_int , pub parent_log_context_offset : libc :: c_int , pub child_next : :: std :: option :: Option < unsafe extern "C" fn ( obj : * mut libc :: c_void , prev : * mut libc :: c_void ) -> * mut libc :: 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 libc :: c_void ) -> AVClassCategory > , pub query_ranges : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut * mut AVOptionRanges , obj : * mut libc :: c_void , key : * const libc :: c_char , flags : libc :: c_int ) -> libc :: c_int > , } # [ test ] fn bindgen_test_layout_AVClass ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVClass > ( ) , 80usize , concat ! ( "Size of: " , stringify ! ( AVClass ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVClass > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVClass ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVClass > ( ) ) ) . class_name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVClass ) , "::" , stringify ! ( class_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVClass > ( ) ) ) . item_name as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVClass ) , "::" , stringify ! ( item_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVClass > ( ) ) ) . option as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVClass ) , "::" , stringify ! ( option ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVClass > ( ) ) ) . version as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVClass ) , "::" , stringify ! ( version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVClass > ( ) ) ) . log_level_offset_offset as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( AVClass ) , "::" , stringify ! ( log_level_offset_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVClass > ( ) ) ) . parent_log_context_offset as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVClass ) , "::" , stringify ! ( parent_log_context_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVClass > ( ) ) ) . child_next as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVClass ) , "::" , stringify ! ( child_next ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVClass > ( ) ) ) . child_class_next as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVClass ) , "::" , stringify ! ( child_class_next ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVClass > ( ) ) ) . category as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVClass ) , "::" , stringify ! ( category ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVClass > ( ) ) ) . get_category as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVClass ) , "::" , stringify ! ( get_category ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVClass > ( ) ) ) . query_ranges as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVClass ) , "::" , stringify ! ( query_ranges ) ) ) ; } extern "C" { pub fn av_log ( avcl : * mut libc :: c_void , level : libc :: c_int , fmt : * const libc :: c_char , ... ) ; } extern "C" { pub fn av_vlog ( avcl : * mut libc :: c_void , level : libc :: c_int , fmt : * const libc :: c_char , vl : * mut __va_list_tag ) ; } extern "C" { pub fn av_log_get_level ( ) -> libc :: c_int ; } extern "C" { pub fn av_log_set_level ( level : libc :: c_int ) ; } extern "C" { pub fn av_log_set_callback ( callback : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut libc :: c_void , arg2 : libc :: c_int , arg3 : * const libc :: c_char , arg4 : * mut __va_list_tag ) > ) ; } extern "C" { pub fn av_log_default_callback ( avcl : * mut libc :: c_void , level : libc :: c_int , fmt : * const libc :: c_char , vl : * mut __va_list_tag ) ; } extern "C" { pub fn av_default_item_name ( ctx : * mut libc :: c_void ) -> * const libc :: c_char ; } extern "C" { pub fn av_default_get_category ( ptr : * mut libc :: c_void ) -> AVClassCategory ; } extern "C" { pub fn av_log_format_line ( ptr : * mut libc :: c_void , level : libc :: c_int , fmt : * const libc :: c_char , vl : * mut __va_list_tag , line : * mut libc :: c_char , line_size : libc :: c_int , print_prefix : * mut libc :: c_int ) ; } extern "C" { pub fn av_log_format_line2 ( ptr : * mut libc :: c_void , level : libc :: c_int , fmt : * const libc :: c_char , vl : * mut __va_list_tag , line : * mut libc :: c_char , line_size : libc :: c_int , print_prefix : * mut libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_log_set_flags ( arg : libc :: c_int ) ; } extern "C" { pub fn av_log_get_flags ( ) -> libc :: c_int ; } impl AVPixelFormat { pub const AV_PIX_FMT_VAAPI : AVPixelFormat = AVPixelFormat :: AV_PIX_FMT_VAAPI_VLD ; } impl AVPixelFormat { pub const AV_PIX_FMT_Y400A : AVPixelFormat = AVPixelFormat :: AV_PIX_FMT_YA8 ; } impl AVPixelFormat { pub const AV_PIX_FMT_GRAY8A : AVPixelFormat = AVPixelFormat :: AV_PIX_FMT_YA8 ; } impl AVPixelFormat { pub const AV_PIX_FMT_GBR24P : AVPixelFormat = AVPixelFormat :: AV_PIX_FMT_GBRP ; } # [ repr ( i32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVPixelFormat { AV_PIX_FMT_NONE = - 1 , AV_PIX_FMT_YUV420P = 0 , AV_PIX_FMT_YUYV422 = 1 , AV_PIX_FMT_RGB24 = 2 , AV_PIX_FMT_BGR24 = 3 , AV_PIX_FMT_YUV422P = 4 , AV_PIX_FMT_YUV444P = 5 , AV_PIX_FMT_YUV410P = 6 , AV_PIX_FMT_YUV411P = 7 , AV_PIX_FMT_GRAY8 = 8 , AV_PIX_FMT_MONOWHITE = 9 , AV_PIX_FMT_MONOBLACK = 10 , AV_PIX_FMT_PAL8 = 11 , AV_PIX_FMT_YUVJ420P = 12 , AV_PIX_FMT_YUVJ422P = 13 , AV_PIX_FMT_YUVJ444P = 14 , AV_PIX_FMT_UYVY422 = 15 , AV_PIX_FMT_UYYVYY411 = 16 , AV_PIX_FMT_BGR8 = 17 , AV_PIX_FMT_BGR4 = 18 , AV_PIX_FMT_BGR4_BYTE = 19 , AV_PIX_FMT_RGB8 = 20 , AV_PIX_FMT_RGB4 = 21 , AV_PIX_FMT_RGB4_BYTE = 22 , AV_PIX_FMT_NV12 = 23 , AV_PIX_FMT_NV21 = 24 , AV_PIX_FMT_ARGB = 25 , AV_PIX_FMT_RGBA = 26 , AV_PIX_FMT_ABGR = 27 , AV_PIX_FMT_BGRA = 28 , AV_PIX_FMT_GRAY16BE = 29 , AV_PIX_FMT_GRAY16LE = 30 , AV_PIX_FMT_YUV440P = 31 , AV_PIX_FMT_YUVJ440P = 32 , AV_PIX_FMT_YUVA420P = 33 , AV_PIX_FMT_RGB48BE = 34 , AV_PIX_FMT_RGB48LE = 35 , AV_PIX_FMT_RGB565BE = 36 , AV_PIX_FMT_RGB565LE = 37 , AV_PIX_FMT_RGB555BE = 38 , AV_PIX_FMT_RGB555LE = 39 , AV_PIX_FMT_BGR565BE = 40 , AV_PIX_FMT_BGR565LE = 41 , AV_PIX_FMT_BGR555BE = 42 , AV_PIX_FMT_BGR555LE = 43 , AV_PIX_FMT_VAAPI_MOCO = 44 , AV_PIX_FMT_VAAPI_IDCT = 45 , AV_PIX_FMT_VAAPI_VLD = 46 , AV_PIX_FMT_YUV420P16LE = 47 , AV_PIX_FMT_YUV420P16BE = 48 , AV_PIX_FMT_YUV422P16LE = 49 , AV_PIX_FMT_YUV422P16BE = 50 , AV_PIX_FMT_YUV444P16LE = 51 , AV_PIX_FMT_YUV444P16BE = 52 , AV_PIX_FMT_DXVA2_VLD = 53 , AV_PIX_FMT_RGB444LE = 54 , AV_PIX_FMT_RGB444BE = 55 , AV_PIX_FMT_BGR444LE = 56 , AV_PIX_FMT_BGR444BE = 57 , AV_PIX_FMT_YA8 = 58 , AV_PIX_FMT_BGR48BE = 59 , AV_PIX_FMT_BGR48LE = 60 , AV_PIX_FMT_YUV420P9BE = 61 , AV_PIX_FMT_YUV420P9LE = 62 , AV_PIX_FMT_YUV420P10BE = 63 , AV_PIX_FMT_YUV420P10LE = 64 , AV_PIX_FMT_YUV422P10BE = 65 , AV_PIX_FMT_YUV422P10LE = 66 , AV_PIX_FMT_YUV444P9BE = 67 , AV_PIX_FMT_YUV444P9LE = 68 , AV_PIX_FMT_YUV444P10BE = 69 , AV_PIX_FMT_YUV444P10LE = 70 , AV_PIX_FMT_YUV422P9BE = 71 , AV_PIX_FMT_YUV422P9LE = 72 , AV_PIX_FMT_GBRP = 73 , AV_PIX_FMT_GBRP9BE = 74 , AV_PIX_FMT_GBRP9LE = 75 , AV_PIX_FMT_GBRP10BE = 76 , AV_PIX_FMT_GBRP10LE = 77 , AV_PIX_FMT_GBRP16BE = 78 , AV_PIX_FMT_GBRP16LE = 79 , AV_PIX_FMT_YUVA422P = 80 , AV_PIX_FMT_YUVA444P = 81 , AV_PIX_FMT_YUVA420P9BE = 82 , AV_PIX_FMT_YUVA420P9LE = 83 , AV_PIX_FMT_YUVA422P9BE = 84 , AV_PIX_FMT_YUVA422P9LE = 85 , AV_PIX_FMT_YUVA444P9BE = 86 , AV_PIX_FMT_YUVA444P9LE = 87 , AV_PIX_FMT_YUVA420P10BE = 88 , AV_PIX_FMT_YUVA420P10LE = 89 , AV_PIX_FMT_YUVA422P10BE = 90 , AV_PIX_FMT_YUVA422P10LE = 91 , AV_PIX_FMT_YUVA444P10BE = 92 , AV_PIX_FMT_YUVA444P10LE = 93 , AV_PIX_FMT_YUVA420P16BE = 94 , AV_PIX_FMT_YUVA420P16LE = 95 , AV_PIX_FMT_YUVA422P16BE = 96 , AV_PIX_FMT_YUVA422P16LE = 97 , AV_PIX_FMT_YUVA444P16BE = 98 , AV_PIX_FMT_YUVA444P16LE = 99 , AV_PIX_FMT_VDPAU = 100 , AV_PIX_FMT_XYZ12LE = 101 , AV_PIX_FMT_XYZ12BE = 102 , AV_PIX_FMT_NV16 = 103 , AV_PIX_FMT_NV20LE = 104 , AV_PIX_FMT_NV20BE = 105 , AV_PIX_FMT_RGBA64BE = 106 , AV_PIX_FMT_RGBA64LE = 107 , AV_PIX_FMT_BGRA64BE = 108 , AV_PIX_FMT_BGRA64LE = 109 , AV_PIX_FMT_YVYU422 = 110 , AV_PIX_FMT_YA16BE = 111 , AV_PIX_FMT_YA16LE = 112 , AV_PIX_FMT_GBRAP = 113 , AV_PIX_FMT_GBRAP16BE = 114 , AV_PIX_FMT_GBRAP16LE = 115 , AV_PIX_FMT_QSV = 116 , AV_PIX_FMT_MMAL = 117 , AV_PIX_FMT_D3D11VA_VLD = 118 , AV_PIX_FMT_CUDA = 119 , AV_PIX_FMT_0RGB = 120 , AV_PIX_FMT_RGB0 = 121 , AV_PIX_FMT_0BGR = 122 , AV_PIX_FMT_BGR0 = 123 , AV_PIX_FMT_YUV420P12BE = 124 , AV_PIX_FMT_YUV420P12LE = 125 , AV_PIX_FMT_YUV420P14BE = 126 , AV_PIX_FMT_YUV420P14LE = 127 , AV_PIX_FMT_YUV422P12BE = 128 , AV_PIX_FMT_YUV422P12LE = 129 , AV_PIX_FMT_YUV422P14BE = 130 , AV_PIX_FMT_YUV422P14LE = 131 , AV_PIX_FMT_YUV444P12BE = 132 , AV_PIX_FMT_YUV444P12LE = 133 , AV_PIX_FMT_YUV444P14BE = 134 , AV_PIX_FMT_YUV444P14LE = 135 , AV_PIX_FMT_GBRP12BE = 136 , AV_PIX_FMT_GBRP12LE = 137 , AV_PIX_FMT_GBRP14BE = 138 , AV_PIX_FMT_GBRP14LE = 139 , AV_PIX_FMT_YUVJ411P = 140 , AV_PIX_FMT_BAYER_BGGR8 = 141 , AV_PIX_FMT_BAYER_RGGB8 = 142 , AV_PIX_FMT_BAYER_GBRG8 = 143 , AV_PIX_FMT_BAYER_GRBG8 = 144 , AV_PIX_FMT_BAYER_BGGR16LE = 145 , AV_PIX_FMT_BAYER_BGGR16BE = 146 , AV_PIX_FMT_BAYER_RGGB16LE = 147 , AV_PIX_FMT_BAYER_RGGB16BE = 148 , AV_PIX_FMT_BAYER_GBRG16LE = 149 , AV_PIX_FMT_BAYER_GBRG16BE = 150 , AV_PIX_FMT_BAYER_GRBG16LE = 151 , AV_PIX_FMT_BAYER_GRBG16BE = 152 , AV_PIX_FMT_XVMC = 153 , AV_PIX_FMT_YUV440P10LE = 154 , AV_PIX_FMT_YUV440P10BE = 155 , AV_PIX_FMT_YUV440P12LE = 156 , AV_PIX_FMT_YUV440P12BE = 157 , AV_PIX_FMT_AYUV64LE = 158 , AV_PIX_FMT_AYUV64BE = 159 , AV_PIX_FMT_VIDEOTOOLBOX = 160 , AV_PIX_FMT_P010LE = 161 , AV_PIX_FMT_P010BE = 162 , AV_PIX_FMT_GBRAP12BE = 163 , AV_PIX_FMT_GBRAP12LE = 164 , AV_PIX_FMT_GBRAP10BE = 165 , AV_PIX_FMT_GBRAP10LE = 166 , AV_PIX_FMT_MEDIACODEC = 167 , AV_PIX_FMT_GRAY12BE = 168 , AV_PIX_FMT_GRAY12LE = 169 , AV_PIX_FMT_GRAY10BE = 170 , AV_PIX_FMT_GRAY10LE = 171 , AV_PIX_FMT_P016LE = 172 , AV_PIX_FMT_P016BE = 173 , AV_PIX_FMT_D3D11 = 174 , AV_PIX_FMT_GRAY9BE = 175 , AV_PIX_FMT_GRAY9LE = 176 , AV_PIX_FMT_GBRPF32BE = 177 , AV_PIX_FMT_GBRPF32LE = 178 , AV_PIX_FMT_GBRAPF32BE = 179 , AV_PIX_FMT_GBRAPF32LE = 180 , AV_PIX_FMT_DRM_PRIME = 181 , AV_PIX_FMT_OPENCL = 182 , AV_PIX_FMT_GRAY14BE = 183 , AV_PIX_FMT_GRAY14LE = 184 , AV_PIX_FMT_GRAYF32BE = 185 , AV_PIX_FMT_GRAYF32LE = 186 , AV_PIX_FMT_YUVA422P12BE = 187 , AV_PIX_FMT_YUVA422P12LE = 188 , AV_PIX_FMT_YUVA444P12BE = 189 , AV_PIX_FMT_YUVA444P12LE = 190 , AV_PIX_FMT_NV24 = 191 , AV_PIX_FMT_NV42 = 192 , AV_PIX_FMT_NB = 193 , } impl AVColorPrimaries { pub const AVCOL_PRI_SMPTEST428_1 : AVColorPrimaries = AVColorPrimaries :: AVCOL_PRI_SMPTE428 ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVColorPrimaries { AVCOL_PRI_RESERVED0 = 0 , AVCOL_PRI_BT709 = 1 , AVCOL_PRI_UNSPECIFIED = 2 , AVCOL_PRI_RESERVED = 3 , AVCOL_PRI_BT470M = 4 , AVCOL_PRI_BT470BG = 5 , AVCOL_PRI_SMPTE170M = 6 , AVCOL_PRI_SMPTE240M = 7 , AVCOL_PRI_FILM = 8 , AVCOL_PRI_BT2020 = 9 , AVCOL_PRI_SMPTE428 = 10 , AVCOL_PRI_SMPTE431 = 11 , AVCOL_PRI_SMPTE432 = 12 , AVCOL_PRI_JEDEC_P22 = 22 , AVCOL_PRI_NB = 23 , } impl AVColorTransferCharacteristic { pub const AVCOL_TRC_SMPTEST2084 : AVColorTransferCharacteristic = AVColorTransferCharacteristic :: AVCOL_TRC_SMPTE2084 ; } impl AVColorTransferCharacteristic { pub const AVCOL_TRC_SMPTEST428_1 : AVColorTransferCharacteristic = AVColorTransferCharacteristic :: AVCOL_TRC_SMPTE428 ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVColorTransferCharacteristic { AVCOL_TRC_RESERVED0 = 0 , AVCOL_TRC_BT709 = 1 , AVCOL_TRC_UNSPECIFIED = 2 , AVCOL_TRC_RESERVED = 3 , AVCOL_TRC_GAMMA22 = 4 , AVCOL_TRC_GAMMA28 = 5 , AVCOL_TRC_SMPTE170M = 6 , AVCOL_TRC_SMPTE240M = 7 , AVCOL_TRC_LINEAR = 8 , AVCOL_TRC_LOG = 9 , AVCOL_TRC_LOG_SQRT = 10 , AVCOL_TRC_IEC61966_2_4 = 11 , AVCOL_TRC_BT1361_ECG = 12 , AVCOL_TRC_IEC61966_2_1 = 13 , AVCOL_TRC_BT2020_10 = 14 , AVCOL_TRC_BT2020_12 = 15 , AVCOL_TRC_SMPTE2084 = 16 , AVCOL_TRC_SMPTE428 = 17 , AVCOL_TRC_ARIB_STD_B67 = 18 , AVCOL_TRC_NB = 19 , } impl AVColorSpace { pub const AVCOL_SPC_YCOCG : AVColorSpace = AVColorSpace :: AVCOL_SPC_YCGCO ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVColorSpace { AVCOL_SPC_RGB = 0 , AVCOL_SPC_BT709 = 1 , AVCOL_SPC_UNSPECIFIED = 2 , AVCOL_SPC_RESERVED = 3 , AVCOL_SPC_FCC = 4 , AVCOL_SPC_BT470BG = 5 , AVCOL_SPC_SMPTE170M = 6 , AVCOL_SPC_SMPTE240M = 7 , AVCOL_SPC_YCGCO = 8 , AVCOL_SPC_BT2020_NCL = 9 , AVCOL_SPC_BT2020_CL = 10 , AVCOL_SPC_SMPTE2085 = 11 , AVCOL_SPC_CHROMA_DERIVED_NCL = 12 , AVCOL_SPC_CHROMA_DERIVED_CL = 13 , AVCOL_SPC_ICTCP = 14 , AVCOL_SPC_NB = 15 , } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVColorRange { AVCOL_RANGE_UNSPECIFIED = 0 , AVCOL_RANGE_MPEG = 1 , AVCOL_RANGE_JPEG = 2 , AVCOL_RANGE_NB = 3 , } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVChromaLocation { AVCHROMA_LOC_UNSPECIFIED = 0 , AVCHROMA_LOC_LEFT = 1 , AVCHROMA_LOC_CENTER = 2 , AVCHROMA_LOC_TOPLEFT = 3 , AVCHROMA_LOC_TOP = 4 , AVCHROMA_LOC_BOTTOMLEFT = 5 , AVCHROMA_LOC_BOTTOM = 6 , AVCHROMA_LOC_NB = 7 , } extern "C" { pub fn av_int_list_length_for_size ( elsize : libc :: c_uint , list : * const libc :: c_void , term : u64 ) -> libc :: c_uint ; } extern "C" { pub fn av_fopen_utf8 ( path : * const libc :: c_char , mode : * const libc :: c_char ) -> * mut FILE ; } extern "C" { pub fn av_get_time_base_q ( ) -> AVRational ; } extern "C" { pub fn av_fourcc_make_string ( buf : * mut libc :: c_char , fourcc : u32 ) -> * mut libc :: c_char ; } # [ repr ( i32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVSampleFormat { AV_SAMPLE_FMT_NONE = - 1 , AV_SAMPLE_FMT_U8 = 0 , AV_SAMPLE_FMT_S16 = 1 , AV_SAMPLE_FMT_S32 = 2 , AV_SAMPLE_FMT_FLT = 3 , AV_SAMPLE_FMT_DBL = 4 , AV_SAMPLE_FMT_U8P = 5 , AV_SAMPLE_FMT_S16P = 6 , AV_SAMPLE_FMT_S32P = 7 , AV_SAMPLE_FMT_FLTP = 8 , AV_SAMPLE_FMT_DBLP = 9 , AV_SAMPLE_FMT_S64 = 10 , AV_SAMPLE_FMT_S64P = 11 , AV_SAMPLE_FMT_NB = 12 , } extern "C" { pub fn av_get_sample_fmt_name ( sample_fmt : AVSampleFormat ) -> * const libc :: c_char ; } extern "C" { pub fn av_get_sample_fmt ( name : * const libc :: c_char ) -> AVSampleFormat ; } extern "C" { pub fn av_get_alt_sample_fmt ( sample_fmt : AVSampleFormat , planar : libc :: 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 libc :: c_char , buf_size : libc :: c_int , sample_fmt : AVSampleFormat ) -> * mut libc :: c_char ; } extern "C" { pub fn av_get_bytes_per_sample ( sample_fmt : AVSampleFormat ) -> libc :: c_int ; } extern "C" { pub fn av_sample_fmt_is_planar ( sample_fmt : AVSampleFormat ) -> libc :: c_int ; } extern "C" { pub fn av_samples_get_buffer_size ( linesize : * mut libc :: c_int , nb_channels : libc :: c_int , nb_samples : libc :: c_int , sample_fmt : AVSampleFormat , align : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_samples_fill_arrays ( audio_data : * mut * mut u8 , linesize : * mut libc :: c_int , buf : * const u8 , nb_channels : libc :: c_int , nb_samples : libc :: c_int , sample_fmt : AVSampleFormat , align : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_samples_alloc ( audio_data : * mut * mut u8 , linesize : * mut libc :: c_int , nb_channels : libc :: c_int , nb_samples : libc :: c_int , sample_fmt : AVSampleFormat , align : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_samples_alloc_array_and_samples ( audio_data : * mut * mut * mut u8 , linesize : * mut libc :: c_int , nb_channels : libc :: c_int , nb_samples : libc :: c_int , sample_fmt : AVSampleFormat , align : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_samples_copy ( dst : * mut * mut u8 , src : * const * mut u8 , dst_offset : libc :: c_int , src_offset : libc :: c_int , nb_samples : libc :: c_int , nb_channels : libc :: c_int , sample_fmt : AVSampleFormat ) -> libc :: c_int ; } extern "C" { pub fn av_samples_set_silence ( audio_data : * mut * mut u8 , offset : libc :: c_int , nb_samples : libc :: c_int , nb_channels : libc :: c_int , sample_fmt : AVSampleFormat ) -> libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVBuffer { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVBufferRef { pub buffer : * mut AVBuffer , pub data : * mut u8 , pub size : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVBufferRef ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVBufferRef > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( AVBufferRef ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVBufferRef > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVBufferRef ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBufferRef > ( ) ) ) . buffer as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVBufferRef ) , "::" , stringify ! ( buffer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBufferRef > ( ) ) ) . data as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVBufferRef ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBufferRef > ( ) ) ) . size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVBufferRef ) , "::" , stringify ! ( size ) ) ) ; } extern "C" { pub fn av_buffer_alloc ( size : libc :: c_int ) -> * mut AVBufferRef ; } extern "C" { pub fn av_buffer_allocz ( size : libc :: c_int ) -> * mut AVBufferRef ; } extern "C" { pub fn av_buffer_create ( data : * mut u8 , size : libc :: c_int , free : :: std :: option :: Option < unsafe extern "C" fn ( opaque : * mut libc :: c_void , data : * mut u8 ) > , opaque : * mut libc :: c_void , flags : libc :: c_int ) -> * mut AVBufferRef ; } extern "C" { pub fn av_buffer_default_free ( opaque : * mut libc :: 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 ) -> libc :: c_int ; } extern "C" { pub fn av_buffer_get_opaque ( buf : * const AVBufferRef ) -> * mut libc :: c_void ; } extern "C" { pub fn av_buffer_get_ref_count ( buf : * const AVBufferRef ) -> libc :: c_int ; } extern "C" { pub fn av_buffer_make_writable ( buf : * mut * mut AVBufferRef ) -> libc :: c_int ; } extern "C" { pub fn av_buffer_realloc ( buf : * mut * mut AVBufferRef , size : libc :: c_int ) -> libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVBufferPool { _unused : [ u8 ; 0 ] , } extern "C" { pub fn av_buffer_pool_init ( size : libc :: c_int , alloc : :: std :: option :: Option < unsafe extern "C" fn ( size : libc :: c_int ) -> * mut AVBufferRef > ) -> * mut AVBufferPool ; } extern "C" { pub fn av_buffer_pool_init2 ( size : libc :: c_int , opaque : * mut libc :: c_void , alloc : :: std :: option :: Option < unsafe extern "C" fn ( opaque : * mut libc :: c_void , size : libc :: c_int ) -> * mut AVBufferRef > , pool_free : :: std :: option :: Option < unsafe extern "C" fn ( opaque : * mut libc :: 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 ( ) -> libc :: c_int ; } extern "C" { pub fn av_force_cpu_flags ( flags : libc :: c_int ) ; } extern "C" { pub fn av_set_cpu_flags_mask ( mask : libc :: c_int ) ; } extern "C" { pub fn av_parse_cpu_flags ( s : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn av_parse_cpu_caps ( flags : * mut libc :: c_uint , s : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn av_cpu_count ( ) -> libc :: c_int ; } extern "C" { pub fn av_cpu_max_align ( ) -> size_t ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVMatrixEncoding { AV_MATRIX_ENCODING_NONE = 0 , AV_MATRIX_ENCODING_DOLBY = 1 , AV_MATRIX_ENCODING_DPLII = 2 , AV_MATRIX_ENCODING_DPLIIX = 3 , AV_MATRIX_ENCODING_DPLIIZ = 4 , AV_MATRIX_ENCODING_DOLBYEX = 5 , AV_MATRIX_ENCODING_DOLBYHEADPHONE = 6 , AV_MATRIX_ENCODING_NB = 7 , } extern "C" { pub fn av_get_channel_layout ( name : * const libc :: c_char ) -> u64 ; } extern "C" { pub fn av_get_extended_channel_layout ( name : * const libc :: c_char , channel_layout : * mut u64 , nb_channels : * mut libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_get_channel_layout_string ( buf : * mut libc :: c_char , buf_size : libc :: c_int , nb_channels : libc :: c_int , channel_layout : u64 ) ; } extern "C" { pub fn av_bprint_channel_layout ( bp : * mut AVBPrint , nb_channels : libc :: c_int , channel_layout : u64 ) ; } extern "C" { pub fn av_get_channel_layout_nb_channels ( channel_layout : u64 ) -> libc :: c_int ; } extern "C" { pub fn av_get_default_channel_layout ( nb_channels : libc :: c_int ) -> i64 ; } extern "C" { pub fn av_get_channel_layout_channel_index ( channel_layout : u64 , channel : u64 ) -> libc :: c_int ; } extern "C" { pub fn av_channel_layout_extract_channel ( channel_layout : u64 , index : libc :: c_int ) -> u64 ; } extern "C" { pub fn av_get_channel_name ( channel : u64 ) -> * const libc :: c_char ; } extern "C" { pub fn av_get_channel_description ( channel : u64 ) -> * const libc :: c_char ; } extern "C" { pub fn av_get_standard_channel_layout ( index : libc :: c_uint , layout : * mut u64 , name : * mut * const libc :: c_char ) -> libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVDictionaryEntry { pub key : * mut libc :: c_char , pub value : * mut libc :: c_char , } # [ test ] fn bindgen_test_layout_AVDictionaryEntry ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVDictionaryEntry > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( AVDictionaryEntry ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVDictionaryEntry > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVDictionaryEntry ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDictionaryEntry > ( ) ) ) . key as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVDictionaryEntry ) , "::" , stringify ! ( key ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDictionaryEntry > ( ) ) ) . value as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVDictionaryEntry ) , "::" , stringify ! ( value ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVDictionary { _unused : [ u8 ; 0 ] , } extern "C" { pub fn av_dict_get ( m : * const AVDictionary , key : * const libc :: c_char , prev : * const AVDictionaryEntry , flags : libc :: c_int ) -> * mut AVDictionaryEntry ; } extern "C" { pub fn av_dict_count ( m : * const AVDictionary ) -> libc :: c_int ; } extern "C" { pub fn av_dict_set ( pm : * mut * mut AVDictionary , key : * const libc :: c_char , value : * const libc :: c_char , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_dict_set_int ( pm : * mut * mut AVDictionary , key : * const libc :: c_char , value : i64 , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_dict_parse_string ( pm : * mut * mut AVDictionary , str : * const libc :: c_char , key_val_sep : * const libc :: c_char , pairs_sep : * const libc :: c_char , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_dict_copy ( dst : * mut * mut AVDictionary , src : * const AVDictionary , flags : libc :: c_int ) -> libc :: 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 libc :: c_char , key_val_sep : libc :: c_char , pairs_sep : libc :: c_char ) -> libc :: c_int ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVFrameSideDataType { AV_FRAME_DATA_PANSCAN = 0 , AV_FRAME_DATA_A53_CC = 1 , AV_FRAME_DATA_STEREO3D = 2 , AV_FRAME_DATA_MATRIXENCODING = 3 , AV_FRAME_DATA_DOWNMIX_INFO = 4 , AV_FRAME_DATA_REPLAYGAIN = 5 , AV_FRAME_DATA_DISPLAYMATRIX = 6 , AV_FRAME_DATA_AFD = 7 , AV_FRAME_DATA_MOTION_VECTORS = 8 , AV_FRAME_DATA_SKIP_SAMPLES = 9 , AV_FRAME_DATA_AUDIO_SERVICE_TYPE = 10 , AV_FRAME_DATA_MASTERING_DISPLAY_METADATA = 11 , AV_FRAME_DATA_GOP_TIMECODE = 12 , AV_FRAME_DATA_SPHERICAL = 13 , AV_FRAME_DATA_CONTENT_LIGHT_LEVEL = 14 , AV_FRAME_DATA_ICC_PROFILE = 15 , AV_FRAME_DATA_QP_TABLE_PROPERTIES = 16 , AV_FRAME_DATA_QP_TABLE_DATA = 17 , AV_FRAME_DATA_S12M_TIMECODE = 18 , AV_FRAME_DATA_DYNAMIC_HDR_PLUS = 19 , AV_FRAME_DATA_REGIONS_OF_INTEREST = 20 , } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVActiveFormatDescription { AV_AFD_SAME = 8 , AV_AFD_4_3 = 9 , AV_AFD_16_9 = 10 , AV_AFD_14_9 = 11 , AV_AFD_4_3_SP_14_9 = 13 , AV_AFD_16_9_SP_14_9 = 14 , AV_AFD_SP_4_3 = 15 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVFrameSideData { pub type_ : AVFrameSideDataType , pub data : * mut u8 , pub size : libc :: c_int , pub metadata : * mut AVDictionary , pub buf : * mut AVBufferRef , } # [ test ] fn bindgen_test_layout_AVFrameSideData ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVFrameSideData > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( AVFrameSideData ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVFrameSideData > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVFrameSideData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrameSideData > ( ) ) ) . type_ as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVFrameSideData ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrameSideData > ( ) ) ) . data as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVFrameSideData ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrameSideData > ( ) ) ) . size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVFrameSideData ) , "::" , stringify ! ( size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrameSideData > ( ) ) ) . metadata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVFrameSideData ) , "::" , stringify ! ( metadata ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrameSideData > ( ) ) ) . buf as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVFrameSideData ) , "::" , stringify ! ( buf ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVRegionOfInterest { pub self_size : u32 , pub top : libc :: c_int , pub bottom : libc :: c_int , pub left : libc :: c_int , pub right : libc :: c_int , pub qoffset : AVRational , } # [ test ] fn bindgen_test_layout_AVRegionOfInterest ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVRegionOfInterest > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( AVRegionOfInterest ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVRegionOfInterest > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( AVRegionOfInterest ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVRegionOfInterest > ( ) ) ) . self_size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVRegionOfInterest ) , "::" , stringify ! ( self_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVRegionOfInterest > ( ) ) ) . top as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVRegionOfInterest ) , "::" , stringify ! ( top ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVRegionOfInterest > ( ) ) ) . bottom as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVRegionOfInterest ) , "::" , stringify ! ( bottom ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVRegionOfInterest > ( ) ) ) . left as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVRegionOfInterest ) , "::" , stringify ! ( left ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVRegionOfInterest > ( ) ) ) . right as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVRegionOfInterest ) , "::" , stringify ! ( right ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVRegionOfInterest > ( ) ) ) . qoffset as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( AVRegionOfInterest ) , "::" , stringify ! ( qoffset ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVFrame { pub data : [ * mut u8 ; 8usize ] , pub linesize : [ libc :: c_int ; 8usize ] , pub extended_data : * mut * mut u8 , pub width : libc :: c_int , pub height : libc :: c_int , pub nb_samples : libc :: c_int , pub format : libc :: c_int , pub key_frame : libc :: 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 : libc :: c_int , pub display_picture_number : libc :: c_int , pub quality : libc :: c_int , pub opaque : * mut libc :: c_void , pub error : [ u64 ; 8usize ] , pub repeat_pict : libc :: c_int , pub interlaced_frame : libc :: c_int , pub top_field_first : libc :: c_int , pub palette_has_changed : libc :: c_int , pub reordered_opaque : i64 , pub sample_rate : libc :: c_int , pub channel_layout : u64 , pub buf : [ * mut AVBufferRef ; 8usize ] , pub extended_buf : * mut * mut AVBufferRef , pub nb_extended_buf : libc :: c_int , pub side_data : * mut * mut AVFrameSideData , pub nb_side_data : libc :: c_int , pub flags : libc :: 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 : libc :: c_int , pub channels : libc :: c_int , pub pkt_size : libc :: c_int , pub qscale_table : * mut i8 , pub qstride : libc :: c_int , pub qscale_type : libc :: c_int , pub qp_table_buf : * mut AVBufferRef , pub hw_frames_ctx : * mut AVBufferRef , pub opaque_ref : * mut AVBufferRef , pub crop_top : size_t , pub crop_bottom : size_t , pub crop_left : size_t , pub crop_right : size_t , pub private_ref : * mut AVBufferRef , } # [ test ] fn bindgen_test_layout_AVFrame ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVFrame > ( ) , 536usize , concat ! ( "Size of: " , stringify ! ( AVFrame ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVFrame > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVFrame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . linesize as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( linesize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . extended_data as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( extended_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . width as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( width ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . height as * const _ as usize } , 108usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( height ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . nb_samples as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( nb_samples ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . format as * const _ as usize } , 116usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . key_frame as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( key_frame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . pict_type as * const _ as usize } , 124usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( pict_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . sample_aspect_ratio as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( sample_aspect_ratio ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . pts as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( pts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . pkt_pts as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( pkt_pts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . pkt_dts as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( pkt_dts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . coded_picture_number as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( coded_picture_number ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . display_picture_number as * const _ as usize } , 164usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( display_picture_number ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . quality as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( quality ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . opaque as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( opaque ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . error as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( error ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . repeat_pict as * const _ as usize } , 248usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( repeat_pict ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . interlaced_frame as * const _ as usize } , 252usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( interlaced_frame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . top_field_first as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( top_field_first ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . palette_has_changed as * const _ as usize } , 260usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( palette_has_changed ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . reordered_opaque as * const _ as usize } , 264usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( reordered_opaque ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . sample_rate as * const _ as usize } , 272usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( sample_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . channel_layout as * const _ as usize } , 280usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( channel_layout ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . buf as * const _ as usize } , 288usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( buf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . extended_buf as * const _ as usize } , 352usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( extended_buf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . nb_extended_buf as * const _ as usize } , 360usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( nb_extended_buf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . side_data as * const _ as usize } , 368usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( side_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . nb_side_data as * const _ as usize } , 376usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( nb_side_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . flags as * const _ as usize } , 380usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . color_range as * const _ as usize } , 384usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( color_range ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . color_primaries as * const _ as usize } , 388usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( color_primaries ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . color_trc as * const _ as usize } , 392usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( color_trc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . colorspace as * const _ as usize } , 396usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( colorspace ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . chroma_location as * const _ as usize } , 400usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( chroma_location ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . best_effort_timestamp as * const _ as usize } , 408usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( best_effort_timestamp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . pkt_pos as * const _ as usize } , 416usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( pkt_pos ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . pkt_duration as * const _ as usize } , 424usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( pkt_duration ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . metadata as * const _ as usize } , 432usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( metadata ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . decode_error_flags as * const _ as usize } , 440usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( decode_error_flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . channels as * const _ as usize } , 444usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( channels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . pkt_size as * const _ as usize } , 448usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( pkt_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . qscale_table as * const _ as usize } , 456usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( qscale_table ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . qstride as * const _ as usize } , 464usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( qstride ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . qscale_type as * const _ as usize } , 468usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( qscale_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . qp_table_buf as * const _ as usize } , 472usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( qp_table_buf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . hw_frames_ctx as * const _ as usize } , 480usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( hw_frames_ctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . opaque_ref as * const _ as usize } , 488usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( opaque_ref ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . crop_top as * const _ as usize } , 496usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( crop_top ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . crop_bottom as * const _ as usize } , 504usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( crop_bottom ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . crop_left as * const _ as usize } , 512usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( crop_left ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . crop_right as * const _ as usize } , 520usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( crop_right ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFrame > ( ) ) ) . private_ref as * const _ as usize } , 528usize , concat ! ( "Offset of field: " , stringify ! ( AVFrame ) , "::" , stringify ! ( private_ref ) ) ) ; } 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 ) -> libc :: c_int ; } extern "C" { pub fn av_frame_set_channels ( frame : * mut AVFrame , val : libc :: c_int ) ; } extern "C" { pub fn av_frame_get_sample_rate ( frame : * const AVFrame ) -> libc :: c_int ; } extern "C" { pub fn av_frame_set_sample_rate ( frame : * mut AVFrame , val : libc :: 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 ) -> libc :: c_int ; } extern "C" { pub fn av_frame_set_decode_error_flags ( frame : * mut AVFrame , val : libc :: c_int ) ; } extern "C" { pub fn av_frame_get_pkt_size ( frame : * const AVFrame ) -> libc :: c_int ; } extern "C" { pub fn av_frame_set_pkt_size ( frame : * mut AVFrame , val : libc :: c_int ) ; } extern "C" { pub fn av_frame_get_qp_table ( f : * mut AVFrame , stride : * mut libc :: c_int , type_ : * mut libc :: c_int ) -> * mut i8 ; } extern "C" { pub fn av_frame_set_qp_table ( f : * mut AVFrame , buf : * mut AVBufferRef , stride : libc :: c_int , type_ : libc :: c_int ) -> libc :: 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 libc :: 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 ) -> libc :: 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 : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_frame_is_writable ( frame : * mut AVFrame ) -> libc :: c_int ; } extern "C" { pub fn av_frame_make_writable ( frame : * mut AVFrame ) -> libc :: c_int ; } extern "C" { pub fn av_frame_copy ( dst : * mut AVFrame , src : * const AVFrame ) -> libc :: c_int ; } extern "C" { pub fn av_frame_copy_props ( dst : * mut AVFrame , src : * const AVFrame ) -> libc :: c_int ; } extern "C" { pub fn av_frame_get_plane_buffer ( frame : * mut AVFrame , plane : libc :: c_int ) -> * mut AVBufferRef ; } extern "C" { pub fn av_frame_new_side_data ( frame : * mut AVFrame , type_ : AVFrameSideDataType , size : libc :: 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 = _bindgen_ty_2 :: AV_FRAME_CROP_UNALIGNED ; # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum _bindgen_ty_2 { AV_FRAME_CROP_UNALIGNED = 1 , } extern "C" { pub fn av_frame_apply_cropping ( frame : * mut AVFrame , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_frame_side_data_name ( type_ : AVFrameSideDataType ) -> * const libc :: c_char ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVHWDeviceType { AV_HWDEVICE_TYPE_NONE = 0 , AV_HWDEVICE_TYPE_VDPAU = 1 , AV_HWDEVICE_TYPE_CUDA = 2 , AV_HWDEVICE_TYPE_VAAPI = 3 , AV_HWDEVICE_TYPE_DXVA2 = 4 , AV_HWDEVICE_TYPE_QSV = 5 , AV_HWDEVICE_TYPE_VIDEOTOOLBOX = 6 , AV_HWDEVICE_TYPE_D3D11VA = 7 , AV_HWDEVICE_TYPE_DRM = 8 , AV_HWDEVICE_TYPE_OPENCL = 9 , AV_HWDEVICE_TYPE_MEDIACODEC = 10 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVHWDeviceInternal { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVHWDeviceContext { pub av_class : * const AVClass , pub internal : * mut AVHWDeviceInternal , pub type_ : AVHWDeviceType , pub hwctx : * mut libc :: c_void , pub free : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut AVHWDeviceContext ) > , pub user_opaque : * mut libc :: c_void , } # [ test ] fn bindgen_test_layout_AVHWDeviceContext ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVHWDeviceContext > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( AVHWDeviceContext ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVHWDeviceContext > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVHWDeviceContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWDeviceContext > ( ) ) ) . av_class as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVHWDeviceContext ) , "::" , stringify ! ( av_class ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWDeviceContext > ( ) ) ) . internal as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVHWDeviceContext ) , "::" , stringify ! ( internal ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWDeviceContext > ( ) ) ) . type_ as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVHWDeviceContext ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWDeviceContext > ( ) ) ) . hwctx as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVHWDeviceContext ) , "::" , stringify ! ( hwctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWDeviceContext > ( ) ) ) . free as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVHWDeviceContext ) , "::" , stringify ! ( free ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWDeviceContext > ( ) ) ) . user_opaque as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVHWDeviceContext ) , "::" , stringify ! ( user_opaque ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVHWFramesInternal { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] 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 libc :: c_void , pub free : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut AVHWFramesContext ) > , pub user_opaque : * mut libc :: c_void , pub pool : * mut AVBufferPool , pub initial_pool_size : libc :: c_int , pub format : AVPixelFormat , pub sw_format : AVPixelFormat , pub width : libc :: c_int , pub height : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVHWFramesContext ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVHWFramesContext > ( ) , 88usize , concat ! ( "Size of: " , stringify ! ( AVHWFramesContext ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVHWFramesContext > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVHWFramesContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesContext > ( ) ) ) . av_class as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesContext ) , "::" , stringify ! ( av_class ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesContext > ( ) ) ) . internal as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesContext ) , "::" , stringify ! ( internal ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesContext > ( ) ) ) . device_ref as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesContext ) , "::" , stringify ! ( device_ref ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesContext > ( ) ) ) . device_ctx as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesContext ) , "::" , stringify ! ( device_ctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesContext > ( ) ) ) . hwctx as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesContext ) , "::" , stringify ! ( hwctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesContext > ( ) ) ) . free as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesContext ) , "::" , stringify ! ( free ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesContext > ( ) ) ) . user_opaque as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesContext ) , "::" , stringify ! ( user_opaque ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesContext > ( ) ) ) . pool as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesContext ) , "::" , stringify ! ( pool ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesContext > ( ) ) ) . initial_pool_size as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesContext ) , "::" , stringify ! ( initial_pool_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesContext > ( ) ) ) . format as * const _ as usize } , 68usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesContext ) , "::" , stringify ! ( format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesContext > ( ) ) ) . sw_format as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesContext ) , "::" , stringify ! ( sw_format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesContext > ( ) ) ) . width as * const _ as usize } , 76usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesContext ) , "::" , stringify ! ( width ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesContext > ( ) ) ) . height as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesContext ) , "::" , stringify ! ( height ) ) ) ; } extern "C" { pub fn av_hwdevice_find_type_by_name ( name : * const libc :: c_char ) -> AVHWDeviceType ; } extern "C" { pub fn av_hwdevice_get_type_name ( type_ : AVHWDeviceType ) -> * const libc :: 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 ) -> libc :: c_int ; } extern "C" { pub fn av_hwdevice_ctx_create ( device_ctx : * mut * mut AVBufferRef , type_ : AVHWDeviceType , device : * const libc :: c_char , opts : * mut AVDictionary , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_hwdevice_ctx_create_derived ( dst_ctx : * mut * mut AVBufferRef , type_ : AVHWDeviceType , src_ctx : * mut AVBufferRef , flags : libc :: c_int ) -> libc :: 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 ) -> libc :: c_int ; } extern "C" { pub fn av_hwframe_get_buffer ( hwframe_ctx : * mut AVBufferRef , frame : * mut AVFrame , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_hwframe_transfer_data ( dst : * mut AVFrame , src : * const AVFrame , flags : libc :: c_int ) -> libc :: c_int ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVHWFrameTransferDirection { AV_HWFRAME_TRANSFER_DIRECTION_FROM = 0 , AV_HWFRAME_TRANSFER_DIRECTION_TO = 1 , } extern "C" { pub fn av_hwframe_transfer_get_formats ( hwframe_ctx : * mut AVBufferRef , dir : AVHWFrameTransferDirection , formats : * mut * mut AVPixelFormat , flags : libc :: c_int ) -> libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVHWFramesConstraints { pub valid_hw_formats : * mut AVPixelFormat , pub valid_sw_formats : * mut AVPixelFormat , pub min_width : libc :: c_int , pub min_height : libc :: c_int , pub max_width : libc :: c_int , pub max_height : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVHWFramesConstraints ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVHWFramesConstraints > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( AVHWFramesConstraints ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVHWFramesConstraints > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVHWFramesConstraints ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesConstraints > ( ) ) ) . valid_hw_formats as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesConstraints ) , "::" , stringify ! ( valid_hw_formats ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesConstraints > ( ) ) ) . valid_sw_formats as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesConstraints ) , "::" , stringify ! ( valid_sw_formats ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesConstraints > ( ) ) ) . min_width as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesConstraints ) , "::" , stringify ! ( min_width ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesConstraints > ( ) ) ) . min_height as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesConstraints ) , "::" , stringify ! ( min_height ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesConstraints > ( ) ) ) . max_width as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesConstraints ) , "::" , stringify ! ( max_width ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWFramesConstraints > ( ) ) ) . max_height as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( AVHWFramesConstraints ) , "::" , stringify ! ( max_height ) ) ) ; } extern "C" { pub fn av_hwdevice_hwconfig_alloc ( device_ctx : * mut AVBufferRef ) -> * mut libc :: c_void ; } extern "C" { pub fn av_hwdevice_get_hwframe_constraints ( ref_ : * mut AVBufferRef , hwconfig : * const libc :: 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 = _bindgen_ty_3 :: AV_HWFRAME_MAP_READ ; pub const AV_HWFRAME_MAP_WRITE : _bindgen_ty_3 = _bindgen_ty_3 :: AV_HWFRAME_MAP_WRITE ; pub const AV_HWFRAME_MAP_OVERWRITE : _bindgen_ty_3 = _bindgen_ty_3 :: AV_HWFRAME_MAP_OVERWRITE ; pub const AV_HWFRAME_MAP_DIRECT : _bindgen_ty_3 = _bindgen_ty_3 :: AV_HWFRAME_MAP_DIRECT ; # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum _bindgen_ty_3 { AV_HWFRAME_MAP_READ = 1 , AV_HWFRAME_MAP_WRITE = 2 , AV_HWFRAME_MAP_OVERWRITE = 4 , AV_HWFRAME_MAP_DIRECT = 8 , } extern "C" { pub fn av_hwframe_map ( dst : * mut AVFrame , src : * const AVFrame , flags : libc :: c_int ) -> libc :: 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 : libc :: c_int ) -> libc :: c_int ; } impl AVCodecID { pub const AV_CODEC_ID_PCM_S16LE : AVCodecID = AVCodecID :: AV_CODEC_ID_FIRST_AUDIO ; } impl AVCodecID { pub const AV_CODEC_ID_DVD_SUBTITLE : AVCodecID = AVCodecID :: AV_CODEC_ID_FIRST_SUBTITLE ; } impl AVCodecID { pub const AV_CODEC_ID_TTF : AVCodecID = AVCodecID :: AV_CODEC_ID_FIRST_UNKNOWN ; } # [ repr ( u32 ) ] # [ 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." ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVCodecID { AV_CODEC_ID_NONE = 0 , AV_CODEC_ID_MPEG1VIDEO = 1 , # [ doc = "< preferred ID for MPEG-1/2 video decoding" ] AV_CODEC_ID_MPEG2VIDEO = 2 , AV_CODEC_ID_H261 = 3 , AV_CODEC_ID_H263 = 4 , AV_CODEC_ID_RV10 = 5 , AV_CODEC_ID_RV20 = 6 , AV_CODEC_ID_MJPEG = 7 , AV_CODEC_ID_MJPEGB = 8 , AV_CODEC_ID_LJPEG = 9 , AV_CODEC_ID_SP5X = 10 , AV_CODEC_ID_JPEGLS = 11 , AV_CODEC_ID_MPEG4 = 12 , AV_CODEC_ID_RAWVIDEO = 13 , AV_CODEC_ID_MSMPEG4V1 = 14 , AV_CODEC_ID_MSMPEG4V2 = 15 , AV_CODEC_ID_MSMPEG4V3 = 16 , AV_CODEC_ID_WMV1 = 17 , AV_CODEC_ID_WMV2 = 18 , AV_CODEC_ID_H263P = 19 , AV_CODEC_ID_H263I = 20 , AV_CODEC_ID_FLV1 = 21 , AV_CODEC_ID_SVQ1 = 22 , AV_CODEC_ID_SVQ3 = 23 , AV_CODEC_ID_DVVIDEO = 24 , AV_CODEC_ID_HUFFYUV = 25 , AV_CODEC_ID_CYUV = 26 , AV_CODEC_ID_H264 = 27 , AV_CODEC_ID_INDEO3 = 28 , AV_CODEC_ID_VP3 = 29 , AV_CODEC_ID_THEORA = 30 , AV_CODEC_ID_ASV1 = 31 , AV_CODEC_ID_ASV2 = 32 , AV_CODEC_ID_FFV1 = 33 , AV_CODEC_ID_4XM = 34 , AV_CODEC_ID_VCR1 = 35 , AV_CODEC_ID_CLJR = 36 , AV_CODEC_ID_MDEC = 37 , AV_CODEC_ID_ROQ = 38 , AV_CODEC_ID_INTERPLAY_VIDEO = 39 , AV_CODEC_ID_XAN_WC3 = 40 , AV_CODEC_ID_XAN_WC4 = 41 , AV_CODEC_ID_RPZA = 42 , AV_CODEC_ID_CINEPAK = 43 , AV_CODEC_ID_WS_VQA = 44 , AV_CODEC_ID_MSRLE = 45 , AV_CODEC_ID_MSVIDEO1 = 46 , AV_CODEC_ID_IDCIN = 47 , AV_CODEC_ID_8BPS = 48 , AV_CODEC_ID_SMC = 49 , AV_CODEC_ID_FLIC = 50 , AV_CODEC_ID_TRUEMOTION1 = 51 , AV_CODEC_ID_VMDVIDEO = 52 , AV_CODEC_ID_MSZH = 53 , AV_CODEC_ID_ZLIB = 54 , AV_CODEC_ID_QTRLE = 55 , AV_CODEC_ID_TSCC = 56 , AV_CODEC_ID_ULTI = 57 , AV_CODEC_ID_QDRAW = 58 , AV_CODEC_ID_VIXL = 59 , AV_CODEC_ID_QPEG = 60 , AV_CODEC_ID_PNG = 61 , AV_CODEC_ID_PPM = 62 , AV_CODEC_ID_PBM = 63 , AV_CODEC_ID_PGM = 64 , AV_CODEC_ID_PGMYUV = 65 , AV_CODEC_ID_PAM = 66 , AV_CODEC_ID_FFVHUFF = 67 , AV_CODEC_ID_RV30 = 68 , AV_CODEC_ID_RV40 = 69 , AV_CODEC_ID_VC1 = 70 , AV_CODEC_ID_WMV3 = 71 , AV_CODEC_ID_LOCO = 72 , AV_CODEC_ID_WNV1 = 73 , AV_CODEC_ID_AASC = 74 , AV_CODEC_ID_INDEO2 = 75 , AV_CODEC_ID_FRAPS = 76 , AV_CODEC_ID_TRUEMOTION2 = 77 , AV_CODEC_ID_BMP = 78 , AV_CODEC_ID_CSCD = 79 , AV_CODEC_ID_MMVIDEO = 80 , AV_CODEC_ID_ZMBV = 81 , AV_CODEC_ID_AVS = 82 , AV_CODEC_ID_SMACKVIDEO = 83 , AV_CODEC_ID_NUV = 84 , AV_CODEC_ID_KMVC = 85 , AV_CODEC_ID_FLASHSV = 86 , AV_CODEC_ID_CAVS = 87 , AV_CODEC_ID_JPEG2000 = 88 , AV_CODEC_ID_VMNC = 89 , AV_CODEC_ID_VP5 = 90 , AV_CODEC_ID_VP6 = 91 , AV_CODEC_ID_VP6F = 92 , AV_CODEC_ID_TARGA = 93 , AV_CODEC_ID_DSICINVIDEO = 94 , AV_CODEC_ID_TIERTEXSEQVIDEO = 95 , AV_CODEC_ID_TIFF = 96 , AV_CODEC_ID_GIF = 97 , AV_CODEC_ID_DXA = 98 , AV_CODEC_ID_DNXHD = 99 , AV_CODEC_ID_THP = 100 , AV_CODEC_ID_SGI = 101 , AV_CODEC_ID_C93 = 102 , AV_CODEC_ID_BETHSOFTVID = 103 , AV_CODEC_ID_PTX = 104 , AV_CODEC_ID_TXD = 105 , AV_CODEC_ID_VP6A = 106 , AV_CODEC_ID_AMV = 107 , AV_CODEC_ID_VB = 108 , AV_CODEC_ID_PCX = 109 , AV_CODEC_ID_SUNRAST = 110 , AV_CODEC_ID_INDEO4 = 111 , AV_CODEC_ID_INDEO5 = 112 , AV_CODEC_ID_MIMIC = 113 , AV_CODEC_ID_RL2 = 114 , AV_CODEC_ID_ESCAPE124 = 115 , AV_CODEC_ID_DIRAC = 116 , AV_CODEC_ID_BFI = 117 , AV_CODEC_ID_CMV = 118 , AV_CODEC_ID_MOTIONPIXELS = 119 , AV_CODEC_ID_TGV = 120 , AV_CODEC_ID_TGQ = 121 , AV_CODEC_ID_TQI = 122 , AV_CODEC_ID_AURA = 123 , AV_CODEC_ID_AURA2 = 124 , AV_CODEC_ID_V210X = 125 , AV_CODEC_ID_TMV = 126 , AV_CODEC_ID_V210 = 127 , AV_CODEC_ID_DPX = 128 , AV_CODEC_ID_MAD = 129 , AV_CODEC_ID_FRWU = 130 , AV_CODEC_ID_FLASHSV2 = 131 , AV_CODEC_ID_CDGRAPHICS = 132 , AV_CODEC_ID_R210 = 133 , AV_CODEC_ID_ANM = 134 , AV_CODEC_ID_BINKVIDEO = 135 , AV_CODEC_ID_IFF_ILBM = 136 , AV_CODEC_ID_KGV1 = 137 , AV_CODEC_ID_YOP = 138 , AV_CODEC_ID_VP8 = 139 , AV_CODEC_ID_PICTOR = 140 , AV_CODEC_ID_ANSI = 141 , AV_CODEC_ID_A64_MULTI = 142 , AV_CODEC_ID_A64_MULTI5 = 143 , AV_CODEC_ID_R10K = 144 , AV_CODEC_ID_MXPEG = 145 , AV_CODEC_ID_LAGARITH = 146 , AV_CODEC_ID_PRORES = 147 , AV_CODEC_ID_JV = 148 , AV_CODEC_ID_DFA = 149 , AV_CODEC_ID_WMV3IMAGE = 150 , AV_CODEC_ID_VC1IMAGE = 151 , AV_CODEC_ID_UTVIDEO = 152 , AV_CODEC_ID_BMV_VIDEO = 153 , AV_CODEC_ID_VBLE = 154 , AV_CODEC_ID_DXTORY = 155 , AV_CODEC_ID_V410 = 156 , AV_CODEC_ID_XWD = 157 , AV_CODEC_ID_CDXL = 158 , AV_CODEC_ID_XBM = 159 , AV_CODEC_ID_ZEROCODEC = 160 , AV_CODEC_ID_MSS1 = 161 , AV_CODEC_ID_MSA1 = 162 , AV_CODEC_ID_TSCC2 = 163 , AV_CODEC_ID_MTS2 = 164 , AV_CODEC_ID_CLLC = 165 , AV_CODEC_ID_MSS2 = 166 , AV_CODEC_ID_VP9 = 167 , AV_CODEC_ID_AIC = 168 , AV_CODEC_ID_ESCAPE130 = 169 , AV_CODEC_ID_G2M = 170 , AV_CODEC_ID_WEBP = 171 , AV_CODEC_ID_HNM4_VIDEO = 172 , AV_CODEC_ID_HEVC = 173 , AV_CODEC_ID_FIC = 174 , AV_CODEC_ID_ALIAS_PIX = 175 , AV_CODEC_ID_BRENDER_PIX = 176 , AV_CODEC_ID_PAF_VIDEO = 177 , AV_CODEC_ID_EXR = 178 , AV_CODEC_ID_VP7 = 179 , AV_CODEC_ID_SANM = 180 , AV_CODEC_ID_SGIRLE = 181 , AV_CODEC_ID_MVC1 = 182 , AV_CODEC_ID_MVC2 = 183 , AV_CODEC_ID_HQX = 184 , AV_CODEC_ID_TDSC = 185 , AV_CODEC_ID_HQ_HQA = 186 , AV_CODEC_ID_HAP = 187 , AV_CODEC_ID_DDS = 188 , AV_CODEC_ID_DXV = 189 , AV_CODEC_ID_SCREENPRESSO = 190 , AV_CODEC_ID_RSCC = 191 , AV_CODEC_ID_AVS2 = 192 , AV_CODEC_ID_Y41P = 32768 , AV_CODEC_ID_AVRP = 32769 , AV_CODEC_ID_012V = 32770 , AV_CODEC_ID_AVUI = 32771 , AV_CODEC_ID_AYUV = 32772 , AV_CODEC_ID_TARGA_Y216 = 32773 , AV_CODEC_ID_V308 = 32774 , AV_CODEC_ID_V408 = 32775 , AV_CODEC_ID_YUV4 = 32776 , AV_CODEC_ID_AVRN = 32777 , AV_CODEC_ID_CPIA = 32778 , AV_CODEC_ID_XFACE = 32779 , AV_CODEC_ID_SNOW = 32780 , AV_CODEC_ID_SMVJPEG = 32781 , AV_CODEC_ID_APNG = 32782 , AV_CODEC_ID_DAALA = 32783 , AV_CODEC_ID_CFHD = 32784 , AV_CODEC_ID_TRUEMOTION2RT = 32785 , AV_CODEC_ID_M101 = 32786 , AV_CODEC_ID_MAGICYUV = 32787 , AV_CODEC_ID_SHEERVIDEO = 32788 , AV_CODEC_ID_YLC = 32789 , AV_CODEC_ID_PSD = 32790 , AV_CODEC_ID_PIXLET = 32791 , AV_CODEC_ID_SPEEDHQ = 32792 , AV_CODEC_ID_FMVC = 32793 , AV_CODEC_ID_SCPR = 32794 , AV_CODEC_ID_CLEARVIDEO = 32795 , AV_CODEC_ID_XPM = 32796 , AV_CODEC_ID_AV1 = 32797 , AV_CODEC_ID_BITPACKED = 32798 , AV_CODEC_ID_MSCC = 32799 , AV_CODEC_ID_SRGC = 32800 , AV_CODEC_ID_SVG = 32801 , AV_CODEC_ID_GDV = 32802 , AV_CODEC_ID_FITS = 32803 , AV_CODEC_ID_IMM4 = 32804 , AV_CODEC_ID_PROSUMER = 32805 , AV_CODEC_ID_MWSC = 32806 , AV_CODEC_ID_WCMV = 32807 , AV_CODEC_ID_RASC = 32808 , AV_CODEC_ID_HYMT = 32809 , AV_CODEC_ID_ARBC = 32810 , AV_CODEC_ID_AGM = 32811 , AV_CODEC_ID_LSCR = 32812 , AV_CODEC_ID_VP4 = 32813 , # [ doc = "< A dummy id pointing at the start of audio codecs" ] AV_CODEC_ID_FIRST_AUDIO = 65536 , AV_CODEC_ID_PCM_S16BE = 65537 , AV_CODEC_ID_PCM_U16LE = 65538 , AV_CODEC_ID_PCM_U16BE = 65539 , AV_CODEC_ID_PCM_S8 = 65540 , AV_CODEC_ID_PCM_U8 = 65541 , AV_CODEC_ID_PCM_MULAW = 65542 , AV_CODEC_ID_PCM_ALAW = 65543 , AV_CODEC_ID_PCM_S32LE = 65544 , AV_CODEC_ID_PCM_S32BE = 65545 , AV_CODEC_ID_PCM_U32LE = 65546 , AV_CODEC_ID_PCM_U32BE = 65547 , AV_CODEC_ID_PCM_S24LE = 65548 , AV_CODEC_ID_PCM_S24BE = 65549 , AV_CODEC_ID_PCM_U24LE = 65550 , AV_CODEC_ID_PCM_U24BE = 65551 , AV_CODEC_ID_PCM_S24DAUD = 65552 , AV_CODEC_ID_PCM_ZORK = 65553 , AV_CODEC_ID_PCM_S16LE_PLANAR = 65554 , AV_CODEC_ID_PCM_DVD = 65555 , AV_CODEC_ID_PCM_F32BE = 65556 , AV_CODEC_ID_PCM_F32LE = 65557 , AV_CODEC_ID_PCM_F64BE = 65558 , AV_CODEC_ID_PCM_F64LE = 65559 , AV_CODEC_ID_PCM_BLURAY = 65560 , AV_CODEC_ID_PCM_LXF = 65561 , AV_CODEC_ID_S302M = 65562 , AV_CODEC_ID_PCM_S8_PLANAR = 65563 , AV_CODEC_ID_PCM_S24LE_PLANAR = 65564 , AV_CODEC_ID_PCM_S32LE_PLANAR = 65565 , AV_CODEC_ID_PCM_S16BE_PLANAR = 65566 , AV_CODEC_ID_PCM_S64LE = 67584 , AV_CODEC_ID_PCM_S64BE = 67585 , AV_CODEC_ID_PCM_F16LE = 67586 , AV_CODEC_ID_PCM_F24LE = 67587 , AV_CODEC_ID_PCM_VIDC = 67588 , AV_CODEC_ID_ADPCM_IMA_QT = 69632 , AV_CODEC_ID_ADPCM_IMA_WAV = 69633 , AV_CODEC_ID_ADPCM_IMA_DK3 = 69634 , AV_CODEC_ID_ADPCM_IMA_DK4 = 69635 , AV_CODEC_ID_ADPCM_IMA_WS = 69636 , AV_CODEC_ID_ADPCM_IMA_SMJPEG = 69637 , AV_CODEC_ID_ADPCM_MS = 69638 , AV_CODEC_ID_ADPCM_4XM = 69639 , AV_CODEC_ID_ADPCM_XA = 69640 , AV_CODEC_ID_ADPCM_ADX = 69641 , AV_CODEC_ID_ADPCM_EA = 69642 , AV_CODEC_ID_ADPCM_G726 = 69643 , AV_CODEC_ID_ADPCM_CT = 69644 , AV_CODEC_ID_ADPCM_SWF = 69645 , AV_CODEC_ID_ADPCM_YAMAHA = 69646 , AV_CODEC_ID_ADPCM_SBPRO_4 = 69647 , AV_CODEC_ID_ADPCM_SBPRO_3 = 69648 , AV_CODEC_ID_ADPCM_SBPRO_2 = 69649 , AV_CODEC_ID_ADPCM_THP = 69650 , AV_CODEC_ID_ADPCM_IMA_AMV = 69651 , AV_CODEC_ID_ADPCM_EA_R1 = 69652 , AV_CODEC_ID_ADPCM_EA_R3 = 69653 , AV_CODEC_ID_ADPCM_EA_R2 = 69654 , AV_CODEC_ID_ADPCM_IMA_EA_SEAD = 69655 , AV_CODEC_ID_ADPCM_IMA_EA_EACS = 69656 , AV_CODEC_ID_ADPCM_EA_XAS = 69657 , AV_CODEC_ID_ADPCM_EA_MAXIS_XA = 69658 , AV_CODEC_ID_ADPCM_IMA_ISS = 69659 , AV_CODEC_ID_ADPCM_G722 = 69660 , AV_CODEC_ID_ADPCM_IMA_APC = 69661 , AV_CODEC_ID_ADPCM_VIMA = 69662 , AV_CODEC_ID_ADPCM_AFC = 71680 , AV_CODEC_ID_ADPCM_IMA_OKI = 71681 , AV_CODEC_ID_ADPCM_DTK = 71682 , AV_CODEC_ID_ADPCM_IMA_RAD = 71683 , AV_CODEC_ID_ADPCM_G726LE = 71684 , AV_CODEC_ID_ADPCM_THP_LE = 71685 , AV_CODEC_ID_ADPCM_PSX = 71686 , AV_CODEC_ID_ADPCM_AICA = 71687 , AV_CODEC_ID_ADPCM_IMA_DAT4 = 71688 , AV_CODEC_ID_ADPCM_MTAF = 71689 , AV_CODEC_ID_ADPCM_AGM = 71690 , AV_CODEC_ID_AMR_NB = 73728 , AV_CODEC_ID_AMR_WB = 73729 , AV_CODEC_ID_RA_144 = 77824 , AV_CODEC_ID_RA_288 = 77825 , AV_CODEC_ID_ROQ_DPCM = 81920 , AV_CODEC_ID_INTERPLAY_DPCM = 81921 , AV_CODEC_ID_XAN_DPCM = 81922 , AV_CODEC_ID_SOL_DPCM = 81923 , AV_CODEC_ID_SDX2_DPCM = 83968 , AV_CODEC_ID_GREMLIN_DPCM = 83969 , AV_CODEC_ID_MP2 = 86016 , # [ doc = "< preferred ID for decoding MPEG audio layer 1, 2 or 3" ] AV_CODEC_ID_MP3 = 86017 , AV_CODEC_ID_AAC = 86018 , AV_CODEC_ID_AC3 = 86019 , AV_CODEC_ID_DTS = 86020 , AV_CODEC_ID_VORBIS = 86021 , AV_CODEC_ID_DVAUDIO = 86022 , AV_CODEC_ID_WMAV1 = 86023 , AV_CODEC_ID_WMAV2 = 86024 , AV_CODEC_ID_MACE3 = 86025 , AV_CODEC_ID_MACE6 = 86026 , AV_CODEC_ID_VMDAUDIO = 86027 , AV_CODEC_ID_FLAC = 86028 , AV_CODEC_ID_MP3ADU = 86029 , AV_CODEC_ID_MP3ON4 = 86030 , AV_CODEC_ID_SHORTEN = 86031 , AV_CODEC_ID_ALAC = 86032 , AV_CODEC_ID_WESTWOOD_SND1 = 86033 , # [ doc = "< as in Berlin toast format" ] AV_CODEC_ID_GSM = 86034 , AV_CODEC_ID_QDM2 = 86035 , AV_CODEC_ID_COOK = 86036 , AV_CODEC_ID_TRUESPEECH = 86037 , AV_CODEC_ID_TTA = 86038 , AV_CODEC_ID_SMACKAUDIO = 86039 , AV_CODEC_ID_QCELP = 86040 , AV_CODEC_ID_WAVPACK = 86041 , AV_CODEC_ID_DSICINAUDIO = 86042 , AV_CODEC_ID_IMC = 86043 , AV_CODEC_ID_MUSEPACK7 = 86044 , AV_CODEC_ID_MLP = 86045 , AV_CODEC_ID_GSM_MS = 86046 , AV_CODEC_ID_ATRAC3 = 86047 , AV_CODEC_ID_APE = 86048 , AV_CODEC_ID_NELLYMOSER = 86049 , AV_CODEC_ID_MUSEPACK8 = 86050 , AV_CODEC_ID_SPEEX = 86051 , AV_CODEC_ID_WMAVOICE = 86052 , AV_CODEC_ID_WMAPRO = 86053 , AV_CODEC_ID_WMALOSSLESS = 86054 , AV_CODEC_ID_ATRAC3P = 86055 , AV_CODEC_ID_EAC3 = 86056 , AV_CODEC_ID_SIPR = 86057 , AV_CODEC_ID_MP1 = 86058 , AV_CODEC_ID_TWINVQ = 86059 , AV_CODEC_ID_TRUEHD = 86060 , AV_CODEC_ID_MP4ALS = 86061 , AV_CODEC_ID_ATRAC1 = 86062 , AV_CODEC_ID_BINKAUDIO_RDFT = 86063 , AV_CODEC_ID_BINKAUDIO_DCT = 86064 , AV_CODEC_ID_AAC_LATM = 86065 , AV_CODEC_ID_QDMC = 86066 , AV_CODEC_ID_CELT = 86067 , AV_CODEC_ID_G723_1 = 86068 , AV_CODEC_ID_G729 = 86069 , AV_CODEC_ID_8SVX_EXP = 86070 , AV_CODEC_ID_8SVX_FIB = 86071 , AV_CODEC_ID_BMV_AUDIO = 86072 , AV_CODEC_ID_RALF = 86073 , AV_CODEC_ID_IAC = 86074 , AV_CODEC_ID_ILBC = 86075 , AV_CODEC_ID_OPUS = 86076 , AV_CODEC_ID_COMFORT_NOISE = 86077 , AV_CODEC_ID_TAK = 86078 , AV_CODEC_ID_METASOUND = 86079 , AV_CODEC_ID_PAF_AUDIO = 86080 , AV_CODEC_ID_ON2AVC = 86081 , AV_CODEC_ID_DSS_SP = 86082 , AV_CODEC_ID_CODEC2 = 86083 , AV_CODEC_ID_FFWAVESYNTH = 88064 , AV_CODEC_ID_SONIC = 88065 , AV_CODEC_ID_SONIC_LS = 88066 , AV_CODEC_ID_EVRC = 88067 , AV_CODEC_ID_SMV = 88068 , AV_CODEC_ID_DSD_LSBF = 88069 , AV_CODEC_ID_DSD_MSBF = 88070 , AV_CODEC_ID_DSD_LSBF_PLANAR = 88071 , AV_CODEC_ID_DSD_MSBF_PLANAR = 88072 , AV_CODEC_ID_4GV = 88073 , AV_CODEC_ID_INTERPLAY_ACM = 88074 , AV_CODEC_ID_XMA1 = 88075 , AV_CODEC_ID_XMA2 = 88076 , AV_CODEC_ID_DST = 88077 , AV_CODEC_ID_ATRAC3AL = 88078 , AV_CODEC_ID_ATRAC3PAL = 88079 , AV_CODEC_ID_DOLBY_E = 88080 , AV_CODEC_ID_APTX = 88081 , AV_CODEC_ID_APTX_HD = 88082 , AV_CODEC_ID_SBC = 88083 , AV_CODEC_ID_ATRAC9 = 88084 , AV_CODEC_ID_HCOM = 88085 , # [ doc = "< A dummy ID pointing at the start of subtitle codecs." ] AV_CODEC_ID_FIRST_SUBTITLE = 94208 , AV_CODEC_ID_DVB_SUBTITLE = 94209 , # [ doc = "< raw UTF-8 text" ] AV_CODEC_ID_TEXT = 94210 , AV_CODEC_ID_XSUB = 94211 , AV_CODEC_ID_SSA = 94212 , AV_CODEC_ID_MOV_TEXT = 94213 , AV_CODEC_ID_HDMV_PGS_SUBTITLE = 94214 , AV_CODEC_ID_DVB_TELETEXT = 94215 , AV_CODEC_ID_SRT = 94216 , AV_CODEC_ID_MICRODVD = 96256 , AV_CODEC_ID_EIA_608 = 96257 , AV_CODEC_ID_JACOSUB = 96258 , AV_CODEC_ID_SAMI = 96259 , AV_CODEC_ID_REALTEXT = 96260 , AV_CODEC_ID_STL = 96261 , AV_CODEC_ID_SUBVIEWER1 = 96262 , AV_CODEC_ID_SUBVIEWER = 96263 , AV_CODEC_ID_SUBRIP = 96264 , AV_CODEC_ID_WEBVTT = 96265 , AV_CODEC_ID_MPL2 = 96266 , AV_CODEC_ID_VPLAYER = 96267 , AV_CODEC_ID_PJS = 96268 , AV_CODEC_ID_ASS = 96269 , AV_CODEC_ID_HDMV_TEXT_SUBTITLE = 96270 , AV_CODEC_ID_TTML = 96271 , AV_CODEC_ID_ARIB_CAPTION = 96272 , # [ doc = "< A dummy ID pointing at the start of various fake codecs." ] AV_CODEC_ID_FIRST_UNKNOWN = 98304 , # [ doc = "< Contain timestamp estimated through PCR of program stream." ] AV_CODEC_ID_SCTE_35 = 98305 , AV_CODEC_ID_BINTEXT = 100352 , AV_CODEC_ID_XBIN = 100353 , AV_CODEC_ID_IDF = 100354 , AV_CODEC_ID_OTF = 100355 , AV_CODEC_ID_SMPTE_KLV = 100356 , AV_CODEC_ID_DVD_NAV = 100357 , AV_CODEC_ID_TIMED_ID3 = 100358 , AV_CODEC_ID_BIN_DATA = 100359 , # [ doc = "< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it" ] AV_CODEC_ID_PROBE = 102400 , # [ doc = "< _FAKE_ codec to indicate a raw MPEG-2 TS" ] # [ doc = " stream (only used by libavformat)" ] AV_CODEC_ID_MPEG2TS = 131072 , # [ doc = "< _FAKE_ codec to indicate a MPEG-4 Systems" ] # [ doc = " stream (only used by libavformat)" ] AV_CODEC_ID_MPEG4SYSTEMS = 131073 , # [ doc = "< Dummy codec for streams containing only metadata information." ] AV_CODEC_ID_FFMETADATA = 135168 , # [ doc = "< Passthrough codec, AVFrames wrapped in AVPacket" ] AV_CODEC_ID_WRAPPED_AVFRAME = 135169 , } # [ 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 , PartialEq , Eq ) ] 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 libc :: c_char , # [ doc = " A more descriptive name for this codec. May be NULL." ] pub long_name : * const libc :: c_char , # [ doc = " Codec properties, a combination of AV_CODEC_PROP_* flags." ] pub props : libc :: 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 libc :: c_char , # [ doc = " If non-NULL, an array of profiles recognized for this codec." ] # [ doc = " Terminated with FF_PROFILE_UNKNOWN." ] pub profiles : * const AVProfile , } # [ test ] fn bindgen_test_layout_AVCodecDescriptor ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVCodecDescriptor > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( AVCodecDescriptor ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVCodecDescriptor > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVCodecDescriptor ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecDescriptor > ( ) ) ) . id as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecDescriptor ) , "::" , stringify ! ( id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecDescriptor > ( ) ) ) . type_ as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecDescriptor ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecDescriptor > ( ) ) ) . name as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecDescriptor ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecDescriptor > ( ) ) ) . long_name as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecDescriptor ) , "::" , stringify ! ( long_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecDescriptor > ( ) ) ) . props as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecDescriptor ) , "::" , stringify ! ( props ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecDescriptor > ( ) ) ) . mime_types as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecDescriptor ) , "::" , stringify ! ( mime_types ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecDescriptor > ( ) ) ) . profiles as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecDescriptor ) , "::" , stringify ! ( profiles ) ) ) ; } # [ repr ( i32 ) ] # [ doc = " @ingroup lavc_decoding" ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVDiscard { # [ doc = "< discard nothing" ] AVDISCARD_NONE = - 16 , # [ doc = "< discard useless packets like 0 size packets in avi" ] AVDISCARD_DEFAULT = 0 , # [ doc = "< discard all non reference" ] AVDISCARD_NONREF = 8 , # [ doc = "< discard all bidirectional frames" ] AVDISCARD_BIDIR = 16 , # [ doc = "< discard all non intra frames" ] AVDISCARD_NONINTRA = 24 , # [ doc = "< discard all frames except keyframes" ] AVDISCARD_NONKEY = 32 , # [ doc = "< discard all" ] AVDISCARD_ALL = 48 , } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVAudioServiceType { AV_AUDIO_SERVICE_TYPE_MAIN = 0 , AV_AUDIO_SERVICE_TYPE_EFFECTS = 1 , AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED = 2 , AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED = 3 , AV_AUDIO_SERVICE_TYPE_DIALOGUE = 4 , AV_AUDIO_SERVICE_TYPE_COMMENTARY = 5 , AV_AUDIO_SERVICE_TYPE_EMERGENCY = 6 , AV_AUDIO_SERVICE_TYPE_VOICE_OVER = 7 , AV_AUDIO_SERVICE_TYPE_KARAOKE = 8 , # [ doc = "< Not part of ABI" ] AV_AUDIO_SERVICE_TYPE_NB = 9 , } # [ doc = " @ingroup lavc_encoding" ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq ) ] pub struct RcOverride { pub start_frame : libc :: c_int , pub end_frame : libc :: c_int , pub qscale : libc :: c_int , pub quality_factor : f32 , } # [ test ] fn bindgen_test_layout_RcOverride ( ) { assert_eq ! ( :: std :: mem :: size_of :: < RcOverride > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( RcOverride ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < RcOverride > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( RcOverride ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < RcOverride > ( ) ) ) . start_frame as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( RcOverride ) , "::" , stringify ! ( start_frame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < RcOverride > ( ) ) ) . end_frame as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( RcOverride ) , "::" , stringify ! ( end_frame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < RcOverride > ( ) ) ) . qscale as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( RcOverride ) , "::" , stringify ! ( qscale ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < RcOverride > ( ) ) ) . quality_factor as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( RcOverride ) , "::" , stringify ! ( quality_factor ) ) ) ; } # [ 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 , PartialEq , Eq ) ] pub struct AVPanScan { # [ doc = " id" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: Set by libavcodec." ] pub id : libc :: c_int , # [ doc = " width and height in 1/16 pel" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: Set by libavcodec." ] pub width : libc :: c_int , pub height : libc :: 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 ] , } # [ test ] fn bindgen_test_layout_AVPanScan ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVPanScan > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( AVPanScan ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVPanScan > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( AVPanScan ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPanScan > ( ) ) ) . id as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVPanScan ) , "::" , stringify ! ( id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPanScan > ( ) ) ) . width as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVPanScan ) , "::" , stringify ! ( width ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPanScan > ( ) ) ) . height as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVPanScan ) , "::" , stringify ! ( height ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPanScan > ( ) ) ) . position as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVPanScan ) , "::" , stringify ! ( position ) ) ) ; } # [ 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 , PartialEq , Eq ) ] pub struct AVCPBProperties { pub max_bitrate : libc :: c_int , pub min_bitrate : libc :: c_int , pub avg_bitrate : libc :: 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 : libc :: 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 , } # [ test ] fn bindgen_test_layout_AVCPBProperties ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVCPBProperties > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( AVCPBProperties ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVCPBProperties > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVCPBProperties ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCPBProperties > ( ) ) ) . max_bitrate as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVCPBProperties ) , "::" , stringify ! ( max_bitrate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCPBProperties > ( ) ) ) . min_bitrate as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVCPBProperties ) , "::" , stringify ! ( min_bitrate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCPBProperties > ( ) ) ) . avg_bitrate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVCPBProperties ) , "::" , stringify ! ( avg_bitrate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCPBProperties > ( ) ) ) . buffer_size as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVCPBProperties ) , "::" , stringify ! ( buffer_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCPBProperties > ( ) ) ) . vbv_delay as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVCPBProperties ) , "::" , stringify ! ( vbv_delay ) ) ) ; } # [ repr ( u32 ) ] # [ doc = " @defgroup lavc_packet AVPacket" ] # [ doc = "" ] # [ doc = " Types and functions for working with AVPacket." ] # [ doc = " @{" ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVPacketSideDataType { # [ 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." ] AV_PKT_DATA_PALETTE = 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." ] AV_PKT_DATA_NEW_EXTRADATA = 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" ] AV_PKT_DATA_PARAM_CHANGE = 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" ] AV_PKT_DATA_H263_MB_INFO = 3 , # [ doc = " This side data should be associated with an audio stream and contains" ] # [ doc = " ReplayGain information in form of the AVReplayGain struct." ] AV_PKT_DATA_REPLAYGAIN = 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." ] AV_PKT_DATA_DISPLAYMATRIX = 5 , # [ doc = " This side data should be associated with a video stream and contains" ] # [ doc = " Stereoscopic 3D information in form of the AVStereo3D struct." ] AV_PKT_DATA_STEREO3D = 6 , # [ doc = " This side data should be associated with an audio stream and corresponds" ] # [ doc = " to enum AVAudioServiceType." ] AV_PKT_DATA_AUDIO_SERVICE_TYPE = 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" ] AV_PKT_DATA_QUALITY_STATS = 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." ] AV_PKT_DATA_FALLBACK_TRACK = 9 , # [ doc = " This side data corresponds to the AVCPBProperties struct." ] AV_PKT_DATA_CPB_PROPERTIES = 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" ] AV_PKT_DATA_SKIP_SAMPLES = 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" ] AV_PKT_DATA_JP_DUALMONO = 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." ] AV_PKT_DATA_STRINGS_METADATA = 13 , # [ doc = " Subtitle event position" ] # [ doc = " @code" ] # [ doc = " u32le x1" ] # [ doc = " u32le y1" ] # [ doc = " u32le x2" ] # [ doc = " u32le y2" ] # [ doc = " @endcode" ] AV_PKT_DATA_SUBTITLE_POSITION = 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." ] AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL = 15 , # [ doc = " The optional first identifier line of a WebVTT cue." ] AV_PKT_DATA_WEBVTT_IDENTIFIER = 16 , # [ doc = " The optional settings (rendering instructions) that immediately" ] # [ doc = " follow the timestamp specifier of a WebVTT cue." ] AV_PKT_DATA_WEBVTT_SETTINGS = 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." ] AV_PKT_DATA_METADATA_UPDATE = 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." ] AV_PKT_DATA_MPEGTS_STREAM_ID = 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." ] AV_PKT_DATA_MASTERING_DISPLAY_METADATA = 20 , # [ doc = " This side data should be associated with a video stream and corresponds" ] # [ doc = " to the AVSphericalMapping structure." ] AV_PKT_DATA_SPHERICAL = 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." ] AV_PKT_DATA_CONTENT_LIGHT_LEVEL = 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." ] AV_PKT_DATA_A53_CC = 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." ] AV_PKT_DATA_ENCRYPTION_INIT_INFO = 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." ] AV_PKT_DATA_ENCRYPTION_INFO = 25 , # [ doc = " Active Format Description data consisting of a single byte as specified" ] # [ doc = " in ETSI TS 101 154 using AVActiveFormatDescription enum." ] AV_PKT_DATA_AFD = 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." ] AV_PKT_DATA_NB = 27 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVPacketSideData { pub data : * mut u8 , pub size : libc :: c_int , pub type_ : AVPacketSideDataType , } # [ test ] fn bindgen_test_layout_AVPacketSideData ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVPacketSideData > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( AVPacketSideData ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVPacketSideData > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVPacketSideData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacketSideData > ( ) ) ) . data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVPacketSideData ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacketSideData > ( ) ) ) . size as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVPacketSideData ) , "::" , stringify ! ( size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacketSideData > ( ) ) ) . type_ as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVPacketSideData ) , "::" , stringify ! ( type_ ) ) ) ; } # [ 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 , PartialEq , Eq ) ] 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 : libc :: c_int , pub stream_index : libc :: c_int , # [ doc = " A combination of AV_PKT_FLAG values" ] pub flags : libc :: 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 : libc :: 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 , } # [ test ] fn bindgen_test_layout_AVPacket ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVPacket > ( ) , 88usize , concat ! ( "Size of: " , stringify ! ( AVPacket ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVPacket > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVPacket ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacket > ( ) ) ) . buf as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVPacket ) , "::" , stringify ! ( buf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacket > ( ) ) ) . pts as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVPacket ) , "::" , stringify ! ( pts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacket > ( ) ) ) . dts as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVPacket ) , "::" , stringify ! ( dts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacket > ( ) ) ) . data as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVPacket ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacket > ( ) ) ) . size as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVPacket ) , "::" , stringify ! ( size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacket > ( ) ) ) . stream_index as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( AVPacket ) , "::" , stringify ! ( stream_index ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacket > ( ) ) ) . flags as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVPacket ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacket > ( ) ) ) . side_data as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVPacket ) , "::" , stringify ! ( side_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacket > ( ) ) ) . side_data_elems as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVPacket ) , "::" , stringify ! ( side_data_elems ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacket > ( ) ) ) . duration as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVPacket ) , "::" , stringify ! ( duration ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacket > ( ) ) ) . pos as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVPacket ) , "::" , stringify ! ( pos ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacket > ( ) ) ) . convergence_duration as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVPacket ) , "::" , stringify ! ( convergence_duration ) ) ) ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVSideDataParamChangeFlags { AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = 1 , AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT = 2 , AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE = 4 , AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS = 8 , } # [ doc = " @}" ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVCodecInternal { _unused : [ u8 ; 0 ] , } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVFieldOrder { AV_FIELD_UNKNOWN = 0 , AV_FIELD_PROGRESSIVE = 1 , AV_FIELD_TT = 2 , AV_FIELD_BB = 3 , AV_FIELD_TB = 4 , AV_FIELD_BT = 5 , } # [ 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 , PartialEq ) ] 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 : libc :: 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 : libc :: c_uint , pub priv_data : * mut libc :: 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 libc :: 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 : libc :: 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 : libc :: c_int , # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub compression_level : libc :: c_int , # [ doc = " AV_CODEC_FLAG_*." ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: Set by user." ] pub flags : libc :: c_int , # [ doc = " AV_CODEC_FLAG2_*" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: Set by user." ] pub flags2 : libc :: 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 : libc :: 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 : libc :: 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 : libc :: 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 : libc :: 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 : libc :: 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 : libc :: 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 : libc :: 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 : libc :: 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 libc :: c_int , y : libc :: c_int , type_ : libc :: c_int , height : libc :: 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 : libc :: 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 : libc :: 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 : libc :: c_int , # [ doc = " @deprecated use encoder private options instead" ] pub mpeg_quant : libc :: 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 : libc :: c_int , # [ doc = " @deprecated use encoder private options instead" ] pub prediction_method : libc :: 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 libc :: 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 : libc :: c_int , # [ doc = " subpixel motion estimation comparison function" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub me_sub_cmp : libc :: c_int , # [ doc = " macroblock comparison function (not supported yet)" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub mb_cmp : libc :: c_int , # [ doc = " interlaced DCT comparison function" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub ildct_cmp : libc :: c_int , # [ doc = " ME diamond size & shape" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub dia_size : libc :: 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 : libc :: c_int , # [ doc = " @deprecated use encoder private options instead" ] pub pre_me : libc :: c_int , # [ doc = " motion estimation prepass comparison function" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub me_pre_cmp : libc :: c_int , # [ doc = " ME prepass diamond size & shape" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub pre_dia_size : libc :: c_int , # [ doc = " subpel ME quality" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub me_subpel_quality : libc :: 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 : libc :: c_int , # [ doc = " slice flags" ] # [ doc = " - encoding: unused" ] # [ doc = " - decoding: Set by user." ] pub slice_flags : libc :: c_int , # [ doc = " macroblock decision mode" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub mb_decision : libc :: c_int , # [ doc = " custom intra quantization matrix" ] # [ doc = " Must be allocated with the av_malloc() family of functions, and will be freed in" ] # [ doc = " avcodec_free_context()." ] # [ doc = " - encoding: Set/allocated by user, freed by libavcodec. Can be NULL." ] # [ doc = " - decoding: Set/allocated/freed by libavcodec." ] pub intra_matrix : * mut u16 , # [ doc = " custom inter quantization matrix" ] # [ doc = " Must be allocated with the av_malloc() family of functions, and will be freed in" ] # [ doc = " avcodec_free_context()." ] # [ doc = " - encoding: Set/allocated by user, freed by libavcodec. Can be NULL." ] # [ doc = " - decoding: Set/allocated/freed by libavcodec." ] pub inter_matrix : * mut u16 , # [ doc = " @deprecated use encoder private options instead" ] pub scenechange_threshold : libc :: c_int , # [ doc = " @deprecated use encoder private options instead" ] pub noise_reduction : libc :: c_int , # [ doc = " precision of the intra DC coefficient - 8" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: Set by libavcodec" ] pub intra_dc_precision : libc :: c_int , # [ doc = " Number of macroblock rows at the top which are skipped." ] # [ doc = " - encoding: unused" ] # [ doc = " - decoding: Set by user." ] pub skip_top : libc :: c_int , # [ doc = " Number of macroblock rows at the bottom which are skipped." ] # [ doc = " - encoding: unused" ] # [ doc = " - decoding: Set by user." ] pub skip_bottom : libc :: c_int , # [ doc = " minimum MB Lagrange multiplier" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub mb_lmin : libc :: c_int , # [ doc = " maximum MB Lagrange multiplier" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub mb_lmax : libc :: c_int , # [ doc = " @deprecated use encoder private options instead" ] pub me_penalty_compensation : libc :: c_int , # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub bidir_refine : libc :: c_int , # [ doc = " @deprecated use encoder private options instead" ] pub brd_scale : libc :: c_int , # [ doc = " minimum GOP size" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub keyint_min : libc :: c_int , # [ doc = " number of reference frames" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: Set by lavc." ] pub refs : libc :: c_int , # [ doc = " @deprecated use encoder private options instead" ] pub chromaoffset : libc :: 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 : libc :: c_int , # [ doc = " @deprecated use encoder private options instead" ] pub b_sensitivity : libc :: 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 : libc :: 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 : libc :: c_int , # [ doc = "< number of audio channels" ] pub channels : libc :: 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 : libc :: 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 : libc :: 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 : libc :: c_int , # [ doc = " Audio cutoff bandwidth (0 means \"automatic\")" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub cutoff : libc :: 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 : libc :: c_int ) -> libc :: 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 : libc :: 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 : libc :: c_int , # [ doc = " maximum quantizer" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub qmax : libc :: c_int , # [ doc = " maximum quantizer difference between frames" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub max_qdiff : libc :: c_int , # [ doc = " decoder bitstream buffer size" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub rc_buffer_size : libc :: c_int , # [ doc = " ratecontrol override, see RcOverride" ] # [ doc = " - encoding: Allocated/set/freed by user." ] # [ doc = " - decoding: unused" ] pub rc_override_count : libc :: 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 : libc :: c_int , # [ doc = " @deprecated use encoder private options instead" ] pub coder_type : libc :: c_int , # [ doc = " @deprecated use encoder private options instead" ] pub context_model : libc :: c_int , # [ doc = " @deprecated use encoder private options instead" ] pub frame_skip_threshold : libc :: c_int , # [ doc = " @deprecated use encoder private options instead" ] pub frame_skip_factor : libc :: c_int , # [ doc = " @deprecated use encoder private options instead" ] pub frame_skip_exp : libc :: c_int , # [ doc = " @deprecated use encoder private options instead" ] pub frame_skip_cmp : libc :: c_int , # [ doc = " trellis RD quantization" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub trellis : libc :: c_int , # [ doc = " @deprecated use encoder private options instead" ] pub min_prediction_order : libc :: c_int , # [ doc = " @deprecated use encoder private options instead" ] pub max_prediction_order : libc :: 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 libc :: c_void , size : libc :: c_int , mb_nb : libc :: c_int ) > , # [ doc = " @deprecated use encoder private options instead" ] pub rtp_payload_size : libc :: c_int , pub mv_bits : libc :: c_int , pub header_bits : libc :: c_int , pub i_tex_bits : libc :: c_int , pub p_tex_bits : libc :: c_int , pub i_count : libc :: c_int , pub p_count : libc :: c_int , pub skip_count : libc :: c_int , pub misc_bits : libc :: c_int , # [ doc = " @deprecated this field is unused" ] pub frame_bits : libc :: c_int , # [ doc = " pass1 encoding statistics output buffer" ] # [ doc = " - encoding: Set by libavcodec." ] # [ doc = " - decoding: unused" ] pub stats_out : * mut libc :: 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 libc :: 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 : libc :: 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 : libc :: c_int , # [ doc = " error concealment flags" ] # [ doc = " - encoding: unused" ] # [ doc = " - decoding: Set by user." ] pub error_concealment : libc :: c_int , # [ doc = " debug" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: Set by user." ] pub debug : libc :: 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 : libc :: c_int , # [ doc = " opaque 64-bit number (generally a PTS) that will be reordered and" ] # [ doc = " output in AVFrame.reordered_opaque" ] # [ doc = " - encoding: Set by libavcodec to the reordered_opaque of the input" ] # [ doc = "             frame corresponding to the last returned packet. Only" ] # [ doc = "             supported by encoders with the" ] # [ doc = "             AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE capability." ] # [ 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 libc :: 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 : libc :: c_int , # [ doc = " IDCT algorithm, see FF_IDCT_* below." ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: Set by user." ] pub idct_algo : libc :: 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 : libc :: 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 : libc :: c_int , # [ doc = " low resolution decoding, 1-> 1/2 size, 2->1/4 size" ] # [ doc = " - encoding: unused" ] # [ doc = " - decoding: Set by user." ] pub lowres : libc :: 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 : libc :: 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 : libc :: 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 : libc :: 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 : libc :: 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 libc :: c_void ) -> libc :: c_int > , arg2 : * mut libc :: c_void , ret : * mut libc :: c_int , count : libc :: c_int , size : libc :: c_int ) -> libc :: 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 libc :: c_void , jobnr : libc :: c_int , threadnr : libc :: c_int ) -> libc :: c_int > , arg2 : * mut libc :: c_void , ret : * mut libc :: c_int , count : libc :: c_int ) -> libc :: c_int > , # [ doc = " noise vs. sse weight for the nsse comparison function" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: unused" ] pub nsse_weight : libc :: c_int , # [ doc = " profile" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: Set by libavcodec." ] pub profile : libc :: c_int , # [ doc = " level" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: Set by libavcodec." ] pub level : libc :: 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 : libc :: 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 : libc :: 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 : libc :: 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 libc :: 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 : libc :: 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 : libc :: c_int , # [ doc = " Number of samples to skip after a discontinuity" ] # [ doc = " - decoding: unused" ] # [ doc = " - encoding: set by libavcodec" ] pub seek_preroll : libc :: c_int , # [ doc = " debug motion vectors" ] # [ doc = " - encoding: Set by user." ] # [ doc = " - decoding: Set by user." ] pub debug_mv : libc :: 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 libc :: c_char , # [ doc = " Properties of the stream that gets decoded" ] # [ doc = " - encoding: unused" ] # [ doc = " - decoding: set by libavcodec" ] pub properties : libc :: 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 : libc :: 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 : libc :: 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 : libc :: 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 : libc :: 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 : libc :: c_int , pub extra_hw_frames : libc :: c_int , # [ doc = " The percentage of damaged samples to discard a frame." ] # [ doc = "" ] # [ doc = " - decoding: set by user" ] # [ doc = " - encoding: unused" ] pub discard_damaged_percentage : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVCodecContext ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVCodecContext > ( ) , 1056usize , concat ! ( "Size of: " , stringify ! ( AVCodecContext ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVCodecContext > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVCodecContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . av_class as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( av_class ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . log_level_offset as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( log_level_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . codec_type as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( codec_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . codec as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( codec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . codec_id as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( codec_id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . codec_tag as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( codec_tag ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . priv_data as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( priv_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . internal as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( internal ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . opaque as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( opaque ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . bit_rate as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( bit_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . bit_rate_tolerance as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( bit_rate_tolerance ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . global_quality as * const _ as usize } , 68usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( global_quality ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . compression_level as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( compression_level ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . flags as * const _ as usize } , 76usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . flags2 as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( flags2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . extradata as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( extradata ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . extradata_size as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( extradata_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . time_base as * const _ as usize } , 100usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( time_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . ticks_per_frame as * const _ as usize } , 108usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( ticks_per_frame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . delay as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( delay ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . width as * const _ as usize } , 116usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( width ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . height as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( height ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . coded_width as * const _ as usize } , 124usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( coded_width ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . coded_height as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( coded_height ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . gop_size as * const _ as usize } , 132usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( gop_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . pix_fmt as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( pix_fmt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . draw_horiz_band as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( draw_horiz_band ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . get_format as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( get_format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . max_b_frames as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( max_b_frames ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . b_quant_factor as * const _ as usize } , 164usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( b_quant_factor ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . b_frame_strategy as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( b_frame_strategy ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . b_quant_offset as * const _ as usize } , 172usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( b_quant_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . has_b_frames as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( has_b_frames ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . mpeg_quant as * const _ as usize } , 180usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( mpeg_quant ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . i_quant_factor as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( i_quant_factor ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . i_quant_offset as * const _ as usize } , 188usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( i_quant_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . lumi_masking as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( lumi_masking ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . temporal_cplx_masking as * const _ as usize } , 196usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( temporal_cplx_masking ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . spatial_cplx_masking as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( spatial_cplx_masking ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . p_masking as * const _ as usize } , 204usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( p_masking ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . dark_masking as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( dark_masking ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . slice_count as * const _ as usize } , 212usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( slice_count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . prediction_method as * const _ as usize } , 216usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( prediction_method ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . slice_offset as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( slice_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . sample_aspect_ratio as * const _ as usize } , 232usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( sample_aspect_ratio ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . me_cmp as * const _ as usize } , 240usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( me_cmp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . me_sub_cmp as * const _ as usize } , 244usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( me_sub_cmp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . mb_cmp as * const _ as usize } , 248usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( mb_cmp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . ildct_cmp as * const _ as usize } , 252usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( ildct_cmp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . dia_size as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( dia_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . last_predictor_count as * const _ as usize } , 260usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( last_predictor_count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . pre_me as * const _ as usize } , 264usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( pre_me ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . me_pre_cmp as * const _ as usize } , 268usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( me_pre_cmp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . pre_dia_size as * const _ as usize } , 272usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( pre_dia_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . me_subpel_quality as * const _ as usize } , 276usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( me_subpel_quality ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . me_range as * const _ as usize } , 280usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( me_range ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . slice_flags as * const _ as usize } , 284usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( slice_flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . mb_decision as * const _ as usize } , 288usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( mb_decision ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . intra_matrix as * const _ as usize } , 296usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( intra_matrix ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . inter_matrix as * const _ as usize } , 304usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( inter_matrix ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . scenechange_threshold as * const _ as usize } , 312usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( scenechange_threshold ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . noise_reduction as * const _ as usize } , 316usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( noise_reduction ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . intra_dc_precision as * const _ as usize } , 320usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( intra_dc_precision ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . skip_top as * const _ as usize } , 324usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( skip_top ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . skip_bottom as * const _ as usize } , 328usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( skip_bottom ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . mb_lmin as * const _ as usize } , 332usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( mb_lmin ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . mb_lmax as * const _ as usize } , 336usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( mb_lmax ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . me_penalty_compensation as * const _ as usize } , 340usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( me_penalty_compensation ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . bidir_refine as * const _ as usize } , 344usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( bidir_refine ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . brd_scale as * const _ as usize } , 348usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( brd_scale ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . keyint_min as * const _ as usize } , 352usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( keyint_min ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . refs as * const _ as usize } , 356usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( refs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . chromaoffset as * const _ as usize } , 360usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( chromaoffset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . mv0_threshold as * const _ as usize } , 364usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( mv0_threshold ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . b_sensitivity as * const _ as usize } , 368usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( b_sensitivity ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . color_primaries as * const _ as usize } , 372usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( color_primaries ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . color_trc as * const _ as usize } , 376usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( color_trc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . colorspace as * const _ as usize } , 380usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( colorspace ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . color_range as * const _ as usize } , 384usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( color_range ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . chroma_sample_location as * const _ as usize } , 388usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( chroma_sample_location ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . slices as * const _ as usize } , 392usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( slices ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . field_order as * const _ as usize } , 396usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( field_order ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . sample_rate as * const _ as usize } , 400usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( sample_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . channels as * const _ as usize } , 404usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( channels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . sample_fmt as * const _ as usize } , 408usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( sample_fmt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . frame_size as * const _ as usize } , 412usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( frame_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . frame_number as * const _ as usize } , 416usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( frame_number ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . block_align as * const _ as usize } , 420usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( block_align ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . cutoff as * const _ as usize } , 424usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( cutoff ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . channel_layout as * const _ as usize } , 432usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( channel_layout ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . request_channel_layout as * const _ as usize } , 440usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( request_channel_layout ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . audio_service_type as * const _ as usize } , 448usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( audio_service_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . request_sample_fmt as * const _ as usize } , 452usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( request_sample_fmt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . get_buffer2 as * const _ as usize } , 456usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( get_buffer2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . refcounted_frames as * const _ as usize } , 464usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( refcounted_frames ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . qcompress as * const _ as usize } , 468usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( qcompress ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . qblur as * const _ as usize } , 472usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( qblur ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . qmin as * const _ as usize } , 476usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( qmin ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . qmax as * const _ as usize } , 480usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( qmax ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . max_qdiff as * const _ as usize } , 484usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( max_qdiff ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . rc_buffer_size as * const _ as usize } , 488usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( rc_buffer_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . rc_override_count as * const _ as usize } , 492usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( rc_override_count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . rc_override as * const _ as usize } , 496usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( rc_override ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . rc_max_rate as * const _ as usize } , 504usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( rc_max_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . rc_min_rate as * const _ as usize } , 512usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( rc_min_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . rc_max_available_vbv_use as * const _ as usize } , 520usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( rc_max_available_vbv_use ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . rc_min_vbv_overflow_use as * const _ as usize } , 524usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( rc_min_vbv_overflow_use ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . rc_initial_buffer_occupancy as * const _ as usize } , 528usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( rc_initial_buffer_occupancy ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . coder_type as * const _ as usize } , 532usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( coder_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . context_model as * const _ as usize } , 536usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( context_model ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . frame_skip_threshold as * const _ as usize } , 540usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( frame_skip_threshold ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . frame_skip_factor as * const _ as usize } , 544usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( frame_skip_factor ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . frame_skip_exp as * const _ as usize } , 548usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( frame_skip_exp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . frame_skip_cmp as * const _ as usize } , 552usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( frame_skip_cmp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . trellis as * const _ as usize } , 556usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( trellis ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . min_prediction_order as * const _ as usize } , 560usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( min_prediction_order ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . max_prediction_order as * const _ as usize } , 564usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( max_prediction_order ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . timecode_frame_start as * const _ as usize } , 568usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( timecode_frame_start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . rtp_callback as * const _ as usize } , 576usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( rtp_callback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . rtp_payload_size as * const _ as usize } , 584usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( rtp_payload_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . mv_bits as * const _ as usize } , 588usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( mv_bits ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . header_bits as * const _ as usize } , 592usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( header_bits ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . i_tex_bits as * const _ as usize } , 596usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( i_tex_bits ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . p_tex_bits as * const _ as usize } , 600usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( p_tex_bits ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . i_count as * const _ as usize } , 604usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( i_count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . p_count as * const _ as usize } , 608usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( p_count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . skip_count as * const _ as usize } , 612usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( skip_count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . misc_bits as * const _ as usize } , 616usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( misc_bits ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . frame_bits as * const _ as usize } , 620usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( frame_bits ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . stats_out as * const _ as usize } , 624usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( stats_out ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . stats_in as * const _ as usize } , 632usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( stats_in ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . workaround_bugs as * const _ as usize } , 640usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( workaround_bugs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . strict_std_compliance as * const _ as usize } , 644usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( strict_std_compliance ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . error_concealment as * const _ as usize } , 648usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( error_concealment ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . debug as * const _ as usize } , 652usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( debug ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . err_recognition as * const _ as usize } , 656usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( err_recognition ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . reordered_opaque as * const _ as usize } , 664usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( reordered_opaque ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . hwaccel as * const _ as usize } , 672usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( hwaccel ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . hwaccel_context as * const _ as usize } , 680usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( hwaccel_context ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . error as * const _ as usize } , 688usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( error ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . dct_algo as * const _ as usize } , 752usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( dct_algo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . idct_algo as * const _ as usize } , 756usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( idct_algo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . bits_per_coded_sample as * const _ as usize } , 760usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( bits_per_coded_sample ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . bits_per_raw_sample as * const _ as usize } , 764usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( bits_per_raw_sample ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . lowres as * const _ as usize } , 768usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( lowres ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . coded_frame as * const _ as usize } , 776usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( coded_frame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . thread_count as * const _ as usize } , 784usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( thread_count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . thread_type as * const _ as usize } , 788usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( thread_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . active_thread_type as * const _ as usize } , 792usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( active_thread_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . thread_safe_callbacks as * const _ as usize } , 796usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( thread_safe_callbacks ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . execute as * const _ as usize } , 800usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( execute ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . execute2 as * const _ as usize } , 808usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( execute2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . nsse_weight as * const _ as usize } , 816usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( nsse_weight ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . profile as * const _ as usize } , 820usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( profile ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . level as * const _ as usize } , 824usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( level ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . skip_loop_filter as * const _ as usize } , 828usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( skip_loop_filter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . skip_idct as * const _ as usize } , 832usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( skip_idct ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . skip_frame as * const _ as usize } , 836usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( skip_frame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . subtitle_header as * const _ as usize } , 840usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( subtitle_header ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . subtitle_header_size as * const _ as usize } , 848usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( subtitle_header_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . vbv_delay as * const _ as usize } , 856usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( vbv_delay ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . side_data_only_packets as * const _ as usize } , 864usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( side_data_only_packets ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . initial_padding as * const _ as usize } , 868usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( initial_padding ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . framerate as * const _ as usize } , 872usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( framerate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . sw_pix_fmt as * const _ as usize } , 880usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( sw_pix_fmt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . pkt_timebase as * const _ as usize } , 884usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( pkt_timebase ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . codec_descriptor as * const _ as usize } , 896usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( codec_descriptor ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . pts_correction_num_faulty_pts as * const _ as usize } , 904usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( pts_correction_num_faulty_pts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . pts_correction_num_faulty_dts as * const _ as usize } , 912usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( pts_correction_num_faulty_dts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . pts_correction_last_pts as * const _ as usize } , 920usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( pts_correction_last_pts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . pts_correction_last_dts as * const _ as usize } , 928usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( pts_correction_last_dts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . sub_charenc as * const _ as usize } , 936usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( sub_charenc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . sub_charenc_mode as * const _ as usize } , 944usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( sub_charenc_mode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . skip_alpha as * const _ as usize } , 948usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( skip_alpha ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . seek_preroll as * const _ as usize } , 952usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( seek_preroll ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . debug_mv as * const _ as usize } , 956usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( debug_mv ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . chroma_intra_matrix as * const _ as usize } , 960usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( chroma_intra_matrix ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . dump_separator as * const _ as usize } , 968usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( dump_separator ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . codec_whitelist as * const _ as usize } , 976usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( codec_whitelist ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . properties as * const _ as usize } , 984usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( properties ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . coded_side_data as * const _ as usize } , 992usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( coded_side_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . nb_coded_side_data as * const _ as usize } , 1000usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( nb_coded_side_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . hw_frames_ctx as * const _ as usize } , 1008usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( hw_frames_ctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . sub_text_format as * const _ as usize } , 1016usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( sub_text_format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . trailing_padding as * const _ as usize } , 1020usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( trailing_padding ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . max_pixels as * const _ as usize } , 1024usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( max_pixels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . hw_device_ctx as * const _ as usize } , 1032usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( hw_device_ctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . hwaccel_flags as * const _ as usize } , 1040usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( hwaccel_flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . apply_cropping as * const _ as usize } , 1044usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( apply_cropping ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . extra_hw_frames as * const _ as usize } , 1048usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( extra_hw_frames ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecContext > ( ) ) ) . discard_damaged_percentage as * const _ as usize } , 1052usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecContext ) , "::" , stringify ! ( discard_damaged_percentage ) ) ) ; } 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 ) -> libc :: c_uint ; } extern "C" { pub fn av_codec_get_lowres ( avctx : * const AVCodecContext ) -> libc :: c_int ; } extern "C" { pub fn av_codec_set_lowres ( avctx : * mut AVCodecContext , val : libc :: c_int ) ; } extern "C" { pub fn av_codec_get_seek_preroll ( avctx : * const AVCodecContext ) -> libc :: c_int ; } extern "C" { pub fn av_codec_set_seek_preroll ( avctx : * mut AVCodecContext , val : libc :: 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 , PartialEq , Eq ) ] pub struct AVProfile { pub profile : libc :: c_int , # [ doc = "< short name for the profile" ] pub name : * const libc :: c_char , } # [ test ] fn bindgen_test_layout_AVProfile ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVProfile > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( AVProfile ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVProfile > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVProfile ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProfile > ( ) ) ) . profile as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVProfile ) , "::" , stringify ! ( profile ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProfile > ( ) ) ) . name as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVProfile ) , "::" , stringify ! ( name ) ) ) ; } pub const AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX : _bindgen_ty_4 = _bindgen_ty_4 :: AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX ; pub const AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX : _bindgen_ty_4 = _bindgen_ty_4 :: AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX ; pub const AV_CODEC_HW_CONFIG_METHOD_INTERNAL : _bindgen_ty_4 = _bindgen_ty_4 :: AV_CODEC_HW_CONFIG_METHOD_INTERNAL ; pub const AV_CODEC_HW_CONFIG_METHOD_AD_HOC : _bindgen_ty_4 = _bindgen_ty_4 :: AV_CODEC_HW_CONFIG_METHOD_AD_HOC ; # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum _bindgen_ty_4 { # [ 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()." ] AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX = 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." ] AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX = 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." ] AV_CODEC_HW_CONFIG_METHOD_INTERNAL = 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.)" ] AV_CODEC_HW_CONFIG_METHOD_AD_HOC = 8 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] 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 : libc :: 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 , } # [ test ] fn bindgen_test_layout_AVCodecHWConfig ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVCodecHWConfig > ( ) , 12usize , concat ! ( "Size of: " , stringify ! ( AVCodecHWConfig ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVCodecHWConfig > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( AVCodecHWConfig ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecHWConfig > ( ) ) ) . pix_fmt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecHWConfig ) , "::" , stringify ! ( pix_fmt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecHWConfig > ( ) ) ) . methods as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecHWConfig ) , "::" , stringify ! ( methods ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecHWConfig > ( ) ) ) . device_type as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecHWConfig ) , "::" , stringify ! ( device_type ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVCodecDefault { _unused : [ u8 ; 0 ] , } # [ doc = " AVCodec." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] 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 libc :: 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 libc :: c_char , pub type_ : AVMediaType , pub id : AVCodecID , # [ doc = " Codec capabilities." ] # [ doc = " see AV_CODEC_CAP_*" ] pub capabilities : libc :: 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 libc :: 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 libc :: 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 : libc :: 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 ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: c_int > , pub encode_sub : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVCodecContext , buf : * mut u8 , buf_size : libc :: c_int , sub : * const AVSubtitle ) -> libc :: 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 libc :: c_int ) -> libc :: c_int > , pub decode : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVCodecContext , outdata : * mut libc :: c_void , outdata_size : * mut libc :: c_int , avpkt : * mut AVPacket ) -> libc :: c_int > , pub close : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVCodecContext ) -> libc :: 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 ) -> libc :: c_int > , pub receive_packet : :: std :: option :: Option < unsafe extern "C" fn ( avctx : * mut AVCodecContext , avpkt : * mut AVPacket ) -> libc :: 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 ) -> libc :: 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 : libc :: c_int , # [ doc = " Decoding only, a comma-separated list of bitstream filters to apply to" ] # [ doc = " packets before decoding." ] pub bsfs : * const libc :: 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 , } # [ test ] fn bindgen_test_layout_AVCodec ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVCodec > ( ) , 248usize , concat ! ( "Size of: " , stringify ! ( AVCodec ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVCodec > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVCodec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . long_name as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( long_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . type_ as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . id as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . capabilities as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( capabilities ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . supported_framerates as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( supported_framerates ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . pix_fmts as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( pix_fmts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . supported_samplerates as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( supported_samplerates ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . sample_fmts as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( sample_fmts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . channel_layouts as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( channel_layouts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . max_lowres as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( max_lowres ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . priv_class as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( priv_class ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . profiles as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( profiles ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . wrapper_name as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( wrapper_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . priv_data_size as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( priv_data_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . next as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( next ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . init_thread_copy as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( init_thread_copy ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . update_thread_context as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( update_thread_context ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . defaults as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( defaults ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . init_static_data as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( init_static_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . init as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . encode_sub as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( encode_sub ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . encode2 as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( encode2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . decode as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( decode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . close as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( close ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . send_frame as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( send_frame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . receive_packet as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( receive_packet ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . receive_frame as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( receive_frame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . flush as * const _ as usize } , 216usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( flush ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . caps_internal as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( caps_internal ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . bsfs as * const _ as usize } , 232usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( bsfs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodec > ( ) ) ) . hw_configs as * const _ as usize } , 240usize , concat ! ( "Offset of field: " , stringify ! ( AVCodec ) , "::" , stringify ! ( hw_configs ) ) ) ; } extern "C" { pub fn av_codec_get_max_lowres ( codec : * const AVCodec ) -> libc :: 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 : libc :: 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 , PartialEq , Eq ) ] 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 libc :: 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 : libc :: c_int , # [ doc = " Allocate a custom buffer" ] pub alloc_frame : :: std :: option :: Option < unsafe extern "C" fn ( avctx : * mut AVCodecContext , frame : * mut AVFrame ) -> libc :: 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 ) -> libc :: 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_ : libc :: c_int , buf : * const u8 , buf_size : u32 ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: 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 : libc :: 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 ) -> libc :: 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 ) -> libc :: c_int > , # [ doc = " Size of the private data to allocate in" ] # [ doc = " AVCodecInternal.hwaccel_priv_data." ] pub priv_data_size : libc :: c_int , # [ doc = " Internal hwaccel capabilities." ] pub caps_internal : libc :: 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 ) -> libc :: c_int > , } # [ test ] fn bindgen_test_layout_AVHWAccel ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVHWAccel > ( ) , 112usize , concat ! ( "Size of: " , stringify ! ( AVHWAccel ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVHWAccel > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVHWAccel ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . type_ as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . id as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . pix_fmt as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( pix_fmt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . capabilities as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( capabilities ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . alloc_frame as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( alloc_frame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . start_frame as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( start_frame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . decode_params as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( decode_params ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . decode_slice as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( decode_slice ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . end_frame as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( end_frame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . frame_priv_data_size as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( frame_priv_data_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . decode_mb as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( decode_mb ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . init as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . uninit as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( uninit ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . priv_data_size as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( priv_data_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . caps_internal as * const _ as usize } , 100usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( caps_internal ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVHWAccel > ( ) ) ) . frame_params as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( AVHWAccel ) , "::" , stringify ! ( frame_params ) ) ) ; } # [ 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 , PartialEq , Eq ) ] pub struct AVPicture { # [ doc = "< pointers to the image data planes" ] pub data : [ * mut u8 ; 8usize ] , # [ doc = "< number of bytes per line" ] pub linesize : [ libc :: c_int ; 8usize ] , } # [ test ] fn bindgen_test_layout_AVPicture ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVPicture > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( AVPicture ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVPicture > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVPicture ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPicture > ( ) ) ) . data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVPicture ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPicture > ( ) ) ) . linesize as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVPicture ) , "::" , stringify ! ( linesize ) ) ) ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVSubtitleType { SUBTITLE_NONE = 0 , # [ doc = "< A bitmap, pict will be set" ] SUBTITLE_BITMAP = 1 , # [ doc = " Plain text, the text field must be set by the decoder and is" ] # [ doc = " authoritative. ass and pict fields may contain approximations." ] SUBTITLE_TEXT = 2 , # [ doc = " Formatted text, the ass field must be set by the decoder and is" ] # [ doc = " authoritative. pict and text fields may contain approximations." ] SUBTITLE_ASS = 3 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVSubtitleRect { # [ doc = "< top left corner  of pict, undefined when pict is not set" ] pub x : libc :: c_int , # [ doc = "< top left corner  of pict, undefined when pict is not set" ] pub y : libc :: c_int , # [ doc = "< width            of pict, undefined when pict is not set" ] pub w : libc :: c_int , # [ doc = "< height           of pict, undefined when pict is not set" ] pub h : libc :: c_int , # [ doc = "< number of colors in pict, undefined when pict is not set" ] pub nb_colors : libc :: 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 : [ libc :: c_int ; 4usize ] , pub type_ : AVSubtitleType , # [ doc = "< 0 terminated plain UTF-8 text" ] pub text : * mut libc :: 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 libc :: c_char , pub flags : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVSubtitleRect ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVSubtitleRect > ( ) , 200usize , concat ! ( "Size of: " , stringify ! ( AVSubtitleRect ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVSubtitleRect > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVSubtitleRect ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitleRect > ( ) ) ) . x as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitleRect ) , "::" , stringify ! ( x ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitleRect > ( ) ) ) . y as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitleRect ) , "::" , stringify ! ( y ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitleRect > ( ) ) ) . w as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitleRect ) , "::" , stringify ! ( w ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitleRect > ( ) ) ) . h as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitleRect ) , "::" , stringify ! ( h ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitleRect > ( ) ) ) . nb_colors as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitleRect ) , "::" , stringify ! ( nb_colors ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitleRect > ( ) ) ) . pict as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitleRect ) , "::" , stringify ! ( pict ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitleRect > ( ) ) ) . data as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitleRect ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitleRect > ( ) ) ) . linesize as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitleRect ) , "::" , stringify ! ( linesize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitleRect > ( ) ) ) . type_ as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitleRect ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitleRect > ( ) ) ) . text as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitleRect ) , "::" , stringify ! ( text ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitleRect > ( ) ) ) . ass as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitleRect ) , "::" , stringify ! ( ass ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitleRect > ( ) ) ) . flags as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitleRect ) , "::" , stringify ! ( flags ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVSubtitle { pub format : u16 , pub start_display_time : u32 , pub end_display_time : u32 , pub num_rects : libc :: c_uint , pub rects : * mut * mut AVSubtitleRect , # [ doc = "< Same as packet pts, in AV_TIME_BASE" ] pub pts : i64 , } # [ test ] fn bindgen_test_layout_AVSubtitle ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVSubtitle > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( AVSubtitle ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVSubtitle > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVSubtitle ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitle > ( ) ) ) . format as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitle ) , "::" , stringify ! ( format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitle > ( ) ) ) . start_display_time as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitle ) , "::" , stringify ! ( start_display_time ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitle > ( ) ) ) . end_display_time as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitle ) , "::" , stringify ! ( end_display_time ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitle > ( ) ) ) . num_rects as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitle ) , "::" , stringify ! ( num_rects ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitle > ( ) ) ) . rects as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitle ) , "::" , stringify ! ( rects ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVSubtitle > ( ) ) ) . pts as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVSubtitle ) , "::" , stringify ! ( pts ) ) ) ; } # [ 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 , PartialEq , Eq ) ] 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 : libc :: 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 : libc :: 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 : libc :: 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 : libc :: c_int , # [ doc = " Codec-specific bitstream restrictions that the stream conforms to." ] pub profile : libc :: c_int , pub level : libc :: c_int , # [ doc = " Video only. The dimensions of the video frame in pixels." ] pub width : libc :: c_int , pub height : libc :: 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 : libc :: 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 : libc :: c_int , # [ doc = " Audio only. The number of audio samples per second." ] pub sample_rate : libc :: 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 : libc :: c_int , # [ doc = " Audio only. Audio frame size, if known. Required by some formats to be static." ] pub frame_size : libc :: 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 : libc :: 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 : libc :: c_int , # [ doc = " Audio only. Number of samples to skip after a discontinuity." ] pub seek_preroll : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVCodecParameters ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVCodecParameters > ( ) , 144usize , concat ! ( "Size of: " , stringify ! ( AVCodecParameters ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVCodecParameters > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVCodecParameters ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . codec_type as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( codec_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . codec_id as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( codec_id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . codec_tag as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( codec_tag ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . extradata as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( extradata ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . extradata_size as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( extradata_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . format as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . bit_rate as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( bit_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . bits_per_coded_sample as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( bits_per_coded_sample ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . bits_per_raw_sample as * const _ as usize } , 44usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( bits_per_raw_sample ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . profile as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( profile ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . level as * const _ as usize } , 52usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( level ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . width as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( width ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . height as * const _ as usize } , 60usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( height ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . sample_aspect_ratio as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( sample_aspect_ratio ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . field_order as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( field_order ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . color_range as * const _ as usize } , 76usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( color_range ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . color_primaries as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( color_primaries ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . color_trc as * const _ as usize } , 84usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( color_trc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . color_space as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( color_space ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . chroma_location as * const _ as usize } , 92usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( chroma_location ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . video_delay as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( video_delay ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . channel_layout as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( channel_layout ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . channels as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( channels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . sample_rate as * const _ as usize } , 116usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( sample_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . block_align as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( block_align ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . frame_size as * const _ as usize } , 124usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( frame_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . initial_padding as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( initial_padding ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . trailing_padding as * const _ as usize } , 132usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( trailing_padding ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParameters > ( ) ) ) . seek_preroll as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParameters ) , "::" , stringify ! ( seek_preroll ) ) ) ; } 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 libc :: 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 ( ) -> libc :: c_uint ; } extern "C" { # [ doc = " Return the libavcodec build-time configuration." ] pub fn avcodec_configuration ( ) -> * const libc :: c_char ; } extern "C" { # [ doc = " Return the libavcodec license." ] pub fn avcodec_license ( ) -> * const libc :: 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 ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: 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 : libc :: c_int ) -> libc :: 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 : libc :: 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 : libc :: c_int ) -> libc :: 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 = "        and buf 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 : libc :: c_int ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: 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 : libc :: 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 : size_t ) -> libc :: 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 : libc :: c_int ) -> libc :: 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 libc :: c_int ) -> * mut u8 ; } extern "C" { pub fn av_packet_merge_side_data ( pkt : * mut AVPacket ) -> libc :: c_int ; } extern "C" { pub fn av_packet_split_side_data ( pkt : * mut AVPacket ) -> libc :: c_int ; } extern "C" { pub fn av_packet_side_data_name ( type_ : AVPacketSideDataType ) -> * const libc :: 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 libc :: 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 : libc :: c_int , dict : * mut * mut AVDictionary ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: 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 libc :: 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 : libc :: c_int ) -> libc :: 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 libc :: c_int , height : * mut libc :: 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 libc :: c_int , height : * mut libc :: c_int , linesize_align : * mut libc :: 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 libc :: c_int , ypos : * mut libc :: c_int , pos : AVChromaLocation ) -> libc :: 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 : libc :: c_int , ypos : libc :: 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 libc :: c_int , avpkt : * const AVPacket ) -> libc :: 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 libc :: c_int , avpkt : * const AVPacket ) -> libc :: 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 libc :: c_int , avpkt : * mut AVPacket ) -> libc :: 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 ) -> libc :: 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 = "      AVERROR_INPUT_CHANGED:   current decoded frame has changed parameters" ] # [ doc = "                               with respect to first decoded frame. Applicable" ] # [ doc = "                               when flag AV_CODEC_FLAG_DROPCHANGED is set." ] # [ doc = "      other negative values: legitimate decoding errors" ] pub fn avcodec_receive_frame ( avctx : * mut AVCodecContext , frame : * mut AVFrame ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: c_int ; } # [ repr ( u32 ) ] # [ doc = " @defgroup lavc_parsing Frame parsing" ] # [ doc = " @{" ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVPictureStructure { AV_PICTURE_STRUCTURE_UNKNOWN = 0 , AV_PICTURE_STRUCTURE_TOP_FIELD = 1 , AV_PICTURE_STRUCTURE_BOTTOM_FIELD = 2 , AV_PICTURE_STRUCTURE_FRAME = 3 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVCodecParserContext { pub priv_data : * mut libc :: c_void , pub parser : * mut AVCodecParser , pub frame_offset : i64 , pub cur_offset : i64 , pub next_frame_offset : i64 , pub pict_type : libc :: 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 : libc :: c_int , pub pts : i64 , pub dts : i64 , pub last_pts : i64 , pub last_dts : i64 , pub fetch_timestamp : libc :: c_int , pub cur_frame_start_index : libc :: c_int , pub cur_frame_offset : [ i64 ; 4usize ] , pub cur_frame_pts : [ i64 ; 4usize ] , pub cur_frame_dts : [ i64 ; 4usize ] , pub flags : libc :: 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 : libc :: 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 : libc :: 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 : libc :: 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 : libc :: 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 : libc :: 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 : libc :: c_int , # [ doc = " Dimensions of the decoded video intended for presentation." ] pub width : libc :: c_int , pub height : libc :: c_int , # [ doc = " Dimensions of the coded video." ] pub coded_width : libc :: c_int , pub coded_height : libc :: 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 : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVCodecParserContext ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVCodecParserContext > ( ) , 352usize , concat ! ( "Size of: " , stringify ! ( AVCodecParserContext ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVCodecParserContext > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVCodecParserContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . priv_data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( priv_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . parser as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( parser ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . frame_offset as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( frame_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . cur_offset as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( cur_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . next_frame_offset as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( next_frame_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . pict_type as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( pict_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . repeat_pict as * const _ as usize } , 44usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( repeat_pict ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . pts as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( pts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . dts as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( dts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . last_pts as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( last_pts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . last_dts as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( last_dts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . fetch_timestamp as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( fetch_timestamp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . cur_frame_start_index as * const _ as usize } , 84usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( cur_frame_start_index ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . cur_frame_offset as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( cur_frame_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . cur_frame_pts as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( cur_frame_pts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . cur_frame_dts as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( cur_frame_dts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . flags as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . offset as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . cur_frame_end as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( cur_frame_end ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . key_frame as * const _ as usize } , 232usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( key_frame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . convergence_duration as * const _ as usize } , 240usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( convergence_duration ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . dts_sync_point as * const _ as usize } , 248usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( dts_sync_point ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . dts_ref_dts_delta as * const _ as usize } , 252usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( dts_ref_dts_delta ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . pts_dts_delta as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( pts_dts_delta ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . cur_frame_pos as * const _ as usize } , 264usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( cur_frame_pos ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . pos as * const _ as usize } , 296usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( pos ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . last_pos as * const _ as usize } , 304usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( last_pos ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . duration as * const _ as usize } , 312usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( duration ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . field_order as * const _ as usize } , 316usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( field_order ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . picture_structure as * const _ as usize } , 320usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( picture_structure ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . output_picture_number as * const _ as usize } , 324usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( output_picture_number ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . width as * const _ as usize } , 328usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( width ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . height as * const _ as usize } , 332usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( height ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . coded_width as * const _ as usize } , 336usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( coded_width ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . coded_height as * const _ as usize } , 340usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( coded_height ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParserContext > ( ) ) ) . format as * const _ as usize } , 344usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParserContext ) , "::" , stringify ! ( format ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVCodecParser { pub codec_ids : [ libc :: c_int ; 5usize ] , pub priv_data_size : libc :: c_int , pub parser_init : :: std :: option :: Option < unsafe extern "C" fn ( s : * mut AVCodecParserContext ) -> libc :: 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 libc :: c_int , buf : * const u8 , buf_size : libc :: c_int ) -> libc :: 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 : libc :: c_int ) -> libc :: c_int > , pub next : * mut AVCodecParser , } # [ test ] fn bindgen_test_layout_AVCodecParser ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVCodecParser > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( AVCodecParser ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVCodecParser > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVCodecParser ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParser > ( ) ) ) . codec_ids as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParser ) , "::" , stringify ! ( codec_ids ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParser > ( ) ) ) . priv_data_size as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParser ) , "::" , stringify ! ( priv_data_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParser > ( ) ) ) . parser_init as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParser ) , "::" , stringify ! ( parser_init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParser > ( ) ) ) . parser_parse as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParser ) , "::" , stringify ! ( parser_parse ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParser > ( ) ) ) . parser_close as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParser ) , "::" , stringify ! ( parser_close ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParser > ( ) ) ) . split as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParser ) , "::" , stringify ! ( split ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVCodecParser > ( ) ) ) . next as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVCodecParser ) , "::" , stringify ! ( next ) ) ) ; } 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 libc :: 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 : libc :: 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 libc :: c_int , buf : * const u8 , buf_size : libc :: c_int , pts : i64 , dts : i64 , pos : i64 ) -> libc :: 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 libc :: c_int , buf : * const u8 , buf_size : libc :: c_int , keyframe : libc :: c_int ) -> libc :: 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 libc :: 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 libc :: c_int ) -> libc :: 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 libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn avcodec_encode_subtitle ( avctx : * mut AVCodecContext , buf : * mut u8 , buf_size : libc :: c_int , sub : * const AVSubtitle ) -> libc :: c_int ; } extern "C" { # [ doc = " @deprecated unused" ] pub fn avpicture_alloc ( picture : * mut AVPicture , pix_fmt : AVPixelFormat , width : libc :: c_int , height : libc :: c_int ) -> libc :: 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 : libc :: c_int , height : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " @deprecated use av_image_copy_to_buffer() instead." ] pub fn avpicture_layout ( src : * const AVPicture , pix_fmt : AVPixelFormat , width : libc :: c_int , height : libc :: c_int , dest : * mut libc :: c_uchar , dest_size : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " @deprecated use av_image_get_buffer_size() instead." ] pub fn avpicture_get_size ( pix_fmt : AVPixelFormat , width : libc :: c_int , height : libc :: c_int ) -> libc :: 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 : libc :: c_int , height : libc :: c_int ) ; } extern "C" { # [ doc = " @deprecated unused" ] pub fn av_picture_crop ( dst : * mut AVPicture , src : * const AVPicture , pix_fmt : AVPixelFormat , top_band : libc :: c_int , left_band : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " @deprecated unused" ] pub fn av_picture_pad ( dst : * mut AVPicture , src : * const AVPicture , height : libc :: c_int , width : libc :: c_int , pix_fmt : AVPixelFormat , padtop : libc :: c_int , padbottom : libc :: c_int , padleft : libc :: c_int , padright : libc :: c_int , color : * mut libc :: c_int ) -> libc :: 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 libc :: c_int , v_shift : * mut libc :: 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 ) -> libc :: 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 : libc :: c_int ) -> libc :: 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 : libc :: c_int , loss_ptr : * mut libc :: 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 : libc :: c_int , loss_ptr : * mut libc :: 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 : libc :: c_int , loss_ptr : * mut libc :: 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 libc :: c_char , buf_size : size_t , codec_tag : libc :: c_uint ) -> size_t ; } extern "C" { pub fn avcodec_string ( buf : * mut libc :: c_char , buf_size : libc :: c_int , enc : * mut AVCodecContext , encode : libc :: 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 : libc :: c_int ) -> * const libc :: 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 : libc :: c_int ) -> * const libc :: c_char ; } extern "C" { pub fn avcodec_default_execute ( c : * mut AVCodecContext , func : :: std :: option :: Option < unsafe extern "C" fn ( c2 : * mut AVCodecContext , arg2 : * mut libc :: c_void ) -> libc :: c_int > , arg : * mut libc :: c_void , ret : * mut libc :: c_int , count : libc :: c_int , size : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn avcodec_default_execute2 ( c : * mut AVCodecContext , func : :: std :: option :: Option < unsafe extern "C" fn ( c2 : * mut AVCodecContext , arg2 : * mut libc :: c_void , arg1 : libc :: c_int , arg2 : libc :: c_int ) -> libc :: c_int > , arg : * mut libc :: c_void , ret : * mut libc :: c_int , count : libc :: c_int ) -> libc :: 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 : libc :: c_int , sample_fmt : AVSampleFormat , buf : * const u8 , buf_size : libc :: c_int , align : libc :: c_int ) -> libc :: 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 ) -> libc :: 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 : libc :: 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 ) -> libc :: 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 : libc :: c_int ) -> libc :: 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 : libc :: c_int ) -> libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVBitStreamFilterContext { pub priv_data : * mut libc :: 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 libc :: c_char , } # [ test ] fn bindgen_test_layout_AVBitStreamFilterContext ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVBitStreamFilterContext > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( AVBitStreamFilterContext ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVBitStreamFilterContext > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVBitStreamFilterContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBitStreamFilterContext > ( ) ) ) . priv_data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVBitStreamFilterContext ) , "::" , stringify ! ( priv_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBitStreamFilterContext > ( ) ) ) . filter as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVBitStreamFilterContext ) , "::" , stringify ! ( filter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBitStreamFilterContext > ( ) ) ) . parser as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVBitStreamFilterContext ) , "::" , stringify ! ( parser ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBitStreamFilterContext > ( ) ) ) . next as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVBitStreamFilterContext ) , "::" , stringify ! ( next ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBitStreamFilterContext > ( ) ) ) . args as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVBitStreamFilterContext ) , "::" , stringify ! ( args ) ) ) ; } # [ 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 , PartialEq , Eq ) ] 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 libc :: 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 , } # [ test ] fn bindgen_test_layout_AVBSFContext ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVBSFContext > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( AVBSFContext ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVBSFContext > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVBSFContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBSFContext > ( ) ) ) . av_class as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVBSFContext ) , "::" , stringify ! ( av_class ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBSFContext > ( ) ) ) . filter as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVBSFContext ) , "::" , stringify ! ( filter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBSFContext > ( ) ) ) . internal as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVBSFContext ) , "::" , stringify ! ( internal ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBSFContext > ( ) ) ) . priv_data as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVBSFContext ) , "::" , stringify ! ( priv_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBSFContext > ( ) ) ) . par_in as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVBSFContext ) , "::" , stringify ! ( par_in ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBSFContext > ( ) ) ) . par_out as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVBSFContext ) , "::" , stringify ! ( par_out ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBSFContext > ( ) ) ) . time_base_in as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVBSFContext ) , "::" , stringify ! ( time_base_in ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBSFContext > ( ) ) ) . time_base_out as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVBSFContext ) , "::" , stringify ! ( time_base_out ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVBitStreamFilter { pub name : * const libc :: 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 : libc :: c_int , pub init : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut AVBSFContext ) -> libc :: c_int > , pub filter : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut AVBSFContext , pkt : * mut AVPacket ) -> libc :: 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 ) > , } # [ test ] fn bindgen_test_layout_AVBitStreamFilter ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVBitStreamFilter > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( AVBitStreamFilter ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVBitStreamFilter > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVBitStreamFilter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBitStreamFilter > ( ) ) ) . name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVBitStreamFilter ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBitStreamFilter > ( ) ) ) . codec_ids as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVBitStreamFilter ) , "::" , stringify ! ( codec_ids ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBitStreamFilter > ( ) ) ) . priv_class as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVBitStreamFilter ) , "::" , stringify ! ( priv_class ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBitStreamFilter > ( ) ) ) . priv_data_size as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVBitStreamFilter ) , "::" , stringify ! ( priv_data_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBitStreamFilter > ( ) ) ) . init as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVBitStreamFilter ) , "::" , stringify ! ( init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBitStreamFilter > ( ) ) ) . filter as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVBitStreamFilter ) , "::" , stringify ! ( filter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBitStreamFilter > ( ) ) ) . close as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVBitStreamFilter ) , "::" , stringify ! ( close ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBitStreamFilter > ( ) ) ) . flush as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVBitStreamFilter ) , "::" , stringify ! ( flush ) ) ) ; } 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 libc :: 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 libc :: c_char , poutbuf : * mut * mut u8 , poutbuf_size : * mut libc :: c_int , buf : * const u8 , buf_size : libc :: c_int , keyframe : libc :: c_int ) -> libc :: 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 libc :: 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 libc :: c_void ) -> * const AVBitStreamFilter ; } extern "C" { pub fn av_bsf_next ( opaque : * mut * mut libc :: 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 ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: 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 libc :: c_char , options : * mut * mut AVDictionary ) -> libc :: 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 ) -> libc :: 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 libc :: c_char , bsf : * mut * mut AVBSFContext ) -> libc :: 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 ) -> libc :: 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 libc :: c_void , size : * mut libc :: c_uint , min_size : size_t ) ; } 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 libc :: c_void , size : * mut libc :: c_uint , min_size : size_t ) ; } 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 libc :: c_uchar , v : libc :: c_uint ) -> libc :: 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 ; } # [ repr ( u32 ) ] # [ doc = " Lock operation used by lockmgr" ] # [ doc = "" ] # [ doc = " @deprecated Deprecated together with av_lockmgr_register()." ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVLockOp { # [ doc = "< Create a mutex" ] AV_LOCK_CREATE = 0 , # [ doc = "< Lock the mutex" ] AV_LOCK_OBTAIN = 1 , # [ doc = "< Unlock the mutex" ] AV_LOCK_RELEASE = 2 , # [ doc = "< Free mutex resources" ] AV_LOCK_DESTROY = 3 , } 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 ( mutex : * mut * mut libc :: c_void , op : AVLockOp ) -> libc :: c_int > ) -> libc :: 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 libc :: 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 ) -> libc :: 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 ) -> libc :: 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 ) -> libc :: 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 libc :: 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 size_t ) -> * mut AVCPBProperties ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVDVProfile { pub dsf : libc :: c_int , pub video_stype : libc :: c_int , pub frame_size : libc :: c_int , pub difseg_size : libc :: c_int , pub n_difchan : libc :: c_int , pub time_base : AVRational , pub ltc_divisor : libc :: c_int , pub height : libc :: c_int , pub width : libc :: c_int , pub sar : [ AVRational ; 2usize ] , pub pix_fmt : AVPixelFormat , pub bpm : libc :: c_int , pub block_sizes : * const u8 , pub audio_stride : libc :: c_int , pub audio_min_samples : [ libc :: c_int ; 3usize ] , pub audio_samples_dist : [ libc :: c_int ; 5usize ] , pub audio_shuffle : * mut [ u8 ; 9usize ] , } # [ test ] fn bindgen_test_layout_AVDVProfile ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVDVProfile > ( ) , 120usize , concat ! ( "Size of: " , stringify ! ( AVDVProfile ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVDVProfile > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVDVProfile ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . dsf as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( dsf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . video_stype as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( video_stype ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . frame_size as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( frame_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . difseg_size as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( difseg_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . n_difchan as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( n_difchan ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . time_base as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( time_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . ltc_divisor as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( ltc_divisor ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . height as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( height ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . width as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( width ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . sar as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( sar ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . pix_fmt as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( pix_fmt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . bpm as * const _ as usize } , 60usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( bpm ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . block_sizes as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( block_sizes ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . audio_stride as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( audio_stride ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . audio_min_samples as * const _ as usize } , 76usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( audio_min_samples ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . audio_samples_dist as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( audio_samples_dist ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDVProfile > ( ) ) ) . audio_shuffle as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( AVDVProfile ) , "::" , stringify ! ( audio_shuffle ) ) ) ; } extern "C" { # [ doc = " Get a DV profile for the provided compressed frame." ] # [ doc = "" ] # [ doc = " @param sys the profile used for the previous frame, may be NULL" ] # [ doc = " @param frame the compressed data buffer" ] # [ doc = " @param buf_size size of the buffer in bytes" ] # [ doc = " @return the DV profile for the supplied data or NULL on failure" ] pub fn av_dv_frame_profile ( sys : * const AVDVProfile , frame : * const u8 , buf_size : libc :: c_uint ) -> * const AVDVProfile ; } extern "C" { # [ doc = " Get a DV profile for the provided stream parameters." ] pub fn av_dv_codec_profile ( width : libc :: c_int , height : libc :: c_int , pix_fmt : AVPixelFormat ) -> * const AVDVProfile ; } extern "C" { # [ doc = " Get a DV profile for the provided stream parameters." ] # [ doc = " The frame rate is used as a best-effort parameter." ] pub fn av_dv_codec_profile2 ( width : libc :: c_int , height : libc :: c_int , pix_fmt : AVPixelFormat , frame_rate : AVRational ) -> * const AVDVProfile ; } # [ doc = " @defgroup lavc_fft FFT functions" ] # [ doc = " @ingroup lavc_misc" ] # [ doc = "" ] # [ doc = " @{" ] pub type FFTSample = f32 ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq ) ] pub struct FFTComplex { pub re : FFTSample , pub im : FFTSample , } # [ test ] fn bindgen_test_layout_FFTComplex ( ) { assert_eq ! ( :: std :: mem :: size_of :: < FFTComplex > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( FFTComplex ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < FFTComplex > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( FFTComplex ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < FFTComplex > ( ) ) ) . re as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( FFTComplex ) , "::" , stringify ! ( re ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < FFTComplex > ( ) ) ) . im as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( FFTComplex ) , "::" , stringify ! ( im ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct FFTContext { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Set up a complex FFT." ] # [ doc = " @param nbits           log2 of the length of the input array" ] # [ doc = " @param inverse         if 0 perform the forward transform, if 1 perform the inverse" ] pub fn av_fft_init ( nbits : libc :: c_int , inverse : libc :: c_int ) -> * mut FFTContext ; } extern "C" { # [ doc = " Do the permutation needed BEFORE calling ff_fft_calc()." ] pub fn av_fft_permute ( s : * mut FFTContext , z : * mut FFTComplex ) ; } extern "C" { # [ doc = " Do a complex FFT with the parameters defined in av_fft_init(). The" ] # [ doc = " input data must be permuted before. No 1.0/sqrt(n) normalization is done." ] pub fn av_fft_calc ( s : * mut FFTContext , z : * mut FFTComplex ) ; } extern "C" { pub fn av_fft_end ( s : * mut FFTContext ) ; } extern "C" { pub fn av_mdct_init ( nbits : libc :: c_int , inverse : libc :: c_int , scale : f64 ) -> * mut FFTContext ; } extern "C" { pub fn av_imdct_calc ( s : * mut FFTContext , output : * mut FFTSample , input : * const FFTSample ) ; } extern "C" { pub fn av_imdct_half ( s : * mut FFTContext , output : * mut FFTSample , input : * const FFTSample ) ; } extern "C" { pub fn av_mdct_calc ( s : * mut FFTContext , output : * mut FFTSample , input : * const FFTSample ) ; } extern "C" { pub fn av_mdct_end ( s : * mut FFTContext ) ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum RDFTransformType { DFT_R2C = 0 , IDFT_C2R = 1 , IDFT_R2C = 2 , DFT_C2R = 3 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct RDFTContext { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Set up a real FFT." ] # [ doc = " @param nbits           log2 of the length of the input array" ] # [ doc = " @param trans           the type of transform" ] pub fn av_rdft_init ( nbits : libc :: c_int , trans : RDFTransformType ) -> * mut RDFTContext ; } extern "C" { pub fn av_rdft_calc ( s : * mut RDFTContext , data : * mut FFTSample ) ; } extern "C" { pub fn av_rdft_end ( s : * mut RDFTContext ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct DCTContext { _unused : [ u8 ; 0 ] , } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum DCTTransformType { DCT_II = 0 , DCT_III = 1 , DCT_I = 2 , DST_I = 3 , } extern "C" { # [ doc = " Set up DCT." ] # [ doc = "" ] # [ doc = " @param nbits           size of the input array:" ] # [ doc = "                        (1 << nbits)     for DCT-II, DCT-III and DST-I" ] # [ doc = "                        (1 << nbits) + 1 for DCT-I" ] # [ doc = " @param type            the type of transform" ] # [ doc = "" ] # [ doc = " @note the first element of the input of DST-I is ignored" ] pub fn av_dct_init ( nbits : libc :: c_int , type_ : DCTTransformType ) -> * mut DCTContext ; } extern "C" { pub fn av_dct_calc ( s : * mut DCTContext , data : * mut FFTSample ) ; } extern "C" { pub fn av_dct_end ( s : * mut DCTContext ) ; } # [ doc = " This structure is used to share data between the FFmpeg library and" ] # [ doc = " the client video application." ] # [ doc = " This shall be zero-allocated and available as" ] # [ doc = " AVCodecContext.hwaccel_context. All user members can be set once" ] # [ doc = " during initialization or through each AVCodecContext.get_buffer()" ] # [ doc = " function call. In any case, they must be valid prior to calling" ] # [ doc = " decoding functions." ] # [ doc = "" ] # [ doc = " Deprecated: use AVCodecContext.hw_frames_ctx instead." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct vaapi_context { # [ doc = " Window system dependent data" ] # [ doc = "" ] # [ doc = " - encoding: unused" ] # [ doc = " - decoding: Set by user" ] pub display : * mut libc :: c_void , # [ doc = " Configuration ID" ] # [ doc = "" ] # [ doc = " - encoding: unused" ] # [ doc = " - decoding: Set by user" ] pub config_id : u32 , # [ doc = " Context ID (video decode pipeline)" ] # [ doc = "" ] # [ doc = " - encoding: unused" ] # [ doc = " - decoding: Set by user" ] pub context_id : u32 , } # [ test ] fn bindgen_test_layout_vaapi_context ( ) { assert_eq ! ( :: std :: mem :: size_of :: < vaapi_context > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( vaapi_context ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < vaapi_context > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( vaapi_context ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < vaapi_context > ( ) ) ) . display as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( vaapi_context ) , "::" , stringify ! ( display ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < vaapi_context > ( ) ) ) . config_id as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( vaapi_context ) , "::" , stringify ! ( config_id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < vaapi_context > ( ) ) ) . context_id as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( vaapi_context ) , "::" , stringify ! ( context_id ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVVorbisParseContext { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Allocate and initialize the Vorbis parser using headers in the extradata." ] pub fn av_vorbis_parse_init ( extradata : * const u8 , extradata_size : libc :: c_int ) -> * mut AVVorbisParseContext ; } extern "C" { # [ doc = " Free the parser and everything associated with it." ] pub fn av_vorbis_parse_free ( s : * mut * mut AVVorbisParseContext ) ; } extern "C" { # [ doc = " Get the duration for a Vorbis packet." ] # [ doc = "" ] # [ doc = " If @p flags is @c NULL," ] # [ doc = " special frames are considered invalid." ] # [ doc = "" ] # [ doc = " @param s        Vorbis parser context" ] # [ doc = " @param buf      buffer containing a Vorbis frame" ] # [ doc = " @param buf_size size of the buffer" ] # [ doc = " @param flags    flags for special frames" ] pub fn av_vorbis_parse_frame_flags ( s : * mut AVVorbisParseContext , buf : * const u8 , buf_size : libc :: c_int , flags : * mut libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Get the duration for a Vorbis packet." ] # [ doc = "" ] # [ doc = " @param s        Vorbis parser context" ] # [ doc = " @param buf      buffer containing a Vorbis frame" ] # [ doc = " @param buf_size size of the buffer" ] pub fn av_vorbis_parse_frame ( s : * mut AVVorbisParseContext , buf : * const u8 , buf_size : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_vorbis_parse_reset ( s : * mut AVVorbisParseContext ) ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVOptionType { AV_OPT_TYPE_FLAGS = 0 , AV_OPT_TYPE_INT = 1 , AV_OPT_TYPE_INT64 = 2 , AV_OPT_TYPE_DOUBLE = 3 , AV_OPT_TYPE_FLOAT = 4 , AV_OPT_TYPE_STRING = 5 , AV_OPT_TYPE_RATIONAL = 6 , AV_OPT_TYPE_BINARY = 7 , AV_OPT_TYPE_DICT = 8 , AV_OPT_TYPE_UINT64 = 9 , AV_OPT_TYPE_CONST = 10 , AV_OPT_TYPE_IMAGE_SIZE = 11 , AV_OPT_TYPE_PIXEL_FMT = 12 , AV_OPT_TYPE_SAMPLE_FMT = 13 , AV_OPT_TYPE_VIDEO_RATE = 14 , AV_OPT_TYPE_DURATION = 15 , AV_OPT_TYPE_COLOR = 16 , AV_OPT_TYPE_CHANNEL_LAYOUT = 17 , AV_OPT_TYPE_BOOL = 18 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct AVOption { pub name : * const libc :: c_char , pub help : * const libc :: c_char , pub offset : libc :: c_int , pub type_ : AVOptionType , pub default_val : AVOption__bindgen_ty_1 , pub min : f64 , pub max : f64 , pub flags : libc :: c_int , pub unit : * const libc :: c_char , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union AVOption__bindgen_ty_1 { pub i64 : i64 , pub dbl : f64 , pub str : * const libc :: c_char , pub q : AVRational , _bindgen_union_align : u64 , } # [ test ] fn bindgen_test_layout_AVOption__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVOption__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( AVOption__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVOption__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVOption__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOption__bindgen_ty_1 > ( ) ) ) . i64 as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVOption__bindgen_ty_1 ) , "::" , stringify ! ( i64 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOption__bindgen_ty_1 > ( ) ) ) . dbl as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVOption__bindgen_ty_1 ) , "::" , stringify ! ( dbl ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOption__bindgen_ty_1 > ( ) ) ) . str as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVOption__bindgen_ty_1 ) , "::" , stringify ! ( str ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOption__bindgen_ty_1 > ( ) ) ) . q as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVOption__bindgen_ty_1 ) , "::" , stringify ! ( q ) ) ) ; } # [ test ] fn bindgen_test_layout_AVOption ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVOption > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( AVOption ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVOption > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVOption ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOption > ( ) ) ) . name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVOption ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOption > ( ) ) ) . help as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVOption ) , "::" , stringify ! ( help ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOption > ( ) ) ) . offset as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVOption ) , "::" , stringify ! ( offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOption > ( ) ) ) . type_ as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( AVOption ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOption > ( ) ) ) . default_val as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVOption ) , "::" , stringify ! ( default_val ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOption > ( ) ) ) . min as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVOption ) , "::" , stringify ! ( min ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOption > ( ) ) ) . max as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVOption ) , "::" , stringify ! ( max ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOption > ( ) ) ) . flags as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVOption ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOption > ( ) ) ) . unit as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVOption ) , "::" , stringify ! ( unit ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq ) ] pub struct AVOptionRange { pub str : * const libc :: c_char , pub value_min : f64 , pub value_max : f64 , pub component_min : f64 , pub component_max : f64 , pub is_range : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVOptionRange ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVOptionRange > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( AVOptionRange ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVOptionRange > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVOptionRange ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOptionRange > ( ) ) ) . str as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVOptionRange ) , "::" , stringify ! ( str ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOptionRange > ( ) ) ) . value_min as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVOptionRange ) , "::" , stringify ! ( value_min ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOptionRange > ( ) ) ) . value_max as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVOptionRange ) , "::" , stringify ! ( value_max ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOptionRange > ( ) ) ) . component_min as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVOptionRange ) , "::" , stringify ! ( component_min ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOptionRange > ( ) ) ) . component_max as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVOptionRange ) , "::" , stringify ! ( component_max ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOptionRange > ( ) ) ) . is_range as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVOptionRange ) , "::" , stringify ! ( is_range ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVOptionRanges { pub range : * mut * mut AVOptionRange , pub nb_ranges : libc :: c_int , pub nb_components : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVOptionRanges ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVOptionRanges > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( AVOptionRanges ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVOptionRanges > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVOptionRanges ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOptionRanges > ( ) ) ) . range as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVOptionRanges ) , "::" , stringify ! ( range ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOptionRanges > ( ) ) ) . nb_ranges as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVOptionRanges ) , "::" , stringify ! ( nb_ranges ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOptionRanges > ( ) ) ) . nb_components as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVOptionRanges ) , "::" , stringify ! ( nb_components ) ) ) ; } extern "C" { pub fn av_opt_show2 ( obj : * mut libc :: c_void , av_log_obj : * mut libc :: c_void , req_flags : libc :: c_int , rej_flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_set_defaults ( s : * mut libc :: c_void ) ; } extern "C" { pub fn av_opt_set_defaults2 ( s : * mut libc :: c_void , mask : libc :: c_int , flags : libc :: c_int ) ; } extern "C" { pub fn av_set_options_string ( ctx : * mut libc :: c_void , opts : * const libc :: c_char , key_val_sep : * const libc :: c_char , pairs_sep : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn av_opt_set_from_string ( ctx : * mut libc :: c_void , opts : * const libc :: c_char , shorthand : * const * const libc :: c_char , key_val_sep : * const libc :: c_char , pairs_sep : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn av_opt_free ( obj : * mut libc :: c_void ) ; } extern "C" { pub fn av_opt_flag_is_set ( obj : * mut libc :: c_void , field_name : * const libc :: c_char , flag_name : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn av_opt_set_dict ( obj : * mut libc :: c_void , options : * mut * mut AVDictionary ) -> libc :: c_int ; } extern "C" { pub fn av_opt_set_dict2 ( obj : * mut libc :: c_void , options : * mut * mut AVDictionary , search_flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_get_key_value ( ropts : * mut * const libc :: c_char , key_val_sep : * const libc :: c_char , pairs_sep : * const libc :: c_char , flags : libc :: c_uint , rkey : * mut * mut libc :: c_char , rval : * mut * mut libc :: c_char ) -> libc :: c_int ; } pub const AV_OPT_FLAG_IMPLICIT_KEY : _bindgen_ty_5 = _bindgen_ty_5 :: AV_OPT_FLAG_IMPLICIT_KEY ; # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum _bindgen_ty_5 { AV_OPT_FLAG_IMPLICIT_KEY = 1 , } extern "C" { pub fn av_opt_eval_flags ( obj : * mut libc :: c_void , o : * const AVOption , val : * const libc :: c_char , flags_out : * mut libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_eval_int ( obj : * mut libc :: c_void , o : * const AVOption , val : * const libc :: c_char , int_out : * mut libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_eval_int64 ( obj : * mut libc :: c_void , o : * const AVOption , val : * const libc :: c_char , int64_out : * mut i64 ) -> libc :: c_int ; } extern "C" { pub fn av_opt_eval_float ( obj : * mut libc :: c_void , o : * const AVOption , val : * const libc :: c_char , float_out : * mut f32 ) -> libc :: c_int ; } extern "C" { pub fn av_opt_eval_double ( obj : * mut libc :: c_void , o : * const AVOption , val : * const libc :: c_char , double_out : * mut f64 ) -> libc :: c_int ; } extern "C" { pub fn av_opt_eval_q ( obj : * mut libc :: c_void , o : * const AVOption , val : * const libc :: c_char , q_out : * mut AVRational ) -> libc :: c_int ; } extern "C" { pub fn av_opt_find ( obj : * mut libc :: c_void , name : * const libc :: c_char , unit : * const libc :: c_char , opt_flags : libc :: c_int , search_flags : libc :: c_int ) -> * const AVOption ; } extern "C" { pub fn av_opt_find2 ( obj : * mut libc :: c_void , name : * const libc :: c_char , unit : * const libc :: c_char , opt_flags : libc :: c_int , search_flags : libc :: c_int , target_obj : * mut * mut libc :: c_void ) -> * const AVOption ; } extern "C" { pub fn av_opt_next ( obj : * const libc :: c_void , prev : * const AVOption ) -> * const AVOption ; } extern "C" { pub fn av_opt_child_next ( obj : * mut libc :: c_void , prev : * mut libc :: c_void ) -> * mut libc :: c_void ; } extern "C" { pub fn av_opt_child_class_next ( parent : * const AVClass , prev : * const AVClass ) -> * const AVClass ; } extern "C" { pub fn av_opt_set ( obj : * mut libc :: c_void , name : * const libc :: c_char , val : * const libc :: c_char , search_flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_set_int ( obj : * mut libc :: c_void , name : * const libc :: c_char , val : i64 , search_flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_set_double ( obj : * mut libc :: c_void , name : * const libc :: c_char , val : f64 , search_flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_set_q ( obj : * mut libc :: c_void , name : * const libc :: c_char , val : AVRational , search_flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_set_bin ( obj : * mut libc :: c_void , name : * const libc :: c_char , val : * const u8 , size : libc :: c_int , search_flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_set_image_size ( obj : * mut libc :: c_void , name : * const libc :: c_char , w : libc :: c_int , h : libc :: c_int , search_flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_set_pixel_fmt ( obj : * mut libc :: c_void , name : * const libc :: c_char , fmt : AVPixelFormat , search_flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_set_sample_fmt ( obj : * mut libc :: c_void , name : * const libc :: c_char , fmt : AVSampleFormat , search_flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_set_video_rate ( obj : * mut libc :: c_void , name : * const libc :: c_char , val : AVRational , search_flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_set_channel_layout ( obj : * mut libc :: c_void , name : * const libc :: c_char , ch_layout : i64 , search_flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_set_dict_val ( obj : * mut libc :: c_void , name : * const libc :: c_char , val : * const AVDictionary , search_flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_get ( obj : * mut libc :: c_void , name : * const libc :: c_char , search_flags : libc :: c_int , out_val : * mut * mut u8 ) -> libc :: c_int ; } extern "C" { pub fn av_opt_get_int ( obj : * mut libc :: c_void , name : * const libc :: c_char , search_flags : libc :: c_int , out_val : * mut i64 ) -> libc :: c_int ; } extern "C" { pub fn av_opt_get_double ( obj : * mut libc :: c_void , name : * const libc :: c_char , search_flags : libc :: c_int , out_val : * mut f64 ) -> libc :: c_int ; } extern "C" { pub fn av_opt_get_q ( obj : * mut libc :: c_void , name : * const libc :: c_char , search_flags : libc :: c_int , out_val : * mut AVRational ) -> libc :: c_int ; } extern "C" { pub fn av_opt_get_image_size ( obj : * mut libc :: c_void , name : * const libc :: c_char , search_flags : libc :: c_int , w_out : * mut libc :: c_int , h_out : * mut libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_get_pixel_fmt ( obj : * mut libc :: c_void , name : * const libc :: c_char , search_flags : libc :: c_int , out_fmt : * mut AVPixelFormat ) -> libc :: c_int ; } extern "C" { pub fn av_opt_get_sample_fmt ( obj : * mut libc :: c_void , name : * const libc :: c_char , search_flags : libc :: c_int , out_fmt : * mut AVSampleFormat ) -> libc :: c_int ; } extern "C" { pub fn av_opt_get_video_rate ( obj : * mut libc :: c_void , name : * const libc :: c_char , search_flags : libc :: c_int , out_val : * mut AVRational ) -> libc :: c_int ; } extern "C" { pub fn av_opt_get_channel_layout ( obj : * mut libc :: c_void , name : * const libc :: c_char , search_flags : libc :: c_int , ch_layout : * mut i64 ) -> libc :: c_int ; } extern "C" { pub fn av_opt_get_dict_val ( obj : * mut libc :: c_void , name : * const libc :: c_char , search_flags : libc :: c_int , out_val : * mut * mut AVDictionary ) -> libc :: c_int ; } extern "C" { pub fn av_opt_ptr ( avclass : * const AVClass , obj : * mut libc :: c_void , name : * const libc :: c_char ) -> * mut libc :: c_void ; } extern "C" { pub fn av_opt_freep_ranges ( ranges : * mut * mut AVOptionRanges ) ; } extern "C" { pub fn av_opt_query_ranges ( arg1 : * mut * mut AVOptionRanges , obj : * mut libc :: c_void , key : * const libc :: c_char , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_copy ( dest : * mut libc :: c_void , src : * const libc :: c_void ) -> libc :: c_int ; } extern "C" { pub fn av_opt_query_ranges_default ( arg1 : * mut * mut AVOptionRanges , obj : * mut libc :: c_void , key : * const libc :: c_char , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_is_set_to_default ( obj : * mut libc :: c_void , o : * const AVOption ) -> libc :: c_int ; } extern "C" { pub fn av_opt_is_set_to_default_by_name ( obj : * mut libc :: c_void , name : * const libc :: c_char , search_flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_opt_serialize ( obj : * mut libc :: c_void , opt_flags : libc :: c_int , flags : libc :: c_int , buffer : * mut * mut libc :: c_char , key_val_sep : libc :: c_char , pairs_sep : libc :: c_char ) -> libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct tm { pub tm_sec : libc :: c_int , pub tm_min : libc :: c_int , pub tm_hour : libc :: c_int , pub tm_mday : libc :: c_int , pub tm_mon : libc :: c_int , pub tm_year : libc :: c_int , pub tm_wday : libc :: c_int , pub tm_yday : libc :: c_int , pub tm_isdst : libc :: c_int , pub tm_gmtoff : libc :: c_long , pub tm_zone : * const libc :: c_char , } # [ test ] fn bindgen_test_layout_tm ( ) { assert_eq ! ( :: std :: mem :: size_of :: < tm > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( tm ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < tm > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( tm ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < tm > ( ) ) ) . tm_sec as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( tm ) , "::" , stringify ! ( tm_sec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < tm > ( ) ) ) . tm_min as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( tm ) , "::" , stringify ! ( tm_min ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < tm > ( ) ) ) . tm_hour as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( tm ) , "::" , stringify ! ( tm_hour ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < tm > ( ) ) ) . tm_mday as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( tm ) , "::" , stringify ! ( tm_mday ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < tm > ( ) ) ) . tm_mon as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( tm ) , "::" , stringify ! ( tm_mon ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < tm > ( ) ) ) . tm_year as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( tm ) , "::" , stringify ! ( tm_year ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < tm > ( ) ) ) . tm_wday as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( tm ) , "::" , stringify ! ( tm_wday ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < tm > ( ) ) ) . tm_yday as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( tm ) , "::" , stringify ! ( tm_yday ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < tm > ( ) ) ) . tm_isdst as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( tm ) , "::" , stringify ! ( tm_isdst ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < tm > ( ) ) ) . tm_gmtoff as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( tm ) , "::" , stringify ! ( tm_gmtoff ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < tm > ( ) ) ) . tm_zone as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( tm ) , "::" , stringify ! ( tm_zone ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct itimerspec { pub it_interval : timespec , pub it_value : timespec , } # [ test ] fn bindgen_test_layout_itimerspec ( ) { assert_eq ! ( :: std :: mem :: size_of :: < itimerspec > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( itimerspec ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < itimerspec > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( itimerspec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < itimerspec > ( ) ) ) . it_interval as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( itimerspec ) , "::" , stringify ! ( it_interval ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < itimerspec > ( ) ) ) . it_value as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( itimerspec ) , "::" , stringify ! ( it_value ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sigevent { _unused : [ u8 ; 0 ] , } extern "C" { pub fn clock ( ) -> clock_t ; } extern "C" { pub fn time ( __timer : * mut time_t ) -> time_t ; } extern "C" { pub fn difftime ( __time1 : time_t , __time0 : time_t ) -> f64 ; } extern "C" { pub fn mktime ( __tp : * mut tm ) -> time_t ; } extern "C" { pub fn strftime ( __s : * mut libc :: c_char , __maxsize : size_t , __format : * const libc :: c_char , __tp : * const tm ) -> size_t ; } extern "C" { pub fn strftime_l ( __s : * mut libc :: c_char , __maxsize : size_t , __format : * const libc :: c_char , __tp : * const tm , __loc : locale_t ) -> size_t ; } extern "C" { pub fn gmtime ( __timer : * const time_t ) -> * mut tm ; } extern "C" { pub fn localtime ( __timer : * const time_t ) -> * mut tm ; } extern "C" { pub fn gmtime_r ( __timer : * const time_t , __tp : * mut tm ) -> * mut tm ; } extern "C" { pub fn localtime_r ( __timer : * const time_t , __tp : * mut tm ) -> * mut tm ; } extern "C" { pub fn asctime ( __tp : * const tm ) -> * mut libc :: c_char ; } extern "C" { pub fn ctime ( __timer : * const time_t ) -> * mut libc :: c_char ; } extern "C" { pub fn asctime_r ( __tp : * const tm , __buf : * mut libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub fn ctime_r ( __timer : * const time_t , __buf : * mut libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { pub static mut __tzname : [ * mut libc :: c_char ; 2usize ] ; } extern "C" { pub static mut __daylight : libc :: c_int ; } extern "C" { pub static mut __timezone : libc :: c_long ; } extern "C" { pub static mut tzname : [ * mut libc :: c_char ; 2usize ] ; } extern "C" { pub fn tzset ( ) ; } extern "C" { pub static mut daylight : libc :: c_int ; } extern "C" { pub static mut timezone : libc :: c_long ; } extern "C" { pub fn timegm ( __tp : * mut tm ) -> time_t ; } extern "C" { pub fn timelocal ( __tp : * mut tm ) -> time_t ; } extern "C" { pub fn dysize ( __year : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn nanosleep ( __requested_time : * const timespec , __remaining : * mut timespec ) -> libc :: c_int ; } extern "C" { pub fn clock_getres ( __clock_id : clockid_t , __res : * mut timespec ) -> libc :: c_int ; } extern "C" { pub fn clock_gettime ( __clock_id : clockid_t , __tp : * mut timespec ) -> libc :: c_int ; } extern "C" { pub fn clock_settime ( __clock_id : clockid_t , __tp : * const timespec ) -> libc :: c_int ; } extern "C" { pub fn clock_nanosleep ( __clock_id : clockid_t , __flags : libc :: c_int , __req : * const timespec , __rem : * mut timespec ) -> libc :: c_int ; } extern "C" { pub fn clock_getcpuclockid ( __pid : pid_t , __clock_id : * mut clockid_t ) -> libc :: c_int ; } extern "C" { pub fn timer_create ( __clock_id : clockid_t , __evp : * mut sigevent , __timerid : * mut timer_t ) -> libc :: c_int ; } extern "C" { pub fn timer_delete ( __timerid : timer_t ) -> libc :: c_int ; } extern "C" { pub fn timer_settime ( __timerid : timer_t , __flags : libc :: c_int , __value : * const itimerspec , __ovalue : * mut itimerspec ) -> libc :: c_int ; } extern "C" { pub fn timer_gettime ( __timerid : timer_t , __value : * mut itimerspec ) -> libc :: c_int ; } extern "C" { pub fn timer_getoverrun ( __timerid : timer_t ) -> libc :: c_int ; } extern "C" { pub fn timespec_get ( __ts : * mut timespec , __base : libc :: c_int ) -> libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVIOInterruptCB { pub callback : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut libc :: c_void ) -> libc :: c_int > , pub opaque : * mut libc :: c_void , } # [ test ] fn bindgen_test_layout_AVIOInterruptCB ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVIOInterruptCB > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( AVIOInterruptCB ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVIOInterruptCB > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVIOInterruptCB ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOInterruptCB > ( ) ) ) . callback as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVIOInterruptCB ) , "::" , stringify ! ( callback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOInterruptCB > ( ) ) ) . opaque as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVIOInterruptCB ) , "::" , stringify ! ( opaque ) ) ) ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVIODirEntryType { AVIO_ENTRY_UNKNOWN = 0 , AVIO_ENTRY_BLOCK_DEVICE = 1 , AVIO_ENTRY_CHARACTER_DEVICE = 2 , AVIO_ENTRY_DIRECTORY = 3 , AVIO_ENTRY_NAMED_PIPE = 4 , AVIO_ENTRY_SYMBOLIC_LINK = 5 , AVIO_ENTRY_SOCKET = 6 , AVIO_ENTRY_FILE = 7 , AVIO_ENTRY_SERVER = 8 , AVIO_ENTRY_SHARE = 9 , AVIO_ENTRY_WORKGROUP = 10 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVIODirEntry { pub name : * mut libc :: c_char , pub type_ : libc :: c_int , pub utf8 : libc :: c_int , pub size : i64 , pub modification_timestamp : i64 , pub access_timestamp : i64 , pub status_change_timestamp : i64 , pub user_id : i64 , pub group_id : i64 , pub filemode : i64 , } # [ test ] fn bindgen_test_layout_AVIODirEntry ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVIODirEntry > ( ) , 72usize , concat ! ( "Size of: " , stringify ! ( AVIODirEntry ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVIODirEntry > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVIODirEntry ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIODirEntry > ( ) ) ) . name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVIODirEntry ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIODirEntry > ( ) ) ) . type_ as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVIODirEntry ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIODirEntry > ( ) ) ) . utf8 as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVIODirEntry ) , "::" , stringify ! ( utf8 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIODirEntry > ( ) ) ) . size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVIODirEntry ) , "::" , stringify ! ( size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIODirEntry > ( ) ) ) . modification_timestamp as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVIODirEntry ) , "::" , stringify ! ( modification_timestamp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIODirEntry > ( ) ) ) . access_timestamp as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVIODirEntry ) , "::" , stringify ! ( access_timestamp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIODirEntry > ( ) ) ) . status_change_timestamp as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVIODirEntry ) , "::" , stringify ! ( status_change_timestamp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIODirEntry > ( ) ) ) . user_id as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVIODirEntry ) , "::" , stringify ! ( user_id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIODirEntry > ( ) ) ) . group_id as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVIODirEntry ) , "::" , stringify ! ( group_id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIODirEntry > ( ) ) ) . filemode as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVIODirEntry ) , "::" , stringify ! ( filemode ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVIODirContext { pub url_context : * mut URLContext , } # [ test ] fn bindgen_test_layout_AVIODirContext ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVIODirContext > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( AVIODirContext ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVIODirContext > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVIODirContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIODirContext > ( ) ) ) . url_context as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVIODirContext ) , "::" , stringify ! ( url_context ) ) ) ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVIODataMarkerType { AVIO_DATA_MARKER_HEADER = 0 , AVIO_DATA_MARKER_SYNC_POINT = 1 , AVIO_DATA_MARKER_BOUNDARY_POINT = 2 , AVIO_DATA_MARKER_UNKNOWN = 3 , AVIO_DATA_MARKER_TRAILER = 4 , AVIO_DATA_MARKER_FLUSH_POINT = 5 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVIOContext { pub av_class : * const AVClass , pub buffer : * mut libc :: c_uchar , pub buffer_size : libc :: c_int , pub buf_ptr : * mut libc :: c_uchar , pub buf_end : * mut libc :: c_uchar , pub opaque : * mut libc :: c_void , pub read_packet : :: std :: option :: Option < unsafe extern "C" fn ( opaque : * mut libc :: c_void , buf : * mut u8 , buf_size : libc :: c_int ) -> libc :: c_int > , pub write_packet : :: std :: option :: Option < unsafe extern "C" fn ( opaque : * mut libc :: c_void , buf : * mut u8 , buf_size : libc :: c_int ) -> libc :: c_int > , pub seek : :: std :: option :: Option < unsafe extern "C" fn ( opaque : * mut libc :: c_void , offset : i64 , whence : libc :: c_int ) -> i64 > , pub pos : i64 , pub eof_reached : libc :: c_int , pub write_flag : libc :: c_int , pub max_packet_size : libc :: c_int , pub checksum : libc :: c_ulong , pub checksum_ptr : * mut libc :: c_uchar , pub update_checksum : :: std :: option :: Option < unsafe extern "C" fn ( checksum : libc :: c_ulong , buf : * const u8 , size : libc :: c_uint ) -> libc :: c_ulong > , pub error : libc :: c_int , pub read_pause : :: std :: option :: Option < unsafe extern "C" fn ( opaque : * mut libc :: c_void , pause : libc :: c_int ) -> libc :: c_int > , pub read_seek : :: std :: option :: Option < unsafe extern "C" fn ( opaque : * mut libc :: c_void , stream_index : libc :: c_int , timestamp : i64 , flags : libc :: c_int ) -> i64 > , pub seekable : libc :: c_int , pub maxsize : i64 , pub direct : libc :: c_int , pub bytes_read : i64 , pub seek_count : libc :: c_int , pub writeout_count : libc :: c_int , pub orig_buffer_size : libc :: c_int , pub short_seek_threshold : libc :: c_int , pub protocol_whitelist : * const libc :: c_char , pub protocol_blacklist : * const libc :: c_char , pub write_data_type : :: std :: option :: Option < unsafe extern "C" fn ( opaque : * mut libc :: c_void , buf : * mut u8 , buf_size : libc :: c_int , type_ : AVIODataMarkerType , time : i64 ) -> libc :: c_int > , pub ignore_boundary_point : libc :: c_int , pub current_type : AVIODataMarkerType , pub last_time : i64 , pub short_seek_get : :: std :: option :: Option < unsafe extern "C" fn ( opaque : * mut libc :: c_void ) -> libc :: c_int > , pub written : i64 , pub buf_ptr_max : * mut libc :: c_uchar , pub min_packet_size : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVIOContext ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVIOContext > ( ) , 264usize , concat ! ( "Size of: " , stringify ! ( AVIOContext ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVIOContext > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVIOContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . av_class as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( av_class ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . buffer as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( buffer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . buffer_size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( buffer_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . buf_ptr as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( buf_ptr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . buf_end as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( buf_end ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . opaque as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( opaque ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . read_packet as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( read_packet ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . write_packet as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( write_packet ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . seek as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( seek ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . pos as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( pos ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . eof_reached as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( eof_reached ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . write_flag as * const _ as usize } , 84usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( write_flag ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . max_packet_size as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( max_packet_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . checksum as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( checksum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . checksum_ptr as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( checksum_ptr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . update_checksum as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( update_checksum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . error as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( error ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . read_pause as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( read_pause ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . read_seek as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( read_seek ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . seekable as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( seekable ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . maxsize as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( maxsize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . direct as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( direct ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . bytes_read as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( bytes_read ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . seek_count as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( seek_count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . writeout_count as * const _ as usize } , 180usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( writeout_count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . orig_buffer_size as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( orig_buffer_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . short_seek_threshold as * const _ as usize } , 188usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( short_seek_threshold ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . protocol_whitelist as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( protocol_whitelist ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . protocol_blacklist as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( protocol_blacklist ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . write_data_type as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( write_data_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . ignore_boundary_point as * const _ as usize } , 216usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( ignore_boundary_point ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . current_type as * const _ as usize } , 220usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( current_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . last_time as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( last_time ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . short_seek_get as * const _ as usize } , 232usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( short_seek_get ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . written as * const _ as usize } , 240usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( written ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . buf_ptr_max as * const _ as usize } , 248usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( buf_ptr_max ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIOContext > ( ) ) ) . min_packet_size as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( AVIOContext ) , "::" , stringify ! ( min_packet_size ) ) ) ; } extern "C" { pub fn avio_find_protocol_name ( url : * const libc :: c_char ) -> * const libc :: c_char ; } extern "C" { pub fn avio_check ( url : * const libc :: c_char , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn avpriv_io_move ( url_src : * const libc :: c_char , url_dst : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn avpriv_io_delete ( url : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn avio_open_dir ( s : * mut * mut AVIODirContext , url : * const libc :: c_char , options : * mut * mut AVDictionary ) -> libc :: c_int ; } extern "C" { pub fn avio_read_dir ( s : * mut AVIODirContext , next : * mut * mut AVIODirEntry ) -> libc :: c_int ; } extern "C" { pub fn avio_close_dir ( s : * mut * mut AVIODirContext ) -> libc :: c_int ; } extern "C" { pub fn avio_free_directory_entry ( entry : * mut * mut AVIODirEntry ) ; } extern "C" { pub fn avio_alloc_context ( buffer : * mut libc :: c_uchar , buffer_size : libc :: c_int , write_flag : libc :: c_int , opaque : * mut libc :: c_void , read_packet : :: std :: option :: Option < unsafe extern "C" fn ( opaque : * mut libc :: c_void , buf : * mut u8 , buf_size : libc :: c_int ) -> libc :: c_int > , write_packet : :: std :: option :: Option < unsafe extern "C" fn ( opaque : * mut libc :: c_void , buf : * mut u8 , buf_size : libc :: c_int ) -> libc :: c_int > , seek : :: std :: option :: Option < unsafe extern "C" fn ( opaque : * mut libc :: c_void , offset : i64 , whence : libc :: c_int ) -> i64 > ) -> * mut AVIOContext ; } extern "C" { pub fn avio_context_free ( s : * mut * mut AVIOContext ) ; } extern "C" { pub fn avio_w8 ( s : * mut AVIOContext , b : libc :: c_int ) ; } extern "C" { pub fn avio_write ( s : * mut AVIOContext , buf : * const libc :: c_uchar , size : libc :: c_int ) ; } extern "C" { pub fn avio_wl64 ( s : * mut AVIOContext , val : u64 ) ; } extern "C" { pub fn avio_wb64 ( s : * mut AVIOContext , val : u64 ) ; } extern "C" { pub fn avio_wl32 ( s : * mut AVIOContext , val : libc :: c_uint ) ; } extern "C" { pub fn avio_wb32 ( s : * mut AVIOContext , val : libc :: c_uint ) ; } extern "C" { pub fn avio_wl24 ( s : * mut AVIOContext , val : libc :: c_uint ) ; } extern "C" { pub fn avio_wb24 ( s : * mut AVIOContext , val : libc :: c_uint ) ; } extern "C" { pub fn avio_wl16 ( s : * mut AVIOContext , val : libc :: c_uint ) ; } extern "C" { pub fn avio_wb16 ( s : * mut AVIOContext , val : libc :: c_uint ) ; } extern "C" { pub fn avio_put_str ( s : * mut AVIOContext , str : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn avio_put_str16le ( s : * mut AVIOContext , str : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn avio_put_str16be ( s : * mut AVIOContext , str : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn avio_write_marker ( s : * mut AVIOContext , time : i64 , type_ : AVIODataMarkerType ) ; } extern "C" { pub fn avio_seek ( s : * mut AVIOContext , offset : i64 , whence : libc :: c_int ) -> i64 ; } extern "C" { pub fn avio_skip ( s : * mut AVIOContext , offset : i64 ) -> i64 ; } extern "C" { pub fn avio_size ( s : * mut AVIOContext ) -> i64 ; } extern "C" { pub fn avio_feof ( s : * mut AVIOContext ) -> libc :: c_int ; } extern "C" { pub fn avio_printf ( s : * mut AVIOContext , fmt : * const libc :: c_char , ... ) -> libc :: c_int ; } extern "C" { pub fn avio_flush ( s : * mut AVIOContext ) ; } extern "C" { pub fn avio_read ( s : * mut AVIOContext , buf : * mut libc :: c_uchar , size : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn avio_read_partial ( s : * mut AVIOContext , buf : * mut libc :: c_uchar , size : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn avio_r8 ( s : * mut AVIOContext ) -> libc :: c_int ; } extern "C" { pub fn avio_rl16 ( s : * mut AVIOContext ) -> libc :: c_uint ; } extern "C" { pub fn avio_rl24 ( s : * mut AVIOContext ) -> libc :: c_uint ; } extern "C" { pub fn avio_rl32 ( s : * mut AVIOContext ) -> libc :: c_uint ; } extern "C" { pub fn avio_rl64 ( s : * mut AVIOContext ) -> u64 ; } extern "C" { pub fn avio_rb16 ( s : * mut AVIOContext ) -> libc :: c_uint ; } extern "C" { pub fn avio_rb24 ( s : * mut AVIOContext ) -> libc :: c_uint ; } extern "C" { pub fn avio_rb32 ( s : * mut AVIOContext ) -> libc :: c_uint ; } extern "C" { pub fn avio_rb64 ( s : * mut AVIOContext ) -> u64 ; } extern "C" { pub fn avio_get_str ( pb : * mut AVIOContext , maxlen : libc :: c_int , buf : * mut libc :: c_char , buflen : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn avio_get_str16le ( pb : * mut AVIOContext , maxlen : libc :: c_int , buf : * mut libc :: c_char , buflen : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn avio_get_str16be ( pb : * mut AVIOContext , maxlen : libc :: c_int , buf : * mut libc :: c_char , buflen : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn avio_open ( s : * mut * mut AVIOContext , url : * const libc :: c_char , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn avio_open2 ( s : * mut * mut AVIOContext , url : * const libc :: c_char , flags : libc :: c_int , int_cb : * const AVIOInterruptCB , options : * mut * mut AVDictionary ) -> libc :: c_int ; } extern "C" { pub fn avio_close ( s : * mut AVIOContext ) -> libc :: c_int ; } extern "C" { pub fn avio_closep ( s : * mut * mut AVIOContext ) -> libc :: c_int ; } extern "C" { pub fn avio_open_dyn_buf ( s : * mut * mut AVIOContext ) -> libc :: c_int ; } extern "C" { pub fn avio_get_dyn_buf ( s : * mut AVIOContext , pbuffer : * mut * mut u8 ) -> libc :: c_int ; } extern "C" { pub fn avio_close_dyn_buf ( s : * mut AVIOContext , pbuffer : * mut * mut u8 ) -> libc :: c_int ; } extern "C" { pub fn avio_enum_protocols ( opaque : * mut * mut libc :: c_void , output : libc :: c_int ) -> * const libc :: c_char ; } extern "C" { pub fn avio_pause ( h : * mut AVIOContext , pause : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn avio_seek_time ( h : * mut AVIOContext , stream_index : libc :: c_int , timestamp : i64 , flags : libc :: c_int ) -> i64 ; } extern "C" { pub fn avio_read_to_bprint ( h : * mut AVIOContext , pb : * mut AVBPrint , max_size : size_t ) -> libc :: c_int ; } extern "C" { pub fn avio_accept ( s : * mut AVIOContext , c : * mut * mut AVIOContext ) -> libc :: c_int ; } extern "C" { pub fn avio_handshake ( c : * mut AVIOContext ) -> libc :: c_int ; } extern "C" { pub fn av_get_packet ( s : * mut AVIOContext , pkt : * mut AVPacket , size : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_append_packet ( s : * mut AVIOContext , pkt : * mut AVPacket , size : libc :: c_int ) -> libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVCodecTag { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVProbeData { pub filename : * const libc :: c_char , pub buf : * mut libc :: c_uchar , pub buf_size : libc :: c_int , pub mime_type : * const libc :: c_char , } # [ test ] fn bindgen_test_layout_AVProbeData ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVProbeData > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( AVProbeData ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVProbeData > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVProbeData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProbeData > ( ) ) ) . filename as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVProbeData ) , "::" , stringify ! ( filename ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProbeData > ( ) ) ) . buf as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVProbeData ) , "::" , stringify ! ( buf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProbeData > ( ) ) ) . buf_size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVProbeData ) , "::" , stringify ! ( buf_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProbeData > ( ) ) ) . mime_type as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVProbeData ) , "::" , stringify ! ( mime_type ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVOutputFormat { pub name : * const libc :: c_char , pub long_name : * const libc :: c_char , pub mime_type : * const libc :: c_char , pub extensions : * const libc :: c_char , pub audio_codec : AVCodecID , pub video_codec : AVCodecID , pub subtitle_codec : AVCodecID , pub flags : libc :: c_int , pub codec_tag : * const * const AVCodecTag , pub priv_class : * const AVClass , pub next : * mut AVOutputFormat , pub priv_data_size : libc :: c_int , pub write_header : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVFormatContext ) -> libc :: c_int > , pub write_packet : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVFormatContext , pkt : * mut AVPacket ) -> libc :: c_int > , pub write_trailer : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVFormatContext ) -> libc :: c_int > , pub interleave_packet : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVFormatContext , out : * mut AVPacket , in_ : * mut AVPacket , flush : libc :: c_int ) -> libc :: c_int > , pub query_codec : :: std :: option :: Option < unsafe extern "C" fn ( id : AVCodecID , std_compliance : libc :: c_int ) -> libc :: c_int > , pub get_output_timestamp : :: std :: option :: Option < unsafe extern "C" fn ( s : * mut AVFormatContext , stream : libc :: c_int , dts : * mut i64 , wall : * mut i64 ) > , pub control_message : :: std :: option :: Option < unsafe extern "C" fn ( s : * mut AVFormatContext , type_ : libc :: c_int , data : * mut libc :: c_void , data_size : size_t ) -> libc :: c_int > , pub write_uncoded_frame : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVFormatContext , stream_index : libc :: c_int , frame : * mut * mut AVFrame , flags : libc :: c_uint ) -> libc :: c_int > , pub get_device_list : :: std :: option :: Option < unsafe extern "C" fn ( s : * mut AVFormatContext , device_list : * mut AVDeviceInfoList ) -> libc :: c_int > , pub create_device_capabilities : :: std :: option :: Option < unsafe extern "C" fn ( s : * mut AVFormatContext , caps : * mut AVDeviceCapabilitiesQuery ) -> libc :: c_int > , pub free_device_capabilities : :: std :: option :: Option < unsafe extern "C" fn ( s : * mut AVFormatContext , caps : * mut AVDeviceCapabilitiesQuery ) -> libc :: c_int > , pub data_codec : AVCodecID , pub init : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVFormatContext ) -> libc :: c_int > , pub deinit : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVFormatContext ) > , pub check_bitstream : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVFormatContext , pkt : * const AVPacket ) -> libc :: c_int > , } # [ test ] fn bindgen_test_layout_AVOutputFormat ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVOutputFormat > ( ) , 200usize , concat ! ( "Size of: " , stringify ! ( AVOutputFormat ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVOutputFormat > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVOutputFormat ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . long_name as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( long_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . mime_type as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( mime_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . extensions as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( extensions ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . audio_codec as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( audio_codec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . video_codec as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( video_codec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . subtitle_codec as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( subtitle_codec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . flags as * const _ as usize } , 44usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . codec_tag as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( codec_tag ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . priv_class as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( priv_class ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . next as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( next ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . priv_data_size as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( priv_data_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . write_header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( write_header ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . write_packet as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( write_packet ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . write_trailer as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( write_trailer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . interleave_packet as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( interleave_packet ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . query_codec as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( query_codec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . get_output_timestamp as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( get_output_timestamp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . control_message as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( control_message ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . write_uncoded_frame as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( write_uncoded_frame ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . get_device_list as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( get_device_list ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . create_device_capabilities as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( create_device_capabilities ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . free_device_capabilities as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( free_device_capabilities ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . data_codec as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( data_codec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . init as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . deinit as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( deinit ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVOutputFormat > ( ) ) ) . check_bitstream as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( AVOutputFormat ) , "::" , stringify ! ( check_bitstream ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVInputFormat { pub name : * const libc :: c_char , pub long_name : * const libc :: c_char , pub flags : libc :: c_int , pub extensions : * const libc :: c_char , pub codec_tag : * const * const AVCodecTag , pub priv_class : * const AVClass , pub mime_type : * const libc :: c_char , pub next : * mut AVInputFormat , pub raw_codec_id : libc :: c_int , pub priv_data_size : libc :: c_int , pub read_probe : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const AVProbeData ) -> libc :: c_int > , pub read_header : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVFormatContext ) -> libc :: c_int > , pub read_packet : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVFormatContext , pkt : * mut AVPacket ) -> libc :: c_int > , pub read_close : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVFormatContext ) -> libc :: c_int > , pub read_seek : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVFormatContext , stream_index : libc :: c_int , timestamp : i64 , flags : libc :: c_int ) -> libc :: c_int > , pub read_timestamp : :: std :: option :: Option < unsafe extern "C" fn ( s : * mut AVFormatContext , stream_index : libc :: c_int , pos : * mut i64 , pos_limit : i64 ) -> i64 > , pub read_play : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVFormatContext ) -> libc :: c_int > , pub read_pause : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVFormatContext ) -> libc :: c_int > , pub read_seek2 : :: std :: option :: Option < unsafe extern "C" fn ( s : * mut AVFormatContext , stream_index : libc :: c_int , min_ts : i64 , ts : i64 , max_ts : i64 , flags : libc :: c_int ) -> libc :: c_int > , pub get_device_list : :: std :: option :: Option < unsafe extern "C" fn ( s : * mut AVFormatContext , device_list : * mut AVDeviceInfoList ) -> libc :: c_int > , pub create_device_capabilities : :: std :: option :: Option < unsafe extern "C" fn ( s : * mut AVFormatContext , caps : * mut AVDeviceCapabilitiesQuery ) -> libc :: c_int > , pub free_device_capabilities : :: std :: option :: Option < unsafe extern "C" fn ( s : * mut AVFormatContext , caps : * mut AVDeviceCapabilitiesQuery ) -> libc :: c_int > , } # [ test ] fn bindgen_test_layout_AVInputFormat ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVInputFormat > ( ) , 168usize , concat ! ( "Size of: " , stringify ! ( AVInputFormat ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVInputFormat > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVInputFormat ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . long_name as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( long_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . flags as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . extensions as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( extensions ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . codec_tag as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( codec_tag ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . priv_class as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( priv_class ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . mime_type as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( mime_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . next as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( next ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . raw_codec_id as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( raw_codec_id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . priv_data_size as * const _ as usize } , 68usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( priv_data_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . read_probe as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( read_probe ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . read_header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( read_header ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . read_packet as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( read_packet ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . read_close as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( read_close ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . read_seek as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( read_seek ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . read_timestamp as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( read_timestamp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . read_play as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( read_play ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . read_pause as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( read_pause ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . read_seek2 as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( read_seek2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . get_device_list as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( get_device_list ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . create_device_capabilities as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( create_device_capabilities ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVInputFormat > ( ) ) ) . free_device_capabilities as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( AVInputFormat ) , "::" , stringify ! ( free_device_capabilities ) ) ) ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVStreamParseType { AVSTREAM_PARSE_NONE = 0 , AVSTREAM_PARSE_FULL = 1 , AVSTREAM_PARSE_HEADERS = 2 , AVSTREAM_PARSE_TIMESTAMPS = 3 , AVSTREAM_PARSE_FULL_ONCE = 4 , AVSTREAM_PARSE_FULL_RAW = 5 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVIndexEntry { pub pos : i64 , pub timestamp : i64 , pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 4usize ] , u32 > , pub min_distance : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVIndexEntry ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVIndexEntry > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( AVIndexEntry ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVIndexEntry > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVIndexEntry ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIndexEntry > ( ) ) ) . pos as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVIndexEntry ) , "::" , stringify ! ( pos ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIndexEntry > ( ) ) ) . timestamp as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVIndexEntry ) , "::" , stringify ! ( timestamp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVIndexEntry > ( ) ) ) . min_distance as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( AVIndexEntry ) , "::" , stringify ! ( min_distance ) ) ) ; } impl AVIndexEntry { # [ inline ] pub fn flags ( & self ) -> libc :: c_int { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 0usize , 2u8 ) as u32 ) } } # [ inline ] pub fn set_flags ( & mut self , val : libc :: c_int ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 0usize , 2u8 , val as u64 ) } } # [ inline ] pub fn size ( & self ) -> libc :: c_int { unsafe { :: std :: mem :: transmute ( self . _bitfield_1 . get ( 2usize , 30u8 ) as u32 ) } } # [ inline ] pub fn set_size ( & mut self , val : libc :: c_int ) { unsafe { let val : u32 = :: std :: mem :: transmute ( val ) ; self . _bitfield_1 . set ( 2usize , 30u8 , val as u64 ) } } # [ inline ] pub fn new_bitfield_1 ( flags : libc :: c_int , size : libc :: c_int ) -> __BindgenBitfieldUnit < [ u8 ; 4usize ] , u32 > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [ u8 ; 4usize ] , u32 > = Default :: default ( ) ; __bindgen_bitfield_unit . set ( 0usize , 2u8 , { let flags : u32 = unsafe { :: std :: mem :: transmute ( flags ) } ; flags as u64 } ) ; __bindgen_bitfield_unit . set ( 2usize , 30u8 , { let size : u32 = unsafe { :: std :: mem :: transmute ( size ) } ; size as u64 } ) ; __bindgen_bitfield_unit } } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVStreamInternal { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVStream { pub index : libc :: c_int , pub id : libc :: c_int , pub codec : * mut AVCodecContext , pub priv_data : * mut libc :: c_void , pub time_base : AVRational , pub start_time : i64 , pub duration : i64 , pub nb_frames : i64 , pub disposition : libc :: c_int , pub discard : AVDiscard , pub sample_aspect_ratio : AVRational , pub metadata : * mut AVDictionary , pub avg_frame_rate : AVRational , pub attached_pic : AVPacket , pub side_data : * mut AVPacketSideData , pub nb_side_data : libc :: c_int , pub event_flags : libc :: c_int , pub r_frame_rate : AVRational , pub recommended_encoder_configuration : * mut libc :: c_char , pub codecpar : * mut AVCodecParameters , pub info : * mut AVStream__bindgen_ty_1 , pub pts_wrap_bits : libc :: c_int , pub first_dts : i64 , pub cur_dts : i64 , pub last_IP_pts : i64 , pub last_IP_duration : libc :: c_int , pub probe_packets : libc :: c_int , pub codec_info_nb_frames : libc :: c_int , pub need_parsing : AVStreamParseType , pub parser : * mut AVCodecParserContext , pub last_in_packet_buffer : * mut AVPacketList , pub probe_data : AVProbeData , pub pts_buffer : [ i64 ; 17usize ] , pub index_entries : * mut AVIndexEntry , pub nb_index_entries : libc :: c_int , pub index_entries_allocated_size : libc :: c_uint , pub stream_identifier : libc :: c_int , pub program_num : libc :: c_int , pub pmt_version : libc :: c_int , pub pmt_stream_idx : libc :: c_int , pub interleaver_chunk_size : i64 , pub interleaver_chunk_duration : i64 , pub request_probe : libc :: c_int , pub skip_to_keyframe : libc :: c_int , pub skip_samples : libc :: c_int , pub start_skip_samples : i64 , pub first_discard_sample : i64 , pub last_discard_sample : i64 , pub nb_decoded_frames : libc :: c_int , pub mux_ts_offset : i64 , pub pts_wrap_reference : i64 , pub pts_wrap_behavior : libc :: c_int , pub update_initial_durations_done : libc :: c_int , pub pts_reorder_error : [ i64 ; 17usize ] , pub pts_reorder_error_count : [ u8 ; 17usize ] , pub last_dts_for_order_check : i64 , pub dts_ordered : u8 , pub dts_misordered : u8 , pub inject_global_side_data : libc :: c_int , pub display_aspect_ratio : AVRational , pub internal : * mut AVStreamInternal , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVStream__bindgen_ty_1 { pub last_dts : i64 , pub duration_gcd : i64 , pub duration_count : libc :: c_int , pub rfps_duration_sum : i64 , pub duration_error : * mut [ [ f64 ; 399usize ] ; 2usize ] , pub codec_info_duration : i64 , pub codec_info_duration_fields : i64 , pub frame_delay_evidence : libc :: c_int , pub found_decoder : libc :: c_int , pub last_duration : i64 , pub fps_first_dts : i64 , pub fps_first_dts_idx : libc :: c_int , pub fps_last_dts : i64 , pub fps_last_dts_idx : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVStream__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVStream__bindgen_ty_1 > ( ) , 104usize , concat ! ( "Size of: " , stringify ! ( AVStream__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVStream__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVStream__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream__bindgen_ty_1 > ( ) ) ) . last_dts as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVStream__bindgen_ty_1 ) , "::" , stringify ! ( last_dts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream__bindgen_ty_1 > ( ) ) ) . duration_gcd as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVStream__bindgen_ty_1 ) , "::" , stringify ! ( duration_gcd ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream__bindgen_ty_1 > ( ) ) ) . duration_count as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVStream__bindgen_ty_1 ) , "::" , stringify ! ( duration_count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream__bindgen_ty_1 > ( ) ) ) . rfps_duration_sum as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVStream__bindgen_ty_1 ) , "::" , stringify ! ( rfps_duration_sum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream__bindgen_ty_1 > ( ) ) ) . duration_error as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVStream__bindgen_ty_1 ) , "::" , stringify ! ( duration_error ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream__bindgen_ty_1 > ( ) ) ) . codec_info_duration as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVStream__bindgen_ty_1 ) , "::" , stringify ! ( codec_info_duration ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream__bindgen_ty_1 > ( ) ) ) . codec_info_duration_fields as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVStream__bindgen_ty_1 ) , "::" , stringify ! ( codec_info_duration_fields ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream__bindgen_ty_1 > ( ) ) ) . frame_delay_evidence as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVStream__bindgen_ty_1 ) , "::" , stringify ! ( frame_delay_evidence ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream__bindgen_ty_1 > ( ) ) ) . found_decoder as * const _ as usize } , 60usize , concat ! ( "Offset of field: " , stringify ! ( AVStream__bindgen_ty_1 ) , "::" , stringify ! ( found_decoder ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream__bindgen_ty_1 > ( ) ) ) . last_duration as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVStream__bindgen_ty_1 ) , "::" , stringify ! ( last_duration ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream__bindgen_ty_1 > ( ) ) ) . fps_first_dts as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVStream__bindgen_ty_1 ) , "::" , stringify ! ( fps_first_dts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream__bindgen_ty_1 > ( ) ) ) . fps_first_dts_idx as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVStream__bindgen_ty_1 ) , "::" , stringify ! ( fps_first_dts_idx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream__bindgen_ty_1 > ( ) ) ) . fps_last_dts as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( AVStream__bindgen_ty_1 ) , "::" , stringify ! ( fps_last_dts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream__bindgen_ty_1 > ( ) ) ) . fps_last_dts_idx as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( AVStream__bindgen_ty_1 ) , "::" , stringify ! ( fps_last_dts_idx ) ) ) ; } # [ test ] fn bindgen_test_layout_AVStream ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVStream > ( ) , 768usize , concat ! ( "Size of: " , stringify ! ( AVStream ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVStream > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVStream ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . index as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( index ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . id as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . codec as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( codec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . priv_data as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( priv_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . time_base as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( time_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . start_time as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( start_time ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . duration as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( duration ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . nb_frames as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( nb_frames ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . disposition as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( disposition ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . discard as * const _ as usize } , 60usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( discard ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . sample_aspect_ratio as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( sample_aspect_ratio ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . metadata as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( metadata ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . avg_frame_rate as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( avg_frame_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . attached_pic as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( attached_pic ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . side_data as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( side_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . nb_side_data as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( nb_side_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . event_flags as * const _ as usize } , 188usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( event_flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . r_frame_rate as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( r_frame_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . recommended_encoder_configuration as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( recommended_encoder_configuration ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . codecpar as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( codecpar ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . info as * const _ as usize } , 216usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( info ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . pts_wrap_bits as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( pts_wrap_bits ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . first_dts as * const _ as usize } , 232usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( first_dts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . cur_dts as * const _ as usize } , 240usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( cur_dts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . last_IP_pts as * const _ as usize } , 248usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( last_IP_pts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . last_IP_duration as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( last_IP_duration ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . probe_packets as * const _ as usize } , 260usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( probe_packets ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . codec_info_nb_frames as * const _ as usize } , 264usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( codec_info_nb_frames ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . need_parsing as * const _ as usize } , 268usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( need_parsing ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . parser as * const _ as usize } , 272usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( parser ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . last_in_packet_buffer as * const _ as usize } , 280usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( last_in_packet_buffer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . probe_data as * const _ as usize } , 288usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( probe_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . pts_buffer as * const _ as usize } , 320usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( pts_buffer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . index_entries as * const _ as usize } , 456usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( index_entries ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . nb_index_entries as * const _ as usize } , 464usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( nb_index_entries ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . index_entries_allocated_size as * const _ as usize } , 468usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( index_entries_allocated_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . stream_identifier as * const _ as usize } , 472usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( stream_identifier ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . program_num as * const _ as usize } , 476usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( program_num ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . pmt_version as * const _ as usize } , 480usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( pmt_version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . pmt_stream_idx as * const _ as usize } , 484usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( pmt_stream_idx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . interleaver_chunk_size as * const _ as usize } , 488usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( interleaver_chunk_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . interleaver_chunk_duration as * const _ as usize } , 496usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( interleaver_chunk_duration ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . request_probe as * const _ as usize } , 504usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( request_probe ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . skip_to_keyframe as * const _ as usize } , 508usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( skip_to_keyframe ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . skip_samples as * const _ as usize } , 512usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( skip_samples ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . start_skip_samples as * const _ as usize } , 520usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( start_skip_samples ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . first_discard_sample as * const _ as usize } , 528usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( first_discard_sample ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . last_discard_sample as * const _ as usize } , 536usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( last_discard_sample ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . nb_decoded_frames as * const _ as usize } , 544usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( nb_decoded_frames ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . mux_ts_offset as * const _ as usize } , 552usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( mux_ts_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . pts_wrap_reference as * const _ as usize } , 560usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( pts_wrap_reference ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . pts_wrap_behavior as * const _ as usize } , 568usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( pts_wrap_behavior ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . update_initial_durations_done as * const _ as usize } , 572usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( update_initial_durations_done ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . pts_reorder_error as * const _ as usize } , 576usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( pts_reorder_error ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . pts_reorder_error_count as * const _ as usize } , 712usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( pts_reorder_error_count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . last_dts_for_order_check as * const _ as usize } , 736usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( last_dts_for_order_check ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . dts_ordered as * const _ as usize } , 744usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( dts_ordered ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . dts_misordered as * const _ as usize } , 745usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( dts_misordered ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . inject_global_side_data as * const _ as usize } , 748usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( inject_global_side_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . display_aspect_ratio as * const _ as usize } , 752usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( display_aspect_ratio ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStream > ( ) ) ) . internal as * const _ as usize } , 760usize , concat ! ( "Offset of field: " , stringify ! ( AVStream ) , "::" , stringify ! ( internal ) ) ) ; } extern "C" { pub fn av_stream_get_r_frame_rate ( s : * const AVStream ) -> AVRational ; } extern "C" { pub fn av_stream_set_r_frame_rate ( s : * mut AVStream , r : AVRational ) ; } extern "C" { pub fn av_stream_get_recommended_encoder_configuration ( s : * const AVStream ) -> * mut libc :: c_char ; } extern "C" { pub fn av_stream_set_recommended_encoder_configuration ( s : * mut AVStream , configuration : * mut libc :: c_char ) ; } extern "C" { pub fn av_stream_get_parser ( s : * const AVStream ) -> * mut AVCodecParserContext ; } extern "C" { pub fn av_stream_get_end_pts ( st : * const AVStream ) -> i64 ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVProgram { pub id : libc :: c_int , pub flags : libc :: c_int , pub discard : AVDiscard , pub stream_index : * mut libc :: c_uint , pub nb_stream_indexes : libc :: c_uint , pub metadata : * mut AVDictionary , pub program_num : libc :: c_int , pub pmt_pid : libc :: c_int , pub pcr_pid : libc :: c_int , pub pmt_version : libc :: c_int , pub start_time : i64 , pub end_time : i64 , pub pts_wrap_reference : i64 , pub pts_wrap_behavior : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVProgram ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVProgram > ( ) , 88usize , concat ! ( "Size of: " , stringify ! ( AVProgram ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVProgram > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVProgram ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProgram > ( ) ) ) . id as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVProgram ) , "::" , stringify ! ( id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProgram > ( ) ) ) . flags as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVProgram ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProgram > ( ) ) ) . discard as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVProgram ) , "::" , stringify ! ( discard ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProgram > ( ) ) ) . stream_index as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVProgram ) , "::" , stringify ! ( stream_index ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProgram > ( ) ) ) . nb_stream_indexes as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVProgram ) , "::" , stringify ! ( nb_stream_indexes ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProgram > ( ) ) ) . metadata as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVProgram ) , "::" , stringify ! ( metadata ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProgram > ( ) ) ) . program_num as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVProgram ) , "::" , stringify ! ( program_num ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProgram > ( ) ) ) . pmt_pid as * const _ as usize } , 44usize , concat ! ( "Offset of field: " , stringify ! ( AVProgram ) , "::" , stringify ! ( pmt_pid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProgram > ( ) ) ) . pcr_pid as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVProgram ) , "::" , stringify ! ( pcr_pid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProgram > ( ) ) ) . pmt_version as * const _ as usize } , 52usize , concat ! ( "Offset of field: " , stringify ! ( AVProgram ) , "::" , stringify ! ( pmt_version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProgram > ( ) ) ) . start_time as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVProgram ) , "::" , stringify ! ( start_time ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProgram > ( ) ) ) . end_time as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVProgram ) , "::" , stringify ! ( end_time ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProgram > ( ) ) ) . pts_wrap_reference as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVProgram ) , "::" , stringify ! ( pts_wrap_reference ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVProgram > ( ) ) ) . pts_wrap_behavior as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVProgram ) , "::" , stringify ! ( pts_wrap_behavior ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVChapter { pub id : libc :: c_int , pub time_base : AVRational , pub start : i64 , pub end : i64 , pub metadata : * mut AVDictionary , } # [ test ] fn bindgen_test_layout_AVChapter ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVChapter > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( AVChapter ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVChapter > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVChapter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVChapter > ( ) ) ) . id as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVChapter ) , "::" , stringify ! ( id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVChapter > ( ) ) ) . time_base as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVChapter ) , "::" , stringify ! ( time_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVChapter > ( ) ) ) . start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVChapter ) , "::" , stringify ! ( start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVChapter > ( ) ) ) . end as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVChapter ) , "::" , stringify ! ( end ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVChapter > ( ) ) ) . metadata as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVChapter ) , "::" , stringify ! ( metadata ) ) ) ; } pub type av_format_control_message = :: std :: option :: Option < unsafe extern "C" fn ( s : * mut AVFormatContext , type_ : libc :: c_int , data : * mut libc :: c_void , data_size : size_t ) -> libc :: c_int > ; pub type AVOpenCallback = :: std :: option :: Option < unsafe extern "C" fn ( s : * mut AVFormatContext , pb : * mut * mut AVIOContext , url : * const libc :: c_char , flags : libc :: c_int , int_cb : * const AVIOInterruptCB , options : * mut * mut AVDictionary ) -> libc :: c_int > ; # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVDurationEstimationMethod { AVFMT_DURATION_FROM_PTS = 0 , AVFMT_DURATION_FROM_STREAM = 1 , AVFMT_DURATION_FROM_BITRATE = 2 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVFormatInternal { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct AVFormatContext { pub av_class : * const AVClass , pub iformat : * mut AVInputFormat , pub oformat : * mut AVOutputFormat , pub priv_data : * mut libc :: c_void , pub pb : * mut AVIOContext , pub ctx_flags : libc :: c_int , pub nb_streams : libc :: c_uint , pub streams : * mut * mut AVStream , pub filename : [ libc :: c_char ; 1024usize ] , pub url : * mut libc :: c_char , pub start_time : i64 , pub duration : i64 , pub bit_rate : i64 , pub packet_size : libc :: c_uint , pub max_delay : libc :: c_int , pub flags : libc :: c_int , pub probesize : i64 , pub max_analyze_duration : i64 , pub key : * const u8 , pub keylen : libc :: c_int , pub nb_programs : libc :: c_uint , pub programs : * mut * mut AVProgram , pub video_codec_id : AVCodecID , pub audio_codec_id : AVCodecID , pub subtitle_codec_id : AVCodecID , pub max_index_size : libc :: c_uint , pub max_picture_buffer : libc :: c_uint , pub nb_chapters : libc :: c_uint , pub chapters : * mut * mut AVChapter , pub metadata : * mut AVDictionary , pub start_time_realtime : i64 , pub fps_probe_size : libc :: c_int , pub error_recognition : libc :: c_int , pub interrupt_callback : AVIOInterruptCB , pub debug : libc :: c_int , pub max_interleave_delta : i64 , pub strict_std_compliance : libc :: c_int , pub event_flags : libc :: c_int , pub max_ts_probe : libc :: c_int , pub avoid_negative_ts : libc :: c_int , pub ts_id : libc :: c_int , pub audio_preload : libc :: c_int , pub max_chunk_duration : libc :: c_int , pub max_chunk_size : libc :: c_int , pub use_wallclock_as_timestamps : libc :: c_int , pub avio_flags : libc :: c_int , pub duration_estimation_method : AVDurationEstimationMethod , pub skip_initial_bytes : i64 , pub correct_ts_overflow : libc :: c_uint , pub seek2any : libc :: c_int , pub flush_packets : libc :: c_int , pub probe_score : libc :: c_int , pub format_probesize : libc :: c_int , pub codec_whitelist : * mut libc :: c_char , pub format_whitelist : * mut libc :: c_char , pub internal : * mut AVFormatInternal , pub io_repositioned : libc :: c_int , pub video_codec : * mut AVCodec , pub audio_codec : * mut AVCodec , pub subtitle_codec : * mut AVCodec , pub data_codec : * mut AVCodec , pub metadata_header_padding : libc :: c_int , pub opaque : * mut libc :: c_void , pub control_message_cb : av_format_control_message , pub output_ts_offset : i64 , pub dump_separator : * mut u8 , pub data_codec_id : AVCodecID , pub open_cb : :: std :: option :: Option < unsafe extern "C" fn ( s : * mut AVFormatContext , p : * mut * mut AVIOContext , url : * const libc :: c_char , flags : libc :: c_int , int_cb : * const AVIOInterruptCB , options : * mut * mut AVDictionary ) -> libc :: c_int > , pub protocol_whitelist : * mut libc :: c_char , pub io_open : :: std :: option :: Option < unsafe extern "C" fn ( s : * mut AVFormatContext , pb : * mut * mut AVIOContext , url : * const libc :: c_char , flags : libc :: c_int , options : * mut * mut AVDictionary ) -> libc :: c_int > , pub io_close : :: std :: option :: Option < unsafe extern "C" fn ( s : * mut AVFormatContext , pb : * mut AVIOContext ) > , pub protocol_blacklist : * mut libc :: c_char , pub max_streams : libc :: c_int , pub skip_estimate_duration_from_pts : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVFormatContext ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVFormatContext > ( ) , 1496usize , concat ! ( "Size of: " , stringify ! ( AVFormatContext ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVFormatContext > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVFormatContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . av_class as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( av_class ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . iformat as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( iformat ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . oformat as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( oformat ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . priv_data as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( priv_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . pb as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( pb ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . ctx_flags as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( ctx_flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . nb_streams as * const _ as usize } , 44usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( nb_streams ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . streams as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( streams ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . filename as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( filename ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . url as * const _ as usize } , 1080usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( url ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . start_time as * const _ as usize } , 1088usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( start_time ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . duration as * const _ as usize } , 1096usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( duration ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . bit_rate as * const _ as usize } , 1104usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( bit_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . packet_size as * const _ as usize } , 1112usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( packet_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . max_delay as * const _ as usize } , 1116usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( max_delay ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . flags as * const _ as usize } , 1120usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . probesize as * const _ as usize } , 1128usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( probesize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . max_analyze_duration as * const _ as usize } , 1136usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( max_analyze_duration ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . key as * const _ as usize } , 1144usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( key ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . keylen as * const _ as usize } , 1152usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( keylen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . nb_programs as * const _ as usize } , 1156usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( nb_programs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . programs as * const _ as usize } , 1160usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( programs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . video_codec_id as * const _ as usize } , 1168usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( video_codec_id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . audio_codec_id as * const _ as usize } , 1172usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( audio_codec_id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . subtitle_codec_id as * const _ as usize } , 1176usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( subtitle_codec_id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . max_index_size as * const _ as usize } , 1180usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( max_index_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . max_picture_buffer as * const _ as usize } , 1184usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( max_picture_buffer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . nb_chapters as * const _ as usize } , 1188usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( nb_chapters ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . chapters as * const _ as usize } , 1192usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( chapters ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . metadata as * const _ as usize } , 1200usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( metadata ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . start_time_realtime as * const _ as usize } , 1208usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( start_time_realtime ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . fps_probe_size as * const _ as usize } , 1216usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( fps_probe_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . error_recognition as * const _ as usize } , 1220usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( error_recognition ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . interrupt_callback as * const _ as usize } , 1224usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( interrupt_callback ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . debug as * const _ as usize } , 1240usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( debug ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . max_interleave_delta as * const _ as usize } , 1248usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( max_interleave_delta ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . strict_std_compliance as * const _ as usize } , 1256usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( strict_std_compliance ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . event_flags as * const _ as usize } , 1260usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( event_flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . max_ts_probe as * const _ as usize } , 1264usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( max_ts_probe ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . avoid_negative_ts as * const _ as usize } , 1268usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( avoid_negative_ts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . ts_id as * const _ as usize } , 1272usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( ts_id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . audio_preload as * const _ as usize } , 1276usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( audio_preload ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . max_chunk_duration as * const _ as usize } , 1280usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( max_chunk_duration ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . max_chunk_size as * const _ as usize } , 1284usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( max_chunk_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . use_wallclock_as_timestamps as * const _ as usize } , 1288usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( use_wallclock_as_timestamps ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . avio_flags as * const _ as usize } , 1292usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( avio_flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . duration_estimation_method as * const _ as usize } , 1296usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( duration_estimation_method ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . skip_initial_bytes as * const _ as usize } , 1304usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( skip_initial_bytes ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . correct_ts_overflow as * const _ as usize } , 1312usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( correct_ts_overflow ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . seek2any as * const _ as usize } , 1316usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( seek2any ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . flush_packets as * const _ as usize } , 1320usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( flush_packets ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . probe_score as * const _ as usize } , 1324usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( probe_score ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . format_probesize as * const _ as usize } , 1328usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( format_probesize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . codec_whitelist as * const _ as usize } , 1336usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( codec_whitelist ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . format_whitelist as * const _ as usize } , 1344usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( format_whitelist ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . internal as * const _ as usize } , 1352usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( internal ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . io_repositioned as * const _ as usize } , 1360usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( io_repositioned ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . video_codec as * const _ as usize } , 1368usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( video_codec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . audio_codec as * const _ as usize } , 1376usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( audio_codec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . subtitle_codec as * const _ as usize } , 1384usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( subtitle_codec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . data_codec as * const _ as usize } , 1392usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( data_codec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . metadata_header_padding as * const _ as usize } , 1400usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( metadata_header_padding ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . opaque as * const _ as usize } , 1408usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( opaque ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . control_message_cb as * const _ as usize } , 1416usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( control_message_cb ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . output_ts_offset as * const _ as usize } , 1424usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( output_ts_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . dump_separator as * const _ as usize } , 1432usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( dump_separator ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . data_codec_id as * const _ as usize } , 1440usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( data_codec_id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . open_cb as * const _ as usize } , 1448usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( open_cb ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . protocol_whitelist as * const _ as usize } , 1456usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( protocol_whitelist ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . io_open as * const _ as usize } , 1464usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( io_open ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . io_close as * const _ as usize } , 1472usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( io_close ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . protocol_blacklist as * const _ as usize } , 1480usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( protocol_blacklist ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . max_streams as * const _ as usize } , 1488usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( max_streams ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFormatContext > ( ) ) ) . skip_estimate_duration_from_pts as * const _ as usize } , 1492usize , concat ! ( "Offset of field: " , stringify ! ( AVFormatContext ) , "::" , stringify ! ( skip_estimate_duration_from_pts ) ) ) ; } extern "C" { pub fn av_format_get_probe_score ( s : * const AVFormatContext ) -> libc :: c_int ; } extern "C" { pub fn av_format_get_video_codec ( s : * const AVFormatContext ) -> * mut AVCodec ; } extern "C" { pub fn av_format_set_video_codec ( s : * mut AVFormatContext , c : * mut AVCodec ) ; } extern "C" { pub fn av_format_get_audio_codec ( s : * const AVFormatContext ) -> * mut AVCodec ; } extern "C" { pub fn av_format_set_audio_codec ( s : * mut AVFormatContext , c : * mut AVCodec ) ; } extern "C" { pub fn av_format_get_subtitle_codec ( s : * const AVFormatContext ) -> * mut AVCodec ; } extern "C" { pub fn av_format_set_subtitle_codec ( s : * mut AVFormatContext , c : * mut AVCodec ) ; } extern "C" { pub fn av_format_get_data_codec ( s : * const AVFormatContext ) -> * mut AVCodec ; } extern "C" { pub fn av_format_set_data_codec ( s : * mut AVFormatContext , c : * mut AVCodec ) ; } extern "C" { pub fn av_format_get_metadata_header_padding ( s : * const AVFormatContext ) -> libc :: c_int ; } extern "C" { pub fn av_format_set_metadata_header_padding ( s : * mut AVFormatContext , c : libc :: c_int ) ; } extern "C" { pub fn av_format_get_opaque ( s : * const AVFormatContext ) -> * mut libc :: c_void ; } extern "C" { pub fn av_format_set_opaque ( s : * mut AVFormatContext , opaque : * mut libc :: c_void ) ; } extern "C" { pub fn av_format_get_control_message_cb ( s : * const AVFormatContext ) -> av_format_control_message ; } extern "C" { pub fn av_format_set_control_message_cb ( s : * mut AVFormatContext , callback : av_format_control_message ) ; } extern "C" { pub fn av_format_get_open_cb ( s : * const AVFormatContext ) -> AVOpenCallback ; } extern "C" { pub fn av_format_set_open_cb ( s : * mut AVFormatContext , callback : AVOpenCallback ) ; } extern "C" { pub fn av_format_inject_global_side_data ( s : * mut AVFormatContext ) ; } extern "C" { pub fn av_fmt_ctx_get_duration_estimation_method ( ctx : * const AVFormatContext ) -> AVDurationEstimationMethod ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVPacketList { pub pkt : AVPacket , pub next : * mut AVPacketList , } # [ test ] fn bindgen_test_layout_AVPacketList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVPacketList > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( AVPacketList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVPacketList > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVPacketList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacketList > ( ) ) ) . pkt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVPacketList ) , "::" , stringify ! ( pkt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPacketList > ( ) ) ) . next as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( AVPacketList ) , "::" , stringify ! ( next ) ) ) ; } extern "C" { pub fn avformat_version ( ) -> libc :: c_uint ; } extern "C" { pub fn avformat_configuration ( ) -> * const libc :: c_char ; } extern "C" { pub fn avformat_license ( ) -> * const libc :: c_char ; } extern "C" { pub fn av_register_all ( ) ; } extern "C" { pub fn av_register_input_format ( format : * mut AVInputFormat ) ; } extern "C" { pub fn av_register_output_format ( format : * mut AVOutputFormat ) ; } extern "C" { pub fn avformat_network_init ( ) -> libc :: c_int ; } extern "C" { pub fn avformat_network_deinit ( ) -> libc :: c_int ; } extern "C" { pub fn av_iformat_next ( f : * const AVInputFormat ) -> * mut AVInputFormat ; } extern "C" { pub fn av_oformat_next ( f : * const AVOutputFormat ) -> * mut AVOutputFormat ; } extern "C" { pub fn av_muxer_iterate ( opaque : * mut * mut libc :: c_void ) -> * const AVOutputFormat ; } extern "C" { pub fn av_demuxer_iterate ( opaque : * mut * mut libc :: c_void ) -> * const AVInputFormat ; } extern "C" { pub fn avformat_alloc_context ( ) -> * mut AVFormatContext ; } extern "C" { pub fn avformat_free_context ( s : * mut AVFormatContext ) ; } extern "C" { pub fn avformat_get_class ( ) -> * const AVClass ; } extern "C" { pub fn avformat_new_stream ( s : * mut AVFormatContext , c : * const AVCodec ) -> * mut AVStream ; } extern "C" { pub fn av_stream_add_side_data ( st : * mut AVStream , type_ : AVPacketSideDataType , data : * mut u8 , size : size_t ) -> libc :: c_int ; } extern "C" { pub fn av_stream_new_side_data ( stream : * mut AVStream , type_ : AVPacketSideDataType , size : libc :: c_int ) -> * mut u8 ; } extern "C" { pub fn av_stream_get_side_data ( stream : * const AVStream , type_ : AVPacketSideDataType , size : * mut libc :: c_int ) -> * mut u8 ; } extern "C" { pub fn av_new_program ( s : * mut AVFormatContext , id : libc :: c_int ) -> * mut AVProgram ; } extern "C" { pub fn avformat_alloc_output_context2 ( ctx : * mut * mut AVFormatContext , oformat : * mut AVOutputFormat , format_name : * const libc :: c_char , filename : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn av_find_input_format ( short_name : * const libc :: c_char ) -> * mut AVInputFormat ; } extern "C" { pub fn av_probe_input_format ( pd : * mut AVProbeData , is_opened : libc :: c_int ) -> * mut AVInputFormat ; } extern "C" { pub fn av_probe_input_format2 ( pd : * mut AVProbeData , is_opened : libc :: c_int , score_max : * mut libc :: c_int ) -> * mut AVInputFormat ; } extern "C" { pub fn av_probe_input_format3 ( pd : * mut AVProbeData , is_opened : libc :: c_int , score_ret : * mut libc :: c_int ) -> * mut AVInputFormat ; } extern "C" { pub fn av_probe_input_buffer2 ( pb : * mut AVIOContext , fmt : * mut * mut AVInputFormat , url : * const libc :: c_char , logctx : * mut libc :: c_void , offset : libc :: c_uint , max_probe_size : libc :: c_uint ) -> libc :: c_int ; } extern "C" { pub fn av_probe_input_buffer ( pb : * mut AVIOContext , fmt : * mut * mut AVInputFormat , url : * const libc :: c_char , logctx : * mut libc :: c_void , offset : libc :: c_uint , max_probe_size : libc :: c_uint ) -> libc :: c_int ; } extern "C" { pub fn avformat_open_input ( ps : * mut * mut AVFormatContext , url : * const libc :: c_char , fmt : * mut AVInputFormat , options : * mut * mut AVDictionary ) -> libc :: c_int ; } extern "C" { pub fn av_demuxer_open ( ic : * mut AVFormatContext ) -> libc :: c_int ; } extern "C" { pub fn avformat_find_stream_info ( ic : * mut AVFormatContext , options : * mut * mut AVDictionary ) -> libc :: c_int ; } extern "C" { pub fn av_find_program_from_stream ( ic : * mut AVFormatContext , last : * mut AVProgram , s : libc :: c_int ) -> * mut AVProgram ; } extern "C" { pub fn av_program_add_stream_index ( ac : * mut AVFormatContext , progid : libc :: c_int , idx : libc :: c_uint ) ; } extern "C" { pub fn av_find_best_stream ( ic : * mut AVFormatContext , type_ : AVMediaType , wanted_stream_nb : libc :: c_int , related_stream : libc :: c_int , decoder_ret : * mut * mut AVCodec , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_read_frame ( s : * mut AVFormatContext , pkt : * mut AVPacket ) -> libc :: c_int ; } extern "C" { pub fn av_seek_frame ( s : * mut AVFormatContext , stream_index : libc :: c_int , timestamp : i64 , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn avformat_seek_file ( s : * mut AVFormatContext , stream_index : libc :: c_int , min_ts : i64 , ts : i64 , max_ts : i64 , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn avformat_flush ( s : * mut AVFormatContext ) -> libc :: c_int ; } extern "C" { pub fn av_read_play ( s : * mut AVFormatContext ) -> libc :: c_int ; } extern "C" { pub fn av_read_pause ( s : * mut AVFormatContext ) -> libc :: c_int ; } extern "C" { pub fn avformat_close_input ( s : * mut * mut AVFormatContext ) ; } extern "C" { pub fn avformat_write_header ( s : * mut AVFormatContext , options : * mut * mut AVDictionary ) -> libc :: c_int ; } extern "C" { pub fn avformat_init_output ( s : * mut AVFormatContext , options : * mut * mut AVDictionary ) -> libc :: c_int ; } extern "C" { pub fn av_write_frame ( s : * mut AVFormatContext , pkt : * mut AVPacket ) -> libc :: c_int ; } extern "C" { pub fn av_interleaved_write_frame ( s : * mut AVFormatContext , pkt : * mut AVPacket ) -> libc :: c_int ; } extern "C" { pub fn av_write_uncoded_frame ( s : * mut AVFormatContext , stream_index : libc :: c_int , frame : * mut AVFrame ) -> libc :: c_int ; } extern "C" { pub fn av_interleaved_write_uncoded_frame ( s : * mut AVFormatContext , stream_index : libc :: c_int , frame : * mut AVFrame ) -> libc :: c_int ; } extern "C" { pub fn av_write_uncoded_frame_query ( s : * mut AVFormatContext , stream_index : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_write_trailer ( s : * mut AVFormatContext ) -> libc :: c_int ; } extern "C" { pub fn av_guess_format ( short_name : * const libc :: c_char , filename : * const libc :: c_char , mime_type : * const libc :: c_char ) -> * mut AVOutputFormat ; } extern "C" { pub fn av_guess_codec ( fmt : * mut AVOutputFormat , short_name : * const libc :: c_char , filename : * const libc :: c_char , mime_type : * const libc :: c_char , type_ : AVMediaType ) -> AVCodecID ; } extern "C" { pub fn av_get_output_timestamp ( s : * mut AVFormatContext , stream : libc :: c_int , dts : * mut i64 , wall : * mut i64 ) -> libc :: c_int ; } extern "C" { pub fn av_hex_dump ( f : * mut FILE , buf : * const u8 , size : libc :: c_int ) ; } extern "C" { pub fn av_hex_dump_log ( avcl : * mut libc :: c_void , level : libc :: c_int , buf : * const u8 , size : libc :: c_int ) ; } extern "C" { pub fn av_pkt_dump2 ( f : * mut FILE , pkt : * const AVPacket , dump_payload : libc :: c_int , st : * const AVStream ) ; } extern "C" { pub fn av_pkt_dump_log2 ( avcl : * mut libc :: c_void , level : libc :: c_int , pkt : * const AVPacket , dump_payload : libc :: c_int , st : * const AVStream ) ; } extern "C" { pub fn av_codec_get_id ( tags : * const * const AVCodecTag , tag : libc :: c_uint ) -> AVCodecID ; } extern "C" { pub fn av_codec_get_tag ( tags : * const * const AVCodecTag , id : AVCodecID ) -> libc :: c_uint ; } extern "C" { pub fn av_codec_get_tag2 ( tags : * const * const AVCodecTag , id : AVCodecID , tag : * mut libc :: c_uint ) -> libc :: c_int ; } extern "C" { pub fn av_find_default_stream_index ( s : * mut AVFormatContext ) -> libc :: c_int ; } extern "C" { pub fn av_index_search_timestamp ( st : * mut AVStream , timestamp : i64 , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_add_index_entry ( st : * mut AVStream , pos : i64 , timestamp : i64 , size : libc :: c_int , distance : libc :: c_int , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_url_split ( proto : * mut libc :: c_char , proto_size : libc :: c_int , authorization : * mut libc :: c_char , authorization_size : libc :: c_int , hostname : * mut libc :: c_char , hostname_size : libc :: c_int , port_ptr : * mut libc :: c_int , path : * mut libc :: c_char , path_size : libc :: c_int , url : * const libc :: c_char ) ; } extern "C" { pub fn av_dump_format ( ic : * mut AVFormatContext , index : libc :: c_int , url : * const libc :: c_char , is_output : libc :: c_int ) ; } extern "C" { pub fn av_get_frame_filename2 ( buf : * mut libc :: c_char , buf_size : libc :: c_int , path : * const libc :: c_char , number : libc :: c_int , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_get_frame_filename ( buf : * mut libc :: c_char , buf_size : libc :: c_int , path : * const libc :: c_char , number : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_filename_number_test ( filename : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn av_sdp_create ( ac : * mut * mut AVFormatContext , n_files : libc :: c_int , buf : * mut libc :: c_char , size : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_match_ext ( filename : * const libc :: c_char , extensions : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn avformat_query_codec ( ofmt : * const AVOutputFormat , codec_id : AVCodecID , std_compliance : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn avformat_get_riff_video_tags ( ) -> * const AVCodecTag ; } extern "C" { pub fn avformat_get_riff_audio_tags ( ) -> * const AVCodecTag ; } extern "C" { pub fn avformat_get_mov_video_tags ( ) -> * const AVCodecTag ; } extern "C" { pub fn avformat_get_mov_audio_tags ( ) -> * const AVCodecTag ; } extern "C" { pub fn av_guess_sample_aspect_ratio ( format : * mut AVFormatContext , stream : * mut AVStream , frame : * mut AVFrame ) -> AVRational ; } extern "C" { pub fn av_guess_frame_rate ( ctx : * mut AVFormatContext , stream : * mut AVStream , frame : * mut AVFrame ) -> AVRational ; } extern "C" { pub fn avformat_match_stream_specifier ( s : * mut AVFormatContext , st : * mut AVStream , spec : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { pub fn avformat_queue_attached_pictures ( s : * mut AVFormatContext ) -> libc :: c_int ; } extern "C" { pub fn av_apply_bitstream_filters ( codec : * mut AVCodecContext , pkt : * mut AVPacket , bsfc : * mut AVBitStreamFilterContext ) -> libc :: c_int ; } # [ repr ( i32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVTimebaseSource { AVFMT_TBCF_AUTO = - 1 , AVFMT_TBCF_DECODER = 0 , AVFMT_TBCF_DEMUXER = 1 , AVFMT_TBCF_R_FRAMERATE = 2 , } extern "C" { pub fn avformat_transfer_internal_stream_timing_info ( ofmt : * const AVOutputFormat , ost : * mut AVStream , ist : * const AVStream , copy_tb : AVTimebaseSource ) -> libc :: c_int ; } extern "C" { pub fn av_stream_get_codec_timebase ( st : * const AVStream ) -> AVRational ; } extern "C" { # [ doc = " Return the LIBAVDEVICE_VERSION_INT constant." ] pub fn avdevice_version ( ) -> libc :: c_uint ; } extern "C" { # [ doc = " Return the libavdevice build-time configuration." ] pub fn avdevice_configuration ( ) -> * const libc :: c_char ; } extern "C" { # [ doc = " Return the libavdevice license." ] pub fn avdevice_license ( ) -> * const libc :: c_char ; } extern "C" { # [ doc = " Initialize libavdevice and register all the input and output devices." ] pub fn avdevice_register_all ( ) ; } extern "C" { # [ doc = " Audio input devices iterator." ] # [ doc = "" ] # [ doc = " If d is NULL, returns the first registered input audio/video device," ] # [ doc = " if d is non-NULL, returns the next registered input audio/video device after d" ] # [ doc = " or NULL if d is the last one." ] pub fn av_input_audio_device_next ( d : * mut AVInputFormat ) -> * mut AVInputFormat ; } extern "C" { # [ doc = " Video input devices iterator." ] # [ doc = "" ] # [ doc = " If d is NULL, returns the first registered input audio/video device," ] # [ doc = " if d is non-NULL, returns the next registered input audio/video device after d" ] # [ doc = " or NULL if d is the last one." ] pub fn av_input_video_device_next ( d : * mut AVInputFormat ) -> * mut AVInputFormat ; } extern "C" { # [ doc = " Audio output devices iterator." ] # [ doc = "" ] # [ doc = " If d is NULL, returns the first registered output audio/video device," ] # [ doc = " if d is non-NULL, returns the next registered output audio/video device after d" ] # [ doc = " or NULL if d is the last one." ] pub fn av_output_audio_device_next ( d : * mut AVOutputFormat ) -> * mut AVOutputFormat ; } extern "C" { # [ doc = " Video output devices iterator." ] # [ doc = "" ] # [ doc = " If d is NULL, returns the first registered output audio/video device," ] # [ doc = " if d is non-NULL, returns the next registered output audio/video device after d" ] # [ doc = " or NULL if d is the last one." ] pub fn av_output_video_device_next ( d : * mut AVOutputFormat ) -> * mut AVOutputFormat ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVDeviceRect { # [ doc = "< x coordinate of top left corner" ] pub x : libc :: c_int , # [ doc = "< y coordinate of top left corner" ] pub y : libc :: c_int , # [ doc = "< width" ] pub width : libc :: c_int , # [ doc = "< height" ] pub height : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVDeviceRect ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVDeviceRect > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( AVDeviceRect ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVDeviceRect > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( AVDeviceRect ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceRect > ( ) ) ) . x as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceRect ) , "::" , stringify ! ( x ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceRect > ( ) ) ) . y as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceRect ) , "::" , stringify ! ( y ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceRect > ( ) ) ) . width as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceRect ) , "::" , stringify ! ( width ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceRect > ( ) ) ) . height as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceRect ) , "::" , stringify ! ( height ) ) ) ; } # [ repr ( u32 ) ] # [ doc = " Message types used by avdevice_app_to_dev_control_message()." ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVAppToDevMessageType { # [ doc = " Dummy message." ] AV_APP_TO_DEV_NONE = 1313820229 , # [ doc = " Window size change message." ] # [ doc = "" ] # [ doc = " Message is sent to the device every time the application changes the size" ] # [ doc = " of the window device renders to." ] # [ doc = " Message should also be sent right after window is created." ] # [ doc = "" ] # [ doc = " data: AVDeviceRect: new window size." ] AV_APP_TO_DEV_WINDOW_SIZE = 1195724621 , # [ doc = " Repaint request message." ] # [ doc = "" ] # [ doc = " Message is sent to the device when window has to be repainted." ] # [ doc = "" ] # [ doc = " data: AVDeviceRect: area required to be repainted." ] # [ doc = "       NULL: whole area is required to be repainted." ] AV_APP_TO_DEV_WINDOW_REPAINT = 1380274241 , # [ doc = " Request pause/play." ] # [ doc = "" ] # [ doc = " Application requests pause/unpause playback." ] # [ doc = " Mostly usable with devices that have internal buffer." ] # [ doc = " By default devices are not paused." ] # [ doc = "" ] # [ doc = " data: NULL" ] AV_APP_TO_DEV_PAUSE = 1346458912 , # [ doc = " Request pause/play." ] # [ doc = "" ] # [ doc = " Application requests pause/unpause playback." ] # [ doc = " Mostly usable with devices that have internal buffer." ] # [ doc = " By default devices are not paused." ] # [ doc = "" ] # [ doc = " data: NULL" ] AV_APP_TO_DEV_PLAY = 1347174745 , # [ doc = " Request pause/play." ] # [ doc = "" ] # [ doc = " Application requests pause/unpause playback." ] # [ doc = " Mostly usable with devices that have internal buffer." ] # [ doc = " By default devices are not paused." ] # [ doc = "" ] # [ doc = " data: NULL" ] AV_APP_TO_DEV_TOGGLE_PAUSE = 1346458964 , # [ doc = " Volume control message." ] # [ doc = "" ] # [ doc = " Set volume level. It may be device-dependent if volume" ] # [ doc = " is changed per stream or system wide. Per stream volume" ] # [ doc = " change is expected when possible." ] # [ doc = "" ] # [ doc = " data: double: new volume with range of 0.0 - 1.0." ] AV_APP_TO_DEV_SET_VOLUME = 1398165324 , # [ doc = " Mute control messages." ] # [ doc = "" ] # [ doc = " Change mute state. It may be device-dependent if mute status" ] # [ doc = " is changed per stream or system wide. Per stream mute status" ] # [ doc = " change is expected when possible." ] # [ doc = "" ] # [ doc = " data: NULL." ] AV_APP_TO_DEV_MUTE = 541939028 , # [ doc = " Mute control messages." ] # [ doc = "" ] # [ doc = " Change mute state. It may be device-dependent if mute status" ] # [ doc = " is changed per stream or system wide. Per stream mute status" ] # [ doc = " change is expected when possible." ] # [ doc = "" ] # [ doc = " data: NULL." ] AV_APP_TO_DEV_UNMUTE = 1431131476 , # [ doc = " Mute control messages." ] # [ doc = "" ] # [ doc = " Change mute state. It may be device-dependent if mute status" ] # [ doc = " is changed per stream or system wide. Per stream mute status" ] # [ doc = " change is expected when possible." ] # [ doc = "" ] # [ doc = " data: NULL." ] AV_APP_TO_DEV_TOGGLE_MUTE = 1414354260 , # [ doc = " Get volume/mute messages." ] # [ doc = "" ] # [ doc = " Force the device to send AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED or" ] # [ doc = " AV_DEV_TO_APP_MUTE_STATE_CHANGED command respectively." ] # [ doc = "" ] # [ doc = " data: NULL." ] AV_APP_TO_DEV_GET_VOLUME = 1196838732 , # [ doc = " Get volume/mute messages." ] # [ doc = "" ] # [ doc = " Force the device to send AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED or" ] # [ doc = " AV_DEV_TO_APP_MUTE_STATE_CHANGED command respectively." ] # [ doc = "" ] # [ doc = " data: NULL." ] AV_APP_TO_DEV_GET_MUTE = 1196250452 , } # [ repr ( u32 ) ] # [ doc = " Message types used by avdevice_dev_to_app_control_message()." ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVDevToAppMessageType { # [ doc = " Dummy message." ] AV_DEV_TO_APP_NONE = 1313820229 , # [ doc = " Create window buffer message." ] # [ doc = "" ] # [ doc = " Device requests to create a window buffer. Exact meaning is device-" ] # [ doc = " and application-dependent. Message is sent before rendering first" ] # [ doc = " frame and all one-shot initializations should be done here." ] # [ doc = " Application is allowed to ignore preferred window buffer size." ] # [ doc = "" ] # [ doc = " @note: Application is obligated to inform about window buffer size" ] # [ doc = "        with AV_APP_TO_DEV_WINDOW_SIZE message." ] # [ doc = "" ] # [ doc = " data: AVDeviceRect: preferred size of the window buffer." ] # [ doc = "       NULL: no preferred size of the window buffer." ] AV_DEV_TO_APP_CREATE_WINDOW_BUFFER = 1111708229 , # [ doc = " Prepare window buffer message." ] # [ doc = "" ] # [ doc = " Device requests to prepare a window buffer for rendering." ] # [ doc = " Exact meaning is device- and application-dependent." ] # [ doc = " Message is sent before rendering of each frame." ] # [ doc = "" ] # [ doc = " data: NULL." ] AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER = 1112560197 , # [ doc = " Display window buffer message." ] # [ doc = "" ] # [ doc = " Device requests to display a window buffer." ] # [ doc = " Message is sent when new frame is ready to be displayed." ] # [ doc = " Usually buffers need to be swapped in handler of this message." ] # [ doc = "" ] # [ doc = " data: NULL." ] AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER = 1111771475 , # [ doc = " Destroy window buffer message." ] # [ doc = "" ] # [ doc = " Device requests to destroy a window buffer." ] # [ doc = " Message is sent when device is about to be destroyed and window" ] # [ doc = " buffer is not required anymore." ] # [ doc = "" ] # [ doc = " data: NULL." ] AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER = 1111770451 , # [ doc = " Buffer fullness status messages." ] # [ doc = "" ] # [ doc = " Device signals buffer overflow/underflow." ] # [ doc = "" ] # [ doc = " data: NULL." ] AV_DEV_TO_APP_BUFFER_OVERFLOW = 1112491596 , # [ doc = " Buffer fullness status messages." ] # [ doc = "" ] # [ doc = " Device signals buffer overflow/underflow." ] # [ doc = "" ] # [ doc = " data: NULL." ] AV_DEV_TO_APP_BUFFER_UNDERFLOW = 1112884812 , # [ doc = " Buffer readable/writable." ] # [ doc = "" ] # [ doc = " Device informs that buffer is readable/writable." ] # [ doc = " When possible, device informs how many bytes can be read/write." ] # [ doc = "" ] # [ doc = " @warning Device may not inform when number of bytes than can be read/write changes." ] # [ doc = "" ] # [ doc = " data: int64_t: amount of bytes available to read/write." ] # [ doc = "       NULL: amount of bytes available to read/write is not known." ] AV_DEV_TO_APP_BUFFER_READABLE = 1112687648 , # [ doc = " Buffer readable/writable." ] # [ doc = "" ] # [ doc = " Device informs that buffer is readable/writable." ] # [ doc = " When possible, device informs how many bytes can be read/write." ] # [ doc = "" ] # [ doc = " @warning Device may not inform when number of bytes than can be read/write changes." ] # [ doc = "" ] # [ doc = " data: int64_t: amount of bytes available to read/write." ] # [ doc = "       NULL: amount of bytes available to read/write is not known." ] AV_DEV_TO_APP_BUFFER_WRITABLE = 1113018912 , # [ doc = " Mute state change message." ] # [ doc = "" ] # [ doc = " Device informs that mute state has changed." ] # [ doc = "" ] # [ doc = " data: int: 0 for not muted state, non-zero for muted state." ] AV_DEV_TO_APP_MUTE_STATE_CHANGED = 1129141588 , # [ doc = " Volume level change message." ] # [ doc = "" ] # [ doc = " Device informs that volume level has changed." ] # [ doc = "" ] # [ doc = " data: double: new volume with range of 0.0 - 1.0." ] AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED = 1129729868 , } extern "C" { # [ doc = " Send control message from application to device." ] # [ doc = "" ] # [ doc = " @param s         device context." ] # [ doc = " @param type      message type." ] # [ doc = " @param data      message data. Exact type depends on message type." ] # [ doc = " @param data_size size of message data." ] # [ doc = " @return >= 0 on success, negative on error." ] # [ doc = "         AVERROR(ENOSYS) when device doesn't implement handler of the message." ] pub fn avdevice_app_to_dev_control_message ( s : * mut AVFormatContext , type_ : AVAppToDevMessageType , data : * mut libc :: c_void , data_size : size_t ) -> libc :: c_int ; } extern "C" { # [ doc = " Send control message from device to application." ] # [ doc = "" ] # [ doc = " @param s         device context." ] # [ doc = " @param type      message type." ] # [ doc = " @param data      message data. Can be NULL." ] # [ doc = " @param data_size size of message data." ] # [ doc = " @return >= 0 on success, negative on error." ] # [ doc = "         AVERROR(ENOSYS) when application doesn't implement handler of the message." ] pub fn avdevice_dev_to_app_control_message ( s : * mut AVFormatContext , type_ : AVDevToAppMessageType , data : * mut libc :: c_void , data_size : size_t ) -> libc :: c_int ; } # [ doc = " Structure describes device capabilities." ] # [ doc = "" ] # [ doc = " It is used by devices in conjunction with av_device_capabilities AVOption table" ] # [ doc = " to implement capabilities probing API based on AVOption API. Should not be used directly." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVDeviceCapabilitiesQuery { pub av_class : * const AVClass , pub device_context : * mut AVFormatContext , pub codec : AVCodecID , pub sample_format : AVSampleFormat , pub pixel_format : AVPixelFormat , pub sample_rate : libc :: c_int , pub channels : libc :: c_int , pub channel_layout : i64 , pub window_width : libc :: c_int , pub window_height : libc :: c_int , pub frame_width : libc :: c_int , pub frame_height : libc :: c_int , pub fps : AVRational , } # [ test ] fn bindgen_test_layout_AVDeviceCapabilitiesQuery ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVDeviceCapabilitiesQuery > ( ) , 72usize , concat ! ( "Size of: " , stringify ! ( AVDeviceCapabilitiesQuery ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVDeviceCapabilitiesQuery > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVDeviceCapabilitiesQuery ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceCapabilitiesQuery > ( ) ) ) . av_class as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceCapabilitiesQuery ) , "::" , stringify ! ( av_class ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceCapabilitiesQuery > ( ) ) ) . device_context as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceCapabilitiesQuery ) , "::" , stringify ! ( device_context ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceCapabilitiesQuery > ( ) ) ) . codec as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceCapabilitiesQuery ) , "::" , stringify ! ( codec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceCapabilitiesQuery > ( ) ) ) . sample_format as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceCapabilitiesQuery ) , "::" , stringify ! ( sample_format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceCapabilitiesQuery > ( ) ) ) . pixel_format as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceCapabilitiesQuery ) , "::" , stringify ! ( pixel_format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceCapabilitiesQuery > ( ) ) ) . sample_rate as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceCapabilitiesQuery ) , "::" , stringify ! ( sample_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceCapabilitiesQuery > ( ) ) ) . channels as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceCapabilitiesQuery ) , "::" , stringify ! ( channels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceCapabilitiesQuery > ( ) ) ) . channel_layout as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceCapabilitiesQuery ) , "::" , stringify ! ( channel_layout ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceCapabilitiesQuery > ( ) ) ) . window_width as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceCapabilitiesQuery ) , "::" , stringify ! ( window_width ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceCapabilitiesQuery > ( ) ) ) . window_height as * const _ as usize } , 52usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceCapabilitiesQuery ) , "::" , stringify ! ( window_height ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceCapabilitiesQuery > ( ) ) ) . frame_width as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceCapabilitiesQuery ) , "::" , stringify ! ( frame_width ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceCapabilitiesQuery > ( ) ) ) . frame_height as * const _ as usize } , 60usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceCapabilitiesQuery ) , "::" , stringify ! ( frame_height ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceCapabilitiesQuery > ( ) ) ) . fps as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceCapabilitiesQuery ) , "::" , stringify ! ( fps ) ) ) ; } extern "C" { pub static mut av_device_capabilities : [ AVOption ; 0usize ] ; } extern "C" { # [ doc = " Initialize capabilities probing API based on AVOption API." ] # [ doc = "" ] # [ doc = " avdevice_capabilities_free() must be called when query capabilities API is" ] # [ doc = " not used anymore." ] # [ doc = "" ] # [ doc = " @param[out] caps      Device capabilities data. Pointer to a NULL pointer must be passed." ] # [ doc = " @param s              Context of the device." ] # [ doc = " @param device_options An AVDictionary filled with device-private options." ] # [ doc = "                       On return this parameter will be destroyed and replaced with a dict" ] # [ doc = "                       containing options that were not found. May be NULL." ] # [ doc = "                       The same options must be passed later to avformat_write_header() for output" ] # [ doc = "                       devices or avformat_open_input() for input devices, or at any other place" ] # [ doc = "                       that affects device-private options." ] # [ doc = "" ] # [ doc = " @return >= 0 on success, negative otherwise." ] pub fn avdevice_capabilities_create ( caps : * mut * mut AVDeviceCapabilitiesQuery , s : * mut AVFormatContext , device_options : * mut * mut AVDictionary ) -> libc :: c_int ; } extern "C" { # [ doc = " Free resources created by avdevice_capabilities_create()" ] # [ doc = "" ] # [ doc = " @param caps Device capabilities data to be freed." ] # [ doc = " @param s    Context of the device." ] pub fn avdevice_capabilities_free ( caps : * mut * mut AVDeviceCapabilitiesQuery , s : * mut AVFormatContext ) ; } # [ doc = " Structure describes basic parameters of the device." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVDeviceInfo { # [ doc = "< device name, format depends on device" ] pub device_name : * mut libc :: c_char , # [ doc = "< human friendly name" ] pub device_description : * mut libc :: c_char , } # [ test ] fn bindgen_test_layout_AVDeviceInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVDeviceInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( AVDeviceInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVDeviceInfo > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVDeviceInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceInfo > ( ) ) ) . device_name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceInfo ) , "::" , stringify ! ( device_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceInfo > ( ) ) ) . device_description as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceInfo ) , "::" , stringify ! ( device_description ) ) ) ; } # [ doc = " List of devices." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVDeviceInfoList { # [ doc = "< list of autodetected devices" ] pub devices : * mut * mut AVDeviceInfo , # [ doc = "< number of autodetected devices" ] pub nb_devices : libc :: c_int , # [ doc = "< index of default device or -1 if no default" ] pub default_device : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVDeviceInfoList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVDeviceInfoList > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( AVDeviceInfoList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVDeviceInfoList > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVDeviceInfoList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceInfoList > ( ) ) ) . devices as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceInfoList ) , "::" , stringify ! ( devices ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceInfoList > ( ) ) ) . nb_devices as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceInfoList ) , "::" , stringify ! ( nb_devices ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDeviceInfoList > ( ) ) ) . default_device as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVDeviceInfoList ) , "::" , stringify ! ( default_device ) ) ) ; } extern "C" { # [ doc = " List devices." ] # [ doc = "" ] # [ doc = " Returns available device names and their parameters." ] # [ doc = "" ] # [ doc = " @note: Some devices may accept system-dependent device names that cannot be" ] # [ doc = "        autodetected. The list returned by this function cannot be assumed to" ] # [ doc = "        be always completed." ] # [ doc = "" ] # [ doc = " @param s                device context." ] # [ doc = " @param[out] device_list list of autodetected devices." ] # [ doc = " @return count of autodetected devices, negative on error." ] pub fn avdevice_list_devices ( s : * mut AVFormatContext , device_list : * mut * mut AVDeviceInfoList ) -> libc :: c_int ; } extern "C" { # [ doc = " Convenient function to free result of avdevice_list_devices()." ] # [ doc = "" ] # [ doc = " @param devices device list to be freed." ] pub fn avdevice_free_list_devices ( device_list : * mut * mut AVDeviceInfoList ) ; } extern "C" { # [ doc = " List devices." ] # [ doc = "" ] # [ doc = " Returns available device names and their parameters." ] # [ doc = " These are convinient wrappers for avdevice_list_devices()." ] # [ doc = " Device context is allocated and deallocated internally." ] # [ doc = "" ] # [ doc = " @param device           device format. May be NULL if device name is set." ] # [ doc = " @param device_name      device name. May be NULL if device format is set." ] # [ doc = " @param device_options   An AVDictionary filled with device-private options. May be NULL." ] # [ doc = "                         The same options must be passed later to avformat_write_header() for output" ] # [ doc = "                         devices or avformat_open_input() for input devices, or at any other place" ] # [ doc = "                         that affects device-private options." ] # [ doc = " @param[out] device_list list of autodetected devices" ] # [ doc = " @return count of autodetected devices, negative on error." ] # [ doc = " @note device argument takes precedence over device_name when both are set." ] pub fn avdevice_list_input_sources ( device : * mut AVInputFormat , device_name : * const libc :: c_char , device_options : * mut AVDictionary , device_list : * mut * mut AVDeviceInfoList ) -> libc :: c_int ; } extern "C" { pub fn avdevice_list_output_sinks ( device : * mut AVOutputFormat , device_name : * const libc :: c_char , device_options : * mut AVDictionary , device_list : * mut * mut AVDeviceInfoList ) -> libc :: c_int ; } extern "C" { # [ doc = " Return the LIBAVFILTER_VERSION_INT constant." ] pub fn avfilter_version ( ) -> libc :: c_uint ; } extern "C" { # [ doc = " Return the libavfilter build-time configuration." ] pub fn avfilter_configuration ( ) -> * const libc :: c_char ; } extern "C" { # [ doc = " Return the libavfilter license." ] pub fn avfilter_license ( ) -> * const libc :: c_char ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVFilterPad { _unused : [ u8 ; 0 ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVFilterFormats { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Get the number of elements in a NULL-terminated array of AVFilterPads (e.g." ] # [ doc = " AVFilter.inputs/outputs)." ] pub fn avfilter_pad_count ( pads : * const AVFilterPad ) -> libc :: c_int ; } extern "C" { # [ doc = " Get the name of an AVFilterPad." ] # [ doc = "" ] # [ doc = " @param pads an array of AVFilterPads" ] # [ doc = " @param pad_idx index of the pad in the array it; is the caller's" ] # [ doc = "                responsibility to ensure the index is valid" ] # [ doc = "" ] # [ doc = " @return name of the pad_idx'th pad in pads" ] pub fn avfilter_pad_get_name ( pads : * const AVFilterPad , pad_idx : libc :: c_int ) -> * const libc :: c_char ; } extern "C" { # [ doc = " Get the type of an AVFilterPad." ] # [ doc = "" ] # [ doc = " @param pads an array of AVFilterPads" ] # [ doc = " @param pad_idx index of the pad in the array; it is the caller's" ] # [ doc = "                responsibility to ensure the index is valid" ] # [ doc = "" ] # [ doc = " @return type of the pad_idx'th pad in pads" ] pub fn avfilter_pad_get_type ( pads : * const AVFilterPad , pad_idx : libc :: c_int ) -> AVMediaType ; } # [ doc = " Filter definition. This defines the pads a filter contains, and all the" ] # [ doc = " callback functions used to interact with the filter." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVFilter { # [ doc = " Filter name. Must be non-NULL and unique among filters." ] pub name : * const libc :: c_char , # [ doc = " A description of the filter. May be NULL." ] # [ doc = "" ] # [ doc = " You should use the NULL_IF_CONFIG_SMALL() macro to define it." ] pub description : * const libc :: c_char , # [ doc = " List of inputs, terminated by a zeroed element." ] # [ doc = "" ] # [ doc = " NULL if there are no (static) inputs. Instances of filters with" ] # [ doc = " AVFILTER_FLAG_DYNAMIC_INPUTS set may have more inputs than present in" ] # [ doc = " this list." ] pub inputs : * const AVFilterPad , # [ doc = " List of outputs, terminated by a zeroed element." ] # [ doc = "" ] # [ doc = " NULL if there are no (static) outputs. Instances of filters with" ] # [ doc = " AVFILTER_FLAG_DYNAMIC_OUTPUTS set may have more outputs than present in" ] # [ doc = " this list." ] pub outputs : * const AVFilterPad , # [ doc = " A class for the private data, used to declare filter private AVOptions." ] # [ doc = " This field is NULL for filters that do not declare 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 libavfilter generic" ] # [ doc = " code to this class." ] pub priv_class : * const AVClass , # [ doc = " A combination of AVFILTER_FLAG_*" ] pub flags : libc :: c_int , # [ doc = " Filter pre-initialization function" ] # [ doc = "" ] # [ doc = " This callback will be called immediately after the filter context is" ] # [ doc = " allocated, to allow allocating and initing sub-objects." ] # [ doc = "" ] # [ doc = " If this callback is not NULL, the uninit callback will be called on" ] # [ doc = " allocation failure." ] # [ doc = "" ] # [ doc = " @return 0 on success," ] # [ doc = "         AVERROR code on failure (but the code will be" ] # [ doc = "           dropped and treated as ENOMEM by the calling code)" ] pub preinit : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut AVFilterContext ) -> libc :: c_int > , # [ doc = " Filter initialization function." ] # [ doc = "" ] # [ doc = " This callback will be called only once during the filter lifetime, after" ] # [ doc = " all the options have been set, but before links between filters are" ] # [ doc = " established and format negotiation is done." ] # [ doc = "" ] # [ doc = " Basic filter initialization should be done here. Filters with dynamic" ] # [ doc = " inputs and/or outputs should create those inputs/outputs here based on" ] # [ doc = " provided options. No more changes to this filter's inputs/outputs can be" ] # [ doc = " done after this callback." ] # [ doc = "" ] # [ doc = " This callback must not assume that the filter links exist or frame" ] # [ doc = " parameters are known." ] # [ doc = "" ] # [ doc = " @ref AVFilter.uninit \"uninit\" is guaranteed to be called even if" ] # [ doc = " initialization fails, so this callback does not have to clean up on" ] # [ doc = " failure." ] # [ doc = "" ] # [ doc = " @return 0 on success, a negative AVERROR on failure" ] pub init : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut AVFilterContext ) -> libc :: c_int > , # [ doc = " Should be set instead of @ref AVFilter.init \"init\" by the filters that" ] # [ doc = " want to pass a dictionary of AVOptions to nested contexts that are" ] # [ doc = " allocated during init." ] # [ doc = "" ] # [ doc = " On return, the options dict should be freed and replaced with one that" ] # [ doc = " contains all the options which could not be processed by this filter (or" ] # [ doc = " with NULL if all the options were processed)." ] # [ doc = "" ] # [ doc = " Otherwise the semantics is the same as for @ref AVFilter.init \"init\"." ] pub init_dict : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut AVFilterContext , options : * mut * mut AVDictionary ) -> libc :: c_int > , # [ doc = " Filter uninitialization function." ] # [ doc = "" ] # [ doc = " Called only once right before the filter is freed. Should deallocate any" ] # [ doc = " memory held by the filter, release any buffer references, etc. It does" ] # [ doc = " not need to deallocate the AVFilterContext.priv memory itself." ] # [ doc = "" ] # [ doc = " This callback may be called even if @ref AVFilter.init \"init\" was not" ] # [ doc = " called or failed, so it must be prepared to handle such a situation." ] pub uninit : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut AVFilterContext ) > , # [ doc = " Query formats supported by the filter on its inputs and outputs." ] # [ doc = "" ] # [ doc = " This callback is called after the filter is initialized (so the inputs" ] # [ doc = " and outputs are fixed), shortly before the format negotiation. This" ] # [ doc = " callback may be called more than once." ] # [ doc = "" ] # [ doc = " This callback must set AVFilterLink.out_formats on every input link and" ] # [ doc = " AVFilterLink.in_formats on every output link to a list of pixel/sample" ] # [ doc = " formats that the filter supports on that link. For audio links, this" ] # [ doc = " filter must also set @ref AVFilterLink.in_samplerates \"in_samplerates\" /" ] # [ doc = " @ref AVFilterLink.out_samplerates \"out_samplerates\" and" ] # [ doc = " @ref AVFilterLink.in_channel_layouts \"in_channel_layouts\" /" ] # [ doc = " @ref AVFilterLink.out_channel_layouts \"out_channel_layouts\" analogously." ] # [ doc = "" ] # [ doc = " This callback may be NULL for filters with one input, in which case" ] # [ doc = " libavfilter assumes that it supports all input formats and preserves" ] # [ doc = " them on output." ] # [ doc = "" ] # [ doc = " @return zero on success, a negative value corresponding to an" ] # [ doc = " AVERROR code otherwise" ] pub query_formats : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVFilterContext ) -> libc :: c_int > , # [ doc = "< size of private data to allocate for the filter" ] pub priv_size : libc :: c_int , # [ doc = "< Additional flags for avfilter internal use only." ] pub flags_internal : libc :: c_int , # [ doc = " Used by the filter registration system. Must not be touched by any other" ] # [ doc = " code." ] pub next : * mut AVFilter , # [ doc = " Make the filter instance process a command." ] # [ doc = "" ] # [ doc = " @param cmd    the command to process, for handling simplicity all commands must be alphanumeric only" ] # [ doc = " @param arg    the argument for the command" ] # [ doc = " @param res    a buffer with size res_size where the filter(s) can return a response. This must not change when the command is not supported." ] # [ doc = " @param flags  if AVFILTER_CMD_FLAG_FAST is set and the command would be" ] # [ doc = "               time consuming then a filter should treat it like an unsupported command" ] # [ doc = "" ] # [ doc = " @returns >=0 on success otherwise an error code." ] # [ doc = "          AVERROR(ENOSYS) on unsupported commands" ] pub process_command : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut AVFilterContext , cmd : * const libc :: c_char , arg : * const libc :: c_char , res : * mut libc :: c_char , res_len : libc :: c_int , flags : libc :: c_int ) -> libc :: c_int > , # [ doc = " Filter initialization function, alternative to the init()" ] # [ doc = " callback. Args contains the user-supplied parameters, opaque is" ] # [ doc = " used for providing binary data." ] pub init_opaque : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut AVFilterContext , opaque : * mut libc :: c_void ) -> libc :: c_int > , # [ doc = " Filter activation function." ] # [ doc = "" ] # [ doc = " Called when any processing is needed from the filter, instead of any" ] # [ doc = " filter_frame and request_frame on pads." ] # [ doc = "" ] # [ doc = " The function must examine inlinks and outlinks and perform a single" ] # [ doc = " step of processing. If there is nothing to do, the function must do" ] # [ doc = " nothing and not return an error. If more steps are or may be" ] # [ doc = " possible, it must use ff_filter_set_ready() to schedule another" ] # [ doc = " activation." ] pub activate : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut AVFilterContext ) -> libc :: c_int > , } # [ test ] fn bindgen_test_layout_AVFilter ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVFilter > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( AVFilter ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVFilter > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVFilter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . description as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( description ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . inputs as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( inputs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . outputs as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( outputs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . priv_class as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( priv_class ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . flags as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . preinit as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( preinit ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . init as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . init_dict as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( init_dict ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . uninit as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( uninit ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . query_formats as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( query_formats ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . priv_size as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( priv_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . flags_internal as * const _ as usize } , 92usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( flags_internal ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . next as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( next ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . process_command as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( process_command ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . init_opaque as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( init_opaque ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilter > ( ) ) ) . activate as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( AVFilter ) , "::" , stringify ! ( activate ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVFilterInternal { _unused : [ u8 ; 0 ] , } # [ doc = " An instance of a filter" ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVFilterContext { # [ doc = "< needed for av_log() and filters common options" ] pub av_class : * const AVClass , # [ doc = "< the AVFilter of which this is an instance" ] pub filter : * const AVFilter , # [ doc = "< name of this filter instance" ] pub name : * mut libc :: c_char , # [ doc = "< array of input pads" ] pub input_pads : * mut AVFilterPad , # [ doc = "< array of pointers to input links" ] pub inputs : * mut * mut AVFilterLink , # [ doc = "< number of input pads" ] pub nb_inputs : libc :: c_uint , # [ doc = "< array of output pads" ] pub output_pads : * mut AVFilterPad , # [ doc = "< array of pointers to output links" ] pub outputs : * mut * mut AVFilterLink , # [ doc = "< number of output pads" ] pub nb_outputs : libc :: c_uint , # [ doc = "< private data for use by the filter" ] pub priv_ : * mut libc :: c_void , # [ doc = "< filtergraph this filter belongs to" ] pub graph : * mut AVFilterGraph , # [ doc = " Type of multithreading being allowed/used. A combination of" ] # [ doc = " AVFILTER_THREAD_* flags." ] # [ doc = "" ] # [ doc = " May be set by the caller before initializing the filter to forbid some" ] # [ doc = " or all kinds of multithreading for this filter. The default is allowing" ] # [ doc = " everything." ] # [ doc = "" ] # [ doc = " When the filter is initialized, this field is combined using bit AND with" ] # [ doc = " AVFilterGraph.thread_type to get the final mask used for determining" ] # [ doc = " allowed threading types. I.e. a threading type needs to be set in both" ] # [ doc = " to be allowed." ] # [ doc = "" ] # [ doc = " After the filter is initialized, libavfilter sets this field to the" ] # [ doc = " threading type that is actually used (0 for no multithreading)." ] pub thread_type : libc :: c_int , # [ doc = " An opaque struct for libavfilter internal use." ] pub internal : * mut AVFilterInternal , pub command_queue : * mut AVFilterCommand , # [ doc = "< enable expression string" ] pub enable_str : * mut libc :: c_char , # [ doc = "< parsed expression (AVExpr*)" ] pub enable : * mut libc :: c_void , # [ doc = "< variable values for the enable expression" ] pub var_values : * mut f64 , # [ doc = "< the enabled state from the last expression evaluation" ] pub is_disabled : libc :: c_int , # [ doc = " For filters which will create hardware frames, sets the device the" ] # [ doc = " filter should create them in.  All other filters will ignore this field:" ] # [ doc = " in particular, a filter which consumes or processes hardware frames will" ] # [ doc = " instead use the hw_frames_ctx field in AVFilterLink to carry the" ] # [ doc = " hardware context information." ] pub hw_device_ctx : * mut AVBufferRef , # [ doc = " Max number of threads allowed in this filter instance." ] # [ doc = " If <= 0, its value is ignored." ] # [ doc = " Overrides global number of threads set per filter graph." ] pub nb_threads : libc :: c_int , # [ doc = " Ready status of the filter." ] # [ doc = " A non-0 value means that the filter needs activating;" ] # [ doc = " a higher value suggests a more urgent activation." ] pub ready : libc :: c_uint , # [ doc = " Sets the number of extra hardware frames which the filter will" ] # [ doc = " allocate on its output links for use in following filters or by" ] # [ doc = " the caller." ] # [ doc = "" ] # [ doc = " Some hardware filters require all frames that they will use for" ] # [ doc = " output to be defined in advance before filtering starts.  For such" ] # [ doc = " filters, any hardware frame pools used for output must therefore be" ] # [ doc = " of fixed size.  The extra frames set here are on top of any number" ] # [ doc = " that the filter needs internally in order to operate normally." ] # [ doc = "" ] # [ doc = " This field must be set before the graph containing this filter is" ] # [ doc = " configured." ] pub extra_hw_frames : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVFilterContext ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVFilterContext > ( ) , 168usize , concat ! ( "Size of: " , stringify ! ( AVFilterContext ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVFilterContext > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVFilterContext ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . av_class as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( av_class ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . filter as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( filter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . name as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . input_pads as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( input_pads ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . inputs as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( inputs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . nb_inputs as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( nb_inputs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . output_pads as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( output_pads ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . outputs as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( outputs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . nb_outputs as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( nb_outputs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . priv_ as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( priv_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . graph as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( graph ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . thread_type as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( thread_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . internal as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( internal ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . command_queue as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( command_queue ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . enable_str as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( enable_str ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . enable as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( enable ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . var_values as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( var_values ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . is_disabled as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( is_disabled ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . hw_device_ctx as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( hw_device_ctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . nb_threads as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( nb_threads ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . ready as * const _ as usize } , 156usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( ready ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterContext > ( ) ) ) . extra_hw_frames as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterContext ) , "::" , stringify ! ( extra_hw_frames ) ) ) ; } # [ doc = " A link between two filters. This contains pointers to the source and" ] # [ doc = " destination filters between which this link exists, and the indexes of" ] # [ doc = " the pads involved. In addition, this link also contains the parameters" ] # [ doc = " which have been negotiated and agreed upon between the filter, such as" ] # [ doc = " image dimensions, format, etc." ] # [ doc = "" ] # [ doc = " Applications must not normally access the link structure directly." ] # [ doc = " Use the buffersrc and buffersink API instead." ] # [ doc = " In the future, access to the header may be reserved for filters" ] # [ doc = " implementation." ] # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct AVFilterLink { # [ doc = "< source filter" ] pub src : * mut AVFilterContext , # [ doc = "< output pad on the source filter" ] pub srcpad : * mut AVFilterPad , # [ doc = "< dest filter" ] pub dst : * mut AVFilterContext , # [ doc = "< input pad on the dest filter" ] pub dstpad : * mut AVFilterPad , # [ doc = "< filter media type" ] pub type_ : AVMediaType , # [ doc = "< agreed upon image width" ] pub w : libc :: c_int , # [ doc = "< agreed upon image height" ] pub h : libc :: c_int , # [ doc = "< agreed upon sample aspect ratio" ] pub sample_aspect_ratio : AVRational , # [ doc = "< channel layout of current buffer (see libavutil/channel_layout.h)" ] pub channel_layout : u64 , # [ doc = "< samples per second" ] pub sample_rate : libc :: c_int , # [ doc = "< agreed upon media format" ] pub format : libc :: c_int , # [ doc = " Define the time base used by the PTS of the frames/samples" ] # [ doc = " which will pass through this link." ] # [ doc = " During the configuration stage, each filter is supposed to" ] # [ doc = " change only the output timebase, while the timebase of the" ] # [ doc = " input link is assumed to be an unchangeable property." ] pub time_base : AVRational , # [ doc = " All fields below this line are not part of the public API. They" ] # [ doc = " may not be used outside of libavfilter and can be changed and" ] # [ doc = " removed at will." ] # [ doc = " New public fields should be added right above." ] # [ doc = "" ] # [ doc = " Lists of formats and channel layouts supported by the input and output" ] # [ doc = " filters respectively. These lists are used for negotiating the format" ] # [ doc = " to actually be used, which will be loaded into the format and" ] # [ doc = " channel_layout members, above, when chosen." ] # [ doc = "" ] pub in_formats : * mut AVFilterFormats , pub out_formats : * mut AVFilterFormats , # [ doc = " Lists of channel layouts and sample rates used for automatic" ] # [ doc = " negotiation." ] pub in_samplerates : * mut AVFilterFormats , pub out_samplerates : * mut AVFilterFormats , pub in_channel_layouts : * mut AVFilterChannelLayouts , pub out_channel_layouts : * mut AVFilterChannelLayouts , # [ doc = " Audio only, the destination filter sets this to a non-zero value to" ] # [ doc = " request that buffers with the given number of samples should be sent to" ] # [ doc = " it. AVFilterPad.needs_fifo must also be set on the corresponding input" ] # [ doc = " pad." ] # [ doc = " Last buffer before EOF will be padded with silence." ] pub request_samples : libc :: c_int , pub init_state : AVFilterLink__bindgen_ty_1 , # [ doc = " Graph the filter belongs to." ] pub graph : * mut AVFilterGraph , # [ doc = " Current timestamp of the link, as defined by the most recent" ] # [ doc = " frame(s), in link time_base units." ] pub current_pts : i64 , # [ doc = " Current timestamp of the link, as defined by the most recent" ] # [ doc = " frame(s), in AV_TIME_BASE units." ] pub current_pts_us : i64 , # [ doc = " Index in the age array." ] pub age_index : libc :: c_int , # [ doc = " Frame rate of the stream on the link, or 1/0 if unknown or variable;" ] # [ doc = " if left to 0/0, will be automatically copied from the first input" ] # [ doc = " of the source filter if it exists." ] # [ doc = "" ] # [ doc = " Sources should set it to the best estimation of the real frame rate." ] # [ doc = " If the source frame rate is unknown or variable, set this to 1/0." ] # [ doc = " Filters should update it if necessary depending on their function." ] # [ doc = " Sinks can use it to set a default output frame rate." ] # [ doc = " It is similar to the r_frame_rate field in AVStream." ] pub frame_rate : AVRational , # [ doc = " Buffer partially filled with samples to achieve a fixed/minimum size." ] pub partial_buf : * mut AVFrame , # [ doc = " Size of the partial buffer to allocate." ] # [ doc = " Must be between min_samples and max_samples." ] pub partial_buf_size : libc :: c_int , # [ doc = " Minimum number of samples to filter at once. If filter_frame() is" ] # [ doc = " called with fewer samples, it will accumulate them in partial_buf." ] # [ doc = " This field and the related ones must not be changed after filtering" ] # [ doc = " has started." ] # [ doc = " If 0, all related fields are ignored." ] pub min_samples : libc :: c_int , # [ doc = " Maximum number of samples to filter at once. If filter_frame() is" ] # [ doc = " called with more samples, it will split them." ] pub max_samples : libc :: c_int , # [ doc = " Number of channels." ] pub channels : libc :: c_int , # [ doc = " Link processing flags." ] pub flags : libc :: c_uint , # [ doc = " Number of past frames sent through the link." ] pub frame_count_in : i64 , # [ doc = " Number of past frames sent through the link." ] pub frame_count_out : i64 , # [ doc = " A pointer to a FFFramePool struct." ] pub frame_pool : * mut libc :: c_void , # [ doc = " True if a frame is currently wanted on the output of this filter." ] # [ doc = " Set when ff_request_frame() is called by the output," ] # [ doc = " cleared when a frame is filtered." ] pub frame_wanted_out : libc :: c_int , # [ doc = " For hwaccel pixel formats, this should be a reference to the" ] # [ doc = " AVHWFramesContext describing the frames." ] pub hw_frames_ctx : * mut AVBufferRef , # [ doc = " Internal structure members." ] # [ doc = " The fields below this limit are internal for libavfilter's use" ] # [ doc = " and must in no way be accessed by applications." ] pub reserved : [ libc :: c_char ; 61440usize ] , } pub const AVFilterLink_AVLINK_UNINIT : AVFilterLink__bindgen_ty_1 = AVFilterLink__bindgen_ty_1 :: AVLINK_UNINIT ; pub const AVFilterLink_AVLINK_STARTINIT : AVFilterLink__bindgen_ty_1 = AVFilterLink__bindgen_ty_1 :: AVLINK_STARTINIT ; pub const AVFilterLink_AVLINK_INIT : AVFilterLink__bindgen_ty_1 = AVFilterLink__bindgen_ty_1 :: AVLINK_INIT ; # [ repr ( u32 ) ] # [ doc = " stage of the initialization of the link properties (dimensions, etc)" ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVFilterLink__bindgen_ty_1 { # [ doc = "< not started" ] AVLINK_UNINIT = 0 , # [ doc = "< started, but incomplete" ] AVLINK_STARTINIT = 1 , # [ doc = "< complete" ] AVLINK_INIT = 2 , } # [ test ] fn bindgen_test_layout_AVFilterLink ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVFilterLink > ( ) , 61688usize , concat ! ( "Size of: " , stringify ! ( AVFilterLink ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVFilterLink > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVFilterLink ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . src as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( src ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . srcpad as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( srcpad ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . dst as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( dst ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . dstpad as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( dstpad ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . type_ as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . w as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( w ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . h as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( h ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . sample_aspect_ratio as * const _ as usize } , 44usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( sample_aspect_ratio ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . channel_layout as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( channel_layout ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . sample_rate as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( sample_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . format as * const _ as usize } , 68usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . time_base as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( time_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . in_formats as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( in_formats ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . out_formats as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( out_formats ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . in_samplerates as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( in_samplerates ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . out_samplerates as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( out_samplerates ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . in_channel_layouts as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( in_channel_layouts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . out_channel_layouts as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( out_channel_layouts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . request_samples as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( request_samples ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . init_state as * const _ as usize } , 132usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( init_state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . graph as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( graph ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . current_pts as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( current_pts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . current_pts_us as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( current_pts_us ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . age_index as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( age_index ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . frame_rate as * const _ as usize } , 164usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( frame_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . partial_buf as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( partial_buf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . partial_buf_size as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( partial_buf_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . min_samples as * const _ as usize } , 188usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( min_samples ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . max_samples as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( max_samples ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . channels as * const _ as usize } , 196usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( channels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . flags as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . frame_count_in as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( frame_count_in ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . frame_count_out as * const _ as usize } , 216usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( frame_count_out ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . frame_pool as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( frame_pool ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . frame_wanted_out as * const _ as usize } , 232usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( frame_wanted_out ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . hw_frames_ctx as * const _ as usize } , 240usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( hw_frames_ctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterLink > ( ) ) ) . reserved as * const _ as usize } , 248usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterLink ) , "::" , stringify ! ( reserved ) ) ) ; } extern "C" { # [ doc = " Link two filters together." ] # [ doc = "" ] # [ doc = " @param src    the source filter" ] # [ doc = " @param srcpad index of the output pad on the source filter" ] # [ doc = " @param dst    the destination filter" ] # [ doc = " @param dstpad index of the input pad on the destination filter" ] # [ doc = " @return       zero on success" ] pub fn avfilter_link ( src : * mut AVFilterContext , srcpad : libc :: c_uint , dst : * mut AVFilterContext , dstpad : libc :: c_uint ) -> libc :: c_int ; } extern "C" { # [ doc = " Free the link in *link, and set its pointer to NULL." ] pub fn avfilter_link_free ( link : * mut * mut AVFilterLink ) ; } extern "C" { # [ doc = " Get the number of channels of a link." ] # [ doc = " @deprecated Use av_buffersink_get_channels()" ] pub fn avfilter_link_get_channels ( link : * mut AVFilterLink ) -> libc :: c_int ; } extern "C" { # [ doc = " Set the closed field of a link." ] # [ doc = " @deprecated applications are not supposed to mess with links, they should" ] # [ doc = " close the sinks." ] pub fn avfilter_link_set_closed ( link : * mut AVFilterLink , closed : libc :: c_int ) ; } extern "C" { # [ doc = " Negotiate the media format, dimensions, etc of all inputs to a filter." ] # [ doc = "" ] # [ doc = " @param filter the filter to negotiate the properties for its inputs" ] # [ doc = " @return       zero on successful negotiation" ] pub fn avfilter_config_links ( filter : * mut AVFilterContext ) -> libc :: c_int ; } extern "C" { # [ doc = " Make the filter instance process a command." ] # [ doc = " It is recommended to use avfilter_graph_send_command()." ] pub fn avfilter_process_command ( filter : * mut AVFilterContext , cmd : * const libc :: c_char , arg : * const libc :: c_char , res : * mut libc :: c_char , res_len : libc :: c_int , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Iterate over all registered filters." ] # [ doc = "" ] # [ doc = " @param opaque a pointer where libavfilter will store the iteration state. Must" ] # [ doc = "               point to NULL to start the iteration." ] # [ doc = "" ] # [ doc = " @return the next registered filter or NULL when the iteration is" ] # [ doc = "         finished" ] pub fn av_filter_iterate ( opaque : * mut * mut libc :: c_void ) -> * const AVFilter ; } extern "C" { # [ doc = " Initialize the filter system. Register all builtin filters." ] pub fn avfilter_register_all ( ) ; } extern "C" { # [ doc = " Register a filter. This is only needed if you plan to use" ] # [ doc = " avfilter_get_by_name later to lookup the AVFilter structure by name. A" ] # [ doc = " filter can still by instantiated with avfilter_graph_alloc_filter even if it" ] # [ doc = " is not registered." ] # [ doc = "" ] # [ doc = " @param filter the filter to register" ] # [ doc = " @return 0 if the registration was successful, a negative value" ] # [ doc = " otherwise" ] pub fn avfilter_register ( filter : * mut AVFilter ) -> libc :: c_int ; } extern "C" { # [ doc = " Iterate over all registered filters." ] # [ doc = " @return If prev is non-NULL, next registered filter after prev or NULL if" ] # [ doc = " prev is the last filter. If prev is NULL, return the first registered filter." ] pub fn avfilter_next ( prev : * const AVFilter ) -> * const AVFilter ; } extern "C" { # [ doc = " Get a filter definition matching the given name." ] # [ doc = "" ] # [ doc = " @param name the filter name to find" ] # [ doc = " @return     the filter definition, if any matching one is registered." ] # [ doc = "             NULL if none found." ] pub fn avfilter_get_by_name ( name : * const libc :: c_char ) -> * const AVFilter ; } extern "C" { # [ doc = " Initialize a filter with the supplied parameters." ] # [ doc = "" ] # [ doc = " @param ctx  uninitialized filter context to initialize" ] # [ doc = " @param args Options to initialize the filter with. This must be a" ] # [ doc = "             ':'-separated list of options in the 'key=value' form." ] # [ doc = "             May be NULL if the options have been set directly using the" ] # [ doc = "             AVOptions API or there are no options that need to be set." ] # [ doc = " @return 0 on success, a negative AVERROR on failure" ] pub fn avfilter_init_str ( ctx : * mut AVFilterContext , args : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { # [ doc = " Initialize a filter with the supplied dictionary of options." ] # [ doc = "" ] # [ doc = " @param ctx     uninitialized filter context to initialize" ] # [ doc = " @param options An AVDictionary filled with options for this filter. On" ] # [ doc = "                return this parameter will be destroyed and replaced with" ] # [ doc = "                a dict containing options that were not found. This dictionary" ] # [ doc = "                must be freed by the caller." ] # [ doc = "                May be NULL, then this function is equivalent to" ] # [ doc = "                avfilter_init_str() with the second parameter set to NULL." ] # [ doc = " @return 0 on success, a negative AVERROR on failure" ] # [ doc = "" ] # [ doc = " @note This function and avfilter_init_str() do essentially the same thing," ] # [ doc = " the difference is in manner in which the options are passed. It is up to the" ] # [ doc = " calling code to choose whichever is more preferable. The two functions also" ] # [ doc = " behave differently when some of the provided options are not declared as" ] # [ doc = " supported by the filter. In such a case, avfilter_init_str() will fail, but" ] # [ doc = " this function will leave those extra options in the options AVDictionary and" ] # [ doc = " continue as usual." ] pub fn avfilter_init_dict ( ctx : * mut AVFilterContext , options : * mut * mut AVDictionary ) -> libc :: c_int ; } extern "C" { # [ doc = " Free a filter context. This will also remove the filter from its" ] # [ doc = " filtergraph's list of filters." ] # [ doc = "" ] # [ doc = " @param filter the filter to free" ] pub fn avfilter_free ( filter : * mut AVFilterContext ) ; } extern "C" { # [ doc = " Insert a filter in the middle of an existing link." ] # [ doc = "" ] # [ doc = " @param link the link into which the filter should be inserted" ] # [ doc = " @param filt the filter to be inserted" ] # [ doc = " @param filt_srcpad_idx the input pad on the filter to connect" ] # [ doc = " @param filt_dstpad_idx the output pad on the filter to connect" ] # [ doc = " @return     zero on success" ] pub fn avfilter_insert_filter ( link : * mut AVFilterLink , filt : * mut AVFilterContext , filt_srcpad_idx : libc :: c_uint , filt_dstpad_idx : libc :: c_uint ) -> libc :: c_int ; } extern "C" { # [ doc = " @return AVClass for AVFilterContext." ] # [ doc = "" ] # [ doc = " @see av_opt_find()." ] pub fn avfilter_get_class ( ) -> * const AVClass ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVFilterGraphInternal { _unused : [ u8 ; 0 ] , } # [ doc = " A function pointer passed to the @ref AVFilterGraph.execute callback to be" ] # [ doc = " executed multiple times, possibly in parallel." ] # [ doc = "" ] # [ doc = " @param ctx the filter context the job belongs to" ] # [ doc = " @param arg an opaque parameter passed through from @ref" ] # [ doc = "            AVFilterGraph.execute" ] # [ doc = " @param jobnr the index of the job being executed" ] # [ doc = " @param nb_jobs the total number of jobs" ] # [ doc = "" ] # [ doc = " @return 0 on success, a negative AVERROR on error" ] pub type avfilter_action_func = :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut AVFilterContext , arg : * mut libc :: c_void , jobnr : libc :: c_int , nb_jobs : libc :: c_int ) -> libc :: c_int > ; # [ doc = " A function executing multiple jobs, possibly in parallel." ] # [ doc = "" ] # [ doc = " @param ctx the filter context to which the jobs belong" ] # [ doc = " @param func the function to be called multiple times" ] # [ doc = " @param arg the argument to be passed to func" ] # [ doc = " @param ret a nb_jobs-sized array to be filled with return values from each" ] # [ doc = "            invocation of func" ] # [ doc = " @param nb_jobs the number of jobs to execute" ] # [ doc = "" ] # [ doc = " @return 0 on success, a negative AVERROR on error" ] pub type avfilter_execute_func = :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut AVFilterContext , func : avfilter_action_func , arg : * mut libc :: c_void , ret : * mut libc :: c_int , nb_jobs : libc :: c_int ) -> libc :: c_int > ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVFilterGraph { pub av_class : * const AVClass , pub filters : * mut * mut AVFilterContext , pub nb_filters : libc :: c_uint , # [ doc = "< sws options to use for the auto-inserted scale filters" ] pub scale_sws_opts : * mut libc :: c_char , # [ doc = "< libavresample options to use for the auto-inserted resample filters" ] pub resample_lavr_opts : * mut libc :: c_char , # [ doc = " Type of multithreading allowed for filters in this graph. A combination" ] # [ doc = " of AVFILTER_THREAD_* flags." ] # [ doc = "" ] # [ doc = " May be set by the caller at any point, the setting will apply to all" ] # [ doc = " filters initialized after that. The default is allowing everything." ] # [ doc = "" ] # [ doc = " When a filter in this graph is initialized, this field is combined using" ] # [ doc = " bit AND with AVFilterContext.thread_type to get the final mask used for" ] # [ doc = " determining allowed threading types. I.e. a threading type needs to be" ] # [ doc = " set in both to be allowed." ] pub thread_type : libc :: c_int , # [ doc = " Maximum number of threads used by filters in this graph. May be set by" ] # [ doc = " the caller before adding any filters to the filtergraph. Zero (the" ] # [ doc = " default) means that the number of threads is determined automatically." ] pub nb_threads : libc :: c_int , # [ doc = " Opaque object for libavfilter internal use." ] pub internal : * mut AVFilterGraphInternal , # [ doc = " Opaque user data. May be set by the caller to an arbitrary value, e.g. to" ] # [ doc = " be used from callbacks like @ref AVFilterGraph.execute." ] # [ doc = " Libavfilter will not touch this field in any way." ] pub opaque : * mut libc :: c_void , # [ doc = " This callback may be set by the caller immediately after allocating the" ] # [ doc = " graph and before adding any filters to it, to provide a custom" ] # [ doc = " multithreading implementation." ] # [ doc = "" ] # [ doc = " If set, filters with slice threading capability will call this callback" ] # [ doc = " to execute multiple jobs in parallel." ] # [ doc = "" ] # [ doc = " If this field is left unset, libavfilter will use its internal" ] # [ doc = " implementation, which may or may not be multithreaded depending on the" ] # [ doc = " platform and build options." ] pub execute : avfilter_execute_func , # [ doc = "< swr options to use for the auto-inserted aresample filters, Access ONLY through AVOptions" ] pub aresample_swr_opts : * mut libc :: c_char , # [ doc = " Private fields" ] # [ doc = "" ] # [ doc = " The following fields are for internal use only." ] # [ doc = " Their type, offset, number and semantic can change without notice." ] pub sink_links : * mut * mut AVFilterLink , pub sink_links_count : libc :: c_int , pub disable_auto_convert : libc :: c_uint , } # [ test ] fn bindgen_test_layout_AVFilterGraph ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVFilterGraph > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( AVFilterGraph ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVFilterGraph > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVFilterGraph ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterGraph > ( ) ) ) . av_class as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterGraph ) , "::" , stringify ! ( av_class ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterGraph > ( ) ) ) . filters as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterGraph ) , "::" , stringify ! ( filters ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterGraph > ( ) ) ) . nb_filters as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterGraph ) , "::" , stringify ! ( nb_filters ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterGraph > ( ) ) ) . scale_sws_opts as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterGraph ) , "::" , stringify ! ( scale_sws_opts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterGraph > ( ) ) ) . resample_lavr_opts as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterGraph ) , "::" , stringify ! ( resample_lavr_opts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterGraph > ( ) ) ) . thread_type as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterGraph ) , "::" , stringify ! ( thread_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterGraph > ( ) ) ) . nb_threads as * const _ as usize } , 44usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterGraph ) , "::" , stringify ! ( nb_threads ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterGraph > ( ) ) ) . internal as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterGraph ) , "::" , stringify ! ( internal ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterGraph > ( ) ) ) . opaque as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterGraph ) , "::" , stringify ! ( opaque ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterGraph > ( ) ) ) . execute as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterGraph ) , "::" , stringify ! ( execute ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterGraph > ( ) ) ) . aresample_swr_opts as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterGraph ) , "::" , stringify ! ( aresample_swr_opts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterGraph > ( ) ) ) . sink_links as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterGraph ) , "::" , stringify ! ( sink_links ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterGraph > ( ) ) ) . sink_links_count as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterGraph ) , "::" , stringify ! ( sink_links_count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterGraph > ( ) ) ) . disable_auto_convert as * const _ as usize } , 92usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterGraph ) , "::" , stringify ! ( disable_auto_convert ) ) ) ; } extern "C" { # [ doc = " Allocate a filter graph." ] # [ doc = "" ] # [ doc = " @return the allocated filter graph on success or NULL." ] pub fn avfilter_graph_alloc ( ) -> * mut AVFilterGraph ; } extern "C" { # [ doc = " Create a new filter instance in a filter graph." ] # [ doc = "" ] # [ doc = " @param graph graph in which the new filter will be used" ] # [ doc = " @param filter the filter to create an instance of" ] # [ doc = " @param name Name to give to the new instance (will be copied to" ] # [ doc = "             AVFilterContext.name). This may be used by the caller to identify" ] # [ doc = "             different filters, libavfilter itself assigns no semantics to" ] # [ doc = "             this parameter. May be NULL." ] # [ doc = "" ] # [ doc = " @return the context of the newly created filter instance (note that it is" ] # [ doc = "         also retrievable directly through AVFilterGraph.filters or with" ] # [ doc = "         avfilter_graph_get_filter()) on success or NULL on failure." ] pub fn avfilter_graph_alloc_filter ( graph : * mut AVFilterGraph , filter : * const AVFilter , name : * const libc :: c_char ) -> * mut AVFilterContext ; } extern "C" { # [ doc = " Get a filter instance identified by instance name from graph." ] # [ doc = "" ] # [ doc = " @param graph filter graph to search through." ] # [ doc = " @param name filter instance name (should be unique in the graph)." ] # [ doc = " @return the pointer to the found filter instance or NULL if it" ] # [ doc = " cannot be found." ] pub fn avfilter_graph_get_filter ( graph : * mut AVFilterGraph , name : * const libc :: c_char ) -> * mut AVFilterContext ; } extern "C" { # [ doc = " Create and add a filter instance into an existing graph." ] # [ doc = " The filter instance is created from the filter filt and inited" ] # [ doc = " with the parameters args and opaque." ] # [ doc = "" ] # [ doc = " In case of success put in *filt_ctx the pointer to the created" ] # [ doc = " filter instance, otherwise set *filt_ctx to NULL." ] # [ doc = "" ] # [ doc = " @param name the instance name to give to the created filter instance" ] # [ doc = " @param graph_ctx the filter graph" ] # [ doc = " @return a negative AVERROR error code in case of failure, a non" ] # [ doc = " negative value otherwise" ] pub fn avfilter_graph_create_filter ( filt_ctx : * mut * mut AVFilterContext , filt : * const AVFilter , name : * const libc :: c_char , args : * const libc :: c_char , opaque : * mut libc :: c_void , graph_ctx : * mut AVFilterGraph ) -> libc :: c_int ; } extern "C" { # [ doc = " Enable or disable automatic format conversion inside the graph." ] # [ doc = "" ] # [ doc = " Note that format conversion can still happen inside explicitly inserted" ] # [ doc = " scale and aresample filters." ] # [ doc = "" ] # [ doc = " @param flags  any of the AVFILTER_AUTO_CONVERT_* constants" ] pub fn avfilter_graph_set_auto_convert ( graph : * mut AVFilterGraph , flags : libc :: c_uint ) ; } pub const AVFILTER_AUTO_CONVERT_ALL : _bindgen_ty_6 = _bindgen_ty_6 :: AVFILTER_AUTO_CONVERT_ALL ; pub const AVFILTER_AUTO_CONVERT_NONE : _bindgen_ty_6 = _bindgen_ty_6 :: AVFILTER_AUTO_CONVERT_NONE ; # [ repr ( i32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum _bindgen_ty_6 { # [ doc = "< all automatic conversions enabled" ] AVFILTER_AUTO_CONVERT_ALL = 0 , # [ doc = "< all automatic conversions disabled" ] AVFILTER_AUTO_CONVERT_NONE = - 1 , } extern "C" { # [ doc = " Check validity and configure all the links and formats in the graph." ] # [ doc = "" ] # [ doc = " @param graphctx the filter graph" ] # [ doc = " @param log_ctx context used for logging" ] # [ doc = " @return >= 0 in case of success, a negative AVERROR code otherwise" ] pub fn avfilter_graph_config ( graphctx : * mut AVFilterGraph , log_ctx : * mut libc :: c_void ) -> libc :: c_int ; } extern "C" { # [ doc = " Free a graph, destroy its links, and set *graph to NULL." ] # [ doc = " If *graph is NULL, do nothing." ] pub fn avfilter_graph_free ( graph : * mut * mut AVFilterGraph ) ; } # [ doc = " A linked-list of the inputs/outputs of the filter chain." ] # [ doc = "" ] # [ doc = " This is mainly useful for avfilter_graph_parse() / avfilter_graph_parse2()," ] # [ doc = " where it is used to communicate open (unlinked) inputs and outputs from and" ] # [ doc = " to the caller." ] # [ doc = " This struct specifies, per each not connected pad contained in the graph, the" ] # [ doc = " filter context and the pad index required for establishing a link." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVFilterInOut { # [ doc = " unique name for this input/output in the list" ] pub name : * mut libc :: c_char , # [ doc = " filter context associated to this input/output" ] pub filter_ctx : * mut AVFilterContext , # [ doc = " index of the filt_ctx pad to use for linking" ] pub pad_idx : libc :: c_int , # [ doc = " next input/input in the list, NULL if this is the last" ] pub next : * mut AVFilterInOut , } # [ test ] fn bindgen_test_layout_AVFilterInOut ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVFilterInOut > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( AVFilterInOut ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVFilterInOut > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVFilterInOut ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterInOut > ( ) ) ) . name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterInOut ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterInOut > ( ) ) ) . filter_ctx as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterInOut ) , "::" , stringify ! ( filter_ctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterInOut > ( ) ) ) . pad_idx as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterInOut ) , "::" , stringify ! ( pad_idx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFilterInOut > ( ) ) ) . next as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVFilterInOut ) , "::" , stringify ! ( next ) ) ) ; } extern "C" { # [ doc = " Allocate a single AVFilterInOut entry." ] # [ doc = " Must be freed with avfilter_inout_free()." ] # [ doc = " @return allocated AVFilterInOut on success, NULL on failure." ] pub fn avfilter_inout_alloc ( ) -> * mut AVFilterInOut ; } extern "C" { # [ doc = " Free the supplied list of AVFilterInOut and set *inout to NULL." ] # [ doc = " If *inout is NULL, do nothing." ] pub fn avfilter_inout_free ( inout : * mut * mut AVFilterInOut ) ; } extern "C" { # [ doc = " Add a graph described by a string to a graph." ] # [ doc = "" ] # [ doc = " @note The caller must provide the lists of inputs and outputs," ] # [ doc = " which therefore must be known before calling the function." ] # [ doc = "" ] # [ doc = " @note The inputs parameter describes inputs of the already existing" ] # [ doc = " part of the graph; i.e. from the point of view of the newly created" ] # [ doc = " part, they are outputs. Similarly the outputs parameter describes" ] # [ doc = " outputs of the already existing filters, which are provided as" ] # [ doc = " inputs to the parsed filters." ] # [ doc = "" ] # [ doc = " @param graph   the filter graph where to link the parsed graph context" ] # [ doc = " @param filters string to be parsed" ] # [ doc = " @param inputs  linked list to the inputs of the graph" ] # [ doc = " @param outputs linked list to the outputs of the graph" ] # [ doc = " @return zero on success, a negative AVERROR code on error" ] pub fn avfilter_graph_parse ( graph : * mut AVFilterGraph , filters : * const libc :: c_char , inputs : * mut AVFilterInOut , outputs : * mut AVFilterInOut , log_ctx : * mut libc :: c_void ) -> libc :: c_int ; } extern "C" { # [ doc = " Add a graph described by a string to a graph." ] # [ doc = "" ] # [ doc = " In the graph filters description, if the input label of the first" ] # [ doc = " filter is not specified, \"in\" is assumed; if the output label of" ] # [ doc = " the last filter is not specified, \"out\" is assumed." ] # [ doc = "" ] # [ doc = " @param graph   the filter graph where to link the parsed graph context" ] # [ doc = " @param filters string to be parsed" ] # [ doc = " @param inputs  pointer to a linked list to the inputs of the graph, may be NULL." ] # [ doc = "                If non-NULL, *inputs is updated to contain the list of open inputs" ] # [ doc = "                after the parsing, should be freed with avfilter_inout_free()." ] # [ doc = " @param outputs pointer to a linked list to the outputs of the graph, may be NULL." ] # [ doc = "                If non-NULL, *outputs is updated to contain the list of open outputs" ] # [ doc = "                after the parsing, should be freed with avfilter_inout_free()." ] # [ doc = " @return non negative on success, a negative AVERROR code on error" ] pub fn avfilter_graph_parse_ptr ( graph : * mut AVFilterGraph , filters : * const libc :: c_char , inputs : * mut * mut AVFilterInOut , outputs : * mut * mut AVFilterInOut , log_ctx : * mut libc :: c_void ) -> libc :: c_int ; } extern "C" { # [ doc = " Add a graph described by a string to a graph." ] # [ doc = "" ] # [ doc = " @param[in]  graph   the filter graph where to link the parsed graph context" ] # [ doc = " @param[in]  filters string to be parsed" ] # [ doc = " @param[out] inputs  a linked list of all free (unlinked) inputs of the" ] # [ doc = "                     parsed graph will be returned here. It is to be freed" ] # [ doc = "                     by the caller using avfilter_inout_free()." ] # [ doc = " @param[out] outputs a linked list of all free (unlinked) outputs of the" ] # [ doc = "                     parsed graph will be returned here. It is to be freed by the" ] # [ doc = "                     caller using avfilter_inout_free()." ] # [ doc = " @return zero on success, a negative AVERROR code on error" ] # [ doc = "" ] # [ doc = " @note This function returns the inputs and outputs that are left" ] # [ doc = " unlinked after parsing the graph and the caller then deals with" ] # [ doc = " them." ] # [ doc = " @note This function makes no reference whatsoever to already" ] # [ doc = " existing parts of the graph and the inputs parameter will on return" ] # [ doc = " contain inputs of the newly parsed part of the graph.  Analogously" ] # [ doc = " the outputs parameter will contain outputs of the newly created" ] # [ doc = " filters." ] pub fn avfilter_graph_parse2 ( graph : * mut AVFilterGraph , filters : * const libc :: c_char , inputs : * mut * mut AVFilterInOut , outputs : * mut * mut AVFilterInOut ) -> libc :: c_int ; } extern "C" { # [ doc = " Send a command to one or more filter instances." ] # [ doc = "" ] # [ doc = " @param graph  the filter graph" ] # [ doc = " @param target the filter(s) to which the command should be sent" ] # [ doc = "               \"all\" sends to all filters" ] # [ doc = "               otherwise it can be a filter or filter instance name" ] # [ doc = "               which will send the command to all matching filters." ] # [ doc = " @param cmd    the command to send, for handling simplicity all commands must be alphanumeric only" ] # [ doc = " @param arg    the argument for the command" ] # [ doc = " @param res    a buffer with size res_size where the filter(s) can return a response." ] # [ doc = "" ] # [ doc = " @returns >=0 on success otherwise an error code." ] # [ doc = "              AVERROR(ENOSYS) on unsupported commands" ] pub fn avfilter_graph_send_command ( graph : * mut AVFilterGraph , target : * const libc :: c_char , cmd : * const libc :: c_char , arg : * const libc :: c_char , res : * mut libc :: c_char , res_len : libc :: c_int , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Queue a command for one or more filter instances." ] # [ doc = "" ] # [ doc = " @param graph  the filter graph" ] # [ doc = " @param target the filter(s) to which the command should be sent" ] # [ doc = "               \"all\" sends to all filters" ] # [ doc = "               otherwise it can be a filter or filter instance name" ] # [ doc = "               which will send the command to all matching filters." ] # [ doc = " @param cmd    the command to sent, for handling simplicity all commands must be alphanumeric only" ] # [ doc = " @param arg    the argument for the command" ] # [ doc = " @param ts     time at which the command should be sent to the filter" ] # [ doc = "" ] # [ doc = " @note As this executes commands after this function returns, no return code" ] # [ doc = "       from the filter is provided, also AVFILTER_CMD_FLAG_ONE is not supported." ] pub fn avfilter_graph_queue_command ( graph : * mut AVFilterGraph , target : * const libc :: c_char , cmd : * const libc :: c_char , arg : * const libc :: c_char , flags : libc :: c_int , ts : f64 ) -> libc :: c_int ; } extern "C" { # [ doc = " Dump a graph into a human-readable string representation." ] # [ doc = "" ] # [ doc = " @param graph    the graph to dump" ] # [ doc = " @param options  formatting options; currently ignored" ] # [ doc = " @return  a string, or NULL in case of memory allocation failure;" ] # [ doc = "          the string must be freed using av_free" ] pub fn avfilter_graph_dump ( graph : * mut AVFilterGraph , options : * const libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { # [ doc = " Request a frame on the oldest sink link." ] # [ doc = "" ] # [ doc = " If the request returns AVERROR_EOF, try the next." ] # [ doc = "" ] # [ doc = " Note that this function is not meant to be the sole scheduling mechanism" ] # [ doc = " of a filtergraph, only a convenience function to help drain a filtergraph" ] # [ doc = " in a balanced way under normal circumstances." ] # [ doc = "" ] # [ doc = " Also note that AVERROR_EOF does not mean that frames did not arrive on" ] # [ doc = " some of the sinks during the process." ] # [ doc = " When there are multiple sink links, in case the requested link" ] # [ doc = " returns an EOF, this may cause a filter to flush pending frames" ] # [ doc = " which are sent to another sink link, although unrequested." ] # [ doc = "" ] # [ doc = " @return  the return value of ff_request_frame()," ] # [ doc = "          or AVERROR_EOF if all links returned AVERROR_EOF" ] pub fn avfilter_graph_request_oldest ( graph : * mut AVFilterGraph ) -> libc :: c_int ; } extern "C" { # [ doc = " Get a frame with filtered data from sink and put it in frame." ] # [ doc = "" ] # [ doc = " @param ctx    pointer to a buffersink or abuffersink filter context." ] # [ doc = " @param frame  pointer to an allocated frame that will be filled with data." ] # [ doc = "               The data must be freed using av_frame_unref() / av_frame_free()" ] # [ doc = " @param flags  a combination of AV_BUFFERSINK_FLAG_* flags" ] # [ doc = "" ] # [ doc = " @return  >= 0 in for success, a negative AVERROR code for failure." ] pub fn av_buffersink_get_frame_flags ( ctx : * mut AVFilterContext , frame : * mut AVFrame , flags : libc :: c_int ) -> libc :: c_int ; } # [ doc = " Struct to use for initializing a buffersink context." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVBufferSinkParams { # [ doc = "< list of allowed pixel formats, terminated by AV_PIX_FMT_NONE" ] pub pixel_fmts : * const AVPixelFormat , } # [ test ] fn bindgen_test_layout_AVBufferSinkParams ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVBufferSinkParams > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( AVBufferSinkParams ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVBufferSinkParams > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVBufferSinkParams ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBufferSinkParams > ( ) ) ) . pixel_fmts as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVBufferSinkParams ) , "::" , stringify ! ( pixel_fmts ) ) ) ; } extern "C" { # [ doc = " Create an AVBufferSinkParams structure." ] # [ doc = "" ] # [ doc = " Must be freed with av_free()." ] pub fn av_buffersink_params_alloc ( ) -> * mut AVBufferSinkParams ; } # [ doc = " Struct to use for initializing an abuffersink context." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVABufferSinkParams { # [ doc = "< list of allowed sample formats, terminated by AV_SAMPLE_FMT_NONE" ] pub sample_fmts : * const AVSampleFormat , # [ doc = "< list of allowed channel layouts, terminated by -1" ] pub channel_layouts : * const i64 , # [ doc = "< list of allowed channel counts, terminated by -1" ] pub channel_counts : * const libc :: c_int , # [ doc = "< if not 0, accept any channel count or layout" ] pub all_channel_counts : libc :: c_int , # [ doc = "< list of allowed sample rates, terminated by -1" ] pub sample_rates : * mut libc :: c_int , } # [ test ] fn bindgen_test_layout_AVABufferSinkParams ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVABufferSinkParams > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( AVABufferSinkParams ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVABufferSinkParams > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVABufferSinkParams ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVABufferSinkParams > ( ) ) ) . sample_fmts as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVABufferSinkParams ) , "::" , stringify ! ( sample_fmts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVABufferSinkParams > ( ) ) ) . channel_layouts as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVABufferSinkParams ) , "::" , stringify ! ( channel_layouts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVABufferSinkParams > ( ) ) ) . channel_counts as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVABufferSinkParams ) , "::" , stringify ! ( channel_counts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVABufferSinkParams > ( ) ) ) . all_channel_counts as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVABufferSinkParams ) , "::" , stringify ! ( all_channel_counts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVABufferSinkParams > ( ) ) ) . sample_rates as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVABufferSinkParams ) , "::" , stringify ! ( sample_rates ) ) ) ; } extern "C" { # [ doc = " Create an AVABufferSinkParams structure." ] # [ doc = "" ] # [ doc = " Must be freed with av_free()." ] pub fn av_abuffersink_params_alloc ( ) -> * mut AVABufferSinkParams ; } extern "C" { # [ doc = " Set the frame size for an audio buffer sink." ] # [ doc = "" ] # [ doc = " All calls to av_buffersink_get_buffer_ref will return a buffer with" ] # [ doc = " exactly the specified number of samples, or AVERROR(EAGAIN) if there is" ] # [ doc = " not enough. The last buffer at EOF will be padded with 0." ] pub fn av_buffersink_set_frame_size ( ctx : * mut AVFilterContext , frame_size : libc :: c_uint ) ; } extern "C" { # [ doc = " @defgroup lavfi_buffersink_accessors Buffer sink accessors" ] # [ doc = " Get the properties of the stream" ] # [ doc = " @{" ] pub fn av_buffersink_get_type ( ctx : * const AVFilterContext ) -> AVMediaType ; } extern "C" { pub fn av_buffersink_get_time_base ( ctx : * const AVFilterContext ) -> AVRational ; } extern "C" { pub fn av_buffersink_get_format ( ctx : * const AVFilterContext ) -> libc :: c_int ; } extern "C" { pub fn av_buffersink_get_frame_rate ( ctx : * const AVFilterContext ) -> AVRational ; } extern "C" { pub fn av_buffersink_get_w ( ctx : * const AVFilterContext ) -> libc :: c_int ; } extern "C" { pub fn av_buffersink_get_h ( ctx : * const AVFilterContext ) -> libc :: c_int ; } extern "C" { pub fn av_buffersink_get_sample_aspect_ratio ( ctx : * const AVFilterContext ) -> AVRational ; } extern "C" { pub fn av_buffersink_get_channels ( ctx : * const AVFilterContext ) -> libc :: c_int ; } extern "C" { pub fn av_buffersink_get_channel_layout ( ctx : * const AVFilterContext ) -> u64 ; } extern "C" { pub fn av_buffersink_get_sample_rate ( ctx : * const AVFilterContext ) -> libc :: c_int ; } extern "C" { pub fn av_buffersink_get_hw_frames_ctx ( ctx : * const AVFilterContext ) -> * mut AVBufferRef ; } extern "C" { # [ doc = " Get a frame with filtered data from sink and put it in frame." ] # [ doc = "" ] # [ doc = " @param ctx pointer to a context of a buffersink or abuffersink AVFilter." ] # [ doc = " @param frame pointer to an allocated frame that will be filled with data." ] # [ doc = "              The data must be freed using av_frame_unref() / av_frame_free()" ] # [ doc = "" ] # [ doc = " @return" ] # [ doc = "         - >= 0 if a frame was successfully returned." ] # [ doc = "         - AVERROR(EAGAIN) if no frames are available at this point; more" ] # [ doc = "           input frames must be added to the filtergraph to get more output." ] # [ doc = "         - AVERROR_EOF if there will be no more output frames on this sink." ] # [ doc = "         - A different negative AVERROR code in other failure cases." ] pub fn av_buffersink_get_frame ( ctx : * mut AVFilterContext , frame : * mut AVFrame ) -> libc :: c_int ; } extern "C" { # [ doc = " Same as av_buffersink_get_frame(), but with the ability to specify the number" ] # [ doc = " of samples read. This function is less efficient than" ] # [ doc = " av_buffersink_get_frame(), because it copies the data around." ] # [ doc = "" ] # [ doc = " @param ctx pointer to a context of the abuffersink AVFilter." ] # [ doc = " @param frame pointer to an allocated frame that will be filled with data." ] # [ doc = "              The data must be freed using av_frame_unref() / av_frame_free()" ] # [ doc = "              frame will contain exactly nb_samples audio samples, except at" ] # [ doc = "              the end of stream, when it can contain less than nb_samples." ] # [ doc = "" ] # [ doc = " @return The return codes have the same meaning as for" ] # [ doc = "         av_buffersink_get_frame()." ] # [ doc = "" ] # [ doc = " @warning do not mix this function with av_buffersink_get_frame(). Use only one or" ] # [ doc = " the other with a single sink, not both." ] pub fn av_buffersink_get_samples ( ctx : * mut AVFilterContext , frame : * mut AVFrame , nb_samples : libc :: c_int ) -> libc :: c_int ; } pub const AV_BUFFERSRC_FLAG_NO_CHECK_FORMAT : _bindgen_ty_7 = _bindgen_ty_7 :: AV_BUFFERSRC_FLAG_NO_CHECK_FORMAT ; pub const AV_BUFFERSRC_FLAG_PUSH : _bindgen_ty_7 = _bindgen_ty_7 :: AV_BUFFERSRC_FLAG_PUSH ; pub const AV_BUFFERSRC_FLAG_KEEP_REF : _bindgen_ty_7 = _bindgen_ty_7 :: AV_BUFFERSRC_FLAG_KEEP_REF ; # [ repr ( u32 ) ] # [ doc = " @defgroup lavfi_buffersrc Buffer source API" ] # [ doc = " @ingroup lavfi" ] # [ doc = " @{" ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum _bindgen_ty_7 { # [ doc = " Do not check for format changes." ] AV_BUFFERSRC_FLAG_NO_CHECK_FORMAT = 1 , # [ doc = " Immediately push the frame to the output." ] AV_BUFFERSRC_FLAG_PUSH = 4 , # [ doc = " Keep a reference to the frame." ] # [ doc = " If the frame if reference-counted, create a new reference; otherwise" ] # [ doc = " copy the frame data." ] AV_BUFFERSRC_FLAG_KEEP_REF = 8 , } extern "C" { # [ doc = " Get the number of failed requests." ] # [ doc = "" ] # [ doc = " A failed request is when the request_frame method is called while no" ] # [ doc = " frame is present in the buffer." ] # [ doc = " The number is reset when a frame is added." ] pub fn av_buffersrc_get_nb_failed_requests ( buffer_src : * mut AVFilterContext ) -> libc :: c_uint ; } # [ doc = " This structure contains the parameters describing the frames that will be" ] # [ doc = " passed to this filter." ] # [ doc = "" ] # [ doc = " It should be allocated with av_buffersrc_parameters_alloc() and freed with" ] # [ doc = " av_free(). All the allocated fields in it remain owned by the caller." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVBufferSrcParameters { # [ doc = " video: the pixel format, value corresponds to enum AVPixelFormat" ] # [ doc = " audio: the sample format, value corresponds to enum AVSampleFormat" ] pub format : libc :: c_int , # [ doc = " The timebase to be used for the timestamps on the input frames." ] pub time_base : AVRational , # [ doc = " Video only, the display dimensions of the input frames." ] pub width : libc :: c_int , # [ doc = " Video only, the display dimensions of the input frames." ] pub height : libc :: c_int , # [ doc = " Video only, the sample (pixel) aspect ratio." ] pub sample_aspect_ratio : AVRational , # [ doc = " Video only, the frame rate of the input video. This field must only be" ] # [ doc = " set to a non-zero value if input stream has a known constant framerate" ] # [ doc = " and should be left at its initial value if the framerate is variable or" ] # [ doc = " unknown." ] pub frame_rate : AVRational , # [ doc = " Video with a hwaccel pixel format only. This should be a reference to an" ] # [ doc = " AVHWFramesContext instance describing the input frames." ] pub hw_frames_ctx : * mut AVBufferRef , # [ doc = " Audio only, the audio sampling rate in samples per second." ] pub sample_rate : libc :: c_int , # [ doc = " Audio only, the audio channel layout" ] pub channel_layout : u64 , } # [ test ] fn bindgen_test_layout_AVBufferSrcParameters ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVBufferSrcParameters > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( AVBufferSrcParameters ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVBufferSrcParameters > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVBufferSrcParameters ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBufferSrcParameters > ( ) ) ) . format as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVBufferSrcParameters ) , "::" , stringify ! ( format ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBufferSrcParameters > ( ) ) ) . time_base as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVBufferSrcParameters ) , "::" , stringify ! ( time_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBufferSrcParameters > ( ) ) ) . width as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVBufferSrcParameters ) , "::" , stringify ! ( width ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBufferSrcParameters > ( ) ) ) . height as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVBufferSrcParameters ) , "::" , stringify ! ( height ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBufferSrcParameters > ( ) ) ) . sample_aspect_ratio as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( AVBufferSrcParameters ) , "::" , stringify ! ( sample_aspect_ratio ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBufferSrcParameters > ( ) ) ) . frame_rate as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( AVBufferSrcParameters ) , "::" , stringify ! ( frame_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBufferSrcParameters > ( ) ) ) . hw_frames_ctx as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVBufferSrcParameters ) , "::" , stringify ! ( hw_frames_ctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBufferSrcParameters > ( ) ) ) . sample_rate as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( AVBufferSrcParameters ) , "::" , stringify ! ( sample_rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBufferSrcParameters > ( ) ) ) . channel_layout as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( AVBufferSrcParameters ) , "::" , stringify ! ( channel_layout ) ) ) ; } extern "C" { # [ doc = " Allocate a new AVBufferSrcParameters instance. It should be freed by the" ] # [ doc = " caller with av_free()." ] pub fn av_buffersrc_parameters_alloc ( ) -> * mut AVBufferSrcParameters ; } extern "C" { # [ doc = " Initialize the buffersrc or abuffersrc filter with the provided parameters." ] # [ doc = " This function may be called multiple times, the later calls override the" ] # [ doc = " previous ones. Some of the parameters may also be set through AVOptions, then" ] # [ doc = " whatever method is used last takes precedence." ] # [ doc = "" ] # [ doc = " @param ctx an instance of the buffersrc or abuffersrc filter" ] # [ doc = " @param param the stream parameters. The frames later passed to this filter" ] # [ doc = "              must conform to those parameters. All the allocated fields in" ] # [ doc = "              param remain owned by the caller, libavfilter will make internal" ] # [ doc = "              copies or references when necessary." ] # [ doc = " @return 0 on success, a negative AVERROR code on failure." ] pub fn av_buffersrc_parameters_set ( ctx : * mut AVFilterContext , param : * mut AVBufferSrcParameters ) -> libc :: c_int ; } extern "C" { # [ doc = " Add a frame to the buffer source." ] # [ doc = "" ] # [ doc = " @param ctx   an instance of the buffersrc filter" ] # [ doc = " @param frame frame to be added. If the frame is reference counted, this" ] # [ doc = " function will make a new reference to it. Otherwise the frame data will be" ] # [ doc = " copied." ] # [ doc = "" ] # [ doc = " @return 0 on success, a negative AVERROR on error" ] # [ doc = "" ] # [ doc = " This function is equivalent to av_buffersrc_add_frame_flags() with the" ] # [ doc = " AV_BUFFERSRC_FLAG_KEEP_REF flag." ] pub fn av_buffersrc_write_frame ( ctx : * mut AVFilterContext , frame : * const AVFrame ) -> libc :: c_int ; } extern "C" { # [ doc = " Add a frame to the buffer source." ] # [ doc = "" ] # [ doc = " @param ctx   an instance of the buffersrc filter" ] # [ doc = " @param frame frame to be added. If the frame is reference counted, this" ] # [ doc = " function will take ownership of the reference(s) and reset the frame." ] # [ doc = " Otherwise the frame data will be copied. If this function returns an error," ] # [ doc = " the input frame is not touched." ] # [ doc = "" ] # [ doc = " @return 0 on success, a negative AVERROR on error." ] # [ doc = "" ] # [ doc = " @note the difference between this function and av_buffersrc_write_frame() is" ] # [ doc = " that av_buffersrc_write_frame() creates a new reference to the input frame," ] # [ doc = " while this function takes ownership of the reference passed to it." ] # [ doc = "" ] # [ doc = " This function is equivalent to av_buffersrc_add_frame_flags() without the" ] # [ doc = " AV_BUFFERSRC_FLAG_KEEP_REF flag." ] pub fn av_buffersrc_add_frame ( ctx : * mut AVFilterContext , frame : * mut AVFrame ) -> libc :: c_int ; } extern "C" { # [ doc = " Add a frame to the buffer source." ] # [ doc = "" ] # [ doc = " By default, if the frame is reference-counted, this function will take" ] # [ doc = " ownership of the reference(s) and reset the frame. This can be controlled" ] # [ doc = " using the flags." ] # [ doc = "" ] # [ doc = " If this function returns an error, the input frame is not touched." ] # [ doc = "" ] # [ doc = " @param buffer_src  pointer to a buffer source context" ] # [ doc = " @param frame       a frame, or NULL to mark EOF" ] # [ doc = " @param flags       a combination of AV_BUFFERSRC_FLAG_*" ] # [ doc = " @return            >= 0 in case of success, a negative AVERROR code" ] # [ doc = "                    in case of failure" ] pub fn av_buffersrc_add_frame_flags ( buffer_src : * mut AVFilterContext , frame : * mut AVFrame , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Close the buffer source after EOF." ] # [ doc = "" ] # [ doc = " This is similar to passing NULL to av_buffersrc_add_frame_flags()" ] # [ doc = " except it takes the timestamp of the EOF, i.e. the timestamp of the end" ] # [ doc = " of the last frame." ] pub fn av_buffersrc_close ( ctx : * mut AVFilterContext , pts : i64 , flags : libc :: c_uint ) -> libc :: c_int ; } extern "C" { # [ doc = " Calculate the Adler32 checksum of a buffer." ] # [ doc = "" ] # [ doc = " Passing the return value to a subsequent av_adler32_update() call" ] # [ doc = " allows the checksum of multiple buffers to be calculated as though" ] # [ doc = " they were concatenated." ] # [ doc = "" ] # [ doc = " @param adler initial checksum value" ] # [ doc = " @param buf   pointer to input buffer" ] # [ doc = " @param len   size of input buffer" ] # [ doc = " @return      updated checksum" ] pub fn av_adler32_update ( adler : libc :: c_ulong , buf : * const u8 , len : libc :: c_uint ) -> libc :: c_ulong ; } extern "C" { pub static av_aes_size : libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVAES { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Allocate an AVAES context." ] pub fn av_aes_alloc ( ) -> * mut AVAES ; } extern "C" { # [ doc = " Initialize an AVAES context." ] # [ doc = " @param key_bits 128, 192 or 256" ] # [ doc = " @param decrypt 0 for encryption, 1 for decryption" ] pub fn av_aes_init ( a : * mut AVAES , key : * const u8 , key_bits : libc :: c_int , decrypt : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Encrypt or decrypt a buffer using a previously initialized context." ] # [ doc = " @param count number of 16 byte blocks" ] # [ doc = " @param dst destination array, can be equal to src" ] # [ doc = " @param src source array, can be equal to dst" ] # [ doc = " @param iv initialization vector for CBC mode, if NULL then ECB will be used" ] # [ doc = " @param decrypt 0 for encryption, 1 for decryption" ] pub fn av_aes_crypt ( a : * mut AVAES , dst : * mut u8 , src : * const u8 , count : libc :: c_int , iv : * mut u8 , decrypt : libc :: c_int ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVFifoBuffer { pub buffer : * mut u8 , pub rptr : * mut u8 , pub wptr : * mut u8 , pub end : * mut u8 , pub rndx : u32 , pub wndx : u32 , } # [ test ] fn bindgen_test_layout_AVFifoBuffer ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVFifoBuffer > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( AVFifoBuffer ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVFifoBuffer > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVFifoBuffer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFifoBuffer > ( ) ) ) . buffer as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVFifoBuffer ) , "::" , stringify ! ( buffer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFifoBuffer > ( ) ) ) . rptr as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVFifoBuffer ) , "::" , stringify ! ( rptr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFifoBuffer > ( ) ) ) . wptr as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVFifoBuffer ) , "::" , stringify ! ( wptr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFifoBuffer > ( ) ) ) . end as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVFifoBuffer ) , "::" , stringify ! ( end ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFifoBuffer > ( ) ) ) . rndx as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVFifoBuffer ) , "::" , stringify ! ( rndx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVFifoBuffer > ( ) ) ) . wndx as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( AVFifoBuffer ) , "::" , stringify ! ( wndx ) ) ) ; } extern "C" { # [ doc = " Initialize an AVFifoBuffer." ] # [ doc = " @param size of FIFO" ] # [ doc = " @return AVFifoBuffer or NULL in case of memory allocation failure" ] pub fn av_fifo_alloc ( size : libc :: c_uint ) -> * mut AVFifoBuffer ; } extern "C" { # [ doc = " Initialize an AVFifoBuffer." ] # [ doc = " @param nmemb number of elements" ] # [ doc = " @param size  size of the single element" ] # [ doc = " @return AVFifoBuffer or NULL in case of memory allocation failure" ] pub fn av_fifo_alloc_array ( nmemb : size_t , size : size_t ) -> * mut AVFifoBuffer ; } extern "C" { # [ doc = " Free an AVFifoBuffer." ] # [ doc = " @param f AVFifoBuffer to free" ] pub fn av_fifo_free ( f : * mut AVFifoBuffer ) ; } extern "C" { # [ doc = " Free an AVFifoBuffer and reset pointer to NULL." ] # [ doc = " @param f AVFifoBuffer to free" ] pub fn av_fifo_freep ( f : * mut * mut AVFifoBuffer ) ; } extern "C" { # [ doc = " Reset the AVFifoBuffer to the state right after av_fifo_alloc, in particular it is emptied." ] # [ doc = " @param f AVFifoBuffer to reset" ] pub fn av_fifo_reset ( f : * mut AVFifoBuffer ) ; } extern "C" { # [ doc = " Return the amount of data in bytes in the AVFifoBuffer, that is the" ] # [ doc = " amount of data you can read from it." ] # [ doc = " @param f AVFifoBuffer to read from" ] # [ doc = " @return size" ] pub fn av_fifo_size ( f : * const AVFifoBuffer ) -> libc :: c_int ; } extern "C" { # [ doc = " Return the amount of space in bytes in the AVFifoBuffer, that is the" ] # [ doc = " amount of data you can write into it." ] # [ doc = " @param f AVFifoBuffer to write into" ] # [ doc = " @return size" ] pub fn av_fifo_space ( f : * const AVFifoBuffer ) -> libc :: c_int ; } extern "C" { # [ doc = " Feed data at specific position from an AVFifoBuffer to a user-supplied callback." ] # [ doc = " Similar as av_fifo_gereric_read but without discarding data." ] # [ doc = " @param f AVFifoBuffer to read from" ] # [ doc = " @param offset offset from current read position" ] # [ doc = " @param buf_size number of bytes to read" ] # [ doc = " @param func generic read function" ] # [ doc = " @param dest data destination" ] pub fn av_fifo_generic_peek_at ( f : * mut AVFifoBuffer , dest : * mut libc :: c_void , offset : libc :: c_int , buf_size : libc :: c_int , func : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut libc :: c_void , arg2 : * mut libc :: c_void , arg3 : libc :: c_int ) > ) -> libc :: c_int ; } extern "C" { # [ doc = " Feed data from an AVFifoBuffer to a user-supplied callback." ] # [ doc = " Similar as av_fifo_gereric_read but without discarding data." ] # [ doc = " @param f AVFifoBuffer to read from" ] # [ doc = " @param buf_size number of bytes to read" ] # [ doc = " @param func generic read function" ] # [ doc = " @param dest data destination" ] pub fn av_fifo_generic_peek ( f : * mut AVFifoBuffer , dest : * mut libc :: c_void , buf_size : libc :: c_int , func : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut libc :: c_void , arg2 : * mut libc :: c_void , arg3 : libc :: c_int ) > ) -> libc :: c_int ; } extern "C" { # [ doc = " Feed data from an AVFifoBuffer to a user-supplied callback." ] # [ doc = " @param f AVFifoBuffer to read from" ] # [ doc = " @param buf_size number of bytes to read" ] # [ doc = " @param func generic read function" ] # [ doc = " @param dest data destination" ] pub fn av_fifo_generic_read ( f : * mut AVFifoBuffer , dest : * mut libc :: c_void , buf_size : libc :: c_int , func : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut libc :: c_void , arg2 : * mut libc :: c_void , arg3 : libc :: c_int ) > ) -> libc :: c_int ; } extern "C" { # [ doc = " Feed data from a user-supplied callback to an AVFifoBuffer." ] # [ doc = " @param f AVFifoBuffer to write to" ] # [ doc = " @param src data source; non-const since it may be used as a" ] # [ doc = " modifiable context by the function defined in func" ] # [ doc = " @param size number of bytes to write" ] # [ doc = " @param func generic write function; the first parameter is src," ] # [ doc = " the second is dest_buf, the third is dest_buf_size." ] # [ doc = " func must return the number of bytes written to dest_buf, or <= 0 to" ] # [ doc = " indicate no more data available to write." ] # [ doc = " If func is NULL, src is interpreted as a simple byte array for source data." ] # [ doc = " @return the number of bytes written to the FIFO" ] pub fn av_fifo_generic_write ( f : * mut AVFifoBuffer , src : * mut libc :: c_void , size : libc :: c_int , func : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut libc :: c_void , arg2 : * mut libc :: c_void , arg3 : libc :: c_int ) -> libc :: c_int > ) -> libc :: c_int ; } extern "C" { # [ doc = " Resize an AVFifoBuffer." ] # [ doc = " In case of reallocation failure, the old FIFO is kept unchanged." ] # [ doc = "" ] # [ doc = " @param f AVFifoBuffer to resize" ] # [ doc = " @param size new AVFifoBuffer size in bytes" ] # [ doc = " @return <0 for failure, >=0 otherwise" ] pub fn av_fifo_realloc2 ( f : * mut AVFifoBuffer , size : libc :: c_uint ) -> libc :: c_int ; } extern "C" { # [ doc = " Enlarge an AVFifoBuffer." ] # [ doc = " In case of reallocation failure, the old FIFO is kept unchanged." ] # [ doc = " The new fifo size may be larger than the requested size." ] # [ doc = "" ] # [ doc = " @param f AVFifoBuffer to resize" ] # [ doc = " @param additional_space the amount of space in bytes to allocate in addition to av_fifo_size()" ] # [ doc = " @return <0 for failure, >=0 otherwise" ] pub fn av_fifo_grow ( f : * mut AVFifoBuffer , additional_space : libc :: c_uint ) -> libc :: c_int ; } extern "C" { # [ doc = " Read and discard the specified amount of data from an AVFifoBuffer." ] # [ doc = " @param f AVFifoBuffer to read from" ] # [ doc = " @param size amount of data to read in bytes" ] pub fn av_fifo_drain ( f : * mut AVFifoBuffer , size : libc :: c_int ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVAudioFifo { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Free an AVAudioFifo." ] # [ doc = "" ] # [ doc = " @param af  AVAudioFifo to free" ] pub fn av_audio_fifo_free ( af : * mut AVAudioFifo ) ; } extern "C" { # [ doc = " Allocate an AVAudioFifo." ] # [ doc = "" ] # [ doc = " @param sample_fmt  sample format" ] # [ doc = " @param channels    number of channels" ] # [ doc = " @param nb_samples  initial allocation size, in samples" ] # [ doc = " @return            newly allocated AVAudioFifo, or NULL on error" ] pub fn av_audio_fifo_alloc ( sample_fmt : AVSampleFormat , channels : libc :: c_int , nb_samples : libc :: c_int ) -> * mut AVAudioFifo ; } extern "C" { # [ doc = " Reallocate an AVAudioFifo." ] # [ doc = "" ] # [ doc = " @param af          AVAudioFifo to reallocate" ] # [ doc = " @param nb_samples  new allocation size, in samples" ] # [ doc = " @return            0 if OK, or negative AVERROR code on failure" ] pub fn av_audio_fifo_realloc ( af : * mut AVAudioFifo , nb_samples : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Write data to an AVAudioFifo." ] # [ doc = "" ] # [ doc = " The AVAudioFifo will be reallocated automatically if the available space" ] # [ doc = " is less than nb_samples." ] # [ doc = "" ] # [ doc = " @see enum AVSampleFormat" ] # [ doc = " The documentation for AVSampleFormat describes the data layout." ] # [ doc = "" ] # [ doc = " @param af          AVAudioFifo to write to" ] # [ doc = " @param data        audio data plane pointers" ] # [ doc = " @param nb_samples  number of samples to write" ] # [ doc = " @return            number of samples actually written, or negative AVERROR" ] # [ doc = "                    code on failure. If successful, the number of samples" ] # [ doc = "                    actually written will always be nb_samples." ] pub fn av_audio_fifo_write ( af : * mut AVAudioFifo , data : * mut * mut libc :: c_void , nb_samples : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Peek data from an AVAudioFifo." ] # [ doc = "" ] # [ doc = " @see enum AVSampleFormat" ] # [ doc = " The documentation for AVSampleFormat describes the data layout." ] # [ doc = "" ] # [ doc = " @param af          AVAudioFifo to read from" ] # [ doc = " @param data        audio data plane pointers" ] # [ doc = " @param nb_samples  number of samples to peek" ] # [ doc = " @return            number of samples actually peek, or negative AVERROR code" ] # [ doc = "                    on failure. The number of samples actually peek will not" ] # [ doc = "                    be greater than nb_samples, and will only be less than" ] # [ doc = "                    nb_samples if av_audio_fifo_size is less than nb_samples." ] pub fn av_audio_fifo_peek ( af : * mut AVAudioFifo , data : * mut * mut libc :: c_void , nb_samples : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Peek data from an AVAudioFifo." ] # [ doc = "" ] # [ doc = " @see enum AVSampleFormat" ] # [ doc = " The documentation for AVSampleFormat describes the data layout." ] # [ doc = "" ] # [ doc = " @param af          AVAudioFifo to read from" ] # [ doc = " @param data        audio data plane pointers" ] # [ doc = " @param nb_samples  number of samples to peek" ] # [ doc = " @param offset      offset from current read position" ] # [ doc = " @return            number of samples actually peek, or negative AVERROR code" ] # [ doc = "                    on failure. The number of samples actually peek will not" ] # [ doc = "                    be greater than nb_samples, and will only be less than" ] # [ doc = "                    nb_samples if av_audio_fifo_size is less than nb_samples." ] pub fn av_audio_fifo_peek_at ( af : * mut AVAudioFifo , data : * mut * mut libc :: c_void , nb_samples : libc :: c_int , offset : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Read data from an AVAudioFifo." ] # [ doc = "" ] # [ doc = " @see enum AVSampleFormat" ] # [ doc = " The documentation for AVSampleFormat describes the data layout." ] # [ doc = "" ] # [ doc = " @param af          AVAudioFifo to read from" ] # [ doc = " @param data        audio data plane pointers" ] # [ doc = " @param nb_samples  number of samples to read" ] # [ doc = " @return            number of samples actually read, or negative AVERROR code" ] # [ doc = "                    on failure. The number of samples actually read will not" ] # [ doc = "                    be greater than nb_samples, and will only be less than" ] # [ doc = "                    nb_samples if av_audio_fifo_size is less than nb_samples." ] pub fn av_audio_fifo_read ( af : * mut AVAudioFifo , data : * mut * mut libc :: c_void , nb_samples : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Drain data from an AVAudioFifo." ] # [ doc = "" ] # [ doc = " Removes the data without reading it." ] # [ doc = "" ] # [ doc = " @param af          AVAudioFifo to drain" ] # [ doc = " @param nb_samples  number of samples to drain" ] # [ doc = " @return            0 if OK, or negative AVERROR code on failure" ] pub fn av_audio_fifo_drain ( af : * mut AVAudioFifo , nb_samples : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Reset the AVAudioFifo buffer." ] # [ doc = "" ] # [ doc = " This empties all data in the buffer." ] # [ doc = "" ] # [ doc = " @param af  AVAudioFifo to reset" ] pub fn av_audio_fifo_reset ( af : * mut AVAudioFifo ) ; } extern "C" { # [ doc = " Get the current number of samples in the AVAudioFifo available for reading." ] # [ doc = "" ] # [ doc = " @param af  the AVAudioFifo to query" ] # [ doc = " @return    number of samples available for reading" ] pub fn av_audio_fifo_size ( af : * mut AVAudioFifo ) -> libc :: c_int ; } extern "C" { # [ doc = " Get the current number of samples in the AVAudioFifo available for writing." ] # [ doc = "" ] # [ doc = " @param af  the AVAudioFifo to query" ] # [ doc = " @return    number of samples available for writing" ] pub fn av_audio_fifo_space ( af : * mut AVAudioFifo ) -> libc :: c_int ; } extern "C" { # [ doc = " Decode a base64-encoded string." ] # [ doc = "" ] # [ doc = " @param out      buffer for decoded data" ] # [ doc = " @param in       null-terminated input string" ] # [ doc = " @param out_size size in bytes of the out buffer, must be at" ] # [ doc = "                 least 3/4 of the length of in, that is AV_BASE64_DECODE_SIZE(strlen(in))" ] # [ doc = " @return         number of bytes written, or a negative value in case of" ] # [ doc = "                 invalid input" ] pub fn av_base64_decode ( out : * mut u8 , in_ : * const libc :: c_char , out_size : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Encode data to base64 and null-terminate." ] # [ doc = "" ] # [ doc = " @param out      buffer for encoded data" ] # [ doc = " @param out_size size in bytes of the out buffer (including the" ] # [ doc = "                 null terminator), must be at least AV_BASE64_SIZE(in_size)" ] # [ doc = " @param in       input buffer containing the data to encode" ] # [ doc = " @param in_size  size in bytes of the in buffer" ] # [ doc = " @return         out or NULL in case of error" ] pub fn av_base64_encode ( out : * mut libc :: c_char , out_size : libc :: c_int , in_ : * const u8 , in_size : libc :: c_int ) -> * mut libc :: c_char ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct AVBlowfish { pub p : [ u32 ; 18usize ] , pub s : [ [ u32 ; 256usize ] ; 4usize ] , } # [ test ] fn bindgen_test_layout_AVBlowfish ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVBlowfish > ( ) , 4168usize , concat ! ( "Size of: " , stringify ! ( AVBlowfish ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVBlowfish > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( AVBlowfish ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBlowfish > ( ) ) ) . p as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVBlowfish ) , "::" , stringify ! ( p ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBlowfish > ( ) ) ) . s as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( AVBlowfish ) , "::" , stringify ! ( s ) ) ) ; } extern "C" { # [ doc = " Allocate an AVBlowfish context." ] pub fn av_blowfish_alloc ( ) -> * mut AVBlowfish ; } extern "C" { # [ doc = " Initialize an AVBlowfish context." ] # [ doc = "" ] # [ doc = " @param ctx an AVBlowfish context" ] # [ doc = " @param key a key" ] # [ doc = " @param key_len length of the key" ] pub fn av_blowfish_init ( ctx : * mut AVBlowfish , key : * const u8 , key_len : libc :: c_int ) ; } extern "C" { # [ doc = " Encrypt or decrypt a buffer using a previously initialized context." ] # [ doc = "" ] # [ doc = " @param ctx an AVBlowfish context" ] # [ doc = " @param xl left four bytes halves of input to be encrypted" ] # [ doc = " @param xr right four bytes halves of input to be encrypted" ] # [ doc = " @param decrypt 0 for encryption, 1 for decryption" ] pub fn av_blowfish_crypt_ecb ( ctx : * mut AVBlowfish , xl : * mut u32 , xr : * mut u32 , decrypt : libc :: c_int ) ; } extern "C" { # [ doc = " Encrypt or decrypt a buffer using a previously initialized context." ] # [ doc = "" ] # [ doc = " @param ctx an AVBlowfish context" ] # [ doc = " @param dst destination array, can be equal to src" ] # [ doc = " @param src source array, can be equal to dst" ] # [ doc = " @param count number of 8 byte blocks" ] # [ doc = " @param iv initialization vector for CBC mode, if NULL ECB will be used" ] # [ doc = " @param decrypt 0 for encryption, 1 for decryption" ] pub fn av_blowfish_crypt ( ctx : * mut AVBlowfish , dst : * mut u8 , src : * const u8 , count : libc :: c_int , iv : * mut u8 , decrypt : libc :: c_int ) ; } extern "C" { # [ doc = " Return non-zero if pfx is a prefix of str. If it is, *ptr is set to" ] # [ doc = " the address of the first character in str after the prefix." ] # [ doc = "" ] # [ doc = " @param str input string" ] # [ doc = " @param pfx prefix to test" ] # [ doc = " @param ptr updated if the prefix is matched inside str" ] # [ doc = " @return non-zero if the prefix matches, zero otherwise" ] pub fn av_strstart ( str : * const libc :: c_char , pfx : * const libc :: c_char , ptr : * mut * const libc :: c_char ) -> libc :: c_int ; } extern "C" { # [ doc = " Return non-zero if pfx is a prefix of str independent of case. If" ] # [ doc = " it is, *ptr is set to the address of the first character in str" ] # [ doc = " after the prefix." ] # [ doc = "" ] # [ doc = " @param str input string" ] # [ doc = " @param pfx prefix to test" ] # [ doc = " @param ptr updated if the prefix is matched inside str" ] # [ doc = " @return non-zero if the prefix matches, zero otherwise" ] pub fn av_stristart ( str : * const libc :: c_char , pfx : * const libc :: c_char , ptr : * mut * const libc :: c_char ) -> libc :: c_int ; } extern "C" { # [ doc = " Locate the first case-independent occurrence in the string haystack" ] # [ doc = " of the string needle.  A zero-length string needle is considered to" ] # [ doc = " match at the start of haystack." ] # [ doc = "" ] # [ doc = " This function is a case-insensitive version of the standard strstr()." ] # [ doc = "" ] # [ doc = " @param haystack string to search in" ] # [ doc = " @param needle   string to search for" ] # [ doc = " @return         pointer to the located match within haystack" ] # [ doc = "                 or a null pointer if no match" ] pub fn av_stristr ( haystack : * const libc :: c_char , needle : * const libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { # [ doc = " Locate the first occurrence of the string needle in the string haystack" ] # [ doc = " where not more than hay_length characters are searched. A zero-length" ] # [ doc = " string needle is considered to match at the start of haystack." ] # [ doc = "" ] # [ doc = " This function is a length-limited version of the standard strstr()." ] # [ doc = "" ] # [ doc = " @param haystack   string to search in" ] # [ doc = " @param needle     string to search for" ] # [ doc = " @param hay_length length of string to search in" ] # [ doc = " @return           pointer to the located match within haystack" ] # [ doc = "                   or a null pointer if no match" ] pub fn av_strnstr ( haystack : * const libc :: c_char , needle : * const libc :: c_char , hay_length : size_t ) -> * mut libc :: c_char ; } extern "C" { # [ doc = " Copy the string src to dst, but no more than size - 1 bytes, and" ] # [ doc = " null-terminate dst." ] # [ doc = "" ] # [ doc = " This function is the same as BSD strlcpy()." ] # [ doc = "" ] # [ doc = " @param dst destination buffer" ] # [ doc = " @param src source string" ] # [ doc = " @param size size of destination buffer" ] # [ doc = " @return the length of src" ] # [ doc = "" ] # [ doc = " @warning since the return value is the length of src, src absolutely" ] # [ doc = " _must_ be a properly 0-terminated string, otherwise this will read beyond" ] # [ doc = " the end of the buffer and possibly crash." ] pub fn av_strlcpy ( dst : * mut libc :: c_char , src : * const libc :: c_char , size : size_t ) -> size_t ; } extern "C" { # [ doc = " Append the string src to the string dst, but to a total length of" ] # [ doc = " no more than size - 1 bytes, and null-terminate dst." ] # [ doc = "" ] # [ doc = " This function is similar to BSD strlcat(), but differs when" ] # [ doc = " size <= strlen(dst)." ] # [ doc = "" ] # [ doc = " @param dst destination buffer" ] # [ doc = " @param src source string" ] # [ doc = " @param size size of destination buffer" ] # [ doc = " @return the total length of src and dst" ] # [ doc = "" ] # [ doc = " @warning since the return value use the length of src and dst, these" ] # [ doc = " absolutely _must_ be a properly 0-terminated strings, otherwise this" ] # [ doc = " will read beyond the end of the buffer and possibly crash." ] pub fn av_strlcat ( dst : * mut libc :: c_char , src : * const libc :: c_char , size : size_t ) -> size_t ; } extern "C" { # [ doc = " Append output to a string, according to a format. Never write out of" ] # [ doc = " the destination buffer, and always put a terminating 0 within" ] # [ doc = " the buffer." ] # [ doc = " @param dst destination buffer (string to which the output is" ] # [ doc = "  appended)" ] # [ doc = " @param size total size of the destination buffer" ] # [ doc = " @param fmt printf-compatible format string, specifying how the" ] # [ doc = "  following parameters are used" ] # [ doc = " @return the length of the string that would have been generated" ] # [ doc = "  if enough space had been available" ] pub fn av_strlcatf ( dst : * mut libc :: c_char , size : size_t , fmt : * const libc :: c_char , ... ) -> size_t ; } extern "C" { # [ doc = " Print arguments following specified format into a large enough auto" ] # [ doc = " allocated buffer. It is similar to GNU asprintf()." ] # [ doc = " @param fmt printf-compatible format string, specifying how the" ] # [ doc = "            following parameters are used." ] # [ doc = " @return the allocated string" ] # [ doc = " @note You have to free the string yourself with av_free()." ] pub fn av_asprintf ( fmt : * const libc :: c_char , ... ) -> * mut libc :: c_char ; } extern "C" { # [ doc = " Convert a number to an av_malloced string." ] pub fn av_d2str ( d : f64 ) -> * mut libc :: c_char ; } extern "C" { # [ doc = " Unescape the given string until a non escaped terminating char," ] # [ doc = " and return the token corresponding to the unescaped string." ] # [ doc = "" ] # [ doc = " The normal \\ and ' escaping is supported. Leading and trailing" ] # [ doc = " whitespaces are removed, unless they are escaped with '\\' or are" ] # [ doc = " enclosed between ''." ] # [ doc = "" ] # [ doc = " @param buf the buffer to parse, buf will be updated to point to the" ] # [ doc = " terminating char" ] # [ doc = " @param term a 0-terminated list of terminating chars" ] # [ doc = " @return the malloced unescaped string, which must be av_freed by" ] # [ doc = " the user, NULL in case of allocation failure" ] pub fn av_get_token ( buf : * mut * const libc :: c_char , term : * const libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { # [ doc = " Split the string into several tokens which can be accessed by" ] # [ doc = " successive calls to av_strtok()." ] # [ doc = "" ] # [ doc = " A token is defined as a sequence of characters not belonging to the" ] # [ doc = " set specified in delim." ] # [ doc = "" ] # [ doc = " On the first call to av_strtok(), s should point to the string to" ] # [ doc = " parse, and the value of saveptr is ignored. In subsequent calls, s" ] # [ doc = " should be NULL, and saveptr should be unchanged since the previous" ] # [ doc = " call." ] # [ doc = "" ] # [ doc = " This function is similar to strtok_r() defined in POSIX.1." ] # [ doc = "" ] # [ doc = " @param s the string to parse, may be NULL" ] # [ doc = " @param delim 0-terminated list of token delimiters, must be non-NULL" ] # [ doc = " @param saveptr user-provided pointer which points to stored" ] # [ doc = " information necessary for av_strtok() to continue scanning the same" ] # [ doc = " string. saveptr is updated to point to the next character after the" ] # [ doc = " first delimiter found, or to NULL if the string was terminated" ] # [ doc = " @return the found token, or NULL when no token is found" ] pub fn av_strtok ( s : * mut libc :: c_char , delim : * const libc :: c_char , saveptr : * mut * mut libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { # [ doc = " Locale-independent case-insensitive compare." ] # [ doc = " @note This means only ASCII-range characters are case-insensitive" ] pub fn av_strcasecmp ( a : * const libc :: c_char , b : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { # [ doc = " Locale-independent case-insensitive compare." ] # [ doc = " @note This means only ASCII-range characters are case-insensitive" ] pub fn av_strncasecmp ( a : * const libc :: c_char , b : * const libc :: c_char , n : size_t ) -> libc :: c_int ; } extern "C" { # [ doc = " Locale-independent strings replace." ] # [ doc = " @note This means only ASCII-range characters are replace" ] pub fn av_strireplace ( str : * const libc :: c_char , from : * const libc :: c_char , to : * const libc :: c_char ) -> * mut libc :: c_char ; } extern "C" { # [ doc = " Thread safe basename." ] # [ doc = " @param path the path, on DOS both \\ and / are considered separators." ] # [ doc = " @return pointer to the basename substring." ] pub fn av_basename ( path : * const libc :: c_char ) -> * const libc :: c_char ; } extern "C" { # [ doc = " Thread safe dirname." ] # [ doc = " @param path the path, on DOS both \\ and / are considered separators." ] # [ doc = " @return the path with the separator replaced by the string terminator or \".\"." ] # [ doc = " @note the function may change the input string." ] pub fn av_dirname ( path : * mut libc :: c_char ) -> * const libc :: c_char ; } extern "C" { # [ doc = " Match instances of a name in a comma-separated list of names." ] # [ doc = " List entries are checked from the start to the end of the names list," ] # [ doc = " the first match ends further processing. If an entry prefixed with '-'" ] # [ doc = " matches, then 0 is returned. The \"ALL\" list entry is considered to" ] # [ doc = " match all names." ] # [ doc = "" ] # [ doc = " @param name  Name to look for." ] # [ doc = " @param names List of names." ] # [ doc = " @return 1 on match, 0 otherwise." ] pub fn av_match_name ( name : * const libc :: c_char , names : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { # [ doc = " Append path component to the existing path." ] # [ doc = " Path separator '/' is placed between when needed." ] # [ doc = " Resulting string have to be freed with av_free()." ] # [ doc = " @param path      base path" ] # [ doc = " @param component component to be appended" ] # [ doc = " @return new path or NULL on error." ] pub fn av_append_path_component ( path : * const libc :: c_char , component : * const libc :: c_char ) -> * mut libc :: c_char ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVEscapeMode { # [ doc = "< Use auto-selected escaping mode." ] AV_ESCAPE_MODE_AUTO = 0 , # [ doc = "< Use backslash escaping." ] AV_ESCAPE_MODE_BACKSLASH = 1 , # [ doc = "< Use single-quote escaping." ] AV_ESCAPE_MODE_QUOTE = 2 , } extern "C" { # [ doc = " Escape string in src, and put the escaped string in an allocated" ] # [ doc = " string in *dst, which must be freed with av_free()." ] # [ doc = "" ] # [ doc = " @param dst           pointer where an allocated string is put" ] # [ doc = " @param src           string to escape, must be non-NULL" ] # [ doc = " @param special_chars string containing the special characters which" ] # [ doc = "                      need to be escaped, can be NULL" ] # [ doc = " @param mode          escape mode to employ, see AV_ESCAPE_MODE_* macros." ] # [ doc = "                      Any unknown value for mode will be considered equivalent to" ] # [ doc = "                      AV_ESCAPE_MODE_BACKSLASH, but this behaviour can change without" ] # [ doc = "                      notice." ] # [ doc = " @param flags         flags which control how to escape, see AV_ESCAPE_FLAG_ macros" ] # [ doc = " @return the length of the allocated string, or a negative error code in case of error" ] # [ doc = " @see av_bprint_escape()" ] pub fn av_escape ( dst : * mut * mut libc :: c_char , src : * const libc :: c_char , special_chars : * const libc :: c_char , mode : AVEscapeMode , flags : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Read and decode a single UTF-8 code point (character) from the" ] # [ doc = " buffer in *buf, and update *buf to point to the next byte to" ] # [ doc = " decode." ] # [ doc = "" ] # [ doc = " In case of an invalid byte sequence, the pointer will be updated to" ] # [ doc = " the next byte after the invalid sequence and the function will" ] # [ doc = " return an error code." ] # [ doc = "" ] # [ doc = " Depending on the specified flags, the function will also fail in" ] # [ doc = " case the decoded code point does not belong to a valid range." ] # [ doc = "" ] # [ doc = " @note For speed-relevant code a carefully implemented use of" ] # [ doc = " GET_UTF8() may be preferred." ] # [ doc = "" ] # [ doc = " @param codep   pointer used to return the parsed code in case of success." ] # [ doc = "                The value in *codep is set even in case the range check fails." ] # [ doc = " @param bufp    pointer to the address the first byte of the sequence" ] # [ doc = "                to decode, updated by the function to point to the" ] # [ doc = "                byte next after the decoded sequence" ] # [ doc = " @param buf_end pointer to the end of the buffer, points to the next" ] # [ doc = "                byte past the last in the buffer. This is used to" ] # [ doc = "                avoid buffer overreads (in case of an unfinished" ] # [ doc = "                UTF-8 sequence towards the end of the buffer)." ] # [ doc = " @param flags   a collection of AV_UTF8_FLAG_* flags" ] # [ doc = " @return >= 0 in case a sequence was successfully read, a negative" ] # [ doc = " value in case of invalid sequence" ] pub fn av_utf8_decode ( codep : * mut i32 , bufp : * mut * const u8 , buf_end : * const u8 , flags : libc :: c_uint ) -> libc :: c_int ; } extern "C" { # [ doc = " Check if a name is in a list." ] # [ doc = " @returns 0 if not found, or the 1 based index where it has been found in the" ] # [ doc = "            list." ] pub fn av_match_list ( name : * const libc :: c_char , list : * const libc :: c_char , separator : libc :: c_char ) -> libc :: c_int ; } extern "C" { # [ doc = " See libc sscanf manual for more information." ] # [ doc = " Locale-independent sscanf implementation." ] pub fn av_sscanf ( string : * const libc :: c_char , format : * const libc :: c_char , ... ) -> libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct ff_pad_helper_AVBPrint { pub str : * mut libc :: c_char , pub len : libc :: c_uint , pub size : libc :: c_uint , pub size_max : libc :: c_uint , pub reserved_internal_buffer : [ libc :: c_char ; 1usize ] , } # [ test ] fn bindgen_test_layout_ff_pad_helper_AVBPrint ( ) { assert_eq ! ( :: std :: mem :: size_of :: < ff_pad_helper_AVBPrint > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( ff_pad_helper_AVBPrint ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < ff_pad_helper_AVBPrint > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( ff_pad_helper_AVBPrint ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ff_pad_helper_AVBPrint > ( ) ) ) . str as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( ff_pad_helper_AVBPrint ) , "::" , stringify ! ( str ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ff_pad_helper_AVBPrint > ( ) ) ) . len as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( ff_pad_helper_AVBPrint ) , "::" , stringify ! ( len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ff_pad_helper_AVBPrint > ( ) ) ) . size as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( ff_pad_helper_AVBPrint ) , "::" , stringify ! ( size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ff_pad_helper_AVBPrint > ( ) ) ) . size_max as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( ff_pad_helper_AVBPrint ) , "::" , stringify ! ( size_max ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < ff_pad_helper_AVBPrint > ( ) ) ) . reserved_internal_buffer as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( ff_pad_helper_AVBPrint ) , "::" , stringify ! ( reserved_internal_buffer ) ) ) ; } # [ doc = " Buffer to print data progressively" ] # [ doc = "" ] # [ doc = " The string buffer grows as necessary and is always 0-terminated." ] # [ doc = " The content of the string is never accessed, and thus is" ] # [ doc = " encoding-agnostic and can even hold binary data." ] # [ doc = "" ] # [ doc = " Small buffers are kept in the structure itself, and thus require no" ] # [ doc = " memory allocation at all (unless the contents of the buffer is needed" ] # [ doc = " after the structure goes out of scope). This is almost as lightweight as" ] # [ doc = " declaring a local \"char buf[512]\"." ] # [ doc = "" ] # [ doc = " The length of the string can go beyond the allocated size: the buffer is" ] # [ doc = " then truncated, but the functions still keep account of the actual total" ] # [ doc = " length." ] # [ doc = "" ] # [ doc = " In other words, buf->len can be greater than buf->size and records the" ] # [ doc = " total length of what would have been to the buffer if there had been" ] # [ doc = " enough memory." ] # [ doc = "" ] # [ doc = " Append operations do not need to be tested for failure: if a memory" ] # [ doc = " allocation fails, data stop being appended to the buffer, but the length" ] # [ doc = " is still updated. This situation can be tested with" ] # [ doc = " av_bprint_is_complete()." ] # [ doc = "" ] # [ doc = " The size_max field determines several possible behaviours:" ] # [ doc = "" ] # [ doc = " size_max = -1 (= UINT_MAX) or any large value will let the buffer be" ] # [ doc = " reallocated as necessary, with an amortized linear cost." ] # [ doc = "" ] # [ doc = " size_max = 0 prevents writing anything to the buffer: only the total" ] # [ doc = " length is computed. The write operations can then possibly be repeated in" ] # [ doc = " a buffer with exactly the necessary size" ] # [ doc = " (using size_init = size_max = len + 1)." ] # [ doc = "" ] # [ doc = " size_max = 1 is automatically replaced by the exact size available in the" ] # [ doc = " structure itself, thus ensuring no dynamic memory allocation. The" ] # [ doc = " internal buffer is large enough to hold a reasonable paragraph of text," ] # [ doc = " such as the current paragraph." ] # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct AVBPrint { pub str : * mut libc :: c_char , pub len : libc :: c_uint , pub size : libc :: c_uint , pub size_max : libc :: c_uint , pub reserved_internal_buffer : [ libc :: c_char ; 1usize ] , pub reserved_padding : [ libc :: c_char ; 1000usize ] , } # [ test ] fn bindgen_test_layout_AVBPrint ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVBPrint > ( ) , 1024usize , concat ! ( "Size of: " , stringify ! ( AVBPrint ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVBPrint > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVBPrint ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBPrint > ( ) ) ) . str as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVBPrint ) , "::" , stringify ! ( str ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBPrint > ( ) ) ) . len as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVBPrint ) , "::" , stringify ! ( len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBPrint > ( ) ) ) . size as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVBPrint ) , "::" , stringify ! ( size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBPrint > ( ) ) ) . size_max as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVBPrint ) , "::" , stringify ! ( size_max ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBPrint > ( ) ) ) . reserved_internal_buffer as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( AVBPrint ) , "::" , stringify ! ( reserved_internal_buffer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVBPrint > ( ) ) ) . reserved_padding as * const _ as usize } , 21usize , concat ! ( "Offset of field: " , stringify ! ( AVBPrint ) , "::" , stringify ! ( reserved_padding ) ) ) ; } extern "C" { # [ doc = " Init a print buffer." ] # [ doc = "" ] # [ doc = " @param buf        buffer to init" ] # [ doc = " @param size_init  initial size (including the final 0)" ] # [ doc = " @param size_max   maximum size;" ] # [ doc = "                   0 means do not write anything, just count the length;" ] # [ doc = "                   1 is replaced by the maximum value for automatic storage;" ] # [ doc = "                   any large value means that the internal buffer will be" ] # [ doc = "                   reallocated as needed up to that limit; -1 is converted to" ] # [ doc = "                   UINT_MAX, the largest limit possible." ] # [ doc = "                   Check also AV_BPRINT_SIZE_* macros." ] pub fn av_bprint_init ( buf : * mut AVBPrint , size_init : libc :: c_uint , size_max : libc :: c_uint ) ; } extern "C" { # [ doc = " Init a print buffer using a pre-existing buffer." ] # [ doc = "" ] # [ doc = " The buffer will not be reallocated." ] # [ doc = "" ] # [ doc = " @param buf     buffer structure to init" ] # [ doc = " @param buffer  byte buffer to use for the string data" ] # [ doc = " @param size    size of buffer" ] pub fn av_bprint_init_for_buffer ( buf : * mut AVBPrint , buffer : * mut libc :: c_char , size : libc :: c_uint ) ; } extern "C" { # [ doc = " Append a formatted string to a print buffer." ] pub fn av_bprintf ( buf : * mut AVBPrint , fmt : * const libc :: c_char , ... ) ; } extern "C" { # [ doc = " Append a formatted string to a print buffer." ] pub fn av_vbprintf ( buf : * mut AVBPrint , fmt : * const libc :: c_char , vl_arg : * mut __va_list_tag ) ; } extern "C" { # [ doc = " Append char c n times to a print buffer." ] pub fn av_bprint_chars ( buf : * mut AVBPrint , c : libc :: c_char , n : libc :: c_uint ) ; } extern "C" { # [ doc = " Append data to a print buffer." ] # [ doc = "" ] # [ doc = " param buf  bprint buffer to use" ] # [ doc = " param data pointer to data" ] # [ doc = " param size size of data" ] pub fn av_bprint_append_data ( buf : * mut AVBPrint , data : * const libc :: c_char , size : libc :: c_uint ) ; } extern "C" { # [ doc = " Append a formatted date and time to a print buffer." ] # [ doc = "" ] # [ doc = " param buf  bprint buffer to use" ] # [ doc = " param fmt  date and time format string, see strftime()" ] # [ doc = " param tm   broken-down time structure to translate" ] # [ doc = "" ] # [ doc = " @note due to poor design of the standard strftime function, it may" ] # [ doc = " produce poor results if the format string expands to a very long text and" ] # [ doc = " the bprint buffer is near the limit stated by the size_max option." ] pub fn av_bprint_strftime ( buf : * mut AVBPrint , fmt : * const libc :: c_char , tm : * const tm ) ; } extern "C" { # [ doc = " Allocate bytes in the buffer for external use." ] # [ doc = "" ] # [ doc = " @param[in]  buf          buffer structure" ] # [ doc = " @param[in]  size         required size" ] # [ doc = " @param[out] mem          pointer to the memory area" ] # [ doc = " @param[out] actual_size  size of the memory area after allocation;" ] # [ doc = "                          can be larger or smaller than size" ] pub fn av_bprint_get_buffer ( buf : * mut AVBPrint , size : libc :: c_uint , mem : * mut * mut libc :: c_uchar , actual_size : * mut libc :: c_uint ) ; } extern "C" { # [ doc = " Reset the string to \"\" but keep internal allocated data." ] pub fn av_bprint_clear ( buf : * mut AVBPrint ) ; } extern "C" { # [ doc = " Finalize a print buffer." ] # [ doc = "" ] # [ doc = " The print buffer can no longer be used afterwards," ] # [ doc = " but the len and size fields are still valid." ] # [ doc = "" ] # [ doc = " @arg[out] ret_str  if not NULL, used to return a permanent copy of the" ] # [ doc = "                    buffer contents, or NULL if memory allocation fails;" ] # [ doc = "                    if NULL, the buffer is discarded and freed" ] # [ doc = " @return  0 for success or error code (probably AVERROR(ENOMEM))" ] pub fn av_bprint_finalize ( buf : * mut AVBPrint , ret_str : * mut * mut libc :: c_char ) -> libc :: c_int ; } extern "C" { # [ doc = " Escape the content in src and append it to dstbuf." ] # [ doc = "" ] # [ doc = " @param dstbuf        already inited destination bprint buffer" ] # [ doc = " @param src           string containing the text to escape" ] # [ doc = " @param special_chars string containing the special characters which" ] # [ doc = "                      need to be escaped, can be NULL" ] # [ doc = " @param mode          escape mode to employ, see AV_ESCAPE_MODE_* macros." ] # [ doc = "                      Any unknown value for mode will be considered equivalent to" ] # [ doc = "                      AV_ESCAPE_MODE_BACKSLASH, but this behaviour can change without" ] # [ doc = "                      notice." ] # [ doc = " @param flags         flags which control how to escape, see AV_ESCAPE_FLAG_* macros" ] pub fn av_bprint_escape ( dstbuf : * mut AVBPrint , src : * const libc :: c_char , special_chars : * const libc :: c_char , mode : AVEscapeMode , flags : libc :: c_int ) ; } extern "C" { pub static av_camellia_size : libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVCAMELLIA { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Allocate an AVCAMELLIA context" ] # [ doc = " To free the struct: av_free(ptr)" ] pub fn av_camellia_alloc ( ) -> * mut AVCAMELLIA ; } extern "C" { # [ doc = " Initialize an AVCAMELLIA context." ] # [ doc = "" ] # [ doc = " @param ctx an AVCAMELLIA context" ] # [ doc = " @param key a key of 16, 24, 32 bytes used for encryption/decryption" ] # [ doc = " @param key_bits number of keybits: possible are 128, 192, 256" ] pub fn av_camellia_init ( ctx : * mut AVCAMELLIA , key : * const u8 , key_bits : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Encrypt or decrypt a buffer using a previously initialized context" ] # [ doc = "" ] # [ doc = " @param ctx an AVCAMELLIA context" ] # [ doc = " @param dst destination array, can be equal to src" ] # [ doc = " @param src source array, can be equal to dst" ] # [ doc = " @param count number of 16 byte blocks" ] # [ doc = " @paran iv initialization vector for CBC mode, NULL for ECB mode" ] # [ doc = " @param decrypt 0 for encryption, 1 for decryption" ] pub fn av_camellia_crypt ( ctx : * mut AVCAMELLIA , dst : * mut u8 , src : * const u8 , count : libc :: c_int , iv : * mut u8 , decrypt : libc :: c_int ) ; } extern "C" { pub static av_cast5_size : libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVCAST5 { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Allocate an AVCAST5 context" ] # [ doc = " To free the struct: av_free(ptr)" ] pub fn av_cast5_alloc ( ) -> * mut AVCAST5 ; } extern "C" { # [ doc = " Initialize an AVCAST5 context." ] # [ doc = "" ] # [ doc = " @param ctx an AVCAST5 context" ] # [ doc = " @param key a key of 5,6,...16 bytes used for encryption/decryption" ] # [ doc = " @param key_bits number of keybits: possible are 40,48,...,128" ] # [ doc = " @return 0 on success, less than 0 on failure" ] pub fn av_cast5_init ( ctx : * mut AVCAST5 , key : * const u8 , key_bits : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Encrypt or decrypt a buffer using a previously initialized context, ECB mode only" ] # [ doc = "" ] # [ doc = " @param ctx an AVCAST5 context" ] # [ doc = " @param dst destination array, can be equal to src" ] # [ doc = " @param src source array, can be equal to dst" ] # [ doc = " @param count number of 8 byte blocks" ] # [ doc = " @param decrypt 0 for encryption, 1 for decryption" ] pub fn av_cast5_crypt ( ctx : * mut AVCAST5 , dst : * mut u8 , src : * const u8 , count : libc :: c_int , decrypt : libc :: c_int ) ; } extern "C" { # [ doc = " Encrypt or decrypt a buffer using a previously initialized context" ] # [ doc = "" ] # [ doc = " @param ctx an AVCAST5 context" ] # [ doc = " @param dst destination array, can be equal to src" ] # [ doc = " @param src source array, can be equal to dst" ] # [ doc = " @param count number of 8 byte blocks" ] # [ doc = " @param iv initialization vector for CBC mode, NULL for ECB mode" ] # [ doc = " @param decrypt 0 for encryption, 1 for decryption" ] pub fn av_cast5_crypt2 ( ctx : * mut AVCAST5 , dst : * mut u8 , src : * const u8 , count : libc :: c_int , iv : * mut u8 , decrypt : libc :: c_int ) ; } # [ doc = " @defgroup lavu_crc32 CRC" ] # [ doc = " @ingroup lavu_hash" ] # [ doc = " CRC (Cyclic Redundancy Check) hash function implementation." ] # [ doc = "" ] # [ doc = " This module supports numerous CRC polynomials, in addition to the most" ] # [ doc = " widely used CRC-32-IEEE. See @ref AVCRCId for a list of available" ] # [ doc = " polynomials." ] # [ doc = "" ] # [ doc = " @{" ] pub type AVCRC = u32 ; # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVCRCId { AV_CRC_8_ATM = 0 , AV_CRC_16_ANSI = 1 , AV_CRC_16_CCITT = 2 , AV_CRC_32_IEEE = 3 , AV_CRC_32_IEEE_LE = 4 , AV_CRC_16_ANSI_LE = 5 , AV_CRC_24_IEEE = 6 , AV_CRC_8_EBU = 7 , AV_CRC_MAX = 8 , } extern "C" { # [ doc = " Initialize a CRC table." ] # [ doc = " @param ctx must be an array of size sizeof(AVCRC)*257 or sizeof(AVCRC)*1024" ] # [ doc = " @param le If 1, the lowest bit represents the coefficient for the highest" ] # [ doc = "           exponent of the corresponding polynomial (both for poly and" ] # [ doc = "           actual CRC)." ] # [ doc = "           If 0, you must swap the CRC parameter and the result of av_crc" ] # [ doc = "           if you need the standard representation (can be simplified in" ] # [ doc = "           most cases to e.g. bswap16):" ] # [ doc = "           av_bswap32(crc << (32-bits))" ] # [ doc = " @param bits number of bits for the CRC" ] # [ doc = " @param poly generator polynomial without the x**bits coefficient, in the" ] # [ doc = "             representation as specified by le" ] # [ doc = " @param ctx_size size of ctx in bytes" ] # [ doc = " @return <0 on failure" ] pub fn av_crc_init ( ctx : * mut AVCRC , le : libc :: c_int , bits : libc :: c_int , poly : u32 , ctx_size : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Get an initialized standard CRC table." ] # [ doc = " @param crc_id ID of a standard CRC" ] # [ doc = " @return a pointer to the CRC table or NULL on failure" ] pub fn av_crc_get_table ( crc_id : AVCRCId ) -> * const AVCRC ; } extern "C" { # [ doc = " Calculate the CRC of a block." ] # [ doc = " @param crc CRC of previous blocks if any or initial value for CRC" ] # [ doc = " @return CRC updated with the data from the given block" ] # [ doc = "" ] # [ doc = " @see av_crc_init() \"le\" parameter" ] pub fn av_crc ( ctx : * const AVCRC , crc : u32 , buffer : * const u8 , length : size_t ) -> u32 ; } extern "C" { # [ doc = " Extract the rotation component of the transformation matrix." ] # [ doc = "" ] # [ doc = " @param matrix the transformation matrix" ] # [ doc = " @return the angle (in degrees) by which the transformation rotates the frame" ] # [ doc = "         counterclockwise. The angle will be in range [-180.0, 180.0]," ] # [ doc = "         or NaN if the matrix is singular." ] # [ doc = "" ] # [ doc = " @note floating point numbers are inherently inexact, so callers are" ] # [ doc = "       recommended to round the return value to nearest integer before use." ] pub fn av_display_rotation_get ( matrix : * const i32 ) -> f64 ; } extern "C" { # [ doc = " Initialize a transformation matrix describing a pure counterclockwise" ] # [ doc = " rotation by the specified angle (in degrees)." ] # [ doc = "" ] # [ doc = " @param matrix an allocated transformation matrix (will be fully overwritten" ] # [ doc = "               by this function)" ] # [ doc = " @param angle rotation angle in degrees." ] pub fn av_display_rotation_set ( matrix : * mut i32 , angle : f64 ) ; } extern "C" { # [ doc = " Flip the input matrix horizontally and/or vertically." ] # [ doc = "" ] # [ doc = " @param matrix an allocated transformation matrix" ] # [ doc = " @param hflip whether the matrix should be flipped horizontally" ] # [ doc = " @param vflip whether the matrix should be flipped vertically" ] pub fn av_display_matrix_flip ( matrix : * mut i32 , hflip : libc :: c_int , vflip : libc :: c_int ) ; } # [ repr ( u32 ) ] # [ doc = " Possible downmix types." ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVDownmixType { # [ doc = "< Not indicated." ] AV_DOWNMIX_TYPE_UNKNOWN = 0 , # [ doc = "< Lo/Ro 2-channel downmix (Stereo)." ] AV_DOWNMIX_TYPE_LORO = 1 , # [ doc = "< Lt/Rt 2-channel downmix, Dolby Surround compatible." ] AV_DOWNMIX_TYPE_LTRT = 2 , # [ doc = "< Lt/Rt 2-channel downmix, Dolby Pro Logic II compatible." ] AV_DOWNMIX_TYPE_DPLII = 3 , # [ doc = "< Number of downmix types. Not part of ABI." ] AV_DOWNMIX_TYPE_NB = 4 , } # [ doc = " This structure describes optional metadata relevant to a downmix procedure." ] # [ doc = "" ] # [ doc = " All fields are set by the decoder to the value indicated in the audio" ] # [ doc = " bitstream (if present), or to a \"sane\" default otherwise." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq ) ] pub struct AVDownmixInfo { # [ doc = " Type of downmix preferred by the mastering engineer." ] pub preferred_downmix_type : AVDownmixType , # [ doc = " Absolute scale factor representing the nominal level of the center" ] # [ doc = " channel during a regular downmix." ] pub center_mix_level : f64 , # [ doc = " Absolute scale factor representing the nominal level of the center" ] # [ doc = " channel during an Lt/Rt compatible downmix." ] pub center_mix_level_ltrt : f64 , # [ doc = " Absolute scale factor representing the nominal level of the surround" ] # [ doc = " channels during a regular downmix." ] pub surround_mix_level : f64 , # [ doc = " Absolute scale factor representing the nominal level of the surround" ] # [ doc = " channels during an Lt/Rt compatible downmix." ] pub surround_mix_level_ltrt : f64 , # [ doc = " Absolute scale factor representing the level at which the LFE data is" ] # [ doc = " mixed into L/R channels during downmixing." ] pub lfe_mix_level : f64 , } # [ test ] fn bindgen_test_layout_AVDownmixInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVDownmixInfo > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( AVDownmixInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVDownmixInfo > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVDownmixInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDownmixInfo > ( ) ) ) . preferred_downmix_type as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVDownmixInfo ) , "::" , stringify ! ( preferred_downmix_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDownmixInfo > ( ) ) ) . center_mix_level as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVDownmixInfo ) , "::" , stringify ! ( center_mix_level ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDownmixInfo > ( ) ) ) . center_mix_level_ltrt as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVDownmixInfo ) , "::" , stringify ! ( center_mix_level_ltrt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDownmixInfo > ( ) ) ) . surround_mix_level as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVDownmixInfo ) , "::" , stringify ! ( surround_mix_level ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDownmixInfo > ( ) ) ) . surround_mix_level_ltrt as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVDownmixInfo ) , "::" , stringify ! ( surround_mix_level_ltrt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVDownmixInfo > ( ) ) ) . lfe_mix_level as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( AVDownmixInfo ) , "::" , stringify ! ( lfe_mix_level ) ) ) ; } extern "C" { # [ doc = " Get a frame's AV_FRAME_DATA_DOWNMIX_INFO side data for editing." ] # [ doc = "" ] # [ doc = " If the side data is absent, it is created and added to the frame." ] # [ doc = "" ] # [ doc = " @param frame the frame for which the side data is to be obtained or created" ] # [ doc = "" ] # [ doc = " @return the AVDownmixInfo structure to be edited by the caller, or NULL if" ] # [ doc = "         the structure cannot be allocated." ] pub fn av_downmix_info_update_side_data ( frame : * mut AVFrame ) -> * mut AVDownmixInfo ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVExpr { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Parse and evaluate an expression." ] # [ doc = " Note, this is significantly slower than av_expr_eval()." ] # [ doc = "" ] # [ doc = " @param res a pointer to a double where is put the result value of" ] # [ doc = " the expression, or NAN in case of error" ] # [ doc = " @param s expression as a zero terminated string, for example \"1+2^3+5*5+sin(2/3)\"" ] # [ doc = " @param const_names NULL terminated array of zero terminated strings of constant identifiers, for example {\"PI\", \"E\", 0}" ] # [ doc = " @param const_values a zero terminated array of values for the identifiers from const_names" ] # [ doc = " @param func1_names NULL terminated array of zero terminated strings of funcs1 identifiers" ] # [ doc = " @param funcs1 NULL terminated array of function pointers for functions which take 1 argument" ] # [ doc = " @param func2_names NULL terminated array of zero terminated strings of funcs2 identifiers" ] # [ doc = " @param funcs2 NULL terminated array of function pointers for functions which take 2 arguments" ] # [ doc = " @param opaque a pointer which will be passed to all functions from funcs1 and funcs2" ] # [ doc = " @param log_ctx parent logging context" ] # [ doc = " @return >= 0 in case of success, a negative value corresponding to an" ] # [ doc = " AVERROR code otherwise" ] pub fn av_expr_parse_and_eval ( res : * mut f64 , s : * const libc :: c_char , const_names : * const * const libc :: c_char , const_values : * const f64 , func1_names : * const * const libc :: c_char , funcs1 : * const :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut libc :: c_void , arg2 : f64 ) -> f64 > , func2_names : * const * const libc :: c_char , funcs2 : * const :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut libc :: c_void , arg2 : f64 , arg3 : f64 ) -> f64 > , opaque : * mut libc :: c_void , log_offset : libc :: c_int , log_ctx : * mut libc :: c_void ) -> libc :: c_int ; } extern "C" { # [ doc = " Parse an expression." ] # [ doc = "" ] # [ doc = " @param expr a pointer where is put an AVExpr containing the parsed" ] # [ doc = " value in case of successful parsing, or NULL otherwise." ] # [ doc = " The pointed to AVExpr must be freed with av_expr_free() by the user" ] # [ doc = " when it is not needed anymore." ] # [ doc = " @param s expression as a zero terminated string, for example \"1+2^3+5*5+sin(2/3)\"" ] # [ doc = " @param const_names NULL terminated array of zero terminated strings of constant identifiers, for example {\"PI\", \"E\", 0}" ] # [ doc = " @param func1_names NULL terminated array of zero terminated strings of funcs1 identifiers" ] # [ doc = " @param funcs1 NULL terminated array of function pointers for functions which take 1 argument" ] # [ doc = " @param func2_names NULL terminated array of zero terminated strings of funcs2 identifiers" ] # [ doc = " @param funcs2 NULL terminated array of function pointers for functions which take 2 arguments" ] # [ doc = " @param log_ctx parent logging context" ] # [ doc = " @return >= 0 in case of success, a negative value corresponding to an" ] # [ doc = " AVERROR code otherwise" ] pub fn av_expr_parse ( expr : * mut * mut AVExpr , s : * const libc :: c_char , const_names : * const * const libc :: c_char , func1_names : * const * const libc :: c_char , funcs1 : * const :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut libc :: c_void , arg2 : f64 ) -> f64 > , func2_names : * const * const libc :: c_char , funcs2 : * const :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut libc :: c_void , arg2 : f64 , arg3 : f64 ) -> f64 > , log_offset : libc :: c_int , log_ctx : * mut libc :: c_void ) -> libc :: c_int ; } extern "C" { # [ doc = " Evaluate a previously parsed expression." ] # [ doc = "" ] # [ doc = " @param const_values a zero terminated array of values for the identifiers from av_expr_parse() const_names" ] # [ doc = " @param opaque a pointer which will be passed to all functions from funcs1 and funcs2" ] # [ doc = " @return the value of the expression" ] pub fn av_expr_eval ( e : * mut AVExpr , const_values : * const f64 , opaque : * mut libc :: c_void ) -> f64 ; } extern "C" { # [ doc = " Free a parsed expression previously created with av_expr_parse()." ] pub fn av_expr_free ( e : * mut AVExpr ) ; } extern "C" { # [ doc = " Parse the string in numstr and return its value as a double. If" ] # [ doc = " the string is empty, contains only whitespaces, or does not contain" ] # [ doc = " an initial substring that has the expected syntax for a" ] # [ doc = " floating-point number, no conversion is performed. In this case," ] # [ doc = " returns a value of zero and the value returned in tail is the value" ] # [ doc = " of numstr." ] # [ doc = "" ] # [ doc = " @param numstr a string representing a number, may contain one of" ] # [ doc = " the International System number postfixes, for example 'K', 'M'," ] # [ doc = " 'G'. If 'i' is appended after the postfix, powers of 2 are used" ] # [ doc = " instead of powers of 10. The 'B' postfix multiplies the value by" ] # [ doc = " 8, and can be appended after another postfix or used alone. This" ] # [ doc = " allows using for example 'KB', 'MiB', 'G' and 'B' as postfix." ] # [ doc = " @param tail if non-NULL puts here the pointer to the char next" ] # [ doc = " after the last parsed character" ] pub fn av_strtod ( numstr : * const libc :: c_char , tail : * mut * mut libc :: c_char ) -> f64 ; } extern "C" { # [ doc = " Read the file with name filename, and put its content in a newly" ] # [ doc = " allocated buffer or map it with mmap() when available." ] # [ doc = " In case of success set *bufptr to the read or mmapped buffer, and" ] # [ doc = " *size to the size in bytes of the buffer in *bufptr." ] # [ doc = " Unlike mmap this function succeeds with zero sized files, in this" ] # [ doc = " case *bufptr will be set to NULL and *size will be set to 0." ] # [ doc = " The returned buffer must be released with av_file_unmap()." ] # [ doc = "" ] # [ doc = " @param log_offset loglevel offset used for logging" ] # [ doc = " @param log_ctx context used for logging" ] # [ doc = " @return a non negative number in case of success, a negative value" ] # [ doc = " corresponding to an AVERROR error code in case of failure" ] pub fn av_file_map ( filename : * const libc :: c_char , bufptr : * mut * mut u8 , size : * mut size_t , log_offset : libc :: c_int , log_ctx : * mut libc :: c_void ) -> libc :: c_int ; } extern "C" { # [ doc = " Unmap or free the buffer bufptr created by av_file_map()." ] # [ doc = "" ] # [ doc = " @param size size in bytes of bufptr, must be the same as returned" ] # [ doc = " by av_file_map()" ] pub fn av_file_unmap ( bufptr : * mut u8 , size : size_t ) ; } extern "C" { # [ doc = " Wrapper to work around the lack of mkstemp() on mingw." ] # [ doc = " Also, tries to create file in /tmp first, if possible." ] # [ doc = " *prefix can be a character constant; *filename will be allocated internally." ] # [ doc = " @return file descriptor of opened file (or negative value corresponding to an" ] # [ doc = " AVERROR code on error)" ] # [ doc = " and opened file name in **filename." ] # [ doc = " @note On very old libcs it is necessary to set a secure umask before" ] # [ doc = "       calling this, av_tempfile() can't call umask itself as it is used in" ] # [ doc = "       libraries and could interfere with the calling application." ] # [ doc = " @deprecated as fd numbers cannot be passed saftely between libs on some platforms" ] pub fn av_tempfile ( prefix : * const libc :: c_char , filename : * mut * mut libc :: c_char , log_offset : libc :: c_int , log_ctx : * mut libc :: c_void ) -> libc :: c_int ; } # [ doc = " @example ffhash.c" ] # [ doc = " This example is a simple command line application that takes one or more" ] # [ doc = " arguments. It demonstrates a typical use of the hashing API with allocation," ] # [ doc = " initialization, updating, and finalizing." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVHashContext { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Allocate a hash context for the algorithm specified by name." ] # [ doc = "" ] # [ doc = " @return  >= 0 for success, a negative error code for failure" ] # [ doc = "" ] # [ doc = " @note The context is not initialized after a call to this function; you must" ] # [ doc = " call av_hash_init() to do so." ] pub fn av_hash_alloc ( ctx : * mut * mut AVHashContext , name : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { # [ doc = " Get the names of available hash algorithms." ] # [ doc = "" ] # [ doc = " This function can be used to enumerate the algorithms." ] # [ doc = "" ] # [ doc = " @param[in] i  Index of the hash algorithm, starting from 0" ] # [ doc = " @return       Pointer to a static string or `NULL` if `i` is out of range" ] pub fn av_hash_names ( i : libc :: c_int ) -> * const libc :: c_char ; } extern "C" { # [ doc = " Get the name of the algorithm corresponding to the given hash context." ] pub fn av_hash_get_name ( ctx : * const AVHashContext ) -> * const libc :: c_char ; } extern "C" { # [ doc = " Get the size of the resulting hash value in bytes." ] # [ doc = "" ] # [ doc = " The maximum value this function will currently return is available as macro" ] # [ doc = " #AV_HASH_MAX_SIZE." ] # [ doc = "" ] # [ doc = " @param[in]     ctx Hash context" ] # [ doc = " @return            Size of the hash value in bytes" ] pub fn av_hash_get_size ( ctx : * const AVHashContext ) -> libc :: c_int ; } extern "C" { # [ doc = " Initialize or reset a hash context." ] # [ doc = "" ] # [ doc = " @param[in,out] ctx Hash context" ] pub fn av_hash_init ( ctx : * mut AVHashContext ) ; } extern "C" { pub fn av_hash_update ( ctx : * mut AVHashContext , src : * const u8 , len : libc :: c_int ) ; } extern "C" { # [ doc = " Finalize a hash context and compute the actual hash value." ] # [ doc = "" ] # [ doc = " The minimum size of `dst` buffer is given by av_hash_get_size() or" ] # [ doc = " #AV_HASH_MAX_SIZE. The use of the latter macro is discouraged." ] # [ doc = "" ] # [ doc = " It is not safe to update or finalize a hash context again, if it has already" ] # [ doc = " been finalized." ] # [ doc = "" ] # [ doc = " @param[in,out] ctx Hash context" ] # [ doc = " @param[out]    dst Where the final hash value will be stored" ] # [ doc = "" ] # [ doc = " @see av_hash_final_bin() provides an alternative API" ] pub fn av_hash_final ( ctx : * mut AVHashContext , dst : * mut u8 ) ; } extern "C" { # [ doc = " Finalize a hash context and store the actual hash value in a buffer." ] # [ doc = "" ] # [ doc = " It is not safe to update or finalize a hash context again, if it has already" ] # [ doc = " been finalized." ] # [ doc = "" ] # [ doc = " If `size` is smaller than the hash size (given by av_hash_get_size()), the" ] # [ doc = " hash is truncated; if size is larger, the buffer is padded with 0." ] # [ doc = "" ] # [ doc = " @param[in,out] ctx  Hash context" ] # [ doc = " @param[out]    dst  Where the final hash value will be stored" ] # [ doc = " @param[in]     size Number of bytes to write to `dst`" ] pub fn av_hash_final_bin ( ctx : * mut AVHashContext , dst : * mut u8 , size : libc :: c_int ) ; } extern "C" { # [ doc = " Finalize a hash context and store the hexadecimal representation of the" ] # [ doc = " actual hash value as a string." ] # [ doc = "" ] # [ doc = " It is not safe to update or finalize a hash context again, if it has already" ] # [ doc = " been finalized." ] # [ doc = "" ] # [ doc = " The string is always 0-terminated." ] # [ doc = "" ] # [ doc = " If `size` is smaller than `2 * hash_size + 1`, where `hash_size` is the" ] # [ doc = " value returned by av_hash_get_size(), the string will be truncated." ] # [ doc = "" ] # [ doc = " @param[in,out] ctx  Hash context" ] # [ doc = " @param[out]    dst  Where the string will be stored" ] # [ doc = " @param[in]     size Maximum number of bytes to write to `dst`" ] pub fn av_hash_final_hex ( ctx : * mut AVHashContext , dst : * mut u8 , size : libc :: c_int ) ; } extern "C" { # [ doc = " Finalize a hash context and store the Base64 representation of the" ] # [ doc = " actual hash value as a string." ] # [ doc = "" ] # [ doc = " It is not safe to update or finalize a hash context again, if it has already" ] # [ doc = " been finalized." ] # [ doc = "" ] # [ doc = " The string is always 0-terminated." ] # [ doc = "" ] # [ doc = " If `size` is smaller than AV_BASE64_SIZE(hash_size), where `hash_size` is" ] # [ doc = " the value returned by av_hash_get_size(), the string will be truncated." ] # [ doc = "" ] # [ doc = " @param[in,out] ctx  Hash context" ] # [ doc = " @param[out]    dst  Where the final hash value will be stored" ] # [ doc = " @param[in]     size Maximum number of bytes to write to `dst`" ] pub fn av_hash_final_b64 ( ctx : * mut AVHashContext , dst : * mut u8 , size : libc :: c_int ) ; } extern "C" { # [ doc = " Free hash context and set hash context pointer to `NULL`." ] # [ doc = "" ] # [ doc = " @param[in,out] ctx  Pointer to hash context" ] pub fn av_hash_freep ( ctx : * mut * mut AVHashContext ) ; } # [ repr ( u32 ) ] # [ doc = " @defgroup lavu_hmac HMAC" ] # [ doc = " @ingroup lavu_crypto" ] # [ doc = " @{" ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVHMACType { AV_HMAC_MD5 = 0 , AV_HMAC_SHA1 = 1 , AV_HMAC_SHA224 = 2 , AV_HMAC_SHA256 = 3 , AV_HMAC_SHA384 = 4 , AV_HMAC_SHA512 = 5 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVHMAC { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Allocate an AVHMAC context." ] # [ doc = " @param type The hash function used for the HMAC." ] pub fn av_hmac_alloc ( type_ : AVHMACType ) -> * mut AVHMAC ; } extern "C" { # [ doc = " Free an AVHMAC context." ] # [ doc = " @param ctx The context to free, may be NULL" ] pub fn av_hmac_free ( ctx : * mut AVHMAC ) ; } extern "C" { # [ doc = " Initialize an AVHMAC context with an authentication key." ] # [ doc = " @param ctx    The HMAC context" ] # [ doc = " @param key    The authentication key" ] # [ doc = " @param keylen The length of the key, in bytes" ] pub fn av_hmac_init ( ctx : * mut AVHMAC , key : * const u8 , keylen : libc :: c_uint ) ; } extern "C" { # [ doc = " Hash data with the HMAC." ] # [ doc = " @param ctx  The HMAC context" ] # [ doc = " @param data The data to hash" ] # [ doc = " @param len  The length of the data, in bytes" ] pub fn av_hmac_update ( ctx : * mut AVHMAC , data : * const u8 , len : libc :: c_uint ) ; } extern "C" { # [ doc = " Finish hashing and output the HMAC digest." ] # [ doc = " @param ctx    The HMAC context" ] # [ doc = " @param out    The output buffer to write the digest into" ] # [ doc = " @param outlen The length of the out buffer, in bytes" ] # [ doc = " @return       The number of bytes written to out, or a negative error code." ] pub fn av_hmac_final ( ctx : * mut AVHMAC , out : * mut u8 , outlen : libc :: c_uint ) -> libc :: c_int ; } extern "C" { # [ doc = " Hash an array of data with a key." ] # [ doc = " @param ctx    The HMAC context" ] # [ doc = " @param data   The data to hash" ] # [ doc = " @param len    The length of the data, in bytes" ] # [ doc = " @param key    The authentication key" ] # [ doc = " @param keylen The length of the key, in bytes" ] # [ doc = " @param out    The output buffer to write the digest into" ] # [ doc = " @param outlen The length of the out buffer, in bytes" ] # [ doc = " @return       The number of bytes written to out, or a negative error code." ] pub fn av_hmac_calc ( ctx : * mut AVHMAC , data : * const u8 , len : libc :: c_uint , key : * const u8 , keylen : libc :: c_uint , out : * mut u8 , outlen : libc :: c_uint ) -> libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVComponentDescriptor { # [ doc = " Which of the 4 planes contains the component." ] pub plane : libc :: c_int , # [ doc = " Number of elements between 2 horizontally consecutive pixels." ] # [ doc = " Elements are bits for bitstream formats, bytes otherwise." ] pub step : libc :: c_int , # [ doc = " Number of elements before the component of the first pixel." ] # [ doc = " Elements are bits for bitstream formats, bytes otherwise." ] pub offset : libc :: c_int , # [ doc = " Number of least significant bits that must be shifted away" ] # [ doc = " to get the value." ] pub shift : libc :: c_int , # [ doc = " Number of bits in the component." ] pub depth : libc :: c_int , # [ doc = " deprecated, use step instead" ] pub step_minus1 : libc :: c_int , # [ doc = " deprecated, use depth instead" ] pub depth_minus1 : libc :: c_int , # [ doc = " deprecated, use offset instead" ] pub offset_plus1 : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVComponentDescriptor ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVComponentDescriptor > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( AVComponentDescriptor ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVComponentDescriptor > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( AVComponentDescriptor ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVComponentDescriptor > ( ) ) ) . plane as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVComponentDescriptor ) , "::" , stringify ! ( plane ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVComponentDescriptor > ( ) ) ) . step as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVComponentDescriptor ) , "::" , stringify ! ( step ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVComponentDescriptor > ( ) ) ) . offset as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVComponentDescriptor ) , "::" , stringify ! ( offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVComponentDescriptor > ( ) ) ) . shift as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVComponentDescriptor ) , "::" , stringify ! ( shift ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVComponentDescriptor > ( ) ) ) . depth as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVComponentDescriptor ) , "::" , stringify ! ( depth ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVComponentDescriptor > ( ) ) ) . step_minus1 as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( AVComponentDescriptor ) , "::" , stringify ! ( step_minus1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVComponentDescriptor > ( ) ) ) . depth_minus1 as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVComponentDescriptor ) , "::" , stringify ! ( depth_minus1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVComponentDescriptor > ( ) ) ) . offset_plus1 as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( AVComponentDescriptor ) , "::" , stringify ! ( offset_plus1 ) ) ) ; } # [ doc = " Descriptor that unambiguously describes how the bits of a pixel are" ] # [ doc = " stored in the up to 4 data planes of an image. It also stores the" ] # [ doc = " subsampling factors and number of components." ] # [ doc = "" ] # [ doc = " @note This is separate of the colorspace (RGB, YCbCr, YPbPr, JPEG-style YUV" ] # [ doc = "       and all the YUV variants) AVPixFmtDescriptor just stores how values" ] # [ doc = "       are stored not what these values represent." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVPixFmtDescriptor { pub name : * const libc :: c_char , # [ doc = "< The number of components each pixel has, (1-4)" ] pub nb_components : u8 , # [ doc = " Amount to shift the luma width right to find the chroma width." ] # [ doc = " For YV12 this is 1 for example." ] # [ doc = " chroma_width = AV_CEIL_RSHIFT(luma_width, log2_chroma_w)" ] # [ doc = " The note above is needed to ensure rounding up." ] # [ doc = " This value only refers to the chroma components." ] pub log2_chroma_w : u8 , # [ doc = " Amount to shift the luma height right to find the chroma height." ] # [ doc = " For YV12 this is 1 for example." ] # [ doc = " chroma_height= AV_CEIL_RSHIFT(luma_height, log2_chroma_h)" ] # [ doc = " The note above is needed to ensure rounding up." ] # [ doc = " This value only refers to the chroma components." ] pub log2_chroma_h : u8 , # [ doc = " Combination of AV_PIX_FMT_FLAG_... flags." ] pub flags : u64 , # [ doc = " Parameters that describe how pixels are packed." ] # [ doc = " If the format has 1 or 2 components, then luma is 0." ] # [ doc = " If the format has 3 or 4 components:" ] # [ doc = "   if the RGB flag is set then 0 is red, 1 is green and 2 is blue;" ] # [ doc = "   otherwise 0 is luma, 1 is chroma-U and 2 is chroma-V." ] # [ doc = "" ] # [ doc = " If present, the Alpha channel is always the last component." ] pub comp : [ AVComponentDescriptor ; 4usize ] , # [ doc = " Alternative comma-separated names." ] pub alias : * const libc :: c_char , } # [ test ] fn bindgen_test_layout_AVPixFmtDescriptor ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVPixFmtDescriptor > ( ) , 160usize , concat ! ( "Size of: " , stringify ! ( AVPixFmtDescriptor ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVPixFmtDescriptor > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVPixFmtDescriptor ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPixFmtDescriptor > ( ) ) ) . name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVPixFmtDescriptor ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPixFmtDescriptor > ( ) ) ) . nb_components as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVPixFmtDescriptor ) , "::" , stringify ! ( nb_components ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPixFmtDescriptor > ( ) ) ) . log2_chroma_w as * const _ as usize } , 9usize , concat ! ( "Offset of field: " , stringify ! ( AVPixFmtDescriptor ) , "::" , stringify ! ( log2_chroma_w ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPixFmtDescriptor > ( ) ) ) . log2_chroma_h as * const _ as usize } , 10usize , concat ! ( "Offset of field: " , stringify ! ( AVPixFmtDescriptor ) , "::" , stringify ! ( log2_chroma_h ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPixFmtDescriptor > ( ) ) ) . flags as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVPixFmtDescriptor ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPixFmtDescriptor > ( ) ) ) . comp as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVPixFmtDescriptor ) , "::" , stringify ! ( comp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVPixFmtDescriptor > ( ) ) ) . alias as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( AVPixFmtDescriptor ) , "::" , stringify ! ( alias ) ) ) ; } extern "C" { # [ doc = " Return the number of bits per pixel used by the pixel format" ] # [ doc = " described by pixdesc. Note that this is not the same as the number" ] # [ doc = " of bits per sample." ] # [ doc = "" ] # [ doc = " The returned number of bits refers to the number of bits actually" ] # [ doc = " used for storing the pixel information, that is padding bits are" ] # [ doc = " not counted." ] pub fn av_get_bits_per_pixel ( pixdesc : * const AVPixFmtDescriptor ) -> libc :: c_int ; } extern "C" { # [ doc = " Return the number of bits per pixel for the pixel format" ] # [ doc = " described by pixdesc, including any padding or unused bits." ] pub fn av_get_padded_bits_per_pixel ( pixdesc : * const AVPixFmtDescriptor ) -> libc :: c_int ; } extern "C" { # [ doc = " @return a pixel format descriptor for provided pixel format or NULL if" ] # [ doc = " this pixel format is unknown." ] pub fn av_pix_fmt_desc_get ( pix_fmt : AVPixelFormat ) -> * const AVPixFmtDescriptor ; } extern "C" { # [ doc = " Iterate over all pixel format descriptors known to libavutil." ] # [ 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 av_pix_fmt_desc_next ( prev : * const AVPixFmtDescriptor ) -> * const AVPixFmtDescriptor ; } extern "C" { # [ doc = " @return an AVPixelFormat id described by desc, or AV_PIX_FMT_NONE if desc" ] # [ doc = " is not a valid pointer to a pixel format descriptor." ] pub fn av_pix_fmt_desc_get_id ( desc : * const AVPixFmtDescriptor ) -> AVPixelFormat ; } extern "C" { # [ doc = " Utility function to access log2_chroma_w log2_chroma_h from" ] # [ doc = " the pixel format AVPixFmtDescriptor." ] # [ doc = "" ] # [ doc = " @param[in]  pix_fmt the pixel format" ] # [ doc = " @param[out] h_shift store log2_chroma_w (horizontal/width shift)" ] # [ doc = " @param[out] v_shift store log2_chroma_h (vertical/height shift)" ] # [ doc = "" ] # [ doc = " @return 0 on success, AVERROR(ENOSYS) on invalid or unknown pixel format" ] pub fn av_pix_fmt_get_chroma_sub_sample ( pix_fmt : AVPixelFormat , h_shift : * mut libc :: c_int , v_shift : * mut libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " @return number of planes in pix_fmt, a negative AVERROR if pix_fmt is not a" ] # [ doc = " valid pixel format." ] pub fn av_pix_fmt_count_planes ( pix_fmt : AVPixelFormat ) -> libc :: c_int ; } extern "C" { # [ doc = " @return the name for provided color range or NULL if unknown." ] pub fn av_color_range_name ( range : AVColorRange ) -> * const libc :: c_char ; } extern "C" { # [ doc = " @return the AVColorRange value for name or an AVError if not found." ] pub fn av_color_range_from_name ( name : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { # [ doc = " @return the name for provided color primaries or NULL if unknown." ] pub fn av_color_primaries_name ( primaries : AVColorPrimaries ) -> * const libc :: c_char ; } extern "C" { # [ doc = " @return the AVColorPrimaries value for name or an AVError if not found." ] pub fn av_color_primaries_from_name ( name : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { # [ doc = " @return the name for provided color transfer or NULL if unknown." ] pub fn av_color_transfer_name ( transfer : AVColorTransferCharacteristic ) -> * const libc :: c_char ; } extern "C" { # [ doc = " @return the AVColorTransferCharacteristic value for name or an AVError if not found." ] pub fn av_color_transfer_from_name ( name : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { # [ doc = " @return the name for provided color space or NULL if unknown." ] pub fn av_color_space_name ( space : AVColorSpace ) -> * const libc :: c_char ; } extern "C" { # [ doc = " @return the AVColorSpace value for name or an AVError if not found." ] pub fn av_color_space_from_name ( name : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { # [ doc = " @return the name for provided chroma location or NULL if unknown." ] pub fn av_chroma_location_name ( location : AVChromaLocation ) -> * const libc :: c_char ; } extern "C" { # [ doc = " @return the AVChromaLocation value for name or an AVError if not found." ] pub fn av_chroma_location_from_name ( name : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { # [ doc = " Return the pixel format corresponding to name." ] # [ doc = "" ] # [ doc = " If there is no pixel format with name name, then looks for a" ] # [ doc = " pixel format with the name corresponding to the native endian" ] # [ doc = " format of name." ] # [ doc = " For example in a little-endian system, first looks for \"gray16\"," ] # [ doc = " then for \"gray16le\"." ] # [ doc = "" ] # [ doc = " Finally if no pixel format has been found, returns AV_PIX_FMT_NONE." ] pub fn av_get_pix_fmt ( name : * const libc :: c_char ) -> AVPixelFormat ; } extern "C" { # [ doc = " Return the short name for a pixel format, NULL in case pix_fmt is" ] # [ doc = " unknown." ] # [ doc = "" ] # [ doc = " @see av_get_pix_fmt(), av_get_pix_fmt_string()" ] pub fn av_get_pix_fmt_name ( pix_fmt : AVPixelFormat ) -> * const libc :: c_char ; } extern "C" { # [ doc = " Print in buf the string corresponding to the pixel format with" ] # [ doc = " number pix_fmt, or a header if pix_fmt is negative." ] # [ doc = "" ] # [ doc = " @param buf the buffer where to write the string" ] # [ doc = " @param buf_size the size of buf" ] # [ doc = " @param pix_fmt the number of the pixel format to print the" ] # [ doc = " corresponding info string, or a negative value to print the" ] # [ doc = " corresponding header." ] pub fn av_get_pix_fmt_string ( buf : * mut libc :: c_char , buf_size : libc :: c_int , pix_fmt : AVPixelFormat ) -> * mut libc :: c_char ; } extern "C" { # [ doc = " Read a line from an image, and write the values of the" ] # [ doc = " pixel format component c to dst." ] # [ doc = "" ] # [ doc = " @param data the array containing the pointers to the planes of the image" ] # [ doc = " @param linesize the array containing the linesizes of the image" ] # [ doc = " @param desc the pixel format descriptor for the image" ] # [ doc = " @param x the horizontal coordinate of the first pixel to read" ] # [ doc = " @param y the vertical coordinate of the first pixel to read" ] # [ doc = " @param w the width of the line to read, that is the number of" ] # [ doc = " values to write to dst" ] # [ doc = " @param read_pal_component if not zero and the format is a paletted" ] # [ doc = " format writes the values corresponding to the palette" ] # [ doc = " component c in data[1] to dst, rather than the palette indexes in" ] # [ doc = " data[0]. The behavior is undefined if the format is not paletted." ] # [ doc = " @param dst_element_size size of elements in dst array (2 or 4 byte)" ] pub fn av_read_image_line2 ( dst : * mut libc :: c_void , data : * mut * const u8 , linesize : * const libc :: c_int , desc : * const AVPixFmtDescriptor , x : libc :: c_int , y : libc :: c_int , c : libc :: c_int , w : libc :: c_int , read_pal_component : libc :: c_int , dst_element_size : libc :: c_int ) ; } extern "C" { pub fn av_read_image_line ( dst : * mut u16 , data : * mut * const u8 , linesize : * const libc :: c_int , desc : * const AVPixFmtDescriptor , x : libc :: c_int , y : libc :: c_int , c : libc :: c_int , w : libc :: c_int , read_pal_component : libc :: c_int ) ; } extern "C" { # [ doc = " Write the values from src to the pixel format component c of an" ] # [ doc = " image line." ] # [ doc = "" ] # [ doc = " @param src array containing the values to write" ] # [ doc = " @param data the array containing the pointers to the planes of the" ] # [ doc = " image to write into. It is supposed to be zeroed." ] # [ doc = " @param linesize the array containing the linesizes of the image" ] # [ doc = " @param desc the pixel format descriptor for the image" ] # [ doc = " @param x the horizontal coordinate of the first pixel to write" ] # [ doc = " @param y the vertical coordinate of the first pixel to write" ] # [ doc = " @param w the width of the line to write, that is the number of" ] # [ doc = " values to write to the image line" ] # [ doc = " @param src_element_size size of elements in src array (2 or 4 byte)" ] pub fn av_write_image_line2 ( src : * const libc :: c_void , data : * mut * mut u8 , linesize : * const libc :: c_int , desc : * const AVPixFmtDescriptor , x : libc :: c_int , y : libc :: c_int , c : libc :: c_int , w : libc :: c_int , src_element_size : libc :: c_int ) ; } extern "C" { pub fn av_write_image_line ( src : * const u16 , data : * mut * mut u8 , linesize : * const libc :: c_int , desc : * const AVPixFmtDescriptor , x : libc :: c_int , y : libc :: c_int , c : libc :: c_int , w : libc :: c_int ) ; } extern "C" { # [ doc = " Utility function to swap the endianness of a pixel format." ] # [ doc = "" ] # [ doc = " @param[in]  pix_fmt the pixel format" ] # [ doc = "" ] # [ doc = " @return pixel format with swapped endianness if it exists," ] # [ doc = " otherwise AV_PIX_FMT_NONE" ] pub fn av_pix_fmt_swap_endianness ( pix_fmt : AVPixelFormat ) -> AVPixelFormat ; } extern "C" { # [ doc = " Compute what kind of losses will occur when converting from one specific" ] # [ doc = " pixel format to another." ] # [ doc = " When converting from one pixel format to another, information loss may occur." ] # [ doc = " For example, when converting from RGB24 to GRAY, the color information will" ] # [ doc = " be lost. Similarly, other losses occur when converting from some formats to" ] # [ doc = " other formats. These losses can involve loss of chroma, but also loss of" ] # [ doc = " resolution, loss of color depth, loss due to the color space conversion, loss" ] # [ doc = " of the alpha bits or loss due to color quantization." ] # [ doc = " av_get_fix_fmt_loss() informs you about the various types of losses" ] # [ doc = " which will occur when converting from one pixel format to another." ] # [ doc = "" ] # [ doc = " @param[in] dst_pix_fmt destination pixel format" ] # [ doc = " @param[in] src_pix_fmt source pixel format" ] # [ doc = " @param[in] has_alpha Whether the source pixel format alpha channel is used." ] # [ doc = " @return Combination of flags informing you what kind of losses will occur" ] # [ doc = " (maximum loss for an invalid dst_pix_fmt)." ] pub fn av_get_pix_fmt_loss ( dst_pix_fmt : AVPixelFormat , src_pix_fmt : AVPixelFormat , has_alpha : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Compute what kind of losses will occur when converting from one specific" ] # [ doc = " pixel format to another." ] # [ doc = " When converting from one pixel format to another, information loss may occur." ] # [ doc = " For example, when converting from RGB24 to GRAY, the color information will" ] # [ doc = " be lost. Similarly, other losses occur when converting from some formats to" ] # [ doc = " other formats. These losses can involve loss of chroma, but also loss of" ] # [ doc = " resolution, loss of color depth, loss due to the color space conversion, loss" ] # [ doc = " of the alpha bits or loss due to color quantization." ] # [ doc = " av_get_fix_fmt_loss() informs you about the various types of losses" ] # [ doc = " which will occur when converting from one pixel format to another." ] # [ doc = "" ] # [ doc = " @param[in] dst_pix_fmt destination pixel format" ] # [ doc = " @param[in] src_pix_fmt source pixel format" ] # [ doc = " @param[in] has_alpha Whether the source pixel format alpha channel is used." ] # [ doc = " @return Combination of flags informing you what kind of losses will occur" ] # [ doc = " (maximum loss for an invalid dst_pix_fmt)." ] pub fn av_find_best_pix_fmt_of_2 ( dst_pix_fmt1 : AVPixelFormat , dst_pix_fmt2 : AVPixelFormat , src_pix_fmt : AVPixelFormat , has_alpha : libc :: c_int , loss_ptr : * mut libc :: c_int ) -> AVPixelFormat ; } extern "C" { # [ doc = " Compute the max pixel step for each plane of an image with a" ] # [ doc = " format described by pixdesc." ] # [ doc = "" ] # [ doc = " The pixel step is the distance in bytes between the first byte of" ] # [ doc = " the group of bytes which describe a pixel component and the first" ] # [ doc = " byte of the successive group in the same plane for the same" ] # [ doc = " component." ] # [ doc = "" ] # [ doc = " @param max_pixsteps an array which is filled with the max pixel step" ] # [ doc = " for each plane. Since a plane may contain different pixel" ] # [ doc = " components, the computed max_pixsteps[plane] is relative to the" ] # [ doc = " component in the plane with the max pixel step." ] # [ doc = " @param max_pixstep_comps an array which is filled with the component" ] # [ doc = " for each plane which has the max pixel step. May be NULL." ] pub fn av_image_fill_max_pixsteps ( max_pixsteps : * mut libc :: c_int , max_pixstep_comps : * mut libc :: c_int , pixdesc : * const AVPixFmtDescriptor ) ; } extern "C" { # [ doc = " Compute the size of an image line with format pix_fmt and width" ] # [ doc = " width for the plane plane." ] # [ doc = "" ] # [ doc = " @return the computed size in bytes" ] pub fn av_image_get_linesize ( pix_fmt : AVPixelFormat , width : libc :: c_int , plane : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Fill plane linesizes for an image with pixel format pix_fmt and" ] # [ doc = " width width." ] # [ doc = "" ] # [ doc = " @param linesizes array to be filled with the linesize for each plane" ] # [ doc = " @return >= 0 in case of success, a negative error code otherwise" ] pub fn av_image_fill_linesizes ( linesizes : * mut libc :: c_int , pix_fmt : AVPixelFormat , width : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Fill plane data pointers for an image with pixel format pix_fmt and" ] # [ doc = " height height." ] # [ doc = "" ] # [ doc = " @param data pointers array to be filled with the pointer for each image plane" ] # [ doc = " @param ptr the pointer to a buffer which will contain the image" ] # [ doc = " @param linesizes the array containing the linesize for each" ] # [ doc = " plane, should be filled by av_image_fill_linesizes()" ] # [ doc = " @return the size in bytes required for the image buffer, a negative" ] # [ doc = " error code in case of failure" ] pub fn av_image_fill_pointers ( data : * mut * mut u8 , pix_fmt : AVPixelFormat , height : libc :: c_int , ptr : * mut u8 , linesizes : * const libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Allocate an image with size w and h and pixel format pix_fmt, and" ] # [ doc = " fill pointers and linesizes accordingly." ] # [ doc = " The allocated image buffer has to be freed by using" ] # [ doc = " av_freep(&pointers[0])." ] # [ doc = "" ] # [ doc = " @param align the value to use for buffer size alignment" ] # [ doc = " @return the size in bytes required for the image buffer, a negative" ] # [ doc = " error code in case of failure" ] pub fn av_image_alloc ( pointers : * mut * mut u8 , linesizes : * mut libc :: c_int , w : libc :: c_int , h : libc :: c_int , pix_fmt : AVPixelFormat , align : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Copy image plane from src to dst." ] # [ doc = " That is, copy \"height\" number of lines of \"bytewidth\" bytes each." ] # [ doc = " The first byte of each successive line is separated by *_linesize" ] # [ doc = " bytes." ] # [ doc = "" ] # [ doc = " bytewidth must be contained by both absolute values of dst_linesize" ] # [ doc = " and src_linesize, otherwise the function behavior is undefined." ] # [ doc = "" ] # [ doc = " @param dst_linesize linesize for the image plane in dst" ] # [ doc = " @param src_linesize linesize for the image plane in src" ] pub fn av_image_copy_plane ( dst : * mut u8 , dst_linesize : libc :: c_int , src : * const u8 , src_linesize : libc :: c_int , bytewidth : libc :: c_int , height : libc :: c_int ) ; } extern "C" { # [ doc = " Copy image in src_data to dst_data." ] # [ doc = "" ] # [ doc = " @param dst_linesizes linesizes for the image in dst_data" ] # [ doc = " @param src_linesizes linesizes for the image in src_data" ] pub fn av_image_copy ( dst_data : * mut * mut u8 , dst_linesizes : * mut libc :: c_int , src_data : * mut * const u8 , src_linesizes : * const libc :: c_int , pix_fmt : AVPixelFormat , width : libc :: c_int , height : libc :: c_int ) ; } extern "C" { # [ doc = " Copy image data located in uncacheable (e.g. GPU mapped) memory. Where" ] # [ doc = " available, this function will use special functionality for reading from such" ] # [ doc = " memory, which may result in greatly improved performance compared to plain" ] # [ doc = " av_image_copy()." ] # [ doc = "" ] # [ doc = " The data pointers and the linesizes must be aligned to the maximum required" ] # [ doc = " by the CPU architecture." ] # [ doc = "" ] # [ doc = " @note The linesize parameters have the type ptrdiff_t here, while they are" ] # [ doc = "       int for av_image_copy()." ] # [ doc = " @note On x86, the linesizes currently need to be aligned to the cacheline" ] # [ doc = "       size (i.e. 64) to get improved performance." ] pub fn av_image_copy_uc_from ( dst_data : * mut * mut u8 , dst_linesizes : * const isize , src_data : * mut * const u8 , src_linesizes : * const isize , pix_fmt : AVPixelFormat , width : libc :: c_int , height : libc :: c_int ) ; } extern "C" { # [ doc = " Setup the data pointers and linesizes based on the specified image" ] # [ doc = " parameters and the provided array." ] # [ doc = "" ] # [ doc = " The fields of the given image are filled in by using the src" ] # [ doc = " address which points to the image data buffer. Depending on the" ] # [ doc = " specified pixel format, one or multiple image data pointers and" ] # [ doc = " line sizes will be set.  If a planar format is specified, several" ] # [ doc = " pointers will be set pointing to the different picture planes and" ] # [ doc = " the line sizes of the different planes will be stored in the" ] # [ doc = " lines_sizes array. Call with src == NULL to get the required" ] # [ doc = " size for the src buffer." ] # [ doc = "" ] # [ doc = " To allocate the buffer and fill in the dst_data and dst_linesize in" ] # [ doc = " one call, use av_image_alloc()." ] # [ doc = "" ] # [ doc = " @param dst_data      data pointers to be filled in" ] # [ doc = " @param dst_linesize  linesizes for the image in dst_data to be filled in" ] # [ doc = " @param src           buffer which will contain or contains the actual image data, can be NULL" ] # [ doc = " @param pix_fmt       the pixel format of the image" ] # [ doc = " @param width         the width of the image in pixels" ] # [ doc = " @param height        the height of the image in pixels" ] # [ doc = " @param align         the value used in src for linesize alignment" ] # [ doc = " @return the size in bytes required for src, a negative error code" ] # [ doc = " in case of failure" ] pub fn av_image_fill_arrays ( dst_data : * mut * mut u8 , dst_linesize : * mut libc :: c_int , src : * const u8 , pix_fmt : AVPixelFormat , width : libc :: c_int , height : libc :: c_int , align : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Return the size in bytes of the amount of data required to store an" ] # [ doc = " image with the given parameters." ] # [ doc = "" ] # [ doc = " @param pix_fmt  the pixel format of the image" ] # [ doc = " @param width    the width of the image in pixels" ] # [ doc = " @param height   the height of the image in pixels" ] # [ doc = " @param align    the assumed linesize alignment" ] # [ doc = " @return the buffer size in bytes, a negative error code in case of failure" ] pub fn av_image_get_buffer_size ( pix_fmt : AVPixelFormat , width : libc :: c_int , height : libc :: c_int , align : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Copy image data from an image into a buffer." ] # [ doc = "" ] # [ doc = " av_image_get_buffer_size() can be used to compute the required size" ] # [ doc = " for the buffer to fill." ] # [ doc = "" ] # [ doc = " @param dst           a buffer into which picture data will be copied" ] # [ doc = " @param dst_size      the size in bytes of dst" ] # [ doc = " @param src_data      pointers containing the source image data" ] # [ doc = " @param src_linesize  linesizes for the image in src_data" ] # [ doc = " @param pix_fmt       the pixel format of the source image" ] # [ doc = " @param width         the width of the source image in pixels" ] # [ doc = " @param height        the height of the source image in pixels" ] # [ doc = " @param align         the assumed linesize alignment for dst" ] # [ doc = " @return the number of bytes written to dst, or a negative value" ] # [ doc = " (error code) on error" ] pub fn av_image_copy_to_buffer ( dst : * mut u8 , dst_size : libc :: c_int , src_data : * const * const u8 , src_linesize : * const libc :: c_int , pix_fmt : AVPixelFormat , width : libc :: c_int , height : libc :: c_int , align : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Check if the given dimension of an image is valid, meaning that all" ] # [ doc = " bytes of the image can be addressed with a signed int." ] # [ doc = "" ] # [ doc = " @param w the width of the picture" ] # [ doc = " @param h the height of the picture" ] # [ doc = " @param log_offset the offset to sum to the log level for logging with log_ctx" ] # [ doc = " @param log_ctx the parent logging context, it may be NULL" ] # [ doc = " @return >= 0 if valid, a negative error code otherwise" ] pub fn av_image_check_size ( w : libc :: c_uint , h : libc :: c_uint , log_offset : libc :: c_int , log_ctx : * mut libc :: c_void ) -> libc :: c_int ; } extern "C" { # [ doc = " Check if the given dimension of an image is valid, meaning that all" ] # [ doc = " bytes of a plane of an image with the specified pix_fmt can be addressed" ] # [ doc = " with a signed int." ] # [ doc = "" ] # [ doc = " @param w the width of the picture" ] # [ doc = " @param h the height of the picture" ] # [ doc = " @param max_pixels the maximum number of pixels the user wants to accept" ] # [ doc = " @param pix_fmt the pixel format, can be AV_PIX_FMT_NONE if unknown." ] # [ doc = " @param log_offset the offset to sum to the log level for logging with log_ctx" ] # [ doc = " @param log_ctx the parent logging context, it may be NULL" ] # [ doc = " @return >= 0 if valid, a negative error code otherwise" ] pub fn av_image_check_size2 ( w : libc :: c_uint , h : libc :: c_uint , max_pixels : i64 , pix_fmt : AVPixelFormat , log_offset : libc :: c_int , log_ctx : * mut libc :: c_void ) -> libc :: c_int ; } extern "C" { # [ doc = " Check if the given sample aspect ratio of an image is valid." ] # [ doc = "" ] # [ doc = " It is considered invalid if the denominator is 0 or if applying the ratio" ] # [ doc = " to the image size would make the smaller dimension less than 1. If the" ] # [ doc = " sar numerator is 0, it is considered unknown and will return as valid." ] # [ doc = "" ] # [ doc = " @param w width of the image" ] # [ doc = " @param h height of the image" ] # [ doc = " @param sar sample aspect ratio of the image" ] # [ doc = " @return 0 if valid, a negative AVERROR code otherwise" ] pub fn av_image_check_sar ( w : libc :: c_uint , h : libc :: c_uint , sar : AVRational ) -> libc :: c_int ; } extern "C" { # [ doc = " Overwrite the image data with black. This is suitable for filling a" ] # [ doc = " sub-rectangle of an image, meaning the padding between the right most pixel" ] # [ doc = " and the left most pixel on the next line will not be overwritten. For some" ] # [ doc = " formats, the image size might be rounded up due to inherent alignment." ] # [ doc = "" ] # [ doc = " If the pixel format has alpha, the alpha is cleared to opaque." ] # [ doc = "" ] # [ doc = " This can return an error if the pixel format is not supported. Normally, all" ] # [ doc = " non-hwaccel pixel formats should be supported." ] # [ doc = "" ] # [ doc = " Passing NULL for dst_data is allowed. Then the function returns whether the" ] # [ doc = " operation would have succeeded. (It can return an error if the pix_fmt is" ] # [ doc = " not supported.)" ] # [ doc = "" ] # [ doc = " @param dst_data      data pointers to destination image" ] # [ doc = " @param dst_linesize  linesizes for the destination image" ] # [ doc = " @param pix_fmt       the pixel format of the image" ] # [ doc = " @param range         the color range of the image (important for colorspaces such as YUV)" ] # [ doc = " @param width         the width of the image in pixels" ] # [ doc = " @param height        the height of the image in pixels" ] # [ doc = " @return 0 if the image data was cleared, a negative AVERROR code otherwise" ] pub fn av_image_fill_black ( dst_data : * mut * mut u8 , dst_linesize : * const isize , pix_fmt : AVPixelFormat , range : AVColorRange , width : libc :: c_int , height : libc :: c_int ) -> libc :: c_int ; } # [ doc = " Context structure for the Lagged Fibonacci PRNG." ] # [ doc = " The exact layout, types and content of this struct may change and should" ] # [ doc = " not be accessed directly. Only its sizeof() is guranteed to stay the same" ] # [ doc = " to allow easy instanciation." ] # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct AVLFG { pub state : [ libc :: c_uint ; 64usize ] , pub index : libc :: c_int , } # [ test ] fn bindgen_test_layout_AVLFG ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVLFG > ( ) , 260usize , concat ! ( "Size of: " , stringify ! ( AVLFG ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVLFG > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( AVLFG ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVLFG > ( ) ) ) . state as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVLFG ) , "::" , stringify ! ( state ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVLFG > ( ) ) ) . index as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( AVLFG ) , "::" , stringify ! ( index ) ) ) ; } extern "C" { pub fn av_lfg_init ( c : * mut AVLFG , seed : libc :: c_uint ) ; } extern "C" { # [ doc = " Seed the state of the ALFG using binary data." ] # [ doc = "" ] # [ doc = " Return value: 0 on success, negative value (AVERROR) on failure." ] pub fn av_lfg_init_from_data ( c : * mut AVLFG , data : * const u8 , length : libc :: c_uint ) -> libc :: c_int ; } extern "C" { # [ doc = " Get the next two numbers generated by a Box-Muller Gaussian" ] # [ doc = " generator using the random numbers issued by lfg." ] # [ doc = "" ] # [ doc = " @param out array where the two generated numbers are placed" ] pub fn av_bmg_get ( lfg : * mut AVLFG , out : * mut f64 ) ; } extern "C" { # [ doc = " @brief Decodes LZO 1x compressed data." ] # [ doc = " @param out output buffer" ] # [ doc = " @param outlen size of output buffer, number of bytes left are returned here" ] # [ doc = " @param in input buffer" ] # [ doc = " @param inlen size of input buffer, number of bytes left are returned here" ] # [ doc = " @return 0 on success, otherwise a combination of the error flags above" ] # [ doc = "" ] # [ doc = " Make sure all buffers are appropriately padded, in must provide" ] # [ doc = " AV_LZO_INPUT_PADDING, out must provide AV_LZO_OUTPUT_PADDING additional bytes." ] pub fn av_lzo1x_decode ( out : * mut libc :: c_void , outlen : * mut libc :: c_int , in_ : * const libc :: c_void , inlen : * mut libc :: c_int ) -> libc :: c_int ; } extern "C" { pub static av_md5_size : libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVMD5 { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Allocate an AVMD5 context." ] pub fn av_md5_alloc ( ) -> * mut AVMD5 ; } extern "C" { # [ doc = " Initialize MD5 hashing." ] # [ doc = "" ] # [ doc = " @param ctx pointer to the function context (of size av_md5_size)" ] pub fn av_md5_init ( ctx : * mut AVMD5 ) ; } extern "C" { pub fn av_md5_update ( ctx : * mut AVMD5 , src : * const u8 , len : libc :: c_int ) ; } extern "C" { # [ doc = " Finish hashing and output digest value." ] # [ doc = "" ] # [ doc = " @param ctx hash function context" ] # [ doc = " @param dst buffer where output digest value is stored" ] pub fn av_md5_final ( ctx : * mut AVMD5 , dst : * mut u8 ) ; } extern "C" { pub fn av_md5_sum ( dst : * mut u8 , src : * const u8 , len : libc :: c_int ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVMotionVector { # [ doc = " Where the current macroblock comes from; negative value when it comes" ] # [ doc = " from the past, positive value when it comes from the future." ] # [ doc = " XXX: set exact relative ref frame reference instead of a +/- 1 \"direction\"." ] pub source : i32 , # [ doc = " Width and height of the block." ] pub w : u8 , # [ doc = " Width and height of the block." ] pub h : u8 , # [ doc = " Absolute source position. Can be outside the frame area." ] pub src_x : i16 , # [ doc = " Absolute source position. Can be outside the frame area." ] pub src_y : i16 , # [ doc = " Absolute destination position. Can be outside the frame area." ] pub dst_x : i16 , # [ doc = " Absolute destination position. Can be outside the frame area." ] pub dst_y : i16 , # [ doc = " Extra flag information." ] # [ doc = " Currently unused." ] pub flags : u64 , # [ doc = " Motion vector" ] # [ doc = " src_x = dst_x + motion_x / motion_scale" ] # [ doc = " src_y = dst_y + motion_y / motion_scale" ] pub motion_x : i32 , # [ doc = " Motion vector" ] # [ doc = " src_x = dst_x + motion_x / motion_scale" ] # [ doc = " src_y = dst_y + motion_y / motion_scale" ] pub motion_y : i32 , pub motion_scale : u16 , } # [ test ] fn bindgen_test_layout_AVMotionVector ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVMotionVector > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( AVMotionVector ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVMotionVector > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( AVMotionVector ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVMotionVector > ( ) ) ) . source as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVMotionVector ) , "::" , stringify ! ( source ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVMotionVector > ( ) ) ) . w as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVMotionVector ) , "::" , stringify ! ( w ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVMotionVector > ( ) ) ) . h as * const _ as usize } , 5usize , concat ! ( "Offset of field: " , stringify ! ( AVMotionVector ) , "::" , stringify ! ( h ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVMotionVector > ( ) ) ) . src_x as * const _ as usize } , 6usize , concat ! ( "Offset of field: " , stringify ! ( AVMotionVector ) , "::" , stringify ! ( src_x ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVMotionVector > ( ) ) ) . src_y as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVMotionVector ) , "::" , stringify ! ( src_y ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVMotionVector > ( ) ) ) . dst_x as * const _ as usize } , 10usize , concat ! ( "Offset of field: " , stringify ! ( AVMotionVector ) , "::" , stringify ! ( dst_x ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVMotionVector > ( ) ) ) . dst_y as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVMotionVector ) , "::" , stringify ! ( dst_y ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVMotionVector > ( ) ) ) . flags as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVMotionVector ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVMotionVector > ( ) ) ) . motion_x as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( AVMotionVector ) , "::" , stringify ! ( motion_x ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVMotionVector > ( ) ) ) . motion_y as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( AVMotionVector ) , "::" , stringify ! ( motion_y ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVMotionVector > ( ) ) ) . motion_scale as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( AVMotionVector ) , "::" , stringify ! ( motion_scale ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVMurMur3 { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Allocate an AVMurMur3 hash context." ] # [ doc = "" ] # [ doc = " @return Uninitialized hash context or `NULL` in case of error" ] pub fn av_murmur3_alloc ( ) -> * mut AVMurMur3 ; } extern "C" { # [ doc = " Initialize or reinitialize an AVMurMur3 hash context with a seed." ] # [ doc = "" ] # [ doc = " @param[out] c    Hash context" ] # [ doc = " @param[in]  seed Random seed" ] # [ doc = "" ] # [ doc = " @see av_murmur3_init()" ] # [ doc = " @see @ref lavu_murmur3_seedinfo \"Detailed description\" on a discussion of" ] # [ doc = " seeds for MurmurHash3." ] pub fn av_murmur3_init_seeded ( c : * mut AVMurMur3 , seed : u64 ) ; } extern "C" { # [ doc = " Initialize or reinitialize an AVMurMur3 hash context." ] # [ doc = "" ] # [ doc = " Equivalent to av_murmur3_init_seeded() with a built-in seed." ] # [ doc = "" ] # [ doc = " @param[out] c    Hash context" ] # [ doc = "" ] # [ doc = " @see av_murmur3_init_seeded()" ] # [ doc = " @see @ref lavu_murmur3_seedinfo \"Detailed description\" on a discussion of" ] # [ doc = " seeds for MurmurHash3." ] pub fn av_murmur3_init ( c : * mut AVMurMur3 ) ; } extern "C" { pub fn av_murmur3_update ( c : * mut AVMurMur3 , src : * const u8 , len : libc :: c_int ) ; } extern "C" { # [ doc = " Finish hashing and output digest value." ] # [ doc = "" ] # [ doc = " @param[in,out] c    Hash context" ] # [ doc = " @param[out]    dst  Buffer where output digest value is stored" ] pub fn av_murmur3_final ( c : * mut AVMurMur3 , dst : * mut u8 ) ; } extern "C" { # [ doc = " Parse str and store the parsed ratio in q." ] # [ doc = "" ] # [ doc = " Note that a ratio with infinite (1/0) or negative value is" ] # [ doc = " considered valid, so you should check on the returned value if you" ] # [ doc = " want to exclude those values." ] # [ doc = "" ] # [ doc = " The undefined value can be expressed using the \"0:0\" string." ] # [ doc = "" ] # [ doc = " @param[in,out] q pointer to the AVRational which will contain the ratio" ] # [ doc = " @param[in] str the string to parse: it has to be a string in the format" ] # [ doc = " num:den, a float number or an expression" ] # [ doc = " @param[in] max the maximum allowed numerator and denominator" ] # [ doc = " @param[in] log_offset log level offset which is applied to the log" ] # [ doc = " level of log_ctx" ] # [ doc = " @param[in] log_ctx parent logging context" ] # [ doc = " @return >= 0 on success, a negative error code otherwise" ] pub fn av_parse_ratio ( q : * mut AVRational , str : * const libc :: c_char , max : libc :: c_int , log_offset : libc :: c_int , log_ctx : * mut libc :: c_void ) -> libc :: c_int ; } extern "C" { # [ doc = " Parse str and put in width_ptr and height_ptr the detected values." ] # [ doc = "" ] # [ doc = " @param[in,out] width_ptr pointer to the variable which will contain the detected" ] # [ doc = " width value" ] # [ doc = " @param[in,out] height_ptr pointer to the variable which will contain the detected" ] # [ doc = " height value" ] # [ doc = " @param[in] str the string to parse: it has to be a string in the format" ] # [ doc = " width x height or a valid video size abbreviation." ] # [ doc = " @return >= 0 on success, a negative error code otherwise" ] pub fn av_parse_video_size ( width_ptr : * mut libc :: c_int , height_ptr : * mut libc :: c_int , str : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { # [ doc = " Parse str and store the detected values in *rate." ] # [ doc = "" ] # [ doc = " @param[in,out] rate pointer to the AVRational which will contain the detected" ] # [ doc = " frame rate" ] # [ doc = " @param[in] str the string to parse: it has to be a string in the format" ] # [ doc = " rate_num / rate_den, a float number or a valid video rate abbreviation" ] # [ doc = " @return >= 0 on success, a negative error code otherwise" ] pub fn av_parse_video_rate ( rate : * mut AVRational , str : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { # [ doc = " Put the RGBA values that correspond to color_string in rgba_color." ] # [ doc = "" ] # [ doc = " @param color_string a string specifying a color. It can be the name of" ] # [ doc = " a color (case insensitive match) or a [0x|#]RRGGBB[AA] sequence," ] # [ doc = " possibly followed by \"@\" and a string representing the alpha" ] # [ doc = " component." ] # [ doc = " The alpha component may be a string composed by \"0x\" followed by an" ] # [ doc = " hexadecimal number or a decimal number between 0.0 and 1.0, which" ] # [ doc = " represents the opacity value (0x00/0.0 means completely transparent," ] # [ doc = " 0xff/1.0 completely opaque)." ] # [ doc = " If the alpha component is not specified then 0xff is assumed." ] # [ doc = " The string \"random\" will result in a random color." ] # [ doc = " @param slen length of the initial part of color_string containing the" ] # [ doc = " color. It can be set to -1 if color_string is a null terminated string" ] # [ doc = " containing nothing else than the color." ] # [ doc = " @return >= 0 in case of success, a negative value in case of" ] # [ doc = " failure (for example if color_string cannot be parsed)." ] pub fn av_parse_color ( rgba_color : * mut u8 , color_string : * const libc :: c_char , slen : libc :: c_int , log_ctx : * mut libc :: c_void ) -> libc :: c_int ; } extern "C" { # [ doc = " Get the name of a color from the internal table of hard-coded named" ] # [ doc = " colors." ] # [ doc = "" ] # [ doc = " This function is meant to enumerate the color names recognized by" ] # [ doc = " av_parse_color()." ] # [ doc = "" ] # [ doc = " @param color_idx index of the requested color, starting from 0" ] # [ doc = " @param rgbp      if not NULL, will point to a 3-elements array with the color value in RGB" ] # [ doc = " @return the color name string or NULL if color_idx is not in the array" ] pub fn av_get_known_color_name ( color_idx : libc :: c_int , rgb : * mut * const u8 ) -> * const libc :: c_char ; } extern "C" { # [ doc = " Parse timestr and return in *time a corresponding number of" ] # [ doc = " microseconds." ] # [ doc = "" ] # [ doc = " @param timeval puts here the number of microseconds corresponding" ] # [ doc = " to the string in timestr. If the string represents a duration, it" ] # [ doc = " is the number of microseconds contained in the time interval.  If" ] # [ doc = " the string is a date, is the number of microseconds since 1st of" ] # [ doc = " January, 1970 up to the time of the parsed date.  If timestr cannot" ] # [ doc = " be successfully parsed, set *time to INT64_MIN." ] # [ doc = "" ] # [ doc = " @param timestr a string representing a date or a duration." ] # [ doc = " - If a date the syntax is:" ] # [ doc = " @code" ] # [ doc = " [{YYYY-MM-DD|YYYYMMDD}[T|t| ]]{{HH:MM:SS[.m...]]]}|{HHMMSS[.m...]]]}}[Z]" ] # [ doc = " now" ] # [ doc = " @endcode" ] # [ doc = " If the value is \"now\" it takes the current time." ] # [ doc = " Time is local time unless Z is appended, in which case it is" ] # [ doc = " interpreted as UTC." ] # [ doc = " If the year-month-day part is not specified it takes the current" ] # [ doc = " year-month-day." ] # [ doc = " - If a duration the syntax is:" ] # [ doc = " @code" ] # [ doc = " [-][HH:]MM:SS[.m...]" ] # [ doc = " [-]S+[.m...]" ] # [ doc = " @endcode" ] # [ doc = " @param duration flag which tells how to interpret timestr, if not" ] # [ doc = " zero timestr is interpreted as a duration, otherwise as a date" ] # [ doc = " @return >= 0 in case of success, a negative value corresponding to an" ] # [ doc = " AVERROR code otherwise" ] pub fn av_parse_time ( timeval : * mut i64 , timestr : * const libc :: c_char , duration : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Attempt to find a specific tag in a URL." ] # [ doc = "" ] # [ doc = " syntax: '?tag1=val1&tag2=val2...'. Little URL decoding is done." ] # [ doc = " Return 1 if found." ] pub fn av_find_info_tag ( arg : * mut libc :: c_char , arg_size : libc :: c_int , tag1 : * const libc :: c_char , info : * const libc :: c_char ) -> libc :: c_int ; } extern "C" { # [ doc = " Simplified version of strptime" ] # [ doc = "" ] # [ doc = " Parse the input string p according to the format string fmt and" ] # [ doc = " store its results in the structure dt." ] # [ doc = " This implementation supports only a subset of the formats supported" ] # [ doc = " by the standard strptime()." ] # [ doc = "" ] # [ doc = " The supported input field descriptors are listed below." ] # [ doc = " - %H: the hour as a decimal number, using a 24-hour clock, in the" ] # [ doc = "   range '00' through '23'" ] # [ doc = " - %J: hours as a decimal number, in the range '0' through INT_MAX" ] # [ doc = " - %M: the minute as a decimal number, using a 24-hour clock, in the" ] # [ doc = "   range '00' through '59'" ] # [ doc = " - %S: the second as a decimal number, using a 24-hour clock, in the" ] # [ doc = "   range '00' through '59'" ] # [ doc = " - %Y: the year as a decimal number, using the Gregorian calendar" ] # [ doc = " - %m: the month as a decimal number, in the range '1' through '12'" ] # [ doc = " - %d: the day of the month as a decimal number, in the range '1'" ] # [ doc = "   through '31'" ] # [ doc = " - %T: alias for '%H:%M:%S'" ] # [ doc = " - %%: a literal '%'" ] # [ doc = "" ] # [ doc = " @return a pointer to the first character not processed in this function" ] # [ doc = "         call. In case the input string contains more characters than" ] # [ doc = "         required by the format string the return value points right after" ] # [ doc = "         the last consumed input character. In case the whole input string" ] # [ doc = "         is consumed the return value points to the null byte at the end of" ] # [ doc = "         the string. On failure NULL is returned." ] pub fn av_small_strptime ( p : * const libc :: c_char , fmt : * const libc :: c_char , dt : * mut tm ) -> * mut libc :: c_char ; } extern "C" { # [ doc = " Convert the decomposed UTC time in tm to a time_t value." ] pub fn av_timegm ( tm : * mut tm ) -> time_t ; } extern "C" { # [ doc = " Get a seed to use in conjunction with random functions." ] # [ doc = " This function tries to provide a good seed at a best effort bases." ] # [ doc = " Its possible to call this function multiple times if more bits are needed." ] # [ doc = " It can be quite slow, which is why it should only be used as seed for a faster" ] # [ doc = " PRNG. The quality of the seed depends on the platform." ] pub fn av_get_random_seed ( ) -> u32 ; } # [ doc = " ReplayGain information (see" ] # [ doc = " http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_1.0_specification)." ] # [ doc = " The size of this struct is a part of the public ABI." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVReplayGain { # [ doc = " Track replay gain in microbels (divide by 100000 to get the value in dB)." ] # [ doc = " Should be set to INT32_MIN when unknown." ] pub track_gain : i32 , # [ doc = " Peak track amplitude, with 100000 representing full scale (but values" ] # [ doc = " may overflow). 0 when unknown." ] pub track_peak : u32 , # [ doc = " Same as track_gain, but for the whole album." ] pub album_gain : i32 , # [ doc = " Same as track_peak, but for the whole album," ] pub album_peak : u32 , } # [ test ] fn bindgen_test_layout_AVReplayGain ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVReplayGain > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( AVReplayGain ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVReplayGain > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( AVReplayGain ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVReplayGain > ( ) ) ) . track_gain as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVReplayGain ) , "::" , stringify ! ( track_gain ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVReplayGain > ( ) ) ) . track_peak as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVReplayGain ) , "::" , stringify ! ( track_peak ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVReplayGain > ( ) ) ) . album_gain as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVReplayGain ) , "::" , stringify ! ( album_gain ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVReplayGain > ( ) ) ) . album_peak as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( AVReplayGain ) , "::" , stringify ! ( album_peak ) ) ) ; } extern "C" { pub static av_ripemd_size : libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVRIPEMD { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Allocate an AVRIPEMD context." ] pub fn av_ripemd_alloc ( ) -> * mut AVRIPEMD ; } extern "C" { # [ doc = " Initialize RIPEMD hashing." ] # [ doc = "" ] # [ doc = " @param context pointer to the function context (of size av_ripemd_size)" ] # [ doc = " @param bits    number of bits in digest (128, 160, 256 or 320 bits)" ] # [ doc = " @return        zero if initialization succeeded, -1 otherwise" ] pub fn av_ripemd_init ( context : * mut AVRIPEMD , bits : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_ripemd_update ( context : * mut AVRIPEMD , data : * const u8 , len : libc :: c_uint ) ; } extern "C" { # [ doc = " Finish hashing and output digest value." ] # [ doc = "" ] # [ doc = " @param context hash function context" ] # [ doc = " @param digest  buffer where output digest value is stored" ] pub fn av_ripemd_final ( context : * mut AVRIPEMD , digest : * mut u8 ) ; } extern "C" { pub static av_sha_size : libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVSHA { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Allocate an AVSHA context." ] pub fn av_sha_alloc ( ) -> * mut AVSHA ; } extern "C" { # [ doc = " Initialize SHA-1 or SHA-2 hashing." ] # [ doc = "" ] # [ doc = " @param context pointer to the function context (of size av_sha_size)" ] # [ doc = " @param bits    number of bits in digest (SHA-1 - 160 bits, SHA-2 224 or 256 bits)" ] # [ doc = " @return        zero if initialization succeeded, -1 otherwise" ] pub fn av_sha_init ( context : * mut AVSHA , bits : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_sha_update ( ctx : * mut AVSHA , data : * const u8 , len : libc :: c_uint ) ; } extern "C" { # [ doc = " Finish hashing and output digest value." ] # [ doc = "" ] # [ doc = " @param context hash function context" ] # [ doc = " @param digest  buffer where output digest value is stored" ] pub fn av_sha_final ( context : * mut AVSHA , digest : * mut u8 ) ; } extern "C" { pub static av_sha512_size : libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVSHA512 { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Allocate an AVSHA512 context." ] pub fn av_sha512_alloc ( ) -> * mut AVSHA512 ; } extern "C" { # [ doc = " Initialize SHA-2 512 hashing." ] # [ doc = "" ] # [ doc = " @param context pointer to the function context (of size av_sha512_size)" ] # [ doc = " @param bits    number of bits in digest (224, 256, 384 or 512 bits)" ] # [ doc = " @return        zero if initialization succeeded, -1 otherwise" ] pub fn av_sha512_init ( context : * mut AVSHA512 , bits : libc :: c_int ) -> libc :: c_int ; } extern "C" { pub fn av_sha512_update ( context : * mut AVSHA512 , data : * const u8 , len : libc :: c_uint ) ; } extern "C" { # [ doc = " Finish hashing and output digest value." ] # [ doc = "" ] # [ doc = " @param context hash function context" ] # [ doc = " @param digest  buffer where output digest value is stored" ] pub fn av_sha512_final ( context : * mut AVSHA512 , digest : * mut u8 ) ; } # [ repr ( u32 ) ] # [ doc = " List of possible 3D Types" ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVStereo3DType { # [ doc = " Video is not stereoscopic (and metadata has to be there)." ] AV_STEREO3D_2D = 0 , # [ doc = " Views are next to each other." ] # [ doc = "" ] # [ doc = " @code{.unparsed}" ] # [ doc = "    LLLLRRRR" ] # [ doc = "    LLLLRRRR" ] # [ doc = "    LLLLRRRR" ] # [ doc = "    ..." ] # [ doc = " @endcode" ] AV_STEREO3D_SIDEBYSIDE = 1 , # [ doc = " Views are on top of each other." ] # [ doc = "" ] # [ doc = " @code{.unparsed}" ] # [ doc = "    LLLLLLLL" ] # [ doc = "    LLLLLLLL" ] # [ doc = "    RRRRRRRR" ] # [ doc = "    RRRRRRRR" ] # [ doc = " @endcode" ] AV_STEREO3D_TOPBOTTOM = 2 , # [ doc = " Views are alternated temporally." ] # [ doc = "" ] # [ doc = " @code{.unparsed}" ] # [ doc = "     frame0   frame1   frame2   ..." ] # [ doc = "    LLLLLLLL RRRRRRRR LLLLLLLL" ] # [ doc = "    LLLLLLLL RRRRRRRR LLLLLLLL" ] # [ doc = "    LLLLLLLL RRRRRRRR LLLLLLLL" ] # [ doc = "    ...      ...      ..." ] # [ doc = " @endcode" ] AV_STEREO3D_FRAMESEQUENCE = 3 , # [ doc = " Views are packed in a checkerboard-like structure per pixel." ] # [ doc = "" ] # [ doc = " @code{.unparsed}" ] # [ doc = "    LRLRLRLR" ] # [ doc = "    RLRLRLRL" ] # [ doc = "    LRLRLRLR" ] # [ doc = "    ..." ] # [ doc = " @endcode" ] AV_STEREO3D_CHECKERBOARD = 4 , # [ doc = " Views are next to each other, but when upscaling" ] # [ doc = " apply a checkerboard pattern." ] # [ doc = "" ] # [ doc = " @code{.unparsed}" ] # [ doc = "     LLLLRRRR          L L L L    R R R R" ] # [ doc = "     LLLLRRRR    =>     L L L L  R R R R" ] # [ doc = "     LLLLRRRR          L L L L    R R R R" ] # [ doc = "     LLLLRRRR           L L L L  R R R R" ] # [ doc = " @endcode" ] AV_STEREO3D_SIDEBYSIDE_QUINCUNX = 5 , # [ doc = " Views are packed per line, as if interlaced." ] # [ doc = "" ] # [ doc = " @code{.unparsed}" ] # [ doc = "    LLLLLLLL" ] # [ doc = "    RRRRRRRR" ] # [ doc = "    LLLLLLLL" ] # [ doc = "    ..." ] # [ doc = " @endcode" ] AV_STEREO3D_LINES = 6 , # [ doc = " Views are packed per column." ] # [ doc = "" ] # [ doc = " @code{.unparsed}" ] # [ doc = "    LRLRLRLR" ] # [ doc = "    LRLRLRLR" ] # [ doc = "    LRLRLRLR" ] # [ doc = "    ..." ] # [ doc = " @endcode" ] AV_STEREO3D_COLUMNS = 7 , } # [ repr ( u32 ) ] # [ doc = " List of possible view types." ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVStereo3DView { # [ doc = " Frame contains two packed views." ] AV_STEREO3D_VIEW_PACKED = 0 , # [ doc = " Frame contains only the left view." ] AV_STEREO3D_VIEW_LEFT = 1 , # [ doc = " Frame contains only the right view." ] AV_STEREO3D_VIEW_RIGHT = 2 , } # [ doc = " Stereo 3D type: this structure describes how two videos are packed" ] # [ doc = " within a single video surface, with additional information as needed." ] # [ doc = "" ] # [ doc = " @note The struct must be allocated with av_stereo3d_alloc() and" ] # [ doc = "       its size is not a part of the public ABI." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVStereo3D { # [ doc = " How views are packed within the video." ] pub type_ : AVStereo3DType , # [ doc = " Additional information about the frame packing." ] pub flags : libc :: c_int , # [ doc = " Determines which views are packed." ] pub view : AVStereo3DView , } # [ test ] fn bindgen_test_layout_AVStereo3D ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVStereo3D > ( ) , 12usize , concat ! ( "Size of: " , stringify ! ( AVStereo3D ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVStereo3D > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( AVStereo3D ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStereo3D > ( ) ) ) . type_ as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVStereo3D ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStereo3D > ( ) ) ) . flags as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVStereo3D ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVStereo3D > ( ) ) ) . view as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVStereo3D ) , "::" , stringify ! ( view ) ) ) ; } extern "C" { # [ doc = " Allocate an AVStereo3D structure and set its fields to default values." ] # [ doc = " The resulting struct can be freed using av_freep()." ] # [ doc = "" ] # [ doc = " @return An AVStereo3D filled with default values or NULL on failure." ] pub fn av_stereo3d_alloc ( ) -> * mut AVStereo3D ; } extern "C" { # [ doc = " Allocate a complete AVFrameSideData and add it to the frame." ] # [ doc = "" ] # [ doc = " @param frame The frame which side data is added to." ] # [ doc = "" ] # [ doc = " @return The AVStereo3D structure to be filled by caller." ] pub fn av_stereo3d_create_side_data ( frame : * mut AVFrame ) -> * mut AVStereo3D ; } extern "C" { # [ doc = " Provide a human-readable name of a given stereo3d type." ] # [ doc = "" ] # [ doc = " @param type The input stereo3d type value." ] # [ doc = "" ] # [ doc = " @return The name of the stereo3d value, or \"unknown\"." ] pub fn av_stereo3d_type_name ( type_ : libc :: c_uint ) -> * const libc :: c_char ; } extern "C" { # [ doc = " Get the AVStereo3DType form a human-readable name." ] # [ doc = "" ] # [ doc = " @param name The input string." ] # [ doc = "" ] # [ doc = " @return The AVStereo3DType value, or -1 if not found." ] pub fn av_stereo3d_from_name ( name : * const libc :: c_char ) -> libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVThreadMessageQueue { _unused : [ u8 ; 0 ] , } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVThreadMessageFlags { # [ doc = " Perform non-blocking operation." ] # [ doc = " If this flag is set, send and recv operations are non-blocking and" ] # [ doc = " return AVERROR(EAGAIN) immediately if they can not proceed." ] AV_THREAD_MESSAGE_NONBLOCK = 1 , } extern "C" { # [ doc = " Allocate a new message queue." ] # [ doc = "" ] # [ doc = " @param mq      pointer to the message queue" ] # [ doc = " @param nelem   maximum number of elements in the queue" ] # [ doc = " @param elsize  size of each element in the queue" ] # [ doc = " @return  >=0 for success; <0 for error, in particular AVERROR(ENOSYS) if" ] # [ doc = "          lavu was built without thread support" ] pub fn av_thread_message_queue_alloc ( mq : * mut * mut AVThreadMessageQueue , nelem : libc :: c_uint , elsize : libc :: c_uint ) -> libc :: c_int ; } extern "C" { # [ doc = " Free a message queue." ] # [ doc = "" ] # [ doc = " The message queue must no longer be in use by another thread." ] pub fn av_thread_message_queue_free ( mq : * mut * mut AVThreadMessageQueue ) ; } extern "C" { # [ doc = " Send a message on the queue." ] pub fn av_thread_message_queue_send ( mq : * mut AVThreadMessageQueue , msg : * mut libc :: c_void , flags : libc :: c_uint ) -> libc :: c_int ; } extern "C" { # [ doc = " Receive a message from the queue." ] pub fn av_thread_message_queue_recv ( mq : * mut AVThreadMessageQueue , msg : * mut libc :: c_void , flags : libc :: c_uint ) -> libc :: c_int ; } extern "C" { # [ doc = " Set the sending error code." ] # [ doc = "" ] # [ doc = " If the error code is set to non-zero, av_thread_message_queue_send() will" ] # [ doc = " return it immediately. Conventional values, such as AVERROR_EOF or" ] # [ doc = " AVERROR(EAGAIN), can be used to cause the sending thread to stop or" ] # [ doc = " suspend its operation." ] pub fn av_thread_message_queue_set_err_send ( mq : * mut AVThreadMessageQueue , err : libc :: c_int ) ; } extern "C" { # [ doc = " Set the receiving error code." ] # [ doc = "" ] # [ doc = " If the error code is set to non-zero, av_thread_message_queue_recv() will" ] # [ doc = " return it immediately when there are no longer available messages." ] # [ doc = " Conventional values, such as AVERROR_EOF or AVERROR(EAGAIN), can be used" ] # [ doc = " to cause the receiving thread to stop or suspend its operation." ] pub fn av_thread_message_queue_set_err_recv ( mq : * mut AVThreadMessageQueue , err : libc :: c_int ) ; } extern "C" { # [ doc = " Set the optional free message callback function which will be called if an" ] # [ doc = " operation is removing messages from the queue." ] pub fn av_thread_message_queue_set_free_func ( mq : * mut AVThreadMessageQueue , free_func : :: std :: option :: Option < unsafe extern "C" fn ( msg : * mut libc :: c_void ) > ) ; } extern "C" { # [ doc = " Return the current number of messages in the queue." ] # [ doc = "" ] # [ doc = " @return the current number of messages or AVERROR(ENOSYS) if lavu was built" ] # [ doc = "         without thread support" ] pub fn av_thread_message_queue_nb_elems ( mq : * mut AVThreadMessageQueue ) -> libc :: c_int ; } extern "C" { # [ doc = " Flush the message queue" ] # [ doc = "" ] # [ doc = " This function is mostly equivalent to reading and free-ing every message" ] # [ doc = " except that it will be done in a single operation (no lock/unlock between" ] # [ doc = " reads)." ] pub fn av_thread_message_flush ( mq : * mut AVThreadMessageQueue ) ; } extern "C" { # [ doc = " Get the current time in microseconds." ] pub fn av_gettime ( ) -> i64 ; } extern "C" { # [ doc = " Get the current time in microseconds since some unspecified starting point." ] # [ doc = " On platforms that support it, the time comes from a monotonic clock" ] # [ doc = " This property makes this time source ideal for measuring relative time." ] # [ doc = " The returned values may not be monotonic on platforms where a monotonic" ] # [ doc = " clock is not available." ] pub fn av_gettime_relative ( ) -> i64 ; } extern "C" { # [ doc = " Indicates with a boolean result if the av_gettime_relative() time source" ] # [ doc = " is monotonic." ] pub fn av_gettime_relative_is_monotonic ( ) -> libc :: c_int ; } extern "C" { # [ doc = " Sleep for a period of time.  Although the duration is expressed in" ] # [ doc = " microseconds, the actual delay may be rounded to the precision of the" ] # [ doc = " system timer." ] # [ doc = "" ] # [ doc = " @param  usec Number of microseconds to sleep." ] # [ doc = " @return zero on success or (negative) error code." ] pub fn av_usleep ( usec : libc :: c_uint ) -> libc :: c_int ; } # [ repr ( u32 ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum AVTimecodeFlag { # [ doc = "< timecode is drop frame" ] AV_TIMECODE_FLAG_DROPFRAME = 1 , # [ doc = "< timecode wraps after 24 hours" ] AV_TIMECODE_FLAG_24HOURSMAX = 2 , # [ doc = "< negative time values are allowed" ] AV_TIMECODE_FLAG_ALLOWNEGATIVE = 4 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVTimecode { # [ doc = "< timecode frame start (first base frame number)" ] pub start : libc :: c_int , # [ doc = "< flags such as drop frame, +24 hours support, ..." ] pub flags : u32 , # [ doc = "< frame rate in rational form" ] pub rate : AVRational , # [ doc = "< frame per second; must be consistent with the rate field" ] pub fps : libc :: c_uint , } # [ test ] fn bindgen_test_layout_AVTimecode ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVTimecode > ( ) , 20usize , concat ! ( "Size of: " , stringify ! ( AVTimecode ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVTimecode > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( AVTimecode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVTimecode > ( ) ) ) . start as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVTimecode ) , "::" , stringify ! ( start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVTimecode > ( ) ) ) . flags as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( AVTimecode ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVTimecode > ( ) ) ) . rate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( AVTimecode ) , "::" , stringify ! ( rate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVTimecode > ( ) ) ) . fps as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( AVTimecode ) , "::" , stringify ! ( fps ) ) ) ; } extern "C" { # [ doc = " Adjust frame number for NTSC drop frame time code." ] # [ doc = "" ] # [ doc = " @param framenum frame number to adjust" ] # [ doc = " @param fps      frame per second, 30 or 60" ] # [ doc = " @return         adjusted frame number" ] # [ doc = " @warning        adjustment is only valid in NTSC 29.97 and 59.94" ] pub fn av_timecode_adjust_ntsc_framenum2 ( framenum : libc :: c_int , fps : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Convert frame number to SMPTE 12M binary representation." ] # [ doc = "" ] # [ doc = " @param tc       timecode data correctly initialized" ] # [ doc = " @param framenum frame number" ] # [ doc = " @return         the SMPTE binary representation" ] # [ doc = "" ] # [ doc = " @note Frame number adjustment is automatically done in case of drop timecode," ] # [ doc = "       you do NOT have to call av_timecode_adjust_ntsc_framenum2()." ] # [ doc = " @note The frame number is relative to tc->start." ] # [ doc = " @note Color frame (CF), binary group flags (BGF) and biphase mark polarity" ] # [ doc = "       correction (PC) bits are set to zero." ] pub fn av_timecode_get_smpte_from_framenum ( tc : * const AVTimecode , framenum : libc :: c_int ) -> u32 ; } extern "C" { # [ doc = " Load timecode string in buf." ] # [ doc = "" ] # [ doc = " @param buf      destination buffer, must be at least AV_TIMECODE_STR_SIZE long" ] # [ doc = " @param tc       timecode data correctly initialized" ] # [ doc = " @param framenum frame number" ] # [ doc = " @return         the buf parameter" ] # [ doc = "" ] # [ doc = " @note Timecode representation can be a negative timecode and have more than" ] # [ doc = "       24 hours, but will only be honored if the flags are correctly set." ] # [ doc = " @note The frame number is relative to tc->start." ] pub fn av_timecode_make_string ( tc : * const AVTimecode , buf : * mut libc :: c_char , framenum : libc :: c_int ) -> * mut libc :: c_char ; } extern "C" { # [ doc = " Get the timecode string from the SMPTE timecode format." ] # [ doc = "" ] # [ doc = " @param buf        destination buffer, must be at least AV_TIMECODE_STR_SIZE long" ] # [ doc = " @param tcsmpte    the 32-bit SMPTE timecode" ] # [ doc = " @param prevent_df prevent the use of a drop flag when it is known the DF bit" ] # [ doc = "                   is arbitrary" ] # [ doc = " @return           the buf parameter" ] pub fn av_timecode_make_smpte_tc_string ( buf : * mut libc :: c_char , tcsmpte : u32 , prevent_df : libc :: c_int ) -> * mut libc :: c_char ; } extern "C" { # [ doc = " Get the timecode string from the 25-bit timecode format (MPEG GOP format)." ] # [ doc = "" ] # [ doc = " @param buf     destination buffer, must be at least AV_TIMECODE_STR_SIZE long" ] # [ doc = " @param tc25bit the 25-bits timecode" ] # [ doc = " @return        the buf parameter" ] pub fn av_timecode_make_mpeg_tc_string ( buf : * mut libc :: c_char , tc25bit : u32 ) -> * mut libc :: c_char ; } extern "C" { # [ doc = " Init a timecode struct with the passed parameters." ] # [ doc = "" ] # [ doc = " @param log_ctx     a pointer to an arbitrary struct of which the first field" ] # [ doc = "                    is a pointer to an AVClass struct (used for av_log)" ] # [ doc = " @param tc          pointer to an allocated AVTimecode" ] # [ doc = " @param rate        frame rate in rational form" ] # [ doc = " @param flags       miscellaneous flags such as drop frame, +24 hours, ..." ] # [ doc = "                    (see AVTimecodeFlag)" ] # [ doc = " @param frame_start the first frame number" ] # [ doc = " @return            0 on success, AVERROR otherwise" ] pub fn av_timecode_init ( tc : * mut AVTimecode , rate : AVRational , flags : libc :: c_int , frame_start : libc :: c_int , log_ctx : * mut libc :: c_void ) -> libc :: c_int ; } extern "C" { # [ doc = " Parse timecode representation (hh:mm:ss[:;.]ff)." ] # [ doc = "" ] # [ doc = " @param log_ctx a pointer to an arbitrary struct of which the first field is a" ] # [ doc = "                pointer to an AVClass struct (used for av_log)." ] # [ doc = " @param tc      pointer to an allocated AVTimecode" ] # [ doc = " @param rate    frame rate in rational form" ] # [ doc = " @param str     timecode string which will determine the frame start" ] # [ doc = " @return        0 on success, AVERROR otherwise" ] pub fn av_timecode_init_from_string ( tc : * mut AVTimecode , rate : AVRational , str : * const libc :: c_char , log_ctx : * mut libc :: c_void ) -> libc :: c_int ; } extern "C" { # [ doc = " Check if the timecode feature is available for the given frame rate" ] # [ doc = "" ] # [ doc = " @return 0 if supported, <0 otherwise" ] pub fn av_timecode_check_frame_rate ( rate : AVRational ) -> libc :: c_int ; } extern "C" { pub static av_twofish_size : libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct AVTWOFISH { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Allocate an AVTWOFISH context" ] # [ doc = " To free the struct: av_free(ptr)" ] pub fn av_twofish_alloc ( ) -> * mut AVTWOFISH ; } extern "C" { # [ doc = " Initialize an AVTWOFISH context." ] # [ doc = "" ] # [ doc = " @param ctx an AVTWOFISH context" ] # [ doc = " @param key a key of size ranging from 1 to 32 bytes used for encryption/decryption" ] # [ doc = " @param key_bits number of keybits: 128, 192, 256 If less than the required, padded with zeroes to nearest valid value; return value is 0 if key_bits is 128/192/256, -1 if less than 0, 1 otherwise" ] pub fn av_twofish_init ( ctx : * mut AVTWOFISH , key : * const u8 , key_bits : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Encrypt or decrypt a buffer using a previously initialized context" ] # [ doc = "" ] # [ doc = " @param ctx an AVTWOFISH context" ] # [ doc = " @param dst destination array, can be equal to src" ] # [ doc = " @param src source array, can be equal to dst" ] # [ doc = " @param count number of 16 byte blocks" ] # [ doc = " @paran iv initialization vector for CBC mode, NULL for ECB mode" ] # [ doc = " @param decrypt 0 for encryption, 1 for decryption" ] pub fn av_twofish_crypt ( ctx : * mut AVTWOFISH , dst : * mut u8 , src : * const u8 , count : libc :: c_int , iv : * mut u8 , decrypt : libc :: c_int ) ; } # [ doc = " @file" ] # [ doc = " @brief Public header for libavutil XTEA algorithm" ] # [ doc = " @defgroup lavu_xtea XTEA" ] # [ doc = " @ingroup lavu_crypto" ] # [ doc = " @{" ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVXTEA { pub key : [ u32 ; 16usize ] , } # [ test ] fn bindgen_test_layout_AVXTEA ( ) { assert_eq ! ( :: std :: mem :: size_of :: < AVXTEA > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( AVXTEA ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < AVXTEA > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( AVXTEA ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < AVXTEA > ( ) ) ) . key as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( AVXTEA ) , "::" , stringify ! ( key ) ) ) ; } extern "C" { # [ doc = " Allocate an AVXTEA context." ] pub fn av_xtea_alloc ( ) -> * mut AVXTEA ; } extern "C" { # [ doc = " Initialize an AVXTEA context." ] # [ doc = "" ] # [ doc = " @param ctx an AVXTEA context" ] # [ doc = " @param key a key of 16 bytes used for encryption/decryption," ] # [ doc = "            interpreted as big endian 32 bit numbers" ] pub fn av_xtea_init ( ctx : * mut AVXTEA , key : * const u8 ) ; } extern "C" { # [ doc = " Initialize an AVXTEA context." ] # [ doc = "" ] # [ doc = " @param ctx an AVXTEA context" ] # [ doc = " @param key a key of 16 bytes used for encryption/decryption," ] # [ doc = "            interpreted as little endian 32 bit numbers" ] pub fn av_xtea_le_init ( ctx : * mut AVXTEA , key : * const u8 ) ; } extern "C" { # [ doc = " Encrypt or decrypt a buffer using a previously initialized context," ] # [ doc = " in big endian format." ] # [ doc = "" ] # [ doc = " @param ctx an AVXTEA context" ] # [ doc = " @param dst destination array, can be equal to src" ] # [ doc = " @param src source array, can be equal to dst" ] # [ doc = " @param count number of 8 byte blocks" ] # [ doc = " @param iv initialization vector for CBC mode, if NULL then ECB will be used" ] # [ doc = " @param decrypt 0 for encryption, 1 for decryption" ] pub fn av_xtea_crypt ( ctx : * mut AVXTEA , dst : * mut u8 , src : * const u8 , count : libc :: c_int , iv : * mut u8 , decrypt : libc :: c_int ) ; } extern "C" { # [ doc = " Encrypt or decrypt a buffer using a previously initialized context," ] # [ doc = " in little endian format." ] # [ doc = "" ] # [ doc = " @param ctx an AVXTEA context" ] # [ doc = " @param dst destination array, can be equal to src" ] # [ doc = " @param src source array, can be equal to dst" ] # [ doc = " @param count number of 8 byte blocks" ] # [ doc = " @param iv initialization vector for CBC mode, if NULL then ECB will be used" ] # [ doc = " @param decrypt 0 for encryption, 1 for decryption" ] pub fn av_xtea_le_crypt ( ctx : * mut AVXTEA , dst : * mut u8 , src : * const u8 , count : libc :: c_int , iv : * mut u8 , decrypt : libc :: c_int ) ; } # [ repr ( u32 ) ] # [ doc = " Dithering algorithms" ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum SwrDitherType { SWR_DITHER_NONE = 0 , SWR_DITHER_RECTANGULAR = 1 , SWR_DITHER_TRIANGULAR = 2 , SWR_DITHER_TRIANGULAR_HIGHPASS = 3 , # [ doc = "< not part of API/ABI" ] SWR_DITHER_NS = 64 , SWR_DITHER_NS_LIPSHITZ = 65 , SWR_DITHER_NS_F_WEIGHTED = 66 , SWR_DITHER_NS_MODIFIED_E_WEIGHTED = 67 , SWR_DITHER_NS_IMPROVED_E_WEIGHTED = 68 , SWR_DITHER_NS_SHIBATA = 69 , SWR_DITHER_NS_LOW_SHIBATA = 70 , SWR_DITHER_NS_HIGH_SHIBATA = 71 , # [ doc = "< not part of API/ABI" ] SWR_DITHER_NB = 72 , } # [ repr ( u32 ) ] # [ doc = " Resampling Engines" ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum SwrEngine { # [ doc = "< SW Resampler" ] SWR_ENGINE_SWR = 0 , # [ doc = "< SoX Resampler" ] SWR_ENGINE_SOXR = 1 , # [ doc = "< not part of API/ABI" ] SWR_ENGINE_NB = 2 , } # [ repr ( u32 ) ] # [ doc = " Resampling Filter Types" ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq , Hash ) ] pub enum SwrFilterType { # [ doc = "< Cubic" ] SWR_FILTER_TYPE_CUBIC = 0 , # [ doc = "< Blackman Nuttall windowed sinc" ] SWR_FILTER_TYPE_BLACKMAN_NUTTALL = 1 , # [ doc = "< Kaiser windowed sinc" ] SWR_FILTER_TYPE_KAISER = 2 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct SwrContext { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Get the AVClass for SwrContext. It can be used in combination with" ] # [ doc = " AV_OPT_SEARCH_FAKE_OBJ for examining options." ] # [ doc = "" ] # [ doc = " @see av_opt_find()." ] # [ doc = " @return the AVClass of SwrContext" ] pub fn swr_get_class ( ) -> * const AVClass ; } extern "C" { # [ doc = " Allocate SwrContext." ] # [ doc = "" ] # [ doc = " If you use this function you will need to set the parameters (manually or" ] # [ doc = " with swr_alloc_set_opts()) before calling swr_init()." ] # [ doc = "" ] # [ doc = " @see swr_alloc_set_opts(), swr_init(), swr_free()" ] # [ doc = " @return NULL on error, allocated context otherwise" ] pub fn swr_alloc ( ) -> * mut SwrContext ; } extern "C" { # [ doc = " Initialize context after user parameters have been set." ] # [ doc = " @note The context must be configured using the AVOption API." ] # [ doc = "" ] # [ doc = " @see av_opt_set_int()" ] # [ doc = " @see av_opt_set_dict()" ] # [ doc = "" ] # [ doc = " @param[in,out]   s Swr context to initialize" ] # [ doc = " @return AVERROR error code in case of failure." ] pub fn swr_init ( s : * mut SwrContext ) -> libc :: c_int ; } extern "C" { # [ doc = " Check whether an swr context has been initialized or not." ] # [ doc = "" ] # [ doc = " @param[in]       s Swr context to check" ] # [ doc = " @see swr_init()" ] # [ doc = " @return positive if it has been initialized, 0 if not initialized" ] pub fn swr_is_initialized ( s : * mut SwrContext ) -> libc :: c_int ; } extern "C" { # [ doc = " Allocate SwrContext if needed and set/reset common parameters." ] # [ doc = "" ] # [ doc = " This function does not require s to be allocated with swr_alloc(). On the" ] # [ doc = " other hand, swr_alloc() can use swr_alloc_set_opts() to set the parameters" ] # [ doc = " on the allocated context." ] # [ doc = "" ] # [ doc = " @param s               existing Swr context if available, or NULL if not" ] # [ doc = " @param out_ch_layout   output channel layout (AV_CH_LAYOUT_*)" ] # [ doc = " @param out_sample_fmt  output sample format (AV_SAMPLE_FMT_*)." ] # [ doc = " @param out_sample_rate output sample rate (frequency in Hz)" ] # [ doc = " @param in_ch_layout    input channel layout (AV_CH_LAYOUT_*)" ] # [ doc = " @param in_sample_fmt   input sample format (AV_SAMPLE_FMT_*)." ] # [ doc = " @param in_sample_rate  input sample rate (frequency in Hz)" ] # [ doc = " @param log_offset      logging level offset" ] # [ doc = " @param log_ctx         parent logging context, can be NULL" ] # [ doc = "" ] # [ doc = " @see swr_init(), swr_free()" ] # [ doc = " @return NULL on error, allocated context otherwise" ] pub fn swr_alloc_set_opts ( s : * mut SwrContext , out_ch_layout : i64 , out_sample_fmt : AVSampleFormat , out_sample_rate : libc :: c_int , in_ch_layout : i64 , in_sample_fmt : AVSampleFormat , in_sample_rate : libc :: c_int , log_offset : libc :: c_int , log_ctx : * mut libc :: c_void ) -> * mut SwrContext ; } extern "C" { # [ doc = " Free the given SwrContext and set the pointer to NULL." ] # [ doc = "" ] # [ doc = " @param[in] s a pointer to a pointer to Swr context" ] pub fn swr_free ( s : * mut * mut SwrContext ) ; } extern "C" { # [ doc = " Closes the context so that swr_is_initialized() returns 0." ] # [ doc = "" ] # [ doc = " The context can be brought back to life by running swr_init()," ] # [ doc = " swr_init() can also be used without swr_close()." ] # [ doc = " This function is mainly provided for simplifying the usecase" ] # [ doc = " where one tries to support libavresample and libswresample." ] # [ doc = "" ] # [ doc = " @param[in,out] s Swr context to be closed" ] pub fn swr_close ( s : * mut SwrContext ) ; } extern "C" { # [ doc = " Convert audio." ] # [ doc = "" ] # [ doc = " in and in_count can be set to 0 to flush the last few samples out at the" ] # [ doc = " end." ] # [ doc = "" ] # [ doc = " If more input is provided than output space, then the input will be buffered." ] # [ doc = " You can avoid this buffering by using swr_get_out_samples() to retrieve an" ] # [ doc = " upper bound on the required number of output samples for the given number of" ] # [ doc = " input samples. Conversion will run directly without copying whenever possible." ] # [ doc = "" ] # [ doc = " @param s         allocated Swr context, with parameters set" ] # [ doc = " @param out       output buffers, only the first one need be set in case of packed audio" ] # [ doc = " @param out_count amount of space available for output in samples per channel" ] # [ doc = " @param in        input buffers, only the first one need to be set in case of packed audio" ] # [ doc = " @param in_count  number of input samples available in one channel" ] # [ doc = "" ] # [ doc = " @return number of samples output per channel, negative value on error" ] pub fn swr_convert ( s : * mut SwrContext , out : * mut * mut u8 , out_count : libc :: c_int , in_ : * mut * const u8 , in_count : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Convert the next timestamp from input to output" ] # [ doc = " timestamps are in 1/(in_sample_rate * out_sample_rate) units." ] # [ doc = "" ] # [ doc = " @note There are 2 slightly differently behaving modes." ] # [ doc = "       @li When automatic timestamp compensation is not used, (min_compensation >= FLT_MAX)" ] # [ doc = "              in this case timestamps will be passed through with delays compensated" ] # [ doc = "       @li When automatic timestamp compensation is used, (min_compensation < FLT_MAX)" ] # [ doc = "              in this case the output timestamps will match output sample numbers." ] # [ doc = "              See ffmpeg-resampler(1) for the two modes of compensation." ] # [ doc = "" ] # [ doc = " @param s[in]     initialized Swr context" ] # [ doc = " @param pts[in]   timestamp for the next input sample, INT64_MIN if unknown" ] # [ doc = " @see swr_set_compensation(), swr_drop_output(), and swr_inject_silence() are" ] # [ doc = "      function used internally for timestamp compensation." ] # [ doc = " @return the output timestamp for the next output sample" ] pub fn swr_next_pts ( s : * mut SwrContext , pts : i64 ) -> i64 ; } extern "C" { # [ doc = " Activate resampling compensation (\"soft\" compensation). This function is" ] # [ doc = " internally called when needed in swr_next_pts()." ] # [ doc = "" ] # [ doc = " @param[in,out] s             allocated Swr context. If it is not initialized," ] # [ doc = "                              or SWR_FLAG_RESAMPLE is not set, swr_init() is" ] # [ doc = "                              called with the flag set." ] # [ doc = " @param[in]     sample_delta  delta in PTS per sample" ] # [ doc = " @param[in]     compensation_distance number of samples to compensate for" ] # [ doc = " @return    >= 0 on success, AVERROR error codes if:" ] # [ doc = "            @li @c s is NULL," ] # [ doc = "            @li @c compensation_distance is less than 0," ] # [ doc = "            @li @c compensation_distance is 0 but sample_delta is not," ] # [ doc = "            @li compensation unsupported by resampler, or" ] # [ doc = "            @li swr_init() fails when called." ] pub fn swr_set_compensation ( s : * mut SwrContext , sample_delta : libc :: c_int , compensation_distance : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Set a customized input channel mapping." ] # [ doc = "" ] # [ doc = " @param[in,out] s           allocated Swr context, not yet initialized" ] # [ doc = " @param[in]     channel_map customized input channel mapping (array of channel" ] # [ doc = "                            indexes, -1 for a muted channel)" ] # [ doc = " @return >= 0 on success, or AVERROR error code in case of failure." ] pub fn swr_set_channel_mapping ( s : * mut SwrContext , channel_map : * const libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Generate a channel mixing matrix." ] # [ doc = "" ] # [ doc = " This function is the one used internally by libswresample for building the" ] # [ doc = " default mixing matrix. It is made public just as a utility function for" ] # [ doc = " building custom matrices." ] # [ doc = "" ] # [ doc = " @param in_layout           input channel layout" ] # [ doc = " @param out_layout          output channel layout" ] # [ doc = " @param center_mix_level    mix level for the center channel" ] # [ doc = " @param surround_mix_level  mix level for the surround channel(s)" ] # [ doc = " @param lfe_mix_level       mix level for the low-frequency effects channel" ] # [ doc = " @param rematrix_maxval     if 1.0, coefficients will be normalized to prevent" ] # [ doc = "                            overflow. if INT_MAX, coefficients will not be" ] # [ doc = "                            normalized." ] # [ doc = " @param[out] matrix         mixing coefficients; matrix[i + stride * o] is" ] # [ doc = "                            the weight of input channel i in output channel o." ] # [ doc = " @param stride              distance between adjacent input channels in the" ] # [ doc = "                            matrix array" ] # [ doc = " @param matrix_encoding     matrixed stereo downmix mode (e.g. dplii)" ] # [ doc = " @param log_ctx             parent logging context, can be NULL" ] # [ doc = " @return                    0 on success, negative AVERROR code on failure" ] pub fn swr_build_matrix ( in_layout : u64 , out_layout : u64 , center_mix_level : f64 , surround_mix_level : f64 , lfe_mix_level : f64 , rematrix_maxval : f64 , rematrix_volume : f64 , matrix : * mut f64 , stride : libc :: c_int , matrix_encoding : AVMatrixEncoding , log_ctx : * mut libc :: c_void ) -> libc :: c_int ; } extern "C" { # [ doc = " Set a customized remix matrix." ] # [ doc = "" ] # [ doc = " @param s       allocated Swr context, not yet initialized" ] # [ doc = " @param matrix  remix coefficients; matrix[i + stride * o] is" ] # [ doc = "                the weight of input channel i in output channel o" ] # [ doc = " @param stride  offset between lines of the matrix" ] # [ doc = " @return  >= 0 on success, or AVERROR error code in case of failure." ] pub fn swr_set_matrix ( s : * mut SwrContext , matrix : * const f64 , stride : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Drops the specified number of output samples." ] # [ doc = "" ] # [ doc = " This function, along with swr_inject_silence(), is called by swr_next_pts()" ] # [ doc = " if needed for \"hard\" compensation." ] # [ doc = "" ] # [ doc = " @param s     allocated Swr context" ] # [ doc = " @param count number of samples to be dropped" ] # [ doc = "" ] # [ doc = " @return >= 0 on success, or a negative AVERROR code on failure" ] pub fn swr_drop_output ( s : * mut SwrContext , count : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Injects the specified number of silence samples." ] # [ doc = "" ] # [ doc = " This function, along with swr_drop_output(), is called by swr_next_pts()" ] # [ doc = " if needed for \"hard\" compensation." ] # [ doc = "" ] # [ doc = " @param s     allocated Swr context" ] # [ doc = " @param count number of samples to be dropped" ] # [ doc = "" ] # [ doc = " @return >= 0 on success, or a negative AVERROR code on failure" ] pub fn swr_inject_silence ( s : * mut SwrContext , count : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Gets the delay the next input sample will experience relative to the next output sample." ] # [ doc = "" ] # [ doc = " Swresample can buffer data if more input has been provided than available" ] # [ doc = " output space, also converting between sample rates needs a delay." ] # [ doc = " This function returns the sum of all such delays." ] # [ doc = " The exact delay is not necessarily an integer value in either input or" ] # [ doc = " output sample rate. Especially when downsampling by a large value, the" ] # [ doc = " output sample rate may be a poor choice to represent the delay, similarly" ] # [ doc = " for upsampling and the input sample rate." ] # [ doc = "" ] # [ doc = " @param s     swr context" ] # [ doc = " @param base  timebase in which the returned delay will be:" ] # [ doc = "              @li if it's set to 1 the returned delay is in seconds" ] # [ doc = "              @li if it's set to 1000 the returned delay is in milliseconds" ] # [ doc = "              @li if it's set to the input sample rate then the returned" ] # [ doc = "                  delay is in input samples" ] # [ doc = "              @li if it's set to the output sample rate then the returned" ] # [ doc = "                  delay is in output samples" ] # [ doc = "              @li if it's the least common multiple of in_sample_rate and" ] # [ doc = "                  out_sample_rate then an exact rounding-free delay will be" ] # [ doc = "                  returned" ] # [ doc = " @returns     the delay in 1 / @c base units." ] pub fn swr_get_delay ( s : * mut SwrContext , base : i64 ) -> i64 ; } extern "C" { # [ doc = " Find an upper bound on the number of samples that the next swr_convert" ] # [ doc = " call will output, if called with in_samples of input samples. This" ] # [ doc = " depends on the internal state, and anything changing the internal state" ] # [ doc = " (like further swr_convert() calls) will may change the number of samples" ] # [ doc = " swr_get_out_samples() returns for the same number of input samples." ] # [ doc = "" ] # [ doc = " @param in_samples    number of input samples." ] # [ doc = " @note any call to swr_inject_silence(), swr_convert(), swr_next_pts()" ] # [ doc = "       or swr_set_compensation() invalidates this limit" ] # [ doc = " @note it is recommended to pass the correct available buffer size" ] # [ doc = "       to all functions like swr_convert() even if swr_get_out_samples()" ] # [ doc = "       indicates that less would be used." ] # [ doc = " @returns an upper bound on the number of samples that the next swr_convert" ] # [ doc = "          will output or a negative value to indicate an error" ] pub fn swr_get_out_samples ( s : * mut SwrContext , in_samples : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Return the @ref LIBSWRESAMPLE_VERSION_INT constant." ] # [ doc = "" ] # [ doc = " This is useful to check if the build-time libswresample has the same version" ] # [ doc = " as the run-time one." ] # [ doc = "" ] # [ doc = " @returns     the unsigned int-typed version" ] pub fn swresample_version ( ) -> libc :: c_uint ; } extern "C" { # [ doc = " Return the swr build-time configuration." ] # [ doc = "" ] # [ doc = " @returns     the build-time @c ./configure flags" ] pub fn swresample_configuration ( ) -> * const libc :: c_char ; } extern "C" { # [ doc = " Return the swr license." ] # [ doc = "" ] # [ doc = " @returns     the license of libswresample, determined at build-time" ] pub fn swresample_license ( ) -> * const libc :: c_char ; } extern "C" { # [ doc = " Convert the samples in the input AVFrame and write them to the output AVFrame." ] # [ doc = "" ] # [ doc = " Input and output AVFrames must have channel_layout, sample_rate and format set." ] # [ doc = "" ] # [ doc = " If the output AVFrame does not have the data pointers allocated the nb_samples" ] # [ doc = " field will be set using av_frame_get_buffer()" ] # [ doc = " is called to allocate the frame." ] # [ doc = "" ] # [ doc = " The output AVFrame can be NULL or have fewer allocated samples than required." ] # [ doc = " In this case, any remaining samples not written to the output will be added" ] # [ doc = " to an internal FIFO buffer, to be returned at the next call to this function" ] # [ doc = " or to swr_convert()." ] # [ doc = "" ] # [ doc = " If converting sample rate, there may be data remaining in the internal" ] # [ doc = " resampling delay buffer. swr_get_delay() tells the number of" ] # [ doc = " remaining samples. To get this data as output, call this function or" ] # [ doc = " swr_convert() with NULL input." ] # [ doc = "" ] # [ doc = " If the SwrContext configuration does not match the output and" ] # [ doc = " input AVFrame settings the conversion does not take place and depending on" ] # [ doc = " which AVFrame is not matching AVERROR_OUTPUT_CHANGED, AVERROR_INPUT_CHANGED" ] # [ doc = " or the result of a bitwise-OR of them is returned." ] # [ doc = "" ] # [ doc = " @see swr_delay()" ] # [ doc = " @see swr_convert()" ] # [ doc = " @see swr_get_delay()" ] # [ doc = "" ] # [ doc = " @param swr             audio resample context" ] # [ doc = " @param output          output AVFrame" ] # [ doc = " @param input           input AVFrame" ] # [ doc = " @return                0 on success, AVERROR on failure or nonmatching" ] # [ doc = "                        configuration." ] pub fn swr_convert_frame ( swr : * mut SwrContext , output : * mut AVFrame , input : * const AVFrame ) -> libc :: c_int ; } extern "C" { # [ doc = " Configure or reconfigure the SwrContext using the information" ] # [ doc = " provided by the AVFrames." ] # [ doc = "" ] # [ doc = " The original resampling context is reset even on failure." ] # [ doc = " The function calls swr_close() internally if the context is open." ] # [ doc = "" ] # [ doc = " @see swr_close();" ] # [ doc = "" ] # [ doc = " @param swr             audio resample context" ] # [ doc = " @param output          output AVFrame" ] # [ doc = " @param input           input AVFrame" ] # [ doc = " @return                0 on success, AVERROR on failure." ] pub fn swr_config_frame ( swr : * mut SwrContext , out : * const AVFrame , in_ : * const AVFrame ) -> libc :: c_int ; } extern "C" { # [ doc = " @defgroup libsws libswscale" ] # [ doc = " Color conversion and scaling library." ] # [ doc = "" ] # [ doc = " @{" ] # [ doc = "" ] # [ doc = " Return the LIBSWSCALE_VERSION_INT constant." ] pub fn swscale_version ( ) -> libc :: c_uint ; } extern "C" { # [ doc = " Return the libswscale build-time configuration." ] pub fn swscale_configuration ( ) -> * const libc :: c_char ; } extern "C" { # [ doc = " Return the libswscale license." ] pub fn swscale_license ( ) -> * const libc :: c_char ; } extern "C" { # [ doc = " Return a pointer to yuv<->rgb coefficients for the given colorspace" ] # [ doc = " suitable for sws_setColorspaceDetails()." ] # [ doc = "" ] # [ doc = " @param colorspace One of the SWS_CS_* macros. If invalid," ] # [ doc = " SWS_CS_DEFAULT is used." ] pub fn sws_getCoefficients ( colorspace : libc :: c_int ) -> * const libc :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct SwsVector { # [ doc = "< pointer to the list of coefficients" ] pub coeff : * mut f64 , # [ doc = "< number of coefficients in the vector" ] pub length : libc :: c_int , } # [ test ] fn bindgen_test_layout_SwsVector ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SwsVector > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( SwsVector ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SwsVector > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( SwsVector ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SwsVector > ( ) ) ) . coeff as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( SwsVector ) , "::" , stringify ! ( coeff ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SwsVector > ( ) ) ) . length as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( SwsVector ) , "::" , stringify ! ( length ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct SwsFilter { pub lumH : * mut SwsVector , pub lumV : * mut SwsVector , pub chrH : * mut SwsVector , pub chrV : * mut SwsVector , } # [ test ] fn bindgen_test_layout_SwsFilter ( ) { assert_eq ! ( :: std :: mem :: size_of :: < SwsFilter > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( SwsFilter ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < SwsFilter > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( SwsFilter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SwsFilter > ( ) ) ) . lumH as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( SwsFilter ) , "::" , stringify ! ( lumH ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SwsFilter > ( ) ) ) . lumV as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( SwsFilter ) , "::" , stringify ! ( lumV ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SwsFilter > ( ) ) ) . chrH as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( SwsFilter ) , "::" , stringify ! ( chrH ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < SwsFilter > ( ) ) ) . chrV as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( SwsFilter ) , "::" , stringify ! ( chrV ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct SwsContext { _unused : [ u8 ; 0 ] , } extern "C" { # [ doc = " Return a positive value if pix_fmt is a supported input format, 0" ] # [ doc = " otherwise." ] pub fn sws_isSupportedInput ( pix_fmt : AVPixelFormat ) -> libc :: c_int ; } extern "C" { # [ doc = " Return a positive value if pix_fmt is a supported output format, 0" ] # [ doc = " otherwise." ] pub fn sws_isSupportedOutput ( pix_fmt : AVPixelFormat ) -> libc :: c_int ; } extern "C" { # [ doc = " @param[in]  pix_fmt the pixel format" ] # [ doc = " @return a positive value if an endianness conversion for pix_fmt is" ] # [ doc = " supported, 0 otherwise." ] pub fn sws_isSupportedEndiannessConversion ( pix_fmt : AVPixelFormat ) -> libc :: c_int ; } extern "C" { # [ doc = " Allocate an empty SwsContext. This must be filled and passed to" ] # [ doc = " sws_init_context(). For filling see AVOptions, options.c and" ] # [ doc = " sws_setColorspaceDetails()." ] pub fn sws_alloc_context ( ) -> * mut SwsContext ; } extern "C" { # [ doc = " Initialize the swscaler context sws_context." ] # [ doc = "" ] # [ doc = " @return zero or positive value on success, a negative value on" ] # [ doc = " error" ] pub fn sws_init_context ( sws_context : * mut SwsContext , srcFilter : * mut SwsFilter , dstFilter : * mut SwsFilter ) -> libc :: c_int ; } extern "C" { # [ doc = " Free the swscaler context swsContext." ] # [ doc = " If swsContext is NULL, then does nothing." ] pub fn sws_freeContext ( swsContext : * mut SwsContext ) ; } extern "C" { # [ doc = " Allocate and return an SwsContext. You need it to perform" ] # [ doc = " scaling/conversion operations using sws_scale()." ] # [ doc = "" ] # [ doc = " @param srcW the width of the source image" ] # [ doc = " @param srcH the height of the source image" ] # [ doc = " @param srcFormat the source image format" ] # [ doc = " @param dstW the width of the destination image" ] # [ doc = " @param dstH the height of the destination image" ] # [ doc = " @param dstFormat the destination image format" ] # [ doc = " @param flags specify which algorithm and options to use for rescaling" ] # [ doc = " @param param extra parameters to tune the used scaler" ] # [ doc = "              For SWS_BICUBIC param[0] and [1] tune the shape of the basis" ] # [ doc = "              function, param[0] tunes f(1) and param[1] f´(1)" ] # [ doc = "              For SWS_GAUSS param[0] tunes the exponent and thus cutoff" ] # [ doc = "              frequency" ] # [ doc = "              For SWS_LANCZOS param[0] tunes the width of the window function" ] # [ doc = " @return a pointer to an allocated context, or NULL in case of error" ] # [ doc = " @note this function is to be removed after a saner alternative is" ] # [ doc = "       written" ] pub fn sws_getContext ( srcW : libc :: c_int , srcH : libc :: c_int , srcFormat : AVPixelFormat , dstW : libc :: c_int , dstH : libc :: c_int , dstFormat : AVPixelFormat , flags : libc :: c_int , srcFilter : * mut SwsFilter , dstFilter : * mut SwsFilter , param : * const f64 ) -> * mut SwsContext ; } extern "C" { # [ doc = " Scale the image slice in srcSlice and put the resulting scaled" ] # [ doc = " slice in the image in dst. A slice is a sequence of consecutive" ] # [ doc = " rows in an image." ] # [ doc = "" ] # [ doc = " Slices have to be provided in sequential order, either in" ] # [ doc = " top-bottom or bottom-top order. If slices are provided in" ] # [ doc = " non-sequential order the behavior of the function is undefined." ] # [ doc = "" ] # [ doc = " @param c         the scaling context previously created with" ] # [ doc = "                  sws_getContext()" ] # [ doc = " @param srcSlice  the array containing the pointers to the planes of" ] # [ doc = "                  the source slice" ] # [ doc = " @param srcStride the array containing the strides for each plane of" ] # [ doc = "                  the source image" ] # [ doc = " @param srcSliceY the position in the source image of the slice to" ] # [ doc = "                  process, that is the number (counted starting from" ] # [ doc = "                  zero) in the image of the first row of the slice" ] # [ doc = " @param srcSliceH the height of the source slice, that is the number" ] # [ doc = "                  of rows in the slice" ] # [ doc = " @param dst       the array containing the pointers to the planes of" ] # [ doc = "                  the destination image" ] # [ doc = " @param dstStride the array containing the strides for each plane of" ] # [ doc = "                  the destination image" ] # [ doc = " @return          the height of the output slice" ] pub fn sws_scale ( c : * mut SwsContext , srcSlice : * const * const u8 , srcStride : * const libc :: c_int , srcSliceY : libc :: c_int , srcSliceH : libc :: c_int , dst : * const * mut u8 , dstStride : * const libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " @param dstRange flag indicating the while-black range of the output (1=jpeg / 0=mpeg)" ] # [ doc = " @param srcRange flag indicating the while-black range of the input (1=jpeg / 0=mpeg)" ] # [ doc = " @param table the yuv2rgb coefficients describing the output yuv space, normally ff_yuv2rgb_coeffs[x]" ] # [ doc = " @param inv_table the yuv2rgb coefficients describing the input yuv space, normally ff_yuv2rgb_coeffs[x]" ] # [ doc = " @param brightness 16.16 fixed point brightness correction" ] # [ doc = " @param contrast 16.16 fixed point contrast correction" ] # [ doc = " @param saturation 16.16 fixed point saturation correction" ] # [ doc = " @return -1 if not supported" ] pub fn sws_setColorspaceDetails ( c : * mut SwsContext , inv_table : * const libc :: c_int , srcRange : libc :: c_int , table : * const libc :: c_int , dstRange : libc :: c_int , brightness : libc :: c_int , contrast : libc :: c_int , saturation : libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " @return -1 if not supported" ] pub fn sws_getColorspaceDetails ( c : * mut SwsContext , inv_table : * mut * mut libc :: c_int , srcRange : * mut libc :: c_int , table : * mut * mut libc :: c_int , dstRange : * mut libc :: c_int , brightness : * mut libc :: c_int , contrast : * mut libc :: c_int , saturation : * mut libc :: c_int ) -> libc :: c_int ; } extern "C" { # [ doc = " Allocate and return an uninitialized vector with length coefficients." ] pub fn sws_allocVec ( length : libc :: c_int ) -> * mut SwsVector ; } extern "C" { # [ doc = " Return a normalized Gaussian curve used to filter stuff" ] # [ doc = " quality = 3 is high quality, lower is lower quality." ] pub fn sws_getGaussianVec ( variance : f64 , quality : f64 ) -> * mut SwsVector ; } extern "C" { # [ doc = " Scale all the coefficients of a by the scalar value." ] pub fn sws_scaleVec ( a : * mut SwsVector , scalar : f64 ) ; } extern "C" { # [ doc = " Scale all the coefficients of a so that their sum equals height." ] pub fn sws_normalizeVec ( a : * mut SwsVector , height : f64 ) ; } extern "C" { pub fn sws_getConstVec ( c : f64 , length : libc :: c_int ) -> * mut SwsVector ; } extern "C" { pub fn sws_getIdentityVec ( ) -> * mut SwsVector ; } extern "C" { pub fn sws_convVec ( a : * mut SwsVector , b : * mut SwsVector ) ; } extern "C" { pub fn sws_addVec ( a : * mut SwsVector , b : * mut SwsVector ) ; } extern "C" { pub fn sws_subVec ( a : * mut SwsVector , b : * mut SwsVector ) ; } extern "C" { pub fn sws_shiftVec ( a : * mut SwsVector , shift : libc :: c_int ) ; } extern "C" { pub fn sws_cloneVec ( a : * mut SwsVector ) -> * mut SwsVector ; } extern "C" { pub fn sws_printVec2 ( a : * mut SwsVector , log_ctx : * mut AVClass , log_level : libc :: c_int ) ; } extern "C" { pub fn sws_freeVec ( a : * mut SwsVector ) ; } extern "C" { pub fn sws_getDefaultFilter ( lumaGBlur : f32 , chromaGBlur : f32 , lumaSharpen : f32 , chromaSharpen : f32 , chromaHShift : f32 , chromaVShift : f32 , verbose : libc :: c_int ) -> * mut SwsFilter ; } extern "C" { pub fn sws_freeFilter ( filter : * mut SwsFilter ) ; } extern "C" { # [ doc = " Check if context can be reused, otherwise reallocate a new one." ] # [ doc = "" ] # [ doc = " If context is NULL, just calls sws_getContext() to get a new" ] # [ doc = " context. Otherwise, checks if the parameters are the ones already" ] # [ doc = " saved in context. If that is the case, returns the current" ] # [ doc = " context. Otherwise, frees context and gets a new context with" ] # [ doc = " the new parameters." ] # [ doc = "" ] # [ doc = " Be warned that srcFilter and dstFilter are not checked, they" ] # [ doc = " are assumed to remain the same." ] pub fn sws_getCachedContext ( context : * mut SwsContext , srcW : libc :: c_int , srcH : libc :: c_int , srcFormat : AVPixelFormat , dstW : libc :: c_int , dstH : libc :: c_int , dstFormat : AVPixelFormat , flags : libc :: c_int , srcFilter : * mut SwsFilter , dstFilter : * mut SwsFilter , param : * const f64 ) -> * mut SwsContext ; } extern "C" { # [ doc = " Convert an 8-bit paletted frame into a frame with a color depth of 32 bits." ] # [ doc = "" ] # [ doc = " The output frame will have the same packed format as the palette." ] # [ doc = "" ] # [ doc = " @param src        source frame buffer" ] # [ doc = " @param dst        destination frame buffer" ] # [ doc = " @param num_pixels number of pixels to convert" ] # [ doc = " @param palette    array with [256] entries, which must match color arrangement (RGB or BGR) of src" ] pub fn sws_convertPalette8ToPacked32 ( src : * const u8 , dst : * mut u8 , num_pixels : libc :: c_int , palette : * const u8 ) ; } extern "C" { # [ doc = " Convert an 8-bit paletted frame into a frame with a color depth of 24 bits." ] # [ doc = "" ] # [ doc = " With the palette format \"ABCD\", the destination frame ends up with the format \"ABC\"." ] # [ doc = "" ] # [ doc = " @param src        source frame buffer" ] # [ doc = " @param dst        destination frame buffer" ] # [ doc = " @param num_pixels number of pixels to convert" ] # [ doc = " @param palette    array with [256] entries, which must match color arrangement (RGB or BGR) of src" ] pub fn sws_convertPalette8ToPacked24 ( src : * const u8 , dst : * mut u8 , num_pixels : libc :: c_int , palette : * const u8 ) ; } extern "C" { # [ doc = " Get the AVClass for swsContext. It can be used in combination with" ] # [ doc = " AV_OPT_SEARCH_FAKE_OBJ for examining options." ] # [ doc = "" ] # [ doc = " @see av_opt_find()." ] pub fn sws_get_class ( ) -> * const AVClass ; } pub type __builtin_va_list = [ __va_list_tag ; 1usize ] ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct __va_list_tag { pub gp_offset : libc :: c_uint , pub fp_offset : libc :: c_uint , pub overflow_arg_area : * mut libc :: c_void , pub reg_save_area : * mut libc :: c_void , } # [ test ] fn bindgen_test_layout___va_list_tag ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __va_list_tag > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( __va_list_tag ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __va_list_tag > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __va_list_tag ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __va_list_tag > ( ) ) ) . gp_offset as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __va_list_tag ) , "::" , stringify ! ( gp_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __va_list_tag > ( ) ) ) . fp_offset as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( __va_list_tag ) , "::" , stringify ! ( fp_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __va_list_tag > ( ) ) ) . overflow_arg_area as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( __va_list_tag ) , "::" , stringify ! ( overflow_arg_area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __va_list_tag > ( ) ) ) . reg_save_area as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( __va_list_tag ) , "::" , stringify ! ( reg_save_area ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct __locale_data { 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 , PartialEq , Eq ) ] pub struct AVCodecHWConfigInternal { pub _address : u8 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct URLContext { pub _address : u8 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVFilterCommand { pub _address : u8 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone , PartialEq , Eq ) ] pub struct AVFilterChannelLayouts { pub _address : u8 , }