mirror of
https://github.com/encounter/rust-ffmpeg-zmwangx.git
synced 2026-07-10 21:18:40 -07:00
*: use bindgen to generate most bindings
* Autogenerated bindings with bindgen implementation. * Run bindgen against system ffmpeg if available or run against built ffmpeg * Use bindgen from git for the time being * Format code with rustfmt * Remove no_unstable_rust flag, as bindgen switched its default
This commit is contained in:
committed by
Till Höppner
parent
7e6b013e15
commit
79fa18e5bd
+4
-2
@@ -15,9 +15,11 @@ keywords = ["audio", "video"]
|
||||
libc = "0.2"
|
||||
|
||||
[build-dependencies]
|
||||
num_cpus = "1"
|
||||
gcc = "0.3"
|
||||
num_cpus = "1"
|
||||
gcc = "0.3"
|
||||
pkg-config = "0.3"
|
||||
bindgen = { git = "https://github.com/servo/rust-bindgen.git" }
|
||||
regex = "0.2"
|
||||
|
||||
[features]
|
||||
default = ["avcodec", "avdevice", "avfilter", "avformat", "avresample", "swresample", "swscale"]
|
||||
|
||||
+811
-414
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,32 +0,0 @@
|
||||
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;
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
use libc::{c_void, c_uint, uint64_t};
|
||||
|
||||
pub const FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG: uint64_t = 1;
|
||||
pub const FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO: uint64_t = 2;
|
||||
|
||||
#[derive(Debug)]
|
||||
#[repr(C)]
|
||||
pub struct dxva_context {
|
||||
pub decoder: *mut c_void,
|
||||
pub cfg: *const c_void,
|
||||
pub surface_count: c_uint,
|
||||
pub surface: *mut c_void,
|
||||
pub workaround: uint64_t,
|
||||
pub report_id: c_uint,
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
use libc::{c_void, c_int, c_float, c_double};
|
||||
|
||||
pub type FFTSample = c_float;
|
||||
|
||||
#[derive(Debug)]
|
||||
#[repr(C)]
|
||||
pub struct FFTComplex {
|
||||
pub re: FFTSample,
|
||||
pub im: FFTSample,
|
||||
}
|
||||
|
||||
pub type FFTContext = c_void;
|
||||
|
||||
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
||||
#[repr(C)]
|
||||
pub enum RDFTransformType {
|
||||
DFT_R2C,
|
||||
IDFT_C2R,
|
||||
IDFT_R2C,
|
||||
DFT_C2R,
|
||||
}
|
||||
|
||||
pub type RDFTContext = c_void;
|
||||
|
||||
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
||||
#[repr(C)]
|
||||
pub enum DCTTransformType {
|
||||
DCT_II = 0,
|
||||
DCT_III,
|
||||
DCT_I,
|
||||
DST_I,
|
||||
}
|
||||
|
||||
pub type DCTContext = c_void;
|
||||
|
||||
extern {
|
||||
pub fn av_fft_init(nbits: c_int, inverse: c_int) -> *mut FFTContext;
|
||||
pub fn av_fft_permute(s: *mut FFTContext, z: *mut FFTComplex);
|
||||
pub fn av_fft_calc(s: *mut FFTContext, z: *mut FFTComplex);
|
||||
pub fn av_fft_end(s: *mut FFTContext);
|
||||
|
||||
pub fn av_mdct_init(nbits: c_int, inverse: c_int, scale: c_double) -> *mut FFTContext;
|
||||
pub fn av_imdct_calc(s: *mut FFTContext, output: *mut FFTSample, input: *const FFTSample);
|
||||
pub fn av_imdct_half(s: *mut FFTContext, output: *mut FFTSample, input: *const FFTSample);
|
||||
pub fn av_mdct_calc(s: *mut FFTContext, output: *mut FFTSample, input: *const FFTSample);
|
||||
pub fn av_mdct_end(s: *mut FFTContext);
|
||||
|
||||
pub fn av_rdft_init(nbits: c_int, trans: RDFTransformType) -> *mut RDFTContext;
|
||||
pub fn av_rdft_calc(s: *mut RDFTContext, data: *mut FFTSample);
|
||||
pub fn av_rdft_end(s: *mut RDFTContext);
|
||||
|
||||
pub fn av_dct_init(nbits: c_int, kind: DCTTransformType) -> *mut DCTContext;
|
||||
pub fn av_dct_calc(s: *mut DCTContext, data: *mut FFTSample);
|
||||
pub fn av_dct_end(s: *mut DCTContext);
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
mod codec;
|
||||
pub use self::codec::*;
|
||||
pub use self::codec::AVCodecID::*;
|
||||
pub use self::codec::Motion_Est_ID::*;
|
||||
pub use self::codec::AVDiscard::*;
|
||||
pub use self::codec::AVAudioServiceType::*;
|
||||
pub use self::codec::AVPacketSideDataType::*;
|
||||
pub use self::codec::AVFieldOrder::*;
|
||||
pub use self::codec::AVSubtitleType::*;
|
||||
pub use self::codec::AVPictureStructure::*;
|
||||
pub use self::codec::AVLockOp::*;
|
||||
|
||||
mod fft;
|
||||
pub use self::fft::*;
|
||||
pub use self::fft::RDFTransformType::*;
|
||||
pub use self::fft::DCTTransformType::*;
|
||||
|
||||
mod dv_profile;
|
||||
pub use self::dv_profile::*;
|
||||
|
||||
mod dxva2;
|
||||
pub use self::dxva2::*;
|
||||
|
||||
mod qsv;
|
||||
pub use self::qsv::*;
|
||||
|
||||
mod vaapi;
|
||||
pub use self::vaapi::*;
|
||||
|
||||
mod vda;
|
||||
pub use self::vda::*;
|
||||
|
||||
mod vobis_parser;
|
||||
pub use self::vobis_parser::*;
|
||||
|
||||
mod xvmc;
|
||||
pub use self::xvmc::*;
|
||||
|
||||
#[cfg_attr(feature = "static", link(name = "avcodec", kind = "static"))]
|
||||
#[cfg_attr(not(feature = "static"), link(name = "avcodec"))]
|
||||
extern { }
|
||||
@@ -1,14 +0,0 @@
|
||||
use libc::{c_void, c_int};
|
||||
|
||||
#[derive(Debug)]
|
||||
#[repr(C)]
|
||||
pub struct AVQSVContext {
|
||||
pub session: *mut c_void,
|
||||
pub iopattern: c_int,
|
||||
pub ext_buffers: *mut *mut c_void,
|
||||
pub nb_ext_buffers: c_int,
|
||||
}
|
||||
|
||||
extern {
|
||||
pub fn av_qsv_alloc_context() -> *mut AVQSVContext;
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
use libc::{c_void, c_uint, uint8_t, uint32_t};
|
||||
|
||||
#[derive(Debug)]
|
||||
#[repr(C)]
|
||||
pub struct vaapi_context {
|
||||
pub display: *mut c_void,
|
||||
pub config_id: uint32_t,
|
||||
pub context_id: uint32_t,
|
||||
#[cfg(feature = "ff_api_vaapi_context")]
|
||||
pub pic_param_buf_id: uint32_t,
|
||||
#[cfg(feature = "ff_api_vaapi_context")]
|
||||
pub iq_matrix_buf_id: uint32_t,
|
||||
#[cfg(feature = "ff_api_vaapi_context")]
|
||||
pub bitplane_buf_id: uint32_t,
|
||||
#[cfg(feature = "ff_api_vaapi_context")]
|
||||
pub slice_buf_ids: *mut uint32_t,
|
||||
#[cfg(feature = "ff_api_vaapi_context")]
|
||||
pub n_slice_buf_ids: c_uint,
|
||||
#[cfg(feature = "ff_api_vaapi_context")]
|
||||
pub slice_buf_ids_alloc: c_uint,
|
||||
#[cfg(feature = "ff_api_vaapi_context")]
|
||||
pub slice_params: *mut c_void,
|
||||
#[cfg(feature = "ff_api_vaapi_context")]
|
||||
pub slice_param_size: c_uint,
|
||||
#[cfg(feature = "ff_api_vaapi_context")]
|
||||
pub slice_params_alloc: c_uint,
|
||||
#[cfg(feature = "ff_api_vaapi_context")]
|
||||
pub slice_count: c_uint,
|
||||
#[cfg(feature = "ff_api_vaapi_context")]
|
||||
pub slice_data: *const uint8_t,
|
||||
#[cfg(feature = "ff_api_vaapi_context")]
|
||||
pub slice_data_size: uint32_t,
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
use libc::{c_void, c_int, uint8_t, uint32_t};
|
||||
use super::codec::AVCodecContext;
|
||||
|
||||
#[derive(Debug)]
|
||||
#[repr(C)]
|
||||
pub struct vda_context {
|
||||
pub decoder: *mut c_void,
|
||||
pub cv_buffer: *mut c_void,
|
||||
pub use_sync_decoding: c_int,
|
||||
pub width: c_int,
|
||||
pub height: c_int,
|
||||
pub format: c_int,
|
||||
pub cv_pix_fmt_type: i32,
|
||||
pub priv_bitstream: *mut uint8_t,
|
||||
pub priv_bitstream_size: c_int,
|
||||
pub priv_allocated_size: c_int,
|
||||
pub use_ref_buffer: c_int,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AVVDAContext {
|
||||
pub decoder: *mut c_void,
|
||||
pub output_callback: extern fn(*mut c_void, *mut c_void, i32, uint32_t, *mut c_void),
|
||||
}
|
||||
|
||||
extern {
|
||||
pub fn ff_vda_create_decoder(vda_ctx: *mut vda_context, extradata: *mut uint8_t, extradata_size: c_int) -> c_int;
|
||||
pub fn ff_vda_destroy_decoder(vda_ctx: *mut vda_context) -> c_int;
|
||||
|
||||
pub fn av_vda_alloc_context() -> *mut AVVDAContext;
|
||||
pub fn av_vda_default_init(avctx: *mut AVCodecContext) -> c_int;
|
||||
pub fn av_vda_default_free(avctx: *mut AVCodecContext);
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
use libc::{c_void, c_int, uint8_t};
|
||||
|
||||
pub type AVVorbisParseContext = c_void;
|
||||
|
||||
pub const VORBIS_FLAG_HEADER: c_int = 0x00000001;
|
||||
pub const VORBIS_FLAG_COMMENT: c_int = 0x00000002;
|
||||
pub const VORBIS_FLAG_SETUP: c_int = 0x00000004;
|
||||
|
||||
extern {
|
||||
pub fn av_vorbis_parse_init(extradata: *const uint8_t, extradata_size: c_int) -> *mut AVVorbisParseContext;
|
||||
pub fn av_vorbis_parse_free(s: *mut *mut AVVorbisParseContext);
|
||||
pub fn av_vorbis_parse_frame_flags(s: *mut AVVorbisParseContext, buf: *const uint8_t, buf_size: c_int, flags: *mut c_int) -> c_int;
|
||||
pub fn av_vorbis_parse_frame(s: *mut AVVorbisParseContext, buf: *const uint8_t, buf_size: c_int) -> c_int;
|
||||
pub fn av_vorbis_parse_reset(s: *mut AVVorbisParseContext);
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
use libc::{c_void, c_short, c_int, c_uint};
|
||||
|
||||
pub const AV_XVMC_ID: c_int = 0x1DC711C0;
|
||||
|
||||
#[derive(Debug)]
|
||||
#[repr(C)]
|
||||
pub struct xvmc_pix_fmt {
|
||||
pub xvmc_id: c_int,
|
||||
pub data_blocks: *mut c_short,
|
||||
pub mv_blocks: *mut c_void,
|
||||
pub allocated_mv_blocks: c_int,
|
||||
pub allocated_data_blocks: c_int,
|
||||
pub idct: c_int,
|
||||
pub unsigned_intra: c_int,
|
||||
pub p_surface: *mut c_void,
|
||||
pub p_past_surface: *mut c_void,
|
||||
pub p_future_surface: *mut c_void,
|
||||
pub picture_structure: c_uint,
|
||||
pub flags: c_uint,
|
||||
pub start_mv_blocks_num: c_int,
|
||||
pub filled_mv_blocks_num: c_int,
|
||||
pub next_free_data_block_num: c_int,
|
||||
}
|
||||
@@ -1,106 +0,0 @@
|
||||
use libc::{c_void, c_char, c_int, c_uint, int64_t, size_t};
|
||||
use super::super::avutil::{AVClass, AVPixelFormat, AVSampleFormat, AVOption, AVDictionary, AVRational};
|
||||
use super::super::avcodec::{AVCodecID};
|
||||
use super::super::avformat::{AVFormatContext, AVInputFormat, AVOutputFormat};
|
||||
|
||||
#[derive(Debug)]
|
||||
#[repr(C)]
|
||||
pub struct AVDeviceRect {
|
||||
pub x: c_int,
|
||||
pub y: c_int,
|
||||
pub width: c_int,
|
||||
pub height: c_int,
|
||||
}
|
||||
|
||||
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
||||
#[repr(C)]
|
||||
pub enum AVAppToDevMessageType {
|
||||
AV_APP_TO_DEV_NONE = MKBETAG!(b'N', b'O', b'N', b'E'),
|
||||
AV_APP_TO_DEV_WINDOW_SIZE = MKBETAG!(b'G', b'E', b'O', b'M'),
|
||||
AV_APP_TO_DEV_WINDOW_REPAINT = MKBETAG!(b'R', b'E', b'P', b'A'),
|
||||
AV_APP_TO_DEV_PAUSE = MKBETAG!(b'P', b'A', b'U', b' '),
|
||||
AV_APP_TO_DEV_PLAY = MKBETAG!(b'P', b'L', b'A', b'Y'),
|
||||
AV_APP_TO_DEV_TOGGLE_PAUSE = MKBETAG!(b'P', b'A', b'U', b'T'),
|
||||
AV_APP_TO_DEV_SET_VOLUME = MKBETAG!(b'S', b'V', b'O', b'L'),
|
||||
AV_APP_TO_DEV_MUTE = MKBETAG!(b' ', b'M', b'U', b'T'),
|
||||
AV_APP_TO_DEV_UNMUTE = MKBETAG!(b'U', b'M', b'U', b'T'),
|
||||
AV_APP_TO_DEV_TOGGLE_MUTE = MKBETAG!(b'T', b'M', b'U', b'T'),
|
||||
AV_APP_TO_DEV_GET_VOLUME = MKBETAG!(b'G', b'V', b'O', b'L'),
|
||||
AV_APP_TO_DEV_GET_MUTE = MKBETAG!(b'G', b'M', b'U', b'T'),
|
||||
}
|
||||
|
||||
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
||||
#[repr(C)]
|
||||
pub enum AVDevToAppMessageType {
|
||||
AV_DEV_TO_APP_NONE = MKBETAG!(b'N', b'O', b'N', b'E'),
|
||||
AV_DEV_TO_APP_CREATE_WINDOW_BUFFER = MKBETAG!(b'B', b'C', b'R', b'E'),
|
||||
AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER = MKBETAG!(b'B', b'P', b'R', b'E'),
|
||||
AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER = MKBETAG!(b'B', b'D', b'I', b'S'),
|
||||
AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER = MKBETAG!(b'B', b'D', b'E', b'S'),
|
||||
AV_DEV_TO_APP_BUFFER_OVERFLOW = MKBETAG!(b'B', b'O', b'F', b'L'),
|
||||
AV_DEV_TO_APP_BUFFER_UNDERFLOW = MKBETAG!(b'B', b'U', b'F', b'L'),
|
||||
AV_DEV_TO_APP_BUFFER_READABLE = MKBETAG!(b'B', b'R', b'D', b' '),
|
||||
AV_DEV_TO_APP_BUFFER_WRITABLE = MKBETAG!(b'B', b'W', b'R', b' '),
|
||||
AV_DEV_TO_APP_MUTE_STATE_CHANGED = MKBETAG!(b'C', b'M', b'U', b'T'),
|
||||
AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED = MKBETAG!(b'C', b'V', b'O', b'L'),
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
#[repr(C)]
|
||||
pub struct AVDeviceCapabilitiesQuery {
|
||||
pub av_class: *const AVClass,
|
||||
pub device_context: *const AVFormatContext,
|
||||
pub codec: AVCodecID,
|
||||
pub sample_format: AVSampleFormat,
|
||||
pub pixel_format: AVPixelFormat,
|
||||
pub sample_rate: c_int,
|
||||
pub channels: c_int,
|
||||
pub channel_layout: int64_t,
|
||||
pub window_width: c_int,
|
||||
pub window_height: c_int,
|
||||
pub frame_width: c_int,
|
||||
pub frame_height: c_int,
|
||||
pub fps: AVRational,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
#[repr(C)]
|
||||
pub struct AVDeviceInfo {
|
||||
pub device_name: *mut c_char,
|
||||
pub device_description: *mut c_char,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
#[repr(C)]
|
||||
pub struct AVDeviceInfoList {
|
||||
pub devices: *mut *mut AVDeviceInfo,
|
||||
pub nb_devices: c_int,
|
||||
pub default_device: c_int,
|
||||
}
|
||||
|
||||
extern {
|
||||
pub static av_device_capabilities: *const AVOption;
|
||||
|
||||
pub fn avdevice_version() -> c_uint;
|
||||
pub fn avdevice_configuration() -> *const c_char;
|
||||
pub fn avdevice_license() -> *const c_char;
|
||||
|
||||
pub fn avdevice_register_all();
|
||||
|
||||
pub fn av_input_audio_device_next(d: *mut AVInputFormat) -> *mut AVInputFormat;
|
||||
pub fn av_input_video_device_next(d: *mut AVInputFormat) -> *mut AVInputFormat;
|
||||
|
||||
pub fn av_output_audio_device_next(d: *mut AVOutputFormat) -> *mut AVOutputFormat;
|
||||
pub fn av_output_video_device_next(d: *mut AVOutputFormat) -> *mut AVOutputFormat;
|
||||
|
||||
pub fn avdevice_app_to_dev_control_message(s: *const AVFormatContext, kind: AVAppToDevMessageType, data: *mut c_void, data_size: size_t) -> c_int;
|
||||
pub fn avdevice_dev_to_app_control_message(s: *const AVFormatContext, kind: AVDevToAppMessageType, data: *mut c_void, data_size: size_t) -> c_int;
|
||||
|
||||
pub fn avdevice_capabilities_create(caps: *mut *mut AVDeviceCapabilitiesQuery, s: *const AVFormatContext, device_options: *mut *mut AVDictionary) -> c_int;
|
||||
pub fn avdevice_capabilities_free(caps: *mut *mut AVDeviceCapabilitiesQuery, s: *const AVFormatContext);
|
||||
|
||||
pub fn avdevice_list_devices(s: *const AVFormatContext, device_list: *mut *mut AVDeviceInfoList) -> c_int;
|
||||
pub fn avdevice_free_list_devices(device_list: *mut *mut AVDeviceInfoList);
|
||||
pub fn avdevice_list_input_sources(device: *mut AVInputFormat, device_name: *const c_char, device_options: *mut AVDictionary, device_list: *mut *mut AVDeviceInfoList) -> c_int;
|
||||
pub fn avdevice_list_output_sinks(device: *mut AVOutputFormat, device_name: *const c_char, device_options: *mut AVDictionary, device_list: *mut *mut AVDeviceInfoList) -> c_int;
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
mod device;
|
||||
pub use self::device::*;
|
||||
|
||||
#[cfg_attr(feature = "static", link(name = "avdevice", kind = "static"))]
|
||||
#[cfg_attr(not(feature = "static"), link(name = "avdevice"))]
|
||||
extern { }
|
||||
@@ -1,32 +0,0 @@
|
||||
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;
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
use libc::{c_int, c_uint, int64_t};
|
||||
use ::avfilter::filter::{AVFilterContext};
|
||||
use ::avutil::{AVFrame, AVRational, AVBufferRef};
|
||||
|
||||
pub const AV_BUFFERSRC_FLAG_NO_CHECK_FORMAT: c_int = 1;
|
||||
pub const AV_BUFFERSRC_FLAG_PUSH: c_int = 4;
|
||||
pub const AV_BUFFERSRC_FLAG_KEEP_REF: c_int = 8;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AVBufferSrcParameters {
|
||||
pub format: c_int,
|
||||
pub time_base: AVRational,
|
||||
pub width: c_int,
|
||||
pub height: c_int,
|
||||
pub sample_aspect_ratio: AVRational,
|
||||
pub frame_rate: AVRational,
|
||||
pub hw_frames_ctx: *mut AVBufferRef,
|
||||
pub sample_rate: c_int,
|
||||
pub channel_layout: int64_t,
|
||||
}
|
||||
|
||||
extern {
|
||||
pub fn av_buffersrc_get_nb_failed_requests(buffer_src: *const AVFilterContext) -> c_uint;
|
||||
|
||||
pub fn av_buffersrc_parameters_alloc() -> *mut AVBufferSrcParameters;
|
||||
pub fn av_buffersrc_parameters_set(ctx: *mut AVFilterContext, param: *mut AVBufferSrcParameters) -> c_int;
|
||||
|
||||
pub fn av_buffersrc_write_frame(ctx: *mut AVFilterContext, frame: *const AVFrame) -> c_int;
|
||||
pub fn av_buffersrc_add_frame(ctx: *mut AVFilterContext, frame: *mut AVFrame) -> c_int;
|
||||
pub fn av_buffersrc_add_frame_flags(buffer_src: *mut AVFilterContext, frame: *mut AVFrame, flags: c_int) -> c_int;
|
||||
}
|
||||
@@ -1,194 +0,0 @@
|
||||
use libc::{c_void, c_char, c_int, c_uint, c_double, int64_t, uint64_t};
|
||||
use ::avutil::{AVClass, AVRational, AVMediaType, AVDictionary, AVFrame, AVBufferRef};
|
||||
|
||||
pub type AVFilterPad = c_void;
|
||||
pub type AVFilterCommand = c_void;
|
||||
pub type AVFilterChannelLayouts = c_void;
|
||||
pub type AVFilterFormats = c_void;
|
||||
|
||||
pub const AVFILTER_FLAG_DYNAMIC_INPUTS: c_int = 1 << 0;
|
||||
pub const AVFILTER_FLAG_DYNAMIC_OUTPUTS: c_int = 1 << 1;
|
||||
pub const AVFILTER_FLAG_SLICE_THREADS: c_int = 1 << 2;
|
||||
pub const AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC: c_int = 1 << 16;
|
||||
pub const AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL: c_int = 1 << 17;
|
||||
pub const AVFILTER_FLAG_SUPPORT_TIMELINE: c_int = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AVFilter {
|
||||
pub name: *const c_char,
|
||||
pub description: *const c_char,
|
||||
pub inputs: *const AVFilterPad,
|
||||
pub outputs: *const AVFilterPad,
|
||||
pub priv_class: *const AVClass,
|
||||
pub flags: c_int,
|
||||
|
||||
pub init: extern fn(*mut AVFilterContext) -> c_int,
|
||||
pub init_dict: extern fn(*mut AVFilterContext, *mut *mut AVDictionary) -> c_int,
|
||||
pub uninit: extern fn(*mut AVFilterContext),
|
||||
pub query_formats: extern fn(*mut AVFilterContext) -> c_int,
|
||||
pub priv_size: c_int,
|
||||
pub next: *mut AVFilter,
|
||||
pub process_command: extern fn(*mut AVFilterContext, cmd: *const c_char, arg: *const c_char, *mut c_char, c_int, c_int) -> c_int,
|
||||
pub init_opaque: extern fn(*mut AVFilterContext, *mut c_void) -> c_int,
|
||||
}
|
||||
|
||||
pub const AVFILTER_THREAD_SLICE: c_int = 1 << 0;
|
||||
|
||||
pub type AVFilterInternal = c_void;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AVFilterContext {
|
||||
pub av_class: *const AVClass,
|
||||
pub filter: *const AVFilter,
|
||||
pub name: *mut c_char,
|
||||
pub input_pads: *mut AVFilterPad,
|
||||
pub inputs: *mut *mut AVFilterLink,
|
||||
pub nb_inputs: c_uint,
|
||||
pub output_pads: *mut AVFilterPad,
|
||||
pub outputs: *mut *mut AVFilterLink,
|
||||
pub nb_outputs: c_uint,
|
||||
pub private: *mut c_void,
|
||||
pub graph: *mut AVFilterGraph,
|
||||
pub thread_type: c_int,
|
||||
pub internal: *mut AVFilterInternal,
|
||||
pub command_queue: *mut AVFilterCommand,
|
||||
pub enable_str: *mut c_char,
|
||||
pub enable: *mut c_void,
|
||||
pub var_values: *mut c_double,
|
||||
pub is_disabled: c_int,
|
||||
pub hw_device_ctx: AVBufferRef,
|
||||
pub nb_threads: c_int,
|
||||
}
|
||||
|
||||
pub const AVLINK_UNINIT: c_int = 0;
|
||||
pub const AVLINK_STARTINIT: c_int = 1;
|
||||
pub const AVLINK_INIT: c_int = 2;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AVFilterLink {
|
||||
pub src: *mut AVFilterContext,
|
||||
pub srcpad: *mut AVFilterPad,
|
||||
pub dst: *mut AVFilterContext,
|
||||
pub dstpad: *mut AVFilterPad,
|
||||
pub kind: AVMediaType,
|
||||
pub w: c_int,
|
||||
pub h: c_int,
|
||||
pub sample_aspect_ratio: AVRational,
|
||||
pub channel_layout: uint64_t,
|
||||
pub sample_rate: c_int,
|
||||
pub format: c_int,
|
||||
pub time_base: AVRational,
|
||||
|
||||
pub in_formats: *mut AVFilterFormats,
|
||||
pub out_formats: *mut AVFilterFormats,
|
||||
pub in_samplerates: *mut AVFilterFormats,
|
||||
pub out_samplerates: *mut AVFilterFormats,
|
||||
pub in_channel_layouts: *mut AVFilterChannelLayouts,
|
||||
pub out_channel_layouts: *mut AVFilterChannelLayouts,
|
||||
pub request_samples: c_int,
|
||||
pub init_state: c_int,
|
||||
pub graph: *mut AVFilterGraph,
|
||||
pub current_pts: int64_t,
|
||||
pub current_pts_us: int64_t,
|
||||
pub age_index: c_int,
|
||||
pub frame_rate: AVRational,
|
||||
pub partial_buf: *mut AVFrame,
|
||||
pub partial_buf_size: c_int,
|
||||
pub min_samples: c_int,
|
||||
pub max_samples: c_int,
|
||||
pub status: c_int,
|
||||
pub channels: c_int,
|
||||
pub flags: c_uint,
|
||||
pub frame_count: int64_t,
|
||||
pub video_frame_pool: *mut c_void,
|
||||
pub frame_wanted_in: c_int,
|
||||
pub frame_wanted_out: c_int,
|
||||
pub hw_frames_ctx: *mut AVBufferRef,
|
||||
}
|
||||
|
||||
pub const AVFILTER_CMD_FLAG_ONE: c_int = 1;
|
||||
pub const AVFILTER_CMD_FLAG_FAST: c_int = 2;
|
||||
|
||||
pub type AVFilterGraphInternal = c_void;
|
||||
|
||||
pub type avfilter_action_func = extern fn(*mut AVFilterContext, *mut c_void, c_int, c_int) -> c_int;
|
||||
pub type avfilter_execute_func = extern fn(*mut AVFilterContext, avfilter_action_func, *mut c_void, *mut c_int, c_int) -> c_int;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AVFilterGraph {
|
||||
pub av_class: *const AVClass,
|
||||
pub filters: *mut *mut AVFilterContext,
|
||||
pub nb_filters: c_uint,
|
||||
pub scale_sws_opts: *mut c_char,
|
||||
pub resample_lavr_opts: *mut c_char,
|
||||
pub thread_type: c_int,
|
||||
pub nb_threads: c_int,
|
||||
pub internal: *mut AVFilterGraphInternal,
|
||||
pub opaque: *mut c_void,
|
||||
pub execute: avfilter_execute_func,
|
||||
pub aresample_swr_opts: *mut c_char,
|
||||
pub sink_links: *mut *mut AVFilterLink,
|
||||
pub sink_links_count: c_int,
|
||||
pub disable_auto_convert: c_uint,
|
||||
}
|
||||
|
||||
pub const AVFILTER_AUTO_CONVERT_ALL: c_int = 0;
|
||||
pub const AVFILTER_AUTO_CONVERT_NONE: c_int = -1;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AVFilterInOut {
|
||||
pub name: *mut c_char,
|
||||
pub filter_ctx: *mut AVFilterContext,
|
||||
pub pad_idx: c_int,
|
||||
pub next: *mut AVFilterInOut,
|
||||
}
|
||||
|
||||
extern {
|
||||
pub fn avfilter_version() -> c_uint;
|
||||
pub fn avfilter_configuration() -> *const c_char;
|
||||
pub fn avfilter_license() -> *const c_char;
|
||||
|
||||
pub fn avfilter_pad_count(pads: *const AVFilterPad) -> c_int;
|
||||
pub fn avfilter_pad_get_name(pads: *const AVFilterPad, pad_idx: c_int) -> *const c_char;
|
||||
pub fn avfilter_pad_get_type(pads: *const AVFilterPad, pad_idx: c_int) -> AVMediaType;
|
||||
|
||||
pub fn avfilter_link(src: *mut AVFilterContext, srcpad: c_uint, dst: *mut AVFilterContext, dstpad: c_uint) -> c_int;
|
||||
pub fn avfilter_link_free(link: *mut *mut AVFilterLink);
|
||||
pub fn avfilter_link_get_channels(link: *mut AVFilterLink) -> c_int;
|
||||
pub fn avfilter_link_set_closed(link: *mut AVFilterLink, closed: c_int);
|
||||
pub fn avfilter_config_links(filter: *mut AVFilterContext) -> c_int;
|
||||
|
||||
pub fn avfilter_process_command(filter: *mut AVFilterContext, cmd: *const c_char, arg: *const c_char, res: *const c_char, res_len: c_int, flags: c_int) -> c_int;
|
||||
|
||||
pub fn avfilter_register_all();
|
||||
pub fn avfilter_register(filter: *const AVFilter) -> c_int;
|
||||
|
||||
pub fn avfilter_get_by_name(name: *const c_char) -> *mut AVFilter;
|
||||
pub fn avfilter_next(prev: *const AVFilter) -> *const AVFilter;
|
||||
|
||||
pub fn avfilter_init_str(ctx: *mut AVFilterContext, args: *const c_char) -> c_int;
|
||||
pub fn avfilter_init_dict(ctx: *mut AVFilterContext, options: *mut *mut AVDictionary) -> c_int;
|
||||
pub fn avfilter_free(filter: *mut AVFilterContext);
|
||||
pub fn avfilter_insert_filter(link: *mut AVFilterLink, filt: *mut AVFilterContext, filt_srcpad_idx: c_uint, filt_dstpad_idx: c_uint) -> c_int;
|
||||
|
||||
pub fn avfilter_get_class() -> *const AVClass;
|
||||
|
||||
pub fn avfilter_graph_alloc() -> *mut AVFilterGraph;
|
||||
pub fn avfilter_graph_alloc_filter(graph: *mut AVFilterGraph, filter: *const AVFilter, name: *const c_char) -> *mut AVFilterContext;
|
||||
pub fn avfilter_graph_get_filter(graph: *mut AVFilterGraph, name: *const c_char) -> *mut AVFilterContext;
|
||||
pub fn avfilter_graph_create_filter(filt_ctx: *mut *mut AVFilterContext, filt: *const AVFilter, name: *const c_char, args: *const c_char, opaque: *mut c_void, graph_ctx: *mut AVFilterGraph) -> c_int;
|
||||
pub fn avfilter_graph_set_auto_convert(graph: *mut AVFilterGraph, flags: c_uint);
|
||||
pub fn avfilter_graph_config(graphctx: *mut AVFilterGraph, log_ctx: *mut c_void) -> c_int;
|
||||
pub fn avfilter_graph_free(graph: *mut *mut AVFilterGraph);
|
||||
|
||||
pub fn avfilter_inout_alloc() -> *mut AVFilterInOut;
|
||||
pub fn avfilter_inout_free(inout: *mut *mut AVFilterInOut);
|
||||
|
||||
pub fn avfilter_graph_parse(graph: *mut AVFilterGraph, filters: *const c_char, inputs: *mut AVFilterInOut, outputs: *mut AVFilterInOut, log_ctx: *mut c_void) -> c_int;
|
||||
pub fn avfilter_graph_parse_ptr(graph: *mut AVFilterGraph, filters: *const c_char, inputs: *mut *mut AVFilterInOut, outputs: *mut *mut AVFilterInOut, log_ctx: *mut c_void) -> c_int;
|
||||
pub fn avfilter_graph_parse2(graph: *mut AVFilterGraph, filters: *const c_char, inputs: *mut *mut AVFilterInOut, outputs: *mut *mut AVFilterInOut) -> c_int;
|
||||
pub fn avfilter_graph_send_command(graph: *mut AVFilterGraph, target: *const c_char, cmd: *const c_char, arg: *const c_char, res: *mut c_char, res_len: c_int, flags: c_int) -> c_int;
|
||||
pub fn avfilter_graph_queue_command(graph: *mut AVFilterGraph, target: *const c_char, cmd: *const c_char, arg: *const c_char, flags: c_int, ts: c_double) -> c_int;
|
||||
pub fn avfilter_graph_dump(graph: *const AVFilterGraph, options: *const c_char) -> *mut c_char;
|
||||
pub fn avfilter_graph_request_oldest(graph: *mut AVFilterGraph) -> c_int;
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
mod filter;
|
||||
pub use self::filter::*;
|
||||
|
||||
mod buffersink;
|
||||
pub use self::buffersink::*;
|
||||
|
||||
mod buffersrc;
|
||||
pub use self::buffersrc::*;
|
||||
|
||||
#[cfg_attr(feature = "static", link(name = "avfilter", kind = "static"))]
|
||||
#[cfg_attr(not(feature = "static"), link(name = "avfilter"))]
|
||||
extern { }
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,184 +0,0 @@
|
||||
use libc::{c_void, c_char, c_uchar, c_int, c_uint, c_ulong, uint8_t, int64_t, uint64_t, size_t, SEEK_CUR};
|
||||
use super::super::avutil::{AVClass, AVBPrint, AVDictionary};
|
||||
|
||||
pub type URLContext = c_void;
|
||||
|
||||
pub const AVIO_SEEKABLE_NORMAL: c_int = 0x0001;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AVIOInterruptCB {
|
||||
pub callback: extern fn(*mut c_void) -> c_int,
|
||||
pub opaque: *mut c_void,
|
||||
}
|
||||
|
||||
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
||||
#[repr(C)]
|
||||
pub enum AVIODirEntryType {
|
||||
AVIO_ENTRY_UNKNOWN,
|
||||
AVIO_ENTRY_BLOCK_DEVICE,
|
||||
AVIO_ENTRY_CHARACTER_DEVICE,
|
||||
AVIO_ENTRY_DIRECTORY,
|
||||
AVIO_ENTRY_NAMED_PIPE,
|
||||
AVIO_ENTRY_SYMBOLIC_LINK,
|
||||
AVIO_ENTRY_SOCKET,
|
||||
AVIO_ENTRY_FILE,
|
||||
AVIO_ENTRY_SERVER,
|
||||
AVIO_ENTRY_SHARE,
|
||||
AVIO_ENTRY_WORKGROUP,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AVIODirEntry {
|
||||
name: *mut c_char,
|
||||
kind: c_int,
|
||||
utf8: c_int,
|
||||
|
||||
size: int64_t,
|
||||
modification_timestamp: int64_t,
|
||||
|
||||
access_timestamp: int64_t,
|
||||
|
||||
status_change_timestamp: int64_t,
|
||||
|
||||
user_id: int64_t,
|
||||
group_id: int64_t,
|
||||
filemode: int64_t,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AVIODirContext {
|
||||
url_context: *mut URLContext,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub enum AVIODataMarkerType {
|
||||
AVIO_DATA_MARKER_HEADER,
|
||||
AVIO_DATA_MARKER_SYNC_POINT,
|
||||
AVIO_DATA_MARKER_BOUNDARY_POINT,
|
||||
AVIO_DATA_MARKER_UNKNOWN,
|
||||
AVIO_DATA_MARKER_TRAILER,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AVIOContext {
|
||||
pub av_class: *mut AVClass,
|
||||
pub buffer: *mut c_uchar,
|
||||
pub buffer_size: c_int,
|
||||
pub buf_ptr: *mut c_uchar,
|
||||
pub buf_end: *mut c_uchar,
|
||||
pub opaque: *mut c_void,
|
||||
pub read_packet: extern fn(*mut c_void, *mut uint8_t, c_int) -> c_int,
|
||||
pub write_packet: extern fn(*mut c_void, *mut uint8_t, c_int) -> c_int,
|
||||
pub seek: extern fn(*mut c_void, int64_t, c_int) -> int64_t,
|
||||
pub pos: int64_t,
|
||||
pub must_flush: c_int,
|
||||
pub eof_reached: c_int,
|
||||
pub write_flag: c_int,
|
||||
pub max_packet_size: c_int,
|
||||
pub checksum: c_ulong,
|
||||
pub checksum_ptr: *mut c_uchar,
|
||||
pub update_checksum: extern fn(c_ulong, *const uint8_t, c_uint) -> c_uint,
|
||||
pub error: c_int,
|
||||
pub read_pause: extern fn(*mut c_void, c_int) -> c_int,
|
||||
pub read_seek: extern fn(*mut c_void, c_int, int64_t, c_int) -> int64_t,
|
||||
pub seekable: c_int,
|
||||
pub maxsize: int64_t,
|
||||
pub direct: c_int,
|
||||
pub bytes_read: int64_t,
|
||||
pub seek_count: c_int,
|
||||
pub writeout_count: c_int,
|
||||
pub orig_buffer_size: c_int,
|
||||
pub short_seek_threshold: c_int,
|
||||
pub protocol_whitelist: *const c_char,
|
||||
pub protocol_blacklist: *const c_char,
|
||||
pub write_data_type: extern fn(opaque: *mut c_void, buf: *mut uint8_t, buf_size: c_int,
|
||||
kind: AVIODataMarkerType, time: int64_t) -> c_int,
|
||||
pub ignore_boundary_point: c_int,
|
||||
pub current_type: AVIODataMarkerType,
|
||||
pub last_time: int64_t,
|
||||
}
|
||||
|
||||
pub const AVSEEK_SIZE: c_int = 0x10000;
|
||||
pub const AVSEEK_FORCE: c_int = 0x20000;
|
||||
|
||||
#[inline(always)]
|
||||
pub unsafe fn avio_tell(s: *mut AVIOContext) -> int64_t {
|
||||
avio_seek(s, 0, SEEK_CUR)
|
||||
}
|
||||
|
||||
pub const AVIO_FLAG_READ: c_int = 1;
|
||||
pub const AVIO_FLAG_WRITE: c_int = 2;
|
||||
pub const AVIO_FLAG_READ_WRITE: c_int = AVIO_FLAG_READ | AVIO_FLAG_WRITE;
|
||||
pub const AVIO_FLAG_NONBLOCK: c_int = 8;
|
||||
pub const AVIO_FLAG_DIRECT: c_int = 0x8000;
|
||||
|
||||
extern {
|
||||
pub fn avio_find_protocol_name(url: *const c_char) -> *const c_char;
|
||||
pub fn avio_check(url: *const c_char, flags: c_int) -> c_int;
|
||||
|
||||
pub fn avpriv_io_move(url_src: *const c_char, url_dst: *const c_char) -> c_int;
|
||||
pub fn avpriv_io_delete(url: *const c_char) -> c_int;
|
||||
|
||||
pub fn avio_open_dir(s: *mut *mut AVIODirContext, url: *const c_char, options: *mut *mut AVDictionary) -> c_int;
|
||||
pub fn avio_read_dir(s: *mut AVIODirContext, next: *mut *mut AVIODirEntry) -> c_int;
|
||||
pub fn avio_close_dir(s: *mut *mut AVIODirContext) -> c_int;
|
||||
pub fn avio_free_directory_entry(entry: *mut *mut AVIODirEntry);
|
||||
pub fn avio_alloc_context(buffer: *mut c_uchar, buffer_size: c_int, write_flag: c_int, opaque: *mut c_void, read_packet: extern fn(*mut c_void, *mut uint8_t, c_int) -> c_int, write_packet: extern fn(*mut c_void, *mut uint8_t, c_int) -> c_int, seek: extern fn(*mut c_void, int64_t, c_int) -> int64_t) -> *mut AVIOContext;
|
||||
|
||||
pub fn avio_w8(s: *mut AVIOContext, b: c_int);
|
||||
pub fn avio_write(s: *mut AVIOContext, buf: *const c_uchar, size: c_int);
|
||||
pub fn avio_wl64(s: *mut AVIOContext, val: uint64_t);
|
||||
pub fn avio_wb64(s: *mut AVIOContext, val: uint64_t);
|
||||
pub fn avio_wl32(s: *mut AVIOContext, val: c_uint);
|
||||
pub fn avio_wb32(s: *mut AVIOContext, val: c_uint);
|
||||
pub fn avio_wl24(s: *mut AVIOContext, val: c_uint);
|
||||
pub fn avio_wb24(s: *mut AVIOContext, val: c_uint);
|
||||
pub fn avio_wl16(s: *mut AVIOContext, val: c_uint);
|
||||
pub fn avio_wb16(s: *mut AVIOContext, val: c_uint);
|
||||
|
||||
pub fn avio_put_str(s: *mut AVIOContext, string: *const c_char) -> c_int;
|
||||
pub fn avio_put_str16le(s: *mut AVIOContext, string: *const c_char) -> c_int;
|
||||
pub fn avio_put_str16be(s: *mut AVIOContext, string: *const c_char) -> c_int;
|
||||
|
||||
pub fn avio_write_marker(s: *mut AVIOContext, time: int64_t, kind: AVIODataMarkerType);
|
||||
|
||||
pub fn avio_seek(s: *mut AVIOContext, offset: int64_t, whence: c_int) -> int64_t;
|
||||
pub fn avio_skip(s: *mut AVIOContext, offset: int64_t) -> int64_t;
|
||||
pub fn avio_size(s: *mut AVIOContext) -> int64_t;
|
||||
pub fn avio_feof(s: *mut AVIOContext) -> c_int;
|
||||
|
||||
pub fn avio_printf(s: *mut AVIOContext, fmt: *const c_char, ...) -> c_int;
|
||||
pub fn avio_flush(s: *mut AVIOContext);
|
||||
|
||||
pub fn avio_read(s: *mut AVIOContext, buf: *mut c_uchar, size: c_int) -> c_int;
|
||||
pub fn avio_r8(s: *mut AVIOContext) -> c_int;
|
||||
pub fn avio_rl16(s: *mut AVIOContext) -> c_uint;
|
||||
pub fn avio_rl24(s: *mut AVIOContext) -> c_uint;
|
||||
pub fn avio_rl32(s: *mut AVIOContext) -> c_uint;
|
||||
pub fn avio_rl64(s: *mut AVIOContext) -> uint64_t;
|
||||
pub fn avio_rb16(s: *mut AVIOContext) -> c_uint;
|
||||
pub fn avio_rb24(s: *mut AVIOContext) -> c_uint;
|
||||
pub fn avio_rb32(s: *mut AVIOContext) -> c_uint;
|
||||
pub fn avio_rb64(s: *mut AVIOContext) -> uint64_t;
|
||||
|
||||
pub fn avio_get_str(pb: *mut AVIOContext, maxlen: c_int, buf: *mut c_char, buflen: c_int) -> c_int;
|
||||
pub fn avio_get_str16le(pb: *mut AVIOContext, maxlen: c_int, buf: *mut c_char, buflen: c_int) -> c_int;
|
||||
pub fn avio_get_str16be(pb: *mut AVIOContext, maxlen: c_int, buf: *mut c_char, buflen: c_int) -> c_int;
|
||||
|
||||
pub fn avio_open(s: *mut *mut AVIOContext, url: *const c_char, flags: c_int) -> c_int;
|
||||
pub fn avio_open2(s: *mut *mut AVIOContext, url: *const c_char, flags: c_int, int_cb: *const AVIOInterruptCB, options: *mut *mut AVDictionary) -> c_int;
|
||||
|
||||
pub fn avio_close(s: *mut AVIOContext) -> c_int;
|
||||
pub fn avio_closep(s: *mut *mut AVIOContext) -> c_int;
|
||||
|
||||
pub fn avio_open_dyn_buf(s: *mut *mut AVIOContext) -> c_int;
|
||||
pub fn avio_close_dyn_buf(s: *mut AVIOContext, pbuffer: *mut *mut uint8_t) -> c_int;
|
||||
|
||||
pub fn avio_enum_protocols(opaque: *mut *mut c_void, output: c_int) -> *const c_char;
|
||||
pub fn avio_pause(h: *mut AVIOContext, pause: c_int) -> c_int;
|
||||
pub fn avio_seek_time(h: *mut AVIOContext, stream_index: c_int, timestamp: int64_t, flags: c_int) -> int64_t;
|
||||
pub fn avio_read_to_bprint(h: *mut AVIOContext, pb: *mut AVBPrint, max_size: size_t) -> c_int;
|
||||
|
||||
pub fn avio_accept(s: *mut AVIOContext, c: *mut *mut AVIOContext) -> c_int;
|
||||
pub fn avio_handshake(c: *mut AVIOContext) -> c_int;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user