/* automatically generated by rust-bindgen 0.60.1 */ pub const VPX_IMAGE_ABI_VERSION: u32 = 5; pub const VPX_IMG_FMT_PLANAR: u32 = 256; pub const VPX_IMG_FMT_UV_FLIP: u32 = 512; pub const VPX_IMG_FMT_HAS_ALPHA: u32 = 1024; pub const VPX_IMG_FMT_HIGHBITDEPTH: u32 = 2048; pub const VPX_PLANE_PACKED: u32 = 0; pub const VPX_PLANE_Y: u32 = 0; pub const VPX_PLANE_U: u32 = 1; pub const VPX_PLANE_V: u32 = 2; pub const VPX_PLANE_ALPHA: u32 = 3; pub const VPX_CODEC_ABI_VERSION: u32 = 9; pub const VPX_CODEC_CAP_DECODER: u32 = 1; pub const VPX_CODEC_CAP_ENCODER: u32 = 2; pub const VPX_CODEC_CAP_HIGHBITDEPTH: u32 = 4; pub const VPX_EXT_RATECTRL_ABI_VERSION: u32 = 1; pub const VPX_TS_MAX_PERIODICITY: u32 = 16; pub const VPX_TS_MAX_LAYERS: u32 = 5; pub const VPX_MAX_LAYERS: u32 = 12; pub const VPX_SS_MAX_LAYERS: u32 = 5; pub const VPX_SS_DEFAULT_LAYERS: u32 = 1; pub const VPX_ENCODER_ABI_VERSION: u32 = 25; pub const VPX_CODEC_CAP_PSNR: u32 = 65536; pub const VPX_CODEC_CAP_OUTPUT_PARTITION: u32 = 131072; pub const VPX_CODEC_USE_PSNR: u32 = 65536; pub const VPX_CODEC_USE_OUTPUT_PARTITION: u32 = 131072; pub const VPX_CODEC_USE_HIGHBITDEPTH: u32 = 262144; pub const VPX_FRAME_IS_KEY: u32 = 1; pub const VPX_FRAME_IS_DROPPABLE: u32 = 2; pub const VPX_FRAME_IS_INVISIBLE: u32 = 4; pub const VPX_FRAME_IS_FRAGMENT: u32 = 8; pub const VPX_ERROR_RESILIENT_DEFAULT: u32 = 1; pub const VPX_ERROR_RESILIENT_PARTITIONS: u32 = 2; pub const VPX_EFLAG_FORCE_KF: u32 = 1; pub const VPX_DL_REALTIME: u32 = 1; pub const VPX_DL_GOOD_QUALITY: u32 = 1000000; pub const VPX_DL_BEST_QUALITY: u32 = 0; pub const VP8_EFLAG_NO_REF_LAST: u32 = 65536; pub const VP8_EFLAG_NO_REF_GF: u32 = 131072; pub const VP8_EFLAG_NO_REF_ARF: u32 = 2097152; pub const VP8_EFLAG_NO_UPD_LAST: u32 = 262144; pub const VP8_EFLAG_NO_UPD_GF: u32 = 4194304; pub const VP8_EFLAG_NO_UPD_ARF: u32 = 8388608; pub const VP8_EFLAG_FORCE_GF: u32 = 524288; pub const VP8_EFLAG_FORCE_ARF: u32 = 16777216; pub const VP8_EFLAG_NO_UPD_ENTROPY: u32 = 1048576; pub const VPX_MAXIMUM_WORK_BUFFERS: u32 = 8; pub const VP9_MAXIMUM_REF_BUFFERS: u32 = 8; pub const VPX_DECODER_ABI_VERSION: u32 = 12; pub const VPX_CODEC_CAP_PUT_SLICE: u32 = 65536; pub const VPX_CODEC_CAP_PUT_FRAME: u32 = 131072; pub const VPX_CODEC_CAP_POSTPROC: u32 = 262144; pub const VPX_CODEC_CAP_ERROR_CONCEALMENT: u32 = 524288; pub const VPX_CODEC_CAP_INPUT_FRAGMENTS: u32 = 1048576; pub const VPX_CODEC_CAP_FRAME_THREADING: u32 = 2097152; pub const VPX_CODEC_CAP_EXTERNAL_FRAME_BUFFER: u32 = 4194304; pub const VPX_CODEC_USE_POSTPROC: u32 = 65536; pub const VPX_CODEC_USE_ERROR_CONCEALMENT: u32 = 131072; pub const VPX_CODEC_USE_INPUT_FRAGMENTS: u32 = 262144; pub const VPX_CODEC_USE_FRAME_THREADING: u32 = 524288; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vpx_img_fmt { VPX_IMG_FMT_NONE = 0, VPX_IMG_FMT_YV12 = 769, VPX_IMG_FMT_I420 = 258, VPX_IMG_FMT_I422 = 261, VPX_IMG_FMT_I444 = 262, VPX_IMG_FMT_I440 = 263, VPX_IMG_FMT_NV12 = 265, VPX_IMG_FMT_I42016 = 2306, VPX_IMG_FMT_I42216 = 2309, VPX_IMG_FMT_I44416 = 2310, VPX_IMG_FMT_I44016 = 2311, } pub use self::vpx_img_fmt as vpx_img_fmt_t; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vpx_color_space { VPX_CS_UNKNOWN = 0, VPX_CS_BT_601 = 1, VPX_CS_BT_709 = 2, VPX_CS_SMPTE_170 = 3, VPX_CS_SMPTE_240 = 4, VPX_CS_BT_2020 = 5, VPX_CS_RESERVED = 6, VPX_CS_SRGB = 7, } pub use self::vpx_color_space as vpx_color_space_t; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vpx_color_range { VPX_CR_STUDIO_RANGE = 0, VPX_CR_FULL_RANGE = 1, } pub use self::vpx_color_range as vpx_color_range_t; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_image { pub fmt: vpx_img_fmt_t, pub cs: vpx_color_space_t, pub range: vpx_color_range_t, pub w: ::std::os::raw::c_uint, pub h: ::std::os::raw::c_uint, pub bit_depth: ::std::os::raw::c_uint, pub d_w: ::std::os::raw::c_uint, pub d_h: ::std::os::raw::c_uint, pub r_w: ::std::os::raw::c_uint, pub r_h: ::std::os::raw::c_uint, pub x_chroma_shift: ::std::os::raw::c_uint, pub y_chroma_shift: ::std::os::raw::c_uint, pub planes: [*mut ::std::os::raw::c_uchar; 4usize], pub stride: [::std::os::raw::c_int; 4usize], pub bps: ::std::os::raw::c_int, pub user_priv: *mut ::std::os::raw::c_void, pub img_data: *mut ::std::os::raw::c_uchar, pub img_data_owner: ::std::os::raw::c_int, pub self_allocd: ::std::os::raw::c_int, pub fb_priv: *mut ::std::os::raw::c_void, } pub type vpx_image_t = vpx_image; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_image_rect { pub x: ::std::os::raw::c_uint, pub y: ::std::os::raw::c_uint, pub w: ::std::os::raw::c_uint, pub h: ::std::os::raw::c_uint, } pub type vpx_image_rect_t = vpx_image_rect; extern "C" { pub fn vpx_img_alloc( img: *mut vpx_image_t, fmt: vpx_img_fmt_t, d_w: ::std::os::raw::c_uint, d_h: ::std::os::raw::c_uint, align: ::std::os::raw::c_uint, ) -> *mut vpx_image_t; } extern "C" { pub fn vpx_img_wrap( img: *mut vpx_image_t, fmt: vpx_img_fmt_t, d_w: ::std::os::raw::c_uint, d_h: ::std::os::raw::c_uint, stride_align: ::std::os::raw::c_uint, img_data: *mut ::std::os::raw::c_uchar, ) -> *mut vpx_image_t; } extern "C" { pub fn vpx_img_set_rect( img: *mut vpx_image_t, x: ::std::os::raw::c_uint, y: ::std::os::raw::c_uint, w: ::std::os::raw::c_uint, h: ::std::os::raw::c_uint, ) -> ::std::os::raw::c_int; } extern "C" { pub fn vpx_img_flip(img: *mut vpx_image_t); } extern "C" { pub fn vpx_img_free(img: *mut vpx_image_t); } pub type size_t = ::std::os::raw::c_ulong; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vpx_codec_err_t { VPX_CODEC_OK = 0, VPX_CODEC_ERROR = 1, VPX_CODEC_MEM_ERROR = 2, VPX_CODEC_ABI_MISMATCH = 3, VPX_CODEC_INCAPABLE = 4, VPX_CODEC_UNSUP_BITSTREAM = 5, VPX_CODEC_UNSUP_FEATURE = 6, VPX_CODEC_CORRUPT_FRAME = 7, VPX_CODEC_INVALID_PARAM = 8, VPX_CODEC_LIST_END = 9, } pub type vpx_codec_caps_t = ::std::os::raw::c_long; pub type vpx_codec_flags_t = ::std::os::raw::c_long; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_codec_iface { _unused: [u8; 0], } pub type vpx_codec_iface_t = vpx_codec_iface; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_codec_priv { _unused: [u8; 0], } pub type vpx_codec_priv_t = vpx_codec_priv; pub type vpx_codec_iter_t = *const ::std::os::raw::c_void; #[repr(C)] #[derive(Copy, Clone)] pub struct vpx_codec_ctx { pub name: *const ::std::os::raw::c_char, pub iface: *mut vpx_codec_iface_t, pub err: vpx_codec_err_t, pub err_detail: *const ::std::os::raw::c_char, pub init_flags: vpx_codec_flags_t, pub config: vpx_codec_ctx__bindgen_ty_1, pub priv_: *mut vpx_codec_priv_t, } #[repr(C)] #[derive(Copy, Clone)] pub union vpx_codec_ctx__bindgen_ty_1 { pub dec: *const vpx_codec_dec_cfg, pub enc: *const vpx_codec_enc_cfg, pub raw: *const ::std::os::raw::c_void, } pub type vpx_codec_ctx_t = vpx_codec_ctx; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vpx_bit_depth { VPX_BITS_8 = 8, VPX_BITS_10 = 10, VPX_BITS_12 = 12, } pub use self::vpx_bit_depth as vpx_bit_depth_t; extern "C" { pub fn vpx_codec_version() -> ::std::os::raw::c_int; } extern "C" { pub fn vpx_codec_version_str() -> *const ::std::os::raw::c_char; } extern "C" { pub fn vpx_codec_version_extra_str() -> *const ::std::os::raw::c_char; } extern "C" { pub fn vpx_codec_build_config() -> *const ::std::os::raw::c_char; } extern "C" { pub fn vpx_codec_iface_name(iface: *mut vpx_codec_iface_t) -> *const ::std::os::raw::c_char; } extern "C" { pub fn vpx_codec_err_to_string(err: vpx_codec_err_t) -> *const ::std::os::raw::c_char; } extern "C" { pub fn vpx_codec_error(ctx: *mut vpx_codec_ctx_t) -> *const ::std::os::raw::c_char; } extern "C" { pub fn vpx_codec_error_detail(ctx: *mut vpx_codec_ctx_t) -> *const ::std::os::raw::c_char; } extern "C" { pub fn vpx_codec_destroy(ctx: *mut vpx_codec_ctx_t) -> vpx_codec_err_t; } extern "C" { pub fn vpx_codec_get_caps(iface: *mut vpx_codec_iface_t) -> vpx_codec_caps_t; } extern "C" { pub fn vpx_codec_control_( ctx: *mut vpx_codec_ctx_t, ctrl_id: ::std::os::raw::c_int, ... ) -> vpx_codec_err_t; } #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vp8_com_control_id { VP8_SET_REFERENCE = 1, VP8_COPY_REFERENCE = 2, VP8_SET_POSTPROC = 3, VP9_GET_REFERENCE = 128, VP8_COMMON_CTRL_ID_MAX = 129, VP8_DECODER_CTRL_ID_START = 256, } #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vp8_postproc_level { VP8_NOFILTERING = 0, VP8_DEBLOCK = 1, VP8_DEMACROBLOCK = 2, VP8_ADDNOISE = 4, VP8_MFQE = 8, } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vp8_postproc_cfg { pub post_proc_flag: ::std::os::raw::c_int, pub deblocking_level: ::std::os::raw::c_int, pub noise_level: ::std::os::raw::c_int, } pub type vp8_postproc_cfg_t = vp8_postproc_cfg; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vpx_ref_frame_type { VP8_LAST_FRAME = 1, VP8_GOLD_FRAME = 2, VP8_ALTR_FRAME = 4, } pub use self::vpx_ref_frame_type as vpx_ref_frame_type_t; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_ref_frame { pub frame_type: vpx_ref_frame_type_t, pub img: vpx_image_t, } pub type vpx_ref_frame_t = vpx_ref_frame; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vp9_ref_frame { pub idx: ::std::os::raw::c_int, pub img: vpx_image_t, } pub type vp9_ref_frame_t = vp9_ref_frame; pub type vpx_rc_model_t = *mut ::std::os::raw::c_void; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_rc_encodeframe_decision { pub q_index: ::std::os::raw::c_int, pub max_frame_size: ::std::os::raw::c_int, } pub type vpx_rc_encodeframe_decision_t = vpx_rc_encodeframe_decision; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_rc_encodeframe_info { pub frame_type: ::std::os::raw::c_int, pub show_index: ::std::os::raw::c_int, pub coding_index: ::std::os::raw::c_int, pub gop_index: ::std::os::raw::c_int, pub ref_frame_coding_indexes: [::std::os::raw::c_int; 3usize], pub ref_frame_valid_list: [::std::os::raw::c_int; 3usize], } pub type vpx_rc_encodeframe_info_t = vpx_rc_encodeframe_info; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_rc_encodeframe_result { pub sse: i64, pub bit_count: i64, pub pixel_count: i64, pub actual_encoding_qindex: ::std::os::raw::c_int, } pub type vpx_rc_encodeframe_result_t = vpx_rc_encodeframe_result; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vpx_rc_status { VPX_RC_OK = 0, VPX_RC_ERROR = 1, } pub use self::vpx_rc_status as vpx_rc_status_t; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_rc_frame_stats { pub frame: f64, pub weight: f64, pub intra_error: f64, pub coded_error: f64, pub sr_coded_error: f64, pub frame_noise_energy: f64, pub pcnt_inter: f64, pub pcnt_motion: f64, pub pcnt_second_ref: f64, pub pcnt_neutral: f64, pub pcnt_intra_low: f64, pub pcnt_intra_high: f64, pub intra_skip_pct: f64, pub intra_smooth_pct: f64, pub inactive_zone_rows: f64, pub inactive_zone_cols: f64, pub MVr: f64, pub mvr_abs: f64, pub MVc: f64, pub mvc_abs: f64, pub MVrv: f64, pub MVcv: f64, pub mv_in_out_count: f64, pub duration: f64, pub count: f64, } pub type vpx_rc_frame_stats_t = vpx_rc_frame_stats; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_rc_firstpass_stats { pub frame_stats: *mut vpx_rc_frame_stats_t, pub num_frames: ::std::os::raw::c_int, } pub type vpx_rc_firstpass_stats_t = vpx_rc_firstpass_stats; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_rc_config { pub frame_width: ::std::os::raw::c_int, pub frame_height: ::std::os::raw::c_int, pub show_frame_count: ::std::os::raw::c_int, pub target_bitrate_kbps: ::std::os::raw::c_int, pub frame_rate_num: ::std::os::raw::c_int, pub frame_rate_den: ::std::os::raw::c_int, } pub type vpx_rc_config_t = vpx_rc_config; pub type vpx_rc_create_model_cb_fn_t = ::std::option::Option< unsafe extern "C" fn( priv_: *mut ::std::os::raw::c_void, ratectrl_config: *const vpx_rc_config_t, rate_ctrl_model_pt: *mut vpx_rc_model_t, ) -> vpx_rc_status_t, >; pub type vpx_rc_send_firstpass_stats_cb_fn_t = ::std::option::Option< unsafe extern "C" fn( rate_ctrl_model: vpx_rc_model_t, first_pass_stats: *const vpx_rc_firstpass_stats_t, ) -> vpx_rc_status_t, >; pub type vpx_rc_get_encodeframe_decision_cb_fn_t = ::std::option::Option< unsafe extern "C" fn( rate_ctrl_model: vpx_rc_model_t, encode_frame_info: *const vpx_rc_encodeframe_info_t, frame_decision: *mut vpx_rc_encodeframe_decision_t, ) -> vpx_rc_status_t, >; pub type vpx_rc_update_encodeframe_result_cb_fn_t = ::std::option::Option< unsafe extern "C" fn( rate_ctrl_model: vpx_rc_model_t, encode_frame_result: *const vpx_rc_encodeframe_result_t, ) -> vpx_rc_status_t, >; pub type vpx_rc_delete_model_cb_fn_t = ::std::option::Option vpx_rc_status_t>; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_rc_funcs { pub create_model: vpx_rc_create_model_cb_fn_t, pub send_firstpass_stats: vpx_rc_send_firstpass_stats_cb_fn_t, pub get_encodeframe_decision: vpx_rc_get_encodeframe_decision_cb_fn_t, pub update_encodeframe_result: vpx_rc_update_encodeframe_result_cb_fn_t, pub delete_model: vpx_rc_delete_model_cb_fn_t, pub priv_: *mut ::std::os::raw::c_void, } pub type vpx_rc_funcs_t = vpx_rc_funcs; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_fixed_buf { pub buf: *mut ::std::os::raw::c_void, pub sz: size_t, } pub type vpx_fixed_buf_t = vpx_fixed_buf; pub type vpx_codec_pts_t = i64; pub type vpx_codec_frame_flags_t = u32; pub type vpx_codec_er_flags_t = u32; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vpx_codec_cx_pkt_kind { VPX_CODEC_CX_FRAME_PKT = 0, VPX_CODEC_STATS_PKT = 1, VPX_CODEC_FPMB_STATS_PKT = 2, VPX_CODEC_PSNR_PKT = 3, VPX_CODEC_CUSTOM_PKT = 256, } #[repr(C)] #[derive(Copy, Clone)] pub struct vpx_codec_cx_pkt { pub kind: vpx_codec_cx_pkt_kind, pub data: vpx_codec_cx_pkt__bindgen_ty_1, } #[repr(C)] #[derive(Copy, Clone)] pub union vpx_codec_cx_pkt__bindgen_ty_1 { pub frame: vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1, pub twopass_stats: vpx_fixed_buf_t, pub firstpass_mb_stats: vpx_fixed_buf_t, pub psnr: vpx_codec_cx_pkt__bindgen_ty_1_vpx_psnr_pkt, pub raw: vpx_fixed_buf_t, pub pad: [::std::os::raw::c_char; 124usize], } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_codec_cx_pkt__bindgen_ty_1__bindgen_ty_1 { pub buf: *mut ::std::os::raw::c_void, pub sz: size_t, pub pts: vpx_codec_pts_t, pub duration: ::std::os::raw::c_ulong, pub flags: vpx_codec_frame_flags_t, pub partition_id: ::std::os::raw::c_int, pub width: [::std::os::raw::c_uint; 5usize], pub height: [::std::os::raw::c_uint; 5usize], pub spatial_layer_encoded: [u8; 5usize], } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_codec_cx_pkt__bindgen_ty_1_vpx_psnr_pkt { pub samples: [::std::os::raw::c_uint; 4usize], pub sse: [u64; 4usize], pub psnr: [f64; 4usize], } pub type vpx_codec_cx_pkt_t = vpx_codec_cx_pkt; pub type vpx_codec_enc_output_cx_pkt_cb_fn_t = ::std::option::Option< unsafe extern "C" fn(pkt: *mut vpx_codec_cx_pkt_t, user_data: *mut ::std::os::raw::c_void), >; #[repr(C)] #[derive(Debug, Copy, Clone)] pub 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 ::std::os::raw::c_void, } pub type vpx_codec_priv_output_cx_pkt_cb_pair_t = vpx_codec_enc_output_cx_cb_pair; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_rational { pub num: ::std::os::raw::c_int, pub den: ::std::os::raw::c_int, } pub type vpx_rational_t = vpx_rational; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vpx_enc_pass { VPX_RC_ONE_PASS = 0, VPX_RC_FIRST_PASS = 1, VPX_RC_LAST_PASS = 2, } #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vpx_rc_mode { VPX_VBR = 0, VPX_CBR = 1, VPX_CQ = 2, VPX_Q = 3, } impl vpx_kf_mode { pub const VPX_KF_DISABLED: vpx_kf_mode = vpx_kf_mode::VPX_KF_FIXED; } #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vpx_kf_mode { VPX_KF_FIXED = 0, VPX_KF_AUTO = 1, } pub type vpx_enc_frame_flags_t = ::std::os::raw::c_long; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_codec_enc_cfg { pub g_usage: ::std::os::raw::c_uint, pub g_threads: ::std::os::raw::c_uint, pub g_profile: ::std::os::raw::c_uint, pub g_w: ::std::os::raw::c_uint, pub g_h: ::std::os::raw::c_uint, pub g_bit_depth: vpx_bit_depth_t, pub g_input_bit_depth: ::std::os::raw::c_uint, pub g_timebase: vpx_rational, pub g_error_resilient: vpx_codec_er_flags_t, pub g_pass: vpx_enc_pass, pub g_lag_in_frames: ::std::os::raw::c_uint, pub rc_dropframe_thresh: ::std::os::raw::c_uint, pub rc_resize_allowed: ::std::os::raw::c_uint, pub rc_scaled_width: ::std::os::raw::c_uint, pub rc_scaled_height: ::std::os::raw::c_uint, pub rc_resize_up_thresh: ::std::os::raw::c_uint, pub rc_resize_down_thresh: ::std::os::raw::c_uint, pub rc_end_usage: 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: ::std::os::raw::c_uint, pub rc_min_quantizer: ::std::os::raw::c_uint, pub rc_max_quantizer: ::std::os::raw::c_uint, pub rc_undershoot_pct: ::std::os::raw::c_uint, pub rc_overshoot_pct: ::std::os::raw::c_uint, pub rc_buf_sz: ::std::os::raw::c_uint, pub rc_buf_initial_sz: ::std::os::raw::c_uint, pub rc_buf_optimal_sz: ::std::os::raw::c_uint, pub rc_2pass_vbr_bias_pct: ::std::os::raw::c_uint, pub rc_2pass_vbr_minsection_pct: ::std::os::raw::c_uint, pub rc_2pass_vbr_maxsection_pct: ::std::os::raw::c_uint, pub rc_2pass_vbr_corpus_complexity: ::std::os::raw::c_uint, pub kf_mode: vpx_kf_mode, pub kf_min_dist: ::std::os::raw::c_uint, pub kf_max_dist: ::std::os::raw::c_uint, pub ss_number_layers: ::std::os::raw::c_uint, pub ss_enable_auto_alt_ref: [::std::os::raw::c_int; 5usize], pub ss_target_bitrate: [::std::os::raw::c_uint; 5usize], pub ts_number_layers: ::std::os::raw::c_uint, pub ts_target_bitrate: [::std::os::raw::c_uint; 5usize], pub ts_rate_decimator: [::std::os::raw::c_uint; 5usize], pub ts_periodicity: ::std::os::raw::c_uint, pub ts_layer_id: [::std::os::raw::c_uint; 16usize], pub layer_target_bitrate: [::std::os::raw::c_uint; 12usize], pub temporal_layering_mode: ::std::os::raw::c_int, pub use_vizier_rc_params: ::std::os::raw::c_int, pub active_wq_factor: vpx_rational_t, pub err_per_mb_factor: vpx_rational_t, pub sr_default_decay_limit: vpx_rational_t, pub sr_diff_factor: vpx_rational_t, pub kf_err_per_mb_factor: vpx_rational_t, pub kf_frame_min_boost_factor: vpx_rational_t, pub kf_frame_max_boost_first_factor: vpx_rational_t, pub kf_frame_max_boost_subs_factor: vpx_rational_t, pub kf_max_total_boost_factor: vpx_rational_t, pub gf_max_total_boost_factor: vpx_rational_t, pub gf_frame_max_boost_factor: vpx_rational_t, pub zm_factor: vpx_rational_t, pub rd_mult_inter_qp_fac: vpx_rational_t, pub rd_mult_arf_qp_fac: vpx_rational_t, pub rd_mult_key_qp_fac: vpx_rational_t, } pub type vpx_codec_enc_cfg_t = vpx_codec_enc_cfg; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_svc_parameters { pub max_quantizers: [::std::os::raw::c_int; 12usize], pub min_quantizers: [::std::os::raw::c_int; 12usize], pub scaling_factor_num: [::std::os::raw::c_int; 12usize], pub scaling_factor_den: [::std::os::raw::c_int; 12usize], pub speed_per_layer: [::std::os::raw::c_int; 12usize], pub temporal_layering_mode: ::std::os::raw::c_int, pub loopfilter_ctrl: [::std::os::raw::c_int; 12usize], } pub type vpx_svc_extra_cfg_t = vpx_svc_parameters; extern "C" { 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: ::std::os::raw::c_int, ) -> vpx_codec_err_t; } extern "C" { 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: ::std::os::raw::c_int, flags: vpx_codec_flags_t, dsf: *mut vpx_rational_t, ver: ::std::os::raw::c_int, ) -> vpx_codec_err_t; } extern "C" { pub fn vpx_codec_enc_config_default( iface: *mut vpx_codec_iface_t, cfg: *mut vpx_codec_enc_cfg_t, usage: ::std::os::raw::c_uint, ) -> vpx_codec_err_t; } extern "C" { pub fn vpx_codec_enc_config_set( ctx: *mut vpx_codec_ctx_t, cfg: *const vpx_codec_enc_cfg_t, ) -> vpx_codec_err_t; } extern "C" { pub fn vpx_codec_get_global_headers(ctx: *mut vpx_codec_ctx_t) -> *mut vpx_fixed_buf_t; } extern "C" { pub fn vpx_codec_encode( ctx: *mut vpx_codec_ctx_t, img: *const vpx_image_t, pts: vpx_codec_pts_t, duration: ::std::os::raw::c_ulong, flags: vpx_enc_frame_flags_t, deadline: ::std::os::raw::c_ulong, ) -> vpx_codec_err_t; } extern "C" { pub fn vpx_codec_set_cx_data_buf( ctx: *mut vpx_codec_ctx_t, buf: *const vpx_fixed_buf_t, pad_before: ::std::os::raw::c_uint, pad_after: ::std::os::raw::c_uint, ) -> vpx_codec_err_t; } extern "C" { 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; } extern "C" { pub fn vpx_codec_get_preview_frame(ctx: *mut vpx_codec_ctx_t) -> *const vpx_image_t; } extern "C" { pub static mut vpx_codec_vp8_cx_algo: vpx_codec_iface_t; } extern "C" { pub fn vpx_codec_vp8_cx() -> *mut vpx_codec_iface_t; } extern "C" { pub static mut vpx_codec_vp9_cx_algo: vpx_codec_iface_t; } extern "C" { pub fn vpx_codec_vp9_cx() -> *mut vpx_codec_iface_t; } #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vp8e_enc_control_id { VP8E_SET_ROI_MAP = 8, VP8E_SET_ACTIVEMAP = 9, VP8E_SET_SCALEMODE = 11, VP8E_SET_CPUUSED = 13, VP8E_SET_ENABLEAUTOALTREF = 14, VP8E_SET_NOISE_SENSITIVITY = 15, VP8E_SET_SHARPNESS = 16, VP8E_SET_STATIC_THRESHOLD = 17, VP8E_SET_TOKEN_PARTITIONS = 18, VP8E_GET_LAST_QUANTIZER = 19, VP8E_GET_LAST_QUANTIZER_64 = 20, VP8E_SET_ARNR_MAXFRAMES = 21, VP8E_SET_ARNR_STRENGTH = 22, VP8E_SET_ARNR_TYPE = 23, VP8E_SET_TUNING = 24, VP8E_SET_CQ_LEVEL = 25, VP8E_SET_MAX_INTRA_BITRATE_PCT = 26, VP8E_SET_FRAME_FLAGS = 27, VP9E_SET_MAX_INTER_BITRATE_PCT = 28, VP9E_SET_GF_CBR_BOOST_PCT = 29, VP8E_SET_TEMPORAL_LAYER_ID = 30, VP8E_SET_SCREEN_CONTENT_MODE = 31, VP9E_SET_LOSSLESS = 32, VP9E_SET_TILE_COLUMNS = 33, VP9E_SET_TILE_ROWS = 34, VP9E_SET_FRAME_PARALLEL_DECODING = 35, VP9E_SET_AQ_MODE = 36, VP9E_SET_FRAME_PERIODIC_BOOST = 37, VP9E_SET_NOISE_SENSITIVITY = 38, VP9E_SET_SVC = 39, VP9E_SET_ROI_MAP = 40, VP9E_SET_SVC_PARAMETERS = 41, VP9E_SET_SVC_LAYER_ID = 42, VP9E_SET_TUNE_CONTENT = 43, VP9E_GET_SVC_LAYER_ID = 44, VP9E_REGISTER_CX_CALLBACK = 45, VP9E_SET_COLOR_SPACE = 46, VP9E_SET_MIN_GF_INTERVAL = 48, VP9E_SET_MAX_GF_INTERVAL = 49, VP9E_GET_ACTIVEMAP = 50, VP9E_SET_COLOR_RANGE = 51, VP9E_SET_SVC_REF_FRAME_CONFIG = 52, VP9E_SET_RENDER_SIZE = 53, VP9E_SET_TARGET_LEVEL = 54, VP9E_SET_ROW_MT = 55, VP9E_GET_LEVEL = 56, VP9E_SET_ALT_REF_AQ = 57, VP8E_SET_GF_CBR_BOOST_PCT = 58, VP9E_ENABLE_MOTION_VECTOR_UNIT_TEST = 59, VP9E_SET_SVC_INTER_LAYER_PRED = 60, VP9E_SET_SVC_FRAME_DROP_LAYER = 61, VP9E_GET_SVC_REF_FRAME_CONFIG = 62, VP9E_SET_SVC_GF_TEMPORAL_REF = 63, VP9E_SET_SVC_SPATIAL_LAYER_SYNC = 64, VP9E_SET_TPL = 65, VP9E_SET_POSTENCODE_DROP = 66, VP9E_SET_DELTA_Q_UV = 67, VP9E_SET_DISABLE_OVERSHOOT_MAXQ_CBR = 68, VP9E_SET_DISABLE_LOOPFILTER = 69, VP9E_SET_EXTERNAL_RATE_CONTROL = 70, VP9E_SET_RTC_EXTERNAL_RATECTRL = 71, VP9E_GET_LOOPFILTER_LEVEL = 72, VP9E_GET_LAST_QUANTIZER_SVC_LAYERS = 73, VP8E_SET_RTC_EXTERNAL_RATECTRL = 74, } #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vpx_scaling_mode_1d { VP8E_NORMAL = 0, VP8E_FOURFIVE = 1, VP8E_THREEFIVE = 2, VP8E_ONETWO = 3, } pub use self::vpx_scaling_mode_1d as VPX_SCALING_MODE; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vp9e_temporal_layering_mode { VP9E_TEMPORAL_LAYERING_MODE_NOLAYERING = 0, VP9E_TEMPORAL_LAYERING_MODE_BYPASS = 1, VP9E_TEMPORAL_LAYERING_MODE_0101 = 2, VP9E_TEMPORAL_LAYERING_MODE_0212 = 3, } pub use self::vp9e_temporal_layering_mode as VP9E_TEMPORAL_LAYERING_MODE; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_roi_map { pub enabled: u8, pub roi_map: *mut ::std::os::raw::c_uchar, pub rows: ::std::os::raw::c_uint, pub cols: ::std::os::raw::c_uint, pub delta_q: [::std::os::raw::c_int; 8usize], pub delta_lf: [::std::os::raw::c_int; 8usize], pub skip: [::std::os::raw::c_int; 8usize], pub ref_frame: [::std::os::raw::c_int; 8usize], pub static_threshold: [::std::os::raw::c_uint; 4usize], } pub type vpx_roi_map_t = vpx_roi_map; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_active_map { pub active_map: *mut ::std::os::raw::c_uchar, pub rows: ::std::os::raw::c_uint, pub cols: ::std::os::raw::c_uint, } pub type vpx_active_map_t = vpx_active_map; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_scaling_mode { pub h_scaling_mode: VPX_SCALING_MODE, pub v_scaling_mode: VPX_SCALING_MODE, } pub type vpx_scaling_mode_t = vpx_scaling_mode; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vp8e_token_partitions { VP8_ONE_TOKENPARTITION = 0, VP8_TWO_TOKENPARTITION = 1, VP8_FOUR_TOKENPARTITION = 2, VP8_EIGHT_TOKENPARTITION = 3, } #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vp9e_tune_content { VP9E_CONTENT_DEFAULT = 0, VP9E_CONTENT_SCREEN = 1, VP9E_CONTENT_FILM = 2, VP9E_CONTENT_INVALID = 3, } #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vp8e_tuning { VP8_TUNE_PSNR = 0, VP8_TUNE_SSIM = 1, } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_svc_layer_id { pub spatial_layer_id: ::std::os::raw::c_int, pub temporal_layer_id: ::std::os::raw::c_int, pub temporal_layer_id_per_spatial: [::std::os::raw::c_int; 5usize], } pub type vpx_svc_layer_id_t = vpx_svc_layer_id; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_svc_ref_frame_config { pub lst_fb_idx: [::std::os::raw::c_int; 5usize], pub gld_fb_idx: [::std::os::raw::c_int; 5usize], pub alt_fb_idx: [::std::os::raw::c_int; 5usize], pub update_buffer_slot: [::std::os::raw::c_int; 5usize], pub update_last: [::std::os::raw::c_int; 5usize], pub update_golden: [::std::os::raw::c_int; 5usize], pub update_alt_ref: [::std::os::raw::c_int; 5usize], pub reference_last: [::std::os::raw::c_int; 5usize], pub reference_golden: [::std::os::raw::c_int; 5usize], pub reference_alt_ref: [::std::os::raw::c_int; 5usize], pub duration: [i64; 5usize], } pub type vpx_svc_ref_frame_config_t = vpx_svc_ref_frame_config; pub const SVC_LAYER_DROP_MODE_CONSTRAINED_LAYER_DROP: SVC_LAYER_DROP_MODE = 0; pub const SVC_LAYER_DROP_MODE_LAYER_DROP: SVC_LAYER_DROP_MODE = 1; pub const SVC_LAYER_DROP_MODE_FULL_SUPERFRAME_DROP: SVC_LAYER_DROP_MODE = 2; pub const SVC_LAYER_DROP_MODE_CONSTRAINED_FROM_ABOVE_DROP: SVC_LAYER_DROP_MODE = 3; pub type SVC_LAYER_DROP_MODE = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_svc_frame_drop { pub framedrop_thresh: [::std::os::raw::c_int; 5usize], pub framedrop_mode: SVC_LAYER_DROP_MODE, pub max_consec_drop: ::std::os::raw::c_int, } pub type vpx_svc_frame_drop_t = vpx_svc_frame_drop; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_svc_spatial_layer_sync { pub spatial_layer_sync: [::std::os::raw::c_int; 5usize], pub base_layer_intra_only: ::std::os::raw::c_int, } pub type vpx_svc_spatial_layer_sync_t = vpx_svc_spatial_layer_sync; extern "C" { pub static mut vpx_codec_vp8_dx_algo: vpx_codec_iface_t; } extern "C" { pub fn vpx_codec_vp8_dx() -> *mut vpx_codec_iface_t; } extern "C" { pub static mut vpx_codec_vp9_dx_algo: vpx_codec_iface_t; } extern "C" { pub fn vpx_codec_vp9_dx() -> *mut vpx_codec_iface_t; } impl vp8_dec_control_id { pub const VP8D_SET_DECRYPTOR: vp8_dec_control_id = vp8_dec_control_id::VPXD_SET_DECRYPTOR; } #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum vp8_dec_control_id { VP8D_GET_LAST_REF_UPDATES = 256, VP8D_GET_FRAME_CORRUPTED = 257, VP8D_GET_LAST_REF_USED = 258, VPXD_SET_DECRYPTOR = 259, VP9D_GET_FRAME_SIZE = 260, VP9D_GET_DISPLAY_SIZE = 261, VP9D_GET_BIT_DEPTH = 262, VP9_SET_BYTE_ALIGNMENT = 263, VP9_INVERT_TILE_DECODE_ORDER = 264, VP9_SET_SKIP_LOOP_FILTER = 265, VP9_DECODE_SVC_SPATIAL_LAYER = 266, VPXD_GET_LAST_QUANTIZER = 267, VP9D_SET_ROW_MT = 268, VP9D_SET_LOOP_FILTER_OPT = 269, VP8_DECODER_CTRL_ID_MAX = 270, } pub type vpx_decrypt_cb = ::std::option::Option< unsafe extern "C" fn( decrypt_state: *mut ::std::os::raw::c_void, input: *const ::std::os::raw::c_uchar, output: *mut ::std::os::raw::c_uchar, count: ::std::os::raw::c_int, ), >; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_decrypt_init { pub decrypt_cb: vpx_decrypt_cb, pub decrypt_state: *mut ::std::os::raw::c_void, } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_codec_frame_buffer { pub data: *mut u8, pub size: size_t, pub priv_: *mut ::std::os::raw::c_void, } pub type vpx_codec_frame_buffer_t = vpx_codec_frame_buffer; pub type vpx_get_frame_buffer_cb_fn_t = ::std::option::Option< unsafe extern "C" fn( priv_: *mut ::std::os::raw::c_void, min_size: size_t, fb: *mut vpx_codec_frame_buffer_t, ) -> ::std::os::raw::c_int, >; pub type vpx_release_frame_buffer_cb_fn_t = ::std::option::Option< unsafe extern "C" fn( priv_: *mut ::std::os::raw::c_void, fb: *mut vpx_codec_frame_buffer_t, ) -> ::std::os::raw::c_int, >; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_codec_stream_info { pub sz: ::std::os::raw::c_uint, pub w: ::std::os::raw::c_uint, pub h: ::std::os::raw::c_uint, pub is_kf: ::std::os::raw::c_uint, } pub type vpx_codec_stream_info_t = vpx_codec_stream_info; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vpx_codec_dec_cfg { pub threads: ::std::os::raw::c_uint, pub w: ::std::os::raw::c_uint, pub h: ::std::os::raw::c_uint, } pub type vpx_codec_dec_cfg_t = vpx_codec_dec_cfg; extern "C" { 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: ::std::os::raw::c_int, ) -> vpx_codec_err_t; } extern "C" { pub fn vpx_codec_peek_stream_info( iface: *mut vpx_codec_iface_t, data: *const u8, data_sz: ::std::os::raw::c_uint, si: *mut vpx_codec_stream_info_t, ) -> vpx_codec_err_t; } extern "C" { pub fn vpx_codec_get_stream_info( ctx: *mut vpx_codec_ctx_t, si: *mut vpx_codec_stream_info_t, ) -> vpx_codec_err_t; } extern "C" { pub fn vpx_codec_decode( ctx: *mut vpx_codec_ctx_t, data: *const u8, data_sz: ::std::os::raw::c_uint, user_priv: *mut ::std::os::raw::c_void, deadline: ::std::os::raw::c_long, ) -> vpx_codec_err_t; } extern "C" { pub fn vpx_codec_get_frame( ctx: *mut vpx_codec_ctx_t, iter: *mut vpx_codec_iter_t, ) -> *mut vpx_image_t; } pub type vpx_codec_put_frame_cb_fn_t = ::std::option::Option< unsafe extern "C" fn(user_priv: *mut ::std::os::raw::c_void, img: *const vpx_image_t), >; extern "C" { 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 ::std::os::raw::c_void, ) -> vpx_codec_err_t; } pub type vpx_codec_put_slice_cb_fn_t = ::std::option::Option< unsafe extern "C" fn( user_priv: *mut ::std::os::raw::c_void, img: *const vpx_image_t, valid: *const vpx_image_rect_t, update: *const vpx_image_rect_t, ), >; extern "C" { 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 ::std::os::raw::c_void, ) -> vpx_codec_err_t; } extern "C" { 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 ::std::os::raw::c_void, ) -> vpx_codec_err_t; }