Struct ffmpeg_sys_next::AVFilterLink
source · [−]#[repr(C)]pub struct AVFilterLink {Show 37 fields
pub src: *mut AVFilterContext,
pub srcpad: *mut AVFilterPad,
pub dst: *mut AVFilterContext,
pub dstpad: *mut AVFilterPad,
pub type_: AVMediaType,
pub w: c_int,
pub h: c_int,
pub sample_aspect_ratio: AVRational,
pub channel_layout: u64,
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: AVFilterLink__bindgen_ty_1,
pub graph: *mut AVFilterGraph,
pub current_pts: i64,
pub current_pts_us: i64,
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 channels: c_int,
pub flags: c_uint,
pub frame_count_in: i64,
pub frame_count_out: i64,
pub frame_pool: *mut c_void,
pub frame_wanted_out: c_int,
pub hw_frames_ctx: *mut AVBufferRef,
pub reserved: [c_char; 61440],
}Expand description
A link between two filters. This contains pointers to the source and destination filters between which this link exists, and the indexes of the pads involved. In addition, this link also contains the parameters which have been negotiated and agreed upon between the filter, such as image dimensions, format, etc.
Applications must not normally access the link structure directly. Use the buffersrc and buffersink API instead. In the future, access to the header may be reserved for filters implementation.
Fields
src: *mut AVFilterContext< source filter
srcpad: *mut AVFilterPad< output pad on the source filter
dst: *mut AVFilterContext< dest filter
dstpad: *mut AVFilterPad< input pad on the dest filter
type_: AVMediaType< filter media type
w: c_int< agreed upon image width
h: c_int< agreed upon image height
sample_aspect_ratio: AVRational< agreed upon sample aspect ratio
channel_layout: u64< channel layout of current buffer (see libavutil/channel_layout.h)
sample_rate: c_int< samples per second
format: c_int< agreed upon media format
time_base: AVRationalDefine the time base used by the PTS of the frames/samples which will pass through this link. During the configuration stage, each filter is supposed to change only the output timebase, while the timebase of the input link is assumed to be an unchangeable property.
in_formats: *mut AVFilterFormatsAll fields below this line are not part of the public API. They may not be used outside of libavfilter and can be changed and removed at will. New public fields should be added right above.
Lists of formats and channel layouts supported by the input and output filters respectively. These lists are used for negotiating the format to actually be used, which will be loaded into the format and channel_layout members, above, when chosen.
out_formats: *mut AVFilterFormatsin_samplerates: *mut AVFilterFormatsLists of channel layouts and sample rates used for automatic negotiation.
out_samplerates: *mut AVFilterFormatsin_channel_layouts: *mut AVFilterChannelLayoutsout_channel_layouts: *mut AVFilterChannelLayoutsrequest_samples: c_intAudio only, the destination filter sets this to a non-zero value to request that buffers with the given number of samples should be sent to it. AVFilterPad.needs_fifo must also be set on the corresponding input pad. Last buffer before EOF will be padded with silence.
init_state: AVFilterLink__bindgen_ty_1graph: *mut AVFilterGraphGraph the filter belongs to.
current_pts: i64Current timestamp of the link, as defined by the most recent frame(s), in link time_base units.
current_pts_us: i64Current timestamp of the link, as defined by the most recent frame(s), in AV_TIME_BASE units.
age_index: c_intIndex in the age array.
frame_rate: AVRationalFrame rate of the stream on the link, or 1/0 if unknown or variable; if left to 0/0, will be automatically copied from the first input of the source filter if it exists.
Sources should set it to the best estimation of the real frame rate. If the source frame rate is unknown or variable, set this to 1/0. Filters should update it if necessary depending on their function. Sinks can use it to set a default output frame rate. It is similar to the r_frame_rate field in AVStream.
partial_buf: *mut AVFrameBuffer partially filled with samples to achieve a fixed/minimum size.
partial_buf_size: c_intSize of the partial buffer to allocate. Must be between min_samples and max_samples.
min_samples: c_intMinimum number of samples to filter at once. If filter_frame() is called with fewer samples, it will accumulate them in partial_buf. This field and the related ones must not be changed after filtering has started. If 0, all related fields are ignored.
max_samples: c_intMaximum number of samples to filter at once. If filter_frame() is called with more samples, it will split them.
channels: c_intNumber of channels.
flags: c_uintLink processing flags.
frame_count_in: i64Number of past frames sent through the link.
frame_count_out: i64Number of past frames sent through the link.
frame_pool: *mut c_voidA pointer to a FFFramePool struct.
frame_wanted_out: c_intTrue if a frame is currently wanted on the output of this filter. Set when ff_request_frame() is called by the output, cleared when a frame is filtered.
hw_frames_ctx: *mut AVBufferRefFor hwaccel pixel formats, this should be a reference to the AVHWFramesContext describing the frames.
reserved: [c_char; 61440]Internal structure members. The fields below this limit are internal for libavfilter’s use and must in no way be accessed by applications.
Trait Implementations
sourceimpl Clone for AVFilterLink
impl Clone for AVFilterLink
sourcefn clone(&self) -> AVFilterLink
fn clone(&self) -> AVFilterLink
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl Debug for AVFilterLink
impl Debug for AVFilterLink
sourceimpl PartialEq<AVFilterLink> for AVFilterLink
impl PartialEq<AVFilterLink> for AVFilterLink
sourcefn eq(&self, other: &AVFilterLink) -> bool
fn eq(&self, other: &AVFilterLink) -> bool
This method tests for self and other values to be equal, and is used
by ==. Read more
sourcefn ne(&self, other: &AVFilterLink) -> bool
fn ne(&self, other: &AVFilterLink) -> bool
This method tests for !=.
impl Copy for AVFilterLink
impl Eq for AVFilterLink
impl StructuralEq for AVFilterLink
impl StructuralPartialEq for AVFilterLink
Auto Trait Implementations
impl RefUnwindSafe for AVFilterLink
impl !Send for AVFilterLink
impl !Sync for AVFilterLink
impl Unpin for AVFilterLink
impl UnwindSafe for AVFilterLink
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more