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.

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.

Members

Enums

_Anonymous_0
enum _Anonymous_0

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

Structs

AVFilterChannelLayouts
struct AVFilterChannelLayouts
Undocumented in source.

Variables

age_index
int age_index;

Index in the age array.

channel_layout
ulong channel_layout;

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

channels
int channels;

Number of channels.

current_pts
long current_pts;

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

current_pts_us
long 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_in
long frame_count_in;

Number of past frames sent through the link.

frame_count_out
long frame_count_out;
Undocumented in source.
frame_pool
void* frame_pool;

A pointer to a FFFramePool struct.

frame_rate
AVRational frame_rate;

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

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

hw_frames_ctx
AVBufferRef* hw_frames_ctx;

For hwaccel pixel formats, this should be a reference to the AVHWFramesContext describing the frames.

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.

init_state
_Anonymous_0 init_state;
Undocumented in source.
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.

reserved
char[0xF000] reserved;

Internal structure members. The fields below this limit are internal for libavfilter's use and must in no way be accessed by applications.

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