AVFilterLink

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.

Members

Enums

init_state
enum init_state

stage of the initialization of the link properties (dimensions, etc)

Variables

age_index
int age_index;

Index in the age array.

channel_layout
uint64_t channel_layout;

< channel layout of current buffer (see libavutil/channel_layout.h)

channels
int channels;

Number of channels.

current_pts
int64_t current_pts;

Current timestamp of the link, as defined by the most recent frame(s), in AV_TIME_BASE units.

current_pts_us
int64_t current_pts_us;

Current timestamp of the link, as defined by the most recent frame(s), in AV_TIME_BASE units.

dst
AVFilterContext* dst;

< dest filter

dstpad
AVFilterPad* dstpad;

< input pad on the dest filter

flags
uint flags;

Link processing flags.

format
int format;

< agreed upon media format

frame_count
int64_t frame_count;

Number of past frames sent through the link.

frame_rate
AVRational frame_rate;

Frame rate of the stream on the link, or 1/0 if unknown; if left to 0/0, will be automatically be copied from the first input of the source filter if it exists.

frame_wanted_in
int frame_wanted_in;

True if a frame is currently wanted on the input of this filter. Set when ff_request_frame() is called by the output, cleared when the request is handled or forwarded.

frame_wanted_out
int frame_wanted_out;

True 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.

graph
AVFilterGraph* graph;

Graph the filter belongs to.

h
int h;

< agreed upon image height

in_channel_layouts
AVFilterChannelLayouts* in_channel_layouts;
Undocumented in source.
in_formats
AVFilterFormats* in_formats;

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.

in_samplerates
AVFilterFormats* in_samplerates;

Lists of channel layouts and sample rates used for automatic negotiation.

max_samples
int max_samples;

Maximum number of samples to filter at once. If filter_frame() is called with more samples, it will split them.

min_samples
int min_samples;

Minimum 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.

out_channel_layouts
AVFilterChannelLayouts* out_channel_layouts;
Undocumented in source.
out_formats
AVFilterFormats* out_formats;
Undocumented in source.
out_samplerates
AVFilterFormats* out_samplerates;
Undocumented in source.
partial_buf
AVFrame* partial_buf;

Buffer partially filled with samples to achieve a fixed/minimum size.

partial_buf_size
int partial_buf_size;

Size of the partial buffer to allocate. Must be between min_samples and max_samples.

request_samples
int request_samples;

Audio 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.

sample_aspect_ratio
AVRational sample_aspect_ratio;

< agreed upon sample aspect ratio

sample_rate
int sample_rate;

< samples per second

src
AVFilterContext* src;

< source filter

srcpad
AVFilterPad* srcpad;

< output pad on the source filter

status
int status;

Link status. If not zero, all attempts of filter_frame or request_frame will fail with the corresponding code, and if necessary the reference will be destroyed. If request_frame returns an error, the status is set on the corresponding link. It can be set also be set by either the source or the destination filter.

time_base
AVRational time_base;

Define 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.

type
AVMediaType type;

< filter media type

video_frame_pool
void* video_frame_pool;

A pointer to a FFVideoFramePool struct.

w
int w;

< agreed upon image width

Meta