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
use libc::{c_void, c_char, c_int, c_uint, uint32_t}; use super::rational::AVRational; pub const AV_TIMECODE_FLAG_DROPFRAME: uint32_t = 1 << 0; pub const AV_TIMECODE_FLAG_24HOURSMAX: uint32_t = 1 << 1; pub const AV_TIMECODE_FLAG_ALLOWNEGATIVE: uint32_t = 1 << 2; #[derive(Debug)] #[repr(C)] pub struct AVTimecode { pub start: c_int, pub flags: uint32_t, pub rate: AVRational, pub fps: c_uint, } extern { pub fn av_timecode_adjust_ntsc_framenum2(framenum: c_int, fps: c_int) -> c_int; pub fn av_timecode_get_smpte_from_framenum(tc: *const AVTimecode, framenum: c_int) -> uint32_t; pub fn av_timecode_make_string(tc: *const AVTimecode, buf: *mut c_char, framenum: c_int) -> *mut c_char; pub fn av_timecode_make_smpte_tc_string(buf: *mut c_char, tcsmpte: uint32_t, prevent_df: c_int) -> *mut c_char; pub fn av_timecode_make_mpeg_tc_string(buf: *mut c_char, tc25bit: uint32_t) -> *mut c_char; pub fn av_timecode_init(tc: *mut AVTimecode, rate: AVRational, flags: c_int, frame_start: c_int, log_ctx: *mut c_void) -> c_int; pub fn av_timecode_init_from_string(tc: *mut AVTimecode, rate: AVRational, string: *const c_char, log_ctx: *mut c_void) -> c_int; pub fn av_timecode_check_frame_rate(rate: AVRational) -> c_int; }