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.

closed
int closed;

True if the link is closed. If set, all attempts of start_frame, filter_frame or request_frame will fail with AVERROR_EOF, and if necessary the reference will be destroyed. If request_frame returns AVERROR_EOF, this flag is set on the corresponding link. It can be set also be set by either the source or the destination filter.

cur_buf_copy
AVFilterBufferRef* cur_buf_copy;

The buffer reference currently being received across the link by the destination filter. This is used internally by the filter system to allow automatic copying of buffers which do not have sufficient permissions for the destination. This should not be accessed directly by the filters.

current_pts
int64_t current_pts;

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_requested
uint frame_requested;

True if a frame is being requested on the link. Used internally by the framework.

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.

pool
AVFilterPool* pool;
Undocumented in source.
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

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

w
int w;

< agreed upon image width

Meta