#![allow(non_camel_case_types)] #![allow(non_snake_case)] #![allow(raw_pointer_derive)] #![allow(missing_copy_implementations)] extern crate libc; /* automatically generated by rust-bindgen */ pub type ptrdiff_t = ::libc::ptrdiff_t; pub type size_t = ::libc::size_t; pub type wchar_t = ::libc::c_int; #[repr(C)] #[derive(Copy)] pub struct Struct_Unnamed1 { pub __clang_max_align_nonce1: ::libc::c_longlong, pub __clang_max_align_nonce2: ::libc::c_double, } impl ::std::clone::Clone for Struct_Unnamed1 { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_Unnamed1 { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type max_align_t = Struct_Unnamed1; pub type __int8_t = ::libc::c_char; pub type __uint8_t = ::libc::c_uchar; pub type __int16_t = ::libc::c_short; pub type __uint16_t = ::libc::c_ushort; pub type __int32_t = ::libc::c_int; pub type __uint32_t = ::libc::c_uint; pub type __int64_t = ::libc::c_longlong; pub type __uint64_t = ::libc::c_ulonglong; pub type __int_least8_t = ::libc::c_char; pub type __uint_least8_t = ::libc::c_uchar; pub type __int_least16_t = ::libc::c_short; pub type __uint_least16_t = ::libc::c_ushort; pub type __int_least32_t = ::libc::c_int; pub type __uint_least32_t = ::libc::c_uint; pub type __int_least64_t = ::libc::c_longlong; pub type __uint_least64_t = ::libc::c_ulonglong; pub type __intptr_t = ::libc::c_int; pub type __uintptr_t = ::libc::c_uint; pub type int8_t = __int8_t; pub type uint8_t = __uint8_t; pub type int_least8_t = __int_least8_t; pub type uint_least8_t = __uint_least8_t; pub type int16_t = __int16_t; pub type uint16_t = __uint16_t; pub type int_least16_t = __int_least16_t; pub type uint_least16_t = __uint_least16_t; pub type int32_t = __int32_t; pub type uint32_t = __uint32_t; pub type int_least32_t = __int_least32_t; pub type uint_least32_t = __uint_least32_t; pub type int64_t = __int64_t; pub type uint64_t = __uint64_t; pub type int_least64_t = __int_least64_t; pub type uint_least64_t = __uint_least64_t; pub type int_fast8_t = ::libc::c_char; pub type uint_fast8_t = ::libc::c_uchar; pub type int_fast16_t = ::libc::c_short; pub type uint_fast16_t = ::libc::c_ushort; pub type int_fast32_t = ::libc::c_int; pub type uint_fast32_t = ::libc::c_uint; pub type int_fast64_t = ::libc::c_longlong; pub type uint_fast64_t = ::libc::c_ulonglong; pub type intmax_t = ::libc::c_longlong; pub type uintmax_t = ::libc::c_ulonglong; pub type intptr_t = __intptr_t; pub type uintptr_t = __uintptr_t; #[repr(C)] #[derive(Copy)] pub struct Struct_Unnamed2 { pub quot: intmax_t, pub rem: intmax_t, } impl ::std::clone::Clone for Struct_Unnamed2 { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_Unnamed2 { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type imaxdiv_t = Struct_Unnamed2; pub type Enum_vpx_img_fmt = ::libc::c_uint; pub const VPX_IMG_FMT_NONE: ::libc::c_uint = 0; pub const VPX_IMG_FMT_RGB24: ::libc::c_uint = 1; pub const VPX_IMG_FMT_RGB32: ::libc::c_uint = 2; pub const VPX_IMG_FMT_RGB565: ::libc::c_uint = 3; pub const VPX_IMG_FMT_RGB555: ::libc::c_uint = 4; pub const VPX_IMG_FMT_UYVY: ::libc::c_uint = 5; pub const VPX_IMG_FMT_YUY2: ::libc::c_uint = 6; pub const VPX_IMG_FMT_YVYU: ::libc::c_uint = 7; pub const VPX_IMG_FMT_BGR24: ::libc::c_uint = 8; pub const VPX_IMG_FMT_RGB32_LE: ::libc::c_uint = 9; pub const VPX_IMG_FMT_ARGB: ::libc::c_uint = 10; pub const VPX_IMG_FMT_ARGB_LE: ::libc::c_uint = 11; pub const VPX_IMG_FMT_RGB565_LE: ::libc::c_uint = 12; pub const VPX_IMG_FMT_RGB555_LE: ::libc::c_uint = 13; pub const VPX_IMG_FMT_YV12: ::libc::c_uint = 769; pub const VPX_IMG_FMT_I420: ::libc::c_uint = 258; pub const VPX_IMG_FMT_VPXYV12: ::libc::c_uint = 771; pub const VPX_IMG_FMT_VPXI420: ::libc::c_uint = 260; pub const VPX_IMG_FMT_I422: ::libc::c_uint = 261; pub const VPX_IMG_FMT_I444: ::libc::c_uint = 262; pub const VPX_IMG_FMT_I440: ::libc::c_uint = 263; pub const VPX_IMG_FMT_444A: ::libc::c_uint = 1286; pub const VPX_IMG_FMT_I42016: ::libc::c_uint = 2306; pub const VPX_IMG_FMT_I42216: ::libc::c_uint = 2309; pub const VPX_IMG_FMT_I44416: ::libc::c_uint = 2310; pub const VPX_IMG_FMT_I44016: ::libc::c_uint = 2311; pub type vpx_img_fmt_t = Enum_vpx_img_fmt; pub type Enum_vpx_color_space = ::libc::c_uint; pub const VPX_CS_UNKNOWN: ::libc::c_uint = 0; pub const VPX_CS_BT_601: ::libc::c_uint = 1; pub const VPX_CS_BT_709: ::libc::c_uint = 2; pub const VPX_CS_SMPTE_170: ::libc::c_uint = 3; pub const VPX_CS_SMPTE_240: ::libc::c_uint = 4; pub const VPX_CS_BT_2020: ::libc::c_uint = 5; pub const VPX_CS_RESERVED: ::libc::c_uint = 6; pub const VPX_CS_SRGB: ::libc::c_uint = 7; pub type vpx_color_space_t = Enum_vpx_color_space; #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_image { pub fmt: vpx_img_fmt_t, pub cs: vpx_color_space_t, pub w: ::libc::c_uint, pub h: ::libc::c_uint, pub bit_depth: ::libc::c_uint, pub d_w: ::libc::c_uint, pub d_h: ::libc::c_uint, pub x_chroma_shift: ::libc::c_uint, pub y_chroma_shift: ::libc::c_uint, pub planes: [*mut ::libc::c_uchar; 4usize], pub stride: [::libc::c_int; 4usize], pub bps: ::libc::c_int, pub user_priv: *mut ::libc::c_void, pub img_data: *mut ::libc::c_uchar, pub img_data_owner: ::libc::c_int, pub self_allocd: ::libc::c_int, pub fb_priv: *mut ::libc::c_void, } impl ::std::clone::Clone for Struct_vpx_image { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_image { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_image_t = Struct_vpx_image; #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_image_rect { pub x: ::libc::c_uint, pub y: ::libc::c_uint, pub w: ::libc::c_uint, pub h: ::libc::c_uint, } impl ::std::clone::Clone for Struct_vpx_image_rect { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_image_rect { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_image_rect_t = Struct_vpx_image_rect; pub type Enum_Unnamed3 = ::libc::c_uint; pub const VPX_CODEC_OK: ::libc::c_uint = 0; pub const VPX_CODEC_ERROR: ::libc::c_uint = 1; pub const VPX_CODEC_MEM_ERROR: ::libc::c_uint = 2; pub const VPX_CODEC_ABI_MISMATCH: ::libc::c_uint = 3; pub const VPX_CODEC_INCAPABLE: ::libc::c_uint = 4; pub const VPX_CODEC_UNSUP_BITSTREAM: ::libc::c_uint = 5; pub const VPX_CODEC_UNSUP_FEATURE: ::libc::c_uint = 6; pub const VPX_CODEC_CORRUPT_FRAME: ::libc::c_uint = 7; pub const VPX_CODEC_INVALID_PARAM: ::libc::c_uint = 8; pub const VPX_CODEC_LIST_END: ::libc::c_uint = 9; pub type vpx_codec_err_t = Enum_Unnamed3; pub type vpx_codec_caps_t = ::libc::c_long; pub type vpx_codec_flags_t = ::libc::c_long; pub enum Struct_vpx_codec_iface { } pub type vpx_codec_iface_t = Struct_vpx_codec_iface; pub enum Struct_vpx_codec_priv { } pub type vpx_codec_priv_t = Struct_vpx_codec_priv; pub type vpx_codec_iter_t = *const ::libc::c_void; #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_codec_ctx { pub name: *const ::libc::c_char, pub iface: *mut vpx_codec_iface_t, pub err: vpx_codec_err_t, pub err_detail: *const ::libc::c_char, pub init_flags: vpx_codec_flags_t, pub config: Union_Unnamed4, pub _priv: *mut vpx_codec_priv_t, } impl ::std::clone::Clone for Struct_vpx_codec_ctx { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_codec_ctx { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } #[repr(C)] #[derive(Copy)] pub struct Union_Unnamed4 { pub _bindgen_data_: [u32; 1usize], } impl Union_Unnamed4 { pub unsafe fn dec(&mut self) -> *mut *const Struct_vpx_codec_dec_cfg { let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); ::std::mem::transmute(raw.offset(0)) } pub unsafe fn enc(&mut self) -> *mut *const Struct_vpx_codec_enc_cfg { let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); ::std::mem::transmute(raw.offset(0)) } pub unsafe fn raw(&mut self) -> *mut *const ::libc::c_void { let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); ::std::mem::transmute(raw.offset(0)) } } impl ::std::clone::Clone for Union_Unnamed4 { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Union_Unnamed4 { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_codec_ctx_t = Struct_vpx_codec_ctx; pub type Enum_vpx_bit_depth = ::libc::c_uint; pub const VPX_BITS_8: ::libc::c_uint = 8; pub const VPX_BITS_10: ::libc::c_uint = 10; pub const VPX_BITS_12: ::libc::c_uint = 12; pub type vpx_bit_depth_t = Enum_vpx_bit_depth; pub type Enum_vp8_com_control_id = ::libc::c_uint; pub const VP8_SET_REFERENCE: ::libc::c_uint = 1; pub const VP8_COPY_REFERENCE: ::libc::c_uint = 2; pub const VP8_SET_POSTPROC: ::libc::c_uint = 3; pub const VP8_SET_DBG_COLOR_REF_FRAME: ::libc::c_uint = 4; pub const VP8_SET_DBG_COLOR_MB_MODES: ::libc::c_uint = 5; pub const VP8_SET_DBG_COLOR_B_MODES: ::libc::c_uint = 6; pub const VP8_SET_DBG_DISPLAY_MV: ::libc::c_uint = 7; pub const VP9_GET_REFERENCE: ::libc::c_uint = 128; pub const VP8_COMMON_CTRL_ID_MAX: ::libc::c_uint = 129; pub const VP8_DECODER_CTRL_ID_START: ::libc::c_uint = 256; pub type Enum_vp8_postproc_level = ::libc::c_uint; pub const VP8_NOFILTERING: ::libc::c_uint = 0; pub const VP8_DEBLOCK: ::libc::c_uint = 1; pub const VP8_DEMACROBLOCK: ::libc::c_uint = 2; pub const VP8_ADDNOISE: ::libc::c_uint = 4; pub const VP8_DEBUG_TXT_FRAME_INFO: ::libc::c_uint = 8; pub const VP8_DEBUG_TXT_MBLK_MODES: ::libc::c_uint = 16; pub const VP8_DEBUG_TXT_DC_DIFF: ::libc::c_uint = 32; pub const VP8_DEBUG_TXT_RATE_INFO: ::libc::c_uint = 64; pub const VP8_MFQE: ::libc::c_uint = 1024; #[repr(C)] #[derive(Copy)] pub struct Struct_vp8_postproc_cfg { pub post_proc_flag: ::libc::c_int, pub deblocking_level: ::libc::c_int, pub noise_level: ::libc::c_int, } impl ::std::clone::Clone for Struct_vp8_postproc_cfg { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vp8_postproc_cfg { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vp8_postproc_cfg_t = Struct_vp8_postproc_cfg; pub type Enum_vpx_ref_frame_type = ::libc::c_uint; pub const VP8_LAST_FRAME: ::libc::c_uint = 1; pub const VP8_GOLD_FRAME: ::libc::c_uint = 2; pub const VP8_ALTR_FRAME: ::libc::c_uint = 4; pub type vpx_ref_frame_type_t = Enum_vpx_ref_frame_type; #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_ref_frame { pub frame_type: vpx_ref_frame_type_t, pub img: vpx_image_t, } impl ::std::clone::Clone for Struct_vpx_ref_frame { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_ref_frame { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_ref_frame_t = Struct_vpx_ref_frame; #[repr(C)] #[derive(Copy)] pub struct Struct_vp9_ref_frame { pub idx: ::libc::c_int, pub img: vpx_image_t, } impl ::std::clone::Clone for Struct_vp9_ref_frame { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vp9_ref_frame { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vp9_ref_frame_t = Struct_vp9_ref_frame; #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_fixed_buf { pub buf: *mut ::libc::c_void, pub sz: size_t, } impl ::std::clone::Clone for Struct_vpx_fixed_buf { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_fixed_buf { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } impl ::std::fmt::Debug for Struct_vpx_fixed_buf { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { write!(f, "Struct_vpx_fixed_buf {{ buf: ``, sz: `{:?}`, }}", self.sz) } } pub type vpx_fixed_buf_t = Struct_vpx_fixed_buf; pub type vpx_codec_pts_t = int64_t; pub type vpx_codec_frame_flags_t = uint32_t; pub type vpx_codec_er_flags_t = uint32_t; pub type Enum_vpx_codec_cx_pkt_kind = ::libc::c_uint; pub const VPX_CODEC_CX_FRAME_PKT: ::libc::c_uint = 0; pub const VPX_CODEC_STATS_PKT: ::libc::c_uint = 1; pub const VPX_CODEC_FPMB_STATS_PKT: ::libc::c_uint = 2; pub const VPX_CODEC_PSNR_PKT: ::libc::c_uint = 3; pub const VPX_CODEC_CUSTOM_PKT: ::libc::c_uint = 256; #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_codec_cx_pkt { pub kind: Enum_vpx_codec_cx_pkt_kind, pub data: Union_Unnamed5, } impl ::std::clone::Clone for Struct_vpx_codec_cx_pkt { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_codec_cx_pkt { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } #[repr(C)] #[derive(Copy)] pub struct Union_Unnamed5 { pub _bindgen_data_: [u64; 16usize], } impl Union_Unnamed5 { pub unsafe fn frame_mut(&mut self) -> *mut Struct_Unnamed6 { let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); ::std::mem::transmute(raw.offset(0)) } pub unsafe fn frame_ref(&self) -> *const Struct_Unnamed6 { let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); ::std::mem::transmute(raw.offset(0)) } pub unsafe fn twopass_stats_mut(&mut self) -> *mut vpx_fixed_buf_t { let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); ::std::mem::transmute(raw.offset(0)) } pub unsafe fn twopass_stats_ref(&self) -> *const vpx_fixed_buf_t { let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); ::std::mem::transmute(raw.offset(0)) } pub unsafe fn firstpass_mb_stats_mut(&mut self) -> *mut vpx_fixed_buf_t { let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); ::std::mem::transmute(raw.offset(0)) } pub unsafe fn firstpass_mb_stats_ref(&self) -> *const vpx_fixed_buf_t { let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); ::std::mem::transmute(raw.offset(0)) } pub unsafe fn psnr_mut(&mut self) -> *mut Struct_vpx_psnr_pkt { let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); ::std::mem::transmute(raw.offset(0)) } pub unsafe fn psnr_ref(&self) -> *const Struct_vpx_psnr_pkt { let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); ::std::mem::transmute(raw.offset(0)) } pub unsafe fn raw_mut(&mut self) -> *mut vpx_fixed_buf_t { let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); ::std::mem::transmute(raw.offset(0)) } pub unsafe fn raw_ref(&self) -> *const vpx_fixed_buf_t { let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); ::std::mem::transmute(raw.offset(0)) } pub unsafe fn pad_mut(&mut self) -> *mut [::libc::c_char; 124usize] { let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); ::std::mem::transmute(raw.offset(0)) } pub unsafe fn pad_ref(&self) -> *const [::libc::c_char; 124usize] { let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); ::std::mem::transmute(raw.offset(0)) } } impl ::std::clone::Clone for Union_Unnamed5 { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Union_Unnamed5 { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } #[repr(C)] #[derive(Copy)] pub struct Struct_Unnamed6 { pub buf: *mut ::libc::c_void, pub sz: size_t, pub pts: vpx_codec_pts_t, pub duration: ::libc::c_ulong, pub flags: vpx_codec_frame_flags_t, pub partition_id: ::libc::c_int, } impl ::std::clone::Clone for Struct_Unnamed6 { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_Unnamed6 { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_psnr_pkt { pub samples: [::libc::c_uint; 4usize], pub sse: [uint64_t; 4usize], pub psnr: [::libc::c_double; 4usize], } impl ::std::clone::Clone for Struct_vpx_psnr_pkt { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_psnr_pkt { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_codec_cx_pkt_t = Struct_vpx_codec_cx_pkt; pub type vpx_codec_enc_output_cx_pkt_cb_fn_t = ::std::option::Option ()>; #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_codec_enc_output_cx_cb_pair { pub output_cx_pkt: vpx_codec_enc_output_cx_pkt_cb_fn_t, pub user_priv: *mut ::libc::c_void, } impl ::std::clone::Clone for Struct_vpx_codec_enc_output_cx_cb_pair { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_codec_enc_output_cx_cb_pair { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_codec_priv_output_cx_pkt_cb_pair_t = Struct_vpx_codec_enc_output_cx_cb_pair; #[repr(C)] #[derive(Copy, Debug)] pub struct Struct_vpx_rational { pub num: ::libc::c_int, pub den: ::libc::c_int, } impl ::std::clone::Clone for Struct_vpx_rational { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_rational { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_rational_t = Struct_vpx_rational; pub type Enum_vpx_enc_pass = ::libc::c_uint; pub const VPX_RC_ONE_PASS: ::libc::c_uint = 0; pub const VPX_RC_FIRST_PASS: ::libc::c_uint = 1; pub const VPX_RC_LAST_PASS: ::libc::c_uint = 2; pub type Enum_vpx_rc_mode = ::libc::c_uint; pub const VPX_VBR: ::libc::c_uint = 0; pub const VPX_CBR: ::libc::c_uint = 1; pub const VPX_CQ: ::libc::c_uint = 2; pub const VPX_Q: ::libc::c_uint = 3; pub type Enum_vpx_kf_mode = ::libc::c_uint; pub const VPX_KF_FIXED: ::libc::c_uint = 0; pub const VPX_KF_AUTO: ::libc::c_uint = 1; pub const VPX_KF_DISABLED: ::libc::c_uint = 0; pub type vpx_enc_frame_flags_t = ::libc::c_long; #[repr(C)] #[derive(Copy, Debug)] pub struct Struct_vpx_codec_enc_cfg { pub g_usage: ::libc::c_uint, pub g_threads: ::libc::c_uint, pub g_profile: ::libc::c_uint, pub g_w: ::libc::c_uint, pub g_h: ::libc::c_uint, pub g_bit_depth: vpx_bit_depth_t, pub g_input_bit_depth: ::libc::c_uint, pub g_timebase: Struct_vpx_rational, pub g_error_resilient: vpx_codec_er_flags_t, pub g_pass: Enum_vpx_enc_pass, pub g_lag_in_frames: ::libc::c_uint, pub rc_dropframe_thresh: ::libc::c_uint, pub rc_resize_allowed: ::libc::c_uint, pub rc_scaled_width: ::libc::c_uint, pub rc_scaled_height: ::libc::c_uint, pub rc_resize_up_thresh: ::libc::c_uint, pub rc_resize_down_thresh: ::libc::c_uint, pub rc_end_usage: Enum_vpx_rc_mode, pub rc_twopass_stats_in: vpx_fixed_buf_t, pub rc_firstpass_mb_stats_in: vpx_fixed_buf_t, pub rc_target_bitrate: ::libc::c_uint, pub rc_min_quantizer: ::libc::c_uint, pub rc_max_quantizer: ::libc::c_uint, pub rc_undershoot_pct: ::libc::c_uint, pub rc_overshoot_pct: ::libc::c_uint, pub rc_buf_sz: ::libc::c_uint, pub rc_buf_initial_sz: ::libc::c_uint, pub rc_buf_optimal_sz: ::libc::c_uint, pub rc_2pass_vbr_bias_pct: ::libc::c_uint, pub rc_2pass_vbr_minsection_pct: ::libc::c_uint, pub rc_2pass_vbr_maxsection_pct: ::libc::c_uint, pub kf_mode: Enum_vpx_kf_mode, pub kf_min_dist: ::libc::c_uint, pub kf_max_dist: ::libc::c_uint, pub ss_number_layers: ::libc::c_uint, pub ss_enable_auto_alt_ref: [::libc::c_int; 5usize], pub ss_target_bitrate: [::libc::c_uint; 5usize], pub ts_number_layers: ::libc::c_uint, pub ts_target_bitrate: [::libc::c_uint; 5usize], pub ts_rate_decimator: [::libc::c_uint; 5usize], pub ts_periodicity: ::libc::c_uint, pub ts_layer_id: [::libc::c_uint; 16usize], pub layer_target_bitrate: [::libc::c_uint; 12usize], pub temporal_layering_mode: ::libc::c_int, } impl ::std::clone::Clone for Struct_vpx_codec_enc_cfg { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_codec_enc_cfg { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_codec_enc_cfg_t = Struct_vpx_codec_enc_cfg; #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_svc_parameters { pub max_quantizers: [::libc::c_int; 12usize], pub min_quantizers: [::libc::c_int; 12usize], pub scaling_factor_num: [::libc::c_int; 12usize], pub scaling_factor_den: [::libc::c_int; 12usize], pub temporal_layering_mode: ::libc::c_int, } impl ::std::clone::Clone for Struct_vpx_svc_parameters { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_svc_parameters { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_svc_extra_cfg_t = Struct_vpx_svc_parameters; pub type Enum_vp8e_enc_control_id = ::libc::c_uint; pub const VP8E_UPD_ENTROPY: ::libc::c_uint = 5; pub const VP8E_UPD_REFERENCE: ::libc::c_uint = 6; pub const VP8E_USE_REFERENCE: ::libc::c_uint = 7; pub const VP8E_SET_ROI_MAP: ::libc::c_uint = 8; pub const VP8E_SET_ACTIVEMAP: ::libc::c_uint = 9; pub const VP8E_SET_SCALEMODE: ::libc::c_uint = 11; pub const VP8E_SET_CPUUSED: ::libc::c_uint = 13; pub const VP8E_SET_ENABLEAUTOALTREF: ::libc::c_uint = 14; pub const VP8E_SET_NOISE_SENSITIVITY: ::libc::c_uint = 15; pub const VP8E_SET_SHARPNESS: ::libc::c_uint = 16; pub const VP8E_SET_STATIC_THRESHOLD: ::libc::c_uint = 17; pub const VP8E_SET_TOKEN_PARTITIONS: ::libc::c_uint = 18; pub const VP8E_GET_LAST_QUANTIZER: ::libc::c_uint = 19; pub const VP8E_GET_LAST_QUANTIZER_64: ::libc::c_uint = 20; pub const VP8E_SET_ARNR_MAXFRAMES: ::libc::c_uint = 21; pub const VP8E_SET_ARNR_STRENGTH: ::libc::c_uint = 22; pub const VP8E_SET_ARNR_TYPE: ::libc::c_uint = 23; pub const VP8E_SET_TUNING: ::libc::c_uint = 24; pub const VP8E_SET_CQ_LEVEL: ::libc::c_uint = 25; pub const VP8E_SET_MAX_INTRA_BITRATE_PCT: ::libc::c_uint = 26; pub const VP8E_SET_FRAME_FLAGS: ::libc::c_uint = 27; pub const VP9E_SET_MAX_INTER_BITRATE_PCT: ::libc::c_uint = 28; pub const VP9E_SET_GF_CBR_BOOST_PCT: ::libc::c_uint = 29; pub const VP8E_SET_TEMPORAL_LAYER_ID: ::libc::c_uint = 30; pub const VP8E_SET_SCREEN_CONTENT_MODE: ::libc::c_uint = 31; pub const VP9E_SET_LOSSLESS: ::libc::c_uint = 32; pub const VP9E_SET_TILE_COLUMNS: ::libc::c_uint = 33; pub const VP9E_SET_TILE_ROWS: ::libc::c_uint = 34; pub const VP9E_SET_FRAME_PARALLEL_DECODING: ::libc::c_uint = 35; pub const VP9E_SET_AQ_MODE: ::libc::c_uint = 36; pub const VP9E_SET_FRAME_PERIODIC_BOOST: ::libc::c_uint = 37; pub const VP9E_SET_NOISE_SENSITIVITY: ::libc::c_uint = 38; pub const VP9E_SET_SVC: ::libc::c_uint = 39; pub const VP9E_SET_SVC_PARAMETERS: ::libc::c_uint = 40; pub const VP9E_SET_SVC_LAYER_ID: ::libc::c_uint = 41; pub const VP9E_SET_TUNE_CONTENT: ::libc::c_uint = 42; pub const VP9E_GET_SVC_LAYER_ID: ::libc::c_uint = 43; pub const VP9E_REGISTER_CX_CALLBACK: ::libc::c_uint = 44; pub const VP9E_SET_COLOR_SPACE: ::libc::c_uint = 45; pub const VP9E_SET_TEMPORAL_LAYERING_MODE: ::libc::c_uint = 46; pub const VP9E_SET_MIN_GF_INTERVAL: ::libc::c_uint = 47; pub const VP9E_SET_MAX_GF_INTERVAL: ::libc::c_uint = 48; pub const VP9E_GET_ACTIVEMAP: ::libc::c_uint = 49; pub type Enum_vpx_scaling_mode_1d = ::libc::c_uint; pub const VP8E_NORMAL: ::libc::c_uint = 0; pub const VP8E_FOURFIVE: ::libc::c_uint = 1; pub const VP8E_THREEFIVE: ::libc::c_uint = 2; pub const VP8E_ONETWO: ::libc::c_uint = 3; pub type VPX_SCALING_MODE = Enum_vpx_scaling_mode_1d; pub type Enum_vp9e_temporal_layering_mode = ::libc::c_uint; pub const VP9E_TEMPORAL_LAYERING_MODE_NOLAYERING: ::libc::c_uint = 0; pub const VP9E_TEMPORAL_LAYERING_MODE_BYPASS: ::libc::c_uint = 1; pub const VP9E_TEMPORAL_LAYERING_MODE_0101: ::libc::c_uint = 2; pub const VP9E_TEMPORAL_LAYERING_MODE_0212: ::libc::c_uint = 3; pub type VP9E_TEMPORAL_LAYERING_MODE = Enum_vp9e_temporal_layering_mode; #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_roi_map { pub roi_map: *mut ::libc::c_uchar, pub rows: ::libc::c_uint, pub cols: ::libc::c_uint, pub delta_q: [::libc::c_int; 4usize], pub delta_lf: [::libc::c_int; 4usize], pub static_threshold: [::libc::c_uint; 4usize], } impl ::std::clone::Clone for Struct_vpx_roi_map { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_roi_map { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_roi_map_t = Struct_vpx_roi_map; #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_active_map { pub active_map: *mut ::libc::c_uchar, pub rows: ::libc::c_uint, pub cols: ::libc::c_uint, } impl ::std::clone::Clone for Struct_vpx_active_map { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_active_map { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_active_map_t = Struct_vpx_active_map; #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_scaling_mode { pub h_scaling_mode: VPX_SCALING_MODE, pub v_scaling_mode: VPX_SCALING_MODE, } impl ::std::clone::Clone for Struct_vpx_scaling_mode { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_scaling_mode { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_scaling_mode_t = Struct_vpx_scaling_mode; pub type Enum_Unnamed7 = ::libc::c_uint; pub const VP8_ONE_TOKENPARTITION: ::libc::c_uint = 0; pub const VP8_TWO_TOKENPARTITION: ::libc::c_uint = 1; pub const VP8_FOUR_TOKENPARTITION: ::libc::c_uint = 2; pub const VP8_EIGHT_TOKENPARTITION: ::libc::c_uint = 3; pub type vp8e_token_partitions = Enum_Unnamed7; pub type Enum_Unnamed8 = ::libc::c_uint; pub const VP9E_CONTENT_DEFAULT: ::libc::c_uint = 0; pub const VP9E_CONTENT_SCREEN: ::libc::c_uint = 1; pub const VP9E_CONTENT_INVALID: ::libc::c_uint = 2; pub type vp9e_tune_content = Enum_Unnamed8; pub type Enum_Unnamed9 = ::libc::c_uint; pub const VP8_TUNE_PSNR: ::libc::c_uint = 0; pub const VP8_TUNE_SSIM: ::libc::c_uint = 1; pub type vp8e_tuning = Enum_Unnamed9; #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_svc_layer_id { pub spatial_layer_id: ::libc::c_int, pub temporal_layer_id: ::libc::c_int, } impl ::std::clone::Clone for Struct_vpx_svc_layer_id { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_svc_layer_id { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_svc_layer_id_t = Struct_vpx_svc_layer_id; pub type Enum_vp8_dec_control_id = ::libc::c_uint; pub const VP8D_GET_LAST_REF_UPDATES: ::libc::c_uint = 256; pub const VP8D_GET_FRAME_CORRUPTED: ::libc::c_uint = 257; pub const VP8D_GET_LAST_REF_USED: ::libc::c_uint = 258; pub const VPXD_SET_DECRYPTOR: ::libc::c_uint = 259; pub const VP8D_SET_DECRYPTOR: ::libc::c_uint = 259; pub const VP9D_GET_FRAME_SIZE: ::libc::c_uint = 260; pub const VP9D_GET_DISPLAY_SIZE: ::libc::c_uint = 261; pub const VP9D_GET_BIT_DEPTH: ::libc::c_uint = 262; pub const VP9_SET_BYTE_ALIGNMENT: ::libc::c_uint = 263; pub const VP9_INVERT_TILE_DECODE_ORDER: ::libc::c_uint = 264; pub const VP9_SET_SKIP_LOOP_FILTER: ::libc::c_uint = 265; pub const VP8_DECODER_CTRL_ID_MAX: ::libc::c_uint = 266; pub type vpx_decrypt_cb = ::std::option::Option ()>; #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_decrypt_init { pub decrypt_cb: vpx_decrypt_cb, pub decrypt_state: *mut ::libc::c_void, } impl ::std::clone::Clone for Struct_vpx_decrypt_init { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_decrypt_init { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_decrypt_init = Struct_vpx_decrypt_init; pub type vp8_decrypt_init = vpx_decrypt_init; #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_codec_frame_buffer { pub data: *mut uint8_t, pub size: size_t, pub _priv: *mut ::libc::c_void, } impl ::std::clone::Clone for Struct_vpx_codec_frame_buffer { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_codec_frame_buffer { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_codec_frame_buffer_t = Struct_vpx_codec_frame_buffer; pub type vpx_get_frame_buffer_cb_fn_t = ::std::option::Option ::libc::c_int>; pub type vpx_release_frame_buffer_cb_fn_t = ::std::option::Option ::libc::c_int>; #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_codec_stream_info { pub sz: ::libc::c_uint, pub w: ::libc::c_uint, pub h: ::libc::c_uint, pub is_kf: ::libc::c_uint, } impl ::std::clone::Clone for Struct_vpx_codec_stream_info { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_codec_stream_info { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_codec_stream_info_t = Struct_vpx_codec_stream_info; #[repr(C)] #[derive(Copy)] pub struct Struct_vpx_codec_dec_cfg { pub threads: ::libc::c_uint, pub w: ::libc::c_uint, pub h: ::libc::c_uint, } impl ::std::clone::Clone for Struct_vpx_codec_dec_cfg { fn clone(&self) -> Self { *self } } impl ::std::default::Default for Struct_vpx_codec_dec_cfg { fn default() -> Self { unsafe { ::std::mem::zeroed() } } } pub type vpx_codec_dec_cfg_t = Struct_vpx_codec_dec_cfg; pub type vpx_codec_put_frame_cb_fn_t = ::std::option::Option ()>; pub type vpx_codec_put_slice_cb_fn_t = ::std::option::Option ()>; extern "C" { pub static mut vpx_codec_vp8_cx_algo: vpx_codec_iface_t; pub static mut vpx_codec_vp9_cx_algo: vpx_codec_iface_t; pub static mut vpx_codec_vp8_dx_algo: vpx_codec_iface_t; pub static mut vpx_codec_vp9_dx_algo: vpx_codec_iface_t; } extern "C" { pub fn vpx_img_alloc(img: *mut vpx_image_t, fmt: vpx_img_fmt_t, d_w: ::libc::c_uint, d_h: ::libc::c_uint, align: ::libc::c_uint) -> *mut vpx_image_t; pub fn vpx_img_wrap(img: *mut vpx_image_t, fmt: vpx_img_fmt_t, d_w: ::libc::c_uint, d_h: ::libc::c_uint, align: ::libc::c_uint, img_data: *mut ::libc::c_uchar) -> *mut vpx_image_t; pub fn vpx_img_set_rect(img: *mut vpx_image_t, x: ::libc::c_uint, y: ::libc::c_uint, w: ::libc::c_uint, h: ::libc::c_uint) -> ::libc::c_int; pub fn vpx_img_flip(img: *mut vpx_image_t) -> (); pub fn vpx_img_free(img: *mut vpx_image_t) -> (); pub fn vpx_codec_version() -> ::libc::c_int; pub fn vpx_codec_version_str() -> *const ::libc::c_char; pub fn vpx_codec_version_extra_str() -> *const ::libc::c_char; pub fn vpx_codec_build_config() -> *const ::libc::c_char; pub fn vpx_codec_iface_name(iface: *mut vpx_codec_iface_t) -> *const ::libc::c_char; pub fn vpx_codec_err_to_string(err: vpx_codec_err_t) -> *const ::libc::c_char; pub fn vpx_codec_error(ctx: *mut vpx_codec_ctx_t) -> *const ::libc::c_char; pub fn vpx_codec_error_detail(ctx: *mut vpx_codec_ctx_t) -> *const ::libc::c_char; pub fn vpx_codec_destroy(ctx: *mut vpx_codec_ctx_t) -> vpx_codec_err_t; pub fn vpx_codec_get_caps(iface: *mut vpx_codec_iface_t) -> vpx_codec_caps_t; pub fn vpx_codec_control_(ctx: *mut vpx_codec_ctx_t, ctrl_id: ::libc::c_int, ...) -> vpx_codec_err_t; pub fn vpx_codec_enc_init_ver(ctx: *mut vpx_codec_ctx_t, iface: *mut vpx_codec_iface_t, cfg: *const vpx_codec_enc_cfg_t, flags: vpx_codec_flags_t, ver: ::libc::c_int) -> vpx_codec_err_t; pub fn vpx_codec_enc_init_multi_ver(ctx: *mut vpx_codec_ctx_t, iface: *mut vpx_codec_iface_t, cfg: *mut vpx_codec_enc_cfg_t, num_enc: ::libc::c_int, flags: vpx_codec_flags_t, dsf: *mut vpx_rational_t, ver: ::libc::c_int) -> vpx_codec_err_t; pub fn vpx_codec_enc_config_default(iface: *mut vpx_codec_iface_t, cfg: *mut vpx_codec_enc_cfg_t, reserved: ::libc::c_uint) -> vpx_codec_err_t; pub fn vpx_codec_enc_config_set(ctx: *mut vpx_codec_ctx_t, cfg: *const vpx_codec_enc_cfg_t) -> vpx_codec_err_t; pub fn vpx_codec_get_global_headers(ctx: *mut vpx_codec_ctx_t) -> *mut vpx_fixed_buf_t; pub fn vpx_codec_encode(ctx: *mut vpx_codec_ctx_t, img: *const vpx_image_t, pts: vpx_codec_pts_t, duration: ::libc::c_ulong, flags: vpx_enc_frame_flags_t, deadline: ::libc::c_ulong) -> vpx_codec_err_t; pub fn vpx_codec_set_cx_data_buf(ctx: *mut vpx_codec_ctx_t, buf: *const vpx_fixed_buf_t, pad_before: ::libc::c_uint, pad_after: ::libc::c_uint) -> vpx_codec_err_t; pub fn vpx_codec_get_cx_data(ctx: *mut vpx_codec_ctx_t, iter: *mut vpx_codec_iter_t) -> *const vpx_codec_cx_pkt_t; pub fn vpx_codec_get_preview_frame(ctx: *mut vpx_codec_ctx_t) -> *const vpx_image_t; pub fn vpx_codec_vp8_cx() -> *mut vpx_codec_iface_t; pub fn vpx_codec_vp9_cx() -> *mut vpx_codec_iface_t; pub fn vpx_codec_vp8_dx() -> *mut vpx_codec_iface_t; pub fn vpx_codec_vp9_dx() -> *mut vpx_codec_iface_t; pub fn vpx_codec_dec_init_ver(ctx: *mut vpx_codec_ctx_t, iface: *mut vpx_codec_iface_t, cfg: *const vpx_codec_dec_cfg_t, flags: vpx_codec_flags_t, ver: ::libc::c_int) -> vpx_codec_err_t; pub fn vpx_codec_peek_stream_info(iface: *mut vpx_codec_iface_t, data: *const uint8_t, data_sz: ::libc::c_uint, si: *mut vpx_codec_stream_info_t) -> vpx_codec_err_t; pub fn vpx_codec_get_stream_info(ctx: *mut vpx_codec_ctx_t, si: *mut vpx_codec_stream_info_t) -> vpx_codec_err_t; pub fn vpx_codec_decode(ctx: *mut vpx_codec_ctx_t, data: *const uint8_t, data_sz: ::libc::c_uint, user_priv: *mut ::libc::c_void, deadline: ::libc::c_long) -> vpx_codec_err_t; pub fn vpx_codec_get_frame(ctx: *mut vpx_codec_ctx_t, iter: *mut vpx_codec_iter_t) -> *mut vpx_image_t; pub fn vpx_codec_register_put_frame_cb(ctx: *mut vpx_codec_ctx_t, cb: vpx_codec_put_frame_cb_fn_t, user_priv: *mut ::libc::c_void) -> vpx_codec_err_t; pub fn vpx_codec_register_put_slice_cb(ctx: *mut vpx_codec_ctx_t, cb: vpx_codec_put_slice_cb_fn_t, user_priv: *mut ::libc::c_void) -> vpx_codec_err_t; pub fn vpx_codec_set_frame_buffer_functions(ctx: *mut vpx_codec_ctx_t, cb_get: vpx_get_frame_buffer_cb_fn_t, cb_release: vpx_release_frame_buffer_cb_fn_t, cb_priv: *mut ::libc::c_void) -> vpx_codec_err_t; }