Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
877 lines (875 sloc) 35.9 KB
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![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: `<pointer>`, 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<extern "C" fn(pkt: *mut vpx_codec_cx_pkt_t,
user_data: *mut ::libc::c_void)
-> ()>;
#[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<extern "C" fn(decrypt_state: *mut ::libc::c_void,
input: *const ::libc::c_uchar,
output: *mut ::libc::c_uchar,
count: ::libc::c_int) -> ()>;
#[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<extern "C" fn(_priv: *mut ::libc::c_void,
min_size: size_t,
fb: *mut vpx_codec_frame_buffer_t)
-> ::libc::c_int>;
pub type vpx_release_frame_buffer_cb_fn_t =
::std::option::Option<extern "C" fn(_priv: *mut ::libc::c_void,
fb: *mut vpx_codec_frame_buffer_t)
-> ::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<extern "C" fn(user_priv: *mut ::libc::c_void,
img: *const vpx_image_t) -> ()>;
pub type vpx_codec_put_slice_cb_fn_t =
::std::option::Option<extern "C" fn(user_priv: *mut ::libc::c_void,
img: *const vpx_image_t,
valid: *const vpx_image_rect_t,
update: *const vpx_image_rect_t)
-> ()>;
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;
}