AVFilterPad Struct Reference

A filter pad used for either input or output. More...

#include <avfilter.h>

Data Fields

const char * name
 Pad name.
enum AVMediaType type
 AVFilterPad type.
int min_perms
 Minimum required permissions on incoming buffers.
int rej_perms
 Permissions which are not accepted on incoming buffers.
void(* start_frame )(AVFilterLink *link, AVFilterBufferRef *picref)
 Callback called before passing the first slice of a new frame.
AVFilterBufferRef *(* get_video_buffer )(AVFilterLink *link, int perms, int w, int h)
 Callback function to get a video buffer.
AVFilterBufferRef *(* get_audio_buffer )(AVFilterLink *link, int perms, enum AVSampleFormat sample_fmt, int size, uint64_t channel_layout, int planar)
 Callback function to get an audio buffer.
void(* end_frame )(AVFilterLink *link)
 Callback called after the slices of a frame are completely sent.
void(* draw_slice )(AVFilterLink *link, int y, int height, int slice_dir)
 Slice drawing callback.
void(* filter_samples )(AVFilterLink *link, AVFilterBufferRef *samplesref)
 Samples filtering callback.
int(* poll_frame )(AVFilterLink *link)
 Frame poll callback.
int(* request_frame )(AVFilterLink *link)
 Frame request callback.
int(* config_props )(AVFilterLink *link)
 Link configuration callback.

Detailed Description

A filter pad used for either input or output.

Definition at line 312 of file avfilter.h.

Field Documentation

int(* AVFilterPad::config_props)(AVFilterLink *link)

Link configuration callback.

For output pads, this should set the link properties such as width/height. This should NOT set the format property - that is negotiated between filters by the filter system using the query_formats() callback before this function is called.

For input pads, this should check the properties of the link, and update the filter's internal state as necessary.

For both input and output filters, this should return zero on success, and another value on error.

Definition at line 432 of file avfilter.h.

Referenced by avfilter_config_links().

void(* AVFilterPad::draw_slice)(AVFilterLink *link, int y, int height, int slice_dir)

Slice drawing callback.

This is where a filter receives video data and should do its processing.

Input video pads only.

Definition at line 388 of file avfilter.h.

Referenced by avfilter_draw_slice().

void(* AVFilterPad::end_frame)(AVFilterLink *link)

Callback called after the slices of a frame are completely sent.

If NULL, the filter layer will default to releasing the reference stored in the link structure during start_frame().

Input video pads only.

Definition at line 380 of file avfilter.h.

Referenced by avfilter_end_frame().

void(* AVFilterPad::filter_samples)(AVFilterLink *link, AVFilterBufferRef *samplesref)

Samples filtering callback.

This is where a filter receives audio data and should do its processing.

Input audio pads only.

Definition at line 396 of file avfilter.h.

Referenced by avfilter_filter_samples().

AVFilterBufferRef*(* AVFilterPad::get_audio_buffer)(AVFilterLink *link, int perms, enum AVSampleFormat sample_fmt, int size, uint64_t channel_layout, int planar)

Callback function to get an audio buffer.

If NULL, the filter system will use avfilter_default_get_audio_buffer().

Input audio pads only.

Definition at line 369 of file avfilter.h.

Referenced by avfilter_get_audio_buffer().

AVFilterBufferRef*(* AVFilterPad::get_video_buffer)(AVFilterLink *link, int perms, int w, int h)

Callback function to get a video buffer.

If NULL, the filter system will use avfilter_default_get_video_buffer().

Input video pads only.

Definition at line 361 of file avfilter.h.

Referenced by avfilter_get_video_buffer().

int AVFilterPad::min_perms

Minimum required permissions on incoming buffers.

Any buffer with insufficient permissions will be automatically copied by the filter system to a new buffer which provides the needed access permissions.

Input pads only.

Definition at line 333 of file avfilter.h.

Referenced by avfilter_filter_samples(), and avfilter_start_frame().

const char* AVFilterPad::name

Pad name.

The name is unique among inputs and among outputs, but an input may have the same name as an output. This may be NULL if this pad has no need to ever be referenced by name.

Definition at line 318 of file avfilter.h.

Referenced by ff_avfilter_graph_check_validity(), main(), and pad_count().

int(* AVFilterPad::poll_frame)(AVFilterLink *link)

Frame poll callback.

This returns the number of immediately available samples. It should return a positive value if the next request_frame() is guaranteed to return one frame (with no delay).

Defaults to just calling the source poll_frame() method.

Output video pads only.

Definition at line 407 of file avfilter.h.

Referenced by avfilter_poll_frame().

int AVFilterPad::rej_perms

Permissions which are not accepted on incoming buffers.

Any buffer which has any of these permissions set will be automatically copied by the filter system to a new buffer which does not have those permissions. This can be used to easily disallow buffers with AV_PERM_REUSE.

Input pads only.

Definition at line 344 of file avfilter.h.

Referenced by avfilter_filter_samples(), and avfilter_start_frame().

int(* AVFilterPad::request_frame)(AVFilterLink *link)

Frame request callback.

A call to this should result in at least one frame being output over the given link. This should return zero on success, and another value on error.

Output video pads only.

Definition at line 416 of file avfilter.h.

Referenced by avfilter_request_frame().

void(* AVFilterPad::start_frame)(AVFilterLink *link, AVFilterBufferRef *picref)

Callback called before passing the first slice of a new frame.

If NULL, the filter layer will default to storing a reference to the picture inside the link structure.

Input video pads only.

Definition at line 353 of file avfilter.h.

Referenced by avfilter_start_frame().

enum AVMediaType AVFilterPad::type

AVFilterPad type.

Only video supported now, hopefully someone will add audio in the future.

Definition at line 324 of file avfilter.h.

Referenced by avfilter_link(), and main().


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