/* automatically generated by rust-bindgen 0.65.1 */

pub const _STDINT_H: u32 = 1;
pub const _FEATURES_H: u32 = 1;
pub const _DEFAULT_SOURCE: u32 = 1;
pub const __GLIBC_USE_ISOC2X: u32 = 0;
pub const __USE_ISOC11: u32 = 1;
pub const __USE_ISOC99: u32 = 1;
pub const __USE_ISOC95: u32 = 1;
pub const __USE_POSIX_IMPLICITLY: u32 = 1;
pub const _POSIX_SOURCE: u32 = 1;
pub const _POSIX_C_SOURCE: u32 = 200809;
pub const __USE_POSIX: u32 = 1;
pub const __USE_POSIX2: u32 = 1;
pub const __USE_POSIX199309: u32 = 1;
pub const __USE_POSIX199506: u32 = 1;
pub const __USE_XOPEN2K: u32 = 1;
pub const __USE_XOPEN2K8: u32 = 1;
pub const _ATFILE_SOURCE: u32 = 1;
pub const __WORDSIZE: u32 = 64;
pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
pub const __SYSCALL_WORDSIZE: u32 = 64;
pub const __TIMESIZE: u32 = 64;
pub const __USE_MISC: u32 = 1;
pub const __USE_ATFILE: u32 = 1;
pub const __USE_FORTIFY_LEVEL: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
pub const _STDC_PREDEF_H: u32 = 1;
pub const __STDC_IEC_559__: u32 = 1;
pub const __STDC_IEC_60559_BFP__: u32 = 201404;
pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404;
pub const __STDC_ISO_10646__: u32 = 201706;
pub const __GNU_LIBRARY__: u32 = 6;
pub const __GLIBC__: u32 = 2;
pub const __GLIBC_MINOR__: u32 = 37;
pub const _SYS_CDEFS_H: u32 = 1;
pub const __glibc_c99_flexarr_available: u32 = 1;
pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0;
pub const __HAVE_GENERIC_SELECTION: u32 = 1;
pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0;
pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0;
pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
pub const _BITS_TYPES_H: u32 = 1;
pub const _BITS_TYPESIZES_H: u32 = 1;
pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
pub const __INO_T_MATCHES_INO64_T: u32 = 1;
pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
pub const __STATFS_MATCHES_STATFS64: u32 = 1;
pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1;
pub const __FD_SETSIZE: u32 = 1024;
pub const _BITS_TIME64_H: u32 = 1;
pub const _BITS_WCHAR_H: u32 = 1;
pub const _BITS_STDINT_INTN_H: u32 = 1;
pub const _BITS_STDINT_UINTN_H: u32 = 1;
pub const INT8_MIN: i32 = -128;
pub const INT16_MIN: i32 = -32768;
pub const INT32_MIN: i32 = -2147483648;
pub const INT8_MAX: u32 = 127;
pub const INT16_MAX: u32 = 32767;
pub const INT32_MAX: u32 = 2147483647;
pub const UINT8_MAX: u32 = 255;
pub const UINT16_MAX: u32 = 65535;
pub const UINT32_MAX: u32 = 4294967295;
pub const INT_LEAST8_MIN: i32 = -128;
pub const INT_LEAST16_MIN: i32 = -32768;
pub const INT_LEAST32_MIN: i32 = -2147483648;
pub const INT_LEAST8_MAX: u32 = 127;
pub const INT_LEAST16_MAX: u32 = 32767;
pub const INT_LEAST32_MAX: u32 = 2147483647;
pub const UINT_LEAST8_MAX: u32 = 255;
pub const UINT_LEAST16_MAX: u32 = 65535;
pub const UINT_LEAST32_MAX: u32 = 4294967295;
pub const INT_FAST8_MIN: i32 = -128;
pub const INT_FAST16_MIN: i64 = -9223372036854775808;
pub const INT_FAST32_MIN: i64 = -9223372036854775808;
pub const INT_FAST8_MAX: u32 = 127;
pub const INT_FAST16_MAX: u64 = 9223372036854775807;
pub const INT_FAST32_MAX: u64 = 9223372036854775807;
pub const UINT_FAST8_MAX: u32 = 255;
pub const UINT_FAST16_MAX: i32 = -1;
pub const UINT_FAST32_MAX: i32 = -1;
pub const INTPTR_MIN: i64 = -9223372036854775808;
pub const INTPTR_MAX: u64 = 9223372036854775807;
pub const UINTPTR_MAX: i32 = -1;
pub const PTRDIFF_MIN: i64 = -9223372036854775808;
pub const PTRDIFF_MAX: u64 = 9223372036854775807;
pub const SIG_ATOMIC_MIN: i32 = -2147483648;
pub const SIG_ATOMIC_MAX: u32 = 2147483647;
pub const SIZE_MAX: i32 = -1;
pub const WINT_MIN: u32 = 0;
pub const WINT_MAX: u32 = 4294967295;
pub const __bool_true_false_are_defined: u32 = 1;
pub const true_: u32 = 1;
pub const false_: u32 = 0;
pub const WHISPER_SAMPLE_RATE: u32 = 16000;
pub const WHISPER_N_FFT: u32 = 400;
pub const WHISPER_N_MEL: u32 = 80;
pub const WHISPER_HOP_LENGTH: u32 = 160;
pub const WHISPER_CHUNK_SIZE: u32 = 30;
pub type wchar_t = ::std::os::raw::c_int;
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Copy, Clone)]
pub struct max_align_t {
    pub __clang_max_align_nonce1: ::std::os::raw::c_longlong,
    pub __bindgen_padding_0: u64,
    pub __clang_max_align_nonce2: u128,
}
#[test]
fn bindgen_test_layout_max_align_t() {
    const UNINIT: ::std::mem::MaybeUninit<max_align_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<max_align_t>(),
        32usize,
        concat!("Size of: ", stringify!(max_align_t))
    );
    assert_eq!(
        ::std::mem::align_of::<max_align_t>(),
        16usize,
        concat!("Alignment of ", stringify!(max_align_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce1) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(max_align_t),
            "::",
            stringify!(__clang_max_align_nonce1)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce2) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(max_align_t),
            "::",
            stringify!(__clang_max_align_nonce2)
        )
    );
}
pub type __u_char = ::std::os::raw::c_uchar;
pub type __u_short = ::std::os::raw::c_ushort;
pub type __u_int = ::std::os::raw::c_uint;
pub type __u_long = ::std::os::raw::c_ulong;
pub type __int8_t = ::std::os::raw::c_schar;
pub type __uint8_t = ::std::os::raw::c_uchar;
pub type __int16_t = ::std::os::raw::c_short;
pub type __uint16_t = ::std::os::raw::c_ushort;
pub type __int32_t = ::std::os::raw::c_int;
pub type __uint32_t = ::std::os::raw::c_uint;
pub type __int64_t = ::std::os::raw::c_long;
pub type __uint64_t = ::std::os::raw::c_ulong;
pub type __int_least8_t = __int8_t;
pub type __uint_least8_t = __uint8_t;
pub type __int_least16_t = __int16_t;
pub type __uint_least16_t = __uint16_t;
pub type __int_least32_t = __int32_t;
pub type __uint_least32_t = __uint32_t;
pub type __int_least64_t = __int64_t;
pub type __uint_least64_t = __uint64_t;
pub type __quad_t = ::std::os::raw::c_long;
pub type __u_quad_t = ::std::os::raw::c_ulong;
pub type __intmax_t = ::std::os::raw::c_long;
pub type __uintmax_t = ::std::os::raw::c_ulong;
pub type __dev_t = ::std::os::raw::c_ulong;
pub type __uid_t = ::std::os::raw::c_uint;
pub type __gid_t = ::std::os::raw::c_uint;
pub type __ino_t = ::std::os::raw::c_ulong;
pub type __ino64_t = ::std::os::raw::c_ulong;
pub type __mode_t = ::std::os::raw::c_uint;
pub type __nlink_t = ::std::os::raw::c_ulong;
pub type __off_t = ::std::os::raw::c_long;
pub type __off64_t = ::std::os::raw::c_long;
pub type __pid_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __fsid_t {
    pub __val: [::std::os::raw::c_int; 2usize],
}
#[test]
fn bindgen_test_layout___fsid_t() {
    const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    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::addr_of!((*ptr).__val) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__fsid_t),
            "::",
            stringify!(__val)
        )
    );
}
pub type __clock_t = ::std::os::raw::c_long;
pub type __rlim_t = ::std::os::raw::c_ulong;
pub type __rlim64_t = ::std::os::raw::c_ulong;
pub type __id_t = ::std::os::raw::c_uint;
pub type __time_t = ::std::os::raw::c_long;
pub type __useconds_t = ::std::os::raw::c_uint;
pub type __suseconds_t = ::std::os::raw::c_long;
pub type __suseconds64_t = ::std::os::raw::c_long;
pub type __daddr_t = ::std::os::raw::c_int;
pub type __key_t = ::std::os::raw::c_int;
pub type __clockid_t = ::std::os::raw::c_int;
pub type __timer_t = *mut ::std::os::raw::c_void;
pub type __blksize_t = ::std::os::raw::c_long;
pub type __blkcnt_t = ::std::os::raw::c_long;
pub type __blkcnt64_t = ::std::os::raw::c_long;
pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
pub type __fsword_t = ::std::os::raw::c_long;
pub type __ssize_t = ::std::os::raw::c_long;
pub type __syscall_slong_t = ::std::os::raw::c_long;
pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
pub type __loff_t = __off64_t;
pub type __caddr_t = *mut ::std::os::raw::c_char;
pub type __intptr_t = ::std::os::raw::c_long;
pub type __socklen_t = ::std::os::raw::c_uint;
pub type __sig_atomic_t = ::std::os::raw::c_int;
pub type int_least8_t = __int_least8_t;
pub type int_least16_t = __int_least16_t;
pub type int_least32_t = __int_least32_t;
pub type int_least64_t = __int_least64_t;
pub type uint_least8_t = __uint_least8_t;
pub type uint_least16_t = __uint_least16_t;
pub type uint_least32_t = __uint_least32_t;
pub type uint_least64_t = __uint_least64_t;
pub type int_fast8_t = ::std::os::raw::c_schar;
pub type int_fast16_t = ::std::os::raw::c_long;
pub type int_fast32_t = ::std::os::raw::c_long;
pub type int_fast64_t = ::std::os::raw::c_long;
pub type uint_fast8_t = ::std::os::raw::c_uchar;
pub type uint_fast16_t = ::std::os::raw::c_ulong;
pub type uint_fast32_t = ::std::os::raw::c_ulong;
pub type uint_fast64_t = ::std::os::raw::c_ulong;
pub type intmax_t = __intmax_t;
pub type uintmax_t = __uintmax_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct whisper_context {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct whisper_state {
    _unused: [u8; 0],
}
pub type whisper_token = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct whisper_token_data {
    pub id: whisper_token,
    pub tid: whisper_token,
    pub p: f32,
    pub plog: f32,
    pub pt: f32,
    pub ptsum: f32,
    pub t0: i64,
    pub t1: i64,
    pub vlen: f32,
}
#[test]
fn bindgen_test_layout_whisper_token_data() {
    const UNINIT: ::std::mem::MaybeUninit<whisper_token_data> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<whisper_token_data>(),
        48usize,
        concat!("Size of: ", stringify!(whisper_token_data))
    );
    assert_eq!(
        ::std::mem::align_of::<whisper_token_data>(),
        8usize,
        concat!("Alignment of ", stringify!(whisper_token_data))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_token_data),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).tid) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_token_data),
            "::",
            stringify!(tid)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_token_data),
            "::",
            stringify!(p)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).plog) as usize - ptr as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_token_data),
            "::",
            stringify!(plog)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pt) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_token_data),
            "::",
            stringify!(pt)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).ptsum) as usize - ptr as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_token_data),
            "::",
            stringify!(ptsum)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).t0) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_token_data),
            "::",
            stringify!(t0)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).t1) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_token_data),
            "::",
            stringify!(t1)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).vlen) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_token_data),
            "::",
            stringify!(vlen)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct whisper_model_loader {
    pub context: *mut ::std::os::raw::c_void,
    pub read: ::std::option::Option<
        unsafe extern "C" fn(
            ctx: *mut ::std::os::raw::c_void,
            output: *mut ::std::os::raw::c_void,
            read_size: usize,
        ) -> usize,
    >,
    pub eof: ::std::option::Option<unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> bool>,
    pub close: ::std::option::Option<unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void)>,
}
#[test]
fn bindgen_test_layout_whisper_model_loader() {
    const UNINIT: ::std::mem::MaybeUninit<whisper_model_loader> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<whisper_model_loader>(),
        32usize,
        concat!("Size of: ", stringify!(whisper_model_loader))
    );
    assert_eq!(
        ::std::mem::align_of::<whisper_model_loader>(),
        8usize,
        concat!("Alignment of ", stringify!(whisper_model_loader))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_model_loader),
            "::",
            stringify!(context)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_model_loader),
            "::",
            stringify!(read)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).eof) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_model_loader),
            "::",
            stringify!(eof)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).close) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_model_loader),
            "::",
            stringify!(close)
        )
    );
}
extern "C" {
    pub fn whisper_init_from_file(
        path_model: *const ::std::os::raw::c_char,
    ) -> *mut whisper_context;
}
extern "C" {
    pub fn whisper_init_from_buffer(
        buffer: *mut ::std::os::raw::c_void,
        buffer_size: usize,
    ) -> *mut whisper_context;
}
extern "C" {
    pub fn whisper_init(loader: *mut whisper_model_loader) -> *mut whisper_context;
}
extern "C" {
    pub fn whisper_init_from_file_no_state(
        path_model: *const ::std::os::raw::c_char,
    ) -> *mut whisper_context;
}
extern "C" {
    pub fn whisper_init_from_buffer_no_state(
        buffer: *mut ::std::os::raw::c_void,
        buffer_size: usize,
    ) -> *mut whisper_context;
}
extern "C" {
    pub fn whisper_init_no_state(loader: *mut whisper_model_loader) -> *mut whisper_context;
}
extern "C" {
    pub fn whisper_init_state(ctx: *mut whisper_context) -> *mut whisper_state;
}
extern "C" {
    pub fn whisper_free(ctx: *mut whisper_context);
}
extern "C" {
    pub fn whisper_free_state(state: *mut whisper_state);
}
extern "C" {
    pub fn whisper_pcm_to_mel(
        ctx: *mut whisper_context,
        samples: *const f32,
        n_samples: ::std::os::raw::c_int,
        n_threads: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_pcm_to_mel_with_state(
        ctx: *mut whisper_context,
        state: *mut whisper_state,
        samples: *const f32,
        n_samples: ::std::os::raw::c_int,
        n_threads: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_pcm_to_mel_phase_vocoder(
        ctx: *mut whisper_context,
        samples: *const f32,
        n_samples: ::std::os::raw::c_int,
        n_threads: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_pcm_to_mel_phase_vocoder_with_state(
        ctx: *mut whisper_context,
        state: *mut whisper_state,
        samples: *const f32,
        n_samples: ::std::os::raw::c_int,
        n_threads: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_set_mel(
        ctx: *mut whisper_context,
        data: *const f32,
        n_len: ::std::os::raw::c_int,
        n_mel: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_set_mel_with_state(
        ctx: *mut whisper_context,
        state: *mut whisper_state,
        data: *const f32,
        n_len: ::std::os::raw::c_int,
        n_mel: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_encode(
        ctx: *mut whisper_context,
        offset: ::std::os::raw::c_int,
        n_threads: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_encode_with_state(
        ctx: *mut whisper_context,
        state: *mut whisper_state,
        offset: ::std::os::raw::c_int,
        n_threads: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_decode(
        ctx: *mut whisper_context,
        tokens: *const whisper_token,
        n_tokens: ::std::os::raw::c_int,
        n_past: ::std::os::raw::c_int,
        n_threads: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_decode_with_state(
        ctx: *mut whisper_context,
        state: *mut whisper_state,
        tokens: *const whisper_token,
        n_tokens: ::std::os::raw::c_int,
        n_past: ::std::os::raw::c_int,
        n_threads: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_tokenize(
        ctx: *mut whisper_context,
        text: *const ::std::os::raw::c_char,
        tokens: *mut whisper_token,
        n_max_tokens: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_lang_max_id() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_lang_id(lang: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_lang_str(id: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn whisper_lang_auto_detect(
        ctx: *mut whisper_context,
        offset_ms: ::std::os::raw::c_int,
        n_threads: ::std::os::raw::c_int,
        lang_probs: *mut f32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_lang_auto_detect_with_state(
        ctx: *mut whisper_context,
        state: *mut whisper_state,
        offset_ms: ::std::os::raw::c_int,
        n_threads: ::std::os::raw::c_int,
        lang_probs: *mut f32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_n_len(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_n_len_from_state(state: *mut whisper_state) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_n_vocab(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_n_text_ctx(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_n_audio_ctx(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_is_multilingual(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_model_n_vocab(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_model_n_audio_ctx(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_model_n_audio_state(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_model_n_audio_head(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_model_n_audio_layer(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_model_n_text_ctx(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_model_n_text_state(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_model_n_text_head(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_model_n_text_layer(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_model_n_mels(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_model_ftype(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_model_type(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_get_logits(ctx: *mut whisper_context) -> *mut f32;
}
extern "C" {
    pub fn whisper_get_logits_from_state(state: *mut whisper_state) -> *mut f32;
}
extern "C" {
    pub fn whisper_token_to_str(
        ctx: *mut whisper_context,
        token: whisper_token,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn whisper_model_type_readable(ctx: *mut whisper_context) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn whisper_token_eot(ctx: *mut whisper_context) -> whisper_token;
}
extern "C" {
    pub fn whisper_token_sot(ctx: *mut whisper_context) -> whisper_token;
}
extern "C" {
    pub fn whisper_token_prev(ctx: *mut whisper_context) -> whisper_token;
}
extern "C" {
    pub fn whisper_token_solm(ctx: *mut whisper_context) -> whisper_token;
}
extern "C" {
    pub fn whisper_token_not(ctx: *mut whisper_context) -> whisper_token;
}
extern "C" {
    pub fn whisper_token_beg(ctx: *mut whisper_context) -> whisper_token;
}
extern "C" {
    pub fn whisper_token_lang(
        ctx: *mut whisper_context,
        lang_id: ::std::os::raw::c_int,
    ) -> whisper_token;
}
extern "C" {
    pub fn whisper_token_translate() -> whisper_token;
}
extern "C" {
    pub fn whisper_token_transcribe() -> whisper_token;
}
extern "C" {
    pub fn whisper_print_timings(ctx: *mut whisper_context);
}
extern "C" {
    pub fn whisper_reset_timings(ctx: *mut whisper_context);
}
extern "C" {
    pub fn whisper_print_system_info() -> *const ::std::os::raw::c_char;
}
pub const whisper_sampling_strategy_WHISPER_SAMPLING_GREEDY: whisper_sampling_strategy = 0;
pub const whisper_sampling_strategy_WHISPER_SAMPLING_BEAM_SEARCH: whisper_sampling_strategy = 1;
pub type whisper_sampling_strategy = ::std::os::raw::c_uint;
pub type whisper_new_segment_callback = ::std::option::Option<
    unsafe extern "C" fn(
        ctx: *mut whisper_context,
        state: *mut whisper_state,
        n_new: ::std::os::raw::c_int,
        user_data: *mut ::std::os::raw::c_void,
    ),
>;
pub type whisper_progress_callback = ::std::option::Option<
    unsafe extern "C" fn(
        ctx: *mut whisper_context,
        state: *mut whisper_state,
        progress: ::std::os::raw::c_int,
        user_data: *mut ::std::os::raw::c_void,
    ),
>;
pub type whisper_encoder_begin_callback = ::std::option::Option<
    unsafe extern "C" fn(
        ctx: *mut whisper_context,
        state: *mut whisper_state,
        user_data: *mut ::std::os::raw::c_void,
    ) -> bool,
>;
pub type whisper_logits_filter_callback = ::std::option::Option<
    unsafe extern "C" fn(
        ctx: *mut whisper_context,
        state: *mut whisper_state,
        tokens: *const whisper_token_data,
        n_tokens: ::std::os::raw::c_int,
        logits: *mut f32,
        user_data: *mut ::std::os::raw::c_void,
    ),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct whisper_full_params {
    pub strategy: whisper_sampling_strategy,
    pub n_threads: ::std::os::raw::c_int,
    pub n_max_text_ctx: ::std::os::raw::c_int,
    pub offset_ms: ::std::os::raw::c_int,
    pub duration_ms: ::std::os::raw::c_int,
    pub translate: bool,
    pub no_context: bool,
    pub single_segment: bool,
    pub print_special: bool,
    pub print_progress: bool,
    pub print_realtime: bool,
    pub print_timestamps: bool,
    pub token_timestamps: bool,
    pub thold_pt: f32,
    pub thold_ptsum: f32,
    pub max_len: ::std::os::raw::c_int,
    pub split_on_word: bool,
    pub max_tokens: ::std::os::raw::c_int,
    pub speed_up: bool,
    pub audio_ctx: ::std::os::raw::c_int,
    pub initial_prompt: *const ::std::os::raw::c_char,
    pub prompt_tokens: *const whisper_token,
    pub prompt_n_tokens: ::std::os::raw::c_int,
    pub language: *const ::std::os::raw::c_char,
    pub detect_language: bool,
    pub suppress_blank: bool,
    pub suppress_non_speech_tokens: bool,
    pub temperature: f32,
    pub max_initial_ts: f32,
    pub length_penalty: f32,
    pub temperature_inc: f32,
    pub entropy_thold: f32,
    pub logprob_thold: f32,
    pub no_speech_thold: f32,
    pub greedy: whisper_full_params__bindgen_ty_1,
    pub beam_search: whisper_full_params__bindgen_ty_2,
    pub new_segment_callback: whisper_new_segment_callback,
    pub new_segment_callback_user_data: *mut ::std::os::raw::c_void,
    pub progress_callback: whisper_progress_callback,
    pub progress_callback_user_data: *mut ::std::os::raw::c_void,
    pub encoder_begin_callback: whisper_encoder_begin_callback,
    pub encoder_begin_callback_user_data: *mut ::std::os::raw::c_void,
    pub logits_filter_callback: whisper_logits_filter_callback,
    pub logits_filter_callback_user_data: *mut ::std::os::raw::c_void,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct whisper_full_params__bindgen_ty_1 {
    pub best_of: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_whisper_full_params__bindgen_ty_1() {
    const UNINIT: ::std::mem::MaybeUninit<whisper_full_params__bindgen_ty_1> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<whisper_full_params__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(whisper_full_params__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<whisper_full_params__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(whisper_full_params__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).best_of) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params__bindgen_ty_1),
            "::",
            stringify!(best_of)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct whisper_full_params__bindgen_ty_2 {
    pub beam_size: ::std::os::raw::c_int,
    pub patience: f32,
}
#[test]
fn bindgen_test_layout_whisper_full_params__bindgen_ty_2() {
    const UNINIT: ::std::mem::MaybeUninit<whisper_full_params__bindgen_ty_2> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<whisper_full_params__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(whisper_full_params__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<whisper_full_params__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(whisper_full_params__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).beam_size) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params__bindgen_ty_2),
            "::",
            stringify!(beam_size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).patience) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params__bindgen_ty_2),
            "::",
            stringify!(patience)
        )
    );
}
#[test]
fn bindgen_test_layout_whisper_full_params() {
    const UNINIT: ::std::mem::MaybeUninit<whisper_full_params> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<whisper_full_params>(),
        200usize,
        concat!("Size of: ", stringify!(whisper_full_params))
    );
    assert_eq!(
        ::std::mem::align_of::<whisper_full_params>(),
        8usize,
        concat!("Alignment of ", stringify!(whisper_full_params))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).strategy) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(strategy)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).n_threads) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(n_threads)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).n_max_text_ctx) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(n_max_text_ctx)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).offset_ms) as usize - ptr as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(offset_ms)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).duration_ms) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(duration_ms)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(translate)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).no_context) as usize - ptr as usize },
        21usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(no_context)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).single_segment) as usize - ptr as usize },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(single_segment)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).print_special) as usize - ptr as usize },
        23usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(print_special)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).print_progress) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(print_progress)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).print_realtime) as usize - ptr as usize },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(print_realtime)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).print_timestamps) as usize - ptr as usize },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(print_timestamps)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).token_timestamps) as usize - ptr as usize },
        27usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(token_timestamps)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).thold_pt) as usize - ptr as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(thold_pt)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).thold_ptsum) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(thold_ptsum)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).max_len) as usize - ptr as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(max_len)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).split_on_word) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(split_on_word)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).max_tokens) as usize - ptr as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(max_tokens)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).speed_up) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(speed_up)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).audio_ctx) as usize - ptr as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(audio_ctx)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).initial_prompt) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(initial_prompt)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).prompt_tokens) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(prompt_tokens)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).prompt_n_tokens) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(prompt_n_tokens)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).language) as usize - ptr as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(language)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).detect_language) as usize - ptr as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(detect_language)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).suppress_blank) as usize - ptr as usize },
        89usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(suppress_blank)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).suppress_non_speech_tokens) as usize - ptr as usize },
        90usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(suppress_non_speech_tokens)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).temperature) as usize - ptr as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(temperature)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).max_initial_ts) as usize - ptr as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(max_initial_ts)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).length_penalty) as usize - ptr as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(length_penalty)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).temperature_inc) as usize - ptr as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(temperature_inc)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).entropy_thold) as usize - ptr as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(entropy_thold)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).logprob_thold) as usize - ptr as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(logprob_thold)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).no_speech_thold) as usize - ptr as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(no_speech_thold)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).greedy) as usize - ptr as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(greedy)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).beam_search) as usize - ptr as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(beam_search)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).new_segment_callback) as usize - ptr as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(new_segment_callback)
        )
    );
    assert_eq!(
        unsafe {
            ::std::ptr::addr_of!((*ptr).new_segment_callback_user_data) as usize - ptr as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(new_segment_callback_user_data)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).progress_callback) as usize - ptr as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(progress_callback)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).progress_callback_user_data) as usize - ptr as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(progress_callback_user_data)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).encoder_begin_callback) as usize - ptr as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(encoder_begin_callback)
        )
    );
    assert_eq!(
        unsafe {
            ::std::ptr::addr_of!((*ptr).encoder_begin_callback_user_data) as usize - ptr as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(encoder_begin_callback_user_data)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).logits_filter_callback) as usize - ptr as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(logits_filter_callback)
        )
    );
    assert_eq!(
        unsafe {
            ::std::ptr::addr_of!((*ptr).logits_filter_callback_user_data) as usize - ptr as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(whisper_full_params),
            "::",
            stringify!(logits_filter_callback_user_data)
        )
    );
}
extern "C" {
    pub fn whisper_full_default_params(strategy: whisper_sampling_strategy) -> whisper_full_params;
}
extern "C" {
    pub fn whisper_full(
        ctx: *mut whisper_context,
        params: whisper_full_params,
        samples: *const f32,
        n_samples: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_full_with_state(
        ctx: *mut whisper_context,
        state: *mut whisper_state,
        params: whisper_full_params,
        samples: *const f32,
        n_samples: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_full_parallel(
        ctx: *mut whisper_context,
        params: whisper_full_params,
        samples: *const f32,
        n_samples: ::std::os::raw::c_int,
        n_processors: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_full_n_segments(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_full_n_segments_from_state(state: *mut whisper_state) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_full_lang_id(ctx: *mut whisper_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_full_lang_id_from_state(state: *mut whisper_state) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_full_get_segment_t0(
        ctx: *mut whisper_context,
        i_segment: ::std::os::raw::c_int,
    ) -> i64;
}
extern "C" {
    pub fn whisper_full_get_segment_t0_from_state(
        state: *mut whisper_state,
        i_segment: ::std::os::raw::c_int,
    ) -> i64;
}
extern "C" {
    pub fn whisper_full_get_segment_t1(
        ctx: *mut whisper_context,
        i_segment: ::std::os::raw::c_int,
    ) -> i64;
}
extern "C" {
    pub fn whisper_full_get_segment_t1_from_state(
        state: *mut whisper_state,
        i_segment: ::std::os::raw::c_int,
    ) -> i64;
}
extern "C" {
    pub fn whisper_full_get_segment_text(
        ctx: *mut whisper_context,
        i_segment: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn whisper_full_get_segment_text_from_state(
        state: *mut whisper_state,
        i_segment: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn whisper_full_n_tokens(
        ctx: *mut whisper_context,
        i_segment: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_full_n_tokens_from_state(
        state: *mut whisper_state,
        i_segment: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_full_get_token_text(
        ctx: *mut whisper_context,
        i_segment: ::std::os::raw::c_int,
        i_token: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn whisper_full_get_token_text_from_state(
        ctx: *mut whisper_context,
        state: *mut whisper_state,
        i_segment: ::std::os::raw::c_int,
        i_token: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn whisper_full_get_token_id(
        ctx: *mut whisper_context,
        i_segment: ::std::os::raw::c_int,
        i_token: ::std::os::raw::c_int,
    ) -> whisper_token;
}
extern "C" {
    pub fn whisper_full_get_token_id_from_state(
        state: *mut whisper_state,
        i_segment: ::std::os::raw::c_int,
        i_token: ::std::os::raw::c_int,
    ) -> whisper_token;
}
extern "C" {
    pub fn whisper_full_get_token_data(
        ctx: *mut whisper_context,
        i_segment: ::std::os::raw::c_int,
        i_token: ::std::os::raw::c_int,
    ) -> whisper_token_data;
}
extern "C" {
    pub fn whisper_full_get_token_data_from_state(
        state: *mut whisper_state,
        i_segment: ::std::os::raw::c_int,
        i_token: ::std::os::raw::c_int,
    ) -> whisper_token_data;
}
extern "C" {
    pub fn whisper_full_get_token_p(
        ctx: *mut whisper_context,
        i_segment: ::std::os::raw::c_int,
        i_token: ::std::os::raw::c_int,
    ) -> f32;
}
extern "C" {
    pub fn whisper_full_get_token_p_from_state(
        state: *mut whisper_state,
        i_segment: ::std::os::raw::c_int,
        i_token: ::std::os::raw::c_int,
    ) -> f32;
}
extern "C" {
    pub fn whisper_bench_memcpy(n_threads: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_bench_memcpy_str(
        n_threads: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn whisper_bench_ggml_mul_mat(n_threads: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn whisper_bench_ggml_mul_mat_str(
        n_threads: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
