FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Types | Data Fields

A link between two filters. More...

#include <avfilter.h>

Public Types

enum  { AVLINK_UNINIT = 0, AVLINK_STARTINIT, AVLINK_INIT }
 stage of the initialization of the link properties (dimensions, etc) More...
 

Data Fields

AVFilterContextsrc
 source filter
 
AVFilterPadsrcpad
 output pad on the source filter
 
AVFilterContextdst
 dest filter
 
AVFilterPaddstpad
 input pad on the dest filter
 
enum AVMediaType type
 filter media type
 
int w
 agreed upon image width
 
int h
 agreed upon image height
 
AVRational sample_aspect_ratio
 agreed upon sample aspect ratio
 
uint64_t channel_layout
 channel layout of current buffer (see libavutil/channel_layout.h)
 
int sample_rate
 samples per second
 
int format
 agreed upon media format
 
AVRational time_base
 Define the time base used by the PTS of the frames/samples which will pass through this link.
 
AVFilterFormatsin_formats
 Lists of formats and channel layouts supported by the input and output filters respectively.
 
AVFilterFormatsout_formats
 
AVFilterFormatsin_samplerates
 Lists of channel layouts and sample rates used for automatic negotiation.
 
AVFilterFormatsout_samplerates
 
struct AVFilterChannelLayoutsin_channel_layouts
 
struct AVFilterChannelLayoutsout_channel_layouts
 
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.
 
enum AVFilterLink:: { ... }  init_state
 
struct AVFilterPoolpool
 
struct AVFilterGraphgraph
 Graph the filter belongs to.
 
int64_t current_pts
 Current timestamp of the link, as defined by the most recent frame(s), in AV_TIME_BASE units.
 
int age_index
 Index in the age array.
 
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.
 
AVFramepartial_buf
 Buffer partially filled with samples to achieve a fixed/minimum size.
 
int partial_buf_size
 Size of the partial buffer to allocate.
 
int min_samples
 Minimum number of samples to filter at once.
 
int max_samples
 Maximum number of samples to filter at once.
 
AVFilterBufferRef * cur_buf_copy
 The buffer reference currently being received across the link by the destination filter.
 
int closed
 True if the link is closed.
 
int channels
 Number of channels.
 
unsigned frame_requested
 True if a frame is being requested on the link.
 
unsigned flags
 Link processing flags.
 
int64_t frame_count
 Number of past frames sent through the link.
 

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

Examples:
filtering_audio.c.

Definition at line 696 of file avfilter.h.

Member Enumeration Documentation

anonymous enum

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

Enumerator:
AVLINK_UNINIT 

not started

AVLINK_STARTINIT 

started, but incomplete

AVLINK_INIT 

complete

Definition at line 760 of file avfilter.h.

Field Documentation

AVFilterContext* AVFilterLink::src
AVFilterPad* AVFilterLink::srcpad
AVFilterContext* AVFilterLink::dst
AVFilterPad* AVFilterLink::dstpad
enum AVMediaType AVFilterLink::type
int AVFilterLink::w
int AVFilterLink::h
AVRational AVFilterLink::sample_aspect_ratio
uint64_t AVFilterLink::channel_layout
int AVFilterLink::sample_rate
int AVFilterLink::format
AVRational AVFilterLink::time_base
AVFilterFormats* AVFilterLink::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.

Definition at line 738 of file avfilter.h.

Referenced by formats_declared(), free_link(), movie_query_formats(), pick_format(), pick_formats(), query_formats(), and swap_sample_fmts_on_filter().

AVFilterFormats* AVFilterLink::out_formats
AVFilterFormats* AVFilterLink::in_samplerates

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

Definition at line 745 of file avfilter.h.

Referenced by formats_declared(), free_link(), movie_query_formats(), pick_format(), query_formats(), and swap_samplerates_on_filter().

AVFilterFormats* AVFilterLink::out_samplerates
struct AVFilterChannelLayouts* AVFilterLink::in_channel_layouts
struct AVFilterChannelLayouts* AVFilterLink::out_channel_layouts
int AVFilterLink::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.

Definition at line 757 of file avfilter.h.

Referenced by join_request_frame(), request_frame(), and return_audio_frame().

enum { ... } AVFilterLink::init_state

Referenced by avfilter_config_links().

struct AVFilterPool* AVFilterLink::pool

Definition at line 766 of file avfilter.h.

struct AVFilterGraph* AVFilterLink::graph

Graph the filter belongs to.

Definition at line 771 of file avfilter.h.

Referenced by ff_avfilter_graph_config_pointers(), ff_update_link_current_pts(), and filter_frame().

int64_t AVFilterLink::current_pts

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

Definition at line 777 of file avfilter.h.

Referenced by avfilter_config_links(), ff_update_link_current_pts(), heap_bubble_down(), and heap_bubble_up().

int AVFilterLink::age_index
AVRational AVFilterLink::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.

Sources should set it to the best estimation of the real frame rate. 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.

Definition at line 794 of file avfilter.h.

Referenced by av_buffersink_get_frame_rate(), avfilter_config_links(), config_input(), config_out_props(), config_output(), config_output_props(), config_props(), config_props_output(), movie_config_output_props(), and video_thread().

AVFrame* AVFilterLink::partial_buf

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

Definition at line 799 of file avfilter.h.

Referenced by ff_filter_frame(), ff_filter_frame_needs_framing(), and ff_request_frame().

int AVFilterLink::partial_buf_size

Size of the partial buffer to allocate.

Must be between min_samples and max_samples.

Definition at line 805 of file avfilter.h.

Referenced by av_buffersink_set_frame_size(), config_audio_input(), config_input(), config_output(), and ff_filter_frame_needs_framing().

int AVFilterLink::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.

Definition at line 814 of file avfilter.h.

Referenced by av_buffersink_set_frame_size(), config_audio_input(), config_input(), config_output(), ff_filter_frame(), and ff_filter_frame_needs_framing().

int AVFilterLink::max_samples

Maximum number of samples to filter at once.

If filter_frame() is called with more samples, it will split them.

Definition at line 820 of file avfilter.h.

Referenced by av_buffersink_set_frame_size(), config_audio_input(), config_input(), config_output(), and ff_filter_frame().

AVFilterBufferRef* AVFilterLink::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.

Definition at line 829 of file avfilter.h.

int AVFilterLink::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.

Definition at line 841 of file avfilter.h.

Referenced by avfilter_link_set_closed(), ff_filter_frame_framed(), ff_request_frame(), filter_frame(), push_frame(), and request_frame().

int AVFilterLink::channels
unsigned AVFilterLink::frame_requested

True if a frame is being requested on the link.

Used internally by the framework.

Definition at line 852 of file avfilter.h.

Referenced by ff_filter_frame_framed(), and ff_request_frame().

unsigned AVFilterLink::flags
int64_t AVFilterLink::frame_count

Number of past frames sent through the link.

Definition at line 862 of file avfilter.h.

Referenced by do_blend(), draw_text(), ff_filter_frame_framed(), filter_frame(), filter_slice(), geq_filter_frame(), request_frame(), select_frame(), and update_context().


The documentation for this struct was generated from the following file: