/* automatically generated by rust-bindgen 0.72.1 */

pub const _STDINT_H: u32 = 1;
pub const _FEATURES_H: u32 = 1;
pub const _DEFAULT_SOURCE: u32 = 1;
pub const __GLIBC_USE_ISOC2Y: u32 = 0;
pub const __GLIBC_USE_ISOC23: 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 = 202405;
pub const __USE_POSIX: u32 = 1;
pub const __USE_POSIX2: u32 = 1;
pub const __USE_POSIX199309: u32 = 1;
pub const __USE_POSIX199506: u32 = 1;
pub const __USE_XOPEN2K: u32 = 1;
pub const __USE_XOPEN2K8: u32 = 1;
pub const _ATFILE_SOURCE: u32 = 1;
pub const __USE_XOPEN2K24: 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_TIME_BITS64: u32 = 1;
pub const __USE_MISC: u32 = 1;
pub const __USE_ATFILE: u32 = 1;
pub const __USE_FORTIFY_LEVEL: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
pub const __GLIBC_USE_C23_STRTOL: 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 = 43;
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_C23: 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_C23: 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 _BITS_STDINT_LEAST_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 MPV_ENABLE_DEPRECATED: u32 = 1;
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,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of max_align_t"][::std::mem::size_of::<max_align_t>() - 32usize];
    ["Alignment of max_align_t"][::std::mem::align_of::<max_align_t>() - 16usize];
    ["Offset of field: max_align_t::__clang_max_align_nonce1"]
        [::std::mem::offset_of!(max_align_t, __clang_max_align_nonce1) - 0usize];
    ["Offset of field: max_align_t::__clang_max_align_nonce2"]
        [::std::mem::offset_of!(max_align_t, __clang_max_align_nonce2) - 16usize];
};
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],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of __fsid_t"][::std::mem::size_of::<__fsid_t>() - 8usize];
    ["Alignment of __fsid_t"][::std::mem::align_of::<__fsid_t>() - 4usize];
    ["Offset of field: __fsid_t::__val"][::std::mem::offset_of!(__fsid_t, __val) - 0usize];
};
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;
unsafe extern "C" {
    pub fn mpv_client_api_version() -> ::std::os::raw::c_ulong;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mpv_handle {
    _unused: [u8; 0],
}
pub const mpv_error_MPV_ERROR_SUCCESS: mpv_error = 0;
pub const mpv_error_MPV_ERROR_EVENT_QUEUE_FULL: mpv_error = -1;
pub const mpv_error_MPV_ERROR_NOMEM: mpv_error = -2;
pub const mpv_error_MPV_ERROR_UNINITIALIZED: mpv_error = -3;
pub const mpv_error_MPV_ERROR_INVALID_PARAMETER: mpv_error = -4;
pub const mpv_error_MPV_ERROR_OPTION_NOT_FOUND: mpv_error = -5;
pub const mpv_error_MPV_ERROR_OPTION_FORMAT: mpv_error = -6;
pub const mpv_error_MPV_ERROR_OPTION_ERROR: mpv_error = -7;
pub const mpv_error_MPV_ERROR_PROPERTY_NOT_FOUND: mpv_error = -8;
pub const mpv_error_MPV_ERROR_PROPERTY_FORMAT: mpv_error = -9;
pub const mpv_error_MPV_ERROR_PROPERTY_UNAVAILABLE: mpv_error = -10;
pub const mpv_error_MPV_ERROR_PROPERTY_ERROR: mpv_error = -11;
pub const mpv_error_MPV_ERROR_COMMAND: mpv_error = -12;
pub const mpv_error_MPV_ERROR_LOADING_FAILED: mpv_error = -13;
pub const mpv_error_MPV_ERROR_AO_INIT_FAILED: mpv_error = -14;
pub const mpv_error_MPV_ERROR_VO_INIT_FAILED: mpv_error = -15;
pub const mpv_error_MPV_ERROR_NOTHING_TO_PLAY: mpv_error = -16;
pub const mpv_error_MPV_ERROR_UNKNOWN_FORMAT: mpv_error = -17;
pub const mpv_error_MPV_ERROR_UNSUPPORTED: mpv_error = -18;
pub const mpv_error_MPV_ERROR_NOT_IMPLEMENTED: mpv_error = -19;
pub const mpv_error_MPV_ERROR_GENERIC: mpv_error = -20;
pub type mpv_error = ::std::os::raw::c_int;
unsafe extern "C" {
    pub fn mpv_error_string(error: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
    pub fn mpv_free(data: *mut ::std::os::raw::c_void);
}
unsafe extern "C" {
    pub fn mpv_client_name(ctx: *mut mpv_handle) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
    pub fn mpv_client_id(ctx: *mut mpv_handle) -> i64;
}
unsafe extern "C" {
    pub fn mpv_create() -> *mut mpv_handle;
}
unsafe extern "C" {
    pub fn mpv_initialize(ctx: *mut mpv_handle) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_destroy(ctx: *mut mpv_handle);
}
unsafe extern "C" {
    pub fn mpv_terminate_destroy(ctx: *mut mpv_handle);
}
unsafe extern "C" {
    pub fn mpv_create_client(ctx: *mut mpv_handle, name: *const ::std::os::raw::c_char) -> *mut mpv_handle;
}
unsafe extern "C" {
    pub fn mpv_create_weak_client(ctx: *mut mpv_handle, name: *const ::std::os::raw::c_char) -> *mut mpv_handle;
}
unsafe extern "C" {
    pub fn mpv_load_config_file(ctx: *mut mpv_handle, filename: *const ::std::os::raw::c_char)
        -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_get_time_ns(ctx: *mut mpv_handle) -> i64;
}
unsafe extern "C" {
    pub fn mpv_get_time_us(ctx: *mut mpv_handle) -> i64;
}
pub const mpv_format_MPV_FORMAT_NONE: mpv_format = 0;
pub const mpv_format_MPV_FORMAT_STRING: mpv_format = 1;
pub const mpv_format_MPV_FORMAT_OSD_STRING: mpv_format = 2;
pub const mpv_format_MPV_FORMAT_FLAG: mpv_format = 3;
pub const mpv_format_MPV_FORMAT_INT64: mpv_format = 4;
pub const mpv_format_MPV_FORMAT_DOUBLE: mpv_format = 5;
pub const mpv_format_MPV_FORMAT_NODE: mpv_format = 6;
pub const mpv_format_MPV_FORMAT_NODE_ARRAY: mpv_format = 7;
pub const mpv_format_MPV_FORMAT_NODE_MAP: mpv_format = 8;
pub const mpv_format_MPV_FORMAT_BYTE_ARRAY: mpv_format = 9;
pub type mpv_format = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct mpv_node {
    pub u: mpv_node__bindgen_ty_1,
    pub format: mpv_format,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union mpv_node__bindgen_ty_1 {
    pub string: *mut ::std::os::raw::c_char,
    pub flag: ::std::os::raw::c_int,
    pub int64: i64,
    pub double_: f64,
    pub list: *mut mpv_node_list,
    pub ba: *mut mpv_byte_array,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of mpv_node__bindgen_ty_1"][::std::mem::size_of::<mpv_node__bindgen_ty_1>() - 8usize];
    ["Alignment of mpv_node__bindgen_ty_1"][::std::mem::align_of::<mpv_node__bindgen_ty_1>() - 8usize];
    ["Offset of field: mpv_node__bindgen_ty_1::string"]
        [::std::mem::offset_of!(mpv_node__bindgen_ty_1, string) - 0usize];
    ["Offset of field: mpv_node__bindgen_ty_1::flag"][::std::mem::offset_of!(mpv_node__bindgen_ty_1, flag) - 0usize];
    ["Offset of field: mpv_node__bindgen_ty_1::int64"][::std::mem::offset_of!(mpv_node__bindgen_ty_1, int64) - 0usize];
    ["Offset of field: mpv_node__bindgen_ty_1::double_"]
        [::std::mem::offset_of!(mpv_node__bindgen_ty_1, double_) - 0usize];
    ["Offset of field: mpv_node__bindgen_ty_1::list"][::std::mem::offset_of!(mpv_node__bindgen_ty_1, list) - 0usize];
    ["Offset of field: mpv_node__bindgen_ty_1::ba"][::std::mem::offset_of!(mpv_node__bindgen_ty_1, ba) - 0usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of mpv_node"][::std::mem::size_of::<mpv_node>() - 16usize];
    ["Alignment of mpv_node"][::std::mem::align_of::<mpv_node>() - 8usize];
    ["Offset of field: mpv_node::u"][::std::mem::offset_of!(mpv_node, u) - 0usize];
    ["Offset of field: mpv_node::format"][::std::mem::offset_of!(mpv_node, format) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mpv_node_list {
    pub num: ::std::os::raw::c_int,
    pub values: *mut mpv_node,
    pub keys: *mut *mut ::std::os::raw::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of mpv_node_list"][::std::mem::size_of::<mpv_node_list>() - 24usize];
    ["Alignment of mpv_node_list"][::std::mem::align_of::<mpv_node_list>() - 8usize];
    ["Offset of field: mpv_node_list::num"][::std::mem::offset_of!(mpv_node_list, num) - 0usize];
    ["Offset of field: mpv_node_list::values"][::std::mem::offset_of!(mpv_node_list, values) - 8usize];
    ["Offset of field: mpv_node_list::keys"][::std::mem::offset_of!(mpv_node_list, keys) - 16usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mpv_byte_array {
    pub data: *mut ::std::os::raw::c_void,
    pub size: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of mpv_byte_array"][::std::mem::size_of::<mpv_byte_array>() - 16usize];
    ["Alignment of mpv_byte_array"][::std::mem::align_of::<mpv_byte_array>() - 8usize];
    ["Offset of field: mpv_byte_array::data"][::std::mem::offset_of!(mpv_byte_array, data) - 0usize];
    ["Offset of field: mpv_byte_array::size"][::std::mem::offset_of!(mpv_byte_array, size) - 8usize];
};
unsafe extern "C" {
    pub fn mpv_free_node_contents(node: *mut mpv_node);
}
unsafe extern "C" {
    pub fn mpv_set_option(
        ctx: *mut mpv_handle,
        name: *const ::std::os::raw::c_char,
        format: mpv_format,
        data: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_set_option_string(
        ctx: *mut mpv_handle,
        name: *const ::std::os::raw::c_char,
        data: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_command(ctx: *mut mpv_handle, args: *mut *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_command_node(ctx: *mut mpv_handle, args: *mut mpv_node, result: *mut mpv_node) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_command_ret(
        ctx: *mut mpv_handle,
        args: *mut *const ::std::os::raw::c_char,
        result: *mut mpv_node,
    ) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_command_string(ctx: *mut mpv_handle, args: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_command_async(
        ctx: *mut mpv_handle,
        reply_userdata: u64,
        args: *mut *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_command_node_async(
        ctx: *mut mpv_handle,
        reply_userdata: u64,
        args: *mut mpv_node,
    ) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_abort_async_command(ctx: *mut mpv_handle, reply_userdata: u64);
}
unsafe extern "C" {
    pub fn mpv_set_property(
        ctx: *mut mpv_handle,
        name: *const ::std::os::raw::c_char,
        format: mpv_format,
        data: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_set_property_string(
        ctx: *mut mpv_handle,
        name: *const ::std::os::raw::c_char,
        data: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_del_property(ctx: *mut mpv_handle, name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_set_property_async(
        ctx: *mut mpv_handle,
        reply_userdata: u64,
        name: *const ::std::os::raw::c_char,
        format: mpv_format,
        data: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_get_property(
        ctx: *mut mpv_handle,
        name: *const ::std::os::raw::c_char,
        format: mpv_format,
        data: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_get_property_string(
        ctx: *mut mpv_handle,
        name: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
    pub fn mpv_get_property_osd_string(
        ctx: *mut mpv_handle,
        name: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
unsafe extern "C" {
    pub fn mpv_get_property_async(
        ctx: *mut mpv_handle,
        reply_userdata: u64,
        name: *const ::std::os::raw::c_char,
        format: mpv_format,
    ) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_observe_property(
        mpv: *mut mpv_handle,
        reply_userdata: u64,
        name: *const ::std::os::raw::c_char,
        format: mpv_format,
    ) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_unobserve_property(mpv: *mut mpv_handle, registered_reply_userdata: u64) -> ::std::os::raw::c_int;
}
pub const mpv_event_id_MPV_EVENT_NONE: mpv_event_id = 0;
pub const mpv_event_id_MPV_EVENT_SHUTDOWN: mpv_event_id = 1;
pub const mpv_event_id_MPV_EVENT_LOG_MESSAGE: mpv_event_id = 2;
pub const mpv_event_id_MPV_EVENT_GET_PROPERTY_REPLY: mpv_event_id = 3;
pub const mpv_event_id_MPV_EVENT_SET_PROPERTY_REPLY: mpv_event_id = 4;
pub const mpv_event_id_MPV_EVENT_COMMAND_REPLY: mpv_event_id = 5;
pub const mpv_event_id_MPV_EVENT_START_FILE: mpv_event_id = 6;
pub const mpv_event_id_MPV_EVENT_END_FILE: mpv_event_id = 7;
pub const mpv_event_id_MPV_EVENT_FILE_LOADED: mpv_event_id = 8;
pub const mpv_event_id_MPV_EVENT_IDLE: mpv_event_id = 11;
pub const mpv_event_id_MPV_EVENT_TICK: mpv_event_id = 14;
pub const mpv_event_id_MPV_EVENT_CLIENT_MESSAGE: mpv_event_id = 16;
pub const mpv_event_id_MPV_EVENT_VIDEO_RECONFIG: mpv_event_id = 17;
pub const mpv_event_id_MPV_EVENT_AUDIO_RECONFIG: mpv_event_id = 18;
pub const mpv_event_id_MPV_EVENT_SEEK: mpv_event_id = 20;
pub const mpv_event_id_MPV_EVENT_PLAYBACK_RESTART: mpv_event_id = 21;
pub const mpv_event_id_MPV_EVENT_PROPERTY_CHANGE: mpv_event_id = 22;
pub const mpv_event_id_MPV_EVENT_QUEUE_OVERFLOW: mpv_event_id = 24;
pub const mpv_event_id_MPV_EVENT_HOOK: mpv_event_id = 25;
pub type mpv_event_id = ::std::os::raw::c_uint;
unsafe extern "C" {
    pub fn mpv_event_name(event: mpv_event_id) -> *const ::std::os::raw::c_char;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mpv_event_property {
    pub name: *const ::std::os::raw::c_char,
    pub format: mpv_format,
    pub data: *mut ::std::os::raw::c_void,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of mpv_event_property"][::std::mem::size_of::<mpv_event_property>() - 24usize];
    ["Alignment of mpv_event_property"][::std::mem::align_of::<mpv_event_property>() - 8usize];
    ["Offset of field: mpv_event_property::name"][::std::mem::offset_of!(mpv_event_property, name) - 0usize];
    ["Offset of field: mpv_event_property::format"][::std::mem::offset_of!(mpv_event_property, format) - 8usize];
    ["Offset of field: mpv_event_property::data"][::std::mem::offset_of!(mpv_event_property, data) - 16usize];
};
pub const mpv_log_level_MPV_LOG_LEVEL_NONE: mpv_log_level = 0;
pub const mpv_log_level_MPV_LOG_LEVEL_FATAL: mpv_log_level = 10;
pub const mpv_log_level_MPV_LOG_LEVEL_ERROR: mpv_log_level = 20;
pub const mpv_log_level_MPV_LOG_LEVEL_WARN: mpv_log_level = 30;
pub const mpv_log_level_MPV_LOG_LEVEL_INFO: mpv_log_level = 40;
pub const mpv_log_level_MPV_LOG_LEVEL_V: mpv_log_level = 50;
pub const mpv_log_level_MPV_LOG_LEVEL_DEBUG: mpv_log_level = 60;
pub const mpv_log_level_MPV_LOG_LEVEL_TRACE: mpv_log_level = 70;
pub type mpv_log_level = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mpv_event_log_message {
    pub prefix: *const ::std::os::raw::c_char,
    pub level: *const ::std::os::raw::c_char,
    pub text: *const ::std::os::raw::c_char,
    pub log_level: mpv_log_level,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of mpv_event_log_message"][::std::mem::size_of::<mpv_event_log_message>() - 32usize];
    ["Alignment of mpv_event_log_message"][::std::mem::align_of::<mpv_event_log_message>() - 8usize];
    ["Offset of field: mpv_event_log_message::prefix"][::std::mem::offset_of!(mpv_event_log_message, prefix) - 0usize];
    ["Offset of field: mpv_event_log_message::level"][::std::mem::offset_of!(mpv_event_log_message, level) - 8usize];
    ["Offset of field: mpv_event_log_message::text"][::std::mem::offset_of!(mpv_event_log_message, text) - 16usize];
    ["Offset of field: mpv_event_log_message::log_level"]
        [::std::mem::offset_of!(mpv_event_log_message, log_level) - 24usize];
};
pub const mpv_end_file_reason_MPV_END_FILE_REASON_EOF: mpv_end_file_reason = 0;
pub const mpv_end_file_reason_MPV_END_FILE_REASON_STOP: mpv_end_file_reason = 2;
pub const mpv_end_file_reason_MPV_END_FILE_REASON_QUIT: mpv_end_file_reason = 3;
pub const mpv_end_file_reason_MPV_END_FILE_REASON_ERROR: mpv_end_file_reason = 4;
pub const mpv_end_file_reason_MPV_END_FILE_REASON_REDIRECT: mpv_end_file_reason = 5;
pub type mpv_end_file_reason = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mpv_event_start_file {
    pub playlist_entry_id: i64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of mpv_event_start_file"][::std::mem::size_of::<mpv_event_start_file>() - 8usize];
    ["Alignment of mpv_event_start_file"][::std::mem::align_of::<mpv_event_start_file>() - 8usize];
    ["Offset of field: mpv_event_start_file::playlist_entry_id"]
        [::std::mem::offset_of!(mpv_event_start_file, playlist_entry_id) - 0usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mpv_event_end_file {
    pub reason: mpv_end_file_reason,
    pub error: ::std::os::raw::c_int,
    pub playlist_entry_id: i64,
    pub playlist_insert_id: i64,
    pub playlist_insert_num_entries: ::std::os::raw::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of mpv_event_end_file"][::std::mem::size_of::<mpv_event_end_file>() - 32usize];
    ["Alignment of mpv_event_end_file"][::std::mem::align_of::<mpv_event_end_file>() - 8usize];
    ["Offset of field: mpv_event_end_file::reason"][::std::mem::offset_of!(mpv_event_end_file, reason) - 0usize];
    ["Offset of field: mpv_event_end_file::error"][::std::mem::offset_of!(mpv_event_end_file, error) - 4usize];
    ["Offset of field: mpv_event_end_file::playlist_entry_id"]
        [::std::mem::offset_of!(mpv_event_end_file, playlist_entry_id) - 8usize];
    ["Offset of field: mpv_event_end_file::playlist_insert_id"]
        [::std::mem::offset_of!(mpv_event_end_file, playlist_insert_id) - 16usize];
    ["Offset of field: mpv_event_end_file::playlist_insert_num_entries"]
        [::std::mem::offset_of!(mpv_event_end_file, playlist_insert_num_entries) - 24usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mpv_event_client_message {
    pub num_args: ::std::os::raw::c_int,
    pub args: *mut *const ::std::os::raw::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of mpv_event_client_message"][::std::mem::size_of::<mpv_event_client_message>() - 16usize];
    ["Alignment of mpv_event_client_message"][::std::mem::align_of::<mpv_event_client_message>() - 8usize];
    ["Offset of field: mpv_event_client_message::num_args"]
        [::std::mem::offset_of!(mpv_event_client_message, num_args) - 0usize];
    ["Offset of field: mpv_event_client_message::args"]
        [::std::mem::offset_of!(mpv_event_client_message, args) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mpv_event_hook {
    pub name: *const ::std::os::raw::c_char,
    pub id: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of mpv_event_hook"][::std::mem::size_of::<mpv_event_hook>() - 16usize];
    ["Alignment of mpv_event_hook"][::std::mem::align_of::<mpv_event_hook>() - 8usize];
    ["Offset of field: mpv_event_hook::name"][::std::mem::offset_of!(mpv_event_hook, name) - 0usize];
    ["Offset of field: mpv_event_hook::id"][::std::mem::offset_of!(mpv_event_hook, id) - 8usize];
};
#[repr(C)]
#[derive(Copy, Clone)]
pub struct mpv_event_command {
    pub result: mpv_node,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of mpv_event_command"][::std::mem::size_of::<mpv_event_command>() - 16usize];
    ["Alignment of mpv_event_command"][::std::mem::align_of::<mpv_event_command>() - 8usize];
    ["Offset of field: mpv_event_command::result"][::std::mem::offset_of!(mpv_event_command, result) - 0usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mpv_event {
    pub event_id: mpv_event_id,
    pub error: ::std::os::raw::c_int,
    pub reply_userdata: u64,
    pub data: *mut ::std::os::raw::c_void,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of mpv_event"][::std::mem::size_of::<mpv_event>() - 24usize];
    ["Alignment of mpv_event"][::std::mem::align_of::<mpv_event>() - 8usize];
    ["Offset of field: mpv_event::event_id"][::std::mem::offset_of!(mpv_event, event_id) - 0usize];
    ["Offset of field: mpv_event::error"][::std::mem::offset_of!(mpv_event, error) - 4usize];
    ["Offset of field: mpv_event::reply_userdata"][::std::mem::offset_of!(mpv_event, reply_userdata) - 8usize];
    ["Offset of field: mpv_event::data"][::std::mem::offset_of!(mpv_event, data) - 16usize];
};
unsafe extern "C" {
    pub fn mpv_event_to_node(dst: *mut mpv_node, src: *mut mpv_event) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_request_event(
        ctx: *mut mpv_handle,
        event: mpv_event_id,
        enable: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_request_log_messages(
        ctx: *mut mpv_handle,
        min_level: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_wait_event(ctx: *mut mpv_handle, timeout: f64) -> *mut mpv_event;
}
unsafe extern "C" {
    pub fn mpv_wakeup(ctx: *mut mpv_handle);
}
unsafe extern "C" {
    pub fn mpv_set_wakeup_callback(
        ctx: *mut mpv_handle,
        cb: ::std::option::Option<unsafe extern "C" fn(d: *mut ::std::os::raw::c_void)>,
        d: *mut ::std::os::raw::c_void,
    );
}
unsafe extern "C" {
    pub fn mpv_wait_async_requests(ctx: *mut mpv_handle);
}
unsafe extern "C" {
    pub fn mpv_hook_add(
        ctx: *mut mpv_handle,
        reply_userdata: u64,
        name: *const ::std::os::raw::c_char,
        priority: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_hook_continue(ctx: *mut mpv_handle, id: u64) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn mpv_get_wakeup_pipe(ctx: *mut mpv_handle) -> ::std::os::raw::c_int;
}
