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
use libc::{c_int, c_uint, uint8_t};
use super::super::avutil::{AVPixelFormat, AVRational};

pub const DV_PROFILE_BYTES: c_int = 6 * 80;

#[derive(Debug)]
#[repr(C)]
pub struct AVDVProfile {
	pub dsf: c_int,
	pub video_type: c_int,
	pub frame_size: c_int,
	pub difseg_size: c_int,
	pub n_difchan: c_int,
	pub time_base: AVRational,
	pub ltc_divisor: c_int,
	pub height: c_int,
	pub width: c_int,
	pub sar: [AVRational; 2],
	pub pix_fmt: AVPixelFormat,
	pub bpm: c_int,
	pub block_sizes: *const uint8_t,
	pub audio_stride: c_int,
	pub audio_min_samples: [c_int; 3],
	pub audio_samples_dist: [c_int; 5],
	pub audio_shuffle: [*const uint8_t; 9],
}

extern {
	pub fn av_dv_frame_profile(sys: *const AVDVProfile, frame: *const uint8_t, buf_size: c_uint) -> *const AVDVProfile;
	pub fn av_dv_codec_profile(width: c_int, height: c_int, pix_fmt: AVPixelFormat) -> *const AVDVProfile;
	pub fn av_dv_codec_profile2(width: c_int, height: c_int, pix_fmt: AVPixelFormat, frame_rate: AVRational) -> AVDVProfile;
}