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
use libc::{c_int, c_uint, c_char, int64_t};
use super::rational::AVRational;

pub const AV_NOPTS_VALUE: int64_t    = 0x8000000000000000u64 as int64_t;
pub const AV_TIME_BASE:   int64_t    = 1000000;
pub const AV_TIME_BASE_Q: AVRational = AVRational { num: 1, den: AV_TIME_BASE as c_int };

pub const FF_LAMBDA_SHIFT: c_int = 7;
pub const FF_LAMBDA_SCALE: c_int = 1 << FF_LAMBDA_SHIFT;
pub const FF_QP2LAMBDA:    c_int = 118;
pub const FF_LAMBDA_MAX:   c_int = 256 * 128 - 1;

#[derive(Eq, PartialEq, Copy, Clone, Debug)]
#[repr(C)]
pub enum AVMediaType {
	AVMEDIA_TYPE_UNKNOWN = -1,
	AVMEDIA_TYPE_VIDEO,
	AVMEDIA_TYPE_AUDIO,
	AVMEDIA_TYPE_DATA,
	AVMEDIA_TYPE_SUBTITLE,
	AVMEDIA_TYPE_ATTACHMENT,
	AVMEDIA_TYPE_NB
}

#[derive(Eq, PartialEq, Copy, Clone, Debug)]
#[repr(C)]
pub enum AVPictureType {
	AV_PICTURE_TYPE_NONE = 0,
	AV_PICTURE_TYPE_I,
	AV_PICTURE_TYPE_P,
	AV_PICTURE_TYPE_B,
	AV_PICTURE_TYPE_S,
	AV_PICTURE_TYPE_SI,
	AV_PICTURE_TYPE_SP,
	AV_PICTURE_TYPE_BI,
}

extern {
	pub fn av_version_info() -> *const c_char;

	pub fn avutil_version() -> c_uint;
	pub fn avutil_configuration() -> *const c_char;
	pub fn avutil_license() -> *const c_char;

	pub fn av_get_time_base_q() -> AVRational;

	pub fn av_get_media_type_string(media_type: AVMediaType) -> *const c_char;
	pub fn av_get_picture_type_char(pict_type: AVPictureType) -> c_char;
}