1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#![allow(non_snake_case)]

extern crate libc;
extern crate vorbis_sys;

#[repr(C)]
pub struct ovectl_ratemanage_arg {
    pub management_active: libc::c_int,
    pub bitrate_hard_min: libc::c_long,
    pub bitrate_hard_max: libc::c_long,
    pub bitrate_hard_window: libc::c_double,
    pub bitrate_av_lo: libc::c_long,
    pub bitrate_av_hi: libc::c_long,
    pub bitrate_av_window: libc::c_double,
    pub bitrate_av_window_center: libc::c_double
}
#[repr(C)]
pub struct ovectl_ratemanage2_arg {
    pub management_active: libc::c_int,
    pub bitrate_limit_min_kbps: libc::c_long,
    pub bitrate_limit_max_kbps: libc::c_long,
    pub bitrate_limit_reservoir_bits: libc::c_long,
    pub bitrate_limit_reservoir_bias: libc::c_double,
    pub bitrate_average_kbps: libc::c_long,
    pub bitrate_average_damping: libc::c_double
}

pub const OV_ECTL_RATEMANAGE2_GET: libc::c_int = 0x14;
pub const OV_ECTL_RATEMANAGE2_SET: libc::c_int = 0x15;
pub const OV_ECTL_LOWPASS_GET: libc::c_int = 0x20;
pub const OV_ECTL_LOWPASS_SET: libc::c_int = 0x21;
pub const OV_ECTL_IBLOCK_GET: libc::c_int = 0x30;
pub const OV_ECTL_IBLOCK_SET: libc::c_int = 0x31;
pub const OV_ECTL_COUPLING_GET: libc::c_int = 0x40;
pub const OV_ECTL_COUPLING_SET: libc::c_int = 0x41;
pub const OV_ECTL_RATEMANAGE_GET: libc::c_int = 0x10;
pub const OV_ECTL_RATEMANAGE_SET: libc::c_int = 0x11;
pub const OV_ECTL_RATEMANAGE_AVG: libc::c_int = 0x12;
pub const OV_ECTL_RATEMANAGE_HARD: libc::c_int = 0x13;

extern {
    pub fn vorbis_encode_init(vi: *mut vorbis_sys::vorbis_info, channels: libc::c_long,
        rate: libc::c_long, max_bitrate: libc::c_long,
        nominal_bitrate: libc::c_long, min_bitrate: libc::c_long) -> libc::c_int;
    pub fn vorbis_encode_setup_managed(vi: *mut vorbis_sys::vorbis_info, channels: libc::c_long,
        rate: libc::c_long, max_bitrate: libc::c_long,
        nominal_bitrate: libc::c_long, min_bitrate: libc::c_long) -> libc::c_int;
    pub fn vorbis_encode_setup_vbr(vi: *mut vorbis_sys::vorbis_info, channels: libc::c_long,
        rate: libc::c_long, quality: libc::c_float) -> libc::c_int;
    pub fn vorbis_encode_init_vbr(vi: *mut vorbis_sys::vorbis_info, channels: libc::c_long,
        rate: libc::c_long, base_quality: libc::c_float) -> libc::c_int;
    pub fn vorbis_encode_setup_init(vi: *mut vorbis_sys::vorbis_info) -> libc::c_int;
    pub fn vorbis_encode_ctl(vi: *mut vorbis_sys::vorbis_info, number: libc::c_int, arg: *mut libc::c_void) -> libc::c_int;
}