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, int64_t}; use ::avfilter::filter::AVFilterContext; use ::avutil::{AVFrame, AVPixelFormat, AVSampleFormat, AVRational}; pub const AV_BUFFERSINK_FLAG_PEEK: c_int = 1; pub const AV_BUFFERSINK_FLAG_NO_REQUEST: c_int = 2; #[repr(C)] pub struct AVBufferSinkParams { pub pixel_fmts: *const AVPixelFormat, } #[repr(C)] pub struct AVABufferSinkParams { pub sample_fmts: *const AVSampleFormat, pub channel_layouts: *const int64_t, pub channel_counts: *const c_int, pub all_channel_counts: c_int, pub sample_rates: *mut c_int, } extern { pub fn av_buffersink_get_frame_flags(ctx: *mut AVFilterContext, frame: *mut AVFrame, flags: c_int) -> c_int; pub fn av_buffersink_params_alloc() -> *mut AVBufferSinkParams; pub fn av_abuffersink_params_alloc() -> *mut AVABufferSinkParams; pub fn av_buffersink_set_frame_size(ctx: *mut AVFilterContext, frame_size: c_uint); pub fn av_buffersink_get_frame_rate(ctx: *mut AVFilterContext) -> AVRational; pub fn av_buffersink_get_frame(ctx: *mut AVFilterContext, frame: *mut AVFrame) -> c_int; pub fn av_buffersink_get_samples(ctx: *mut AVFilterContext, frame: *mut AVFrame, nb_samples: c_int) -> c_int; }