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_TPL_ABI_VERSION: u32 = 4;
pub const VPX_EXT_RATECTRL_ABI_VERSION: u32 = 10;
pub const VPX_RC_MAX_STATIC_GF_GROUP_LENGTH: u32 = 250;
pub const VPX_RC_MAX_REF_FRAMES: u32 = 4;
pub const VPX_DEFAULT_Q: i32 = -1;
pub const VPX_DEFAULT_RDMULT: i32 = -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 = 37;
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;
#[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: *const vpx_codec_iface,
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;
#[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;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VpxTplBlockStats {
pub row: i16,
pub col: i16,
pub intra_cost: i64,
pub inter_cost: i64,
pub mv_r: i16,
pub mv_c: i16,
pub srcrf_rate: i64,
pub srcrf_dist: i64,
pub inter_pred_err: i64,
pub intra_pred_err: i64,
pub ref_frame_index: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VpxTplFrameStats {
pub frame_width: ::std::os::raw::c_int,
pub frame_height: ::std::os::raw::c_int,
pub num_blocks: ::std::os::raw::c_int,
pub block_stats_list: *mut VpxTplBlockStats,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VpxTplGopStats {
pub size: ::std::os::raw::c_int,
pub frame_stats_list: *mut VpxTplFrameStats,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum vpx_rc_type {
VPX_RC_NONE = 0,
VPX_RC_QP = 1,
VPX_RC_GOP = 2,
VPX_RC_RDMULT = 4,
VPX_RC_GOP_QP = 3,
VPX_RC_GOP_QP_RDMULT = 7,
}
pub use self::vpx_rc_type as vpx_rc_type_t;
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum vpx_ext_rc_mode {
VPX_RC_QMODE = 0,
VPX_RC_VBR = 1,
VPX_RC_CQ = 2,
}
pub use self::vpx_ext_rc_mode as vpx_ext_rc_mode_t;
#[repr(i32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum vpx_rc_frame_update_type {
VPX_RC_INVALID_UPDATE_TYPE = -1,
VPX_RC_KF_UPDATE = 0,
VPX_RC_LF_UPDATE = 1,
VPX_RC_GF_UPDATE = 2,
VPX_RC_ARF_UPDATE = 3,
VPX_RC_OVERLAY_UPDATE = 4,
VPX_RC_MID_OVERLAY_UPDATE = 5,
VPX_RC_USE_BUF_FRAME = 6,
}
pub use self::vpx_rc_frame_update_type as vpx_rc_frame_update_type_t;
#[repr(i32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum vpx_rc_ref_name {
VPX_RC_INVALID_REF_FRAME = -1,
VPX_RC_INTRA_FRAME = 0,
VPX_RC_LAST_FRAME = 1,
VPX_RC_GOLDEN_FRAME = 2,
VPX_RC_ALTREF_FRAME = 3,
}
pub use self::vpx_rc_ref_name as vpx_rc_ref_name_t;
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 rdmult: ::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 gop_size: ::std::os::raw::c_int,
pub use_alt_ref: ::std::os::raw::c_int,
}
pub type vpx_rc_encodeframe_info_t = vpx_rc_encodeframe_info;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct vpx_rc_encodeframe_result {
pub bit_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 new_mv_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 max_gf_interval: ::std::os::raw::c_int,
pub min_gf_interval: ::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 rc_mode: vpx_ext_rc_mode_t,
pub overshoot_percent: ::std::os::raw::c_int,
pub undershoot_percent: ::std::os::raw::c_int,
pub min_base_q_index: ::std::os::raw::c_int,
pub max_base_q_index: ::std::os::raw::c_int,
pub base_qp: ::std::os::raw::c_int,
}
pub type vpx_rc_config_t = vpx_rc_config;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct vpx_rc_ref_frame {
pub index: [::std::os::raw::c_int; 4usize],
pub name: [vpx_rc_ref_name_t; 4usize],
}
pub type vpx_rc_ref_frame_t = vpx_rc_ref_frame;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct vpx_rc_gop_decision {
pub gop_coding_frames: ::std::os::raw::c_int,
pub use_alt_ref: ::std::os::raw::c_int,
pub use_key_frame: ::std::os::raw::c_int,
pub update_type: [vpx_rc_frame_update_type_t; 252usize],
pub update_ref_index: [::std::os::raw::c_int; 252usize],
pub ref_frame_list: [vpx_rc_ref_frame_t; 252usize],
}
pub type vpx_rc_gop_decision_t = vpx_rc_gop_decision;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct vpx_rc_key_frame_decision {
pub key_frame_show_index: ::std::os::raw::c_int,
pub key_frame_group_size: ::std::os::raw::c_int,
}
pub type vpx_rc_key_frame_decision_t = vpx_rc_key_frame_decision;
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_ptr: *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_send_tpl_gop_stats_cb_fn_t =
::std::option::Option<unsafe extern "C" fn(rate_ctrl_model: vpx_rc_model_t, tpl_gop_stats: *const VpxTplGopStats) -> 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,
frame_gop_index: ::std::os::raw::c_int,
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_get_key_frame_decision_cb_fn_t = ::std::option::Option<
unsafe extern "C" fn(rate_ctrl_model: vpx_rc_model_t, key_frame_decision: *mut vpx_rc_key_frame_decision_t) -> vpx_rc_status_t,
>;
pub type vpx_rc_get_gop_decision_cb_fn_t =
::std::option::Option<unsafe extern "C" fn(rate_ctrl_model: vpx_rc_model_t, gop_decision: *mut vpx_rc_gop_decision_t) -> vpx_rc_status_t>;
pub type vpx_rc_get_frame_rdmult_cb_fn_t = ::std::option::Option<
unsafe extern "C" fn(
rate_ctrl_model: vpx_rc_model_t,
frame_info: *const vpx_rc_encodeframe_info_t,
rdmult: *mut ::std::os::raw::c_int,
) -> vpx_rc_status_t,
>;
pub type vpx_rc_delete_model_cb_fn_t = ::std::option::Option<unsafe extern "C" fn(rate_ctrl_model: vpx_rc_model_t) -> vpx_rc_status_t>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct vpx_rc_funcs {
pub rc_type: vpx_rc_type_t,
pub create_model: vpx_rc_create_model_cb_fn_t,
pub send_firstpass_stats: vpx_rc_send_firstpass_stats_cb_fn_t,
pub send_tpl_gop_stats: vpx_rc_send_tpl_gop_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 get_key_frame_decision: vpx_rc_get_key_frame_decision_cb_fn_t,
pub get_gop_decision: vpx_rc_get_gop_decision_cb_fn_t,
pub get_frame_rdmult: vpx_rc_get_frame_rdmult_cb_fn_t,
pub delete_model: vpx_rc_delete_model_cb_fn_t,
pub rate_ctrl_log_path: *const ::std::os::raw::c_char,
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: usize,
}
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: usize,
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;
pub type vpx_enc_deadline_t = ::std::os::raw::c_ulong;
#[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,
VP9E_SET_QUANTIZER_ONE_PASS = 75,
VP9E_SET_KEY_FRAME_FILTERING = 76,
}
#[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;
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum SVC_LAYER_DROP_MODE {
CONSTRAINED_LAYER_DROP = 0,
LAYER_DROP = 1,
FULL_SUPERFRAME_DROP = 2,
CONSTRAINED_FROM_ABOVE_DROP = 3,
}
#[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;
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: usize,
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: usize, 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;
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)>;
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,
),
>;
unsafe 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;
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;
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;
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() -> ::std::os::raw::c_int;
pub fn vpx_codec_version_str() -> *const ::std::os::raw::c_char;
pub fn vpx_codec_version_extra_str() -> *const ::std::os::raw::c_char;
pub fn vpx_codec_build_config() -> *const ::std::os::raw::c_char;
pub fn vpx_codec_iface_name(iface: *const vpx_codec_iface) -> *const ::std::os::raw::c_char;
pub fn vpx_codec_err_to_string(err: vpx_codec_err_t) -> *const ::std::os::raw::c_char;
pub fn vpx_codec_error(ctx: *const vpx_codec_ctx_t) -> *const ::std::os::raw::c_char;
pub fn vpx_codec_error_detail(ctx: *const vpx_codec_ctx_t) -> *const ::std::os::raw::c_char;
pub fn vpx_codec_destroy(ctx: *mut vpx_codec_ctx_t) -> vpx_codec_err_t;
pub fn vpx_codec_get_caps(iface: *const vpx_codec_iface) -> vpx_codec_caps_t;
pub fn vpx_codec_control_(ctx: *mut vpx_codec_ctx_t, ctrl_id: ::std::os::raw::c_int, ...) -> vpx_codec_err_t;
pub fn vpx_codec_enc_init_ver(
ctx: *mut vpx_codec_ctx_t,
iface: *const vpx_codec_iface,
cfg: *const vpx_codec_enc_cfg_t,
flags: vpx_codec_flags_t,
ver: ::std::os::raw::c_int,
) -> vpx_codec_err_t;
pub fn vpx_codec_enc_init_multi_ver(
ctx: *mut vpx_codec_ctx_t,
iface: *const vpx_codec_iface,
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;
pub fn vpx_codec_enc_config_default(
iface: *const vpx_codec_iface,
cfg: *mut vpx_codec_enc_cfg_t,
usage: ::std::os::raw::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: ::std::os::raw::c_ulong,
flags: vpx_enc_frame_flags_t,
deadline: vpx_enc_deadline_t,
) -> 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: ::std::os::raw::c_uint,
pad_after: ::std::os::raw::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() -> *const vpx_codec_iface;
pub fn vpx_codec_vp9_cx() -> *const vpx_codec_iface;
pub fn vpx_codec_vp8_dx() -> *const vpx_codec_iface;
pub fn vpx_codec_vp9_dx() -> *const vpx_codec_iface;
pub fn vpx_codec_dec_init_ver(
ctx: *mut vpx_codec_ctx_t,
iface: *const vpx_codec_iface,
cfg: *const vpx_codec_dec_cfg_t,
flags: vpx_codec_flags_t,
ver: ::std::os::raw::c_int,
) -> vpx_codec_err_t;
pub fn vpx_codec_peek_stream_info(
iface: *const vpx_codec_iface,
data: *const u8,
data_sz: ::std::os::raw::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 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;
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 ::std::os::raw::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 ::std::os::raw::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 ::std::os::raw::c_void,
) -> vpx_codec_err_t;
}