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
use libc::{c_int, int64_t, uint64_t}; use super::rational::AVRational; #[derive(Eq, PartialEq, Copy, Clone, Debug)] #[repr(C)] pub enum AVRounding { AV_ROUND_ZERO = 0, AV_ROUND_INF = 1, AV_ROUND_DOWN = 2, AV_ROUND_UP = 3, AV_ROUND_NEAR_INF = 5, AV_ROUND_PASS_MINMAX = 8192, } extern { pub fn av_gcd(a: int64_t, b: int64_t) -> int64_t; pub fn av_rescale(a: int64_t, b: int64_t, c: int64_t) -> int64_t; pub fn av_rescale_rnd(a: int64_t, b: int64_t, c: int64_t, r: AVRounding) -> int64_t; pub fn av_rescale_q(a: int64_t, bq: AVRational, cq: AVRational) -> int64_t; pub fn av_rescale_q_rnd(a: int64_t, bq: AVRational, cq: AVRational, r: AVRounding) -> int64_t; pub fn av_compare_ts(ts_a: int64_t, tb_a: AVRational, ts_b: int64_t, tb_b: AVRational) -> c_int; pub fn av_compare_mod(a: uint64_t, b: uint64_t, m: uint64_t) -> int64_t; pub fn av_rescale_delta(in_tb: AVRational, in_ts: int64_t, fs_tb: AVRational, duration: c_int, last: *mut int64_t, out_tb: AVRational) -> int64_t; pub fn av_add_stable(ts_tb: AVRational, ts: int64_t, inc_tb: AVRational, inc: int64_t) -> int64_t; }