diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..7cb5678 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Collapse generated bindings on gitlabs MRs +libvlc-sys/bindings.rs gitlab-generated diff --git a/Cargo.lock b/Cargo.lock index 647b3b6..8ef6810 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,22 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "cc" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "509591b7bcd67f4ef775afad7662703b4935daaa6ec0e5605cfb1090b32a2b6d" -dependencies = [ - "find-msvc-tools", - "shlex", -] - -[[package]] -name = "find-msvc-tools" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890" - [[package]] name = "libc" version = "0.2.189" @@ -30,7 +14,6 @@ version = "0.2.0" dependencies = [ "libc", "pkg-config", - "vswhom", ] [[package]] @@ -39,12 +22,6 @@ version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" -[[package]] -name = "shlex" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" - [[package]] name = "vlc-rs" version = "0.3.0" @@ -52,23 +29,3 @@ dependencies = [ "libc", "libvlc-sys", ] - -[[package]] -name = "vswhom" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" -dependencies = [ - "libc", - "vswhom-sys", -] - -[[package]] -name = "vswhom-sys" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" -dependencies = [ - "cc", - "libc", -] diff --git a/README.md b/README.md index 31f2f7c..196c81d 100644 --- a/README.md +++ b/README.md @@ -54,22 +54,11 @@ Other examples are in the examples directory. ### Windows -To build `vlc-rs`, you must either build VLC from source or grab one of the pre-built packages from [videolan.org](https://www.videolan.org/vlc/download-windows.html). +vlc-rs uses libvlc's SDK and it is a required dependency that must be available at runtime. +For that, you must either build VLC from source or grab one of the pre-built packages from [videolan.org](https://www.videolan.org/vlc/download-windows.html). -If you're building for `x86_64`, then you should grab the download labelled "Installer for 64bit version". -That installer is actually a self-extracting ZIP archive, so we can extract the contents without installing VLC itself. - -If you're building for `x86`, then you should either download labelled "7zip package" or the one labelled "Zip package". - -Once you've downloaded your chosen package, you should extract it some place such that its path contains no spaces. -To point `vlc-rs` at your VLC package, you should set an appropriate environment variable: - -- `VLC_LIB_DIR`: Directory of the VLC pacakge, any architecture -- `VLC_LIB_DIR_X86` : Directory of the VLC pacakge, `x86`-only -- `VLC_LIB_DIR_X86_64` : Directory of the VLC pacakge, `x86_64`-only - -You should also add the package to your `PATH` variable if you intend to run the program. -For distribution of an executable program, you should probably copy over the neccessary DLLs, as well as the `plugins` directory. +Once you've downloaded your chosen package, you should extract it some place such that its path contains no spaces, and add that directory to your `PATH` so `libvlc.dll` is found at startup. +For distribution of an executable program, you should probably copy over the necessary DLLs, as well as the `plugins` directory. ## License diff --git a/libvlc-sys/Cargo.toml b/libvlc-sys/Cargo.toml index b263112..0e1e870 100644 --- a/libvlc-sys/Cargo.toml +++ b/libvlc-sys/Cargo.toml @@ -23,6 +23,3 @@ libc = "0.2" [build-dependencies] pkg-config = "0.3" - -[target.'cfg(target_os = "windows")'.build-dependencies] -vswhom = "0.1.0" diff --git a/libvlc-sys/bindings.rs b/libvlc-sys/bindings.rs index 08ec9d6..92c9acc 100644 --- a/libvlc-sys/bindings.rs +++ b/libvlc-sys/bindings.rs @@ -1,5 +1,6 @@ /* automatically generated by rust-bindgen 0.72.1 */ +pub use libc::FILE; pub use crate::valist::VaList; pub const VLC_VLC_H: u32 = 1; @@ -17,191 +18,12 @@ pub const LIBVLC_EVENTS_H: u32 = 1; pub const LIBVLC_DIALOG_H: u32 = 1; pub const LIBVLC_VLM_H: u32 = 1; pub const LIBVLC_DEPRECATED_H: u32 = 1; -pub type __off_t = libc::c_long; -pub type __off64_t = libc::c_long; -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)] -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: usize, - pub _mode: libc::c_int, - pub _unused2: [libc::c_char; 20usize], -} -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of _IO_FILE"][::core::mem::size_of::<_IO_FILE>() - 216usize]; - ["Alignment of _IO_FILE"][::core::mem::align_of::<_IO_FILE>() - 8usize]; - ["Offset of field: _IO_FILE::_flags"][::core::mem::offset_of!(_IO_FILE, _flags) - 0usize]; - ["Offset of field: _IO_FILE::_IO_read_ptr"] - [::core::mem::offset_of!(_IO_FILE, _IO_read_ptr) - 8usize]; - ["Offset of field: _IO_FILE::_IO_read_end"] - [::core::mem::offset_of!(_IO_FILE, _IO_read_end) - 16usize]; - ["Offset of field: _IO_FILE::_IO_read_base"] - [::core::mem::offset_of!(_IO_FILE, _IO_read_base) - 24usize]; - ["Offset of field: _IO_FILE::_IO_write_base"] - [::core::mem::offset_of!(_IO_FILE, _IO_write_base) - 32usize]; - ["Offset of field: _IO_FILE::_IO_write_ptr"] - [::core::mem::offset_of!(_IO_FILE, _IO_write_ptr) - 40usize]; - ["Offset of field: _IO_FILE::_IO_write_end"] - [::core::mem::offset_of!(_IO_FILE, _IO_write_end) - 48usize]; - ["Offset of field: _IO_FILE::_IO_buf_base"] - [::core::mem::offset_of!(_IO_FILE, _IO_buf_base) - 56usize]; - ["Offset of field: _IO_FILE::_IO_buf_end"] - [::core::mem::offset_of!(_IO_FILE, _IO_buf_end) - 64usize]; - ["Offset of field: _IO_FILE::_IO_save_base"] - [::core::mem::offset_of!(_IO_FILE, _IO_save_base) - 72usize]; - ["Offset of field: _IO_FILE::_IO_backup_base"] - [::core::mem::offset_of!(_IO_FILE, _IO_backup_base) - 80usize]; - ["Offset of field: _IO_FILE::_IO_save_end"] - [::core::mem::offset_of!(_IO_FILE, _IO_save_end) - 88usize]; - ["Offset of field: _IO_FILE::_markers"][::core::mem::offset_of!(_IO_FILE, _markers) - 96usize]; - ["Offset of field: _IO_FILE::_chain"][::core::mem::offset_of!(_IO_FILE, _chain) - 104usize]; - ["Offset of field: _IO_FILE::_fileno"][::core::mem::offset_of!(_IO_FILE, _fileno) - 112usize]; - ["Offset of field: _IO_FILE::_flags2"][::core::mem::offset_of!(_IO_FILE, _flags2) - 116usize]; - ["Offset of field: _IO_FILE::_old_offset"] - [::core::mem::offset_of!(_IO_FILE, _old_offset) - 120usize]; - ["Offset of field: _IO_FILE::_cur_column"] - [::core::mem::offset_of!(_IO_FILE, _cur_column) - 128usize]; - ["Offset of field: _IO_FILE::_vtable_offset"] - [::core::mem::offset_of!(_IO_FILE, _vtable_offset) - 130usize]; - ["Offset of field: _IO_FILE::_shortbuf"] - [::core::mem::offset_of!(_IO_FILE, _shortbuf) - 131usize]; - ["Offset of field: _IO_FILE::_lock"][::core::mem::offset_of!(_IO_FILE, _lock) - 136usize]; - ["Offset of field: _IO_FILE::_offset"][::core::mem::offset_of!(_IO_FILE, _offset) - 144usize]; - ["Offset of field: _IO_FILE::_codecvt"][::core::mem::offset_of!(_IO_FILE, _codecvt) - 152usize]; - ["Offset of field: _IO_FILE::_wide_data"] - [::core::mem::offset_of!(_IO_FILE, _wide_data) - 160usize]; - ["Offset of field: _IO_FILE::_freeres_list"] - [::core::mem::offset_of!(_IO_FILE, _freeres_list) - 168usize]; - ["Offset of field: _IO_FILE::_freeres_buf"] - [::core::mem::offset_of!(_IO_FILE, _freeres_buf) - 176usize]; - ["Offset of field: _IO_FILE::__pad5"][::core::mem::offset_of!(_IO_FILE, __pad5) - 184usize]; - ["Offset of field: _IO_FILE::_mode"][::core::mem::offset_of!(_IO_FILE, _mode) - 192usize]; - ["Offset of field: _IO_FILE::_unused2"][::core::mem::offset_of!(_IO_FILE, _unused2) - 196usize]; -}; -unsafe extern "C" { - pub fn vsnprintf( - __s: *mut libc::c_char, - __maxlen: libc::c_ulong, - __format: *const libc::c_char, - __arg: VaList, - ) -> libc::c_int; -} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_instance_t { _unused: [u8; 0], } pub type libvlc_time_t = i64; -unsafe extern "C" { - pub fn libvlc_errmsg() -> *const libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_clearerr(); -} -unsafe extern "C" { - pub fn libvlc_vprinterr( - fmt: *const libc::c_char, - ap: VaList, - ) -> *const libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_printerr(fmt: *const libc::c_char, ...) -> *const libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_new( - argc: libc::c_int, - argv: *const *const libc::c_char, - ) -> *mut libvlc_instance_t; -} -unsafe extern "C" { - pub fn libvlc_release(p_instance: *mut libvlc_instance_t); -} -unsafe extern "C" { - pub fn libvlc_retain(p_instance: *mut libvlc_instance_t); -} -unsafe extern "C" { - pub fn libvlc_add_intf( - p_instance: *mut libvlc_instance_t, - name: *const libc::c_char, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_set_exit_handler( - p_instance: *mut libvlc_instance_t, - cb: ::core::option::Option, - opaque: *mut libc::c_void, - ); -} -unsafe extern "C" { - pub fn libvlc_set_user_agent( - p_instance: *mut libvlc_instance_t, - name: *const libc::c_char, - http: *const libc::c_char, - ); -} -unsafe extern "C" { - pub fn libvlc_set_app_id( - p_instance: *mut libvlc_instance_t, - id: *const libc::c_char, - version: *const libc::c_char, - icon: *const libc::c_char, - ); -} -unsafe extern "C" { - pub fn libvlc_get_version() -> *const libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_get_compiler() -> *const libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_get_changeset() -> *const libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_free(ptr: *mut libc::c_void); -} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_manager_t { @@ -211,25 +33,6 @@ pub type libvlc_event_type_t = libc::c_int; pub type libvlc_callback_t = ::core::option::Option< unsafe extern "C" fn(p_event: *const libvlc_event_t, p_data: *mut libc::c_void), >; -unsafe extern "C" { - pub fn libvlc_event_attach( - p_event_manager: *mut libvlc_event_manager_t, - i_event_type: libvlc_event_type_t, - f_callback: libvlc_callback_t, - user_data: *mut libc::c_void, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_event_detach( - p_event_manager: *mut libvlc_event_manager_t, - i_event_type: libvlc_event_type_t, - f_callback: libvlc_callback_t, - p_user_data: *mut libc::c_void, - ); -} -unsafe extern "C" { - pub fn libvlc_event_type_name(event_type: libvlc_event_type_t) -> *const libc::c_char; -} pub const libvlc_log_level_LIBVLC_DEBUG: libvlc_log_level = 0; pub const libvlc_log_level_LIBVLC_NOTICE: libvlc_log_level = 2; pub const libvlc_log_level_LIBVLC_WARNING: libvlc_log_level = 3; @@ -241,22 +44,6 @@ pub struct vlc_log_t { _unused: [u8; 0], } pub type libvlc_log_t = vlc_log_t; -unsafe extern "C" { - pub fn libvlc_log_get_context( - ctx: *const libvlc_log_t, - module: *mut *const libc::c_char, - file: *mut *const libc::c_char, - line: *mut libc::c_uint, - ); -} -unsafe extern "C" { - pub fn libvlc_log_get_object( - ctx: *const libvlc_log_t, - name: *mut *const libc::c_char, - header: *mut *const libc::c_char, - id: *mut usize, - ); -} pub type libvlc_log_cb = ::core::option::Option< unsafe extern "C" fn( data: *mut libc::c_void, @@ -266,19 +53,6 @@ pub type libvlc_log_cb = ::core::option::Option< args: VaList, ), >; -unsafe extern "C" { - pub fn libvlc_log_unset(p_instance: *mut libvlc_instance_t); -} -unsafe extern "C" { - pub fn libvlc_log_set( - p_instance: *mut libvlc_instance_t, - cb: libvlc_log_cb, - data: *mut libc::c_void, - ); -} -unsafe extern "C" { - pub fn libvlc_log_set_file(p_instance: *mut libvlc_instance_t, stream: *mut FILE); -} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_module_description_t { @@ -288,39 +62,6 @@ pub struct libvlc_module_description_t { pub psz_help: *mut libc::c_char, pub p_next: *mut libvlc_module_description_t, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_module_description_t"] - [::core::mem::size_of::() - 40usize]; - ["Alignment of libvlc_module_description_t"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_module_description_t::psz_name"] - [::core::mem::offset_of!(libvlc_module_description_t, psz_name) - 0usize]; - ["Offset of field: libvlc_module_description_t::psz_shortname"] - [::core::mem::offset_of!(libvlc_module_description_t, psz_shortname) - 8usize]; - ["Offset of field: libvlc_module_description_t::psz_longname"] - [::core::mem::offset_of!(libvlc_module_description_t, psz_longname) - 16usize]; - ["Offset of field: libvlc_module_description_t::psz_help"] - [::core::mem::offset_of!(libvlc_module_description_t, psz_help) - 24usize]; - ["Offset of field: libvlc_module_description_t::p_next"] - [::core::mem::offset_of!(libvlc_module_description_t, p_next) - 32usize]; -}; -unsafe extern "C" { - pub fn libvlc_module_description_list_release(p_list: *mut libvlc_module_description_t); -} -unsafe extern "C" { - pub fn libvlc_audio_filter_list_get( - p_instance: *mut libvlc_instance_t, - ) -> *mut libvlc_module_description_t; -} -unsafe extern "C" { - pub fn libvlc_video_filter_list_get( - p_instance: *mut libvlc_instance_t, - ) -> *mut libvlc_module_description_t; -} -unsafe extern "C" { - pub fn libvlc_clock() -> i64; -} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_renderer_discoverer_t { @@ -332,77 +73,11 @@ pub struct libvlc_rd_description_t { pub psz_name: *mut libc::c_char, pub psz_longname: *mut libc::c_char, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_rd_description_t"] - [::core::mem::size_of::() - 16usize]; - ["Alignment of libvlc_rd_description_t"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_rd_description_t::psz_name"] - [::core::mem::offset_of!(libvlc_rd_description_t, psz_name) - 0usize]; - ["Offset of field: libvlc_rd_description_t::psz_longname"] - [::core::mem::offset_of!(libvlc_rd_description_t, psz_longname) - 8usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_renderer_item_t { _unused: [u8; 0], } -unsafe extern "C" { - pub fn libvlc_renderer_item_hold( - p_item: *mut libvlc_renderer_item_t, - ) -> *mut libvlc_renderer_item_t; -} -unsafe extern "C" { - pub fn libvlc_renderer_item_release(p_item: *mut libvlc_renderer_item_t); -} -unsafe extern "C" { - pub fn libvlc_renderer_item_name(p_item: *const libvlc_renderer_item_t) -> *const libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_renderer_item_type(p_item: *const libvlc_renderer_item_t) -> *const libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_renderer_item_icon_uri( - p_item: *const libvlc_renderer_item_t, - ) -> *const libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_renderer_item_flags(p_item: *const libvlc_renderer_item_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_renderer_discoverer_new( - p_inst: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - ) -> *mut libvlc_renderer_discoverer_t; -} -unsafe extern "C" { - pub fn libvlc_renderer_discoverer_release(p_rd: *mut libvlc_renderer_discoverer_t); -} -unsafe extern "C" { - pub fn libvlc_renderer_discoverer_start(p_rd: *mut libvlc_renderer_discoverer_t) - -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_renderer_discoverer_stop(p_rd: *mut libvlc_renderer_discoverer_t); -} -unsafe extern "C" { - pub fn libvlc_renderer_discoverer_event_manager( - p_rd: *mut libvlc_renderer_discoverer_t, - ) -> *mut libvlc_event_manager_t; -} -unsafe extern "C" { - pub fn libvlc_renderer_discoverer_list_get( - p_inst: *mut libvlc_instance_t, - ppp_services: *mut *mut *mut libvlc_rd_description_t, - ) -> usize; -} -unsafe extern "C" { - pub fn libvlc_renderer_discoverer_list_release( - pp_services: *mut *mut libvlc_rd_description_t, - i_count: usize, - ); -} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_media_t { @@ -471,41 +146,6 @@ pub struct libvlc_media_stats_t { pub i_sent_bytes: libc::c_int, pub f_send_bitrate: f32, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_media_stats_t"][::core::mem::size_of::() - 60usize]; - ["Alignment of libvlc_media_stats_t"][::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_media_stats_t::i_read_bytes"] - [::core::mem::offset_of!(libvlc_media_stats_t, i_read_bytes) - 0usize]; - ["Offset of field: libvlc_media_stats_t::f_input_bitrate"] - [::core::mem::offset_of!(libvlc_media_stats_t, f_input_bitrate) - 4usize]; - ["Offset of field: libvlc_media_stats_t::i_demux_read_bytes"] - [::core::mem::offset_of!(libvlc_media_stats_t, i_demux_read_bytes) - 8usize]; - ["Offset of field: libvlc_media_stats_t::f_demux_bitrate"] - [::core::mem::offset_of!(libvlc_media_stats_t, f_demux_bitrate) - 12usize]; - ["Offset of field: libvlc_media_stats_t::i_demux_corrupted"] - [::core::mem::offset_of!(libvlc_media_stats_t, i_demux_corrupted) - 16usize]; - ["Offset of field: libvlc_media_stats_t::i_demux_discontinuity"] - [::core::mem::offset_of!(libvlc_media_stats_t, i_demux_discontinuity) - 20usize]; - ["Offset of field: libvlc_media_stats_t::i_decoded_video"] - [::core::mem::offset_of!(libvlc_media_stats_t, i_decoded_video) - 24usize]; - ["Offset of field: libvlc_media_stats_t::i_decoded_audio"] - [::core::mem::offset_of!(libvlc_media_stats_t, i_decoded_audio) - 28usize]; - ["Offset of field: libvlc_media_stats_t::i_displayed_pictures"] - [::core::mem::offset_of!(libvlc_media_stats_t, i_displayed_pictures) - 32usize]; - ["Offset of field: libvlc_media_stats_t::i_lost_pictures"] - [::core::mem::offset_of!(libvlc_media_stats_t, i_lost_pictures) - 36usize]; - ["Offset of field: libvlc_media_stats_t::i_played_abuffers"] - [::core::mem::offset_of!(libvlc_media_stats_t, i_played_abuffers) - 40usize]; - ["Offset of field: libvlc_media_stats_t::i_lost_abuffers"] - [::core::mem::offset_of!(libvlc_media_stats_t, i_lost_abuffers) - 44usize]; - ["Offset of field: libvlc_media_stats_t::i_sent_packets"] - [::core::mem::offset_of!(libvlc_media_stats_t, i_sent_packets) - 48usize]; - ["Offset of field: libvlc_media_stats_t::i_sent_bytes"] - [::core::mem::offset_of!(libvlc_media_stats_t, i_sent_bytes) - 52usize]; - ["Offset of field: libvlc_media_stats_t::f_send_bitrate"] - [::core::mem::offset_of!(libvlc_media_stats_t, f_send_bitrate) - 56usize]; -}; #[repr(C)] #[derive(Copy, Clone)] pub struct libvlc_media_track_info_t { @@ -528,89 +168,18 @@ pub struct libvlc_media_track_info_t__bindgen_ty_1__bindgen_ty_1 { pub i_channels: libc::c_uint, pub i_rate: libc::c_uint, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_media_track_info_t__bindgen_ty_1__bindgen_ty_1"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_media_track_info_t__bindgen_ty_1__bindgen_ty_1"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_media_track_info_t__bindgen_ty_1__bindgen_ty_1::i_channels"][::core::mem::offset_of!( - libvlc_media_track_info_t__bindgen_ty_1__bindgen_ty_1, - i_channels - ) - - 0usize]; - ["Offset of field: libvlc_media_track_info_t__bindgen_ty_1__bindgen_ty_1::i_rate"][::core::mem::offset_of!( - libvlc_media_track_info_t__bindgen_ty_1__bindgen_ty_1, - i_rate - ) - 4usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_media_track_info_t__bindgen_ty_1__bindgen_ty_2 { pub i_height: libc::c_uint, pub i_width: libc::c_uint, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_media_track_info_t__bindgen_ty_1__bindgen_ty_2"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_media_track_info_t__bindgen_ty_1__bindgen_ty_2"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_media_track_info_t__bindgen_ty_1__bindgen_ty_2::i_height"][::core::mem::offset_of!( - libvlc_media_track_info_t__bindgen_ty_1__bindgen_ty_2, - i_height - ) - - 0usize]; - ["Offset of field: libvlc_media_track_info_t__bindgen_ty_1__bindgen_ty_2::i_width"][::core::mem::offset_of!( - libvlc_media_track_info_t__bindgen_ty_1__bindgen_ty_2, - i_width - ) - 4usize]; -}; -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_media_track_info_t__bindgen_ty_1"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_media_track_info_t__bindgen_ty_1"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_media_track_info_t__bindgen_ty_1::audio"] - [::core::mem::offset_of!(libvlc_media_track_info_t__bindgen_ty_1, audio) - 0usize]; - ["Offset of field: libvlc_media_track_info_t__bindgen_ty_1::video"] - [::core::mem::offset_of!(libvlc_media_track_info_t__bindgen_ty_1, video) - 0usize]; -}; -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_media_track_info_t"] - [::core::mem::size_of::() - 28usize]; - ["Alignment of libvlc_media_track_info_t"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_media_track_info_t::i_codec"] - [::core::mem::offset_of!(libvlc_media_track_info_t, i_codec) - 0usize]; - ["Offset of field: libvlc_media_track_info_t::i_id"] - [::core::mem::offset_of!(libvlc_media_track_info_t, i_id) - 4usize]; - ["Offset of field: libvlc_media_track_info_t::i_type"] - [::core::mem::offset_of!(libvlc_media_track_info_t, i_type) - 8usize]; - ["Offset of field: libvlc_media_track_info_t::i_profile"] - [::core::mem::offset_of!(libvlc_media_track_info_t, i_profile) - 12usize]; - ["Offset of field: libvlc_media_track_info_t::i_level"] - [::core::mem::offset_of!(libvlc_media_track_info_t, i_level) - 16usize]; - ["Offset of field: libvlc_media_track_info_t::u"] - [::core::mem::offset_of!(libvlc_media_track_info_t, u) - 20usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_audio_track_t { pub i_channels: libc::c_uint, pub i_rate: libc::c_uint, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_audio_track_t"][::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_audio_track_t"][::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_audio_track_t::i_channels"] - [::core::mem::offset_of!(libvlc_audio_track_t, i_channels) - 0usize]; - ["Offset of field: libvlc_audio_track_t::i_rate"] - [::core::mem::offset_of!(libvlc_audio_track_t, i_rate) - 4usize]; -}; pub const libvlc_video_orient_t_libvlc_video_orient_top_left: libvlc_video_orient_t = 0; pub const libvlc_video_orient_t_libvlc_video_orient_top_right: libvlc_video_orient_t = 1; pub const libvlc_video_orient_t_libvlc_video_orient_bottom_left: libvlc_video_orient_t = 2; @@ -635,21 +204,6 @@ pub struct libvlc_video_viewpoint_t { pub f_roll: f32, pub f_field_of_view: f32, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_video_viewpoint_t"] - [::core::mem::size_of::() - 16usize]; - ["Alignment of libvlc_video_viewpoint_t"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_video_viewpoint_t::f_yaw"] - [::core::mem::offset_of!(libvlc_video_viewpoint_t, f_yaw) - 0usize]; - ["Offset of field: libvlc_video_viewpoint_t::f_pitch"] - [::core::mem::offset_of!(libvlc_video_viewpoint_t, f_pitch) - 4usize]; - ["Offset of field: libvlc_video_viewpoint_t::f_roll"] - [::core::mem::offset_of!(libvlc_video_viewpoint_t, f_roll) - 8usize]; - ["Offset of field: libvlc_video_viewpoint_t::f_field_of_view"] - [::core::mem::offset_of!(libvlc_video_viewpoint_t, f_field_of_view) - 12usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_video_track_t { @@ -663,42 +217,11 @@ pub struct libvlc_video_track_t { pub i_projection: libvlc_video_projection_t, pub pose: libvlc_video_viewpoint_t, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_video_track_t"][::core::mem::size_of::() - 48usize]; - ["Alignment of libvlc_video_track_t"][::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_video_track_t::i_height"] - [::core::mem::offset_of!(libvlc_video_track_t, i_height) - 0usize]; - ["Offset of field: libvlc_video_track_t::i_width"] - [::core::mem::offset_of!(libvlc_video_track_t, i_width) - 4usize]; - ["Offset of field: libvlc_video_track_t::i_sar_num"] - [::core::mem::offset_of!(libvlc_video_track_t, i_sar_num) - 8usize]; - ["Offset of field: libvlc_video_track_t::i_sar_den"] - [::core::mem::offset_of!(libvlc_video_track_t, i_sar_den) - 12usize]; - ["Offset of field: libvlc_video_track_t::i_frame_rate_num"] - [::core::mem::offset_of!(libvlc_video_track_t, i_frame_rate_num) - 16usize]; - ["Offset of field: libvlc_video_track_t::i_frame_rate_den"] - [::core::mem::offset_of!(libvlc_video_track_t, i_frame_rate_den) - 20usize]; - ["Offset of field: libvlc_video_track_t::i_orientation"] - [::core::mem::offset_of!(libvlc_video_track_t, i_orientation) - 24usize]; - ["Offset of field: libvlc_video_track_t::i_projection"] - [::core::mem::offset_of!(libvlc_video_track_t, i_projection) - 28usize]; - ["Offset of field: libvlc_video_track_t::pose"] - [::core::mem::offset_of!(libvlc_video_track_t, pose) - 32usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_subtitle_track_t { pub psz_encoding: *mut libc::c_char, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_subtitle_track_t"][::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_subtitle_track_t"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_subtitle_track_t::psz_encoding"] - [::core::mem::offset_of!(libvlc_subtitle_track_t, psz_encoding) - 0usize]; -}; #[repr(C)] #[derive(Copy, Clone)] pub struct libvlc_media_track_t { @@ -720,42 +243,6 @@ pub union libvlc_media_track_t__bindgen_ty_1 { pub video: *mut libvlc_video_track_t, pub subtitle: *mut libvlc_subtitle_track_t, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_media_track_t__bindgen_ty_1"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_media_track_t__bindgen_ty_1"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_media_track_t__bindgen_ty_1::audio"] - [::core::mem::offset_of!(libvlc_media_track_t__bindgen_ty_1, audio) - 0usize]; - ["Offset of field: libvlc_media_track_t__bindgen_ty_1::video"] - [::core::mem::offset_of!(libvlc_media_track_t__bindgen_ty_1, video) - 0usize]; - ["Offset of field: libvlc_media_track_t__bindgen_ty_1::subtitle"] - [::core::mem::offset_of!(libvlc_media_track_t__bindgen_ty_1, subtitle) - 0usize]; -}; -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_media_track_t"][::core::mem::size_of::() - 56usize]; - ["Alignment of libvlc_media_track_t"][::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_media_track_t::i_codec"] - [::core::mem::offset_of!(libvlc_media_track_t, i_codec) - 0usize]; - ["Offset of field: libvlc_media_track_t::i_original_fourcc"] - [::core::mem::offset_of!(libvlc_media_track_t, i_original_fourcc) - 4usize]; - ["Offset of field: libvlc_media_track_t::i_id"] - [::core::mem::offset_of!(libvlc_media_track_t, i_id) - 8usize]; - ["Offset of field: libvlc_media_track_t::i_type"] - [::core::mem::offset_of!(libvlc_media_track_t, i_type) - 12usize]; - ["Offset of field: libvlc_media_track_t::i_profile"] - [::core::mem::offset_of!(libvlc_media_track_t, i_profile) - 16usize]; - ["Offset of field: libvlc_media_track_t::i_level"] - [::core::mem::offset_of!(libvlc_media_track_t, i_level) - 20usize]; - ["Offset of field: libvlc_media_track_t::i_bitrate"] - [::core::mem::offset_of!(libvlc_media_track_t, i_bitrate) - 32usize]; - ["Offset of field: libvlc_media_track_t::psz_language"] - [::core::mem::offset_of!(libvlc_media_track_t, psz_language) - 40usize]; - ["Offset of field: libvlc_media_track_t::psz_description"] - [::core::mem::offset_of!(libvlc_media_track_t, psz_description) - 48usize]; -}; pub const libvlc_media_type_t_libvlc_media_type_unknown: libvlc_media_type_t = 0; pub const libvlc_media_type_t_libvlc_media_type_file: libvlc_media_type_t = 1; pub const libvlc_media_type_t_libvlc_media_type_directory: libvlc_media_type_t = 2; @@ -788,17 +275,6 @@ pub struct libvlc_media_slave_t { pub i_type: libvlc_media_slave_type_t, pub i_priority: libc::c_uint, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_media_slave_t"][::core::mem::size_of::() - 16usize]; - ["Alignment of libvlc_media_slave_t"][::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_media_slave_t::psz_uri"] - [::core::mem::offset_of!(libvlc_media_slave_t, psz_uri) - 0usize]; - ["Offset of field: libvlc_media_slave_t::i_type"] - [::core::mem::offset_of!(libvlc_media_slave_t, i_type) - 8usize]; - ["Offset of field: libvlc_media_slave_t::i_priority"] - [::core::mem::offset_of!(libvlc_media_slave_t, i_priority) - 12usize]; -}; pub type libvlc_media_open_cb = ::core::option::Option< unsafe extern "C" fn( opaque: *mut libc::c_void, @@ -814,169 +290,11 @@ pub type libvlc_media_seek_cb = ::core::option::Option< >; pub type libvlc_media_close_cb = ::core::option::Option; -unsafe extern "C" { - pub fn libvlc_media_new_location( - p_instance: *mut libvlc_instance_t, - psz_mrl: *const libc::c_char, - ) -> *mut libvlc_media_t; -} -unsafe extern "C" { - pub fn libvlc_media_new_path( - p_instance: *mut libvlc_instance_t, - path: *const libc::c_char, - ) -> *mut libvlc_media_t; -} -unsafe extern "C" { - pub fn libvlc_media_new_fd( - p_instance: *mut libvlc_instance_t, - fd: libc::c_int, - ) -> *mut libvlc_media_t; -} -unsafe extern "C" { - pub fn libvlc_media_new_callbacks( - instance: *mut libvlc_instance_t, - open_cb: libvlc_media_open_cb, - read_cb: libvlc_media_read_cb, - seek_cb: libvlc_media_seek_cb, - close_cb: libvlc_media_close_cb, - opaque: *mut libc::c_void, - ) -> *mut libvlc_media_t; -} -unsafe extern "C" { - pub fn libvlc_media_new_as_node( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - ) -> *mut libvlc_media_t; -} -unsafe extern "C" { - pub fn libvlc_media_add_option(p_md: *mut libvlc_media_t, psz_options: *const libc::c_char); -} -unsafe extern "C" { - pub fn libvlc_media_add_option_flag( - p_md: *mut libvlc_media_t, - psz_options: *const libc::c_char, - i_flags: libc::c_uint, - ); -} -unsafe extern "C" { - pub fn libvlc_media_retain(p_md: *mut libvlc_media_t); -} -unsafe extern "C" { - pub fn libvlc_media_release(p_md: *mut libvlc_media_t); -} -unsafe extern "C" { - pub fn libvlc_media_get_mrl(p_md: *mut libvlc_media_t) -> *mut libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_media_duplicate(p_md: *mut libvlc_media_t) -> *mut libvlc_media_t; -} -unsafe extern "C" { - pub fn libvlc_media_get_meta( - p_md: *mut libvlc_media_t, - e_meta: libvlc_meta_t, - ) -> *mut libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_media_set_meta( - p_md: *mut libvlc_media_t, - e_meta: libvlc_meta_t, - psz_value: *const libc::c_char, - ); -} -unsafe extern "C" { - pub fn libvlc_media_save_meta(p_md: *mut libvlc_media_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_get_state(p_md: *mut libvlc_media_t) -> libvlc_state_t; -} -unsafe extern "C" { - pub fn libvlc_media_get_stats( - p_md: *mut libvlc_media_t, - p_stats: *mut libvlc_media_stats_t, - ) -> libc::c_int; -} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_media_list_t { _unused: [u8; 0], } -unsafe extern "C" { - pub fn libvlc_media_subitems(p_md: *mut libvlc_media_t) -> *mut libvlc_media_list_t; -} -unsafe extern "C" { - pub fn libvlc_media_event_manager(p_md: *mut libvlc_media_t) -> *mut libvlc_event_manager_t; -} -unsafe extern "C" { - pub fn libvlc_media_get_duration(p_md: *mut libvlc_media_t) -> libvlc_time_t; -} -unsafe extern "C" { - pub fn libvlc_media_parse_with_options( - p_md: *mut libvlc_media_t, - parse_flag: libvlc_media_parse_flag_t, - timeout: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_parse_stop(p_md: *mut libvlc_media_t); -} -unsafe extern "C" { - pub fn libvlc_media_get_parsed_status( - p_md: *mut libvlc_media_t, - ) -> libvlc_media_parsed_status_t; -} -unsafe extern "C" { - pub fn libvlc_media_set_user_data( - p_md: *mut libvlc_media_t, - p_new_user_data: *mut libc::c_void, - ); -} -unsafe extern "C" { - pub fn libvlc_media_get_user_data(p_md: *mut libvlc_media_t) -> *mut libc::c_void; -} -unsafe extern "C" { - pub fn libvlc_media_tracks_get( - p_md: *mut libvlc_media_t, - tracks: *mut *mut *mut libvlc_media_track_t, - ) -> libc::c_uint; -} -unsafe extern "C" { - pub fn libvlc_media_get_codec_description( - i_type: libvlc_track_type_t, - i_codec: u32, - ) -> *const libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_media_tracks_release( - p_tracks: *mut *mut libvlc_media_track_t, - i_count: libc::c_uint, - ); -} -unsafe extern "C" { - pub fn libvlc_media_get_type(p_md: *mut libvlc_media_t) -> libvlc_media_type_t; -} -unsafe extern "C" { - pub fn libvlc_media_slaves_add( - p_md: *mut libvlc_media_t, - i_type: libvlc_media_slave_type_t, - i_priority: libc::c_uint, - psz_uri: *const libc::c_char, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_slaves_clear(p_md: *mut libvlc_media_t); -} -unsafe extern "C" { - pub fn libvlc_media_slaves_get( - p_md: *mut libvlc_media_t, - ppp_slaves: *mut *mut *mut libvlc_media_slave_t, - ) -> libc::c_uint; -} -unsafe extern "C" { - pub fn libvlc_media_slaves_release( - pp_slaves: *mut *mut libvlc_media_slave_t, - i_count: libc::c_uint, - ); -} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_media_player_t { @@ -989,19 +307,6 @@ pub struct libvlc_track_description_t { pub psz_name: *mut libc::c_char, pub p_next: *mut libvlc_track_description_t, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_track_description_t"] - [::core::mem::size_of::() - 24usize]; - ["Alignment of libvlc_track_description_t"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_track_description_t::i_id"] - [::core::mem::offset_of!(libvlc_track_description_t, i_id) - 0usize]; - ["Offset of field: libvlc_track_description_t::psz_name"] - [::core::mem::offset_of!(libvlc_track_description_t, psz_name) - 8usize]; - ["Offset of field: libvlc_track_description_t::p_next"] - [::core::mem::offset_of!(libvlc_track_description_t, p_next) - 16usize]; -}; pub const libvlc_title_menu: _bindgen_ty_2 = 1; pub const libvlc_title_interactive: _bindgen_ty_2 = 2; pub type _bindgen_ty_2 = libc::c_uint; @@ -1012,19 +317,6 @@ pub struct libvlc_title_description_t { pub psz_name: *mut libc::c_char, pub i_flags: libc::c_uint, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_title_description_t"] - [::core::mem::size_of::() - 24usize]; - ["Alignment of libvlc_title_description_t"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_title_description_t::i_duration"] - [::core::mem::offset_of!(libvlc_title_description_t, i_duration) - 0usize]; - ["Offset of field: libvlc_title_description_t::psz_name"] - [::core::mem::offset_of!(libvlc_title_description_t, psz_name) - 8usize]; - ["Offset of field: libvlc_title_description_t::i_flags"] - [::core::mem::offset_of!(libvlc_title_description_t, i_flags) - 16usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_chapter_description_t { @@ -1032,19 +324,6 @@ pub struct libvlc_chapter_description_t { pub i_duration: i64, pub psz_name: *mut libc::c_char, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_chapter_description_t"] - [::core::mem::size_of::() - 24usize]; - ["Alignment of libvlc_chapter_description_t"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_chapter_description_t::i_time_offset"] - [::core::mem::offset_of!(libvlc_chapter_description_t, i_time_offset) - 0usize]; - ["Offset of field: libvlc_chapter_description_t::i_duration"] - [::core::mem::offset_of!(libvlc_chapter_description_t, i_duration) - 8usize]; - ["Offset of field: libvlc_chapter_description_t::psz_name"] - [::core::mem::offset_of!(libvlc_chapter_description_t, psz_name) - 16usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_audio_output_t { @@ -1052,18 +331,6 @@ pub struct libvlc_audio_output_t { pub psz_description: *mut libc::c_char, pub p_next: *mut libvlc_audio_output_t, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_audio_output_t"][::core::mem::size_of::() - 24usize]; - ["Alignment of libvlc_audio_output_t"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_audio_output_t::psz_name"] - [::core::mem::offset_of!(libvlc_audio_output_t, psz_name) - 0usize]; - ["Offset of field: libvlc_audio_output_t::psz_description"] - [::core::mem::offset_of!(libvlc_audio_output_t, psz_description) - 8usize]; - ["Offset of field: libvlc_audio_output_t::p_next"] - [::core::mem::offset_of!(libvlc_audio_output_t, p_next) - 16usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_audio_output_device_t { @@ -1071,19 +338,6 @@ pub struct libvlc_audio_output_device_t { pub psz_device: *mut libc::c_char, pub psz_description: *mut libc::c_char, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_audio_output_device_t"] - [::core::mem::size_of::() - 24usize]; - ["Alignment of libvlc_audio_output_device_t"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_audio_output_device_t::p_next"] - [::core::mem::offset_of!(libvlc_audio_output_device_t, p_next) - 0usize]; - ["Offset of field: libvlc_audio_output_device_t::psz_device"] - [::core::mem::offset_of!(libvlc_audio_output_device_t, psz_device) - 8usize]; - ["Offset of field: libvlc_audio_output_device_t::psz_description"] - [::core::mem::offset_of!(libvlc_audio_output_device_t, psz_description) - 16usize]; -}; pub const libvlc_video_marquee_option_t_libvlc_marquee_Enable: libvlc_video_marquee_option_t = 0; pub const libvlc_video_marquee_option_t_libvlc_marquee_Text: libvlc_video_marquee_option_t = 1; pub const libvlc_video_marquee_option_t_libvlc_marquee_Color: libvlc_video_marquee_option_t = 2; @@ -1124,57 +378,6 @@ pub type libvlc_teletext_key_t = libc::c_uint; pub struct libvlc_equalizer_t { _unused: [u8; 0], } -unsafe extern "C" { - pub fn libvlc_media_player_new( - p_libvlc_instance: *mut libvlc_instance_t, - ) -> *mut libvlc_media_player_t; -} -unsafe extern "C" { - pub fn libvlc_media_player_new_from_media( - p_md: *mut libvlc_media_t, - ) -> *mut libvlc_media_player_t; -} -unsafe extern "C" { - pub fn libvlc_media_player_release(p_mi: *mut libvlc_media_player_t); -} -unsafe extern "C" { - pub fn libvlc_media_player_retain(p_mi: *mut libvlc_media_player_t); -} -unsafe extern "C" { - pub fn libvlc_media_player_set_media( - p_mi: *mut libvlc_media_player_t, - p_md: *mut libvlc_media_t, - ); -} -unsafe extern "C" { - pub fn libvlc_media_player_get_media(p_mi: *mut libvlc_media_player_t) -> *mut libvlc_media_t; -} -unsafe extern "C" { - pub fn libvlc_media_player_event_manager( - p_mi: *mut libvlc_media_player_t, - ) -> *mut libvlc_event_manager_t; -} -unsafe extern "C" { - pub fn libvlc_media_player_is_playing(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_player_play(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_player_set_pause(mp: *mut libvlc_media_player_t, do_pause: libc::c_int); -} -unsafe extern "C" { - pub fn libvlc_media_player_pause(p_mi: *mut libvlc_media_player_t); -} -unsafe extern "C" { - pub fn libvlc_media_player_stop(p_mi: *mut libvlc_media_player_t); -} -unsafe extern "C" { - pub fn libvlc_media_player_set_renderer( - p_mi: *mut libvlc_media_player_t, - p_item: *mut libvlc_renderer_item_t, - ) -> libc::c_int; -} pub type libvlc_video_lock_cb = ::core::option::Option< unsafe extern "C" fn( opaque: *mut libc::c_void, @@ -1203,67 +406,6 @@ pub type libvlc_video_format_cb = ::core::option::Option< >; pub type libvlc_video_cleanup_cb = ::core::option::Option; -unsafe extern "C" { - pub fn libvlc_video_set_callbacks( - mp: *mut libvlc_media_player_t, - lock: libvlc_video_lock_cb, - unlock: libvlc_video_unlock_cb, - display: libvlc_video_display_cb, - opaque: *mut libc::c_void, - ); -} -unsafe extern "C" { - pub fn libvlc_video_set_format( - mp: *mut libvlc_media_player_t, - chroma: *const libc::c_char, - width: libc::c_uint, - height: libc::c_uint, - pitch: libc::c_uint, - ); -} -unsafe extern "C" { - pub fn libvlc_video_set_format_callbacks( - mp: *mut libvlc_media_player_t, - setup: libvlc_video_format_cb, - cleanup: libvlc_video_cleanup_cb, - ); -} -unsafe extern "C" { - pub fn libvlc_media_player_set_nsobject( - p_mi: *mut libvlc_media_player_t, - drawable: *mut libc::c_void, - ); -} -unsafe extern "C" { - pub fn libvlc_media_player_get_nsobject(p_mi: *mut libvlc_media_player_t) -> *mut libc::c_void; -} -unsafe extern "C" { - pub fn libvlc_media_player_set_xwindow(p_mi: *mut libvlc_media_player_t, drawable: u32); -} -unsafe extern "C" { - pub fn libvlc_media_player_get_xwindow(p_mi: *mut libvlc_media_player_t) -> u32; -} -unsafe extern "C" { - pub fn libvlc_media_player_set_hwnd( - p_mi: *mut libvlc_media_player_t, - drawable: *mut libc::c_void, - ); -} -unsafe extern "C" { - pub fn libvlc_media_player_get_hwnd(p_mi: *mut libvlc_media_player_t) -> *mut libc::c_void; -} -unsafe extern "C" { - pub fn libvlc_media_player_set_android_context( - p_mi: *mut libvlc_media_player_t, - p_awindow_handler: *mut libc::c_void, - ); -} -unsafe extern "C" { - pub fn libvlc_media_player_set_evas_object( - p_mi: *mut libvlc_media_player_t, - p_evas_object: *mut libc::c_void, - ) -> libc::c_int; -} pub type libvlc_audio_play_cb = ::core::option::Option< unsafe extern "C" fn( data: *mut libc::c_void, @@ -1282,23 +424,6 @@ pub type libvlc_audio_drain_cb = ::core::option::Option; pub type libvlc_audio_set_volume_cb = ::core::option::Option; -unsafe extern "C" { - pub fn libvlc_audio_set_callbacks( - mp: *mut libvlc_media_player_t, - play: libvlc_audio_play_cb, - pause: libvlc_audio_pause_cb, - resume: libvlc_audio_resume_cb, - flush: libvlc_audio_flush_cb, - drain: libvlc_audio_drain_cb, - opaque: *mut libc::c_void, - ); -} -unsafe extern "C" { - pub fn libvlc_audio_set_volume_callback( - mp: *mut libvlc_media_player_t, - set_volume: libvlc_audio_set_volume_cb, - ); -} pub type libvlc_audio_setup_cb = ::core::option::Option< unsafe extern "C" fn( data: *mut *mut libc::c_void, @@ -1309,300 +434,6 @@ pub type libvlc_audio_setup_cb = ::core::option::Option< >; pub type libvlc_audio_cleanup_cb = ::core::option::Option; -unsafe extern "C" { - pub fn libvlc_audio_set_format_callbacks( - mp: *mut libvlc_media_player_t, - setup: libvlc_audio_setup_cb, - cleanup: libvlc_audio_cleanup_cb, - ); -} -unsafe extern "C" { - pub fn libvlc_audio_set_format( - mp: *mut libvlc_media_player_t, - format: *const libc::c_char, - rate: libc::c_uint, - channels: libc::c_uint, - ); -} -unsafe extern "C" { - pub fn libvlc_media_player_get_length(p_mi: *mut libvlc_media_player_t) -> libvlc_time_t; -} -unsafe extern "C" { - pub fn libvlc_media_player_get_time(p_mi: *mut libvlc_media_player_t) -> libvlc_time_t; -} -unsafe extern "C" { - pub fn libvlc_media_player_set_time(p_mi: *mut libvlc_media_player_t, i_time: libvlc_time_t); -} -unsafe extern "C" { - pub fn libvlc_media_player_get_position(p_mi: *mut libvlc_media_player_t) -> f32; -} -unsafe extern "C" { - pub fn libvlc_media_player_set_position(p_mi: *mut libvlc_media_player_t, f_pos: f32); -} -unsafe extern "C" { - pub fn libvlc_media_player_set_chapter( - p_mi: *mut libvlc_media_player_t, - i_chapter: libc::c_int, - ); -} -unsafe extern "C" { - pub fn libvlc_media_player_get_chapter(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_player_get_chapter_count(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_player_will_play(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_player_get_chapter_count_for_title( - p_mi: *mut libvlc_media_player_t, - i_title: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_player_set_title(p_mi: *mut libvlc_media_player_t, i_title: libc::c_int); -} -unsafe extern "C" { - pub fn libvlc_media_player_get_title(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_player_get_title_count(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_player_previous_chapter(p_mi: *mut libvlc_media_player_t); -} -unsafe extern "C" { - pub fn libvlc_media_player_next_chapter(p_mi: *mut libvlc_media_player_t); -} -unsafe extern "C" { - pub fn libvlc_media_player_get_rate(p_mi: *mut libvlc_media_player_t) -> f32; -} -unsafe extern "C" { - pub fn libvlc_media_player_set_rate(p_mi: *mut libvlc_media_player_t, rate: f32) - -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_player_get_state(p_mi: *mut libvlc_media_player_t) -> libvlc_state_t; -} -unsafe extern "C" { - pub fn libvlc_media_player_has_vout(p_mi: *mut libvlc_media_player_t) -> libc::c_uint; -} -unsafe extern "C" { - pub fn libvlc_media_player_is_seekable(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_player_can_pause(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_player_program_scrambled(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_player_next_frame(p_mi: *mut libvlc_media_player_t); -} -unsafe extern "C" { - pub fn libvlc_media_player_navigate(p_mi: *mut libvlc_media_player_t, navigate: libc::c_uint); -} -unsafe extern "C" { - pub fn libvlc_media_player_set_video_title_display( - p_mi: *mut libvlc_media_player_t, - position: libvlc_position_t, - timeout: libc::c_uint, - ); -} -unsafe extern "C" { - pub fn libvlc_media_player_add_slave( - p_mi: *mut libvlc_media_player_t, - i_type: libvlc_media_slave_type_t, - psz_uri: *const libc::c_char, - b_select: bool, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_track_description_list_release( - p_track_description: *mut libvlc_track_description_t, - ); -} -unsafe extern "C" { - pub fn libvlc_toggle_fullscreen(p_mi: *mut libvlc_media_player_t); -} -unsafe extern "C" { - pub fn libvlc_set_fullscreen(p_mi: *mut libvlc_media_player_t, b_fullscreen: libc::c_int); -} -unsafe extern "C" { - pub fn libvlc_get_fullscreen(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_set_key_input(p_mi: *mut libvlc_media_player_t, on: libc::c_uint); -} -unsafe extern "C" { - pub fn libvlc_video_set_mouse_input(p_mi: *mut libvlc_media_player_t, on: libc::c_uint); -} -unsafe extern "C" { - pub fn libvlc_video_get_size( - p_mi: *mut libvlc_media_player_t, - num: libc::c_uint, - px: *mut libc::c_uint, - py: *mut libc::c_uint, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_get_cursor( - p_mi: *mut libvlc_media_player_t, - num: libc::c_uint, - px: *mut libc::c_int, - py: *mut libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_get_scale(p_mi: *mut libvlc_media_player_t) -> f32; -} -unsafe extern "C" { - pub fn libvlc_video_set_scale(p_mi: *mut libvlc_media_player_t, f_factor: f32); -} -unsafe extern "C" { - pub fn libvlc_video_get_aspect_ratio(p_mi: *mut libvlc_media_player_t) -> *mut libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_video_set_aspect_ratio( - p_mi: *mut libvlc_media_player_t, - psz_aspect: *const libc::c_char, - ); -} -unsafe extern "C" { - pub fn libvlc_video_new_viewpoint() -> *mut libvlc_video_viewpoint_t; -} -unsafe extern "C" { - pub fn libvlc_video_update_viewpoint( - p_mi: *mut libvlc_media_player_t, - p_viewpoint: *const libvlc_video_viewpoint_t, - b_absolute: bool, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_get_spu(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_get_spu_count(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_get_spu_description( - p_mi: *mut libvlc_media_player_t, - ) -> *mut libvlc_track_description_t; -} -unsafe extern "C" { - pub fn libvlc_video_set_spu( - p_mi: *mut libvlc_media_player_t, - i_spu: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_get_spu_delay(p_mi: *mut libvlc_media_player_t) -> i64; -} -unsafe extern "C" { - pub fn libvlc_video_set_spu_delay( - p_mi: *mut libvlc_media_player_t, - i_delay: i64, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_player_get_full_title_descriptions( - p_mi: *mut libvlc_media_player_t, - titles: *mut *mut *mut libvlc_title_description_t, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_title_descriptions_release( - p_titles: *mut *mut libvlc_title_description_t, - i_count: libc::c_uint, - ); -} -unsafe extern "C" { - pub fn libvlc_media_player_get_full_chapter_descriptions( - p_mi: *mut libvlc_media_player_t, - i_chapters_of_title: libc::c_int, - pp_chapters: *mut *mut *mut libvlc_chapter_description_t, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_chapter_descriptions_release( - p_chapters: *mut *mut libvlc_chapter_description_t, - i_count: libc::c_uint, - ); -} -unsafe extern "C" { - pub fn libvlc_video_get_crop_geometry(p_mi: *mut libvlc_media_player_t) -> *mut libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_video_set_crop_geometry( - p_mi: *mut libvlc_media_player_t, - psz_geometry: *const libc::c_char, - ); -} -unsafe extern "C" { - pub fn libvlc_video_get_teletext(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_set_teletext(p_mi: *mut libvlc_media_player_t, i_page: libc::c_int); -} -unsafe extern "C" { - pub fn libvlc_video_get_track_count(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_get_track_description( - p_mi: *mut libvlc_media_player_t, - ) -> *mut libvlc_track_description_t; -} -unsafe extern "C" { - pub fn libvlc_video_get_track(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_set_track( - p_mi: *mut libvlc_media_player_t, - i_track: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_take_snapshot( - p_mi: *mut libvlc_media_player_t, - num: libc::c_uint, - psz_filepath: *const libc::c_char, - i_width: libc::c_uint, - i_height: libc::c_uint, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_set_deinterlace( - p_mi: *mut libvlc_media_player_t, - psz_mode: *const libc::c_char, - ); -} -unsafe extern "C" { - pub fn libvlc_video_get_marquee_int( - p_mi: *mut libvlc_media_player_t, - option: libc::c_uint, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_get_marquee_string( - p_mi: *mut libvlc_media_player_t, - option: libc::c_uint, - ) -> *mut libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_video_set_marquee_int( - p_mi: *mut libvlc_media_player_t, - option: libc::c_uint, - i_val: libc::c_int, - ); -} -unsafe extern "C" { - pub fn libvlc_video_set_marquee_string( - p_mi: *mut libvlc_media_player_t, - option: libc::c_uint, - psz_text: *const libc::c_char, - ); -} pub const libvlc_video_logo_option_t_libvlc_logo_enable: libvlc_video_logo_option_t = 0; pub const libvlc_video_logo_option_t_libvlc_logo_file: libvlc_video_logo_option_t = 1; pub const libvlc_video_logo_option_t_libvlc_logo_x: libvlc_video_logo_option_t = 2; @@ -1612,26 +443,6 @@ pub const libvlc_video_logo_option_t_libvlc_logo_repeat: libvlc_video_logo_optio pub const libvlc_video_logo_option_t_libvlc_logo_opacity: libvlc_video_logo_option_t = 6; pub const libvlc_video_logo_option_t_libvlc_logo_position: libvlc_video_logo_option_t = 7; pub type libvlc_video_logo_option_t = libc::c_uint; -unsafe extern "C" { - pub fn libvlc_video_get_logo_int( - p_mi: *mut libvlc_media_player_t, - option: libc::c_uint, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_set_logo_int( - p_mi: *mut libvlc_media_player_t, - option: libc::c_uint, - value: libc::c_int, - ); -} -unsafe extern "C" { - pub fn libvlc_video_set_logo_string( - p_mi: *mut libvlc_media_player_t, - option: libc::c_uint, - psz_value: *const libc::c_char, - ); -} pub const libvlc_video_adjust_option_t_libvlc_adjust_Enable: libvlc_video_adjust_option_t = 0; pub const libvlc_video_adjust_option_t_libvlc_adjust_Contrast: libvlc_video_adjust_option_t = 1; pub const libvlc_video_adjust_option_t_libvlc_adjust_Brightness: libvlc_video_adjust_option_t = 2; @@ -1639,32 +450,6 @@ pub const libvlc_video_adjust_option_t_libvlc_adjust_Hue: libvlc_video_adjust_op pub const libvlc_video_adjust_option_t_libvlc_adjust_Saturation: libvlc_video_adjust_option_t = 4; pub const libvlc_video_adjust_option_t_libvlc_adjust_Gamma: libvlc_video_adjust_option_t = 5; pub type libvlc_video_adjust_option_t = libc::c_uint; -unsafe extern "C" { - pub fn libvlc_video_get_adjust_int( - p_mi: *mut libvlc_media_player_t, - option: libc::c_uint, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_set_adjust_int( - p_mi: *mut libvlc_media_player_t, - option: libc::c_uint, - value: libc::c_int, - ); -} -unsafe extern "C" { - pub fn libvlc_video_get_adjust_float( - p_mi: *mut libvlc_media_player_t, - option: libc::c_uint, - ) -> f32; -} -unsafe extern "C" { - pub fn libvlc_video_set_adjust_float( - p_mi: *mut libvlc_media_player_t, - option: libc::c_uint, - value: f32, - ); -} pub const libvlc_audio_output_device_types_t_libvlc_AudioOutputDevice_Error: libvlc_audio_output_device_types_t = -1; pub const libvlc_audio_output_device_types_t_libvlc_AudioOutputDevice_Mono: @@ -1696,144 +481,6 @@ pub const libvlc_audio_output_channel_t_libvlc_AudioChannel_Right: libvlc_audio_ pub const libvlc_audio_output_channel_t_libvlc_AudioChannel_Dolbys: libvlc_audio_output_channel_t = 5; pub type libvlc_audio_output_channel_t = libc::c_int; -unsafe extern "C" { - pub fn libvlc_audio_output_list_get( - p_instance: *mut libvlc_instance_t, - ) -> *mut libvlc_audio_output_t; -} -unsafe extern "C" { - pub fn libvlc_audio_output_list_release(p_list: *mut libvlc_audio_output_t); -} -unsafe extern "C" { - pub fn libvlc_audio_output_set( - p_mi: *mut libvlc_media_player_t, - psz_name: *const libc::c_char, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_audio_output_device_enum( - mp: *mut libvlc_media_player_t, - ) -> *mut libvlc_audio_output_device_t; -} -unsafe extern "C" { - pub fn libvlc_audio_output_device_list_get( - p_instance: *mut libvlc_instance_t, - aout: *const libc::c_char, - ) -> *mut libvlc_audio_output_device_t; -} -unsafe extern "C" { - pub fn libvlc_audio_output_device_list_release(p_list: *mut libvlc_audio_output_device_t); -} -unsafe extern "C" { - pub fn libvlc_audio_output_device_set( - mp: *mut libvlc_media_player_t, - module: *const libc::c_char, - device_id: *const libc::c_char, - ); -} -unsafe extern "C" { - pub fn libvlc_audio_output_device_get(mp: *mut libvlc_media_player_t) -> *mut libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_audio_toggle_mute(p_mi: *mut libvlc_media_player_t); -} -unsafe extern "C" { - pub fn libvlc_audio_get_mute(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_audio_set_mute(p_mi: *mut libvlc_media_player_t, status: libc::c_int); -} -unsafe extern "C" { - pub fn libvlc_audio_get_volume(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_audio_set_volume( - p_mi: *mut libvlc_media_player_t, - i_volume: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_audio_get_track_count(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_audio_get_track_description( - p_mi: *mut libvlc_media_player_t, - ) -> *mut libvlc_track_description_t; -} -unsafe extern "C" { - pub fn libvlc_audio_get_track(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_audio_set_track( - p_mi: *mut libvlc_media_player_t, - i_track: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_audio_get_channel(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_audio_set_channel( - p_mi: *mut libvlc_media_player_t, - channel: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_audio_get_delay(p_mi: *mut libvlc_media_player_t) -> i64; -} -unsafe extern "C" { - pub fn libvlc_audio_set_delay(p_mi: *mut libvlc_media_player_t, i_delay: i64) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_audio_equalizer_get_preset_count() -> libc::c_uint; -} -unsafe extern "C" { - pub fn libvlc_audio_equalizer_get_preset_name(u_index: libc::c_uint) -> *const libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_audio_equalizer_get_band_count() -> libc::c_uint; -} -unsafe extern "C" { - pub fn libvlc_audio_equalizer_get_band_frequency(u_index: libc::c_uint) -> f32; -} -unsafe extern "C" { - pub fn libvlc_audio_equalizer_new() -> *mut libvlc_equalizer_t; -} -unsafe extern "C" { - pub fn libvlc_audio_equalizer_new_from_preset(u_index: libc::c_uint) - -> *mut libvlc_equalizer_t; -} -unsafe extern "C" { - pub fn libvlc_audio_equalizer_release(p_equalizer: *mut libvlc_equalizer_t); -} -unsafe extern "C" { - pub fn libvlc_audio_equalizer_set_preamp( - p_equalizer: *mut libvlc_equalizer_t, - f_preamp: f32, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_audio_equalizer_get_preamp(p_equalizer: *mut libvlc_equalizer_t) -> f32; -} -unsafe extern "C" { - pub fn libvlc_audio_equalizer_set_amp_at_index( - p_equalizer: *mut libvlc_equalizer_t, - f_amp: f32, - u_band: libc::c_uint, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_audio_equalizer_get_amp_at_index( - p_equalizer: *mut libvlc_equalizer_t, - u_band: libc::c_uint, - ) -> f32; -} -unsafe extern "C" { - pub fn libvlc_media_player_set_equalizer( - p_mi: *mut libvlc_media_player_t, - p_equalizer: *mut libvlc_equalizer_t, - ) -> libc::c_int; -} pub const libvlc_media_player_role_libvlc_role_None: libvlc_media_player_role = 0; pub const libvlc_media_player_role_libvlc_role_Music: libvlc_media_player_role = 1; pub const libvlc_media_player_role_libvlc_role_Video: libvlc_media_player_role = 2; @@ -1846,78 +493,6 @@ pub const libvlc_media_player_role_libvlc_role_Accessibility: libvlc_media_playe pub const libvlc_media_player_role_libvlc_role_Test: libvlc_media_player_role = 9; pub type libvlc_media_player_role = libc::c_uint; pub use self::libvlc_media_player_role as libvlc_media_player_role_t; -unsafe extern "C" { - pub fn libvlc_media_player_get_role(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_player_set_role( - p_mi: *mut libvlc_media_player_t, - role: libc::c_uint, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_list_new(p_instance: *mut libvlc_instance_t) -> *mut libvlc_media_list_t; -} -unsafe extern "C" { - pub fn libvlc_media_list_release(p_ml: *mut libvlc_media_list_t); -} -unsafe extern "C" { - pub fn libvlc_media_list_retain(p_ml: *mut libvlc_media_list_t); -} -unsafe extern "C" { - pub fn libvlc_media_list_set_media(p_ml: *mut libvlc_media_list_t, p_md: *mut libvlc_media_t); -} -unsafe extern "C" { - pub fn libvlc_media_list_media(p_ml: *mut libvlc_media_list_t) -> *mut libvlc_media_t; -} -unsafe extern "C" { - pub fn libvlc_media_list_add_media( - p_ml: *mut libvlc_media_list_t, - p_md: *mut libvlc_media_t, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_list_insert_media( - p_ml: *mut libvlc_media_list_t, - p_md: *mut libvlc_media_t, - i_pos: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_list_remove_index( - p_ml: *mut libvlc_media_list_t, - i_pos: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_list_count(p_ml: *mut libvlc_media_list_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_list_item_at_index( - p_ml: *mut libvlc_media_list_t, - i_pos: libc::c_int, - ) -> *mut libvlc_media_t; -} -unsafe extern "C" { - pub fn libvlc_media_list_index_of_item( - p_ml: *mut libvlc_media_list_t, - p_md: *mut libvlc_media_t, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_list_is_readonly(p_ml: *mut libvlc_media_list_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_list_lock(p_ml: *mut libvlc_media_list_t); -} -unsafe extern "C" { - pub fn libvlc_media_list_unlock(p_ml: *mut libvlc_media_list_t); -} -unsafe extern "C" { - pub fn libvlc_media_list_event_manager( - p_ml: *mut libvlc_media_list_t, - ) -> *mut libvlc_event_manager_t; -} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_media_list_player_t { @@ -1927,113 +502,11 @@ pub const libvlc_playback_mode_t_libvlc_playback_mode_default: libvlc_playback_m pub const libvlc_playback_mode_t_libvlc_playback_mode_loop: libvlc_playback_mode_t = 1; pub const libvlc_playback_mode_t_libvlc_playback_mode_repeat: libvlc_playback_mode_t = 2; pub type libvlc_playback_mode_t = libc::c_uint; -unsafe extern "C" { - pub fn libvlc_media_list_player_new( - p_instance: *mut libvlc_instance_t, - ) -> *mut libvlc_media_list_player_t; -} -unsafe extern "C" { - pub fn libvlc_media_list_player_release(p_mlp: *mut libvlc_media_list_player_t); -} -unsafe extern "C" { - pub fn libvlc_media_list_player_retain(p_mlp: *mut libvlc_media_list_player_t); -} -unsafe extern "C" { - pub fn libvlc_media_list_player_event_manager( - p_mlp: *mut libvlc_media_list_player_t, - ) -> *mut libvlc_event_manager_t; -} -unsafe extern "C" { - pub fn libvlc_media_list_player_set_media_player( - p_mlp: *mut libvlc_media_list_player_t, - p_mi: *mut libvlc_media_player_t, - ); -} -unsafe extern "C" { - pub fn libvlc_media_list_player_get_media_player( - p_mlp: *mut libvlc_media_list_player_t, - ) -> *mut libvlc_media_player_t; -} -unsafe extern "C" { - pub fn libvlc_media_list_player_set_media_list( - p_mlp: *mut libvlc_media_list_player_t, - p_mlist: *mut libvlc_media_list_t, - ); -} -unsafe extern "C" { - pub fn libvlc_media_list_player_play(p_mlp: *mut libvlc_media_list_player_t); -} -unsafe extern "C" { - pub fn libvlc_media_list_player_pause(p_mlp: *mut libvlc_media_list_player_t); -} -unsafe extern "C" { - pub fn libvlc_media_list_player_set_pause( - p_mlp: *mut libvlc_media_list_player_t, - do_pause: libc::c_int, - ); -} -unsafe extern "C" { - pub fn libvlc_media_list_player_is_playing( - p_mlp: *mut libvlc_media_list_player_t, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_list_player_get_state( - p_mlp: *mut libvlc_media_list_player_t, - ) -> libvlc_state_t; -} -unsafe extern "C" { - pub fn libvlc_media_list_player_play_item_at_index( - p_mlp: *mut libvlc_media_list_player_t, - i_index: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_list_player_play_item( - p_mlp: *mut libvlc_media_list_player_t, - p_md: *mut libvlc_media_t, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_list_player_stop(p_mlp: *mut libvlc_media_list_player_t); -} -unsafe extern "C" { - pub fn libvlc_media_list_player_next(p_mlp: *mut libvlc_media_list_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_list_player_previous(p_mlp: *mut libvlc_media_list_player_t) - -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_list_player_set_playback_mode( - p_mlp: *mut libvlc_media_list_player_t, - e_mode: libvlc_playback_mode_t, - ); -} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_media_library_t { _unused: [u8; 0], } -unsafe extern "C" { - pub fn libvlc_media_library_new( - p_instance: *mut libvlc_instance_t, - ) -> *mut libvlc_media_library_t; -} -unsafe extern "C" { - pub fn libvlc_media_library_release(p_mlib: *mut libvlc_media_library_t); -} -unsafe extern "C" { - pub fn libvlc_media_library_retain(p_mlib: *mut libvlc_media_library_t); -} -unsafe extern "C" { - pub fn libvlc_media_library_load(p_mlib: *mut libvlc_media_library_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_library_media_list( - p_mlib: *mut libvlc_media_library_t, - ) -> *mut libvlc_media_list_t; -} pub const libvlc_media_discoverer_category_t_libvlc_media_discoverer_devices: libvlc_media_discoverer_category_t = 0; pub const libvlc_media_discoverer_category_t_libvlc_media_discoverer_lan: @@ -2050,62 +523,11 @@ pub struct libvlc_media_discoverer_description_t { pub psz_longname: *mut libc::c_char, pub i_cat: libvlc_media_discoverer_category_t, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_media_discoverer_description_t"] - [::core::mem::size_of::() - 24usize]; - ["Alignment of libvlc_media_discoverer_description_t"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_media_discoverer_description_t::psz_name"] - [::core::mem::offset_of!(libvlc_media_discoverer_description_t, psz_name) - 0usize]; - ["Offset of field: libvlc_media_discoverer_description_t::psz_longname"] - [::core::mem::offset_of!(libvlc_media_discoverer_description_t, psz_longname) - 8usize]; - ["Offset of field: libvlc_media_discoverer_description_t::i_cat"] - [::core::mem::offset_of!(libvlc_media_discoverer_description_t, i_cat) - 16usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_media_discoverer_t { _unused: [u8; 0], } -unsafe extern "C" { - pub fn libvlc_media_discoverer_new( - p_inst: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - ) -> *mut libvlc_media_discoverer_t; -} -unsafe extern "C" { - pub fn libvlc_media_discoverer_start(p_mdis: *mut libvlc_media_discoverer_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_discoverer_stop(p_mdis: *mut libvlc_media_discoverer_t); -} -unsafe extern "C" { - pub fn libvlc_media_discoverer_release(p_mdis: *mut libvlc_media_discoverer_t); -} -unsafe extern "C" { - pub fn libvlc_media_discoverer_media_list( - p_mdis: *mut libvlc_media_discoverer_t, - ) -> *mut libvlc_media_list_t; -} -unsafe extern "C" { - pub fn libvlc_media_discoverer_is_running( - p_mdis: *mut libvlc_media_discoverer_t, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_discoverer_list_get( - p_inst: *mut libvlc_instance_t, - i_cat: libvlc_media_discoverer_category_t, - ppp_services: *mut *mut *mut libvlc_media_discoverer_description_t, - ) -> usize; -} -unsafe extern "C" { - pub fn libvlc_media_discoverer_list_release( - pp_services: *mut *mut libvlc_media_discoverer_description_t, - i_count: usize, - ); -} pub const libvlc_event_e_libvlc_MediaMetaChanged: libvlc_event_e = 0; pub const libvlc_event_e_libvlc_MediaSubItemAdded: libvlc_event_e = 1; pub const libvlc_event_e_libvlc_MediaDurationChanged: libvlc_event_e = 2; @@ -2217,558 +639,157 @@ pub union libvlc_event_t__bindgen_ty_1 { pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_1 { pub meta_type: libvlc_meta_t, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_1"] - [::core::mem::size_of::() - 4usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_1"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_1::meta_type"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_1, meta_type) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_2 { pub new_child: *mut libvlc_media_t, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_2"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_2"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_2::new_child"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_2, new_child) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_3 { pub new_duration: i64, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_3"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_3"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_3::new_duration"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1__bindgen_ty_3, - new_duration - ) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_4 { pub new_status: libc::c_int, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_4"] - [::core::mem::size_of::() - 4usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_4"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_4::new_status"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_4, new_status) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_5 { pub md: *mut libvlc_media_t, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_5"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_5"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_5::md"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_5, md) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_6 { pub new_state: libc::c_int, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_6"] - [::core::mem::size_of::() - 4usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_6"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_6::new_state"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_6, new_state) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_7 { pub item: *mut libvlc_media_t, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_7"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_7"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_7::item"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_7, item) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_8 { pub new_cache: f32, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_8"] - [::core::mem::size_of::() - 4usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_8"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_8::new_cache"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_8, new_cache) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_9 { pub new_chapter: libc::c_int, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_9"] - [::core::mem::size_of::() - 4usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_9"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_9::new_chapter"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_9, new_chapter) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_10 { pub new_position: f32, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_10"] - [::core::mem::size_of::() - 4usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_10"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_10::new_position"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1__bindgen_ty_10, - new_position - ) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_11 { pub new_time: libvlc_time_t, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_11"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_11"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_11::new_time"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_11, new_time) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_12 { pub new_title: libc::c_int, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_12"] - [::core::mem::size_of::() - 4usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_12"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_12::new_title"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_12, new_title) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_13 { pub new_seekable: libc::c_int, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_13"] - [::core::mem::size_of::() - 4usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_13"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_13::new_seekable"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1__bindgen_ty_13, - new_seekable - ) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_14 { pub new_pausable: libc::c_int, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_14"] - [::core::mem::size_of::() - 4usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_14"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_14::new_pausable"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1__bindgen_ty_14, - new_pausable - ) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_15 { pub new_scrambled: libc::c_int, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_15"] - [::core::mem::size_of::() - 4usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_15"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_15::new_scrambled"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1__bindgen_ty_15, - new_scrambled - ) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_16 { pub new_count: libc::c_int, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_16"] - [::core::mem::size_of::() - 4usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_16"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_16::new_count"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_16, new_count) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_17 { pub item: *mut libvlc_media_t, pub index: libc::c_int, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_17"] - [::core::mem::size_of::() - 16usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_17"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_17::item"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_17, item) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_17::index"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_17, index) - 8usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_18 { pub item: *mut libvlc_media_t, pub index: libc::c_int, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_18"] - [::core::mem::size_of::() - 16usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_18"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_18::item"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_18, item) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_18::index"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_18, index) - 8usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_19 { pub item: *mut libvlc_media_t, pub index: libc::c_int, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_19"] - [::core::mem::size_of::() - 16usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_19"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_19::item"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_19, item) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_19::index"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_19, index) - 8usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_20 { pub item: *mut libvlc_media_t, pub index: libc::c_int, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_20"] - [::core::mem::size_of::() - 16usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_20"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_20::item"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_20, item) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_20::index"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_20, index) - 8usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_21 { pub item: *mut libvlc_media_t, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_21"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_21"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_21::item"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_21, item) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_22 { pub psz_filename: *mut libc::c_char, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_22"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_22"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_22::psz_filename"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1__bindgen_ty_22, - psz_filename - ) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_23 { pub new_length: libvlc_time_t, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_23"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_23"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_23::new_length"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_23, new_length) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_24 { pub psz_media_name: *const libc::c_char, pub psz_instance_name: *const libc::c_char, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_24"] - [::core::mem::size_of::() - 16usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_24"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_24::psz_media_name"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1__bindgen_ty_24, - psz_media_name - ) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_24::psz_instance_name"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1__bindgen_ty_24, - psz_instance_name - ) - 8usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_25 { pub new_media: *mut libvlc_media_t, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_25"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_25"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_25::new_media"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_25, new_media) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_26 { pub i_type: libvlc_track_type_t, pub i_id: libc::c_int, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_26"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_26"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_26::i_type"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_26, i_type) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_26::i_id"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_26, i_id) - 4usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_27 { pub volume: f32, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_27"] - [::core::mem::size_of::() - 4usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_27"] - [::core::mem::align_of::() - 4usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_27::volume"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_27, volume) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_28 { pub device: *const libc::c_char, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_28"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_28"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_28::device"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_28, device) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_29 { pub item: *mut libvlc_renderer_item_t, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_29"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_29"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_29::item"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_29, item) - 0usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_event_t__bindgen_ty_1__bindgen_ty_30 { pub item: *mut libvlc_renderer_item_t, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1__bindgen_ty_30"] - [::core::mem::size_of::() - 8usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1__bindgen_ty_30"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1__bindgen_ty_30::item"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1__bindgen_ty_30, item) - 0usize]; -}; -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t__bindgen_ty_1"] - [::core::mem::size_of::() - 16usize]; - ["Alignment of libvlc_event_t__bindgen_ty_1"] - [::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_meta_changed"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, media_meta_changed) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_subitem_added"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, media_subitem_added) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_duration_changed"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, media_duration_changed) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_parsed_changed"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, media_parsed_changed) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_freed"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, media_freed) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_state_changed"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, media_state_changed) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_subitemtree_added"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, media_subitemtree_added) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_player_buffering"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, media_player_buffering) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_player_chapter_changed"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1, - media_player_chapter_changed - ) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_player_position_changed"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1, - media_player_position_changed - ) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_player_time_changed"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, media_player_time_changed) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_player_title_changed"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1, - media_player_title_changed - ) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_player_seekable_changed"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1, - media_player_seekable_changed - ) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_player_pausable_changed"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1, - media_player_pausable_changed - ) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_player_scrambled_changed"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1, - media_player_scrambled_changed - ) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_player_vout"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, media_player_vout) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_list_item_added"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, media_list_item_added) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_list_will_add_item"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, media_list_will_add_item) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_list_item_deleted"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, media_list_item_deleted) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_list_will_delete_item"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1, - media_list_will_delete_item - ) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_list_player_next_item_set"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1, - media_list_player_next_item_set - ) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_player_snapshot_taken"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1, - media_player_snapshot_taken - ) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_player_length_changed"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1, - media_player_length_changed - ) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::vlm_media_event"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, vlm_media_event) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_player_media_changed"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1, - media_player_media_changed - ) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_player_es_changed"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, media_player_es_changed) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_player_audio_volume"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, media_player_audio_volume) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::media_player_audio_device"] - [::core::mem::offset_of!(libvlc_event_t__bindgen_ty_1, media_player_audio_device) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::renderer_discoverer_item_added"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1, - renderer_discoverer_item_added - ) - 0usize]; - ["Offset of field: libvlc_event_t__bindgen_ty_1::renderer_discoverer_item_deleted"][::core::mem::offset_of!( - libvlc_event_t__bindgen_ty_1, - renderer_discoverer_item_deleted - ) - 0usize]; -}; -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_event_t"][::core::mem::size_of::() - 32usize]; - ["Alignment of libvlc_event_t"][::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_event_t::type_"] - [::core::mem::offset_of!(libvlc_event_t, type_) - 0usize]; - ["Offset of field: libvlc_event_t::p_obj"] - [::core::mem::offset_of!(libvlc_event_t, p_obj) - 8usize]; - ["Offset of field: libvlc_event_t::u"][::core::mem::offset_of!(libvlc_event_t, u) - 16usize]; -}; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_dialog_id { @@ -2836,310 +857,6 @@ pub struct libvlc_dialog_cbs { ), >, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_dialog_cbs"][::core::mem::size_of::() - 48usize]; - ["Alignment of libvlc_dialog_cbs"][::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_dialog_cbs::pf_display_error"] - [::core::mem::offset_of!(libvlc_dialog_cbs, pf_display_error) - 0usize]; - ["Offset of field: libvlc_dialog_cbs::pf_display_login"] - [::core::mem::offset_of!(libvlc_dialog_cbs, pf_display_login) - 8usize]; - ["Offset of field: libvlc_dialog_cbs::pf_display_question"] - [::core::mem::offset_of!(libvlc_dialog_cbs, pf_display_question) - 16usize]; - ["Offset of field: libvlc_dialog_cbs::pf_display_progress"] - [::core::mem::offset_of!(libvlc_dialog_cbs, pf_display_progress) - 24usize]; - ["Offset of field: libvlc_dialog_cbs::pf_cancel"] - [::core::mem::offset_of!(libvlc_dialog_cbs, pf_cancel) - 32usize]; - ["Offset of field: libvlc_dialog_cbs::pf_update_progress"] - [::core::mem::offset_of!(libvlc_dialog_cbs, pf_update_progress) - 40usize]; -}; -unsafe extern "C" { - pub fn libvlc_dialog_set_callbacks( - p_instance: *mut libvlc_instance_t, - p_cbs: *const libvlc_dialog_cbs, - p_data: *mut libc::c_void, - ); -} -unsafe extern "C" { - pub fn libvlc_dialog_set_context(p_id: *mut libvlc_dialog_id, p_context: *mut libc::c_void); -} -unsafe extern "C" { - pub fn libvlc_dialog_get_context(p_id: *mut libvlc_dialog_id) -> *mut libc::c_void; -} -unsafe extern "C" { - pub fn libvlc_dialog_post_login( - p_id: *mut libvlc_dialog_id, - psz_username: *const libc::c_char, - psz_password: *const libc::c_char, - b_store: bool, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_dialog_post_action( - p_id: *mut libvlc_dialog_id, - i_action: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_dialog_dismiss(p_id: *mut libvlc_dialog_id) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_release(p_instance: *mut libvlc_instance_t); -} -unsafe extern "C" { - pub fn libvlc_vlm_add_broadcast( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - psz_input: *const libc::c_char, - psz_output: *const libc::c_char, - i_options: libc::c_int, - ppsz_options: *const *const libc::c_char, - b_enabled: libc::c_int, - b_loop: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_add_vod( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - psz_input: *const libc::c_char, - i_options: libc::c_int, - ppsz_options: *const *const libc::c_char, - b_enabled: libc::c_int, - psz_mux: *const libc::c_char, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_del_media( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_set_enabled( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - b_enabled: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_set_output( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - psz_output: *const libc::c_char, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_set_input( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - psz_input: *const libc::c_char, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_add_input( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - psz_input: *const libc::c_char, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_set_loop( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - b_loop: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_set_mux( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - psz_mux: *const libc::c_char, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_change_media( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - psz_input: *const libc::c_char, - psz_output: *const libc::c_char, - i_options: libc::c_int, - ppsz_options: *const *const libc::c_char, - b_enabled: libc::c_int, - b_loop: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_play_media( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_stop_media( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_pause_media( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_seek_media( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - f_percentage: f32, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_show_media( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - ) -> *const libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_vlm_get_media_instance_position( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - i_instance: libc::c_int, - ) -> f32; -} -unsafe extern "C" { - pub fn libvlc_vlm_get_media_instance_time( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - i_instance: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_get_media_instance_length( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - i_instance: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_get_media_instance_rate( - p_instance: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - i_instance: libc::c_int, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_vlm_get_event_manager( - p_instance: *mut libvlc_instance_t, - ) -> *mut libvlc_event_manager_t; -} -unsafe extern "C" { - pub fn libvlc_media_player_get_fps(p_mi: *mut libvlc_media_player_t) -> f32; -} -unsafe extern "C" { - pub fn libvlc_media_player_set_agl(p_mi: *mut libvlc_media_player_t, drawable: u32); -} -unsafe extern "C" { - pub fn libvlc_media_player_get_agl(p_mi: *mut libvlc_media_player_t) -> u32; -} -unsafe extern "C" { - pub fn libvlc_track_description_release(p_track_description: *mut libvlc_track_description_t); -} -unsafe extern "C" { - pub fn libvlc_video_get_height(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_get_width(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_video_get_title_description( - p_mi: *mut libvlc_media_player_t, - ) -> *mut libvlc_track_description_t; -} -unsafe extern "C" { - pub fn libvlc_video_get_chapter_description( - p_mi: *mut libvlc_media_player_t, - i_title: libc::c_int, - ) -> *mut libvlc_track_description_t; -} -unsafe extern "C" { - pub fn libvlc_video_set_subtitle_file( - p_mi: *mut libvlc_media_player_t, - psz_subtitle: *const libc::c_char, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_toggle_teletext(p_mi: *mut libvlc_media_player_t); -} -unsafe extern "C" { - pub fn libvlc_audio_output_device_count( - p_instance: *mut libvlc_instance_t, - psz_audio_output: *const libc::c_char, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_audio_output_device_longname( - p_instance: *mut libvlc_instance_t, - psz_output: *const libc::c_char, - i_device: libc::c_int, - ) -> *mut libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_audio_output_device_id( - p_instance: *mut libvlc_instance_t, - psz_audio_output: *const libc::c_char, - i_device: libc::c_int, - ) -> *mut libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_audio_output_get_device_type(p_mi: *mut libvlc_media_player_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_audio_output_set_device_type( - p_mp: *mut libvlc_media_player_t, - device_type: libc::c_int, - ); -} -unsafe extern "C" { - pub fn libvlc_media_parse(p_md: *mut libvlc_media_t); -} -unsafe extern "C" { - pub fn libvlc_media_parse_async(p_md: *mut libvlc_media_t); -} -unsafe extern "C" { - pub fn libvlc_media_is_parsed(p_md: *mut libvlc_media_t) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_get_tracks_info( - p_md: *mut libvlc_media_t, - tracks: *mut *mut libvlc_media_track_info_t, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_list_add_file_content( - p_ml: *mut libvlc_media_list_t, - psz_uri: *const libc::c_char, - ) -> libc::c_int; -} -unsafe extern "C" { - pub fn libvlc_media_discoverer_new_from_name( - p_inst: *mut libvlc_instance_t, - psz_name: *const libc::c_char, - ) -> *mut libvlc_media_discoverer_t; -} -unsafe extern "C" { - pub fn libvlc_media_discoverer_localized_name( - p_mdis: *mut libvlc_media_discoverer_t, - ) -> *mut libc::c_char; -} -unsafe extern "C" { - pub fn libvlc_media_discoverer_event_manager( - p_mdis: *mut libvlc_media_discoverer_t, - ) -> *mut libvlc_event_manager_t; -} -unsafe extern "C" { - pub fn libvlc_wait(p_instance: *mut libvlc_instance_t); -} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct libvlc_log_iterator_t { @@ -3154,55 +871,865 @@ pub struct libvlc_log_message_t { pub psz_header: *const libc::c_char, pub psz_message: *const libc::c_char, } -#[allow(clippy::unnecessary_operation, clippy::identity_op)] -const _: () = { - ["Size of libvlc_log_message_t"][::core::mem::size_of::() - 40usize]; - ["Alignment of libvlc_log_message_t"][::core::mem::align_of::() - 8usize]; - ["Offset of field: libvlc_log_message_t::i_severity"] - [::core::mem::offset_of!(libvlc_log_message_t, i_severity) - 0usize]; - ["Offset of field: libvlc_log_message_t::psz_type"] - [::core::mem::offset_of!(libvlc_log_message_t, psz_type) - 8usize]; - ["Offset of field: libvlc_log_message_t::psz_name"] - [::core::mem::offset_of!(libvlc_log_message_t, psz_name) - 16usize]; - ["Offset of field: libvlc_log_message_t::psz_header"] - [::core::mem::offset_of!(libvlc_log_message_t, psz_header) - 24usize]; - ["Offset of field: libvlc_log_message_t::psz_message"] - [::core::mem::offset_of!(libvlc_log_message_t, psz_message) - 32usize]; -}; +#[cfg_attr(windows, link(name = "libvlc", kind = "raw-dylib"))] unsafe extern "C" { + pub fn libvlc_errmsg() -> *const libc::c_char; + pub fn libvlc_clearerr(); + pub fn libvlc_vprinterr( + fmt: *const libc::c_char, + ap: VaList, + ) -> *const libc::c_char; + pub fn libvlc_printerr(fmt: *const libc::c_char, ...) -> *const libc::c_char; + pub fn libvlc_new( + argc: libc::c_int, + argv: *const *const libc::c_char, + ) -> *mut libvlc_instance_t; + pub fn libvlc_release(p_instance: *mut libvlc_instance_t); + pub fn libvlc_retain(p_instance: *mut libvlc_instance_t); + pub fn libvlc_add_intf( + p_instance: *mut libvlc_instance_t, + name: *const libc::c_char, + ) -> libc::c_int; + pub fn libvlc_set_exit_handler( + p_instance: *mut libvlc_instance_t, + cb: ::core::option::Option, + opaque: *mut libc::c_void, + ); + pub fn libvlc_set_user_agent( + p_instance: *mut libvlc_instance_t, + name: *const libc::c_char, + http: *const libc::c_char, + ); + pub fn libvlc_set_app_id( + p_instance: *mut libvlc_instance_t, + id: *const libc::c_char, + version: *const libc::c_char, + icon: *const libc::c_char, + ); + pub fn libvlc_get_version() -> *const libc::c_char; + pub fn libvlc_get_compiler() -> *const libc::c_char; + pub fn libvlc_get_changeset() -> *const libc::c_char; + pub fn libvlc_free(ptr: *mut libc::c_void); + pub fn libvlc_event_attach( + p_event_manager: *mut libvlc_event_manager_t, + i_event_type: libvlc_event_type_t, + f_callback: libvlc_callback_t, + user_data: *mut libc::c_void, + ) -> libc::c_int; + pub fn libvlc_event_detach( + p_event_manager: *mut libvlc_event_manager_t, + i_event_type: libvlc_event_type_t, + f_callback: libvlc_callback_t, + p_user_data: *mut libc::c_void, + ); + pub fn libvlc_event_type_name(event_type: libvlc_event_type_t) -> *const libc::c_char; + pub fn libvlc_log_get_context( + ctx: *const libvlc_log_t, + module: *mut *const libc::c_char, + file: *mut *const libc::c_char, + line: *mut libc::c_uint, + ); + pub fn libvlc_log_get_object( + ctx: *const libvlc_log_t, + name: *mut *const libc::c_char, + header: *mut *const libc::c_char, + id: *mut usize, + ); + pub fn libvlc_log_unset(p_instance: *mut libvlc_instance_t); + pub fn libvlc_log_set( + p_instance: *mut libvlc_instance_t, + cb: libvlc_log_cb, + data: *mut libc::c_void, + ); + pub fn libvlc_log_set_file(p_instance: *mut libvlc_instance_t, stream: *mut FILE); + pub fn libvlc_module_description_list_release(p_list: *mut libvlc_module_description_t); + pub fn libvlc_audio_filter_list_get( + p_instance: *mut libvlc_instance_t, + ) -> *mut libvlc_module_description_t; + pub fn libvlc_video_filter_list_get( + p_instance: *mut libvlc_instance_t, + ) -> *mut libvlc_module_description_t; + pub fn libvlc_clock() -> i64; + pub fn libvlc_renderer_item_hold( + p_item: *mut libvlc_renderer_item_t, + ) -> *mut libvlc_renderer_item_t; + pub fn libvlc_renderer_item_release(p_item: *mut libvlc_renderer_item_t); + pub fn libvlc_renderer_item_name(p_item: *const libvlc_renderer_item_t) -> *const libc::c_char; + pub fn libvlc_renderer_item_type(p_item: *const libvlc_renderer_item_t) -> *const libc::c_char; + pub fn libvlc_renderer_item_icon_uri( + p_item: *const libvlc_renderer_item_t, + ) -> *const libc::c_char; + pub fn libvlc_renderer_item_flags(p_item: *const libvlc_renderer_item_t) -> libc::c_int; + pub fn libvlc_renderer_discoverer_new( + p_inst: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + ) -> *mut libvlc_renderer_discoverer_t; + pub fn libvlc_renderer_discoverer_release(p_rd: *mut libvlc_renderer_discoverer_t); + pub fn libvlc_renderer_discoverer_start(p_rd: *mut libvlc_renderer_discoverer_t) + -> libc::c_int; + pub fn libvlc_renderer_discoverer_stop(p_rd: *mut libvlc_renderer_discoverer_t); + pub fn libvlc_renderer_discoverer_event_manager( + p_rd: *mut libvlc_renderer_discoverer_t, + ) -> *mut libvlc_event_manager_t; + pub fn libvlc_renderer_discoverer_list_get( + p_inst: *mut libvlc_instance_t, + ppp_services: *mut *mut *mut libvlc_rd_description_t, + ) -> usize; + pub fn libvlc_renderer_discoverer_list_release( + pp_services: *mut *mut libvlc_rd_description_t, + i_count: usize, + ); + pub fn libvlc_media_new_location( + p_instance: *mut libvlc_instance_t, + psz_mrl: *const libc::c_char, + ) -> *mut libvlc_media_t; + pub fn libvlc_media_new_path( + p_instance: *mut libvlc_instance_t, + path: *const libc::c_char, + ) -> *mut libvlc_media_t; + pub fn libvlc_media_new_fd( + p_instance: *mut libvlc_instance_t, + fd: libc::c_int, + ) -> *mut libvlc_media_t; + pub fn libvlc_media_new_callbacks( + instance: *mut libvlc_instance_t, + open_cb: libvlc_media_open_cb, + read_cb: libvlc_media_read_cb, + seek_cb: libvlc_media_seek_cb, + close_cb: libvlc_media_close_cb, + opaque: *mut libc::c_void, + ) -> *mut libvlc_media_t; + pub fn libvlc_media_new_as_node( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + ) -> *mut libvlc_media_t; + pub fn libvlc_media_add_option(p_md: *mut libvlc_media_t, psz_options: *const libc::c_char); + pub fn libvlc_media_add_option_flag( + p_md: *mut libvlc_media_t, + psz_options: *const libc::c_char, + i_flags: libc::c_uint, + ); + pub fn libvlc_media_retain(p_md: *mut libvlc_media_t); + pub fn libvlc_media_release(p_md: *mut libvlc_media_t); + pub fn libvlc_media_get_mrl(p_md: *mut libvlc_media_t) -> *mut libc::c_char; + pub fn libvlc_media_duplicate(p_md: *mut libvlc_media_t) -> *mut libvlc_media_t; + pub fn libvlc_media_get_meta( + p_md: *mut libvlc_media_t, + e_meta: libvlc_meta_t, + ) -> *mut libc::c_char; + pub fn libvlc_media_set_meta( + p_md: *mut libvlc_media_t, + e_meta: libvlc_meta_t, + psz_value: *const libc::c_char, + ); + pub fn libvlc_media_save_meta(p_md: *mut libvlc_media_t) -> libc::c_int; + pub fn libvlc_media_get_state(p_md: *mut libvlc_media_t) -> libvlc_state_t; + pub fn libvlc_media_get_stats( + p_md: *mut libvlc_media_t, + p_stats: *mut libvlc_media_stats_t, + ) -> libc::c_int; + pub fn libvlc_media_subitems(p_md: *mut libvlc_media_t) -> *mut libvlc_media_list_t; + pub fn libvlc_media_event_manager(p_md: *mut libvlc_media_t) -> *mut libvlc_event_manager_t; + pub fn libvlc_media_get_duration(p_md: *mut libvlc_media_t) -> libvlc_time_t; + pub fn libvlc_media_parse_with_options( + p_md: *mut libvlc_media_t, + parse_flag: libvlc_media_parse_flag_t, + timeout: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_media_parse_stop(p_md: *mut libvlc_media_t); + pub fn libvlc_media_get_parsed_status( + p_md: *mut libvlc_media_t, + ) -> libvlc_media_parsed_status_t; + pub fn libvlc_media_set_user_data( + p_md: *mut libvlc_media_t, + p_new_user_data: *mut libc::c_void, + ); + pub fn libvlc_media_get_user_data(p_md: *mut libvlc_media_t) -> *mut libc::c_void; + pub fn libvlc_media_tracks_get( + p_md: *mut libvlc_media_t, + tracks: *mut *mut *mut libvlc_media_track_t, + ) -> libc::c_uint; + pub fn libvlc_media_get_codec_description( + i_type: libvlc_track_type_t, + i_codec: u32, + ) -> *const libc::c_char; + pub fn libvlc_media_tracks_release( + p_tracks: *mut *mut libvlc_media_track_t, + i_count: libc::c_uint, + ); + pub fn libvlc_media_get_type(p_md: *mut libvlc_media_t) -> libvlc_media_type_t; + pub fn libvlc_media_slaves_add( + p_md: *mut libvlc_media_t, + i_type: libvlc_media_slave_type_t, + i_priority: libc::c_uint, + psz_uri: *const libc::c_char, + ) -> libc::c_int; + pub fn libvlc_media_slaves_clear(p_md: *mut libvlc_media_t); + pub fn libvlc_media_slaves_get( + p_md: *mut libvlc_media_t, + ppp_slaves: *mut *mut *mut libvlc_media_slave_t, + ) -> libc::c_uint; + pub fn libvlc_media_slaves_release( + pp_slaves: *mut *mut libvlc_media_slave_t, + i_count: libc::c_uint, + ); + pub fn libvlc_media_player_new( + p_libvlc_instance: *mut libvlc_instance_t, + ) -> *mut libvlc_media_player_t; + pub fn libvlc_media_player_new_from_media( + p_md: *mut libvlc_media_t, + ) -> *mut libvlc_media_player_t; + pub fn libvlc_media_player_release(p_mi: *mut libvlc_media_player_t); + pub fn libvlc_media_player_retain(p_mi: *mut libvlc_media_player_t); + pub fn libvlc_media_player_set_media( + p_mi: *mut libvlc_media_player_t, + p_md: *mut libvlc_media_t, + ); + pub fn libvlc_media_player_get_media(p_mi: *mut libvlc_media_player_t) -> *mut libvlc_media_t; + pub fn libvlc_media_player_event_manager( + p_mi: *mut libvlc_media_player_t, + ) -> *mut libvlc_event_manager_t; + pub fn libvlc_media_player_is_playing(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_media_player_play(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_media_player_set_pause(mp: *mut libvlc_media_player_t, do_pause: libc::c_int); + pub fn libvlc_media_player_pause(p_mi: *mut libvlc_media_player_t); + pub fn libvlc_media_player_stop(p_mi: *mut libvlc_media_player_t); + pub fn libvlc_media_player_set_renderer( + p_mi: *mut libvlc_media_player_t, + p_item: *mut libvlc_renderer_item_t, + ) -> libc::c_int; + pub fn libvlc_video_set_callbacks( + mp: *mut libvlc_media_player_t, + lock: libvlc_video_lock_cb, + unlock: libvlc_video_unlock_cb, + display: libvlc_video_display_cb, + opaque: *mut libc::c_void, + ); + pub fn libvlc_video_set_format( + mp: *mut libvlc_media_player_t, + chroma: *const libc::c_char, + width: libc::c_uint, + height: libc::c_uint, + pitch: libc::c_uint, + ); + pub fn libvlc_video_set_format_callbacks( + mp: *mut libvlc_media_player_t, + setup: libvlc_video_format_cb, + cleanup: libvlc_video_cleanup_cb, + ); + pub fn libvlc_media_player_set_nsobject( + p_mi: *mut libvlc_media_player_t, + drawable: *mut libc::c_void, + ); + pub fn libvlc_media_player_get_nsobject(p_mi: *mut libvlc_media_player_t) -> *mut libc::c_void; + pub fn libvlc_media_player_set_xwindow(p_mi: *mut libvlc_media_player_t, drawable: u32); + pub fn libvlc_media_player_get_xwindow(p_mi: *mut libvlc_media_player_t) -> u32; + pub fn libvlc_media_player_set_hwnd( + p_mi: *mut libvlc_media_player_t, + drawable: *mut libc::c_void, + ); + pub fn libvlc_media_player_get_hwnd(p_mi: *mut libvlc_media_player_t) -> *mut libc::c_void; + pub fn libvlc_media_player_set_android_context( + p_mi: *mut libvlc_media_player_t, + p_awindow_handler: *mut libc::c_void, + ); + pub fn libvlc_media_player_set_evas_object( + p_mi: *mut libvlc_media_player_t, + p_evas_object: *mut libc::c_void, + ) -> libc::c_int; + pub fn libvlc_audio_set_callbacks( + mp: *mut libvlc_media_player_t, + play: libvlc_audio_play_cb, + pause: libvlc_audio_pause_cb, + resume: libvlc_audio_resume_cb, + flush: libvlc_audio_flush_cb, + drain: libvlc_audio_drain_cb, + opaque: *mut libc::c_void, + ); + pub fn libvlc_audio_set_volume_callback( + mp: *mut libvlc_media_player_t, + set_volume: libvlc_audio_set_volume_cb, + ); + pub fn libvlc_audio_set_format_callbacks( + mp: *mut libvlc_media_player_t, + setup: libvlc_audio_setup_cb, + cleanup: libvlc_audio_cleanup_cb, + ); + pub fn libvlc_audio_set_format( + mp: *mut libvlc_media_player_t, + format: *const libc::c_char, + rate: libc::c_uint, + channels: libc::c_uint, + ); + pub fn libvlc_media_player_get_length(p_mi: *mut libvlc_media_player_t) -> libvlc_time_t; + pub fn libvlc_media_player_get_time(p_mi: *mut libvlc_media_player_t) -> libvlc_time_t; + pub fn libvlc_media_player_set_time(p_mi: *mut libvlc_media_player_t, i_time: libvlc_time_t); + pub fn libvlc_media_player_get_position(p_mi: *mut libvlc_media_player_t) -> f32; + pub fn libvlc_media_player_set_position(p_mi: *mut libvlc_media_player_t, f_pos: f32); + pub fn libvlc_media_player_set_chapter( + p_mi: *mut libvlc_media_player_t, + i_chapter: libc::c_int, + ); + pub fn libvlc_media_player_get_chapter(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_media_player_get_chapter_count(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_media_player_will_play(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_media_player_get_chapter_count_for_title( + p_mi: *mut libvlc_media_player_t, + i_title: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_media_player_set_title(p_mi: *mut libvlc_media_player_t, i_title: libc::c_int); + pub fn libvlc_media_player_get_title(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_media_player_get_title_count(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_media_player_previous_chapter(p_mi: *mut libvlc_media_player_t); + pub fn libvlc_media_player_next_chapter(p_mi: *mut libvlc_media_player_t); + pub fn libvlc_media_player_get_rate(p_mi: *mut libvlc_media_player_t) -> f32; + pub fn libvlc_media_player_set_rate(p_mi: *mut libvlc_media_player_t, rate: f32) + -> libc::c_int; + pub fn libvlc_media_player_get_state(p_mi: *mut libvlc_media_player_t) -> libvlc_state_t; + pub fn libvlc_media_player_has_vout(p_mi: *mut libvlc_media_player_t) -> libc::c_uint; + pub fn libvlc_media_player_is_seekable(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_media_player_can_pause(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_media_player_program_scrambled(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_media_player_next_frame(p_mi: *mut libvlc_media_player_t); + pub fn libvlc_media_player_navigate(p_mi: *mut libvlc_media_player_t, navigate: libc::c_uint); + pub fn libvlc_media_player_set_video_title_display( + p_mi: *mut libvlc_media_player_t, + position: libvlc_position_t, + timeout: libc::c_uint, + ); + pub fn libvlc_media_player_add_slave( + p_mi: *mut libvlc_media_player_t, + i_type: libvlc_media_slave_type_t, + psz_uri: *const libc::c_char, + b_select: bool, + ) -> libc::c_int; + pub fn libvlc_track_description_list_release( + p_track_description: *mut libvlc_track_description_t, + ); + pub fn libvlc_toggle_fullscreen(p_mi: *mut libvlc_media_player_t); + pub fn libvlc_set_fullscreen(p_mi: *mut libvlc_media_player_t, b_fullscreen: libc::c_int); + pub fn libvlc_get_fullscreen(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_video_set_key_input(p_mi: *mut libvlc_media_player_t, on: libc::c_uint); + pub fn libvlc_video_set_mouse_input(p_mi: *mut libvlc_media_player_t, on: libc::c_uint); + pub fn libvlc_video_get_size( + p_mi: *mut libvlc_media_player_t, + num: libc::c_uint, + px: *mut libc::c_uint, + py: *mut libc::c_uint, + ) -> libc::c_int; + pub fn libvlc_video_get_cursor( + p_mi: *mut libvlc_media_player_t, + num: libc::c_uint, + px: *mut libc::c_int, + py: *mut libc::c_int, + ) -> libc::c_int; + pub fn libvlc_video_get_scale(p_mi: *mut libvlc_media_player_t) -> f32; + pub fn libvlc_video_set_scale(p_mi: *mut libvlc_media_player_t, f_factor: f32); + pub fn libvlc_video_get_aspect_ratio(p_mi: *mut libvlc_media_player_t) -> *mut libc::c_char; + pub fn libvlc_video_set_aspect_ratio( + p_mi: *mut libvlc_media_player_t, + psz_aspect: *const libc::c_char, + ); + pub fn libvlc_video_new_viewpoint() -> *mut libvlc_video_viewpoint_t; + pub fn libvlc_video_update_viewpoint( + p_mi: *mut libvlc_media_player_t, + p_viewpoint: *const libvlc_video_viewpoint_t, + b_absolute: bool, + ) -> libc::c_int; + pub fn libvlc_video_get_spu(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_video_get_spu_count(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_video_get_spu_description( + p_mi: *mut libvlc_media_player_t, + ) -> *mut libvlc_track_description_t; + pub fn libvlc_video_set_spu( + p_mi: *mut libvlc_media_player_t, + i_spu: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_video_get_spu_delay(p_mi: *mut libvlc_media_player_t) -> i64; + pub fn libvlc_video_set_spu_delay( + p_mi: *mut libvlc_media_player_t, + i_delay: i64, + ) -> libc::c_int; + pub fn libvlc_media_player_get_full_title_descriptions( + p_mi: *mut libvlc_media_player_t, + titles: *mut *mut *mut libvlc_title_description_t, + ) -> libc::c_int; + pub fn libvlc_title_descriptions_release( + p_titles: *mut *mut libvlc_title_description_t, + i_count: libc::c_uint, + ); + pub fn libvlc_media_player_get_full_chapter_descriptions( + p_mi: *mut libvlc_media_player_t, + i_chapters_of_title: libc::c_int, + pp_chapters: *mut *mut *mut libvlc_chapter_description_t, + ) -> libc::c_int; + pub fn libvlc_chapter_descriptions_release( + p_chapters: *mut *mut libvlc_chapter_description_t, + i_count: libc::c_uint, + ); + pub fn libvlc_video_get_crop_geometry(p_mi: *mut libvlc_media_player_t) -> *mut libc::c_char; + pub fn libvlc_video_set_crop_geometry( + p_mi: *mut libvlc_media_player_t, + psz_geometry: *const libc::c_char, + ); + pub fn libvlc_video_get_teletext(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_video_set_teletext(p_mi: *mut libvlc_media_player_t, i_page: libc::c_int); + pub fn libvlc_video_get_track_count(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_video_get_track_description( + p_mi: *mut libvlc_media_player_t, + ) -> *mut libvlc_track_description_t; + pub fn libvlc_video_get_track(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_video_set_track( + p_mi: *mut libvlc_media_player_t, + i_track: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_video_take_snapshot( + p_mi: *mut libvlc_media_player_t, + num: libc::c_uint, + psz_filepath: *const libc::c_char, + i_width: libc::c_uint, + i_height: libc::c_uint, + ) -> libc::c_int; + pub fn libvlc_video_set_deinterlace( + p_mi: *mut libvlc_media_player_t, + psz_mode: *const libc::c_char, + ); + pub fn libvlc_video_get_marquee_int( + p_mi: *mut libvlc_media_player_t, + option: libc::c_uint, + ) -> libc::c_int; + pub fn libvlc_video_get_marquee_string( + p_mi: *mut libvlc_media_player_t, + option: libc::c_uint, + ) -> *mut libc::c_char; + pub fn libvlc_video_set_marquee_int( + p_mi: *mut libvlc_media_player_t, + option: libc::c_uint, + i_val: libc::c_int, + ); + pub fn libvlc_video_set_marquee_string( + p_mi: *mut libvlc_media_player_t, + option: libc::c_uint, + psz_text: *const libc::c_char, + ); + pub fn libvlc_video_get_logo_int( + p_mi: *mut libvlc_media_player_t, + option: libc::c_uint, + ) -> libc::c_int; + pub fn libvlc_video_set_logo_int( + p_mi: *mut libvlc_media_player_t, + option: libc::c_uint, + value: libc::c_int, + ); + pub fn libvlc_video_set_logo_string( + p_mi: *mut libvlc_media_player_t, + option: libc::c_uint, + psz_value: *const libc::c_char, + ); + pub fn libvlc_video_get_adjust_int( + p_mi: *mut libvlc_media_player_t, + option: libc::c_uint, + ) -> libc::c_int; + pub fn libvlc_video_set_adjust_int( + p_mi: *mut libvlc_media_player_t, + option: libc::c_uint, + value: libc::c_int, + ); + pub fn libvlc_video_get_adjust_float( + p_mi: *mut libvlc_media_player_t, + option: libc::c_uint, + ) -> f32; + pub fn libvlc_video_set_adjust_float( + p_mi: *mut libvlc_media_player_t, + option: libc::c_uint, + value: f32, + ); + pub fn libvlc_audio_output_list_get( + p_instance: *mut libvlc_instance_t, + ) -> *mut libvlc_audio_output_t; + pub fn libvlc_audio_output_list_release(p_list: *mut libvlc_audio_output_t); + pub fn libvlc_audio_output_set( + p_mi: *mut libvlc_media_player_t, + psz_name: *const libc::c_char, + ) -> libc::c_int; + pub fn libvlc_audio_output_device_enum( + mp: *mut libvlc_media_player_t, + ) -> *mut libvlc_audio_output_device_t; + pub fn libvlc_audio_output_device_list_get( + p_instance: *mut libvlc_instance_t, + aout: *const libc::c_char, + ) -> *mut libvlc_audio_output_device_t; + pub fn libvlc_audio_output_device_list_release(p_list: *mut libvlc_audio_output_device_t); + pub fn libvlc_audio_output_device_set( + mp: *mut libvlc_media_player_t, + module: *const libc::c_char, + device_id: *const libc::c_char, + ); + pub fn libvlc_audio_output_device_get(mp: *mut libvlc_media_player_t) -> *mut libc::c_char; + pub fn libvlc_audio_toggle_mute(p_mi: *mut libvlc_media_player_t); + pub fn libvlc_audio_get_mute(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_audio_set_mute(p_mi: *mut libvlc_media_player_t, status: libc::c_int); + pub fn libvlc_audio_get_volume(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_audio_set_volume( + p_mi: *mut libvlc_media_player_t, + i_volume: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_audio_get_track_count(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_audio_get_track_description( + p_mi: *mut libvlc_media_player_t, + ) -> *mut libvlc_track_description_t; + pub fn libvlc_audio_get_track(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_audio_set_track( + p_mi: *mut libvlc_media_player_t, + i_track: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_audio_get_channel(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_audio_set_channel( + p_mi: *mut libvlc_media_player_t, + channel: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_audio_get_delay(p_mi: *mut libvlc_media_player_t) -> i64; + pub fn libvlc_audio_set_delay(p_mi: *mut libvlc_media_player_t, i_delay: i64) -> libc::c_int; + pub fn libvlc_audio_equalizer_get_preset_count() -> libc::c_uint; + pub fn libvlc_audio_equalizer_get_preset_name(u_index: libc::c_uint) -> *const libc::c_char; + pub fn libvlc_audio_equalizer_get_band_count() -> libc::c_uint; + pub fn libvlc_audio_equalizer_get_band_frequency(u_index: libc::c_uint) -> f32; + pub fn libvlc_audio_equalizer_new() -> *mut libvlc_equalizer_t; + pub fn libvlc_audio_equalizer_new_from_preset(u_index: libc::c_uint) + -> *mut libvlc_equalizer_t; + pub fn libvlc_audio_equalizer_release(p_equalizer: *mut libvlc_equalizer_t); + pub fn libvlc_audio_equalizer_set_preamp( + p_equalizer: *mut libvlc_equalizer_t, + f_preamp: f32, + ) -> libc::c_int; + pub fn libvlc_audio_equalizer_get_preamp(p_equalizer: *mut libvlc_equalizer_t) -> f32; + pub fn libvlc_audio_equalizer_set_amp_at_index( + p_equalizer: *mut libvlc_equalizer_t, + f_amp: f32, + u_band: libc::c_uint, + ) -> libc::c_int; + pub fn libvlc_audio_equalizer_get_amp_at_index( + p_equalizer: *mut libvlc_equalizer_t, + u_band: libc::c_uint, + ) -> f32; + pub fn libvlc_media_player_set_equalizer( + p_mi: *mut libvlc_media_player_t, + p_equalizer: *mut libvlc_equalizer_t, + ) -> libc::c_int; + pub fn libvlc_media_player_get_role(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_media_player_set_role( + p_mi: *mut libvlc_media_player_t, + role: libc::c_uint, + ) -> libc::c_int; + pub fn libvlc_media_list_new(p_instance: *mut libvlc_instance_t) -> *mut libvlc_media_list_t; + pub fn libvlc_media_list_release(p_ml: *mut libvlc_media_list_t); + pub fn libvlc_media_list_retain(p_ml: *mut libvlc_media_list_t); + pub fn libvlc_media_list_set_media(p_ml: *mut libvlc_media_list_t, p_md: *mut libvlc_media_t); + pub fn libvlc_media_list_media(p_ml: *mut libvlc_media_list_t) -> *mut libvlc_media_t; + pub fn libvlc_media_list_add_media( + p_ml: *mut libvlc_media_list_t, + p_md: *mut libvlc_media_t, + ) -> libc::c_int; + pub fn libvlc_media_list_insert_media( + p_ml: *mut libvlc_media_list_t, + p_md: *mut libvlc_media_t, + i_pos: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_media_list_remove_index( + p_ml: *mut libvlc_media_list_t, + i_pos: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_media_list_count(p_ml: *mut libvlc_media_list_t) -> libc::c_int; + pub fn libvlc_media_list_item_at_index( + p_ml: *mut libvlc_media_list_t, + i_pos: libc::c_int, + ) -> *mut libvlc_media_t; + pub fn libvlc_media_list_index_of_item( + p_ml: *mut libvlc_media_list_t, + p_md: *mut libvlc_media_t, + ) -> libc::c_int; + pub fn libvlc_media_list_is_readonly(p_ml: *mut libvlc_media_list_t) -> libc::c_int; + pub fn libvlc_media_list_lock(p_ml: *mut libvlc_media_list_t); + pub fn libvlc_media_list_unlock(p_ml: *mut libvlc_media_list_t); + pub fn libvlc_media_list_event_manager( + p_ml: *mut libvlc_media_list_t, + ) -> *mut libvlc_event_manager_t; + pub fn libvlc_media_list_player_new( + p_instance: *mut libvlc_instance_t, + ) -> *mut libvlc_media_list_player_t; + pub fn libvlc_media_list_player_release(p_mlp: *mut libvlc_media_list_player_t); + pub fn libvlc_media_list_player_retain(p_mlp: *mut libvlc_media_list_player_t); + pub fn libvlc_media_list_player_event_manager( + p_mlp: *mut libvlc_media_list_player_t, + ) -> *mut libvlc_event_manager_t; + pub fn libvlc_media_list_player_set_media_player( + p_mlp: *mut libvlc_media_list_player_t, + p_mi: *mut libvlc_media_player_t, + ); + pub fn libvlc_media_list_player_get_media_player( + p_mlp: *mut libvlc_media_list_player_t, + ) -> *mut libvlc_media_player_t; + pub fn libvlc_media_list_player_set_media_list( + p_mlp: *mut libvlc_media_list_player_t, + p_mlist: *mut libvlc_media_list_t, + ); + pub fn libvlc_media_list_player_play(p_mlp: *mut libvlc_media_list_player_t); + pub fn libvlc_media_list_player_pause(p_mlp: *mut libvlc_media_list_player_t); + pub fn libvlc_media_list_player_set_pause( + p_mlp: *mut libvlc_media_list_player_t, + do_pause: libc::c_int, + ); + pub fn libvlc_media_list_player_is_playing( + p_mlp: *mut libvlc_media_list_player_t, + ) -> libc::c_int; + pub fn libvlc_media_list_player_get_state( + p_mlp: *mut libvlc_media_list_player_t, + ) -> libvlc_state_t; + pub fn libvlc_media_list_player_play_item_at_index( + p_mlp: *mut libvlc_media_list_player_t, + i_index: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_media_list_player_play_item( + p_mlp: *mut libvlc_media_list_player_t, + p_md: *mut libvlc_media_t, + ) -> libc::c_int; + pub fn libvlc_media_list_player_stop(p_mlp: *mut libvlc_media_list_player_t); + pub fn libvlc_media_list_player_next(p_mlp: *mut libvlc_media_list_player_t) -> libc::c_int; + pub fn libvlc_media_list_player_previous(p_mlp: *mut libvlc_media_list_player_t) + -> libc::c_int; + pub fn libvlc_media_list_player_set_playback_mode( + p_mlp: *mut libvlc_media_list_player_t, + e_mode: libvlc_playback_mode_t, + ); + pub fn libvlc_media_library_new( + p_instance: *mut libvlc_instance_t, + ) -> *mut libvlc_media_library_t; + pub fn libvlc_media_library_release(p_mlib: *mut libvlc_media_library_t); + pub fn libvlc_media_library_retain(p_mlib: *mut libvlc_media_library_t); + pub fn libvlc_media_library_load(p_mlib: *mut libvlc_media_library_t) -> libc::c_int; + pub fn libvlc_media_library_media_list( + p_mlib: *mut libvlc_media_library_t, + ) -> *mut libvlc_media_list_t; + pub fn libvlc_media_discoverer_new( + p_inst: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + ) -> *mut libvlc_media_discoverer_t; + pub fn libvlc_media_discoverer_start(p_mdis: *mut libvlc_media_discoverer_t) -> libc::c_int; + pub fn libvlc_media_discoverer_stop(p_mdis: *mut libvlc_media_discoverer_t); + pub fn libvlc_media_discoverer_release(p_mdis: *mut libvlc_media_discoverer_t); + pub fn libvlc_media_discoverer_media_list( + p_mdis: *mut libvlc_media_discoverer_t, + ) -> *mut libvlc_media_list_t; + pub fn libvlc_media_discoverer_is_running( + p_mdis: *mut libvlc_media_discoverer_t, + ) -> libc::c_int; + pub fn libvlc_media_discoverer_list_get( + p_inst: *mut libvlc_instance_t, + i_cat: libvlc_media_discoverer_category_t, + ppp_services: *mut *mut *mut libvlc_media_discoverer_description_t, + ) -> usize; + pub fn libvlc_media_discoverer_list_release( + pp_services: *mut *mut libvlc_media_discoverer_description_t, + i_count: usize, + ); + pub fn libvlc_dialog_set_callbacks( + p_instance: *mut libvlc_instance_t, + p_cbs: *const libvlc_dialog_cbs, + p_data: *mut libc::c_void, + ); + pub fn libvlc_dialog_set_context(p_id: *mut libvlc_dialog_id, p_context: *mut libc::c_void); + pub fn libvlc_dialog_get_context(p_id: *mut libvlc_dialog_id) -> *mut libc::c_void; + pub fn libvlc_dialog_post_login( + p_id: *mut libvlc_dialog_id, + psz_username: *const libc::c_char, + psz_password: *const libc::c_char, + b_store: bool, + ) -> libc::c_int; + pub fn libvlc_dialog_post_action( + p_id: *mut libvlc_dialog_id, + i_action: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_dialog_dismiss(p_id: *mut libvlc_dialog_id) -> libc::c_int; + pub fn libvlc_vlm_release(p_instance: *mut libvlc_instance_t); + pub fn libvlc_vlm_add_broadcast( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + psz_input: *const libc::c_char, + psz_output: *const libc::c_char, + i_options: libc::c_int, + ppsz_options: *const *const libc::c_char, + b_enabled: libc::c_int, + b_loop: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_vlm_add_vod( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + psz_input: *const libc::c_char, + i_options: libc::c_int, + ppsz_options: *const *const libc::c_char, + b_enabled: libc::c_int, + psz_mux: *const libc::c_char, + ) -> libc::c_int; + pub fn libvlc_vlm_del_media( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + ) -> libc::c_int; + pub fn libvlc_vlm_set_enabled( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + b_enabled: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_vlm_set_output( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + psz_output: *const libc::c_char, + ) -> libc::c_int; + pub fn libvlc_vlm_set_input( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + psz_input: *const libc::c_char, + ) -> libc::c_int; + pub fn libvlc_vlm_add_input( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + psz_input: *const libc::c_char, + ) -> libc::c_int; + pub fn libvlc_vlm_set_loop( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + b_loop: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_vlm_set_mux( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + psz_mux: *const libc::c_char, + ) -> libc::c_int; + pub fn libvlc_vlm_change_media( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + psz_input: *const libc::c_char, + psz_output: *const libc::c_char, + i_options: libc::c_int, + ppsz_options: *const *const libc::c_char, + b_enabled: libc::c_int, + b_loop: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_vlm_play_media( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + ) -> libc::c_int; + pub fn libvlc_vlm_stop_media( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + ) -> libc::c_int; + pub fn libvlc_vlm_pause_media( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + ) -> libc::c_int; + pub fn libvlc_vlm_seek_media( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + f_percentage: f32, + ) -> libc::c_int; + pub fn libvlc_vlm_show_media( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + ) -> *const libc::c_char; + pub fn libvlc_vlm_get_media_instance_position( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + i_instance: libc::c_int, + ) -> f32; + pub fn libvlc_vlm_get_media_instance_time( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + i_instance: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_vlm_get_media_instance_length( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + i_instance: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_vlm_get_media_instance_rate( + p_instance: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + i_instance: libc::c_int, + ) -> libc::c_int; + pub fn libvlc_vlm_get_event_manager( + p_instance: *mut libvlc_instance_t, + ) -> *mut libvlc_event_manager_t; + pub fn libvlc_media_player_get_fps(p_mi: *mut libvlc_media_player_t) -> f32; + pub fn libvlc_media_player_set_agl(p_mi: *mut libvlc_media_player_t, drawable: u32); + pub fn libvlc_media_player_get_agl(p_mi: *mut libvlc_media_player_t) -> u32; + pub fn libvlc_track_description_release(p_track_description: *mut libvlc_track_description_t); + pub fn libvlc_video_get_height(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_video_get_width(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_video_get_title_description( + p_mi: *mut libvlc_media_player_t, + ) -> *mut libvlc_track_description_t; + pub fn libvlc_video_get_chapter_description( + p_mi: *mut libvlc_media_player_t, + i_title: libc::c_int, + ) -> *mut libvlc_track_description_t; + pub fn libvlc_video_set_subtitle_file( + p_mi: *mut libvlc_media_player_t, + psz_subtitle: *const libc::c_char, + ) -> libc::c_int; + pub fn libvlc_toggle_teletext(p_mi: *mut libvlc_media_player_t); + pub fn libvlc_audio_output_device_count( + p_instance: *mut libvlc_instance_t, + psz_audio_output: *const libc::c_char, + ) -> libc::c_int; + pub fn libvlc_audio_output_device_longname( + p_instance: *mut libvlc_instance_t, + psz_output: *const libc::c_char, + i_device: libc::c_int, + ) -> *mut libc::c_char; + pub fn libvlc_audio_output_device_id( + p_instance: *mut libvlc_instance_t, + psz_audio_output: *const libc::c_char, + i_device: libc::c_int, + ) -> *mut libc::c_char; + pub fn libvlc_audio_output_get_device_type(p_mi: *mut libvlc_media_player_t) -> libc::c_int; + pub fn libvlc_audio_output_set_device_type( + p_mp: *mut libvlc_media_player_t, + device_type: libc::c_int, + ); + pub fn libvlc_media_parse(p_md: *mut libvlc_media_t); + pub fn libvlc_media_parse_async(p_md: *mut libvlc_media_t); + pub fn libvlc_media_is_parsed(p_md: *mut libvlc_media_t) -> libc::c_int; + pub fn libvlc_media_get_tracks_info( + p_md: *mut libvlc_media_t, + tracks: *mut *mut libvlc_media_track_info_t, + ) -> libc::c_int; + pub fn libvlc_media_list_add_file_content( + p_ml: *mut libvlc_media_list_t, + psz_uri: *const libc::c_char, + ) -> libc::c_int; + pub fn libvlc_media_discoverer_new_from_name( + p_inst: *mut libvlc_instance_t, + psz_name: *const libc::c_char, + ) -> *mut libvlc_media_discoverer_t; + pub fn libvlc_media_discoverer_localized_name( + p_mdis: *mut libvlc_media_discoverer_t, + ) -> *mut libc::c_char; + pub fn libvlc_media_discoverer_event_manager( + p_mdis: *mut libvlc_media_discoverer_t, + ) -> *mut libvlc_event_manager_t; + pub fn libvlc_wait(p_instance: *mut libvlc_instance_t); pub fn libvlc_get_log_verbosity(p_instance: *const libvlc_instance_t) -> libc::c_uint; -} -unsafe extern "C" { pub fn libvlc_set_log_verbosity(p_instance: *mut libvlc_instance_t, level: libc::c_uint); -} -unsafe extern "C" { pub fn libvlc_log_open(p_instance: *mut libvlc_instance_t) -> *mut libvlc_log_t; -} -unsafe extern "C" { pub fn libvlc_log_close(p_log: *mut libvlc_log_t); -} -unsafe extern "C" { pub fn libvlc_log_count(p_log: *const libvlc_log_t) -> libc::c_uint; -} -unsafe extern "C" { pub fn libvlc_log_clear(p_log: *mut libvlc_log_t); -} -unsafe extern "C" { pub fn libvlc_log_get_iterator(p_log: *const libvlc_log_t) -> *mut libvlc_log_iterator_t; -} -unsafe extern "C" { pub fn libvlc_log_iterator_free(p_iter: *mut libvlc_log_iterator_t); -} -unsafe extern "C" { pub fn libvlc_log_iterator_has_next(p_iter: *const libvlc_log_iterator_t) -> libc::c_int; -} -unsafe extern "C" { pub fn libvlc_log_iterator_next( p_iter: *mut libvlc_log_iterator_t, p_buf: *mut libvlc_log_message_t, ) -> *mut libvlc_log_message_t; -} -unsafe extern "C" { pub fn libvlc_playlist_play( p_instance: *mut libvlc_instance_t, i_id: libc::c_int, diff --git a/libvlc-sys/build.rs b/libvlc-sys/build.rs index dd3eb63..30a7056 100644 --- a/libvlc-sys/build.rs +++ b/libvlc-sys/build.rs @@ -1,5 +1,7 @@ //! Build script for `libvlc-sys`, locates and links libvlc. +use std::env; + /// Minimum supported libvlc version. const MIN_LIBVLC_VERSION: &str = "3.0.0"; @@ -10,126 +12,21 @@ fn probe_libvlc() -> Result { .probe("libvlc") } -#[cfg(target_os = "windows")] -mod windows { - #[cfg(not(any(target_arch = "x86", target_arch = "x86_64")))] - compile_error!("Only x86 and x86_64 are supported at the moment. Adding support for other architectures should be trivial."); - - use std::env; - use std::ffi::OsString; - use std::fs; - use std::path::{Path, PathBuf}; - use std::process::Command; - - use vswhom::VsFindResult; - - pub fn link_vlc() { - let vlc_path = vlc_path(); - - let out_dir = PathBuf::from(env::var_os("OUT_DIR").unwrap()); - - let vs = VsFindResult::search().expect("Could not locate Visual Studio"); - let vs_exe_path = PathBuf::from( - vs.vs_exe_path - .expect("Could not retrieve executable path for Visual Studio"), - ); - - generate_lib_from_dll(&out_dir, &vs_exe_path, &vlc_path); - println!("cargo:rustc-link-search=native={}", out_dir.display()); - // NOTE: Without this directive, linking fails with: - // ``` - // error LNK2019: unresolved external symbol vsnprintf referenced in function _{MangledSymbolName} - // msvcrt.lib(vsnprintf.obj) : error LNK2001: unresolved external symbol vsnprintf - // msvcrt.lib(vsnprintf.obj) : error LNK2001: unresolved external symbol _vsnprintf - // ``` - // https://stackoverflow.com/a/34230122 +fn main() { + // vsnprintf is inlined by the UCRT headers, so MSVC needs this to resolve + // the symbol src/lib.rs declares. https://stackoverflow.com/a/34230122 + if env::var("CARGO_CFG_TARGET_ENV").unwrap_or_default() == "msvc" { println!("cargo:rustc-link-lib=dylib=legacy_stdio_definitions"); } - fn generate_lib_from_dll(out_dir: &Path, vs_exe_path: &Path, vlc_path: &Path) { - // https://wiki.videolan.org/GenerateLibFromDll/ - - let vs_dumpbin = vs_exe_path.join("dumpbin.exe"); - let vs_lib = vs_exe_path.join("lib.exe"); - let vlc_def_path = out_dir.join("libvlc.def"); - let vlc_import_lib = out_dir.join("vlc.lib"); - - let libvlc = vlc_path.join("libvlc.dll"); - let exports = Command::new(vs_dumpbin) - .current_dir(out_dir) - .arg("/EXPORTS") - .arg(libvlc.display().to_string().trim_end_matches(r"\")) - .output() - .unwrap(); - let exports = String::from_utf8(exports.stdout).unwrap(); - - let mut vlc_def = String::from("EXPORTS\n"); - for line in exports.lines() { - if let Some(line) = line.get(26..) { - if line.starts_with("libvlc_") { - vlc_def.push_str(line); - vlc_def.push_str("\r\n"); - } - } - } - fs::write(&vlc_def_path, vlc_def.into_bytes()).unwrap(); - - // FIXME: Handle paths with spaces in them. - Command::new(vs_lib) - .current_dir(out_dir) - .arg("/NOLOGO") - .args(&[ - format!( - r#"/DEF:{}"#, - vlc_def_path.display().to_string().trim_end_matches(r"\") - ), - format!( - r#"/OUT:{}"#, - vlc_import_lib.display().to_string().trim_end_matches(r"\") - ), - format!( - "/MACHINE:{}", - match target_arch().as_str() { - "x86" => "x86", - "x86_64" => "x64", - _ => unreachable!(), - } - ), - ]) - .status() - .expect("Failed to run lib.exe") - .success() - .then_some(()) - .expect("lib.exe failed to generate the vlc import library"); + // The bindings import from libvlc.dll directly via `raw-dylib`, so + // Windows needs neither an import library nor a search path, + // only the DLL at runtime. + if env::var("CARGO_CFG_TARGET_OS").unwrap() == "windows" { + return; } - fn vlc_path() -> PathBuf { - #[allow(unused_assignments)] - let arch_path: Option = match target_arch().as_str() { - "x86" => env::var_os("VLC_LIB_DIR_X86"), - "x86_64" => env::var_os("VLC_LIB_DIR_X86_64"), - _ => unreachable!(), - }; - - arch_path - .or_else(|| env::var_os("VLC_LIB_DIR")) - .map(PathBuf::from) - .expect("VLC_LIB_DIR not set") - } - - fn target_arch() -> String { - env::var("CARGO_CFG_TARGET_ARCH").unwrap() - } -} - -fn main() { - // On success pkg-config has already emitted the link directives; only the - // failure path needs handling. if let Err(err) = probe_libvlc() { - #[cfg(target_os = "windows")] - windows::link_vlc(); - - #[cfg(not(target_os = "windows"))] panic!("libvlc (>= {}) not found: {:?}", MIN_LIBVLC_VERSION, err); } } diff --git a/libvlc-sys/src/lib.rs b/libvlc-sys/src/lib.rs index e7ec8c3..5605ec0 100644 --- a/libvlc-sys/src/lib.rs +++ b/libvlc-sys/src/lib.rs @@ -8,3 +8,14 @@ pub mod valist; // The bindings are a committed source file, regenerated out of band with // `cargo xtask bindgen`. include!("../bindings.rs"); + +// `libc` does not expose vsnprintf and libvlc advises to use it to handle logs in the log +// callbacks. Expose it for convenience. +unsafe extern "C" { + pub fn vsnprintf( + s: *mut libc::c_char, + n: usize, + fmt: *const libc::c_char, + ap: VaList, + ) -> libc::c_int; +} diff --git a/src/core.rs b/src/core.rs index dd4ed94..a3b426e 100644 --- a/src/core.rs +++ b/src/core.rs @@ -161,7 +161,7 @@ unsafe extern "C" fn logging_cb( let f: &Box) + Send + 'static> = ::std::mem::transmute(data); let mut buf: [c_char; BUF_SIZE] = [0; BUF_SIZE]; - sys::vsnprintf(buf.as_mut_ptr(), BUF_SIZE.try_into().unwrap(), fmt, args); + sys::vsnprintf(buf.as_mut_ptr(), BUF_SIZE, fmt, args); f((level as u32).into(), Log{ptr: ctx}, from_cstr_ref(buf.as_ptr()).unwrap()); } diff --git a/xtask/src/main.rs b/xtask/src/main.rs index 012e273..5ceb295 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -43,13 +43,22 @@ fn generate_bindings() { .ctypes_prefix("libc") // Allowlist every (lib)vlc symbol. .allowlist_item("(lib|LIB)?(vlc|VLC)_.*") - // Required by the Windows `legacy_stdio_definitions` link workaround - // (see libvlc-sys/build.rs). - .allowlist_function("vsnprintf") + // Avoid leaking unecessary glibc/platform specifics. + .blocklist_type("_IO_.*") + .blocklist_type("_iobuf") + .blocklist_type("FILE") + .blocklist_type("__off.*") + .blocklist_type("__uint64_t") + .raw_line("pub use libc::FILE;") // Block the whole va_list family and rewrite the parameters bindings to our own `VaList`, // which is ABI-correct on every target. .blocklist_type(".*va_list.*") - .raw_line("pub use crate::valist::VaList;"); + .raw_line("pub use crate::valist::VaList;") + // These bindings are committed once and compiled everywhere, so the layout assertions would + // only ever encode the machine that ran bindgen. + .layout_tests(false) + // Emit a single extern block rather than one per function. + .merge_extern_blocks(true); for path in &library.include_paths { bindings = bindings.clang_arg(format!("-I{}", path.display())); @@ -68,6 +77,13 @@ fn generate_bindings() { "a va_list spelling we do not know about survived" ); + // On Windows rustc can synthesise the imports straight from the DLL, so no + // import library is needed. bindgen cannot emit the attribute itself. + let generated = generated.replace( + "unsafe extern \"C\" {", + "#[cfg_attr(windows, link(name = \"libvlc\", kind = \"raw-dylib\"))]\nunsafe extern \"C\" {", + ); + std::fs::write(&output, generated).expect("couldn't write bindings"); println!("wrote {}", output.display()); }